User:Woozle/blog/2010/03/14/0903 Josh Smith, Agent of Entropy: Difference between revisions
new page from form at http://wiki.hypertwins.org/HypertWiki:Forms/blog/post |
office, too |
||
Line 12: | Line 12: | ||
He got into the (locked) craft room and grabbed the bottle of gummy-vitamins (there were two, but he emptied one of them on Friday before we remembered to hide them). Fortunately, most of the gummies remained stuck in the bottom, so he wasn't able to empty it. Right now he's in bed and still clutching the bottle like it was a teddy bear. Oddly enough, he doesn't seem to have done anything with the leftover Halloween candy. | He got into the (locked) craft room and grabbed the bottle of gummy-vitamins (there were two, but he emptied one of them on Friday before we remembered to hide them). Fortunately, most of the gummies remained stuck in the bottom, so he wasn't able to empty it. Right now he's in bed and still clutching the bottle like it was a teddy bear. Oddly enough, he doesn't seem to have done anything with the leftover Halloween candy. | ||
He got into the office and removed all the other keys. The key to Mel's room is still missing. (This is a skeleton key which we have been unable to copy or to find a workable replacement for; there is only one of them. So we can't get into Mel's room until we find that key again.) He also messed around with Sandy's computers, but left mine alone (possibly he couldn't find my mouse). | |||
He unlocked the basement, but I can't see any evidence that he did anything in it. | He unlocked the basement, but I can't see any evidence that he did anything in it. | ||
He got into the hallway closet (not locked), pulled out boxes of spare lightbulbs, and found the one to replace the missing bulb in the portable light we keep over his bed (the other kids managed to break it yesterday). At first it looked like he had broken one bulb while trying to get it out of its packing, but on closer inspection it turns out | He got into the hallway closet (not locked), pulled out boxes of spare lightbulbs, and found the one to replace the missing bulb in the portable light we keep over his bed (the other kids managed to break it yesterday). At first it looked like he had broken one bulb while trying to get it out of its packing, but on closer inspection it turns out that the base came apart while he was trying to get the bulb out of its packaging, and I was able to put it back together. | ||
Miraculously, he did ''not'' try to escape, though he certainly could have. | Miraculously, he did ''not'' try to escape, though he certainly could have. |
Revision as of 13:16, 14 March 2010
<hide> <let name=data index=Title>Josh Smith, Agent of Entropy</let> <let name=data index=User>Woozle</let> <let name=data index=TopicsUser></let> <let name=data index=TopicsGlobal>\Josh\disasters</let> <let name=data index=TextAbove>It's been nice not having Josh in the house for the past few weeks. We put something away or clean something, and it generally stays put away or cleaned. Organization gradually increases.
Josh made up for lost time last night.</let> <let name=data index=TextBelow>Apparently Josh found someone's keyring. (Evidence is that it was Benjamin's, but assigning blame isn't important; it could happen to anyone.) We don't know the order of events after that, but here's what we found:
He got into the laundry room, and totally ransacked it: the floor is covered with clothes, towels, and a few other things. These were mainly clean clothes from the boys' baskets and the sorting table, but also includes clothes we had sorted and set aside for donating. Sorting clothes takes forever. Unsorting them, however, takes mere minutes for a determined Josh.
He got into the (locked) craft room and grabbed the bottle of gummy-vitamins (there were two, but he emptied one of them on Friday before we remembered to hide them). Fortunately, most of the gummies remained stuck in the bottom, so he wasn't able to empty it. Right now he's in bed and still clutching the bottle like it was a teddy bear. Oddly enough, he doesn't seem to have done anything with the leftover Halloween candy.
He got into the office and removed all the other keys. The key to Mel's room is still missing. (This is a skeleton key which we have been unable to copy or to find a workable replacement for; there is only one of them. So we can't get into Mel's room until we find that key again.) He also messed around with Sandy's computers, but left mine alone (possibly he couldn't find my mouse).
He unlocked the basement, but I can't see any evidence that he did anything in it.
He got into the hallway closet (not locked), pulled out boxes of spare lightbulbs, and found the one to replace the missing bulb in the portable light we keep over his bed (the other kids managed to break it yesterday). At first it looked like he had broken one bulb while trying to get it out of its packing, but on closer inspection it turns out that the base came apart while he was trying to get the bulb out of its packaging, and I was able to put it back together.
Miraculously, he did not try to escape, though he certainly could have.
I've got pictures of the laundry room, and will try to post them.</let>
<let name=data index=TimeStamp>2010-03-14 0903</let> </hide><if not flag=including>==GetLinkBrief()== <func GetLinkBrief>
<let name=links.out>
- </let>
<let name=links.out append copy=data[Date] /> <let name=links.out append> :[[</let> <let name=links.out append copy=pg_title /> <let name=links.out append>|more]]:[[Talk:</let> <let name=links.out append copy=pg_title /> <let name=links.out append>|talk]]: </let>
<if flag=$data[wpage]> <let name=wtLink>[[</let> <let name=wtLink append copy=data[wpage] /> <let name=wtLink append>|</let> <let name=wtLink append copy=data[Title] /> <let name=wtLink append>]] § </let> </if><else> <let name=wtLink>[</let> <let name=wtLink append copy=data[URL] /> <let name=wtLink append> </let> <let name=wtLink append copy=data[Title] /> <let name=wtLink append>]</let> </else>
<let name=links.out append copy=wtLink /> <let name=links.out append> § </let>
<let name=text copy=data[TextShort] /> <if flag=$text></if><else> <let name=text copy=data[Text] len=200 /> </else>
<let name=links.out append copy=text trim /> <let name=links.out append> [[</let> <let name=links.out append copy=pg_title /> <let name=links.out append>|more...]]</let>
</func>
ShowRecentLinks(max)
<func ShowRecentLinks max>
<let name=idx /> <let name=including val=1 /> <for table="qryW3_Titles_Catgs" where="(cl_to='Data/links') AND (page_namespace=0)" sort="page_title DESC" limit=$max name=pg hide> <let name=pg_title val="@row.page_title" /> <let name=idx inc /> <if not flag=$noLoad> <load page=$pg_title /> </if> <if flag=$data[Title]> <call GetLinkBrief /> </if><else> <let name=links.out>
- [[</let>
<let name=links.out append copy=pg_title /> <let name=links.out append>]]</let> </else> <let name=links.rtn append copy=links.out /> <let name=links.out /> <let name=data /> </for>
</func>
ShowTopic(iTopic,iMax)
This should eventually be able to show data in any format: news links, blog entries... <func ShowTopic iTopic iMax>
<let name=idx /> <let name=including val=1 /> <let name=topic farg=iTopic /> <if not flag=$topic> <let name=topic parse>Woozle/blog/2010/03/14/0903 Josh Smith, Agent of Entropy</let> </if> <let name=topic self with="_"> </let>
<let name=sqlWhere>(page_namespace=0) AND (cl_to='</let> <let name=sqlWhere append copy=topic /> <let name=sqlWhere append>')</let>
<for table="qryW3_Titles_Catgs" where=$sqlWhere sort="page_title DESC" name=pg empty="no items yet" limit=$iMax hide> <let name=pg_title val="@row.page_title" /> <let name=idx inc /> <if not flag=$noLoad> <load page=$pg_title local /> </if> <if flag=$data[Title]> <call GetBrief /> </if><else> <let name=links.out>
- [[</let>
<let name=links.out append copy=pg_title /> <let name=links.out append>]]</let> </else> <let name=exclude val=0 /> <let name=links.rtn append copy=links.out /> <let name=data null /> </for>
</func>
GetBlogEntryBrief()
<func GetBlogEntryBrief> INPUT:
data[*] - from blog entry page pg_name - full name of page being displayed (including namespace)
<if not flag=$noLoad> <load page=$pg_name /> </if>
<let name=e.out>
- </let>
<let name=e.out append copy=data[TimeStamp] /> <let name=e.out append> [[</let> <let name=e.out append copy=pg_name /> <let name=e.out append>|</let> <let name=e.out append copy=data[Title] /> <let name=e.out append>]] § </let>
<let name=text copy=data[TextAbove] /> <if flag=$text></if><else> <let name=text copy=data[TextBelow] len=200 /> </else>
<let name=e.out append copy=text trim /> <let name=e.out append> [[</let> <let name=e.out append copy=pg_name /> <let name=e.out append>|more...]]</let>
</func>
GetBlogEntryBriefChrisFormat()
<func GetBlogEntryBriefChrisFormat> INPUT:
data[*] - from blog entry page pg_name - full name of page being displayed (including namespace)
<if not flag=$noLoad> <load page=$pg_name /> </if>
<let name=e.out></let> <let name=e.out append>[[</let> <let name=e.out append copy=pg_name /> <let name=e.out append>|</let> <let name=e.out append copy=data[Title] /> <let name=e.out append>]], </let> <let name=e.out append copy=data[TimeStamp] /> <let name=e.out append>
</let>
<let name=text copy=data[TextAbove] /> <if flag=$text></if><else> <let name=text copy=data[TextBelow] len=200 /> </else>
<let name=e.out append copy=text trim /> <let name=e.out append> [[</let> <let name=e.out append copy=pg_name /> <let name=e.out append>|more...]]
</let> </func>
GetBlogEntryFull()
<func GetBlogEntryFull> INPUT:
data[*] - from blog entry page pg_name - full name of page being displayed (including namespace)
<if not flag=$noLoad> <load page=$pg_name /> </if>
<let name=e.out>
==</let>
<let name=e.out append copy=data[Title] /> <let name=e.out append>==
posted at </let>
<let name=e.out append copy=data[TimeStamp] /> <let name=e.out append>
</let>
<let name=e.out append copy=data[TextAbove] /> <let name=e.out append copy=BlogFoldDivider /> <let name=e.out append copy=data[TextBelow] />
-- category display
<let name=e.out append copy=BlogFoldDivider /> <let name=e.out append>
Categories –</let>
<let name=noCat val=1 /> <call MakeBlogCatgs /> <if flag=$wtCatGlob> <let name=e.out append> general: </let> <let name=e.out append copy=wtCatGlob> </if> <if flag=$wtCatUser> <let name=e.out append> user: </let> <let name=e.out append copy=wtCatUser> </if> <let name=e.out append></let>
</let> </func>
ShowRecentBlogEntries(max,funcEntry)
<func ShowRecentBlogEntries max funcEntry>
<let name=idx /> <if not flag=$funcEntry> <let name=funcEntry val="GetBlogEntryBrief" /> </if> <let name=including val=1 /> <for table="qryW3_Titles_Catgs" where="(cl_to='Data/blog/post')" sort="page_title DESC" limit=$max name=pg hide> <let name=pg_nspace_code>{{ns:</let> <let name=pg_nspace_code append val=@row.page_namespace /> <let name=pg_nspace_code append>}}</let> <let name=pg_nspace copy=pg_nspace_code parse /> <let name=pg_title val="@row.page_title" /> <let name=pg_name copy=pg_nspace /> <let name=pg_name append>:</let> <let name=pg_name append copy=pg_title /> <let name=idx inc /> <call func=$funcEntry /> <let name=e.rtn append copy=e.out /> <let name=data /> </for>
</func>
ShowRecentBlogEntriesFull(max)
<func ShowRecentBlogEntriesFull max>
<let name=idx /> <let name=including val=1 /> <for table="qryW3_Titles_Catgs" where="(cl_to='Data/blog/post')" sort="page_title DESC" limit=$max name=pg hide> <let name=pg_nspace_code>{{ns:</let> <let name=pg_nspace_code append val=@row.page_namespace /> <let name=pg_nspace_code append>}}</let> <let name=pg_nspace copy=pg_nspace_code parse /> <let name=pg_title val="@row.page_title" /> <let name=pg_name copy=pg_nspace /> <let name=pg_name append>:</let> <let name=pg_name append copy=pg_title /> <let name=idx inc /> <call GetBlogEntryFull /> <let name=e.rtn append copy=e.out /> <let name=data /> </for>
</func>
ShowRecentBlogEntriesByTopic(max,topic)
<func ShowRecentBlogEntriesByTopic max topic>
<let name=topic self with="_"> </let>
<let name=sql>(cl_to='</let> <let name=sql>SELECT q1.* FROM qryW3_Titles_Catgs AS q1 LEFT JOIN qryW3_Titles_Catgs AS q2 ON q1.cl_from=q2.cl_from WHERE (q1.cl_to='Data/blog/post') AND (q2.cl_to='</let> <let name=sql append copy=topic /> <let name=sql append>') ORDER BY page_title DESC LIMIT </let> <let name=sql append copy=max />
<for sql=$sql> <let name=pg_nspace_code>{{ns:</let> <let name=pg_nspace_code append val=@row.page_namespace /> <let name=pg_nspace_code append>}}</let> <let name=pg_nspace copy=pg_nspace_code parse /> <let name=pg_title val="@row.page_title" /> <let name=pg_name copy=pg_nspace /> <let name=pg_name append>:</let> <let name=pg_name append copy=pg_title /> <let name=idx inc /> <let name=data[Title] null /> <load page=$pg_name /> <if flag=$data[Title]> <call GetBlogEntryBrief /> <let name=e.rtn append copy=e.out /> </if> <let name=data /> </for>
</func>
MakeBlogCatgs()
<func MakeBlogCatgs>
<let name=catUser copy=data[TopicsUser] /> <let name=catGlob copy=data[TopicsGlobal] /> <let name=wtCatUser null /> <xploop list=$catUser var=topic> <let name=wtCatUser append> [[user:</let> <let name=wtCatUser append copy=data[User] /> <let name=wtCatUser append>/</let> <let name=wtCatUser append copy=topic /> <let name=wtCatUser append>|</let> <let name=wtCatUser append copy=topic /> <let name=wtCatUser append>]]</let>
<let name=wtCatUser append>[[:category:user/</let> <let name=wtCatUser append copy=data[User] /> <let name=wtCatUser append>/</let> <let name=wtCatUser append copy=topic /> <let name=wtCatUser append>|c]]</let>
<if not flag=$noCat> <let name=wtCatUser append> [[category:user/</let> <let name=wtCatUser append copy=data[User] /> <let name=wtCatUser append>/</let> <let name=wtCatUser append copy=topic /> <let name=wtCatUser append>|</let> <let name=wtCatUser append copy=topic /> <let name=wtCatUser append>]]</let> </if> </xploop> <let name=wtCatGlob null /> <xploop list=$catGlob var=topic> <let name=wtCatGlob append> [[</let> <let name=wtCatGlob append copy=topic /> <let name=wtCatGlob append>]]</let>
<let name=wtCatGlob append>[[:category:</let> <let name=wtCatGlob append copy=topic /> <let name=wtCatGlob append>|c]]</let>
<if not flag=$noCat> <let name=wtCatGlob append>[[category:</let> <let name=wtCatGlob append copy=topic /> <let name=wtCatGlob append>]]</let> </if>
</xploop>
</func>
ShowBlogPostPage()
<func ShowBlogPostPage>
<let name=PostDate copy=data[TimeStamp] len=10 /> <let name=wtDate>[[</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>]] ([[:category:</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>|category]])</let>
<let name=wtDate append>[[category:</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>]]</let>
<let name=wtTitle>
==</let>
<let name=wtTitle append copy=data[Title] /> <let name=wtTitle append>==</let> <if flag=$data[TextAbove]> <let name=wtTextBrief>
In Brief </let>
<let name=wtTextFull>
The Rest </let>
<let name=wtTextBrief append copy=data[TextAbove] /> </if><else> <let name=wtTextBrief null /> </else> <let name=wtTextFull append copy=data[TextBelow] />
<call MakeBlogCatgs />
General categories for blog posts: -- the fact that it's a post:
<let name=wtCatGlob append></let>
-- date:
<let name=wtCatGlob append>[[category:</let> <let name=wtCatGlob append copy=PostDate len=10 /> -- just the date for the category <let name=wtCatGlob append>|]]</let> <let name=wtCatGlob append copy=PostDate /> -- full timestamp for sorting <let name=wtCatGlob append>]]</let>
<let name=user copy=data[User] /> <if flag=$user> <let name=wtUser>[[user:</let> <let name=wtUser append copy=user /> <let name=wtUser append>|</let> <let name=wtUser append copy=user /> <let name=wtUser append>]]</let> </if><else> <let name=wtUser>unknown</let> </else> <echo>
<get name=wtTitle /> <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull />
</func>
ShowBlogPostPage_v2()
<func ShowBlogPostPage_v2>
<let name=PostDate copy=data[TimeStamp] len=10 /> <let name=wtDate>[[</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>]] ([[:category:</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>|category]])</let>
<let name=wtDate append>[[category:</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>]]</let>
<let name=wtTitle>
==</let>
<let name=wtTitle append copy=data[Title] /> <let name=wtTitle append>==</let> <if flag=$data[TextAbove]> <let name=wtTextBrief>
In Brief </let>
<let name=wtTextFull>
The Rest </let>
<let name=wtTextBrief append copy=data[TextAbove] /> </if><else> <let name=wtTextBrief null /> </else> <let name=wtTextFull append copy=data[TextBelow] />
<call MakeBlogCatgs />
General categories for blog posts: -- the fact that it's a post:
<let name=wtCatGlob append></let>
-- date:
<let name=wtCatGlob append>[[category:</let> <let name=wtCatGlob append copy=PostDate len=10 /> -- just the date for the category <let name=wtCatGlob append>|]]</let> <let name=wtCatGlob append copy=PostDate /> -- full timestamp for sorting <let name=wtCatGlob append>]]</let>
<let name=user copy=data[User] /> <if flag=$user> <let name=wtUser>[[user:</let> <let name=wtUser append copy=user /> <let name=wtUser append>|</let> <let name=wtUser append copy=user /> <let name=wtUser append>]]</let> </if><else> <let name=wtUser>unknown</let> </else> <echo>
<get name=wtTitle /> <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull />
Specs | |
Timestamp: | <get name=PostDate /> |
Author: | <get name=wtUser /> |
User topics: | <get name=wtCatUser /> |
Global topics: | <get name=wtCatGlob /> |
</func>
ShowBlogPostPage_v1()
<func ShowBlogPostPage_v1>
<let name=PostDate copy=data[TimeStamp] len=10 /> <let name=wtDate>[[</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>]] ([[:category:</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>|category]])</let>
<let name=wtDate append>[[category:</let> <let name=wtDate append copy=PostDate /> <let name=wtDate append>]]</let>
<let name=wtTitle>
==</let>
<let name=wtTitle append copy=data[Title] /> <let name=wtTitle append>==</let> <if flag=$data[TextAbove]> <let name=wtTextBrief>
In Brief
</let>
<let name=wtTextFull>
Full Story
</let>
<let name=wtTextBrief append copy=data[TextAbove] /> </if><else> <let name=wtTextBrief null /> </else> <let name=wtTextFull append copy=data[TextBelow] />
<call MakeBlogCatgs />
General categories for blog posts: -- the fact that it's a post:
<let name=wtCatGlob append></let>
-- date:
<let name=wtCatGlob append>[[category:</let> <let name=wtCatGlob append copy=PostDate len=10 /> -- just the date for the category <let name=wtCatGlob append>|]]</let> <let name=wtCatGlob append copy=PostDate /> -- full timestamp for sorting <let name=wtCatGlob append>]]</let>
<let name=user copy=data[User] /> <if flag=$user> <let name=wtUser>[[user:</let> <let name=wtUser append copy=user /> <let name=wtUser append>|</let> <let name=wtUser append copy=user /> <let name=wtUser append>]]</let> </if><else> <let name=wtUser>unknown</let> </else> <echo>
Specs
Timestamp: | <get name=PostDate /> |
Author: | <get name=wtUser /> |
User topics: | <get name=wtCatUser /> |
Global topics: | <get name=wtCatGlob /> |
<get name=wtTitle /> <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull /></echo> </func><call ShowBlogPostPage></if>