<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Spiral of Hope</title>
	<atom:link href="http://spiralofhope.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://spiralofhope.wordpress.com</link>
	<description>Better software is possible.</description>
	<lastBuildDate>Sun, 15 Nov 2009 16:59:59 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='spiralofhope.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/8bf56620b6944443b40c9506ab3f817f?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Spiral of Hope</title>
		<link>http://spiralofhope.wordpress.com</link>
	</image>
			<item>
		<title>Personal Update</title>
		<link>http://spiralofhope.wordpress.com/2009/11/15/update/</link>
		<comments>http://spiralofhope.wordpress.com/2009/11/15/update/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 16:56:59 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[Misadventures]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Unity Linux]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[TinyME]]></category>
		<category><![CDATA[TinyME-alpha3]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=941</guid>
		<description><![CDATA[I&#8217;m still alive.  I took a break, and ended up with a huge number of issues with my computer.  That just made me take another break to avoid solving them.
While most of the procrastination is over now, it&#8217;ll still take me a while to get back into things.  I&#8217;ve got a couple of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=941&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m still alive.  I took a break, and ended up with a huge number of issues with my computer.  That just made me take another break to avoid solving them.</p>
<p>While most of the procrastination is over now, it&#8217;ll still take me a while to get back into things.  I&#8217;ve got a couple of projects which I&#8217;m forced to put on the back-burner, and a couple which I&#8217;ve never mentioned which I&#8217;ll be working on &#8211; and they may or may not be announced.</p>
<p>I&#8217;m not sure what stuff I&#8217;ve even got going, so for now just assume that everything&#8217;s being delayed by a huge amount.</p>
<p>I did get a hold of the Unity Linux gang to let them know what&#8217;s up, and I&#8217;ll hopefully be returning to light duty sometime mid-December.</p>
<p>Btw, I&#8217;m using TinyME-alpha3 right now, and it seems to work just fine.  My tastes differ quite a bit, so I&#8217;m really just using the underlying skeleton.. so it&#8217;s not like I&#8217;m using the actual distro.</p>
<p>So this isn&#8217;t much of a teaser for things to come, but at least it&#8217;s something.  =p</p>
Posted in Misadventures, Personal, Unity Linux Tagged: Personal, projects, status, TinyME, TinyME-alpha3, update <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/941/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/941/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/941/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/941/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/941/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/941/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=941&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/11/15/update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>mplayer with DVD menus</title>
		<link>http://spiralofhope.wordpress.com/2009/09/21/mplayer-with-dvd-menus/</link>
		<comments>http://spiralofhope.wordpress.com/2009/09/21/mplayer-with-dvd-menus/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 20:16:44 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Questions / Wanted]]></category>
		<category><![CDATA[mplayer]]></category>
		<category><![CDATA[Movies]]></category>
		<category><![CDATA[stupid defaults]]></category>
		<category><![CDATA[DVD menus]]></category>
		<category><![CDATA[mplayer -mouse-movements dvdnav://]]></category>
		<category><![CDATA[DVD navigation]]></category>
		<category><![CDATA[DVD mouse navigation]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=939</guid>
		<description><![CDATA[Yes, I actually had to look this one up.  Apparently nobody thinks DVD menus and using your mouse for them) would be a sensible default.
mplayer -mouse-movements dvdnav://
And no, this doesn&#8217;t work with gmplayer.  That would be crazy.  =/
Posted in HOWTO, Linux, Questions / Wanted Tagged: DVD menus, DVD mouse navigation, DVD navigation, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=939&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Yes, I actually had to look this one up.  Apparently nobody thinks DVD menus and using your mouse for them) would be a sensible default.</p>
<p style="padding-left:30px;"><code>mplayer -mouse-movements dvdnav://</code></p>
<p>And no, this doesn&#8217;t work with gmplayer.  That would be crazy.  =/</p>
Posted in HOWTO, Linux, Questions / Wanted Tagged: DVD menus, DVD mouse navigation, DVD navigation, Movies, mplayer, mplayer -mouse-movements dvdnav://, stupid defaults <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/939/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=939&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/09/21/mplayer-with-dvd-menus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>How the hell do I organize a 10+ year old TODO list?</title>
		<link>http://spiralofhope.wordpress.com/2009/08/30/how-the-hell-do-i-organize-a-10-year-old-todo-list/</link>
		<comments>http://spiralofhope.wordpress.com/2009/08/30/how-the-hell-do-i-organize-a-10-year-old-todo-list/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 13:43:05 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[Questions / Wanted]]></category>
		<category><![CDATA[GTD]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[to do]]></category>
		<category><![CDATA[todo]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=934</guid>
		<description><![CDATA[So at some point you migrate from little scraps of paper to sheets of paper.
Then you migrate to notes in your computer.
Then you migrate to a documentation system.
Then you migrate back to notes in your computer.
Then you migrate to one big note.
Then you categorize your notes.
Then you review and prioritize your notes.
All the while, your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=934&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>So at some point you migrate from little scraps of paper to sheets of paper.</p>
<p>Then you migrate to notes in your computer.</p>
<p>Then you migrate to a documentation system.</p>
<p>Then you migrate back to notes in your computer.</p>
<p>Then you migrate to one big note.</p>
<p>Then you categorize your notes.</p>
<p>Then you review and prioritize your notes.</p>
<p>All the while, your notes have been gathering strength, preparing to assault your free time.</p>
<p>You open the flood gates .. and .. nothing happens.  The very notion of a list is intimidating, and actually &#8220;doing&#8221; anything is based on inspiration.  Priorities have shifted around so much over the years that looking at the list just gives a lot of &#8220;yeah, that ought to get done one of these days&#8221; instead of the burning-hot passion there used to be.</p>
Posted in Questions / Wanted Tagged: GTD, list, to do, todo <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/934/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=934&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/08/30/how-the-hell-do-i-organize-a-10-year-old-todo-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>rpmfind.unity-linux.org updates, Granular Linux releases a preview alpha</title>
		<link>http://spiralofhope.wordpress.com/2009/08/27/rpmfind-unity-linux-org-updates-granular-linux-releases-a-preview-alpha/</link>
		<comments>http://spiralofhope.wordpress.com/2009/08/27/rpmfind-unity-linux-org-updates-granular-linux-releases-a-preview-alpha/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 15:59:08 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[Rumours]]></category>
		<category><![CDATA[Unity Linux]]></category>
		<category><![CDATA[TinyME]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[Granular Linux]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[rpmfind.unity-linux.org]]></category>
		<category><![CDATA[remaster]]></category>
		<category><![CDATA[branch]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[packaging]]></category>
		<category><![CDATA[repo]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=926</guid>
		<description><![CDATA[David Smid has updated rpmfind.unity-linux.org to include the Granular Linux packages.
Note that Granular Linux has not put out a new stable release based on Unity Linux, since Unity Linux itself has not made a release yet.  This means that the rpmfind listing doesn&#8217;t apply to the present stable Granular Linux ISO.  However, a preview alpha [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=926&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>David Smid has updated <a href="http://rpmfind.unity-linux.org/">rpmfind.unity-linux.org</a> to include the <a href="http://www.granularlinux.com/">Granular Linux</a> packages.</p>
<p>Note that Granular Linux has not put out a new stable release based on Unity Linux, since Unity Linux itself has not made a release yet.  This means that the rpmfind listing doesn&#8217;t apply to the present stable Granular Linux ISO.  However, a preview alpha demonstrating a KDE-only desktop environment has been released yesterday.  <span style="text-decoration:underline;">It is meant for Unity Linux testers, and most definitely NOT for everyday users to play with.</span></p>
<p>Here is his notice:</p>
<blockquote><p>KDE 4.3 is ready and available in Granular repository. I&#8217;ll shortly<br />
commit the source changes to the Unity SVN repo as well. But those of<br />
you wanting to try out the shiny new KDE release without getting into<br />
installation hassles of any kind, I have prepared a KDE-only Unity<br />
ISO, based on 0.99 Alpha 2 release.</p>
<p>This ISO contains KDE 4.3 as the only DE; no Openbox. Although I<br />
didn&#8217;t get enough time to make sure it contains a clean KDE<br />
environment, as far as I&#8217;ve tested, it works just fine. It contains<br />
all the KDE packages as required by &#8220;task-kde4-minimal&#8221;. Granular repo/<br />
channel is also added to the smart channel list, with a priority<br />
higher than Unity&#8217;s. But you can change it any time. It also contains<br />
Firefox and Amarok, and can play multimedia as well. :)</p>
<p>I hope you have a nice experience with it. Let me know how it goes.</p>
<p>Get it here (460 MB):<br />
<a href="http://www.granularproject.org/content/unity/unity0.99_kde.iso">http://www.granularproject.org/content/unity/unity0.99_kde.iso</a></p>
<p>Extra info-<br />
username: root<br />
password: root</p>
<p>username: guest<br />
password: guest</p>
<p>MD5SUM: b7a3899b5975c36c1ab71dc24e243f2e</p></blockquote>
<p>Drop by the mailing list if you have feedback: <a href="http://groups.google.com/group/ul-developers">http://groups.google.com/group/ul-developers</a></p>
<p>The Granular Linux head Anurag Bhandari continues to work with our internal Unity Linux alphas so that he can release Granular Linux as soon as Unity Linux goes stable.  I do know that <a href="http://www.tinymelinux.com/">TinyME</a> is also doing the same.</p>
<p>Keep in mind that a bunch of us are using Unity Linux as our primary operating environment.  While Anurag has chosen to release an alpha publicly, which was quite a surprise to me, the Unity Linux core has not publicly available yet because some significant effort needs to be made to make it compatible with more hardware and to stabilize our choice and configuration of software.  For example, there has been some recent discussion on changing the way applications are organized in the repository and menu.</p>
<p>Also, David stopped indexing PCLinuxOS packages, since Unity Linux has been fully-independent of PCLinuxOS for some time now and Mandriva is the primary source for inspiration.</p>
Posted in Rumours, Unity Linux Tagged: alpha, branch, distribution, Granular Linux, Mandriva, menu, packaging, remaster, repo, repository, rpmfind.unity-linux.org, TinyME <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/926/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/926/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/926/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/926/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/926/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=926&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/08/27/rpmfind-unity-linux-org-updates-granular-linux-releases-a-preview-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating a markup language isn&#8217;t so hard after all</title>
		<link>http://spiralofhope.wordpress.com/2009/08/25/creating-a-markup-language-isnt-so-hard-after-all/</link>
		<comments>http://spiralofhope.wordpress.com/2009/08/25/creating-a-markup-language-isnt-so-hard-after-all/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 20:17:15 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Programming / Scripting]]></category>
		<category><![CDATA[Questions / Wanted]]></category>
		<category><![CDATA[bluecloth]]></category>
		<category><![CDATA[BlueFeather]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[markup language]]></category>
		<category><![CDATA[rDoc]]></category>
		<category><![CDATA[redcloth]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=923</guid>
		<description><![CDATA[One of the things that&#8217;s been a real killer for me using most wikis has been the syntax.  None of them get it right.
MediaWiki has been bearable, and over time I&#8217;ve grown used to it.  The problem is that nobody agrees on a remotely similar syntax.  There were some early efforts to create a generally [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=923&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the things that&#8217;s been a real killer for me using most wikis has been the syntax.  None of them get it right.</p>
<p>MediaWiki has been bearable, and over time I&#8217;ve grown used to it.  The problem is that nobody agrees on a remotely similar syntax.  There were some early efforts to create a generally agreed-upon syntax, and it did fairly well.. but it&#8217;s still not used everywhere.</p>
<p>I&#8217;m not just talking about wikis, but about markup languages in general.  Even something like Ruby&#8217;s rDoc decided on its own syntax.</p>
<p>And they&#8217;re all wrong.  Seriously, who thinks  that <code>__this is italicized__</code>?</p>
<p>I&#8217;ve even seen and participated in some discussions on better syntax, and programmers keep saying that it&#8217;s hard to create certain kinds of syntaxes.  They&#8217;re wrong.  After some dabbling I was able to create a markup language myself.  Easily.</p>
<p style="padding-left:30px;"><code>_underlined_<br />
-strikethrough-<br />
/emphasis/<br />
*bold*<br />
**big**<br />
_ - / underlined strikethrough italics /-_</code></p>
<p>Everyone can understand that syntax.</p>
<p>Oh, and I could easily zip off and create <code>\italics\</code> <code>&lt;i&gt;</code> which is separate from <code>/emphasis/</code> <code>&lt;em&gt;</code></p>
<p>Plain URL automatic-linking was trivial too:
</p>
<p style="padding-left:30px;"><code>http://example.com<br />
=&gt;<br />
<a href="http://example.com">http://example.com</a></code></p>
<p>Simple syntax like this is really only for the shorthand for everyday English.  Sure I could create <code>^superscript^</code>, and maybe <code>=subscript=</code> and <code>`pre`</code> and whatever else comes to mind.. those become less and less obvious and more about personal preference. `backticks` are used in shell scripting, so that one&#8217;s easy to remember. Superscript is obvious.. subscript not so much.  I figure if someone needs to do something fancy, they could just use proper HTML.  I&#8217;ve maintained the habit of using HTML wherever possible, because it makes it much easier to move the source to another wiki without having to translate everything.</p>
<p>And yes, I do realise that I ought to be using CSS instead of the old HTML v2 stuff.  I&#8217;ll get around to that.</p>
<p>Oh, and about wiki linking.  I implemented an automatic linking.  Screw all the [[some title|whatever]] nonsense.  If you need to do that, you&#8217;re doing it wrong.  I just have the engine check the list of files, then check for appropriate phrases and build links intelligently.</p>
<p>So if I have <code>some-example.html</code>, then
</p>
<p style="padding-left:30px;"><code>some example text<br />
=&gt;<br />
<a href="./some-example.html">some example</a> text</code></p>
<p>That code is a huge maul right now, but it&#8217;ll turn into a smaller hammer soon enough if I manage to do things like link only one occurrence per section &#8211; so between <code>&lt;h1&gt;</code> and some other header there is only one unique link to a file, and in the next section another link can be made.</p>
<p>Syntax should get the hell out of the way, and the computer should do as much of the clumsy footwork as possible.</p>
<p>I can think of still-smarter things I could do.
</p>
<p style="padding-left:30px;"><code>the last word in this sentence is a linkhttp://example.com<br />
=&gt;<br />
the last word in this sentence is a <a href="http://example.com">link</a></code></p>
<p>That&#8217;s a bit messy, but I could imagine something cleaner..
</p>
<p style="padding-left:30px;"><code>the last word in this sentence is a link</p>
<p>http://example.com</p>
<p>sentence continues.<br />
=&gt;<br />
the last word in this sentence is a <a href="http://example.com">link</a> sentence continues.</code></p>
<p>I&#8217;m even tempted in doing a standard and a print version.  The standard version would have inline links, but the print version would remove all linking and instead have endnote references, with a nice list of links at the end.  Heck, I could automatically <a href="http://tinyurl.com/">tinyurl</a> all those links too.</p>
<p><em>Source</em>
</p>
<p style="padding-left:30px;"><code>This is a sentence with a link</p>
<p>http://example.com</code></p>
<p><em>Regular:</em>
</p>
<p style="padding-left:30px;">This is a sentence with a <a href="http://example.com">link</a></p>
<p><em>Print:</em></p>
<p style="padding-left:30px;">This is a sentence with a link<a name="#endnote_one_up"></a><a href="#endnote_one">[1]</a></p>
<p style="padding-left:30px;">
<hr />
<p style="padding-left:30px;">
<p style="padding-left:30px;"><a name="#endnote_one"></a><a href="#endnote_one_up">[1]</a> <a href="http://example.com">http://example.com</a></p>
<p>So all in all, this is an excellent learning project.  I find file and string processing to be the very best for my goofing around.  Ruby is very good at string processing, and while its file processing is slow, it&#8217;s also very simple to work with.  Oh, and I still hate regular expressions.</p>
<p>This little syntax &#8220;engine&#8221; is still being hacked on, but it&#8217;ll get released eventually.  I won&#8217;t really chain it to any other project like my compiled website, so it can be used wherever it needs to be used &#8211; toss it a variable and it&#8217;ll return a conversion.  Or just use whatever bits of it you like.  Stay tuned.</p>
Posted in Documentation, Hacking, Programming / Scripting, Questions / Wanted Tagged: bluecloth, BlueFeather, Documentation, learning, markdown, markup, markup language, rDoc, redcloth, syntax, wiki, writing <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/923/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/923/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/923/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/923/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/923/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=923&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/08/25/creating-a-markup-language-isnt-so-hard-after-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>Why aren&#8217;t old games fun? [PROTIP: They are]</title>
		<link>http://spiralofhope.wordpress.com/2009/08/25/why-arent-old-games-fun-protip-they-are/</link>
		<comments>http://spiralofhope.wordpress.com/2009/08/25/why-arent-old-games-fun-protip-they-are/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 17:45:18 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oldschool]]></category>
		<category><![CDATA[old games]]></category>
		<category><![CDATA[oldschool gaming]]></category>
		<category><![CDATA[realism]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=936</guid>
		<description><![CDATA[So as to keep my comment around..
spiralofhope, on August 25th, 2009 at 10:45 am Said:
Any media which attempts to mimic the real world will at best maintain a niche interest because of the art or nostalgic memories of the piece.
For example, old movies who had early special effects were astounding at the time, and are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=936&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>So as to keep my comment around..</p>
<div><strong><a rel="external nofollow" href="http://spiralofhope.com/">spiralofhope</a></strong>, on <a href="http://www.hyperorg.com/blogger/2009/08/23/why-arent-old-games-fun/comment-page-1/#comment-49322">August 25th, 2009 at 10:45 am</a> Said:</div>
<blockquote><p>Any media which attempts to mimic the real world will at best maintain a niche interest because of the art or nostalgic memories of the piece.</p>
<p>For example, old movies who had early special effects were astounding at the time, and are laughable now. They’re only interesting for the nostalgia of old people who saw it when they were growing up, or to historians of film or effects.</p>
<p>The same is true for games. Any game which tries too hard will end up falling down flat later in time, when their early art form is totally obsoleted.</p>
<p>However, games which do not attempt to be cutting-edge and realistic have amazing staying power. Think nethack, online MUDs, most early Sierra games and any other game which has a focus on comedy and thinking.</p>
<p>This same thinking somehow doesn’t seem to apply to old world art forms for all people. There is some sort of attachment to painting and other art forms where they hold their own even in comparison to photography. It seems that the act and the material is more important to people than the actual image. I think it’s just a cultural thing for us to respect painting, but beside that a lot of painting doesn’t attempt for realism in the first place.</p>
<p>But regarding games.. there are a number of very active projects devoted to re-creating old games or emulating the original on other platforms. Arcade games, early computer games (Atari, c64, Amiga, etc), old x86 DOS games, and more.</p>
<p>There are now a couple of projects which will work on directly supporting much more of those old games at the operating system level, both based on Unity Linux – <a rel="nofollow" href="http://unity-linux.org/">http://unity-linux.org</a></p>
<p>For my part, I’ll be working on Oldschool Linux, which is more focused on the oldschool demo, music and art scenes.</p>
<p>The other person’s project will be more directly focused on games and emulation. I went looking for its name and the author, but I wasn’t able to find it. It’ll resurface once the project launches.</p></blockquote>
Posted in Linux, Oldschool Tagged: old games, oldschool gaming, realism <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/936/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=936&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/08/25/why-arent-old-games-fun-protip-they-are/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>Why doesn&#8217;t software multitask?</title>
		<link>http://spiralofhope.wordpress.com/2009/08/24/why-doesnt-software-multitask/</link>
		<comments>http://spiralofhope.wordpress.com/2009/08/24/why-doesnt-software-multitask/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:37:25 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Questions / Wanted]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Claws Mail]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[it's not a bug its a feature]]></category>
		<category><![CDATA[multi-tasking]]></category>
		<category><![CDATA[multitasking]]></category>
		<category><![CDATA[popup windows]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=920</guid>
		<description><![CDATA[I strongly appreciate a single-application single-tasking environment, because it forces you into a totally different mindset from the flurry of activity and noise one always has on an everyday &#8220;multitasking&#8221; computing environment these days.  But since most of my day is spent completely surrounded by multiple applications all vying for my attention, I&#8217;ve come to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=920&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I strongly appreciate a single-application single-tasking environment, because it forces you into a totally different mindset from the flurry of activity and noise one always has on an everyday &#8220;multitasking&#8221; computing environment these days.  But since most of my day is spent completely surrounded by multiple applications all vying for my attention, I&#8217;ve come to expect to be able to swap my attention around whenever I want.</p>
<p>But there are situations and applications which <em>explicitly deny multitasking</em>.</p>
<p>Seriously.</p>
<p>It pisses me off so much to have basic functionality taken away from me.  Maybe there really are underlying reasons, technical or otherwise, for an application to not multitask &#8220;properly&#8221; (for me), but it still pisses me off to no end.</p>
<p>A classic example is when a popup window unnecessarily stays &#8220;on top&#8221;, obscuring that and other applications.  Sometimes the popup window is stuck &#8220;on top&#8221;, and it seems to explicitly ignore my unsetting that flag.</p>
<p>Some actual examples:</p>
<ul>
<li><a href="http://getfirefox.com">Firefox</a> 3.5.2
<ul>
<li>Won&#8217;t multitask with bookmarks in the sidebar.. page loading etc.</li>
<li>Won&#8217;t let you control-t or control-w when a plugin has focus.</li>
</ul>
</li>
<li><a href="http://www.claws-mail.org/">Claws Mail</a> 3.7.1
<ul>
<li>Prevents you from doing quite a lot of things when it&#8217;s checking mail.</li>
<li>Has the perma-popup when the preference screen is shown.
<ul>
<li><a href="http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1963"> Bug 1963</a> <span id="summary_alias_container" style="display:inline;"><span id="short_desc_nonedit_display">- Preferences Templates Information Window Focus loss</span></span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Maybe I&#8217;ll keep posting other applications as they annoy me.. this issue really rubs me the wrong way.</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;"><a href="http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1963"> <strong>Bug 1963</strong></a></div>
Posted in Linux, Questions / Wanted, Usability Tagged: Claws Mail, firefox, it's not a bug its a feature, multi-tasking, multitasking, popup windows <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/920/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/920/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/920/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/920/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/920/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/920/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/920/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/920/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/920/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/920/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=920&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/08/24/why-doesnt-software-multitask/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>Ruby:  Basic Test::Unit example</title>
		<link>http://spiralofhope.wordpress.com/2009/08/23/ruby-basic-testunit-example/</link>
		<comments>http://spiralofhope.wordpress.com/2009/08/23/ruby-basic-testunit-example/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 03:17:05 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Programming / Scripting]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[Test::Unit]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=908</guid>
		<description><![CDATA[As I promised in another post today, here is some basic code to get you started on using Ruby&#8217;s Test::Unit.
I also figured out how to do the wordpress.com syntax highlighting.  Yay.
testall.rb

$LOAD_PATH.unshift(&#34;#{File.dirname(__FILE__)}/../lib&#34;) if __FILE__ == $0

puts &#34;Checking for test cases:&#34;
Dir['tc_*.rb'].each do &#124;testcase&#124;
  puts &#34;\t#{testcase}&#34;
  require testcase
end
puts &#34; &#34;

tc_example.rb

# http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/files/test/unit/ui/console/testrunner_rb.html (not a useful website)
# TestRunner [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=908&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As I promised in another post today, here is some basic code to get you started on using Ruby&#8217;s Test::Unit.</p>
<p>I also figured out how to do <a href="http://support.wordpress.com/code/">the wordpress.com syntax highlighting</a>.  Yay.</p>
<p style="padding-left:30px;"><code>testall.rb</code></p>
<pre class="brush: ruby;">
$LOAD_PATH.unshift(&quot;#{File.dirname(__FILE__)}/../lib&quot;) if __FILE__ == $0

puts &quot;Checking for test cases:&quot;
Dir['tc_*.rb'].each do |testcase|
  puts &quot;\t#{testcase}&quot;
  require testcase
end
puts &quot; &quot;
</pre>
<p style="padding-left:30px;"><code>tc_example.rb</code></p>
<pre class="brush: ruby;">
# http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/files/test/unit/ui/console/testrunner_rb.html (not a useful website)
# TestRunner is used to ensure that code can be run after the tests are run, without resorting to wrapping this entire script within another script.
require 'test/unit/ui/console/testrunner'

# http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/
require 'test/unit'

class TC_EXAMPLE &lt; Test::Unit::TestCase
  # Execute this before every test case.
  def setup
    # Do nothing.
  end
  # Execute this after every test case.
  def teardown
    # Do nothing.
  end

  # Tests
  # Stuff with &quot;test&quot; at the start of their name will be run automatically.
  # Other things without &quot;test&quot; can be manually launched with the setup method.
  # Note that we need to have one test case.  With zero test cases, ruby bombs out.  I don't understand why.  It's stupid.
  def test_empty
    # Empty.
  end

  def test_file_exists_pass
    # I can summon this to manually abort the test if I wanted to.
    # abort_test!
    # This tests for itself, which ought to pass.
    assert(test(?e,__FILE__),&quot;** ERROR:  The file is missing&quot;)
  end # test_file_exists
  def test_file_exists_fail
    assert(test(?e,&quot;filename.ext&quot;),&quot;** ERROR:  The file is missing&quot;)
  end # test_file_exists

  # Tests (and only tests) can use &quot;abort_test!&quot; to stop their own execution.  Other tests continue as normal.
  # This stuff has to go down here.  (I'm not sure why)
  def abort_test!
    throw 'abort_test!'
  end
  def self.abortable m
    m, m2 = &quot;#{ m }&quot;, &quot;__#{ m }__&quot;
    alias_method m2, m
    define_method(m){|*a| catch('abort_test!'){ send(m2,*a) } }
  end
  instance_methods.each{|m| abortable m if m =~ %r/^test/}

end # TC_EXAMPLE &lt; Test::Unit::TestCase

# Somehow, all the tests are run _after_ these types of code are run!
# A global variable (an array)
# at_exit { code }
# END { code } -- either if I use the end block before, or after require 'test/unit'

puts &quot;== beginning the tests&quot;
Test::Unit::UI::Console::TestRunner.run(TC_EXAMPLE)
puts &quot;== finished the tests&quot;
</pre>
Posted in HOWTO, Programming / Scripting Tagged: Ruby, test driven development, Test::Unit, Testing <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/908/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/908/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/908/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/908/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/908/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/908/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/908/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/908/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/908/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/908/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=908&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/08/23/ruby-basic-testunit-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;ve put in my 10,000 hours</title>
		<link>http://spiralofhope.wordpress.com/2009/08/23/ive-put-in-my-10000-hours/</link>
		<comments>http://spiralofhope.wordpress.com/2009/08/23/ive-put-in-my-10000-hours/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 03:07:34 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Programming / Scripting]]></category>
		<category><![CDATA[Questions / Wanted]]></category>
		<category><![CDATA[10000 hours]]></category>
		<category><![CDATA[10000-Hour Rule]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[compatency]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[Malcolm Gladwell]]></category>
		<category><![CDATA[mentee]]></category>
		<category><![CDATA[mentor]]></category>
		<category><![CDATA[Outliers]]></category>
		<category><![CDATA[paired programming]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=904</guid>
		<description><![CDATA[Lately I&#8217;ve been reviewing my skills and interests, and sketching out what I&#8217;m interested in learning and accomplishing.
Malcolm Gladwell was on The Hour, and he talked about his &#8220;10,000-Hour Rule&#8221; from his book Outliers.
It&#8217;s been a little bit since that episode aired, and I realized that I&#8217;ve actually put in my 10,000 hours on a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=904&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Lately I&#8217;ve been reviewing my skills and interests, and sketching out what I&#8217;m interested in learning and accomplishing.</p>
<p><a href="http://en.wikipedia.org/wiki/Malcolm_Gladwell">Malcolm Gladwell</a> was on <a href="http://en.wikipedia.org/wiki/The_Hour_(Canadian_TV_series)">The Hour</a>, and he talked about his &#8220;10,000-Hour Rule&#8221; from his book <em><a href="http://en.wikipedia.org/wiki/Outliers_(book)">Outliers</a></em>.</p>
<p>It&#8217;s been a little bit since that episode aired, and I realized that I&#8217;ve actually put in my 10,000 hours on a couple of topics now.</p>
<p>It&#8217;s been more than ten years since I became obsessed with software testing.  But I ought to say that with different terms.. this version of &#8220;testing&#8221; is better-called &#8220;reviewing&#8221;.  Throughout those ten years I&#8217;ve kept progressively clearer and lengthier notes, and these days I&#8217;m very tempted to dive into very in-depth reviews.</p>
<p>I&#8217;ve had a sort of intuitive expertise.  But it&#8217;s not a functional competency, like an trade skill that&#8217;s learned on site, it&#8217;s more like a guitarist who &#8220;just figured it out&#8221;.  That kind of guitarist may be outstanding in many ways, but they often can&#8217;t even read sheet music and have no working knowledge of the fundamentals.</p>
<p>With this &#8220;10,000 hours&#8221; in mind, when I think about wanting something, my perspective completely changes.  Instead of &#8220;it could have been done better&#8221; or &#8220;it&#8217;ll be so hard for me to do that myself&#8221;, with a kind of distant daydreaming mindset, I find myself thinking more along the lines of &#8220;I&#8217;ve put in the hours, I know what I&#8217;m doing, I could get this done myself&#8221;.</p>
<p>But I do know that I&#8217;m at best &#8220;a natural&#8221; and that while I&#8217;ve put in the hours to develop portable &#8220;soft skills&#8221; and a sort of intuition, I&#8217;m lacking those fundamentals.  So while I have talent for usability and documentation, and I&#8217;m learning to program, I lack the underlying organizational and other true &#8220;development&#8221; skills:  Specs, planning, prioritizing, testing, etc.</p>
<p>I know how to get those missing fundamentals.  I&#8217;ve already started some of the research on the core topics I&#8217;ll need to absorb, and I&#8217;m seriously thinking of getting some paired programming going.  I took a serious look through <a href="http://rubymentor.rubyforge.org">The RubyMentor Project</a>, and I was appalled that there&#8217;s been no improvement in all this time.  They&#8217;re still using that piece of shit wiki.  Nobody has spearheaded the project, and it shows.</p>
<p>At the moment, I have several significant projects all on the go at the same time.  It&#8217;s not just <a href="http://unity-linux.org/">Unity Linux</a> that&#8217;s high on my list.. there are a number of programming and personal projects which are just as important to me.  Some of those projects have been patiently waiting for me for years now.  I really need to get them all done.</p>
<p>But creating a &#8220;doing it right&#8221; project is something that I am <em>compelled</em> to do.  I learn by documenting.  I <em>only</em> learn by documenting.  This naturally leads to tutorials, but now I&#8217;m going to expand it and have it lead to behaviours, tools, methods, styles and anything else I can think of.  It&#8217;s a reasonable leap to go from that to a full online course, including some sort of real-world Meetup.com or virtual paired-programming.</p>
<p>I don&#8217;t understand how an online mentor is useful.  There is a huge community out there, and it&#8217;s responsive and helpful.  One of the first and most important skills one can learn for programming is to define one&#8217;s questions well, and know where and how to look for answers.  Once that skill is even mediocre, asking for random help from a mentor is just being lazy.</p>
<p>The value in having another person available isn&#8217;t with getting answers.  It&#8217;s getting wisdom.</p>
<p>First, I&#8217;ve had the pleasure of sitting down and chatting with a number of very capable programmers.  They&#8217;ve shared all kinds of stories and tools and techniques.  This kind of knowledge isn&#8217;t gained in asking them questions, it&#8217;s gained through general discussion.  One doesn&#8217;t need a mentor to have that discussion, one just needs a friend.</p>
<p>Second is paired programming.  At first it seems like a waste of both people&#8217;s time.. sitting down working on the same thing, tripping on eachother&#8217;s code, questioning and countermanding eachother&#8217;&#8217;s work.. getting derailed by conversation.  But it&#8217;s that same conversation which is so valuable.  One person is always teaching the other.  One person is always learning from the other.  One codes, the other searches for answers.  It&#8217;s probably the best time I could ever imagine spending on my code.  For this too, one doesn&#8217;t need a mentor.</p>
<p>So while I can&#8217;t imagine a value in a mentor, I can imagine great value in a similarly-skilled partner for paired programming.  A mentor is someone who is head and shoulders above the mentee, but that&#8217;s often <em>a Bad thing</em>.  It&#8217;s Bad because too often the mentee is merely absorbing the skills of the mentee.  When two equally-skilled people are put together, they are each able to explore without being bogged down by the perceived expertise of the others.  The pair can learn and argue and teach oneanother.  A pair has a flow of knowledge going both ways, where a mentor-mentee relationship too often flows one way.</p>
<p>While it&#8217;s very likely that a mentor will relay their best skills, they will often have favourite tools, methods, etc.  With a pair working together, they will each develop their own favourites, and they will each help the other understand their reasoning.  Between the two people, the tools, methods etc. will be better than the benevolent bias of a mentor.  I argue this because the tools, methods etc. are changing over time, and the mentor is always a little out of date.</p>
<p>But all the wisdom the mentor has cannot be omitted from the pair&#8217;s learning experience.  This is where a good &#8220;best practices&#8221; site comes in.</p>
<p style="padding-left:30px;"><a href="http://blog.majesticseacreature.com/archives/2009.03/rbp_blog.html">http://blog.majesticseacreature.com/archives/2009.03/rbp_blog.html</a></p>
<p>Gregory is on the right track.  I hope that works out, because it&#8217;s a resource that will be essential for people like me.. permanently learning and never quite sure we&#8217;re learning the right stuff.</p>
<p>I think that there&#8217;s a place for making more &#8220;newbie friendly&#8221; information available.  As I said earlier, it&#8217;ll be an inevitability for me to write down my thoughts and experiences and create a concise tutorial which others can follow.  It&#8217;s not for right now, but it&#8217;ll happen so long as I&#8217;m interested in programming.</p>
Posted in Documentation, HOWTO, Programming / Scripting, Questions / Wanted Tagged: 10000 hours, 10000-Hour Rule, best practices, compatency, learning, Malcolm Gladwell, mentee, mentor, Outliers, paired programming, tutorial <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/904/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/904/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/904/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/904/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/904/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/904/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/904/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/904/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/904/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/904/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=904&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/08/23/ive-put-in-my-10000-hours/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
		<item>
		<title>Re-learning to Program, &#8220;The Right Way&#8221;:  Behavour-Driven Development and Test-Driven Development</title>
		<link>http://spiralofhope.wordpress.com/2009/08/23/re-learning-to-program-the-right-way-behavour-driven-development-and-test-driven-development/</link>
		<comments>http://spiralofhope.wordpress.com/2009/08/23/re-learning-to-program-the-right-way-behavour-driven-development-and-test-driven-development/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 01:00:23 +0000</pubDate>
		<dc:creator>spiralofhope</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Programming / Scripting]]></category>
		<category><![CDATA[Questions / Wanted]]></category>
		<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[test cases]]></category>
		<category><![CDATA[unit tests]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[behavior driven development]]></category>
		<category><![CDATA[behaviour driven development]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[BDD]]></category>

		<guid isPermaLink="false">http://spiralofhope.wordpress.com/?p=905</guid>
		<description><![CDATA[I act in cycles.  I am inspired by and I work on something new, and that inspiration shifts around.  I also have a tendancy to drop and pick up projects in cycles.  In the past I&#8217;ve dropped ideas for long enough for all effort to become meaningless given enough time, but these days I&#8217;ve been [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=905&subd=spiralofhope&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I act in cycles.  I am inspired by and I work on something new, and that inspiration shifts around.  I also have a tendancy to drop and pick up projects in cycles.  In the past I&#8217;ve dropped ideas for long enough for all effort to become meaningless given enough time, but these days I&#8217;ve been careful to cycle back to earlier ideas to scrape off the cruft and re-launch the project.</p>
<p>When I re-launch a project, I often find myself bringing significant maturity to the table.  I have new ideas and techniques, and I take a kind of sick pleasure in redoing much of my previous work.  This isn&#8217;t just a programming thing.. it applies to anything that I&#8217;ve been working on.</p>
<p>So when I cycled back to programming as an overall topic, I decided to research languages and techniques again.  I went through a bunch of languages, most of which I still have a significant amount of notes from previous reviews.  I even sat down and started hacking around with Python.  But the more time I spent on any of that, the more I missed Ruby.</p>
<p>Ruby is crap.  It&#8217;s garbage collection, threads and IO suck.  It&#8217;s slow.  It has no compiling.  It&#8217;s crappy in so many ways, but because of it&#8217;s syntax and community.. it&#8217;s <em>fun</em>.</p>
<p>I can&#8217;t help it.  I look through language after language after language.. and I miss Ruby.  So I decided to look into Ruby some more.  I only have basic competence with it, but I&#8217;ve still managed to create some impressive (to me) stuff with it.</p>
<p>While I know that the syntax and community are extraordinarily important for a programming language, I also know that underlying philosophies, techniques and tools are also important.  So &#8211; as I have many times in the past &#8211; I went looking into all of the foundation of what I know and how I work.</p>
<p>I had done some playing with unit testing in the past, but somehow I ended up straying from that previous knowledge and work by creating my own automated testing systems.  I don&#8217;t really know how or why I forgot my earlier knowledge either.  So when I realized this recently, I found some old code and stripped it to create a simple example for myself.  I&#8217;ll make another blog post with that, to help out the other Ruby Test::Unity newbies.  Actually, automatically linking my notes system with blog posting is something I&#8217;ll eventually get into.. when I build my monstrosity of a CMS/Wiki/Weblog.  One day.</p>
<p>At any rate, when researching better testing and testing tools, I came across Behaviour-Driven Development (BDD).  I&#8217;ve had exposure to Extreme Programming, Agile Development and similar stuff, so BDD isn&#8217;t particularly new to me.  But I did bump into <a href="http://cukes.info/">Cucumber</a>, and I started to get more interested.</p>
<p>I figure that if I step way back, and get into some sort of spec-writing like that, then I can help direct my attention and improve my programming.  This kind of work is also programming language-agnostic, so I could much more easily switch to whatever language I was goofing around with at the time.</p>
<p>But one of the biggest reasons for my wanting to get into it is to help with the loomingly-large &#8220;compiled website&#8221; project which I was working on.  I say &#8220;was&#8221; because I managed to drop that project and skip a number of opportunities to get back into it.  Nice specifications would break the project down, making the whole thing much less intimidating to set down and later pick back up.</p>
<p>Specs could also help me better understand my priorities .. to distinguish &#8220;must have&#8221; features from mere wishes.</p>
<p>At any rate, I&#8217;ll do some more research on all of this, and hopefully I&#8217;ll remember to blog something about them.</p>
<p>I&#8217;ll end this with my quick interpretation of <a href="http://www.infoq.com/news/2008/10/qualities_good_test">What are the Qualities of a Good Test?</a></p>
<p><strong>Technical:</strong></p>
<ol>
<li> Isolated from the outside world
<ul>
<li> Doesn&#8217;t talk to the database, communicate across the network, touch the file system or do special things to the environment</li>
</ul>
<ol>
<li> It is written gray-box, i.e. it reads as if it were black-box, but sometimes takes advantage of white-box knowledge. (Typically a critical factor in avoiding combinatoric issues.)</li>
</ol>
</li>
<li> Isolated from other tests
<ul>
<li> Unaffected by the presence, absence, or results of other tests.  No dependencies.  Self-contained.</li>
</ul>
<ol>
<li> Order Independent and Isolated &#8211; it should be possible to run the tests in whatever order the test runner chooses.</li>
<li> be able to run at the same time as other unit tests, even concurrently with itself</li>
<li> It does not test the object inside the running app, but instead in a purpose-built testing application.</li>
</ol>
</li>
<li> Repeatable in every aspect
<ol>
<li> Test your boundary conditions and Always keep your tests passing at 100%.</li>
</ol>
</li>
</ol>
<p><strong>Social / Convenience:</strong></p>
<ol>
<li> Simplifies design and improves productivity. Improvements in code quality and a reduction in bugs are an important side effect.</li>
<li> Intention-revealing &#8211; the best unit tests make it clear to the reader how an objects API is intended to be used.</li>
<li> Easy to Setup
<ol>
<li> Short, typically under a dozen lines of code.</li>
<li> It invokes only a tiny portion of the code, most usually a single branch of a single function.</li>
<li> Quick and easy to write</li>
<li> It is generally written before the code-change it is meant to test.</li>
<li> Maintainable</li>
</ol>
</li>
<li> Fast to run/complete
<ul>
<li> As above, it&#8217;s short and invokes a tiny portion of the code.</li>
</ul>
</li>
<li> Unique (providing confidence not provided by other tests/uncorrelated with other tests)</li>
<li> Automated</li>
<li> Readable</li>
<li> Trustworthy
<ol>
<li> Coded to the same standard as shipping code, i.e. the team&#8217;s best current understanding of coding excellence.</li>
</ol>
</li>
<li> Promotes code commits: In combination with all other microtests of an app, it serves as a &#8216;gateway-to-commit&#8217;. That is, a developer is encouraged to commit anytime all microtests run green, and discouraged (strongly, even nastily) to commit otherwise.</li>
</ol>
<p>I have no idea what that means:</p>
<ul>
<li> It avoids most or all usage of &#8216;awkward&#8217; collaborators via a variety of slip-and-fake techniques.</li>
</ul>
Posted in HOWTO, Programming / Scripting, Questions / Wanted, uncategorized Tagged: BDD, behavior driven development, behaviour driven development, TDD, test, test cases, test driven development, Testing, unit tests <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/spiralofhope.wordpress.com/905/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/spiralofhope.wordpress.com/905/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/spiralofhope.wordpress.com/905/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/spiralofhope.wordpress.com/905/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/spiralofhope.wordpress.com/905/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/spiralofhope.wordpress.com/905/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/spiralofhope.wordpress.com/905/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/spiralofhope.wordpress.com/905/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/spiralofhope.wordpress.com/905/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/spiralofhope.wordpress.com/905/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=spiralofhope.wordpress.com&blog=7243311&post=905&subd=spiralofhope&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://spiralofhope.wordpress.com/2009/08/23/re-learning-to-program-the-right-way-behavour-driven-development-and-test-driven-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/13c78ef3f19f000a0cf481d2aea17a79?s=96&#38;d=&#38;r=R" medium="image">
			<media:title type="html">spiralofhope</media:title>
		</media:content>
	</item>
	</channel>
</rss>