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

<channel>
	<title>thomas kho's blog</title>
	<atom:link href="http://www.thomaskho.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thomaskho.com/blog</link>
	<description>updated once in a blue moon with an intended audience of one</description>
	<pubDate>Sun, 04 Jan 2009 23:51:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Spotify: the free, pre-stocked iTunes</title>
		<link>http://www.thomaskho.com/blog/2009/01/spotify-the-free-pre-stocked-itunes/</link>
		<comments>http://www.thomaskho.com/blog/2009/01/spotify-the-free-pre-stocked-itunes/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 23:49:05 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[General]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/?p=136</guid>
		<description><![CDATA[Spotify is an online music service with a slick Mac client. I had a coworker briefly show me the Windows client over the summer, and I can&#8217;t figure out why I wasn&#8217;t more impressed then. It has a dead simple, iTunes-like interface: search for songs, queue them up and they play immediately.
The &#8220;Artist radio&#8221; feature [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.spotify.com/">Spotify</a> is an online music service with a slick Mac client. I had a coworker briefly show me the Windows client over the summer, and I can&#8217;t figure out why I wasn&#8217;t more impressed then. It has a dead simple, iTunes-like interface: search for songs, queue them up and they play immediately.</p>
<p>The &#8220;Artist radio&#8221; feature is promising, but limited to songs by (manually?) pre-selected, related artists. The other radio feature only lets you pick decades and genres. Spotify could really use a sprinkle of some of that Music Genome magic that Pandora uses. Browsing the music catalog, they show you exactly the information you want, and don&#8217;t skimp on listing <em>full discography</em> on one page, which is pretty cool. Though, if only the play queue and history persisted across app restarts&#8230;</p>
<p>What I really appreciate is that it feels like care was taken in the design of the app. While it&#8217;s nice to read that Spotify does aggressive caching on the client and uses P2P distribution, it&#8217;s a completely different, blown-away feeling when it actually works smoothly and nearly instantaneously. (Okay, granted, music is relatively low bit rate.) The UI is equally slick: &#8220;Top 10&#8243; lists are presented as a gridview with the top 3 items showing album art, a song&#8217;s popularity is always shown next to a song, there&#8217;s song de-duplication in search results and everything (searches, albums, artists, songs) can be grabbed as a link.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2009/01/spotify-the-free-pre-stocked-itunes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Disable same-origin policy in Firefox</title>
		<link>http://www.thomaskho.com/blog/2008/10/disable-same-origin-policy-in-firefox/</link>
		<comments>http://www.thomaskho.com/blog/2008/10/disable-same-origin-policy-in-firefox/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 05:53:49 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/?p=85</guid>
		<description><![CDATA[Just throwing up a quick post in the same vein as this gentleman who also lacked the Google-fu to quickly find it using the obvious search.

security.fileuri.strict_origin_policy - Disable/bypass same-origin policy enforcement in Firefox for local files

]]></description>
			<content:encoded><![CDATA[<p>Just throwing up a quick post in the same vein as <a href="http://www.rumble.net/blog/index.cgi/geek/Disable_same_origin_policy.html">this gentleman</a> who also lacked the Google-fu to quickly find it using the obvious search.</p>
<ul>
<li><a href="http://kb.mozillazine.org/Security.fileuri.strict_origin_policy">security.fileuri.strict_origin_policy</a> - Disable/bypass same-origin policy enforcement in Firefox for local files</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/10/disable-same-origin-policy-in-firefox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Building Wine on Mac OS X</title>
		<link>http://www.thomaskho.com/blog/2008/06/building-wine-on-mac-os-x/</link>
		<comments>http://www.thomaskho.com/blog/2008/06/building-wine-on-mac-os-x/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 05:59:53 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

		<category><![CDATA[OS X]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/?p=63</guid>
		<description><![CDATA[There are probably a bazillion of these posts out there, but I wanted to play with DTrace and Wine in OS X (post on this to come) and had to get the thing built first. This is mainly a &#8220;here&#8217;s what I did&#8221; post, with some &#8220;and this is why&#8221; sprinkled in.
I grabbed the dependency [...]]]></description>
			<content:encoded><![CDATA[<p>There are probably a bazillion of these posts out there, but I wanted to play with DTrace and Wine in OS X (post on this to come) and had to get the thing built first. This is mainly a &#8220;here&#8217;s what I did&#8221; post, with some &#8220;and this is why&#8221; sprinkled in.</p>
<p>I grabbed the dependency I was missing (you might need others, like libjpeg and libpng3 that I already had around) and the latest source from git</p>
<blockquote><p><code>sudo fink install fontforge git<br />
git clone git://source.winehq.org/git/wine.git \<br />
wine-git</code></p></blockquote>
<p>Of course, it&#8217;s good practice not to muddy up your source tree, so build in a separate directory</p>
<blockquote><p><code>mkdir bwine-git<br />
cd bwine-git</code></p></blockquote>
<p>Running just `configure` generates complaints about missing libxslt, libpng, and libjpeg. For libpng and libjpeg, I just needed to point to Fink&#8217;s libraries and headers under /sw. It took a little digging to figure out pkg-config had been installed by Fink, but since I wanted to use the system libxml and libxslt under /usr, I had to point pkg-config to the .pc files in /usr/lib/pkgconfig[1].</p>
<blockquote><p><code>PKG_CONFIG_PATH=/usr/lib/pkgconfig \<br />
CPPFLAGS=-I/sw/include \<br />
LDFLAGS=-L/sw/lib ../wine-git/configure</code></p></blockquote>
<p>I&#8217;m directed by configure to `make depend &#038;&#038; make`; I purposely leave out a -j2 since 1) it&#8217;s a hot day and I don&#8217;t want to kill my poor MacBook Pro, and 2) I don&#8217;t remember if it works correctly</p>
<blockquote><p><code>make depend &#038;&#038; make</code></p></blockquote>
<p>And finally, test it works</p>
<blockquote><p><code>./wine notepad.exe</code></p></blockquote>
<p>Unfortunately, I get the message that &#8220;Wine cannot find the FreeType font library.  To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5.&#8221; Let&#8217;s point dyld to our X11 libs (where FreeType lives), and try again</p>
<blockquote><p><code>DYLD_FALLBACK_LIBRARY_PATH=/usr/X11/lib \<br />
./wine notepad.exe</code></p></blockquote>
<p>Success!</p>
<p>[1] It seems that Wine&#8217;s autoconf script takes the value returned from pkg-config, if pkg-config exists, without trying the alternative (values from xslt-config and xml2-config, in this case), even if pkg-config returns an empty string. I might get around to submitting a patch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/06/building-wine-on-mac-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Upgrading a RAID-1 array&#8230;in only a week</title>
		<link>http://www.thomaskho.com/blog/2008/06/upgrading-a-raid-1-arrayin-only-a-week/</link>
		<comments>http://www.thomaskho.com/blog/2008/06/upgrading-a-raid-1-arrayin-only-a-week/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 04:11:27 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

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

		<category><![CDATA[Add new tag]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/?p=61</guid>
		<description><![CDATA[750GB hard disks have been at the $/GB sweet spot for a while now, and now that they&#8217;ve hit $100, I decided to upgrade my home directory RAID-1 from 250GB to 750GB. I really dread these upgrades, as there&#8217;s always a chance you can really screw things up. So, for when I upgrade to 2TB [...]]]></description>
			<content:encoded><![CDATA[<p>750GB hard disks have been at the $/GB sweet spot for a while now, and now that they&#8217;ve hit $100, I decided to upgrade my home directory RAID-1 from 250GB to 750GB. I really dread these upgrades, as there&#8217;s always a chance you can really screw things up. So, for when I upgrade to 2TB or whatever in two years, I wrote up some notes.</p>
<p>In my configuration, sdb1 and sdc1 are the partitions currently part of my RAID-1 md0. sdd is one of the 750GB disks. I&#8217;m adding one 750GB disk at a time, because 1) I want at least two copies of my data to be available at all times and 2) I only have one free drive bay and don&#8217;t want disks dangling next to the machine for hours.</p>
<ol>
<li>Change the number of active devices in the array from two to three. This will cause any newly added drive to become active (i.e. actually write the array&#8217;s data onto the new drive)<br />
<blockquote><p><code>mdadm -G /dev/md0 -n 3</code></p></blockquote>
</li>
<li>A little burn-in testing for the new disk<br />
<blockquote><p><code>badblocks -svw -t random -p 2 /dev/sdd</code></p></blockquote>
</li>
<li>Partition, not forgetting to set the partition type to 0xfd, Linux raid autodetect
</li>
<li>Add the new drive as a spare to the existing array<br />
<blockquote><p><code>mdadm /dev/md0 --add /dev/sdd1</code></p></blockquote>
</li>
<li>Once recovery is done (check `mdadm -D /dev/md0`), fail and remove one of the old disks from the array<br />
<blockquote><p><code>mdadm /dev/md0 -f /dev/sdc1 -r /dev/sdc1</code></p></blockquote>
</li>
<li>Shred the removed drive<br />
<blockquote><p><code>shred -v -n 2 -z /dev/sdc</code></p></blockquote>
</li>
<li>(Physically) swap out the removed drive and replace it with the second new one
</li>
<li>Repeat steps 2-5 above for the second new disk. Hold off on the shredding, as this is going to be our backup
</li>
<li>Reset the number of active devices in the array to two<br />
<blockquote><p><code>mdadm -G /dev/md0 -n 2</code></p></blockquote>
</li>
<li>Grow the array<br />
<blockquote><p><code>sudo mdadm -G /dev/md0 --size=max</code></p></blockquote>
</li>
<li>Let it resync, then unmount and resize the filesystem<br />
<blockquote><p><code>umount /home<br />
resize_reiserfs /dev/md0<br />
mount /home<br />
</code></p></blockquote>
</li>
<li>Finally, if everything seems okay, shred that second old disk<br />
<blockquote><p><code>shred -v -n 2 -z /dev/sdb</code></p></blockquote>
</li>
</ol>
<p>&#8230;and we&#8217;re done! The one annoying thing is that with testing and a couple of resyncs, you end up with loads of down time between really short and simple tasks. So it&#8217;s possible (and I speak from experience) to stretch this weekend project out over a whole week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/06/upgrading-a-raid-1-arrayin-only-a-week/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenID-enabled two-factor authentication on the cheap</title>
		<link>http://www.thomaskho.com/blog/2008/05/openid-enabled-two-factor-authentication-on-the-cheap/</link>
		<comments>http://www.thomaskho.com/blog/2008/05/openid-enabled-two-factor-authentication-on-the-cheap/#comments</comments>
		<pubDate>Mon, 12 May 2008 01:30:53 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/?p=60</guid>
		<description><![CDATA[I ran across this nine-month old post at cavemonkey50.com and I&#8217;m kind of left wondering where I was when this idea made its round on the blogs. Basically, PayPal will sell you a SecurID-like fob that can be OpenID-enabled using VeriSign as the OpenID provider (eh, VeriSign&#8230;sketchy? maybe.) The two key observations:
While PayPal is providing [...]]]></description>
			<content:encoded><![CDATA[<p>I ran across <a href="http://cavemonkey50.com/2007/08/paypals-new-security-key-opens-a-world-of-possibilities/">this nine-month old post at cavemonkey50.com</a> and I&#8217;m kind of left wondering where I was when this idea made its round on the blogs. Basically, PayPal will sell you a SecurID-like fob that can be OpenID-enabled using VeriSign as the OpenID provider (<em>eh, VeriSign&#8230;sketchy? maybe.</em>) The two key observations:</p>
<blockquote><p>While PayPal is providing the Security Key, the key is actually a <a href="https://idprotect.verisign.com/">VeriSign Identity Protection (VIP) device</a> &#8230; VeriSign is actually <a href="https://pip.verisignlabs.com/">an OpenID provider</a> and allows you to link your Security Key to your OpenID.</p></blockquote>
<p>So give PayPal $5, get one of these SecurID-like devices in the mail 10 days later, link it to VeriSign&#8217;s OpenID provider, and <strong>boom</strong> you get two-factor OpenID authentication. Assuming your email, blog, photo sharing site, etc are hooked into OpenID, you have a little less to worry about when you&#8217;re on the road using some random internet cafe terminal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/05/openid-enabled-two-factor-authentication-on-the-cheap/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Learning Mandarin Chinese with Mac OS X</title>
		<link>http://www.thomaskho.com/blog/2008/04/learning-mandarin-chinese-with-mac-os-x/</link>
		<comments>http://www.thomaskho.com/blog/2008/04/learning-mandarin-chinese-with-mac-os-x/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 05:09:22 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

		<category><![CDATA[OS X]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/?p=59</guid>
		<description><![CDATA[I use a Mac probably 90% of the time, so I wanted to share some tips for OS X I picked up that (I hope) are really helpful to the Mandarin Chinese learner.
As a bit of background, let me tell you where I&#8217;m coming from: I went to Chinese school for years as a kid [...]]]></description>
			<content:encoded><![CDATA[<p>I use a Mac probably 90% of the time, so I wanted to share some tips for OS X I picked up that (I hope) are really helpful to the Mandarin Chinese learner.</p>
<p>As a bit of background, let me tell you where I&#8217;m coming from: I went to Chinese school for years as a kid and didn&#8217;t really learn much of anything. I was never fluent, never really learned enough characters to sufficiently read (let alone write), and then I just stopped caring for some amount of time. Now, I&#8217;m back for more learning.</p>
<p>So, here are the tips:</p>
<ul>
<li><strong>ITABC Input Method</strong>
<p>I haven&#8217;t really used Windows in years, but last time I tried, I don&#8217;t think it had the pervasive Unicode support to even <em>display</em> Chinese characters in most apps. That said, I was nicely surprised when I found OS X 10.5 comes with a slew of Traditional and Simplified Chinese Input Methods built in. The one I use, ITABC, is dead simple. You just enter pinyin without tones and choose from candidate matches. There are plenty of places online (<a href="http://www.yale.edu/chinesemac/pages/osx5.html">here&#8217;s one at Yale</a>) that can walk you through setting it up.</li>
<li><strong>CEDICT for Apple Dictionary</strong>
<p>Apple includes a dictionary application in OS X. No big deal, right? Well, it&#8217;s actually pretty cool, because you can add your own custom dictionaries that integrate as seamlessly as the built-in dictionaries. CEDICT is a Chinese-English dictionary project (<a href="http://usa.mdbg.net/chindict/chindict.php">here&#8217;s an online dictionary based on CEDICT</a>) that&#8217;s available as a user dictionary for Dictionary.app. Even better, it also has pronunciations (little sound bites you can play) embedded in dictionary entries.</p>
<p>Here&#8217;s <a href="http://www.apple.com/downloads/macosx/home_learning/cedictforappledictionary.html">CEDICT for Apple Dictionary</a> at Apple Downloads. Just download it and drop it into your /Library/Dictionaries (or ~/Library/Dictionaries).</li>
<li><strong>Dictionary.app integration throughout OS X</strong>
<p>I mentioned seamless integration in that last bullet point. Well, in the Apple way, the dictionary is integrated throughout the system. Hover over some text, hit a hotkey (defaults to Cmd-Ctrl-D, but might I suggest F1), and a little panel pop up (inline, in your application) with the definition.</p>
<p><a href="http://www.macosxhints.com/article.php?story=20050429100017391">This hint at Mac OS X Hints</a> reminds us that we can hold down the dictionary hotkey to continuously get the definition of whatever word is currently under the cursor. Say you&#8217;re scanning <a href="http://news.google.cn/">news.google.cn</a> and there are a handful of words you don&#8217;t know. Just hit that hotkey, the dictionary entry panel pops up <em>in</em> Safari, and it moves with you as you move the cursor across the sentence.</li>
<p>If the default popup panel is too small for your tastes, <a href="http://groups.google.com/group/chinesemac/msg/0177f259ae130322">this post</a> has a link to a modified DictionaryPanel.app (drop it in /Applications/Dictionary.app/Contents/SharedSupport) that enlarges the popup panel window. Alternatively, you can open up DictionaryPanel.app/Contents/Resources/English.lproj/PopupWindow.nib in Interface Builder and just need to change the size of both the popup window and its content. Be sure to make a backup first!</p>
<li><strong>ChinesePod on iTunes</strong>
<p>Alright, so this last one might be a strech, but I found out about <a href="http://www.chinesepod.com/">ChinesePod</a>, which is a podcast with lessons in spoken Mandarin. It helps that the podcasters are pretty amusing. How does this tie in? Well, iTunes is setup to scrape the newest lessons and syncs them automatically with my iPod, so I can listen on my way to work. Zero effort necessary!</li>
</ul>
<p>Alright. That&#8217;s it for now. If you know of any other tips, please do share!</p>
<p>Note: This might seem like one big rave for OS X, but I tried really hard to keep that to a minimum. Apple&#8217;s just too cool <img src='http://www.thomaskho.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/04/learning-mandarin-chinese-with-mac-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Subway</title>
		<link>http://www.thomaskho.com/blog/2008/03/subway/</link>
		<comments>http://www.thomaskho.com/blog/2008/03/subway/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 02:03:52 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Food]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2008/03/subway/</guid>
		<description><![CDATA[I&#8217;ve been eating at Subway pretty often recently. They have a sub-of-the-day deal, $2.99 for a 6-inch, and also have any footlong sub for $5. Incredible, I know. It&#8217;s pretty much the cheapest meal option, cheaper than anything I could cook or microwave that has any semblance to real food.
Today, I had a footlong club [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been eating at Subway pretty often recently. They have a sub-of-the-day deal, $2.99 for a 6-inch, and also have any footlong sub for $5. Incredible, I know. It&#8217;s pretty much the cheapest meal option, cheaper than anything I could cook or microwave that has any semblance to real food.</p>
<p>Today, I had a footlong club for lunch (where, oddly enough, I ran into my roommate). Fast forward a couple hours to dinner time, and my roommate tells me he&#8217;s going back to Subway and convinces me to go back again too. Two feet of club sandwiches in one day.</p>
<p>Anyway, what I wanted to share is this: I always walk to Subway, and <a href="http://maps.google.com/maps?daddr=2618+Telegraph+Ave,+Berkeley,+CA+94704+(Subway+Salads+%26+Sandwiches)&#038;geocode=7672066393812458259,37.862621,-122.258814&#038;dirflg=&#038;saddr=2525+Regent,+94704&#038;f=d&#038;dq=subway++loc:+berkeley,+ca&#038;sll=37.8695,-122.27052&#038;sspn=0.173832,0.107898&#038;ie=UTF8&#038;hl=en&#038;z=18">this map</a> shows how far Subway is from my apartment. It&#8217;s less than two blocks, probably two minutes to walk. But my roommate offered to drive there. And we drove there. We drove two blocks to go to Subway.</p>
<p>Just wanted to share.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/03/subway/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Stressing disks in OS X for burn-in</title>
		<link>http://www.thomaskho.com/blog/2008/03/stressing-disks-in-os-x-for-burn-in/</link>
		<comments>http://www.thomaskho.com/blog/2008/03/stressing-disks-in-os-x-for-burn-in/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 02:57:11 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2008/03/stressing-disks-in-os-x-for-burn-in/</guid>
		<description><![CDATA[Sounds simple, you&#8217;d think doing drive burn-in for reliability is something people do everyday on Macs, but either my Google-foo is off or there&#8217;s just not an easy way to stress test disks. A drive just died from under two weeks use (note to self: don&#8217;t buy Iomega), so I&#8217;m forcing myself to put the [...]]]></description>
			<content:encoded><![CDATA[<p>Sounds simple, you&#8217;d think doing drive burn-in for reliability is something people do everyday on Macs, but either my Google-foo is off or there&#8217;s just not an easy way to stress test disks. A drive just died from under two weeks use (note to self: don&#8217;t buy Iomega), so I&#8217;m forcing myself to put the replacement I received this morning through its paces before committing any data to it.</p>
<p>This external drive, for reasons of compatibility and account restrictions, needs to eventually be formatted on my Mac to ext2, using ext2fsx (another post on the bugginess of ext2fsx later). Below is a list of ways I ran across to stress the disk.</p>
<p>Ideas for stressing a disk on OS X:</p>
<ol>
<li>format the disk with &#8220;secure erase&#8221; to write dummy data to the entire disk</li>
<li>just format the disk ext2/fsck it; the inode placement should give good coverage of the disk without taking SO LONG*</li>
<li>run `e2fsck` (fsck_ext2) with the -c -c option which invokes badblocks to read/write each block to find and track bad blocks.</li>
</ol>
<p>I started with the first, but realized badblocks is probably a better tool for the job (is there a native BSD equivalent?) save for the fact that you don&#8217;t get much seeking going on. The second one might address that, or maybe reading the disk&#8217;s block device while doing something else might induce the contention to give you the necessary seeking.</p>
<p>*A side gripe: since disk capacities (I have a 500GB external drive) have been growing faster than disk bandwidth (perhaps my fault for using 480Mbps USB2), reading or writing an entire drive takes on the order of HOURS (over <a href="http://www.google.com/search?num=100&#038;hl=en&#038;q=500GB+%2F+%28480Mb%2Fs%29+in+minutes&#038;btnG=Search">two hours twenty minutes</a> best case for my setup, and easily twice that from my experience today). It just never really affected me until now, and I&#8217;m kind of annoyed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/03/stressing-disks-in-os-x-for-burn-in/feed/</wfw:commentRss>
		</item>
		<item>
		<title>American Express could be awesomer (was: American Express is awesome)</title>
		<link>http://www.thomaskho.com/blog/2008/03/american-express-could-be-awesomer-was-american-express-is-awesome/</link>
		<comments>http://www.thomaskho.com/blog/2008/03/american-express-could-be-awesomer-was-american-express-is-awesome/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 19:06:31 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2008/03/american-express-could-be-awesomer-was-american-express-is-awesome/</guid>
		<description><![CDATA[I started this entry before leaving on a two week trip to China, as a reminder to rave about American Express. I thought I should at least post it, even without the happy ending I was expecting.
The day before leaving for China, I browsed some travel websites and found out that an American Express card [...]]]></description>
			<content:encoded><![CDATA[<p>I started this entry before leaving on a two week trip to China, as a reminder to rave about American Express. I thought I should at least post it, even without the happy ending I was expecting.</p>
<blockquote><p>The day before leaving for China, I browsed some travel websites and found out that an American Express card will get you personal check cashing services at some Bank of China branches. Of course, the internet didn&#8217;t yield much information, so I gave American Express&#8217;s Global Assist line a call. I was floored that the lady offered to call their China offices and the Bank of China to determine if my cards would work for cashing personal checks.</p></blockquote>
<p>So, wow. The intent was great. All this nice service. I think I called on a Saturday, expected a call back Sunday night (Monday morning in China). Unfortunately, that call never came and I left on my trip.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/03/american-express-could-be-awesomer-was-american-express-is-awesome/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FreeBSD 7.0 worth it just for ZFS?</title>
		<link>http://www.thomaskho.com/blog/2008/03/freebsd-70-worth-it-just-for-zfs/</link>
		<comments>http://www.thomaskho.com/blog/2008/03/freebsd-70-worth-it-just-for-zfs/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 18:59:23 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

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

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2008/03/freebsd-70-worth-it-just-for-zfs/</guid>
		<description><![CDATA[I&#8217;m a diehard OS X user, but keep around a desktop for nightly jobs and file storage. I&#8217;m rather unlucky with disk drives (killed one just yesterday), so I&#8217;ve been meaning to move to ZFS. FUSE on Linux doesn&#8217;t feel too trustworthy right now (right, I&#8217;ll trust drivers not in the mainline kernel), and having [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a diehard OS X user, but keep around a desktop for nightly jobs and file storage. I&#8217;m rather unlucky with disk drives (killed one just yesterday), so I&#8217;ve been meaning to move to ZFS. FUSE on Linux doesn&#8217;t feel too trustworthy right now (<em>right, I&#8217;ll trust drivers not in the mainline kernel</em>), and having finally gotten used to BSDisms, I&#8217;m not sure starting fresh with Solaris is the right path.</p>
<p>Long story short, I decided to try FreeBSD 7.0 (ZFS built in!). The last time I used FreeBSD was to shape traffic in a network testbed. This time, I&#8217;m looking for dead-simple usability. I want my WinPrinter to work plug and play, X to start outta the box in high res, and all that jazz.</p>
<p>First step, <a href="http://www.freebsd.org/releases/7.0R/announce.html">downloading the cd images</a> and <a href="http://blogs.ittoolbox.com/unix/bsd/archives/creating-your-own-freebsd-70-dvd-22791">making a dvd image</a> from that.</p>
<p>More later&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2008/03/freebsd-70-worth-it-just-for-zfs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Computer Scientists: &#8220;FREE ACM Flip-Top Calculator&#8221; with membership</title>
		<link>http://www.thomaskho.com/blog/2007/11/computer-scientists-free-acm-flip-top-calculator-with-membership/</link>
		<comments>http://www.thomaskho.com/blog/2007/11/computer-scientists-free-acm-flip-top-calculator-with-membership/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 04:13:46 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2007/11/computer-scientists-free-acm-flip-top-calculator-with-membership/</guid>
		<description><![CDATA[See: https://www.acm.org/studentoffer4
Seriously, they&#8217;ve got to be kidding. Maybe ACM isn&#8217;t familiar with their target audience, but a four-function flip-top calculator (granted it looks like it also has clock and calendar functions in its awkward display) is just not the way to incentivize students to join.
Please, stop with this branded junk.
]]></description>
			<content:encoded><![CDATA[<p>See: <a href="https://www.acm.org/studentoffer4">https://www.acm.org/studentoffer4</a></p>
<p>Seriously, they&#8217;ve got to be kidding. Maybe ACM isn&#8217;t familiar with their target audience, but a four-function flip-top calculator (granted it looks like it also has clock and calendar functions in its awkward display) is just not the way to incentivize students to join.</p>
<p>Please, stop with this branded junk.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2007/11/computer-scientists-free-acm-flip-top-calculator-with-membership/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dear God, why do we use fully qualified domain names so often?</title>
		<link>http://www.thomaskho.com/blog/2007/10/dear-god-why-do-we-use-fully-qualified-domain-names-so-often/</link>
		<comments>http://www.thomaskho.com/blog/2007/10/dear-god-why-do-we-use-fully-qualified-domain-names-so-often/#comments</comments>
		<pubDate>Wed, 31 Oct 2007 04:07:07 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2007/10/dear-god-why-do-we-use-fully-qualified-domain-names-so-often/</guid>
		<description><![CDATA[I login daily to servers with names like xx.xxxxxxxxxx.berkeley.edu* or xxxxxx.xxxx.berkeley.edu, and it annoys me to no end that in 2007, there&#8217;s no standard mechanism for personal namespaces. I want shorthands like q and r6 that allow me to name this small set of machines from whatever terminal I may be using.
Alas, here&#8217;s how I [...]]]></description>
			<content:encoded><![CDATA[<p>I login daily to servers with names like xx.xxxxxxxxxx.berkeley.edu* or xxxxxx.xxxx.berkeley.edu, and it annoys me to no end that in 2007, there&#8217;s no standard mechanism for personal namespaces. I want shorthands like q and r6 that allow me to name this small set of machines from whatever terminal I may be using.</p>
<p>Alas, here&#8217;s how I solved it:</p>
<p>I have a relatively short domain name (tkho.net), and my dirt cheap webhost (<a href="https://www.nearlyfreespeech.net/">NearlyFreeSpeech.NET</a>) lets me create virtually unlimited CNAME records, allowing me to creating mappings from x.tkho.net, xx.tkho.net, etc to the names of servers that I frequently use. I add tkho.net. to the list of search domains that my DNS resolver checks (if it can&#8217;t find the record q., it&#8217;ll try q.tkho.net.), and now, `ssh tkho@q` works perfectly, across all my machines, and `ssh tkho@q.tkho.net` when I&#8217;m not on my machine.</p>
<p>* names removed to protect the innocent.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2007/10/dear-god-why-do-we-use-fully-qualified-domain-names-so-often/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Calling conventions</title>
		<link>http://www.thomaskho.com/blog/2007/08/calling-conventions/</link>
		<comments>http://www.thomaskho.com/blog/2007/08/calling-conventions/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 19:54:52 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

		<category><![CDATA[Software Development]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2007/08/calling-conventions/</guid>
		<description><![CDATA[The Intel x86 Function-call Conventions - Assembly View page has saved my ass a countless number of times. Thank you, Steve Friedl.
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.unixwiz.net/techtips/win32-callconv-asm.html">Intel x86 Function-call Conventions - Assembly View</a> page has saved my ass a countless number of times. Thank you, Steve Friedl.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2007/08/calling-conventions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>It&#8217;s the last day of April</title>
		<link>http://www.thomaskho.com/blog/2007/04/its-the-last-day-of-april/</link>
		<comments>http://www.thomaskho.com/blog/2007/04/its-the-last-day-of-april/#comments</comments>
		<pubDate>Tue, 01 May 2007 04:19:16 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2007/04/its-the-last-day-of-april/</guid>
		<description><![CDATA[I wanted to get a post in for the month. I recall starting a couple of entries, topics including the amount of energy used by the standyby light on a MacBook Pro (idea scratched because it&#8217;s nearly insignificant) and others that escape me at the moment.
It&#8217;s crunch time, and I have one project+paper and two [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to get a post in for the month. I recall starting a couple of entries, topics including the amount of energy used by the standyby light on a MacBook Pro (idea scratched because it&#8217;s nearly insignificant) and others that escape me at the moment.</p>
<p>It&#8217;s crunch time, and I have one project+paper and two survey papers to complete in the next two weeks.</p>
<p><em>/insert witty closing here/ </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2007/04/its-the-last-day-of-april/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Automating library book renewals</title>
		<link>http://www.thomaskho.com/blog/2007/03/automating-library-book-renewals/</link>
		<comments>http://www.thomaskho.com/blog/2007/03/automating-library-book-renewals/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 03:19:02 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2007/03/automating-library-book-renewals/</guid>
		<description><![CDATA[I probably should be grateful that Berkeley lets you telnet into a machine and renew your library books. Unfortunately, I couldn&#8217;t stand to waste 45 seconds every two weeks doing this manually, so I instead spent 20 minutes writing a small script [txt] that renews books checked out from the UC Berkeley library. It&#8217;s easy [...]]]></description>
			<content:encoded><![CDATA[<p>I probably should be grateful that Berkeley lets you telnet into a machine and renew your library books. Unfortunately, I couldn&#8217;t stand to waste 45 seconds every two weeks doing this <em>manually</em>, so I instead spent 20 minutes writing a <a href="http://thomaskho.com/files/berkeley_renew_books.sh">small script</a> [<a href="http://thomaskho.com/files/berkeley_renew_books.sh.txt">txt</a>] that renews books checked out from the UC Berkeley library. It&#8217;s easy to use: just plugin your CalNet ID and pin (birthday) and you&#8217;re all set. It probably needs a recent Python with the pexpect library.</p>
<p>In about a year, I&#8217;ll have saved time on this endeavor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2007/03/automating-library-book-renewals/feed/</wfw:commentRss>
		</item>
		<item>
		<title>duplicity with Amazon S3</title>
		<link>http://www.thomaskho.com/blog/2007/01/duplicity-with-amazon-s3/</link>
		<comments>http://www.thomaskho.com/blog/2007/01/duplicity-with-amazon-s3/#comments</comments>
		<pubDate>Fri, 26 Jan 2007 02:30:22 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

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

		<category><![CDATA[The Pursuit of Happiness]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2007/01/duplicity-with-amazon-s3/</guid>
		<description><![CDATA[Goal: I want cheap backups
Reality: Online storage generally isn&#8217;t cheap
That is, until Amazon&#8217;s S3 came onto the scene last year. I&#8217;d heard of duplicity and knew it had backend support for S3, so I figured that it couldn&#8217;t be too hard to setup. Unfortunately, I couldn&#8217;t find a place online that ties everything together, so [...]]]></description>
			<content:encoded><![CDATA[<p>Goal: I want cheap backups</p>
<p>Reality: Online storage generally isn&#8217;t cheap</p>
<p>That is, until Amazon&#8217;s S3 came onto the scene last year. I&#8217;d heard of duplicity and knew it had backend support for S3, so I figured that it couldn&#8217;t be <em>too</em> hard to setup. Unfortunately, I couldn&#8217;t find a place online that ties everything together, so I&#8217;ll try to do that here.</p>
<p>Background: Amazon&#8217;s S3 (Simple Storage Service) is cheap, available storage. How cheap? $0.15 each GB-month, and $0.20/GB transfer. duplicity gives you &#8220;encrypted, bandwidth-efficient backup using the rsync algorithm.&#8221; Well, good enough for me. Let&#8217;s start.</p>
<p>On my Ubuntu Linux 6.10 (Edgy Eft) machine, I first had to get librsync-dev:</p>
<blockquote><p>sudo apt-get install librsync-dev</p></blockquote>
<p>Then, I got duplicity-cvs and installed it:</p>
<blockquote><p>cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/duplicity \<br />
co duplicity</p>
<p>cd duplicity<br />
dist/makedist 0.4.3<br />
tar xzf duplicity-0.4.3.tar.gz<br />
cd duplicity-0.4.3<br />
python setup.py install ??prefix=/home/tkho</p></blockquote>
<p>If you install into your home folder, make sure to set the PYTHONPATH:</p>
<blockquote><p>export PYTHONPATH=/home/tkho/lib/python2.4/site-packages</p></blockquote>
<p>For duplicity to use the S3 backend, you need the <a href="http://cheeseshop.python.org/pypi/BitBucket">BitBucket library</a>. Once downloaded, install it:</p>
<blockquote><p>tar xzf BitBucket-0.4a.tar.gz<br />
cd BitBucket-0.4a<br />
python setup.py install ??prefix=/home/tkho</p></blockquote>
<p>Now, everything is installed so we can start a sync. On a side note, it took about half an hour for my S3 account to start working.</p>
<blockquote><p>export PASSPHRASE=password<br />
export S3KEY=your_s3key<br />
export S3SECRET=your_s3secret<br />
duplicity /home/tkho/sync s3+http://duplicity_sync</p></blockquote>
<p>That&#8217;s it! Add that to a daily or weekly cron and you have cheap, off-site backups. And, since you&#8217;re using duplicity, you get snapshots for free!</p>
<p>Lastly, don&#8217;t forget to grab <a href="http://jets3t.s3.amazonaws.com/">Jets3t Cockpit</a>&#8211;it&#8217;s a GUI file browser for your S3 data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2007/01/duplicity-with-amazon-s3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GAH Annotated Hex Viewer</title>
		<link>http://www.thomaskho.com/blog/2006/11/gah-annotated-hex-viewer/</link>
		<comments>http://www.thomaskho.com/blog/2006/11/gah-annotated-hex-viewer/#comments</comments>
		<pubDate>Sat, 11 Nov 2006 21:01:35 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2006/11/gah-annotated-hex-viewer/</guid>
		<description><![CDATA[I promised a former coworker, Dan Hipschman, that I&#8217;d advertise his GAH Annotated Hex Viewer to my expansive audience. GAH lets you annotate binary data, like Wireshark&#8217;s packet prettifier on acid. Plus, you know it&#8217;s good because it&#8217;s got the requisite recursive acronym.
He&#8217;s still out there making the world a better place for millions of [...]]]></description>
			<content:encoded><![CDATA[<p>I promised a former coworker, <a href="http://linux.ucla.edu/~dsh/">Dan Hipschman</a>, that I&#8217;d advertise his <a href="http://linux.ucla.edu/~dsh/gah.html">GAH Annotated Hex Viewer</a> to my expansive audience. GAH lets you annotate binary data, like Wireshark&#8217;s packet prettifier on acid. Plus, you know it&#8217;s good because it&#8217;s got the requisite recursive acronym.</p>
<p>He&#8217;s still out there making the world a better place for millions of hackers. Here&#8217;s part of an email I got from him the other day:</p>
<blockquote><p>Anyway, you know how you were always complaining about diff generating hard to read patches because the lines get intermingled?  I&#8217;m working on that problem now, so if you have any really horrible looking patch files you think should look better in the next version of diff (assuming my work gets in), feel free to send them to me so I can be sure to cover those cases.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2006/11/gah-annotated-hex-viewer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My lease ends on August 8</title>
		<link>http://www.thomaskho.com/blog/2006/08/my-lease-ends-on-august-8/</link>
		<comments>http://www.thomaskho.com/blog/2006/08/my-lease-ends-on-august-8/#comments</comments>
		<pubDate>Sat, 05 Aug 2006 06:31:54 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[General]]></category>

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

		<category><![CDATA[The Pursuit of Happiness]]></category>

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2006/08/my-lease-ends-on-august-8/</guid>
		<description><![CDATA[The lease on my current place in Westwood ends on August 8, and I&#8217;m working in Santa Monica until August 18, after which I&#8217;m moving up to Berkeley. Sounds great, except for some slight problems:

I have a lot of stuff. My closet is packed, and I have the usual desk, bed and bookshelves, along with [...]]]></description>
			<content:encoded><![CDATA[<p>The lease on my current place in Westwood ends on August 8, and I&#8217;m working in Santa Monica until August 18, after which I&#8217;m moving up to Berkeley. Sounds great, except for some slight problems:</p>
<ol>
<li>I have a lot of stuff. My closet is packed, and I have the usual desk, bed and bookshelves, along with a load of books, a bunch of kitchen stuff (some unopened after two years) and computers galore. Since I work during the week and have a company picnic on Sunday, I&#8217;m aiming to move the bulk of my goods tomorrow.</li>
<li>I have to move home between August 8 and whenever I move up to Berkeley. That means I&#8217;ll have to endure a 30 mile, 1 hour (in light traffic) commute through downtown and mid-city LA. Obviously I&#8217;m going to try to avoid this, which means getting to work by 7AM and leaving past 8PM (which isn&#8217;t that bad considering it is actually my 10:30 to midnight schedule shifted a couple hours).</li>
<li>I don&#8217;t have a place in Berkeley. The lack of a place hinders my ability to move into a place in Berkeley. The current plan is to rent a public storage locker and dump my stuff there while I either a) live in a hotel room or b) bum on a couch while looking for a place. Oddly enough, as my move date gets nearer, I get less worried about not having a place.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2006/08/my-lease-ends-on-august-8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Stacked GIT</title>
		<link>http://www.thomaskho.com/blog/2006/06/stacked-git/</link>
		<comments>http://www.thomaskho.com/blog/2006/06/stacked-git/#comments</comments>
		<pubDate>Mon, 19 Jun 2006 04:49:17 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

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

		<category><![CDATA[Software Development]]></category>

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/2006/06/stacked-git/</guid>
		<description><![CDATA[I spent part of Friday moving into the 21st century and learning my way around GIT. Not long after, I found out about Stacked GIT, which makes it an order of magnitude faster and easier to use and maintain code over CVS. It keeps a series of interdependent changesets organized a stack&#8211;you push and pop [...]]]></description>
			<content:encoded><![CDATA[<p>I spent part of Friday moving into the 21st century and learning my way around <a href="http://git.or.cz/">GIT</a>. Not long after, I found out about <a href="http://www.procode.org/stgit/">Stacked GIT</a>, which makes it an order of magnitude faster and easier to use and maintain code over CVS. It keeps a series of interdependent changesets organized a stack&#8211;you push and pop to switch the active changeset you&#8217;re working on, and pushing clues you in to any necessary conflict resolution. How cool is that?!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2006/06/stacked-git/feed/</wfw:commentRss>
		</item>
		<item>
		<title>offlineimap</title>
		<link>http://www.thomaskho.com/blog/2006/05/offlineimap/</link>
		<comments>http://www.thomaskho.com/blog/2006/05/offlineimap/#comments</comments>
		<pubDate>Mon, 29 May 2006 05:51:37 +0000</pubDate>
		<dc:creator>Thomas Kho</dc:creator>
		
		<category><![CDATA[Computers]]></category>

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

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

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

		<guid isPermaLink="false">http://www.thomaskho.com/blog/?p=41</guid>
		<description><![CDATA[Since I abandoned Fastmail for Gmail&#8217;s intuitive keyboard shortcuts and conversation views a couple of months ago, I&#8217;ve been putting off the task of backing up the old account. I ran across offlineimap today, which has simple configuration and seems to be doing a good job of syncing about 500mb of email.
Update 12/9/2006: I found [...]]]></description>
			<content:encoded><![CDATA[<p>Since I abandoned <a href="http://www.fastmail.fm/">Fastmail</a> for Gmail&#8217;s intuitive keyboard shortcuts and conversation views a couple of months ago, I&#8217;ve been putting off the task of backing up the old account. I ran across <a href="http://www.quux.org/devel/offlineimap">offlineimap</a> today, which has simple configuration and seems to be doing a good job of syncing about 500mb of email.</p>
<p><strong>Update 12/9/2006:</strong> I found an even better way to get IMAP backups with the aptly named <a href="http://the.taoofmac.com/space/Projects/imapbackup.py">imapbackup.py</a> script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomaskho.com/blog/2006/05/offlineimap/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
