User:Woozle/blog/2009-02-22 1125 how time gets wasted
<hide> <let name=data index=Title>how time gets wasted</let> <let name=data index=User>Woozle</let> <let name=data index=TopicsUser>\focus\work</let> <let name=data index=TopicsGlobal>\Josh\kids\free time</let> <let name=data index=TextAbove>The worker says he'll be bringing Josh back at around 5pm. So a little before that, I stop trying to focus on anything where I'll be Vastly Annoyed if I get interrupted. (Maybe you can see where this is going already.)</let> <let name=data index=TextBelow>Three hours later, Josh shows up, and all I've worked on is low-priority stuff, because it was the stuff I didn't mind getting interrupted in the middle of.
Three hours. That's not just three regular hours, or even three Josh-free hours, but Three totally kid-free hours (the other two were with their dad) I could have really used to focus on my current project (which pays money when I finish it, by the way).
Don't get me wrong; I'm quite happy to have had those three hours to noodle around and do stuff that didn't matter as much, because it was stuff that did matter some, and I get a small feeling of accomplishment from having done it. Given the choice between Josh coming back right on cue at 5pm and coming back at 8 but my not knowing in advance that this would happen, I might still choose 8 -- because Josh being in the house might mean I wouldn't get even those relatively-unimportant things done due to the constant distractions. (Or maybe I would choose for him to come back early, because then if he were in a calm mood, which often happens after he has been out, I might have been able to get some of that important work done.)
It just really grates me to see three totally kid-free hours on a weekend, a once-in-a-blue-moon event, essentially wasted.</let>
<let name=data index=TimeStamp>2009-02-22 1125</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/2009-02-22 1125 how time gets wasted</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>