<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>michael-mccracken.net</title>
	
	<link>http://michael-mccracken.net/wp</link>
	<description>this is a weblog.</description>
	<pubDate>Tue, 10 Feb 2009 14:27:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<geo:lat>32.838761</geo:lat><geo:long>-117.261591</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Michael-mccrackennet" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Links for 2009-07-01 [del.icio.us]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/U4tt4QV-Fxc/michael_mccracken</link><pubDate>Thu, 02 Jul 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/michael_mccracken#2009-07-01</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://raphaelbost.free.fr/DrawBerry.html"&gt;DrawBerry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.iecc.com/linker/"&gt;Linkers and Loaders&lt;/a&gt;&lt;br/&gt;
The classic book in free format. Invaluable for understanding how programs actually work…&lt;/li&gt;
&lt;li&gt;&lt;a href="http://lambda-the-ultimate.org/node/3474"&gt;Modern dynamic linking infrastructure for PLT | Lambda the Ultimate&lt;/a&gt;&lt;br/&gt;
Post that has some great links for references on linking and dynamic linking/loading.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/U4tt4QV-Fxc" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/michael_mccracken#2009-07-01</feedburner:origLink></item><item><title>Links for 2009-06-17 [del.icio.us]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/0vI5g-1r52s/michael_mccracken</link><pubDate>Thu, 18 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/michael_mccracken#2009-06-17</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://feedafever.com/"&gt;Fever&amp;deg; Red hot. Well read.&lt;/a&gt;&lt;br/&gt;
Looks like a great iteration on feed reader UI. But self-hosted?&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/0vI5g-1r52s" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/michael_mccracken#2009-06-17</feedburner:origLink></item><item><title>Links for 2009-06-09 [del.icio.us]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/e5W1BneCxH8/michael_mccracken</link><pubDate>Wed, 10 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/michael_mccracken#2009-06-09</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.usefulfruit.com/pearnote/"&gt;Pear Note - Note Taking Utility for Mac - Useful Fruit Software&lt;/a&gt;&lt;br/&gt;
note taking util with time-slider for taking notes while recording talks&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/e5W1BneCxH8" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/michael_mccracken#2009-06-09</feedburner:origLink></item><item><title>Links for 2009-06-08 [del.icio.us]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/k0vFnyp-FE0/michael_mccracken</link><pubDate>Tue, 09 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/michael_mccracken#2009-06-08</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.scottaaronson.com/writings/bignumbers.html"&gt;Who Can Name the Bigger Number?&lt;/a&gt;&lt;br/&gt;
A great essay on big numbers. Includes some computability theory&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/k0vFnyp-FE0" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/michael_mccracken#2009-06-08</feedburner:origLink></item><item><title>Links for 2009-06-04 [del.icio.us]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/9YsYg57okQo/michael_mccracken</link><pubDate>Fri, 05 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/michael_mccracken#2009-06-04</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://cluecc.sourceforge.net/"&gt;Clue: an ANSI C compiler targeting high level languages&lt;/a&gt;&lt;br/&gt;
Compiler for C programs to target java, lua, javascript, and perl, etc.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/9YsYg57okQo" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/michael_mccracken#2009-06-04</feedburner:origLink></item><item><title>Links for 2009-06-03 [del.icio.us]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/tyF0JBoGAu0/michael_mccracken</link><pubDate>Thu, 04 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/michael_mccracken#2009-06-03</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sphinx.pocoo.org/"&gt;Overview &amp;mdash; Sphinx v0.6.1 documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/tyF0JBoGAu0" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/michael_mccracken#2009-06-03</feedburner:origLink></item><item><title>Links for 2009-05-30 [del.icio.us]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/EyeC5pOJBg8/michael_mccracken</link><pubDate>Sun, 31 May 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/michael_mccracken#2009-05-30</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.seriouseats.com/recipes/2009/05/cook-the-book-welsh-rarebit.html"&gt;Cook the Book: Welsh Rarebit | Serious Eats : Recipes&lt;/a&gt;&lt;br/&gt;
A twist on grilled cheese&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/EyeC5pOJBg8" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/michael_mccracken#2009-05-30</feedburner:origLink></item><item>
		<title>Something Buckets</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/KWZBhdk7Fxc/</link>
		<comments>http://michael-mccracken.net/wp/2009/02/10/something-buckets/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 14:27:49 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[VoodooPad]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/?p=130</guid>
		<description><![CDATA[I weigh in on the idea of "everything buckets", and using the filesystem.]]></description>
			<content:encoded><![CDATA[<p>Alex Payne&#8217;s recent post <a href="http://al3x.net/2009/01/31/against-everything-buckets.html">The case against everything buckets</a> makes a strong point in favor of using the filesystem for filing. To paraphrase: If your problem is that you have a bunch of files you need to search through, and possibly tag, then the filesystem and Spotlight are probably closer to solving your problem than you expect. </p>

<p>I enjoyed reading his post, because I like rules of thumb for simple design, and one of my favorites is &#8220;why not just use files?&#8221; - there are often reasons to do something else, but the filesystem is faster, more reliable, and more open than anything you&#8217;re likely to come up with on the first try. So you&#8217;d better be sure you&#8217;re not just poorly reimplementing it.</p>

<p>Buzz Andersen has a <a href="http://log.scifihifi.com/post/76989703/everything-buckets">thorough response</a>, centering on the fact that VoodooPad is a very useful app. Certainly I agree - I use it all the time, and its hyperlinking sets it apart from other notes apps (and the filesystem). So yes, VoodooPad is a Good Idea.</p>

<p>But is VoodooPad really an &#8220;Everything Bucket&#8221;? I&#8217;m not sold - you can use it to store PDFs and images and other files, but it really focuses on pages, and those files are just attachments to your pages. I see it as a notes app. I think if your problem is keeping notes - with images if necessary, linking between them, and searching those notes, then VoodooPad is clearly better than the filesystem. But you don&#8217;t have to put everything else in there too.</p>

<p>I agree with Alex that I don&#8217;t want one program to keep everything in a proprietary database. I like apps that keep my files as files. (like <a href="http://c-command.com/eaglefiler/">EagleFiler</a>.) But I do want layers on top of the filesystem - you wouldn&#8217;t want to use just files for email, for example. </p>

<p>The only solution that&#8217;s always bad is the solution to someone else&#8217;s problem.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=KWZBhdk7Fxc:RVyDy7YmAJ8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=KWZBhdk7Fxc:RVyDy7YmAJ8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=KWZBhdk7Fxc:RVyDy7YmAJ8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=KWZBhdk7Fxc:RVyDy7YmAJ8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=KWZBhdk7Fxc:RVyDy7YmAJ8:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/KWZBhdk7Fxc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2009/02/10/something-buckets/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2009/02/10/something-buckets/</feedburner:origLink></item>
		<item><title>(Untitled) [Flickr]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/nWE2VghOWMg/</link><category>arizona</category><category>desert</category><category>hike</category><dc:creator>michael.mccracken</dc:creator><pubDate>Sun, 04 Jan 2009 15:37:32 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3168733888</guid><creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">http://creativecommons.org/licenses/by/2.0/deed.en</creativeCommons:license><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/michaelmccracken/"&gt;michael.mccracken&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/michaelmccracken/3168733888/" title=""&gt;&lt;img src="http://farm4.static.flickr.com/3078/3168733888_bb5b189357_m.jpg" width="180" height="240" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From an April 2003 hike near Phoenix.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/nWE2VghOWMg" height="1" width="1"/&gt;</description><enclosure url="http://farm4.static.flickr.com/3078/3168733888_08962a0429_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2003-04-01T00:00:00-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/michaelmccracken/3168733888/</feedburner:origLink></item><item><title>(Untitled) [Flickr]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/nt6RBc__i6I/</link><category>arizona</category><category>desert</category><category>hike</category><dc:creator>michael.mccracken</dc:creator><pubDate>Sun, 04 Jan 2009 15:37:30 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3167903343</guid><creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">http://creativecommons.org/licenses/by/2.0/deed.en</creativeCommons:license><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/michaelmccracken/"&gt;michael.mccracken&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/michaelmccracken/3167903343/" title=""&gt;&lt;img src="http://farm2.static.flickr.com/1058/3167903343_9c84ccb411_m.jpg" width="240" height="180" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From an April 2003 hike near Phoenix.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/nt6RBc__i6I" height="1" width="1"/&gt;</description><enclosure url="http://farm2.static.flickr.com/1058/3167903343_2856535aa7_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2003-04-01T00:00:00-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/michaelmccracken/3167903343/</feedburner:origLink></item><item><title>(Untitled) [Flickr]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/w5C_5h1nuHk/</link><category>arizona</category><category>desert</category><category>hike</category><dc:creator>michael.mccracken</dc:creator><pubDate>Sun, 04 Jan 2009 15:37:28 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3167903247</guid><creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">http://creativecommons.org/licenses/by/2.0/deed.en</creativeCommons:license><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/michaelmccracken/"&gt;michael.mccracken&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/michaelmccracken/3167903247/" title=""&gt;&lt;img src="http://farm2.static.flickr.com/1357/3167903247_5b8fa264ba_m.jpg" width="180" height="240" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From an April 2003 hike near Phoenix.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/w5C_5h1nuHk" height="1" width="1"/&gt;</description><enclosure url="http://farm2.static.flickr.com/1357/3167903247_52ac1bfea4_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2003-04-01T00:00:00-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/michaelmccracken/3167903247/</feedburner:origLink></item><item><title>(Untitled) [Flickr]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/tBSze3EJNIw/</link><category>arizona</category><category>desert</category><category>hike</category><dc:creator>michael.mccracken</dc:creator><pubDate>Sun, 04 Jan 2009 15:37:26 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3167903161</guid><creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">http://creativecommons.org/licenses/by/2.0/deed.en</creativeCommons:license><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/michaelmccracken/"&gt;michael.mccracken&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/michaelmccracken/3167903161/" title=""&gt;&lt;img src="http://farm4.static.flickr.com/3087/3167903161_4d9434e44f_m.jpg" width="180" height="240" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From an April 2003 hike near Phoenix.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/tBSze3EJNIw" height="1" width="1"/&gt;</description><enclosure url="http://farm4.static.flickr.com/3087/3167903161_a84bb507b0_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2003-04-01T00:00:00-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/michaelmccracken/3167903161/</feedburner:origLink></item><item><title>(Untitled) [Flickr]</title><link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/92zQlSzzWCo/</link><category>arizona</category><category>desert</category><category>hike</category><dc:creator>michael.mccracken</dc:creator><pubDate>Sun, 04 Jan 2009 15:37:25 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3168733478</guid><creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">http://creativecommons.org/licenses/by/2.0/deed.en</creativeCommons:license><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/michaelmccracken/"&gt;michael.mccracken&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/michaelmccracken/3168733478/" title=""&gt;&lt;img src="http://farm4.static.flickr.com/3256/3168733478_afcddecc0f_m.jpg" width="240" height="180" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From an April 2003 hike near Phoenix.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/92zQlSzzWCo" height="1" width="1"/&gt;</description><enclosure url="http://farm4.static.flickr.com/3256/3168733478_b35148875b_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2003-04-01T00:00:00-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/michaelmccracken/3168733478/</feedburner:origLink></item><item>
		<title>iCal’s Text Field Jumble</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/uBduSe0jI2I/</link>
		<comments>http://michael-mccracken.net/wp/2008/11/02/text-field-jumble/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 21:38:46 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[mac]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[cocoa]]></category>

		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/?p=121</guid>
		<description><![CDATA[Discussing some quirks of dialog design in iCal's event edit window.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve written here before about text fields, particularly the problem of having a good-looking &#8216;display&#8217; mode and a separate &#8216;edit&#8217; mode for data you don&#8217;t edit so often, like in AddressBook.</p>

<p>The most recent version of iCal decided that events are write-once-read-many as well. You now have to use cmd-E to get into edit mode, while cmd-I just gives you a small display mode.</p>

<p>I&#8217;m mostly OK with that, although I find I edit events about as often as I look at their info windows - after editing I usually just deal with alarms, not the events themselves. The casual glance at the time and title is always enough - I think either you&#8217;re looking at the time and title or you&#8217;re editing. I don&#8217;t see the appeal in the new &#8216;info-only&#8217; mode (if it&#8217;s actually new - it seems new.)</p>

<p>However, the change does highlight the jumble of editable text fields and text-like fields in the edit window:
<a href="http://michael-mccracken.net/wp/wp-content/uploads/2008/11/pastedgraphic-1.tiff"><img src="http://michael-mccracken.net/wp/wp-content/uploads/2008/11/pastedgraphic-1.tiff" alt="" title="Info window in iCal, 2008" class="alignnone size-full wp-image-125" /></a></p>

<p><a href="http://michael-mccracken.net/wp/wp-content/uploads/2008/11/pastedgraphic.tiff"><img src="http://michael-mccracken.net/wp/wp-content/uploads/2008/11/pastedgraphic.tiff" alt="" title="iCal info window, 2008" class="alignnone size-full wp-image-126" /></a></p>

<p>The &#8220;Add Attendees&#8221; link and the &#8220;None&#8221; placeholder for url act the same - you click on them, and enter text.
One&#8217;s a link and one&#8217;s mute gray text. Why?
For my part, I think the gray text is too understated, and the link is too garish.</p>

<p>There are other differences: you can tab to the &#8220;url&#8221; field, but you can&#8217;t tab to &#8220;attendees&#8221;&#8230; until you add one, then you can. Once you click on either of them, the url field pops up a plain white raised NSTextField, but the attendees field is sunken and translucent, apparently an NSTokenField?</p>

<p>Both of the blue links could also be buttons. I&#8217;m still not completely sold on replacing buttons with links, but I can understand the trend. I think a small plus-sign button would be fine for &#8220;Add File&#8221;, though, and &#8220;Attendees&#8221; ought to be a text field. Why force the user to use the mouse when adding data to an event?</p>

<p>All in all, I think the &#8220;Add Attendees&#8221; link/field is pretty strange. I&#8217;m curious if I missing a precedent somewhere.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=uBduSe0jI2I:n-grQmF0HOc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=uBduSe0jI2I:n-grQmF0HOc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=uBduSe0jI2I:n-grQmF0HOc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=uBduSe0jI2I:n-grQmF0HOc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=uBduSe0jI2I:n-grQmF0HOc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/uBduSe0jI2I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2008/11/02/text-field-jumble/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2008/11/02/text-field-jumble/</feedburner:origLink></item>
		<item>
		<title>go juggle — an attention callback</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/3EpLFDXxehc/</link>
		<comments>http://michael-mccracken.net/wp/2008/08/28/go-juggle-an-attention-callback/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 02:31:05 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[X Windows]]></category>

		<category><![CDATA[computers]]></category>

		<category><![CDATA[productivity]]></category>

		<category><![CDATA[scripts]]></category>

		<category><![CDATA[script utility productivity]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/?p=119</guid>
		<description><![CDATA[I talk about a script I've been using to tweak my attention scheduling.]]></description>
			<content:encoded><![CDATA[<p>Sometimes progress on a project for me consists of a few short bursts of activity in between stretches of waiting for some long-running thing to complete so I can figure out what I need to do with it next.</p>

<p>Because I always have more than one project going, I don&#8217;t actually wait much. I just switch workspaces and try to make progress on the next thing. If I can&#8217;t make progress on anything immediate, I&#8217;ll end up checking email or looking up something for a side project.</p>

<p>This kind of multitasking is inefficient, but inevitable when I might have to wait for 20 minutes or more for a compute job or a compile to finish.</p>

<p>The problem with this approach is that the things I&#8217;m waiting for often finish while I&#8217;m off doing something else, and if I get too involved, the low-priority research or emails will eat up my day while the high-priority work sits waiting for me.</p>

<p>I&#8217;ve attacked this problem in the past when using OS X with <a href="gr">growl</a>, but I can&#8217;t call growlnotify from remote systems. However, I just found <a href="dzen">dzen</a> for X Windows, a lightweight notification display utility that compiles easily on every system I&#8217;ve tried, and works remotely with ssh X forwarding.</p>

<p>I wrote a simple script called <code>go</code>, which just executes its arguments and runs <code>dzen</code> when it&#8217;s done. Now I type (for example) <code>go make</code> and I can switch over to something else, confident that I&#8217;ll see a big popup window letting me know when I can get back to working on my highest priority project. </p>

<p>Here&#8217;s basically the entire <code>go</code> script:</p>

<pre>
#!/bin/ksh
echo $@
$@
echo $@ completed on `hostname` \
 | dzen2 -p -h 64 -bg darkblue 

</pre>

<p>It&#8217;s simple but it&#8217;s working great for me. I&#8217;ve tried some improvements like randomizing window placement to avoid overlapping notifications, but the simple version above really does all I need.</p>

<p>Finally, a couple of details. zsh always seems to want to spell-check &#8216;go&#8217;, so I really named it &#8216;~/bin/executeAndNotify.sh&#8217; and just aliased &#8216;go&#8217; to that.
Also, I&#8217;ve found it can mess with shell quoting as is, so sometimes I have to do <code>'somecommand ; go echo done'</code>. If someone has a tip on getting the quoting right in the script, I&#8217;d love to hear it. The problem crops up when you try something like &#8216;go make CC=&#8221;cc -g&#8221;&#8216; - the quotes don&#8217;t make it through.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=3EpLFDXxehc:Wwqgl4NbUtw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=3EpLFDXxehc:Wwqgl4NbUtw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=3EpLFDXxehc:Wwqgl4NbUtw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=3EpLFDXxehc:Wwqgl4NbUtw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=3EpLFDXxehc:Wwqgl4NbUtw:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/3EpLFDXxehc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2008/08/28/go-juggle-an-attention-callback/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2008/08/28/go-juggle-an-attention-callback/</feedburner:origLink></item>
		<item>
		<title>Two hours</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/6DRDDc8AEj0/</link>
		<comments>http://michael-mccracken.net/wp/2008/03/27/two-hours/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 02:42:54 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2008/03/27/two-hours/</guid>
		<description><![CDATA[Daniel Jalkut just wrote about a desktop bookmarking app called Pukka, which despite being apparently nice enough to warrant a positive review, was simple enough that Leo Laporte wasn&#8217;t comfortable just saying it cost $15. I felt like adding to the discussion after a few commenters described the app as trivial - in one case [...]]]></description>
			<content:encoded><![CDATA[<p>Daniel Jalkut just <a href="http://www.red-sweater.com/blog/481/it-should-be-free">wrote about</a> a desktop bookmarking app called <a href="http://codesorcery.net/pukka/">Pukka</a>, which despite being apparently nice enough to warrant a positive review, was simple enough that Leo Laporte wasn&#8217;t comfortable just saying it cost $15. I felt like adding to the discussion after a few commenters described the app as trivial - in one case saying that any good programmer could write it in two hours. </p>

<p>This bothered me, so I downloaded Pukka and gave it a try. I was curious to see if it was indeed trivial.</p>

<p>While it definitely doesn&#8217;t seem like the most feature-rich program up front, there&#8217;s a lot of stuff in there - it works with more than one bookmarking site, it integrates with RSS readers, uses the OS X keychain, includes Bonjour discovery of nearby users, and has AppleScript support.</p>

<p>Further, it shows attention to detail. Although I may not agree with some of Justin&#8217;s UI design choices, it&#8217;s clear that he spent time thinking about bookmarking workflow. I know in some of my projects, just pondering design choices takes hours - drawing mockups, and trying things out.</p>

<p>End-user app development isn&#8217;t just programming, and programming isn&#8217;t just typing.</p>

<p>I think it&#8217;s fair to say that that although you might be able to retype the code by hand in a few hours, Pukka represents a good chunk of serious work. I&#8217;m sure the mac developers in the audience will agree - Applescript support alone is almost guaranteed to be more than two hours of work.</p>

<p>I&#8217;m glad that there&#8217;s a market for small apps and small developers, and I hope downwards price pressure from large subsidized or bundled apps doesn&#8217;t kill that off.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=6DRDDc8AEj0:6RAyASeo9BQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=6DRDDc8AEj0:6RAyASeo9BQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=6DRDDc8AEj0:6RAyASeo9BQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=6DRDDc8AEj0:6RAyASeo9BQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=6DRDDc8AEj0:6RAyASeo9BQ:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/6DRDDc8AEj0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2008/03/27/two-hours/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2008/03/27/two-hours/</feedburner:origLink></item>
		<item>
		<title>VoodooPad 3.5</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/wG7rBzT4WXE/</link>
		<comments>http://michael-mccracken.net/wp/2008/02/11/voodoopad-35/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 23:00:44 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[VoodooPad]]></category>

		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2008/02/11/voodoopad-35/</guid>
		<description><![CDATA[A solid update of my favorite desktop wiki.]]></description>
			<content:encoded><![CDATA[<p>From Flying Meat, <a href="http://flyingmeat.com/voodoopad">VoodooPad</a> 3.5 is out.
(<a href="http://www.flyingmeat.com/fs/flystashweb.cgi/2dc35f78-ac3e-01dc-01d4-c0cbe4c4bd91">release notes here</a>).</p>

<p>It&#8217;s a solid update, including welcome image-editor integration and more. I thought I&#8217;d point out my favorite feature in the release notes:</p>

<p>&ldquo;You can now edit pages and sort the results in the search window (woo!).&rdquo;</p>

<p>I like this because it matches a kind of manual refactoring habit I picked up with Project Builder / XCode&#8217;s excellent &ldquo;Find in Project&#8230;&rdquo; window - I search for a keyword that marks places I need to look at and edit the files right in the search window. (Note: <a href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Repeating-Search.html">&lsquo;occur-mode&rsquo; and kin</a> are a powerful way to do the same in Emacs&#8230;)</p>

<p>It&#8217;s a powerful habit if you plan for it, by using comments in code to keep track of what you&#8217;ve touched when making a lot of cross-cutting changes, like <code># @addsearch</code> Then when you think you&#8217;re done with a change, you can run a quick search to see if you forgot to fix anything.</p>

<p>Sometimes in VoodooPad notes, I&#8217;ll write in placeholders like that comment when I don&#8217;t have a bit of information yet, and now I can follow my trails the same way I do in code.</p>

<p>Thanks, Gus!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=wG7rBzT4WXE:JEbAGe3piGY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=wG7rBzT4WXE:JEbAGe3piGY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=wG7rBzT4WXE:JEbAGe3piGY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=wG7rBzT4WXE:JEbAGe3piGY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=wG7rBzT4WXE:JEbAGe3piGY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/wG7rBzT4WXE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2008/02/11/voodoopad-35/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2008/02/11/voodoopad-35/</feedburner:origLink></item>
		<item>
		<title>PyObjC notes</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/-kKl6LJkjWQ/</link>
		<comments>http://michael-mccracken.net/wp/2008/02/01/pyobjc-notes/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 18:07:28 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[computers]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2008/02/01/pyobjc-notes/</guid>
		<description><![CDATA[Some things I've picked up from working with PyObjC recently.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been hacking around with <a href="http://pyobjc.sf.net">PyObjC</a>, the Python-ObjC/Cocoa bridge recently, and it&#8217;s quickly becoming my favorite way to write Cocoa apps. It&#8217;s really natural to mix Python idioms with Cocoa objects.</p>

<p>The latest version of PyObjC is 2.0, it&#8217;s installed by default on OS X 10.5, and XCode now includes templates for starting a PyObjC project. There&#8217;s even code autocomplete in XCode for PyObjC and IB integration, so aside from some smart-indenting issues, writing PyObjC in XCode is almost as natural as writing in ObjC.</p>

<p>I thought I&#8217;d post a few nice shortcuts and tips here.</p>

<p><br />
You can use tuples for NSRect/Range/Point, for instance, this -</p>

<pre><code>r = NSInsetRect(((0, 0) ,
                 (100, 100)), 
                10, 10)
</code></pre>

<p>creates this NSRect -</p>

<pre><code>NSRect origin=&lt;NSPoint x=10.0 
                       y=10.0&gt; 
       size=&lt;NSSize width=80.0 
                   height=80.0&gt;&gt;
</code></pre>

<p><br />
Passing python arrays as NSArray instances (and dictionaries as NSDictionaries) works great, but sometimes you need to pass a C array. The Python &#8216;array&#8217; module handles that nicely: </p>

<pre><code>import array
g = NSGradient.alloc().
   initWithColors_locations_colorSpace_(
    [NSColor.whiteColor(), 
     NSColor.blackColor()], &lt;br/&gt;
    array.array('f', [0.0, 1.0]), 
    NSColorSpace.deviceRGBColorSpace())
</code></pre>

<p><br />
ObjC selectors are just python strings in PyObjC.</p>

<pre><code>defNC.addObserver_selector_name_object_(self,
  'windowDidResize:',
  NSWindowDidResizeNotification,
  self)
# or
self.performSelectorOnMainThread_withObject_waitUntilDone_('doIt:', None, False)
# or 
if o.respondsToSelector_("fun:"): return o.fun_(a)
</code></pre>

<p><br />
Finally, something that comes in handy when working with KVC, the  &#8216;_&#8217; method now defined on NSObjects in PyObjC:</p>

<pre><code>o = &lt;Some ObjC object&gt;
print o._.myKey
o._.myKey = 44
# is equivalent to:
print o.valueForKey_('myKey')
o.setValue_forKey_(44, 'myKey')
</code></pre>

<p><br />
That last example is straight from the <a href="http://pyobjc.sourceforge.net/NEWS-2.0.html">NEWS page</a>, where lots of other useful info can be found.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=-kKl6LJkjWQ:hMkQltz2tVE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=-kKl6LJkjWQ:hMkQltz2tVE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=-kKl6LJkjWQ:hMkQltz2tVE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=-kKl6LJkjWQ:hMkQltz2tVE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=-kKl6LJkjWQ:hMkQltz2tVE:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/-kKl6LJkjWQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2008/02/01/pyobjc-notes/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2008/02/01/pyobjc-notes/</feedburner:origLink></item>
		<item>
		<title>What is Site Reliability Engineering at Google</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/KEZfmtbxH44/</link>
		<comments>http://michael-mccracken.net/wp/2008/01/13/what-is-site-reliability-engineering-at-google/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 20:58:55 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[computers]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2008/01/13/what-is-site-reliability-engineering-at-google/</guid>
		<description><![CDATA[I&#8217;ve been looking around for some more detailed information about the &#8220;Site Reliability Engineering&#8221; positions at Google.
Apparently the role is a real mix of very large-scale system administration, planning and automation.

I&#8217;ve collected some links to public info about the job.

The Google channel has a promotional video from one engineer about the role - he tells [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking around for some more detailed information about the &#8220;Site Reliability Engineering&#8221; positions at Google.
Apparently the role is a real mix of very large-scale system administration, planning and automation.</p>

<p>I&#8217;ve collected some links to public info about the job.</p>

<p>The Google channel has <a href="http://www.youtube.com/watch?v=y31STIrwtlk">a promotional video</a> from one engineer about the role - he tells a quick story about being on call to monitor and address problems with Google talk.</p>

<p>A set of <a href="http://www.ukuug.org/events/spring2007/programme/ThatCouldntHappenToUs.pdf">slides from a talk by James Youngman</a> at the UK Unix &amp; Open Systems User&#8217;s Group gives a good description of the general task, and dives deeper into two specific examples - powering down failed disks, and protecting data with checksums, exploring how straightforward ideas can explode at scale. 
(These slides also have potentially the best proprietary-information disclaimer I&#8217;ve ever seen: &#8220;This has been written entirely in ASCII. No EBCDIC or animal fat.&#8221;)</p>

<p><a href="http://sysadmin.miniconf.org/2006/pollmann_google_lightning_talk.ppt">Here</a> is another set of slides with a quick overview, from a &#8216;lightning talk&#8217;.</p>

<p>A sampling of what Google SRE engineers put in their public resumes about their job includes quite a span - from troubleshooting mission critical services to writing automation software (in Python).</p>

<p>And finally, an <a href="http://googleresearch.blogspot.com/2006/03/hiring-lake-wobegon-strategy.html">interesting post from 2006</a> about the theory behind Google&#8217;s hiring strategy, summarized as &#8220;only hire candidates who are above the mean of your current employees&#8221;.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=KEZfmtbxH44:nw75PPviPm8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=KEZfmtbxH44:nw75PPviPm8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=KEZfmtbxH44:nw75PPviPm8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=KEZfmtbxH44:nw75PPviPm8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=KEZfmtbxH44:nw75PPviPm8:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/KEZfmtbxH44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2008/01/13/what-is-site-reliability-engineering-at-google/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2008/01/13/what-is-site-reliability-engineering-at-google/</feedburner:origLink></item>
		<item>
		<title>Twitter Stats in SVG using gnuplot</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/3UaGGW6mpL0/</link>
		<comments>http://michael-mccracken.net/wp/2008/01/02/twitter-stats-in-svg-using-gnuplot/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 20:15:15 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[scripts]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2008/01/02/twitter-stats-in-svg-using-gnuplot/</guid>
		<description><![CDATA[A quick recipe for getting twitter stat graphs without Numbers.]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/dacort">Damon Cortesi</a> just shared a handy script for grabbing your tweets and compiling some stats about when you post to twitter and who you reply to.</p>

<p>His script generates a list of numbers and included a Numbers template to paste them into. Since I don&#8217;t have Numbers, I&#8217;ve modified <a href="http://dcortesi.com/2007/12/27/twitter-stats/">his script</a> to write a file that can be read by <a href="http://gnuplot.info">gnuplot</a>, and wrote a basic gnuplot script to output an SVG file version of the stats.</p>

<p>While I was at it, I changed it so it no longer counts &#8220;@someone&#8221; separately from &#8220;@someone:&#8221;.</p>

<p>Both scripts are right here &#8211; <a href="http://michael-mccracken.net/twitter/gnuplot_twitterstats.tgz">gnuplot_twitterstats.tgz</a></p>

<p>It uses gnuplot 4.2, which you can get on OS X with <a href="http://www.macports.org/">macports</a> using <code>port install gnuplot +no_x11'</code>. (Or it&#8217;s a pretty easy build on its own, see the <a href="http://gnuplot.sourceforge.net/download.html">gnuplot download page</a> )</p>

<p>Here are my stats:
<object data="http://michael-mccracken.net/twitter/2007stats.svg" type="image/svg+xml"> Sorry, it looks like your browser doesn&#8217;t support SVG. You&#8217;re really not missing much.</object>
<a href="http://michael-mccracken.net/twitter/2007stats.svg">Click here for a full-screen version.</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=3UaGGW6mpL0:flUbAtlKAhA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=3UaGGW6mpL0:flUbAtlKAhA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=3UaGGW6mpL0:flUbAtlKAhA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=3UaGGW6mpL0:flUbAtlKAhA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=3UaGGW6mpL0:flUbAtlKAhA:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/3UaGGW6mpL0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2008/01/02/twitter-stats-in-svg-using-gnuplot/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2008/01/02/twitter-stats-in-svg-using-gnuplot/</feedburner:origLink></item>
		<item>
		<title>TaskPaper adds just enough to stick</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/kvvIbkq2O60/</link>
		<comments>http://michael-mccracken.net/wp/2007/11/01/taskpaper-adds-just-enough-to-stick/#comments</comments>
		<pubDate>Thu, 01 Nov 2007 19:47:31 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[mac]]></category>

		<category><![CDATA[productivity]]></category>

		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2007/11/01/taskpaper-adds-just-enough-to-stick/</guid>
		<description><![CDATA[TaskPaper 1.0 is a to-do list app that adds just a bit of sauce to what I was doing already, and it's great.]]></description>
			<content:encoded><![CDATA[<p>My favorite apps, the ones that slip easily into everyday use and stick there, just start with plain text and add some extra sauce. <a href="http://voodoopad.com">VoodooPad</a> is a great example, and Hog Bay Software&#8217;s new app <a href="http://hogbaysoftware.com/products/taskpaper">TaskPaper</a> is, too.</p>

<p>I&#8217;ve used both <a href="http://kinkless.com/kgtd">kgtd</a> and <a href="http://bargiel.home.pl/iGTD/">iGTD</a>, and played around with a few others. I came closest to sticking with a system using kgtd, but switched to iGTD because manually syncing kgtd got old. </p>

<p>All the extra <em>stuff</em> in iGTD was appealing, but I left tasks in the inbox for weeks, and never reviewed much of my vast forest of projects. I eventually fell back into tending short lists in Stickies, with titles like &#8220;<strong>NOW</strong>:&#8221; and &#8220;<strong>BY TUESDAY!</strong>:&#8221;.</p>

<p>When I moved those Stickies lists into TaskPaper, all I had to do was copy and paste - it uses the same format I do when I get lazy, and that has to be a good sign. I haven&#8217;t found a reason to jot a note somewhere else yet.</p>

<p>Moving tasks from iGTD was more sobering. Half those &#8220;next actions&#8221; had been done for weeks, and the other half were clearly scheduled for next Neversday. As Merlin Mann pointed out, <a href="http://www.43folders.com/2007/06/04/getting-ready-for-omnifocus">switching apps is a good excuse for a real review</a>.</p>

<p>TaskPaper adds automatic formatting, tabs, search, and a bit of hyperlinking to plain text. 
Tasks are lines that start with a dash, and can be tagged by starting any word with an at-sign. Clicking a tag starts a search for that tag. I use them in a couple of ways - as contexts, and for scheduling. They can really be anything that makes sense as a visible search keyword.</p>

<p>I have been keeping a few tabs open - one to edit tasks, and a couple others with live searches to look at what&#8217;s on my plate. When I want to schedule something, I&#8217;ll tag it as @now or @tomorrow - I have those two as open tabs, and as I work I keep the @now tab open.
Other tabs come and go to look at contexts, like @email or @errand.</p>

<p>I like that the tags can be part of the sentence, so I don&#8217;t have to tab through a bunch of controls to set tags - I just write something like &#8216;@email Bob @home&#8217;&#8230; easy.</p>

<p>I also set up an inbox project (by typing &#8220;Inbox:&#8221;, naturally) to collect notes quickly, and that&#8217;s worked pretty well so far.</p>

<p>As with any 1.0, there&#8217;s some room for improvement. It&#8217;s not very scriptable, but it is plain text, so it could be worked around. Quicksilver integration was important with both kGTD and iGTD, and I&#8217;m not sure yet if I&#8217;ll really miss that here.
It can clean up tasks marked as done into an &#8220;Archive&#8221; project, but doesn&#8217;t yet note when they were finished, if that kind of thing matters to you. Finally, I&#8217;m not sure what the best way to sync with other devices would be, but there is a <a href="http://hogbaysoftware.com/products/taskpaper_web">web interface</a> in development - maybe that would be a good iPhone option.</p>

<p>TaskPaper is a solid, clear, and nicely minimalist app. Over the week I&#8217;ve been using it, it has made keeping to-dos in one place too easy to avoid, and added just enough functionality to sort through them without being distracting.</p>

<p>Note:
When I downloaded the 1.0 release, I found a conflict with TextExtras and wrote a <a href="http://hogbaysoftware.com/forums/taskpaper/topics/294_Archive_bug_in_1_22_">bug report</a>. In reply, Jesse sent me a complimentary license. Nice guy. I was going to write about it anyway, but I thought I should mention that I got it for free, as a surprise.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=kvvIbkq2O60:0SrIWlncH7s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=kvvIbkq2O60:0SrIWlncH7s:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=kvvIbkq2O60:0SrIWlncH7s:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=kvvIbkq2O60:0SrIWlncH7s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=kvvIbkq2O60:0SrIWlncH7s:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/kvvIbkq2O60" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2007/11/01/taskpaper-adds-just-enough-to-stick/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2007/11/01/taskpaper-adds-just-enough-to-stick/</feedburner:origLink></item>
		<item>
		<title>The editing pass</title>
		<link>http://feedproxy.google.com/~r/Michael-mccrackennet/~3/D4w1u22JUFU/</link>
		<comments>http://michael-mccracken.net/wp/2007/10/09/the-editing-pass/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 07:41:16 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://michael-mccracken.net/wp/2007/10/09/the-editing-pass/</guid>
		<description><![CDATA[Some thoughts about making an explicit editing pass on working code:

Once you get a piece of code to the point where you believe it works - it’s passing its tests - go back over it and edit it. That is, go back and edit it for clarity, flow, and style. Just as if it were an essay.]]></description>
			<content:encoded><![CDATA[<p>Anything worth writing is worth re-writing. This applies to code as well as prose.</p>

<p>I give paper sections and important emails a while to sit after I write them, and they always benefit from another look with fresh eyes. I think that doing this with code is worth thinking about.</p>

<p>Once you get a piece of code to the point where you believe it works - it&#8217;s passing its tests - go back over it and <em>edit it</em>. That is, go back and edit it for clarity, flow, and style. Just as if it were an essay.</p>

<p>This is particularly important for tests. If a test fails, it should tell a clear story that explains exactly what failed, and what it was expecting.</p>

<p>Things to consider editing out are vague variable or function names, and non-idiomatic shortcuts. Control flow can get tangled when working out a solution. Make it obvious. One-liners often don&#8217;t tell the full story. When you come back to a piece of code, you know the chase. It&#8217;s the first loose thread of a bug, a failed test, or an occurrence of a symbol you need to refactor. What you need is the story around it, and solid code will fill that in.</p>

<p>You can learn this by sharing your code or by waiting a while and reading it over again. It&#8217;s easier said than done - I don&#8217;t always do it, but I do know: an editing pass can do you good.</p>

<p>Something to think about: would a professional code editor help or hurt in the long run?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=D4w1u22JUFU:neAwTU1t8GM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=D4w1u22JUFU:neAwTU1t8GM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=D4w1u22JUFU:neAwTU1t8GM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Michael-mccrackennet?a=D4w1u22JUFU:neAwTU1t8GM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Michael-mccrackennet?i=D4w1u22JUFU:neAwTU1t8GM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Michael-mccrackennet/~4/D4w1u22JUFU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michael-mccracken.net/wp/2007/10/09/the-editing-pass/feed/</wfw:commentRss>
		<feedburner:origLink>http://michael-mccracken.net/wp/2007/10/09/the-editing-pass/</feedburner:origLink></item>
	<lastBuildDate>Thu, 02 Jul 2009 00:00:00 PDT</lastBuildDate></channel>
</rss><!-- Dynamic Page Served (once) in 0.511 seconds --><!-- Cached page served by WP-Cache -->
