<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>stevenf.com</title>
        <link>http://stevenf.com/</link>
        <description>Steven Frank discusses Macs, gadgets, and general geekery.</description>
        <language>en</language>
        <copyright>Copyright 2002-2008</copyright>
        <lastBuildDate>Mon, 30 Jun 2008 13:54:29 PST</lastBuildDate>
        <generator>http://stevenf.com/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        <item>
            <title>Virtually every modern convenience that I enjoy was invente...</title>
            <description><![CDATA[<p>Virtually every modern convenience that I enjoy was invented in the last 200 years.  When I think about the scope of human existence, that kind of freaks me out.</p>

<p>Consider anesthesia.  The modern types of anesthetic procedures that are widely used today are only roughly 160 years old.  That's, geologically speaking, <em>not a very long time</em>.</p>

<p><a href="http://en.wikipedia.org/wiki/Fanny_Burney">Frances "Fanny" Burney</a> was a novelist and playwright who lived her entire life before the invention of modern anesthesia.  In 1811, she underwent a mastectomy with little more preparation than a "wine cordial" and a handkerchief over her face:</p>

<blockquote>
"I needed no injunctions not to restrain my cries. I began a scream that lasted unintermittingly during the whole time of the incision - & I almost marvel that it rings not in my Ears still! so excruciating was the agony. When the wound was made, & the instrument was withdrawn, the pain seemed undiminished, for the air that suddenly rushed into those delicate parts felt like a mass of minute but sharp & forked poniards, that were tearing the edges of the wound - but when again I felt the instrument - describing a curve - cutting against the grain, if I may so say, while the flesh resisted in a manner so forcible as to oppose & tire the hand of the operator, who was forced to change from the right to the left - then, indeed, I thought I must have expired."
</blockquote>

<p>Somewhat amazingly, she went on to live another 29 years.</p>

<p>Aren't you glad you live in the future?</p>
]]></description>
            <link>http://stevenf.com/archive/Home.php</link>
            <guid>http://stevenf.com/archive/Home.php</guid>
            <pubDate>Mon, 30 Jun 2008 13:52:52 PST</pubDate>
        </item>
        <item>
            <title>I ran into an interesting new problem over WWDC.  In additi...</title>
            <description><![CDATA[<p>I ran into an interesting new problem over WWDC.  In addition to my laptop, I usually bring an external USB hard drive in case there is a new developer seed OS to install (and usually there is!)</p>

<p>But I hadn't really thought it through -- my MacBook Air only has one USB port.</p>

<p>No problem, right?  Plug the external SuperDrive and the HD into an powered hub?  Nope, doesn't work.  The SuperDrive for the MacBook Air only works in one situation: when it is plugged directly into the USB port of a MacBook Air.</p>

<p>Remote Disc was another option, but I didn't want to steal away someone else's laptop for that length of time.</p>

<p>I still got it installed though.  What I did was:</p>

<ul>
<li>Partition the external HD into two partitions: "Snow Leopard" and "Snow Leopard Installer".</li>
<li>Use Disk Utility to create a .dmg from the installer DVD.</li>
<li>Use Disk Utility to "restore" the installer .dmg to the "Snow Leopard Installer" partition on the external HD.</li>
<li>Boot from "Snow Leopard Installer", and install the OS as normal to the other partition.</li>
</ul>

<p>A little nuts, but it did work.</p>

<p>I guess you could read this as an indictment of the lack of a second USB port on the Air, but this is really the first time it has ever been an issue, and honestly, if I'd had to wait until I got home to install the seed, I wouldn't have missed out on anything.  I didn't even take the SuperDrive when we went to Japan, and it wasn't missed.</p>
]]></description>
            <link>http://stevenf.com/archive/macbook-air-os-install.php</link>
            <guid>http://stevenf.com/archive/macbook-air-os-install.php</guid>
            <pubDate>Thu, 19 Jun 2008 20:57:25 PST</pubDate>
        </item>
        <item>
            <title>I am monkeying with my RSS feed again.  Sorry everyone.  Pl...</title>
            <description><![CDATA[<p>I am monkeying with my RSS feed again.  Sorry everyone.  Please hold tight, I'll be done soon.</p>

<h2>Yikes, what just happened?</h2>

<p>OK, I'm done.</p>

<p>After an ill-considered foray with an aggregating blog (<a href="http://soup.io/">soup.io</a>) that lasted roughly 15 minutes, I rolled everything back to the way it was before.  You may have picked up a few new feed items (my Twitter comments) if you updated at just the right time.</p>

<p>Oh, there is one new thing: A chunk of the first line of the entry is now pulled as the entry's title for the RSS feed, rather than using dates as titles.</p>
]]></description>
            <link>http://stevenf.com/archive/messing-with-my-rss.php</link>
            <guid>http://stevenf.com/archive/messing-with-my-rss.php</guid>
            <pubDate>Wed, 18 Jun 2008 18:06:41 PST</pubDate>
        </item>
        <item>
            <title>I really liked the "command-line in a web page" thing that...</title>
            <description><![CDATA[<p>I really liked the "command-line in a web page" thing that <a href="http://www.goosh.org/">Goosh</a> has going on, so last night I made a quick skeleton of a general-purpose "command-line" web page.</p>

<p>Just add JavaScript or AJAX to do whatever you want.  You can try it out, and get the source, here:</p>

<p><a href="http://stevenf.com/downloads/cmdline.html">http://stevenf.com/downloads/cmdline.html</a></p>
]]></description>
            <link>http://stevenf.com/archive/web-page-command-line.php</link>
            <guid>http://stevenf.com/archive/web-page-command-line.php</guid>
            <pubDate>Wed, 04 Jun 2008 12:01:06 PST</pubDate>
        </item>
        <item>
            <title>In my previous entry about [[bug-tracking]], I solicited re...</title>
            <description><![CDATA[<p>In my previous entry about <a href="http://stevenf.com/archive/bug-tracking.php">bug-tracking</a>, I solicited recommendations for new bug tracking software.  I got a tidal wave of email, and updated that entry with a rough overview of the responses.</p>

<p>I think for now we are going to give <a href="http://www.redmine.org/">Redmine</a> a try.  Here's my rationale:</p>

<ul>
<li><p>It does a <em>ton</em> of stuff that's genuinely useful that we don't have now: attachments, svn integration, reporting, wikified documentation, time tracking, basic project management, and tons more.</p></li>
<li><p>The default appearance is pleasant and light.  Navigation was completely clear to me -- I found everything right where I was expecting it.</p></li>
<li><p>We can run it locally.  After a lot of internal debate, I decided I wasn't comfortable with a hosted solution, for privacy, availability, and cost reasons.  Also, we can monkey with the code and database tables if it should become absolutely necessary.</p></li>
<li><p>Its bug schema is nearly 1:1 with our existing database, making for a pretty smooth import.  I wrote a PHP script that moved everything over in one shot after the initial configuration process.  If we should need to add a new field in the future, it's possible to do so.</p></li>
<li><p>It didn't barf or get laggy or unwieldy when I dumped all of our bugs into it.  In fact, the whole time I was installing and configuring it, it never did anything weird, which is always a pleasant surprise with web apps.</p></li>
<li><p>It's written in Ruby on Rails, which I desperately need to get more familiar with.  I'm hoping I can study the code and use that knowledge to make future versions of Coda better for Rails developers.</p></li>
<li><p>It's free.</p></li>
</ul>

<p>So, for everyone who asked me to update when we picked something, there you go.  :)</p>

<p>Overall, I'm actually kind of stunned at how good it seems to be.  I had no idea it even existed, so I'm very grateful to those who emailed me about it.  I'm sure all of the other suggestions are good too, but based on my research, I think this is the best match for us right now.</p>

<p>There's always a chance that we could back out, if something bad happens in the next day or two, but so far there haven't been any "bad smells" suggestive of that.  Will keep you posted if that happens, obviously.</p>
]]></description>
            <link>http://stevenf.com/archive/bug-tracking-decision.php</link>
            <guid>http://stevenf.com/archive/bug-tracking-decision.php</guid>
            <pubDate>Thu, 29 May 2008 18:02:33 PST</pubDate>
        </item>
        <item>
            <title>When Cabel and I first started Panic, we tracked bugs in a...</title>
            <description><![CDATA[<p>When Cabel and I first started Panic, we tracked bugs in a FileMaker database.  This didn't last long.</p>

<p>Next, we went to a web-based offering that we self-hosted.  This worked generally pretty well, except for two main problems:</p>

<ul>
<li><p>When there were problems with the tracker, we either had to fix them ourselves, or hope an update would come out soon.</p></li>
<li><p>Having each operation bracketed by an HTTP request/response really slows down the rate at which you can batch process things.</p></li>
</ul>

<p>It was mainly the latter problem that led us to develop a custom bug tracker, known as Hive.  Hive is a Cocoa front-end to a MySQL database.  We've been using it for years, and it works pretty well.  People have even asked us to release it publicly (trust me, it's not ready).  However, it too has its drawbacks:</p>

<ul>
<li><p>When something goes wrong, we have to fix it ourselves.  Maintaining Hive requires a similar effort to maintaining one of our public-facing applications.  It's almost like an entire "hidden app" that requires developer resources which we don't have enough of.</p></li>
<li><p>There is virtually never time for anyone to add new features or improve it beyond bug fixes.  This means it is lacking critical features, such as being able to attach files to bugs.</p></li>
<li><p>It has a "last save wins" policy if multiple developers make changes that collide, which has bitten us.</p></li>
<li><p>We cache bugs to reduce network traffic, but there have been problems lately with stale caches leading to confusion.</p></li>
</ul>

<p>It's getting to the point where we need the extra functionality that we don't have time to add, and are willing to forego a little bit of speed by going back to web-based, if we can find a web-based tracker that does what we want.</p>

<h2>What we want</h2>

<p>Simplicity and speed, first and foremost.  Our bug records are extremely simple.  Bugs have an ID number, a one-line summary, a description, a creation/modification/close date, a status (open or closed), a severity (only 4 levels), an owner, the version filed against, the version targeted for resolution, and that's pretty much it.  </p>

<p>A lot of trackers go way, waaay too overboard with the fields.  We need to work on bugs, not placate a needy database.  The process has to be as fast and streamlined as possible.  A light, clean design wouldn't hurt either.</p>

<h2>What we don't want</h2>

<p>Bugzilla.</p>

<h2>Options</h2>

<p>Some factors to consider:</p>

<ul>
<li><p>Custom vs. off-the-shelf: It's tempting to roll our own internal web-based tracker.  That way we could tailor it specifically to our needs, and I suspect it would be easier to maintain than our existing Cocoa app.  However this is at odds with our need reduce developer time spent on internal tools.</p></li>
<li><p>Hosted vs. open source: Hosted solutions are nice, in that you never have to deal with updates.  But being able to install something on our own server would give us extra speed and hackability.  This is a tough one to call.</p></li>
<li><p>Importing: We have plenty of existing bugs, and we would need a way to get them into the new system without any re-typing.</p></li>
<li><p>Exporting: For when we need to move again in the future.</p></li>
</ul>

<h2>Suggestions?</h2>

<p>If you have first-hand experience with a bug tracking service (either hosted or open source) and you like it, feel free to send an email my way.</p>

<p>I'm not sure which way we're going to go with this yet, so it would be good to hear some experiences while weighing our options.</p>

<h2>Popular recommendations so far</h2>

<ul>
<li><a href="http://www.fogcreek.com/FogBugz/">FogBugz</a> (hosted or local install, svn integration) This is the most recommended, and curiously also the most recommended against.</li>
<li><a href="http://trac.edgewall.org/">Trac</a> (third-party hosted or local install, svn integration) Second most recommended.</li>
<li><a href="http://www.jira.com/">Jira</a> (hosted or local install, svn integration)</li>
<li><a href="http://redmine.org/">Redmine</a> (local install, RoR) Looks quite impressive.</li>
<li><a href="http://lighthouseapp.com/">Lighthouse</a> (hosted)</li>
<li><a href="http://sifterapp.com/">Sifter</a> (not finished as of this writing)</li>
</ul>

<h2>Other less common suggestions</h2>

<ul>
<li><a href="http://unfuddle.com/">Unfuddle</a> (probably more useful if you also need the svn hosting)</li>
<li><a href="http://lean-to.com/">Lean-To</a> (hosted)</li>
<li><a href="http://www.mantisbt.org/">Mantis</a> (local install) We actually used this back in the day.  It's OK, but I'm looking for something a bit more... modern?  Not sure what word I'm looking for here.</li>
<li><a href="http://www.porchlightnow.com/">Porchlight</a> (hosted)</li>
<li><a href="http://bestpractical.com/rt/">RT</a> (local install)</li>
<li><a href="http://retrospectiva.org/">Retrospective</a> (local install, RoR)</li>
<li><a href="http://www.bluestatic.org/software/bugdar/">Bugdar</a> (local install, PHP)</li>
<li><a href="http://roundup.sourceforge.net/">Roundup</a> (local install, Python)</li>
<li><a href="http://gomentat.com/">Mentat</a> (hosted)</li>
<li><a href="http://16bugs.com/">16bugs</a> (hosted)</li>
<li><a href="http://www.bughost.com/">Bughost</a> (hosted)</li>
<li><a href="http://hedgehoglab.com/products/fixx/">Fixx</a> (local install, Java)</li>
<li><a href="http://tailshq.com/">Tails</a> (hosted, not finished as of this writing)</li>
<li>Release our existing Hive application as open source.  :)</li>
</ul>

<p>Thanks to everyone who has emailed with their thoughts and suggestions!</p>
]]></description>
            <link>http://stevenf.com/archive/bug-tracking.php</link>
            <guid>http://stevenf.com/archive/bug-tracking.php</guid>
            <pubDate>Thu, 29 May 2008 10:52:00 PST</pubDate>
        </item>
        <item>
            <title>Every once in a while, I check in with Google Reader to see...</title>
            <description><![CDATA[<p>Every once in a while, I check in with Google Reader to see what's new.  After all, it looks nice, and it's got the big G behind it.  But I can never quite get the hang of it, and I decided for the first time to stop and try to figure out why.</p>

<p>For me, there are two types of RSS feed: </p>

<ul>
<li><p>Feeds where I read every article no matter what (such as Daring Fireball).  These tend to be low-traffic feeds, and I read them as soon as I see they've updated.  I'm always caught up with these feeds by virtue of the fact that I consume them entirely.</p></li>
<li><p>Feeds that I skim (such as Engadget) looking for words in the headlines that catch my eye.  These tend to be high-traffic, and I skim them on a time-available basis.  If nothing catches my eye, I click "mark all as read" and I'm "caught up".</p></li>
</ul>

<p>My main issue with Google Reader is that it's constantly trying to show me news I've already read.  What I mean is: in the list view (or even in the iPhone interface) I might notice that a feed has 1 new item.  So, I click on the feed.  But instead of just 1 new item, I get 1 new item <em>plus</em> all of the previous items from the feed, which I've already read, without much, if any, distinction between the two.</p>

<p>This is really more of a problem with my brain than it is with Google Reader, but I just can't handle being re-shown items that I've marked "completed" in my head.  My brain really, really wants to feel assured that I've completed this particular list of items, and if there's nothing new left to read, I don't want to see anything.  </p>

<p>Also, because there isn't a clear delineation between "new" and "rest of the feed", I sometimes end up halfway through the old items before realizing I'm wasting time re-reading stuff that I wasn't interested in the first time around.</p>

<p>Making matters worse on the iPhone version is the fact that there seems to be no way to see full articles in-line.  You have to click on a headline first, which really slows down the process for the first type of feed.</p>

<p>Reader's "overview" mode, where items are marked read just by scrolling over them is like a nightmare to me.  I can't handle the thought that something might get marked as read that I <em>haven't actually read</em>, because I happened to scroll the page down to near the vicinity of it.  Again, chalk it up to an OCD mind, but it just feels like I've lost control.  At least you can choose not to use this mode.</p>

<p>And let's not even get started on Reader's "infinite scrollbar" trick where you <em>never reach the bottom of the page</em>.  I twittered once before that this literally makes me feel physically uncomfortable, like falling into a bottomless pit.  I need borders and boundaries, I guess.</p>

<p>So, for now, I'm still on NewsGator, which handles both types of feeds and all of my neuroses well, with the added benefit of working in conjunction with NetNewsWire, and a perfectly no-frills iPhone version which works like my brain does.  And, one speculates, a hypothetical iPhone-native version of NetNewsWire in the future.  (I do a <em>lot</em> of RSS reading on my phone -- but if I'm at a desktop, I might as well use the desktop.  The fact that NewsGator stays in sync with this migratory behavior is, for me, its must-have killer feature.)</p>

<p>I'm not blindly loyal though, and NewsGator is not without its own problems.  I'd switch to something else if it was better.</p>

<p>Comments and corrections via email please, if you've got 'em.</p>

<h2>Update</h2>

<p>I see now that Reader has a toggle for "new items" vs. "all items" when viewing a feed.  That helps.  It has also been pointed out to me that the behavior of automatically marking items read as you scroll past can be disabled.  I always feel stupid when I make a public stink about something and it turns out to be a non-issue, but at least, I guess, I'm a little bit smarter now than when I started.  Some of the issues with the iPhone version still linger.</p>
]]></description>
            <link>http://stevenf.com/archive/reading-habits.php</link>
            <guid>http://stevenf.com/archive/reading-habits.php</guid>
            <pubDate>Fri, 23 May 2008 13:17:19 PST</pubDate>
        </item>
        <item>
            <title>It's getting a little bit [Khoi Vinh](http://www.subtractio...</title>
            <description><![CDATA[<p>It's getting a little bit <a href="http://www.subtraction.com/">Khoi Vinh</a> in here, isn't it?</p>
]]></description>
            <link>http://stevenf.com/archive/khoi-vinh.php</link>
            <guid>http://stevenf.com/archive/khoi-vinh.php</guid>
            <pubDate>Wed, 21 May 2008 11:38:28 PST</pubDate>
        </item>
        <item>
            <title>As many of you know, I run a site for Cocoa developers call...</title>
            <description><![CDATA[<p>As many of you know, I run a site for Cocoa developers called <a href="http://cocoadev.com/">CocoaDev</a>.</p>

<p>I feel like the site is in need of a refresh, for several reasons.  But it's easier said than done.  Here are some of the challenges:</p>

<ul>
<li><p>When CocoaDev was started, it did not have the "forums" section that it now has, which means people were making Q&amp;A style pages (WhyDoesntMyTableViewWork) starting with a question and followed by a series of answers.  Useful info, but poor wiki form.</p></li>
<li><p>My preferred form for the wiki pages would be to have only top level topics as pages (say "NSTableView"), which would contain an overview of the class and notes on how it works, its methods, etc.  More along the lines of editable documentation pages than ongoing discussions.</p></li>
<li><p>Since Q&amp;A discussions are now being mostly routed to the forums, there isn't much churn on new wiki content.  This is fine -- wikis should be mainly "encyclopedic".  But now it seems backwards to have this active, engaged forum as a "hidden" subsection of a relatively static main site.</p></li>
<li><p>Even though the "mailing list mode" wiki pages are bad form, they still contain useful info, so I don't want to completely "reboot" the site and start over with no content.</p></li>
<li><p>Pruning or migrating the existing wiki content into any new format is going to be next to impossible.  I don't want to do it.  You don't want to do it.  Everything is so denormalized, I don't know if it CAN be done.</p></li>
<li><p>What's more, the wiki engine I chose to use is showing its age.  Searches and dynamically generated pages are getting slower and slower.  Features like categories and versioning were hacked in as afterthoughts.  There are much better engines available for the wiki.</p></li>
</ul>

<p>I feel like CocoaDev users would not be happy if they showed up one day and everything was different on the site, but if the change is a completely democratic process, I worry that it will never get done (death by committee).  So I'd like to propose a plan, with the intention of following through on it, but listening to your feedback first.</p>

<p>Here is the plan:</p>

<ol>
<li><p>What is now the "forums" section becomes the main content at the root of the site.  Live, threaded Q&amp;A type discussion seems to be a big draw of the site, and I think it makes sense to put it up front.</p></li>
<li><p>The existing wiki becomes a read-only "CocoaDev Classic" section.  It retains all of its current information, and Google hits can still redirect to it, but will be clearly marked as legacy.</p></li>
<li><p>A new, empty wiki will start under a "Wiki" tab from the main (forums) page.  This will adhere to the desired new format and editorial guidelines.</p></li>
</ol>

<p>With WWDC coming up, it seems timely to start this process, but before I proceed, I want to at least get some confirmation that you don't think this is the worst idea I've ever had.</p>

<p>If you have comments about this plan, either positive or negative, please email me: stevenf@panic.com</p>

<h2>Update</h2>

<p>Rather than having two wikis (read-only "classic" &amp; read/write "new") I think a better idea is to just start up the new one, and import the current content into a "classic" namespace, leaving the main namespace available for the new content.  I like this because it consolidates everything a bit more, and makes for easier migration of old content if it becomes necessary.  It doesn't solve the problem of the old content looking terrible after the migration, but at least it keeps all the wiki content in one place, but with the old world still segmented from the new.</p>

<p>Feedback has been almost entirely positive, so I'll probably go ahead with this plan once I have a dull moment -- maybe over the weekend.</p>
]]></description>
            <link>http://stevenf.com/archive/cocoadev-refresh.php</link>
            <guid>http://stevenf.com/archive/cocoadev-refresh.php</guid>
            <pubDate>Tue, 06 May 2008 00:00:50 PST</pubDate>
        </item>
        <item>
            <title>[W2](http://code.google.com/p/w2wiki/) is a lightweight PHP...</title>
            <description><![CDATA[<p><a href="http://code.google.com/p/w2wiki/">W2</a> is a lightweight PHP wiki engine I wrote for my own usage.  My design goals were:</p>

<ul>
<li>Plain text file storage (no databases)</li>
<li>Markdown syntax</li>
<li>Wiki-like linking</li>
<li>Search</li>
<li>Ability to embed images</li>
<li>Fast</li>
<li>Works well on iPhone</li>
</ul>

<p>I made the source available for anyone else who wants to tinker with it, but it's mainly for me.</p>

<h2>Update</h2>

<p>I just checked a bunch of changes into the project that I've been sitting on for a while.</p>

<ul>
<li>Changed the default font and date formatting</li>
<li>Editor now fills the width of the browser, as this works fine on the iPhone</li>
<li>Fixed a bug where you could get stuck in edit mode if the default page didn't exist</li>
<li>Made some of the config variables self-discovering for easier installation and better out-of-box experience</li>
<li>Added a SELF config variable that means the script no longer has to be named "index.php" (this makes it easier to use W2 as an editor for <a href="http://stevenf.com/archive/laguna.php">Laguna</a>)</li>
<li>Nicer error message when a page save fails</li>
<li>Auto-links <code>message</code>: URLs, so you can just drag in an email from Apple Mail to link to it</li>
<li>Longer time to cookie expiration by default</li>
</ul>

<p>Also, Abhi Beckert has checked in a variety of improvements, such as hashed passwords for better security.  Thanks, Abhi!</p>
]]></description>
            <link>http://stevenf.com/archive/W2.php</link>
            <guid>http://stevenf.com/archive/W2.php</guid>
            <pubDate>Mon, 05 May 2008 00:00:24 PST</pubDate>
        </item>
        <item>
            <title>"Laguna" is the name of the [custom blogging engine](http:/...</title>
            <description><![CDATA[<p>"Laguna" is the name of the <a href="http://stevenf.com/archive/blogging-engine-update.php">custom blogging engine</a> I use for this web site.</p>

<p>I've gotten email from several people who were interested to see the code, and there's no real reason not to post it, so here is <a href="http://stevenf.com/downloads/laguna2.tar.gz">Laguna 2</a>.</p>

<p>A few notes:</p>

<ul>
<li><p>I don't make any claims that this is pretty, elegant, magical, or even useful code.  It works for me, but doesn't come with tech support.  :)  I threw it together in a couple hours, so don't get too excited.</p></li>
<li><p>It's written in PHP 5, but I think the only thing I use that's not in PHP 4 is the <code>file_put_contents()</code> function, which is easily simulated.</p></li>
<li><p>The pages are templatized, but the RSS feed is not currently.  It's got a bunch of stevenf stuff hardcoded into it, which you'd need to edit.</p></li>
<li><p>To use, just stick a bunch of <a href="http://daringfireball.net/projects/markdown/">Markdown</a> formatted .txt files in the "pages" directory, and run the publish script.  It will generate a main page with the last few entries, an equivalent RSS feed, an archive index of all pages, and individual archive pages for each entry.</p></li>
<li><p>All the configuration variables are at the top of publish.php, and are fairly self-explanatory.  It's just a set of filesystem paths and URLs.</p></li>
<li><p>With a little work, you can hack <a href="http://code.google.com/p/w2wiki/">W2</a> to work as an editor/admin tool for Laguna.  This is left as an exercise for the reader.</p></li>
<li><p>There shouldn't be anything exploitable in the code, since it just generates static HTML pages.  But if you do find something, please don't hack my gibson.</p></li>
</ul>

<p>Email me if you do something cool with it!</p>
]]></description>
            <link>http://stevenf.com/archive/laguna.php</link>
            <guid>http://stevenf.com/archive/laguna.php</guid>
            <pubDate>Fri, 25 Apr 2008 00:00:24 PST</pubDate>
        </item>
        <item>
            <title>This remains one of my [favorite sites](http://www.thatsasp...</title>
            <description><![CDATA[<p>This remains one of my <a href="http://www.thatsaspicymeatball.com/comments/">favorite sites</a>.</p>
]]></description>
            <link>http://stevenf.com/archive/metafilter-vs-youtube-comments.php</link>
            <guid>http://stevenf.com/archive/metafilter-vs-youtube-comments.php</guid>
            <pubDate>Wed, 23 Apr 2008 00:00:37 PST</pubDate>
        </item>
        <item>
            <title>> Dang holmes I seen thumbnail avatars with harder action t...</title>
            <description><![CDATA[<blockquote>
  <p>Dang holmes I seen thumbnail avatars with harder action than that Ludovico Technique</p>
</blockquote>

<p><a href="http://www.achewood.com/index.php?date=04232008">Achewood</a>, the untouchable emperor of web comics.</p>
]]></description>
            <link>http://stevenf.com/archive/ludovico-technique.php</link>
            <guid>http://stevenf.com/archive/ludovico-technique.php</guid>
            <pubDate>Wed, 23 Apr 2008 00:00:05 PST</pubDate>
        </item>
        <item>
            <title>Transmit 3.6.6 has been [posted](http://www.panic.com/trans...</title>
            <description><![CDATA[<p>Transmit 3.6.6 has been <a href="http://www.panic.com/transmit/">posted</a> to our
web site.  </p>

<p>Shortly after releasing 3.6.5 last week, we discovered that TransmitSync (a helper application for syncing Transmit favorites over .Mac) was crashing under certain configurations and circumstances.  (You would receive a "TransmitSync has unexpectedly quit" dialog if affected.)  This is fixed in 3.6.6</p>

<p>The only other change in 3.6.6 is the restriction on usage of dot characters in a new Amazon bucket name that was added in 3.6.5 has been removed.  You are still subject to Amazon S3's bucket naming rules, but we now leave most of the validation of dot characters up to Amazon.</p>

<p>Transmit 3.6.6 is a free download for all Transmit 3 owners.</p>
]]></description>
            <link>http://stevenf.com/archive/transmit-3-6-6.php</link>
            <guid>http://stevenf.com/archive/transmit-3-6-6.php</guid>
            <pubDate>Mon, 21 Apr 2008 00:00:02 PST</pubDate>
        </item>
        <item>
            <title>You will not be surprised to learn that I was unable to res...</title>
            <description><![CDATA[<p>You will not be surprised to learn that I was unable to resist the lure of ordering an <a href="http://www.axiotron.com/index.php?id=modbook">Axiotron ModBook</a>, which arrived at the office yesterday after a grueling three and a half month wait.</p>

<p>I was hoping it would be a simple "two computers enter; one computer leaves" type of scenario vs. the MacBook Air that I've been using for the last few months.  I should've known better.</p>

<h2>Hardware</h2>

<p>The ModBook is made by taking the bottom shell and electronics from an off-the-shelf MacBook, removing the screen, lid, and keyboard, and replacing them with a slate-style Wacom display.</p>

<p>Along the way, a GPS module is also inserted -- which is interesting, but I've yet to think of a practical use for it.  A laptop is way too unwieldy to use as a navigation aid, but maybe you could use it to geo-tag your Flickr photos.</p>

<p>The consensus around the office was that the choice of a metal front bezel atop a white plastic shell was odd.  While it's not as beautiful as something that Apple would ship, I would certainly not call it ugly.  The face of the tablet is still quite restrained compared to most PC laptops.</p>

<p>I have been spoiled by the Air, as I lifted the ModBook and thought, holy cow, this is thick and and it is heavy.  Truth of the matter is that it's not that much thicker or heavier than an unmodified MacBook -- it's just that the Air is that much thinner and lighter.</p>

<p>As far as Windows-based Tablet PCs are concerned, my point-of-reference is a years-old HP TC1100, which I've owned for some time and cranked out quite a few drawings on.  With keyboard detached, the HP is actually lighter than a MacBook Air.  A MacBook at roughly five pounds is twice the weight of the TC1100, at the cost of a missing optical drive and a 10" screen vs. 13" on the ModBook.</p>

<p>Nothing, however, is omitted from the ModBook.  It has the MacBook's full array of expansion ports, SuperDrive, and is configurable to whopping amounts of memory and HD space.  Even the iSight and IR receiver survive the Frankenstein-ery, and the computer arrives at your door with its original Apple packaging with all included accessories.  The ModBook uses the standard MacBook power adapter (MagSafe) and battery, which is nice.</p>

<p>A hardware button to the upper left of the display serves as both a power toggle for the GPS module, and a "reset" button for the custom controller hardware, which so far I haven't found occasion to use.</p>

<p>My only real complaint about the hardware is that the reinforced glass layer atop the screen, although providing essential reassurance that you won't damage it, does reduce the brightness of the screen, and causes a significantly narrower viewing angle.  There is very limited field of view in which you can see the whole screen without the brightness or color falling off to one edge or the other.</p>

<p>Another frustration is actually Apple's fault.  For some reason, Apple removes the option for display rotation from MacBooks.  I can't fathom why.  But this does mean you can't, at least for the moment, use the tablet natively in portrait orientation.</p>

<p>Potential buyers are also advised of a <a href="http://forums.axiotron.com/showthread.php?tid=19">bluetooth incompatibility</a> that has been acknowledged by Axiotron.  They actually recommend disabling the bluetooth module until a solution is found.</p>

<p>My favorite thing about slate form tablets is -- and this is going to sound weird -- the unusual feeling of intimacy.  Compare to a desktop Mac with a tablet, where you must sit at a desk and resembles "work", or a laptop with a flip-up screen that forms a wall between you and the rest of the world, the tablet just sits in your lap like a chunky sketchbook.  It is a very natural feeling way to work for anyone who has ever put pen to paper.  And having the digital ink come from the actual point of contact between the pen and the screen make a subtle, but noticeable difference to the drawing experience.</p>

<h2>Software</h2>

<p>In addition to the full suite of Mac OS X software that ships with any MacBook, a few extra bits are included.</p>

<p>A program called QuickClicks summons and dismisses a resizable on-screen keyboard that is absolutely indispensable for entering passwords and email addresses.</p>

<p>A registered version of a shareware app called <a href="http://magesw.com/inkbook/">inkBook</a> is bundled.  This is a serviceable but spartan notebook program that accepts sketches and handwriting, and can convert the latter to text.  The bundled version is 1.x, but the site hosts a 2.0 beta which is much improved.  However, another application to keep a close eye on is version 3.0 of the venerable <a href="http://www.circusponies.com/notebook30.html">Circus Ponies NoteBook</a> due out soon, which would (at least from the press release) seem to be a killer app for the ModBook.</p>

<p>Finally, a small GPS program with an appalling user interface serves little purpose other than to report your latitude and longitude and prove that your GPS module is in fact functional.</p>

<p>Naturally, Apple's Inkwell software comes into its own on this hardware.  For those who have never used it, there are a few different modes of operation.  "Write Anywhere" which can be toggled from a menu bar item, allows you to just start writing on the screen.  The writing is then converted to text and inserted at the current keyboard focus as if you had typed it.  Although you can still click and drag with Write Anywhere enabled, it requires a bit of patience and finesse not to trigger the handwriting recognition, so this option is best left off and only enabled when text entry is required.  </p>

<p>An alternative is to enable the floating Ink window, into which you can write text, edit it, and then insert it into the current application only when it's ready to go.</p>

<p>Inkwell also supports gestures for common operations, such as enter, undo, cut, copy and paste, which work well once you get the hang of them.</p>

<p>The recognition engine, based presumably on the print recognizer from NewtonOS 2.0 is quite good, but a bit behind the state of the art.  It works best with long strides of dictionary words, and struggles with shorter words and shorthand.  I never thought I'd say anything good about Windows Vista, but Vista's handwriting recognition is much more adroit.</p>

<p>Then of course, there is additional third-party software you can buy to supplement your tablet experience.  <a href="http://usa.autodesk.com/adsk/servlet/index?id=6848332&amp;siteID=123112">Sketchbook Pro</a>, originally developed by Alias and since acquired by Autodesk, is probably my favorite digital art program of all time.  Designed from the ground up to work with the tablet form-factor, it ditches menus and toolbars in favor of a gestural palette from which you can select brushes and other tools.  It works beautifully and is rock-solid stable.  My only fear is that there hasn't been even a whisper of an upgrade in years.  It's fortunate then that the current version works as well as it does.</p>

<p><a href="http://www.ambientdesign.com/artrage.html">Art Rage</a> is a lower-cost alternative to Sketchbook Pro, which is also very good.</p>

<p><a href="http://graphics.smithmicro.com/go/mangastudio">Manga Studio</a> is another very capable program for budding comic artists but is hobbled by a few things: a painful Mac OS 9 user interface, a PowerPC binary that runs in Rosetta, and a Draconian disc-based copy protection scheme that has completely locked me out of the program at least twice requiring emails to tech support.  Despite these shortcomings, it does some specific comic-related things that no other app does, and does them well.  Comic artists should check it out.</p>

<h2>A daily driver?</h2>

<p>Here's where it gets sticky.  I'm not sure the ModBook is what you'd want to use as a primary computer.  Although you might be surprised at how much you can get done without a keyboard, it is (without the addition of a separate USB keyboard) unsuitable for doing any extended amount of text input.  </p>

<p>But if you do any work at all with digital art, it is an extremely compelling offering that I don't see Apple themselves providing any time in the near future.  Sitting comfortably in screen size between Wacom's 12" and 20" <a href="http://www.wacom.com/cintiq/index.cfm">Cintiq</a> displays, which require a connection to a host computer, the ModBook is a liberating tool that you can take anywhere and toil away on your masterpiece.  A first of its kind for Mac-dom.</p>

<p>As a daily driver, the MacBook Air is in a similar boat.  I've found it works best as a "briefcase" for shuttling a smaller subset of data that you keep on a "master" computer at home.  Although they are both amazing feats of technology, I'm not sure I'd be satisfied with either one as my only Mac.</p>

<p>Buying a second computer solely for the purpose of working on illustration and art is an expensive proposition, but if you're the sort of person who has such a desire, and you can swing it without bankrupting yourself, I wouldn't hesitate to recommend the ModBook.</p>
]]></description>
            <link>http://stevenf.com/archive/axiotron-modbook-review.php</link>
            <guid>http://stevenf.com/archive/axiotron-modbook-review.php</guid>
            <pubDate>Fri, 18 Apr 2008 00:00:42 PST</pubDate>
        </item>
        <item>
            <title>Transmit 3.6.5 has been [posted](http://www.panic.com/trans...</title>
            <description><![CDATA[<p>Transmit 3.6.5 has been <a href="http://www.panic.com/transmit/">posted</a> to our
web site.  The main changes are a fixed crasher and numerous S3 improvements,
including the ability to create buckets on the European S3 servers.</p>

<p>Full <a href="http://www.panic.com/transmit/releasenotes.html">release notes</a> can
always be found here.</p>

<p>Transmit 3.6.5 is a free download for all Transmit 3 owners.</p>
]]></description>
            <link>http://stevenf.com/archive/transmit-3-6-5.php</link>
            <guid>http://stevenf.com/archive/transmit-3-6-5.php</guid>
            <pubDate>Thu, 17 Apr 2008 00:00:54 PST</pubDate>
        </item>
        <item>
            <title>[Colin Allen](http://www.command-tab.com/) made these cute...</title>
            <description><![CDATA[<p><a href="http://www.command-tab.com/">Colin Allen</a> made these cute little "Made With Coda" badges that you can use if you're a proud Coda user.</p>

<p><img src="http://stevenf.com/gfx/made_with_coda.png" alt="Made With Coda" />
<img src="http://stevenf.com/gfx/made_with_coda_left.png" alt="Made With Coda" /></p>

<p>You can download them along with the source .psd <a href="http://stevenf.com/downloads/MadeWithCoda.zip">here</a>.  Hmm, ten years later and I still feel guilty every time I use the word "here" as a hyperlink.</p>
]]></description>
            <link>http://stevenf.com/archive/made-with-coda-badges.php</link>
            <guid>http://stevenf.com/archive/made-with-coda-badges.php</guid>
            <pubDate>Mon, 14 Apr 2008 00:00:10 PST</pubDate>
        </item>
        <item>
            <title>Apple's combination of 802.11n wireless router and hard dri...</title>
            <description><![CDATA[<p>Apple's combination of 802.11n wireless router and hard drive for backup via Time Machine.</p>

<p>My posts regarding Time Capsule:</p>

<ul>
<li><a href="http://stevenf.com/archive/time-machine-misery.php">Time Machine Misery</a></li>
</ul>
]]></description>
            <link>http://stevenf.com/archive/time-capsule.php</link>
            <guid>http://stevenf.com/archive/time-capsule.php</guid>
            <pubDate>Wed, 09 Apr 2008 00:00:28 PST</pubDate>
        </item>
        <item>
            <title>I've been monkeying with my home-built blogging engine agai...</title>
            <description><![CDATA[<p>I've been monkeying with my home-built blogging engine again.  I was pretty happy with the last rev, but there were a few things I wanted to address with this update.</p>

<h2>Steal from the best</h2>

<p>There are a few features I was jealous of in other blogs that I basically wanted to steal for myself.</p>

<p>From <a href="http://www.blosxom.com/">Blosxom</a>, I stole the concept of filesystem as storage.  To post a new entry, I just plop down a text file into a special directory, and run a publishing script.  The script looks at the modification dates of the files, and formats the main blog page and RSS feed into reverse chronological order.  So, if I update something, it floats back to the top.  Also, being just plain text files, I can keep them in Subversion and push changes from anywhere.</p>

<p>From John Gruber, I stole <a href="http://daringfireball.net/projects/markdown/">Markdown</a>.  I was already using this in my <a href="http://w2wiki.googlecode.com/">W2 wiki engine</a>, and I absolutely love it.  It's pretty much the plain-text formatting I already use.  Now I can keep everything in plain text files for maximum future-proofing and compatibility, but still generate HTML from them for the blog.</p>

<p>I even sneaked in a bit of extra markup that allows me to link to another blog node easily by title. Like this: <a href="http://stevenf.com/archive/cabel-s-c4-session.php">Cabel's C4 Session</a></p>

<p>I've always been jealous of <a href="http://the.taoofmac.com/space/">Rui Carmo</a>'s ability to intermingle blog posts and authoritative wiki-style anchor pages on a particular subject.  So, I stole that too.</p>

<p>I love <a href="http://www.tumblr.com/">Tumblr</a>, and even came close to using it at one point.  Instead, I just stole the bits I liked.  In particular, the ability to post a title-less entry, such as a single photo, embedded video, or quote.</p>

<h2>Sacrifices</h2>

<p>Implementing all this stuff means basically throwing out my blog history, since it wasn't written in the right format.  Although I did bring a few things over.  I can probably go back and write an importer, if the desire ever arises.  But on the other hand, I think I've secretly been longing for a fresh start. I AM FOLLOWING MY BLISS, MAN.</p>

<p>Comments.  I got rid of them.  I know this is going to be contentious.  My current view on comments is I really don't like them -- at all, anywhere on the internet.  I'm all for communication between author and reader, but comments are the lowest possible denominator.  More often than not, they bring out the absolute worst in people.</p>

<p>The good news is that comments aren't the only avenue for feedback.  You are still strongly encouraged to email me your thoughts on anything I write, if you would like to be heard.  A link to my email address is right there at the bottom of every page, and my door is open.  If it's a really, really good point, I'll come back and integrate it into my post.</p>

<h2>Design</h2>

<p>It's more austere than ever.  I know some of you hate this look.  I'm in love with its sheer ridiculous starkness.</p>
]]></description>
            <link>http://stevenf.com/archive/blogging-engine-update.php</link>
            <guid>http://stevenf.com/archive/blogging-engine-update.php</guid>
            <pubDate>Wed, 09 Apr 2008 00:00:18 PST</pubDate>
        </item>
        <item>
            <title>Things have not been going well in my quest for Time Machin...</title>
            <description><![CDATA[<p>Things have not been going well in my quest for Time Machine backup perfection.</p>

<p>When the 7.3 AirPort firmware came out, I was really excited to hear that the ability to use an Airport Extreme Base Station (AEBS) plus an external hard drive as a Time Machine backup volume had returned.  In my case, I was using a Western Digital MyBook as the external drive.</p>

<p>For a while it seemed to be working fine, but periodically the Time Machine volume would disappear from the network, causing all of its Time Machine clients to fail.  Curiously, when this happened, the AEBS was still perfectly functional as a base station -- the drive had just vanished.  Rebooting the AEBS would resurrect the Time Machine volume... until eventually it disappeared again.</p>

<p>When I read yesterday that <a href="http://db.tidbits.com/article/9547">this setup is officially unsupported</a>, I was annoyed.  This feature was available, pulled, available again, and now unsupported.</p>

<p>Backup is not something I can afford to screw around with.  If there's any possible point of failure, it's unacceptable.  So, I decided to drop this "unsupported" configuration and picked up a 1 TB <a href="http://stevenf.com/archive/time-capsule.php">Time Capsule</a>.  The situation has not improved.</p>

<p>Because there are so many variables involved with WiFi performance and reception, I'll spare you the details of all the wireless attempts and skip straight to the part where I have the Time Capsule directly connected via ethernet cable to the MacBook Air's USB-ethernet adapter, with wireless completely turned off on both devices.</p>

<p>The most I have been able to backup in this configuration is about 2 GB out of 40 GB before the backup volume in the Time Capsule simply stops responding.  The Time Machine progress bar stops updating.   At this point, the Time Capsule also has vanished from Airport Utility and Rescan does not bring it back.  It is like it has simply ceased to exist.  If you try to access the Time Machine volume from the Finder now, it beachballs the Finder so badly that you can't even restart the Mac without pressing and holding the power button.  The Time Capsule also requires a restart at this point.</p>

<p>If, on the other hand, you just let it sit for a few hours, it eventually times out with either an error message that Time Machine could not write to the backup volume, or a "Server Volume Connection Interrupted" dialog.  How a WIRED connection can be interrupted, I'm not sure.  I did try a different ethernet cable, to no avail.
I tried this maybe 10 times and was unable to get a single successful initial backup.</p>

<p>So, as far as I can tell, this particular Time Capsule is completely defective.  Or is there a deeper problem here?</p>

<p>I started a <a href="http://discussions.apple.com/thread.jspa?threadID=1476831&amp;tstart=0">support forum thread</a> and so far have one (albeit just one) person claiming to have the exact same problem.</p>

<p>But the distinct similarity in failures between the AEBS+HD configuration and the Time Capsule has me nervous that maybe there is a systemic problem in remote Time Machine backup.  Does it just simply not work?</p>

<p>I'll probably take this Time Capsule in to get it exchanged, and see if anything gets better.  If the replacement has the same problem, then I'll be really worried.</p>

<h2>Update 4/11/2008</h2>

<p>I got the Time Capsule exchanged and experienced the same problem, so it was clearly time to get creative.</p>

<p>Checking the console log of the MacBook Air gave me a clue which lead me down a path to what I believe is the culprit: a third-party process called "nmnetmgrd"</p>

<p>This daemon got installed alongside a program called "SierraWatcher", which is used to drive AT&amp;T's USB Cellular Modems.  nmnetmgrd appears to be part of a product called launch2net by NovaMedia.</p>

<p>Anyway, long story short, I saw this in the console log:</p>

<ul>
<li>NMIfNet: Operation not supported on socket</li>
<li>NMIfNet: Invalid argument</li>
</ul>

<p>Followed by:</p>

<ul>
<li>mDNSResponder: Note: Frequent transitions for interface en1 (10.0.1.200); network traffic reduction measures in effect</li>
</ul>

<p>Not more than 2-3 seconds after this, there is cascading failure -- the kernel loses its connection the AFP volume on the Time Capsule.  backupd thinks the backup volume has been ejected -- basically everything implodes.</p>

<p>It's hard to say for sure, but it sure looks like this daemon literally causes the network interface to go down and back up, and backupd sure doesn't care for that.</p>

<p>I tracked down the LaunchDaemon responsible for starting nmnetmgrd and deleted it.  (I don't even have the modem plugged in, so who knows why it's running in the first place.)</p>

<p>And now I'm 15 GB into my 40 GB backup; much, much further than I've ever gotten before.  I really think it will complete normally this time.</p>

<p>This was not an easy one to track down.  I've reported it to both Apple and NovaMedia for further debugging, but if you're having Time Capsule trouble, and you have a cellular modem, see if you have this daemon running, or anything else that might fiddle with your network interfaces behind the scenes.</p>
]]></description>
            <link>http://stevenf.com/archive/time-machine-misery.php</link>
            <guid>http://stevenf.com/archive/time-machine-misery.php</guid>
            <pubDate>Tue, 08 Apr 2008 00:00:40 PST</pubDate>
        </item>
        <item>
            <title>Effective yesterday, we gave [Unison Usenet Access](http://...</title>
            <description><![CDATA[<p>Effective yesterday, we gave <a href="http://panic.com/unison/access.php">Unison Usenet Access</a> a big kick in the pants.</p>

<p>(That's our Usenet service, provided for users of our <a href="http://panic.com/unison/">Unison</a> application. Or any Usenet reader for that matter!)</p>

<h2>Costs less</h2>

<p>That's right, we're lowering the price. When's the last time anyone ever lowered a subscription rate for you? Well, we just did. Unison Usenet Access is now only $9.95 per month.</p>

<h2>Lasts longer</h2>

<p>We've doubled data transfer quotas to 20 GB. If you still manage to go over before the month is up, we can re-bill you to prevent service interruption.</p>

<h2>Holds more</h2>

<p>Retention of articles is being improved substantially. Our goal is up to 100 days worth of articles, even in busy newsgroups.</p>

<h2>Free for a month</h2>

<p>Current subscribers will not be billed for the month of April. That's a little thank-you for bearing with some bumps during the transition.</p>

<p>So, what do you need to do? Nothing really. You should automatically get all the new goodies.</p>

<p>One thing we do recommend is clearing Unison's caches once, to ensure smooth operation:</p>

<ul>
<li>Launch Unison, and make sure it has connected to <code>news.panic.com</code></li>
<li>Choose <code>Empty Message Cache...</code> from the Unison menu</li>
<li>Click the <code>Empty All</code> button in the dialog that appears</li>
<li>Finally, choose <code>Reload All Groups List</code> from the Group menu in the menubar</li>
</ul>

<p>You may notice a bit more spam than before. Sorry about that. Our new service does not currently have the same spam-filtering technology as our old service. However, improved filtering is in the works -- one solution is already being tested internally -- and should be deployed within a few weeks.</p>

<p>Apart from that, we hope you enjoy your significantly improved Usenet experience. And if you've never tried Unison before, this is a perfect excuse to try it out!</p>
]]></description>
            <link>http://stevenf.com/archive/unison-access-upgraded.php</link>
            <guid>http://stevenf.com/archive/unison-access-upgraded.php</guid>
            <pubDate>Wed, 02 Apr 2008 00:00:50 PST</pubDate>
        </item>
        <item>
            <title>He's going to hate that I'm linking to this, but here you c...</title>
            <description><![CDATA[<p>He's going to hate that I'm linking to this, but here you can watch Cabel's <a href="http://www.viddler.com/explore/rentzsch/videos/14">Coda Confidential</a> talk from the C4&#91;1&#93; conference.</p>

<p>It's got a little bit about the history of Panic and a whole lot about our culture and design process with some specifics about things that were tough about making Coda.  Maybe interesting?</p>
]]></description>
            <link>http://stevenf.com/archive/cabel-s-c4-session.php</link>
            <guid>http://stevenf.com/archive/cabel-s-c4-session.php</guid>
            <pubDate>Sat, 29 Mar 2008 00:00:56 PST</pubDate>
        </item>
        <item>
            <title>Here's a cool [CandyBar 3 tutorial video](http://www.macwor...</title>
            <description><![CDATA[<p>Here's a cool <a href="http://www.macworld.com/article/132636/article.html">CandyBar 3 tutorial video</a> by Dan Frakes at Macworld.  If you're curious about CandyBar 3's features, check it out!</p>
]]></description>
            <link>http://stevenf.com/archive/macworld-candybar-3-video.php</link>
            <guid>http://stevenf.com/archive/macworld-candybar-3-video.php</guid>
            <pubDate>Tue, 25 Mar 2008 00:00:02 PST</pubDate>
        </item>
        <item>
            <title>There's a widely held (but mistaken) belief that, for every...</title>
            <description><![CDATA[<p>There's a widely held (but mistaken) belief that, for every type of computer software application, there is a single "winner" and then a bunch of worthless competitors.</p>

<p>For example, you have Photoshop, and then you have a bunch of headlines like "Will Product X be a Photoshop Killer?"</p>

<p>Of course the real world is not binary like this.  Naturally, being the market leader is a comfortable place to be, but you don't have to "kill" the market leader to make a decent living.</p>

<p>My current hypothesis is that there are at least three positions of prominence in each segment -- three ways to be number one, if you will: The First One, The Free One, and The Good One.</p>

<h2>First-to-market</h2>

<p>What got me thinking about this in the first place is the iPhone SDK.  I've heard the words "gold rush" several times, and there's a bit of truth to that.  There'll no doubt be a couple hundred to-do list applications, and a couple hundred RSS readers.  But only one can be first and, simply by virtue of being first, it will receive a lot of attention.  </p>

<p>If the First One is "good enough", it has the potential of sticking around for a very long time.  This is what is traditionally referred to as "first mover advantage".</p>

<p>But does that mean you're out of luck if you're the second, third, or hundredth released?  Certainly not.</p>

<h2>If you can't beat 'em, undercut 'em</h2>

<p>The second "number one" position is the freeware alternative.  Or, in some cases, alternatives.  A free program need not be glamorous or even completely bug-free.  It can garner a respectable following simply by not costing anything.  </p>

<p>I've seen many times people struggle and struggle on with a clunky freeware app just because they're not willing to pay $20 for a significantly better alternative.  There's nothing wrong with that particular brand of masochism.  People prioritize differently, and money is more valuable than time to a whole lot of people.  It's Capitalism in action.</p>

<p>The people who are most tenacious about exclusively using freeware whenever possible are usually incredulous that <i>anyone</i> would buy a commercial product when a free alternative is available.  I've heard many times, "how can you guys make a living when FREE command line file transfer clients are INCLUDED with the OS?"  Well, the answer is simply that not everyone weights the price factor vs. the user experience factor in the same way.</p>

<p>Corporations in particular are hesitant to buy into an application that has no legal business entity to back it up.  No guaranteed source of support.  No full-time team dedicated to working on the product every day.  Nobody to sue if something goes wrong.  You also never hear the classic "I'd buy it if it were $10 less" from a corporation -- your software either performs a useful function at an acceptable price, or it doesn't.</p>

<p>It remains to be seen how or if freeware will work on the iPhone.  Will the application fee be an obstacle to a freeware developer?  Will it be worth Apple's time to accept iPhone freeware onto the App Store, when 30% of zero is zero?  I guess we'll find out.</p>

<h2>Be the best</h2>

<p>If you're neither first nor free, there is still a way to carve out a niche for yourself: have a better application than everyone else.</p>

<p>Quality is the third leg of the axis.  A free app may not be worth what you paid if it doesn't work right, or works so clumsily that you have to re-read the help file every time you use it.  The first app may be OK, but resting on its laurels of first-ness and not moving forward.</p>

<p>If Web 2.0 has taught us anything, it's that for any segment leader you can have 20,000 imitators, 2 or 3 of which will be good enough to gain a pretty respectable user base.  Will you win the magical check from Google this way?  Probably not.  But that's not the only possible satisfying outcome.</p>

<h2>A potent cocktail</h2>

<p>Where you can really dominate is by combining two or more of these properties.  If you are first AND best, you'll be doing quite well for a very long time, as long as you stay the best.  If you're the best and free, it's going to be very hard to compete with you -- although those two lines don't intersect just every day.</p>

<h2>A new distribution model</h2>

<p>I have mixed feelings about the iPhone App Store.  How do I feel about the 70/30 split?  It's OK.  Would I prefer it was 80/20 or 90/10?  Of course.  However, let's not undervalue a centralized, Apple-branded software repository that is bundled on every unit of the hardware.</p>

<p>Whenever one of our apps hits the Mac Software page of Apple's site, we get a tidal wave of traffic.  Forget VersionTracker or MacUpdate, you want to be on the Mac OS X Software page.  Assuming this extends to the iPhone app store, I say you re-think Apple's 30% cut as your marketing budget, and suddenly everything makes a bit more sense.  They aren't just taking your money and giving you nothing back -- they're putting your apps directly in front of EVERY SINGLE person who can possibly use your product.  If you can't see the value of that, then I don't know what else to tell you.</p>

<p>I also have mixed emotions about Apple being the gatekeeper of all iPhone applications.  Would the Mac be as good if Apple got to approve or deny every third party application?  Would Apple approve, for example, CandyBar?  I have my doubts.</p>

<p>On the other hand, a crap filter is desperately needed.  When Palm OS or Windows Mobile boasts "tens of thousands of applications" what they actually mean is "about 10 really good ones and a tsunami of effluvia".  I don't like having another company decide what is and isn't good for me to put on my iPhone.  But if I have to live with it, I'd rather it was Apple than any other company, because I have (so far) faith that they'll not be unnecessarily restrictive.  Hopefully they don't squander that faith over time.</p>

<p>The iPhone software distribution model is as disruptive as the iPhone itself, and I'm very interested to see how it all works out, and what ripple effects it will have on the software industry as a whole for the next ten years.  It's definitely a fun time to be in this business.</p>
]]></description>
            <link>http://stevenf.com/archive/the-first--the-free--and-the-good.php</link>
            <guid>http://stevenf.com/archive/the-first--the-free--and-the-good.php</guid>
            <pubDate>Wed, 19 Mar 2008 00:00:07 PST</pubDate>
        </item>
        <item>
            <title>Cabel and I appear *very* briefly in the "People Power" epi...</title>
            <description><![CDATA[<p>Cabel and I appear <em>very</em> briefly in the "People Power" episode of Discovery Science's internet documentary called "<a href="http://science.discovery.com/tv/download/download.html">Download</a>".</p>

<p>What was originally shot over an entire day to be a segment about the Audion / iTunes story got unfortunately reduced to about a minute of screen time, during which only Cabel speaks.  I do, however, get name-dropped and make an appearance as a hazy blob in the background.  Oh, and there's some incredibly painful-for-me footage of the two of us playing Dance Dance Revolution for a few seconds.</p>

<p>So set your Tivos if this sounds interesting to you.</p>

<p>The documentary itself is a teensy bit corny due to an overenthusiastic host and a target audience of people who are not alpha-nerds like you and I.  Still fun to watch, though.</p>
]]></description>
            <link>http://stevenf.com/archive/people-power.php</link>
            <guid>http://stevenf.com/archive/people-power.php</guid>
            <pubDate>Tue, 18 Mar 2008 00:00:12 PST</pubDate>
        </item>
        <item>
            <title>Since before our trip, I've been working feverishly to upda...</title>
            <description><![CDATA[<p>Since before our trip, I've been working feverishly to update, edit, and clean up some of Coda's book content to make it an even more useful and concise reference.</p>

<p>Today I finally finished my initial passes through the HTML and CSS books.   Whew.  The sorts of things I've been doing are:</p>

<ul>
<li><p>Condensing the pages by chucking out a lot of page content (such as long lists of cross-reference links) that has turned out not to be so useful in practice</p></li>
<li><p>Pruning out tons of IE-specific (non-standards-compliant) content</p></li>
<li><p>Cross-checking with other sources (such as W3C) for accuracy</p></li>
<li><p>Modernizing the "compatibility" information bylines and flagging deprecated tags and attributes</p></li>
<li><p>Rewriting some awkwardly phrased passages</p></li>
<li><p>Adding links where other tags/attributes are referenced</p></li>
<li><p>Other little tweaks to improve your experience</p></li>
</ul>

<p>I haven't yet started to overhaul the JavaScript book, but a similar treatment is on my to-do list.  The PHP book is a slightly bigger challenge, since we generate it algorithmically from the official PHP documentation, but there are ways we can improve that too.</p>

<p>Best of all, since we host the books, you don't have to do anything.  They'll just be better the next time you use them.</p>

<p>It's not just the books that are always evolving in Coda.  Our team is hard at work on a feature update for the application itself which will be a response to many of your most submitted feature requests.  </p>

<p>It's not even 4 months since the last update, but I know the wait is killing some of you regardless.  Please try to resist asking me for a release date.  We have always tried to ship by quality, not by calendar.  A buggy release sooner doesn't help anyone.</p>

<p>(We're not neglecting Transmit either -- some major plumbing is going on in that department, but it's a little early to be talking about it.  Suffice it to say, for now, that there is plenty of motion.)</p>

<p>One last thing about the Coda books: please don't be shy to email us if you notice anything in them that you consider to be missing or inaccurate, and we will investigate!</p>
]]></description>
            <link>http://stevenf.com/archive/tweaking-coda-books.php</link>
            <guid>http://stevenf.com/archive/tweaking-coda-books.php</guid>
            <pubDate>Tue, 18 Mar 2008 00:00:07 PST</pubDate>
        </item>
    </channel>
</rss>
