<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Atomized</title>
	<atom:link href="http://atomized.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://atomized.org</link>
	<description>Fragmenting reality.</description>
	<pubDate>Fri, 18 Jul 2008 04:48:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>What’s wrong with NetNewsWire on the iPhone</title>
		<link>http://atomized.org/2008/07/what%e2%80%99s-wrong-with-netnewswire-on-the-iphone/</link>
		<comments>http://atomized.org/2008/07/what%e2%80%99s-wrong-with-netnewswire-on-the-iphone/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 04:48:29 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[netnewswire]]></category>

		<category><![CDATA[rss]]></category>

		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=271</guid>
		<description><![CDATA[So, I’ve been suffering through the crappy mobile NewsGator site while gnashing my face off waiting for a native NetNewsWire on my iPhone. Last Friday, I got it, and I’d almost prefer the mobile site.
One issue is speed. It’s not very fast. It’s not unusable, but it is irritating. I’m not going into that, because [...]]]></description>
			<content:encoded><![CDATA[<p>So, I’ve been suffering through the <a href="http://m.newsgator.com/">crappy mobile NewsGator site</a> while gnashing my face off waiting for a native NetNewsWire on my iPhone. Last Friday, I got it, and I’d almost prefer the mobile site.</p>
<p>One issue is speed. It’s not very fast. It’s not unusable, but it is irritating. I’m not going into that, because I don’t think that’s very interesting, and I can’t analyze <i>why</i> it’s slow. What does bother me greatly is the UI, so let’s take a look at that.</p>
<p><a href="http://atomized.org/wp-content/uploads/2008/07/img_0001.png"><img src="http://atomized.org/wp-content/uploads/2008/07/img_0001-200x300.png" alt="" title="Items in a feed" width="200" height="300" class="alignleft size-medium wp-image-274" /></a> On the feed list screen, they chose to use large fonts for the feed names. It looks odd to my eye, and this is the only place in the app where they’re used. I’d prefer to see more consistent type in these lists. Also, feed names overlap the badge showing the unread count, which looks bad.</p>
<p>Feeds with no unread items appear in the list; the only visual difference is the lack of the badge on the right. With the small screen of the iPhone, this is a terrible waste of real estate; nearly half the displayed items are just wasting pixels. The desktop version of NNW can sort feeds in order of most-unread to least-unread. That - or some other setting to get those out of the way - would be a big improvement.</p>
<p>Lastly, there’s the Account button. This lets you change the name of your iPhone in the online sync services, as well as change your username and password. This is a prime candidate for <a href="http://daringfireball.net/2008/07/app_store_day_one">moving to the Settings application</a>, since it’s only used at setup time and very infrequently thereafter.</p>
<p><a href="http://atomized.org/wp-content/uploads/2008/07/img_0014.png"><img src="http://atomized.org/wp-content/uploads/2008/07/img_0014-300x41.png" alt="" title="A feed title showing the feed name and unread count" width="300" height="41" class="alignright size-medium wp-image-287" /></a><a href="http://atomized.org/wp-content/uploads/2008/07/img_0011.png"><img src="http://atomized.org/wp-content/uploads/2008/07/img_0011-200x300.png" alt="" title="Items in a feed" width="200" height="300" class="alignright size-medium wp-image-275" /></a> On the list of items in the feed, the unread count is appended to the feed title in parentheses. When you have a feed with a long name, the unread count is not visible, since the title is truncated, and the count is at the very end.</p>
<p>Items which have been read appear in gray, while those which are unread appear blue. The distinction, particularly when reading in the daylight, is too subtle. Adopting the blue dot used in Mail (for unread messages) and iPod (for new podcasts) would be easier to see, as well as being consistent with the stock applications.</p>
<p>There is a “Mark all as read” button. This works as advertised, but could be improved. On the mobile site, this takes you back to the list of feeds, and this seems like good behavior to have here, too. Once you read everything in a feed, the feed should be hidden from the feed list.</p>
<p>There is no way to jump from one feed to another. You must go back to the list and choose a different feed, which feels clumsy.</p>
<p><a href="http://atomized.org/wp-content/uploads/2008/07/img_0013.png"><img src="http://atomized.org/wp-content/uploads/2008/07/img_0013-200x300.png" alt="" title="An item in a feed" width="200" height="300" class="alignleft size-medium wp-image-276" /></a> Examining an item in a feed reveals still more interface blunders. The feed’s unread count is, once again, appended to the feed title, causing the same problem as on the item list screen.</p>
<p>The “Open in Safari” button makes no sense. From it’s placement on the single item view, one would assume it to open the item in Safari. Counterintuitatively, it opens the <i>feed’s home</i> in Safari. There does not appear to be any way to open a specific item in Safari.</p>
<p>Tapping the item title or any link in it’s body opens that in the embedded web view of NetNewsWire. This is convenient, but reveals many more problems.</p>
<p><a href="http://atomized.org/wp-content/uploads/2008/07/img_0005.png"><img src="http://atomized.org/wp-content/uploads/2008/07/img_0005-200x300.png" alt="" title="A page in the embedded web view" width="200" height="300" class="alignright size-medium wp-image-278" /></a> There are no back/forward buttons in the embedded view. This is a problem, since tapping a link follows it - there is no way to go back. Double-tapping to zoom is quite dangerous, since you often end up tapping a link in the page content which is too small to see. There is also no stop button, so once you do that, you have no choice but to go back and start over.</p>
<p>Which reveals <i>still more</i> problems. When you tap the back button in the top-left of the page, it returns you <i>two</i> levels, back to the item list, rather than the item you were looking at.</p>
<p><a href="http://atomized.org/wp-content/uploads/2008/07/img_0006.png"><img src="http://atomized.org/wp-content/uploads/2008/07/img_0006-200x300.png" alt="" title="The clip menu" width="200" height="300" class="alignleft size-medium wp-image-279" /></a> Jumping to the bottom, there’s a plus icon. This slides a panel up which prompts you to add the item to your clippings. The dialog contains two buttons. “Add to Clippings” and “Cancel.”  If you clip an item, then tap the icon again, you’re prompted to clip it once more. This leads to confusion as to whether the item was, in fact, clipped. Further, there is no reason this requires a full dialog. A simple clip icon which toggles between clip and unclip would suffice. Worst, though, there is no way to read your clipped items from either the mobile site or the application.</p>
<p>The “Next Unread” button works how you’d think. It would be nicer to have up/down arrows like Mail. There is no way to go to the previous item, aside from going back to the list view and reselecting it.</p>
<p>Less obvious is how items are marked read as soon as you view them. When you load an item, NNW starts marking it as read in the background. You see a spinner in the lower-right corner; NNW is sending the status to the server in the background, then it decrements the count. It takes a few seconds if you’re stuck on EDGE. I think it would be better to decrement the number sooner, then send the status in batches. This how it works already if you’re offline; counts drop instantly, then the remote status is updated automatically when you have signal again.</p>
<p>Another nitpicky problem is that the state isn’t completely restored when you quit and come back - when accidentally launching Safari to read a feed’s home page, for example. The item you come back to is always scrolled to the very top, rather than to the position you left it at. This can be irritating when you’re halfway through a longer post.</p>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/07/what%e2%80%99s-wrong-with-netnewswire-on-the-iphone/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Third-party OS X drivers: Just Say No</title>
		<link>http://atomized.org/2008/07/third-party-os-x-drivers-just-say-no/</link>
		<comments>http://atomized.org/2008/07/third-party-os-x-drivers-just-say-no/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 07:02:44 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[canon]]></category>

		<category><![CDATA[drivers]]></category>

		<category><![CDATA[lide]]></category>

		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=268</guid>
		<description><![CDATA[Without a doubt, the worst part of using a Mac is dealing with the mess that is third-party hardware drivers. Using hardware under OS X is either completely painless, or a nightmare.
The best scenario is that the hardware is supported out of the box. This happens most of the time, and it’s extremely pleasant. You [...]]]></description>
			<content:encoded><![CDATA[<p>Without a doubt, the worst part of using a Mac is dealing with the mess that is third-party hardware drivers. Using hardware under OS X is either completely painless, or a nightmare.</p>
<p>The best scenario is that the hardware is supported out of the box. This happens most of the time, and it’s extremely pleasant. You plug the hardware in, and it works. Gravy.</p>
<p>At the opposite end of the spectrum, you have braindead third-party drivers. Every single device which has required third-party drivers has been a nightmare for me to use. Example: the Canon LiDE 25 scanner I just bought. It’s drivers install, then <i>immediately delete themselves.</i> Then ask you to reboot. What the <i>hell?</i> You’re left with mysteriously non-functioning hardware. And don’t even get me started on their scanning tool. Feast your eyes on this:</p>
<p><a href="http://atomized.org/wp-content/uploads/2008/07/canoscan-1.png"><img src="http://atomized.org/wp-content/uploads/2008/07/canoscan-1-300x102.png" alt="The worst OS X app UI ever?" title="canoscan-1" width="300" height="102" class="alignnone size-medium wp-image-269" /></a><a href="http://atomized.org/wp-content/uploads/2008/07/canoscan-2.png"><img src="http://atomized.org/wp-content/uploads/2008/07/canoscan-2-241x300.png" alt="The scan dialog" title="canoscan-2" width="241" height="300" class="alignnone size-medium wp-image-270" /></a></p>
<p>Yeah. Nevermind that Image Capture is already installed, works fine, and doesn’t make my eyes bleed.</p>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/07/third-party-os-x-drivers-just-say-no/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ridiculously useful Bash shell functions</title>
		<link>http://atomized.org/2008/07/ridiculously-useful-bash-shell-functions/</link>
		<comments>http://atomized.org/2008/07/ridiculously-useful-bash-shell-functions/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 21:30:01 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=267</guid>
		<description><![CDATA[Put these in your ~/.bash_profile.

function mkcd ()
{
    mkdir -p $1 &#038;&#038; cd $1
}

function cdrm ()
{
    THIS=`pwd`
    cd ..
    rmdir $THIS
}

mkcd makes a directory, then changes into it.
cdrm changes to the parent directory, then removes the one you were just in.
]]></description>
			<content:encoded><![CDATA[<p>Put these in your <code>~/.bash_profile</code>.</p>
<pre>
function mkcd ()
{
    mkdir -p $1 &#038;&#038; cd $1
}

function cdrm ()
{
    THIS=`pwd`
    cd ..
    rmdir $THIS
}
</pre>
<p><code>mkcd</code> makes a directory, then changes into it.</p>
<p><code>cdrm changes to the parent directory, then removes the one you were just in.</code></p>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/07/ridiculously-useful-bash-shell-functions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Subversion: Continued hate</title>
		<link>http://atomized.org/2008/06/subversion-continued-hate/</link>
		<comments>http://atomized.org/2008/06/subversion-continued-hate/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 17:18:30 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[fail]]></category>

		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=266</guid>
		<description><![CDATA[
ieure@host:~/modules$ svn up
svn: Working copy 'branches/genesis' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
ieure@host:~/modules$ svn cleanup .
ieure@host:~/modules$ svn up
svn: Working copy 'branches/genesis' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
ieure@host:~/modules$ svn cleanup
ieure@host:~/modules$ svn up
svn: Working copy 'branches/genesis' locked
svn: run 'svn cleanup' to remove locks (type [...]]]></description>
			<content:encoded><![CDATA[<pre>
ieure@host:~/modules$ svn up
svn: Working copy 'branches/genesis' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
ieure@host:~/modules$ svn cleanup .
ieure@host:~/modules$ svn up
svn: Working copy 'branches/genesis' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
ieure@host:~/modules$ svn cleanup
ieure@host:~/modules$ svn up
svn: Working copy 'branches/genesis' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
ieure@host:~/modules$
</pre>
<p>*sigh*</p>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/06/subversion-continued-hate/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reassigning Trac tickets from commit messages</title>
		<link>http://atomized.org/2008/06/reassigning-trac-tickets-from-commit-messages/</link>
		<comments>http://atomized.org/2008/06/reassigning-trac-tickets-from-commit-messages/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 22:37:16 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=265</guid>
		<description><![CDATA[Here at Digg, we’ve been discussing ways to streamline our development process. One of the suggestions I came up with was the ability to reassign tickets (via trac-post-commit-hook) in commit messages.
I hacked it together today and submitted it back to Trac.
The changes are against r5308 of the hook, which is all well and good if [...]]]></description>
			<content:encoded><![CDATA[<p>Here at <a href="http://digg.com/">Digg</a>, we’ve been discussing ways to streamline our development process. One of the suggestions I came up with was the ability to reassign tickets (via <a href="http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook">trac-post-commit-hook</a>) in commit messages.</p>
<p>I hacked it together today and <a href="http://trac.edgewall.org/ticket/7300">submitted it back</a> to Trac.</p>
<p>The changes are against <a href="http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook?rev=5308">r5308</a> of the hook, which is all well and good if you run Trac 0.11.x. Unfortunately, it’s incompatible with Trac 0.11.x. I backed out some of the changes (<a href="http://trac.edgewall.org/changeset/4159/trunk/contrib/trac-post-commit-hook">from r4159</a>) which broke things, and it’s working for me.</p>
<p>My changes are attached to <a href="http://trac.edgewall.org/ticket/7300">the ticket</a> I opened.</p>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/06/reassigning-trac-tickets-from-commit-messages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Parsing URL query parameters in Python</title>
		<link>http://atomized.org/2008/06/parsing-url-query-parameters-in-python/</link>
		<comments>http://atomized.org/2008/06/parsing-url-query-parameters-in-python/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 23:22:33 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=264</guid>
		<description><![CDATA[I’ve been dabbling with Python for several months now, but I’m not quite as proficient with it as I’d like.
I was hacking on some stuff recently, and needed to parse the query parameters in a URL. Python has URL parsing, but it doesn’t include querystring parsing.
This was the pleasantly easy solution:

from urlparse import urlparse
url = [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been dabbling with <a href="http://python.org">Python</a> for several months now, but I’m not quite as proficient with it as I’d like.</p>
<p>I was hacking on some stuff recently, and needed to parse the query parameters in a URL. Python has <a href="http://docs.python.org/lib/module-urlparse.html">URL parsing</a>, but it doesn’t include querystring parsing.</p>
<p>This was the pleasantly easy solution:</p>
<pre>
from urlparse import urlparse
url = urlparse('http://www.google.com/search?hl=en&#038;safe=off&#038;q=atomized&#038;btnG=Search')
params = dict([part.split('=') for part in url[4].split(&#8217;&#038;')])
</pre>
<h2>What’s going on here</h2>
<p>Let’s break the example down a bit.</p>
<ol>
<li>
<pre>from urlparse import urlparse</pre>
<p>This pulls in Python’s URL parser.</p>
</li>
<li>
<pre>url = urlparse('http://www.google.com/search?hl=en&#038;safe=off&#038;q=atomized&#038;btnG=Search')</pre>
<p>This passes the URL through urlparse, leaving us with a <a href="http://en.wikipedia.org/wiki/Tuple">tuple</a> of URL components.</p>
</li>
<li>
<pre>url[4].split(&#8217;&#038;')</pre>
<p>This splits the querystring on “&#038;” characters, leaving us with a list of “key=val” scalars. The output of this would be:</p>
<pre>['hl=en', 'safe=off', 'q=atomized', 'btnG=Search']</pre>
<p></li>
<li>
<pre>[part.split('=') for part in url[4].split(&#8217;&#038;')]</pre>
<p>This is Python’s <a href="http://diveintopython.org/native_data_types/mapping_lists.html">list mapping</a>, also known as <a href="http://en.wikipedia.org/wiki/List_comprehension">list comprehension</a>. It allows us to map a function over a list - in this case, <code>part.split('=')</code> on the list of “key=value” pairs from the previous step. This leaves us with:</p>
<pre>[['hl', 'en'], ['safe', 'off'], ['q', 'atomized'], ['btnG', 'Search']]</pre>
<p>That is, an array of arrays, where the first member of the child array is the key and the second is the value.</p>
</li>
<li>
<pre>params = dict([part.split('=') for part in url[4].split(&#8217;&#038;')])</pre>
<p>The last part of this is <code>dict()</code>, which turns the array structure above into a dictionary:</p>
<pre>
{'q': 'atomized', 'safe': 'off', 'btnG': 'Search', 'hl': 'en'}
</pre>
<p>Thix is roughly equivalent to a hash map or associative array. It allows us to access specific keys, such as <code>params['q']</code>.</p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/06/parsing-url-query-parameters-in-python/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The correct way to disable Spotlight</title>
		<link>http://atomized.org/2008/05/the-correct-way-to-disable-spotlight/</link>
		<comments>http://atomized.org/2008/05/the-correct-way-to-disable-spotlight/#comments</comments>
		<pubDate>Sat, 31 May 2008 03:39:35 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=262</guid>
		<description><![CDATA[A while back, I was looking for a way to remove the Spotlight icon from my menubar. I rarely if ever use menu icons, and wanted to reduce the clutter.
The only guides I was able to find recommended chmodding Spotlight.app to 000, to prevent it from being run. I did this, and was happy for [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I was looking for a way to remove the Spotlight icon from my menubar. I rarely if ever use menu icons, and wanted to reduce the clutter.</p>
<p>The only guides I was able to find recommended chmodding Spotlight.app to 000, to prevent it from being run. I did this, and was happy for a while, but this approach has a number of problems.</p>
<p>It’s unreliable. After OS updates or running repair permissions<a id="note-1-src" href="#footnote-1"><sup>1</sup></a>, it’s back. But the main problem is more severe: launchd tries to relaunch it continuously. This is a much larger problem than it might seem. While I don’t think the system resources this consumes are significant, it does cause launchd to complain incessantly in your log files - every few seconds - which can eat up your disk space at an alarming rate.</p>
<p>I knew there had to be a better way, so I went looking. It turns out that launchd has normal .plist configuration files which tells it what services to launch. The relevant file for Spotlight is in <code>/System/Library/LaunchAgents/com.apple.Spotlight.plist</code>.</p>
<p>To completely disable Spotlight, this is what you need to do:</p>
<ol>
<li>In Finder, select Go ▸ Go To Folder (⌘⇧G)</li>
<li>Enter <kbd>/System/Library/LaunchAgents</kbd>; click Go.</li>
<li>Download <a href="http://atomized.org/wp-content/uploads/2008/05/com.apple.Spotlight.plist">my copy of com.apple.Spotlight.plist</a>.</li>
<li>Drag the file from wherever you downloaded it to the <code>/System/Library/LaunchAgents</code> window.</li>
<li>Click “Authenticate” when prompted; enter your password; confirm that you want to replace the old file.</li>
<li>Reboot.</li>
</ol>
<p>Spotlight is gone for good, and I noticed a <i>significant</i> reduction in the time it takes to log in.</p>
<ol>
<li id="footnote-1"><a href="http://daringfireball.net/2006/04/repair_permissions_voodoo">Repair permissions is voodoo</a>, and never fixes anything, but<br />
people do it anyway.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/05/the-correct-way-to-disable-spotlight/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Keybinding irritations</title>
		<link>http://atomized.org/2008/05/keybinding-irritations/</link>
		<comments>http://atomized.org/2008/05/keybinding-irritations/#comments</comments>
		<pubDate>Tue, 27 May 2008 19:12:15 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[irritating]]></category>

		<category><![CDATA[os x]]></category>

		<category><![CDATA[show fonts]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=261</guid>
		<description><![CDATA[⌘T in nearly any app which uses tabs opens a new tab. In apps without tabs, it opens the Show Fonts. This is a floating window, which cannot be closed with ⌘W, the usual binding to close a tab or window.
While it can be closed in most cases, you have to use a different keystroke, [...]]]></description>
			<content:encoded><![CDATA[<p>⌘T in nearly any app which uses tabs opens a new tab. In apps without tabs, it opens the Show Fonts. This is a floating window, which cannot be closed with ⌘W, the usual binding to close a tab or window.</p>
<p>While <a href="http://www.macosxhints.com/article.php?story=20050707220910916">it can be closed in most cases</a>, you have to use a different keystroke, which can be problematic.</p>
<p>Example:</p>
<ol>
<li>Attempt to open a new tab in Firefox, but Adium has the focus.</li>
<li>Press ⌘T, get the Show Fonts window.</li>
<li>Press ⌘W, close the tab you’re talking in, the unwanted Show Fonts window is still open.</li>
<li>Scrabble for the mouse in frustration.</li>
</ol>
<p>This happens to me several times a day. I’ve noticed that since Leopard enabled the ability to scroll background windows, I do it more. While I love that ability, I think it removes a subtle cue as to which app has the focus. The Firefox 3 betas exacerbated the problem, since they appeared active even when in the background.</p>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/05/keybinding-irritations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Something I did not know</title>
		<link>http://atomized.org/2008/05/something-i-did-not-know/</link>
		<comments>http://atomized.org/2008/05/something-i-did-not-know/#comments</comments>
		<pubDate>Tue, 13 May 2008 14:16:47 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[hard links]]></category>

		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=260</guid>
		<description><![CDATA[Using tar to back up a disk which contains large numbers of hard links (e.g. a Time Machine volume) is extremely slow.
Slow as in, I started the backup of this 300gb disk last night, and it’s just over halfway done this morning.
]]></description>
			<content:encoded><![CDATA[<p>Using <code>tar</code> to back up a disk which contains large numbers of hard links (e.g. a Time Machine volume) is <i>extremely</i> slow.</p>
<p>Slow as in, I started the backup of this 300gb disk last night, and it’s just over halfway done this morning.</p>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/05/something-i-did-not-know/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Unicode wins</title>
		<link>http://atomized.org/2008/05/unicode-wins/</link>
		<comments>http://atomized.org/2008/05/unicode-wins/#comments</comments>
		<pubDate>Mon, 05 May 2008 18:52:25 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[encodings]]></category>

		<category><![CDATA[unicode]]></category>

		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://atomized.org/?p=259</guid>
		<description><![CDATA[The Unicode family of encodings has just become the dominant encoding on the web.
Good news for all.
]]></description>
			<content:encoded><![CDATA[<p>The Unicode family of encodings <a href="http://googleblog.blogspot.com/2008/05/moving-to-unicode-51.html">has just become the dominant encoding</a> on the web.</p>
<p>Good news for all.</p>
]]></content:encoded>
			<wfw:commentRss>http://atomized.org/2008/05/unicode-wins/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
