<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://boredzo.org/blog/wp-atom.php">
	<title type="text">Idle Time</title>
	<subtitle type="text">The personal weblog of Peter Hosey.</subtitle>

	<updated>2012-05-07T15:04:09Z</updated>

	<link rel="alternate" type="text/html" href="http://boredzo.org/blog" />
	<id>http://boredzo.org/blog/feed/atom</id>
	

	<generator uri="http://wordpress.org/" version="3.1">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/domainofthebored" /><feedburner:info uri="domainofthebored" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Free stuff on the O&#8217;Reilly store]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/0IDptOpm2W8/free-stuff-on-the-oreilly-store" />
		<id>http://boredzo.org/blog/?p=1530</id>
		<updated>2012-05-07T15:04:09Z</updated>
		<published>2012-05-07T15:04:05Z</published>
		<category scheme="http://boredzo.org/blog" term="Books" /><category scheme="http://boredzo.org/blog" term="O'Reilly" />		<summary type="html"><![CDATA[After downloading a bunch of free O&#8217;Reilly books on a run through the Kindle Store, I decided to see which of them were available in O&#8217;Reilly&#8217;s own store. Here&#8217;s what I found. (Note that I have no intention of updating this list periodically, so some of these may no longer be free or available if [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2012-05-07/free-stuff-on-the-oreilly-store">&lt;p&gt;After downloading a bunch of free O&amp;#8217;Reilly books on a run through the Kindle Store, I decided to see which of them were available in &lt;a href="https://shop.oreilly.com/"&gt;O&amp;#8217;Reilly&amp;#8217;s own store&lt;/a&gt;. Here&amp;#8217;s what I found.&lt;/p&gt;
&lt;p&gt;(Note that I have no intention of updating this list periodically, so some of these may no longer be free or available if you&amp;#8217;re reading this some months after I compiled it.)&lt;/p&gt;
&lt;h3&gt;Publishing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920022473.do"&gt;HTML5 for Publishers&lt;/a&gt; (&lt;a href="http://amzn.com/B005XE2CAO"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920025597.do"&gt;Publishing with iBooks Author&lt;/a&gt; (&lt;a href="http://amzn.com/B0078X1PCE"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920022954.do"&gt;The Global eBook market: Current Conditions and Future Projections&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920025283.do"&gt;Accessible EPUB 3&lt;/a&gt; (&lt;a href="http://amzn.com/B006IIXBO0"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920020677.do"&gt;Breaking the Page: Preview Edition&lt;/a&gt; (&lt;a href="http://amzn.com/B006IIXBO0"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;“What Is”&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021049.do"&gt;What Is HTML5?&lt;/a&gt; (&lt;a href="http://amzn.com/B005ISQ7JM"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920022442.do"&gt;What Is EPUB 3?&lt;/a&gt; (&lt;a href="http://amzn.com/B005XE2CHC"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920025887.do"&gt;What Is Dart?&lt;/a&gt; (&lt;a href="http://amzn.com/B007K0T824"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021506.do"&gt;What Is Node?&lt;/a&gt; (&lt;a href="http://amzn.com/B005ISQ7JC"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Adobe stuff&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021698.do"&gt;What&amp;#8217;s New in Flash Player 11&lt;/a&gt; (&lt;a href="http://amzn.com/B006JARZR6"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021681.do"&gt;What&amp;#8217;s New in Adobe AIR 3&lt;/a&gt; (&lt;a href="http://amzn.com/B006J96UA0"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Microsoft stuff&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0790145342201.do"&gt;Introducing Microsoft SQL Server 2012&lt;/a&gt; (&lt;a href="http://amzn.com/B007PJ6DSW"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0790145317513.do"&gt;Microsoft Office 365&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0790145356925.do"&gt;Security and Privacy for Microsoft Office 2010 Users&lt;/a&gt; (&lt;a href="http://amzn.com/B007JWGDMQ"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;“Data products” and “data science”&lt;/h3&gt;
&lt;p&gt;I have absolutely no idea what order these should be read in, or even really what they&amp;#8217;re about.&lt;/p&gt;
&lt;p&gt;Some of these are currently in a list of “Free Reports” along the side of &lt;a href="http://oreilly.com/data/"&gt;O&amp;#8217;Reilly&amp;#8217;s “Data” category&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920022640.do"&gt;Big Data Now&lt;/a&gt; (&lt;a href="http://amzn.com/B005KDPILI"&gt;Kindle&lt;/a&gt;) (sounds like some kind of summary of the rest of these)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920025160.do"&gt;What Is Data Science?&lt;/a&gt; (&lt;a href="http://amzn.com/B007R8BHAK"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920022916.do"&gt;The Evolution of Data Products&lt;/a&gt; (&lt;a href="http://amzn.com/B005QEKQUY"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920025580.do"&gt;Data for the Public Good&lt;/a&gt; (&lt;a href="http://amzn.com/B007C5AP7E"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920026082.do"&gt;Designing Great Data Products&lt;/a&gt; (&lt;a href="http://amzn.com/B007OW0SW2"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920022770.do"&gt;Building Data Science Teams&lt;/a&gt; (&lt;a href="http://amzn.com/B007OW0SW2"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920025559.do"&gt;Planning for Big Data&lt;/a&gt; (&lt;a href="http://amzn.com/B007JWG7P4"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Assorted&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920022404.do"&gt;What&amp;#8217;s New in Java 7?&lt;/a&gt; (&lt;a href="https://http://amzn.com/B005XSS8VC"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920023098.do"&gt;Building eCommerce Applications&lt;/a&gt; (&lt;a href="http://amzn.com/B005XE2CEK"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920024217.do"&gt;Introducing Starling&lt;/a&gt; (&lt;a href="http://amzn.com/B006YWRVIC"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920025290.do"&gt;Best of TOC 2012&lt;/a&gt; (&lt;a href="http://amzn.com/B00769UKO4"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;“Bibliographies”&lt;/h3&gt;
&lt;p&gt;These are basically catalogs of other (not so free) books.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021896.do"&gt;Android Development Bibliography&lt;/a&gt; (&lt;a href="http://amzn.com/B005GMR9S8"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920022794.do"&gt;Big Data Bibliography&lt;/a&gt; (&lt;a href="http://amzn.com/B005QH22W6"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021940.do"&gt;iOS Development Bibliography&lt;/a&gt; (&lt;a href="http://amzn.com/B005GMR9LK"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021933.do"&gt;Java Bibliography&lt;/a&gt; (&lt;a href="http://amzn.com/B005GMR9LA"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021926.do"&gt;JavaScript Bibliography&lt;/a&gt; (&lt;a href="http://amzn.com/B005GMR9M4"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920021902.do"&gt;Python Bibliography&lt;/a&gt; (&lt;a href="http://amzn.com/B005GMR9SS"&gt;Kindle&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=0IDptOpm2W8:a6o6dNUlacI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=0IDptOpm2W8:a6o6dNUlacI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=0IDptOpm2W8:a6o6dNUlacI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/0IDptOpm2W8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2012-05-07/free-stuff-on-the-oreilly-store#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2012-05-07/free-stuff-on-the-oreilly-store/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2012-05-07/free-stuff-on-the-oreilly-store</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Analysis of Matias Tactile One Keyboard]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/b1751VJ6OE8/analysis-of-matias-tactile-one-keyboard" />
		<id>http://boredzo.org/blog/?p=1524</id>
		<updated>2012-03-23T05:37:04Z</updated>
		<published>2012-03-22T20:44:58Z</published>
		<category scheme="http://boredzo.org/blog" term="Reviews" /><category scheme="http://boredzo.org/blog" term="keyboards" /><category scheme="http://boredzo.org/blog" term="matias" />		<summary type="html"><![CDATA[I can&#8217;t really call this a “review”, because I don&#8217;t have one (it costs two hundred freaking dollars), but I did notice some things about the Matias Tactile One Keyboard (which I saw an ad for in MacTech magazine) that I wanted to write down. Weird fn key placement: They put it where the AEK2 [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2012-03-22/analysis-of-matias-tactile-one-keyboard">&lt;p&gt;I can&amp;#8217;t really call this a “review”, because I don&amp;#8217;t have one (it costs &lt;em&gt;two hundred freaking dollars&lt;/em&gt;), but I did notice some things about &lt;a href="http://matias.ca/onekeyboard/tactile/"&gt;the Matias Tactile One Keyboard&lt;/a&gt; (which I saw an ad for in &lt;a href="http://mactech.com/"&gt;MacTech&lt;/a&gt; magazine) that I wanted to write down.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Weird fn key placement: They put it where the AEK2 and Tactile Pro have the right ctrl key. (Indeed, it looks like the lower-right caps are the same sizes as their mirror counterparts in the lower-left.)&lt;/li&gt;
&lt;li&gt;Weird eject (⏏) key placement: It&amp;#8217;s fn-return. Huh?&lt;/li&gt;
&lt;li&gt;Weird ⌦ key placement: It&amp;#8217;s where the AEK2 and Tactile Pro have the right option key. That&amp;#8217;s because…&lt;/li&gt;
&lt;li&gt;No six-block. The AEK2 and Tactile Pro have a block of six keys—four navigation-related, plus &lt;a href="http://boredzo.org/blog/archives/2011-06-14/help-key-made-useful"&gt;“help”&lt;/a&gt; and ⌦—above the arrow keys, between the letter-board and number pad. The One, for some reason, omits this. &lt;a href="http://matias.ca/onekeyboard/tactile/viewer/?p=1"&gt;The full photo&lt;/a&gt; shows an iPhone resting there, but I see a missed opportunity in its place: For &lt;em&gt;two hundred freaking dollars&lt;/em&gt;, they could have put in an iPhone/iPod dock in the gap between the function keys, and kept the six-block.
&lt;ul&gt;
&lt;li&gt;As on Apple&amp;#8217;s laptops and Wireless Keyboard, they moved the navigation keys onto the arrow keys as their fn variants.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PC-style number pad (with double-height plus key and no equals key), even on the so-called Mac version. This made sense for the &lt;a href="http://pckeyboard.com/mm5/merchant.mvc?Store_Code=PCK&amp;amp;Screen=PROD&amp;amp;Category_Code=SpacesaverM&amp;amp;Product_Code=UNIZPHA"&gt;Unicomp SpaceSaver M&lt;/a&gt; and &lt;a href="http://www.daskeyboard.com/model-s-professional-for-mac/"&gt;Das Keyboard Model S for Mac&lt;/a&gt;, since they&amp;#8217;re PC keyboard manufacturers and probably reused the same PCB (also, both of those keyboards&amp;#8217; fn key placement follows from the Windows layout&amp;#8217;s extra “menu” key in the same area), but I can&amp;#8217;t figure why Matias did this.&lt;/li&gt;
&lt;li&gt;An extra tab key where the clear key used to be. I like this idea.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The headlining feature of &lt;a href="http://matias.ca/onekeyboard/"&gt;the “One Keyboard” series&lt;/a&gt; (and the reason why they call it that) is the fact that you can switch it between talking to your Mac over USB and talking to some other device (nominally an iPhone, iPod touch, or iPad) over Bluetooth. If they brought that and the number-pad tab key to the &lt;a href="http://matias.ca/tactilepro3/"&gt;Tactile Pro&lt;/a&gt;, that might be worth $150 to me. (As for $200? No. Never have I wanted to use the same keyboard on both my Mac and iPad.)&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=b1751VJ6OE8:rzMH0fkX3TM:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=b1751VJ6OE8:rzMH0fkX3TM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=b1751VJ6OE8:rzMH0fkX3TM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/b1751VJ6OE8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2012-03-22/analysis-of-matias-tactile-one-keyboard#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2012-03-22/analysis-of-matias-tactile-one-keyboard/feed/atom" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2012-03-22/analysis-of-matias-tactile-one-keyboard</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Xcode and Friends]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/qvZwkePsKA4/xcode-and-friends" />
		<id>http://boredzo.org/blog/?p=1520</id>
		<updated>2012-02-17T20:17:08Z</updated>
		<published>2012-02-17T12:35:03Z</published>
		<category scheme="http://boredzo.org/blog" term="Toolchain" /><category scheme="http://boredzo.org/blog" term="Xcode" />		<summary type="html"><![CDATA[Xcode&#8217;s distribution has changed greatly in 4.3. First, it&#8217;s now simply an app, without an Installer package. If you install it through the Mac App Store, it&#8217;ll install directly–no more “Install Xcode.app” (which I think I read earlier that you have to delete, although I can&#8217;t speak to this myself). If you install it from [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2012-02-17/xcode-and-friends">&lt;p&gt;Xcode&amp;#8217;s distribution has changed greatly in 4.3.&lt;/p&gt;
&lt;p&gt;First, it&amp;#8217;s now simply an app, without an Installer package. If you install it through the Mac App Store, it&amp;#8217;ll install directly–no more “Install Xcode.app” (which I think I read earlier that you have to delete, although I can&amp;#8217;t speak to this myself). If you install it from the disk image, it&amp;#8217;s a drag-and-drop install.&lt;/p&gt;
&lt;p&gt;Second, the set of applications that come with it (now bundled inside) is now much smaller. The other developer applications have been split out into separate disk images that are only available on connect.apple.com.&lt;/p&gt;
&lt;p&gt;So, I thought I&amp;#8217;d make a catalog listing where everything is now. Every one of the below sections corresponds to a disk image on connect.apple.com, and with the exception of Xcode, every one of those disk images is &lt;em&gt;only&lt;/em&gt; available from connect.apple.com—only Xcode is available from the Mac App Store.&lt;/p&gt;
&lt;h3&gt;Xcode (and the other core tools)&lt;/h3&gt;
&lt;p&gt;The core tools are inside Xcode regardless of where you get it from. That will be either:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/app/xcode/id497799835?mt=12"&gt;From the App Store&lt;/a&gt;, or&lt;/li&gt;
&lt;li&gt;In a disk image you can download from &lt;a href="https://connect.apple.com/"&gt;connect.apple.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The applications bundled inside Xcode are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Application Loader: &lt;a href="https://developer.apple.com/library/mac/releasenotes/General/SubmittingToMacAppStore/"&gt;One way of submitting your application to the Mac App Store.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;FileMerge: Differencing tool. As its name implies, primarily for visually merging three versions rather than comparing two.&lt;/li&gt;
&lt;li&gt;Icon Composer: Create IconFamily (.icns) files from multiple individual images.&lt;/li&gt;
&lt;li&gt;Instruments: Use this to make your app more efficient, or to hunt zombies.&lt;/li&gt;
&lt;li&gt;OpenGL ES Performance Detective&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Accessibility Tools for Xcode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Accessibility Inspector (a.k.a. UIElementInspector): Examine the Accessibility properties of NS/HIViews in any application.&lt;/li&gt;
&lt;li&gt;Accessibility Verifier: Automatically runs through an application&amp;#8217;s accessible object hierarchy, including windows and views, and produces an outline of things it does wrong or fails to do that could cause accessibility problems for users.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Audio Tools for Xcode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;AU Lab: Set up chains of Audio Units to filter audio or route it from a source to a destination.&lt;/li&gt;
&lt;li&gt;CoreAudio: Sample code for some of Core Audio&amp;#8217;s older APIs.&lt;/li&gt;
&lt;li&gt;HALLab: Tool for inspecting the audio object hierarchy.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Auxiliary Tools for Xcode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;64BitConversion: Tools for &lt;a href="http://developer.apple.com/documentation/Cocoa/Conceptual/Cocoa64BitGuide/"&gt;porting 32-bit Cocoa code to 64-bit&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Clipboard Viewer: See every type on the clipboard (general pasteboard).&lt;/li&gt;
&lt;li&gt;CrashReporterPrefs: Change how your system reacts to an application crashing.&lt;/li&gt;
&lt;li&gt;Dictionary Development Kit: Build your own dictionaries for Dictionary.app.&lt;/li&gt;
&lt;li&gt;Help Indexer: Makes your Help Books searchable. (Only useful for Mac developers.)&lt;/li&gt;
&lt;li&gt;LegacyAPISurvey: Tells you what APIs you&amp;#8217;re using that are in danger of being deprecated.&lt;/li&gt;
&lt;li&gt;Modem Scripts: Examples of CCL scripts (essentially, modem drivers).&lt;/li&gt;
&lt;li&gt;PackageMaker: Build Installer packages.&lt;/li&gt;
&lt;li&gt;Repeat After Me: Test the Speech Synthesis Manager, exporting to either phoneme text or an AIFF file.&lt;/li&gt;
&lt;li&gt;SleepX&lt;/li&gt;
&lt;li&gt;SRLanguageModeler: Something to do with Speakable Items, but I couldn&amp;#8217;t figure out how to work it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Dashcode for Xcode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Dashcode: IDE for making Dashboard widgets. It “includes a design canvas that produces the graphics assets for you, as well as a powerful code editor, and even a full JavaScript debugger”.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Graphics Tools for Xcode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CI Filter Browser (Dashboard widget)&lt;/li&gt;
&lt;li&gt;OpenGL Profiler&lt;/li&gt;
&lt;li&gt;OpenGL Shader Builder&lt;/li&gt;
&lt;li&gt;Pixie: Like DigitalColor Meter, but more developer-oriented. YMMV on which is better.&lt;/li&gt;
&lt;li&gt;Quartz Composer: Create compositions that can be used within applications or as screensavers. Also useful for developing Core Image filters.&lt;/li&gt;
&lt;li&gt;Quartz Composer Visualizer&lt;/li&gt;
&lt;li&gt;Quartz Debug: Monitor your computer&amp;#8217;s graphics performance (global frame rate), toggle various settings in the Quartz Compositor, and enable or disable the HiDPI resolutions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Hardware IO Tools for Xcode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bluetooth Diagnostics Utility&lt;/li&gt;
&lt;li&gt;Bluetooth Explorer&lt;/li&gt;
&lt;li&gt;btdump&lt;/li&gt;
&lt;li&gt;IORegistryExplorer: See what&amp;#8217;s connected to your Mac.&lt;/li&gt;
&lt;li&gt;Network Link Conditioner (prefpane): Makes your internet connection pretend to suck so you can see how your app performs under such conditions.&lt;/li&gt;
&lt;li&gt;PacketLogger: Another Bluetooth tool.&lt;/li&gt;
&lt;li&gt;USB Prober: Inspect your USB buses and the devices connected to them.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=qvZwkePsKA4:3zxmx3tIHyM:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=qvZwkePsKA4:3zxmx3tIHyM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=qvZwkePsKA4:3zxmx3tIHyM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/qvZwkePsKA4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2012-02-17/xcode-and-friends#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2012-02-17/xcode-and-friends/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2012-02-17/xcode-and-friends</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Why you should almost always write a test app for your Radar bug reports]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/J3Xy6hvPAVg/why-you-should-almost-always-write-a-test-app-for-your-radar-bug-reports" />
		<id>http://boredzo.org/blog/?p=1514</id>
		<updated>2011-11-09T19:23:59Z</updated>
		<published>2011-11-09T19:17:22Z</published>
		<category scheme="http://boredzo.org/blog" term="Apple" /><category scheme="http://boredzo.org/blog" term="Apple Bug Friday" /><category scheme="http://boredzo.org/blog" term="Best practices" /><category scheme="http://boredzo.org/blog" term="Programming" />		<summary type="html"><![CDATA[You&#8217;ll understand the bug better. This means you can write a better bug report, which will help Apple fix it more quickly (meaning you may get the fix more quickly). They&#8217;ll understand the bug better. This, too, helps Apple fix it more quickly. You may find that it is not a bug in the API [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-11-09/why-you-should-almost-always-write-a-test-app-for-your-radar-bug-reports">&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;You&amp;#8217;ll understand the bug better. This means you can write a better bug report, which will help Apple fix it more quickly (meaning you may get the fix more quickly).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They&amp;#8217;ll understand the bug better. This, too, helps Apple fix it more quickly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You may find that it is not a bug in the API at all, but that you were misusing it. Perhaps you were using something on a thread that you shouldn&amp;#8217;t have been, or expecting some argument to be used a certain way when it&amp;#8217;s actually used differently.&lt;/p&gt;
&lt;p&gt;In this case, you may be able to use the API after all, saving you the time you would have spent hacking around a non-bug. This also saves them the time they would have spent triaging and eventually responding to a non-bug.&lt;/p&gt;
&lt;p&gt;If your misunderstanding was borne out of poor documentation (misleading, inaccurate, vague, incomplete), you can file a bug report about that instead. Then the documentation gets better and future users of the same API avoid making the same error you did.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A test app isn&amp;#8217;t appropriate for every kind of Radar, but when it is, including it helps everyone.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=J3Xy6hvPAVg:HjO9ImkBvoE:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=J3Xy6hvPAVg:HjO9ImkBvoE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=J3Xy6hvPAVg:HjO9ImkBvoE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/J3Xy6hvPAVg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-11-09/why-you-should-almost-always-write-a-test-app-for-your-radar-bug-reports#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-11-09/why-you-should-almost-always-write-a-test-app-for-your-radar-bug-reports/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-11-09/why-you-should-almost-always-write-a-test-app-for-your-radar-bug-reports</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[iOS device user guides on the iBookstore]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/T2rNWao5jZo/ios-device-user-guides-on-the-ibookstore" />
		<id>http://boredzo.org/blog/?p=1512</id>
		<updated>2011-10-16T22:00:56Z</updated>
		<published>2011-10-16T22:00:50Z</published>
		<category scheme="http://boredzo.org/blog" term="Apple" /><category scheme="http://boredzo.org/blog" term="iPhone" /><category scheme="http://boredzo.org/blog" term="iTunes/iPod" /><category scheme="http://boredzo.org/blog" term="ebooks" /><category scheme="http://boredzo.org/blog" term="free" /><category scheme="http://boredzo.org/blog" term="iBooks" /><category scheme="http://boredzo.org/blog" term="iBookstore" /><category scheme="http://boredzo.org/blog" term="iPad" /><category scheme="http://boredzo.org/blog" term="iPod touch" />		<summary type="html"><![CDATA[Apple has user guides for their three iOS devices (not counting the &#xf8ff;TV, in which iOS is an implementation detail), for both iOS 4.3 and 5, free on the iBookstore: iOS 4.3 iPhone User Guide for iOS 4.2 and 4.3 iPod touch User Guide for iOS 4.3 iPad User Guide for iOS 4.3 iOS 5 [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-10-16/ios-device-user-guides-on-the-ibookstore">&lt;p&gt;Apple has user guides for their three iOS devices (not counting the &amp;#xf8ff;TV, in which iOS is an implementation detail), for both iOS 4.3 and 5, free on the iBookstore:&lt;/p&gt;
&lt;h3&gt;iOS 4.3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/book/iphone-user-guide-for-ios/id423864828?mt=11"&gt;iPhone User Guide for iOS 4.2 and 4.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/book/ipod-touch-user-guide-for/id422961051?mt=11"&gt;iPod touch User Guide for iOS 4.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/book/ipad-user-guide-for-ios-4.3/id423853345?mt=11"&gt;iPad User Guide for iOS 4.3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;iOS 5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/book/iphone-user-guide-for-ios-5/id470309864?mt=11"&gt;iPhone User Guide for iOS 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/book/ipod-touch-user-guide-for-ios-5/id470310538?mt=11"&gt;iPod touch User Guide for iOS 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/book/ipad-user-guide-for-ios-5/id470308101?mt=11"&gt;iPad User Guide for iOS 5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=T2rNWao5jZo:Mz698TnrFaw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=T2rNWao5jZo:Mz698TnrFaw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=T2rNWao5jZo:Mz698TnrFaw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/T2rNWao5jZo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-10-16/ios-device-user-guides-on-the-ibookstore#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-10-16/ios-device-user-guides-on-the-ibookstore/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-10-16/ios-device-user-guides-on-the-ibookstore</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Much faster]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/SD6iVDMQEQA/iso-8601-date-formatter-speed-improvements" />
		<id>http://boredzo.org/blog/?p=1506</id>
		<updated>2011-10-15T23:35:52Z</updated>
		<published>2011-10-15T23:13:33Z</published>
		<category scheme="http://boredzo.org/blog" term="Cocoa" /><category scheme="http://boredzo.org/blog" term="Creations" /><category scheme="http://boredzo.org/blog" term="Programming" /><category scheme="http://boredzo.org/blog" term="iso8601dateformatter" />		<summary type="html"><![CDATA[I&#8217;ve just pushed a couple of improvements to my ISO 8601 date formatter. Previously, it was pathetically slow compared to C standard library parsing and unparsing; now, it is faster. Timing ISO8601DateFormatter Time taken: 0.130194 seconds Number of dates and strings computed: 10000 each Time taken per date: 0.000013 seconds Timing C standard library parsing [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-10-15/iso-8601-date-formatter-speed-improvements">&lt;p&gt;I&amp;#8217;ve just pushed a couple of improvements to &lt;a href="https://bitbucket.org/boredzo/iso-8601-parser-unparser"&gt;my ISO 8601 date formatter&lt;/a&gt;. Previously, &lt;a href="http://samsoff.es/posts/how-to-drastically-improve-your-app-with-an-afternoon-and-instruments"&gt;it was pathetically slow compared to C standard library parsing and unparsing&lt;/a&gt;; now, it is faster.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;Timing ISO8601DateFormatter
Time taken: 0.130194 seconds
Number of dates and strings computed: 10000 each
Time taken per date: 0.000013 seconds
Timing C standard library parsing and unparsing
Time taken: 0.192645 seconds
Number of dates and strings computed: 10000 each
Time taken per date: 0.000019 seconds
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;You&amp;#8217;ll want at least revision [61d2959c6921] or later.&lt;/p&gt;
&lt;p&gt;My thanks to Sam Soffes and Rudy Richter for alerting me to the speed problem.&lt;/p&gt;
&lt;p style="font-style: italic"&gt;Edited at 16:35. Previously, it was almost as fast as C stdlib. Now it is faster.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=SD6iVDMQEQA:22vZNKWG3ic:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=SD6iVDMQEQA:22vZNKWG3ic:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=SD6iVDMQEQA:22vZNKWG3ic:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/SD6iVDMQEQA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-10-15/iso-8601-date-formatter-speed-improvements#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-10-15/iso-8601-date-formatter-speed-improvements/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-10-15/iso-8601-date-formatter-speed-improvements</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Desktop picture: Yawning Void]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/al4tMpFj6QM/desktop-picture-yawning-void" />
		<id>http://boredzo.org/blog/?p=1504</id>
		<updated>2011-09-16T05:10:06Z</updated>
		<published>2011-09-16T05:10:04Z</published>
		<category scheme="http://boredzo.org/blog" term="Creations" />		<summary type="html"><![CDATA[This is a desktop picture for Macs running at 1366 by 768, such as the 11-inch MacBook Air: No, it&#8217;s not pure black. Yes, that bar at the top is part of it. It&#8217;s meant to be used at that resolution and no other, with menu-bar translucency turned on. Scaling it, especially vertically, will make [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-09-15/desktop-picture-yawning-void">&lt;p&gt;This is a desktop picture for Macs running at 1366 by 768, such as the 11-inch MacBook Air:&lt;/p&gt;
&lt;p class="image"&gt;&lt;a href="http://boredzo.org/blog/wp-content/uploads/2011/09/Yawning-void.png"&gt;&lt;img alt="Yawning void" border="0" width="600" height="337" src="http://boredzo.org/blog/wp-content/uploads/2011/09/Yawning-void.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No, it&amp;#8217;s not pure black. Yes, that bar at the top is part of it.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s meant to be used at that resolution and no other, with menu-bar translucency turned &lt;em&gt;on&lt;/em&gt;. Scaling it, especially vertically, will make it look wrong.&lt;/p&gt;
&lt;p&gt;If you want to adapt it to a different size, &lt;a href="http://boredzo.org/blog/wp-content/uploads/2011/09/YawningVoid-nopreview.lineform.zip"&gt;here&amp;#8217;s the original document&lt;/a&gt;, editable in &lt;a href="http://freeverse.com/lineform/"&gt;Lineform&lt;/a&gt;. You should scale the document and the background to the desired screen size, and the menu-bar background to the desired width.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=al4tMpFj6QM:AFFGC4kM-QM:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=al4tMpFj6QM:AFFGC4kM-QM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=al4tMpFj6QM:AFFGC4kM-QM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/al4tMpFj6QM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-09-15/desktop-picture-yawning-void#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-09-15/desktop-picture-yawning-void/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-09-15/desktop-picture-yawning-void</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Conferences 2011]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/1prpzGzdHmQ/conferences-2011" />
		<id>http://boredzo.org/blog/?p=1494</id>
		<updated>2011-09-14T22:31:29Z</updated>
		<published>2011-09-12T14:12:23Z</published>
		<category scheme="http://boredzo.org/blog" term="Cocoa" /><category scheme="http://boredzo.org/blog" term="Conferences" /><category scheme="http://boredzo.org/blog" term="iPhone" /><category scheme="http://boredzo.org/blog" term="Mac OS X" /><category scheme="http://boredzo.org/blog" term="Programming" />		<summary type="html"><![CDATA[It&#8217;s that time again! Just like last year, there are a bunch of different conferences going on; unlike last year, I&#8217;m not going to even attempt to list all of them. The two that I have a reason to mention are: Voices That Matter. This time it&#8217;s in Boston, November 12 and 13. Their early [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-09-12/conferences-2011">&lt;p&gt;It&amp;#8217;s that time again! Just like last year, there are a bunch of different conferences going on; unlike last year, I&amp;#8217;m not going to even attempt to list all of them.&lt;/p&gt;
&lt;p&gt;The two that I have a reason to mention are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ios2011.voicesthatmatter.com/" style="font-weight: bold"&gt;Voices That Matter.&lt;/a&gt; This time it&amp;#8217;s in Boston, November 12 and 13. Their early bird pricing is still on through September; I&amp;#8217;ll let their site tell you more. As I do whenever I mention it here, I have a coupon code for it, which is &lt;code&gt;BSTBLOG&lt;/code&gt;. As usual, due to time and expense constraints, I won&amp;#8217;t be attending this one.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mactech.com/conference/" style="font-weight: bold"&gt;MacTech Conference.&lt;/a&gt; I&amp;#8217;m presenting again—same topic as last year, how to recognize, find, and fix bugs in Cocoa applications, but this time it&amp;#8217;s the Xcode 4 edition. The early bird period has ended, but you can get the same $500 off by signing up through &lt;a href="http://www.mactech.com/conference/special-reg_Hosey"&gt;this referral link&lt;/a&gt;. The time and place is November 2, 3, and 4 in Universal City, California.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Last year at the MacTech Conference, I brought with me some of my &lt;a href="http://boredzo.org/cocoa-links-card/"&gt;useful Cocoa links business card&lt;/a&gt;. I&amp;#8217;ll be doing that again this year, so if you attend the MacTech Conference, feel free to ask me for one.&lt;/p&gt;
&lt;p&gt;I hope to see you at the MacTech Conference!&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=1prpzGzdHmQ:ScjxVH0u9C4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=1prpzGzdHmQ:ScjxVH0u9C4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=1prpzGzdHmQ:ScjxVH0u9C4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/1prpzGzdHmQ" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-09-12/conferences-2011#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-09-12/conferences-2011/feed/atom" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-09-12/conferences-2011</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[SD card sleeve]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/qLALVZJuYtU/sd-card-sleeve" />
		<id>http://boredzo.org/blog/?p=1487</id>
		<updated>2011-07-10T09:44:51Z</updated>
		<published>2011-07-10T08:54:21Z</published>
		<category scheme="http://boredzo.org/blog" term="Creations" /><category scheme="http://boredzo.org/blog" term="flash memory" /><category scheme="http://boredzo.org/blog" term="printable" /><category scheme="http://boredzo.org/blog" term="sd" /><category scheme="http://boredzo.org/blog" term="secure digital" /><category scheme="http://boredzo.org/blog" term="securedigital" /><category scheme="http://boredzo.org/blog" term="sleeve" /><category scheme="http://boredzo.org/blog" term="template" />		<summary type="html"><![CDATA[If you have an SD card without a case, you may find this handy. SD-card-sleeve.pdf A PDF file from which you can print out nine sleeves per US Letter sheet. Make sure you print at 100% scale. Assembly instructions Cut out a sleeve along the thick lines. Place the card in the center of the sleeve [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-07-10/sd-card-sleeve">&lt;p&gt;If you have an SD card without a case, you may find this handy.&lt;/p&gt;
&lt;p class="image"&gt;&lt;img src="http://boredzo.org/blog/wp-content/uploads/2011/07/SD-card-sleeve-front.jpg.jpg" alt="Front of sleeve, labeled." border="0" width="400" height="300" /&gt;&lt;br /&gt;
&lt;img src="http://boredzo.org/blog/wp-content/uploads/2011/07/SD-card-sleeve-back.jpg.jpg" alt="The back of the SD card sleeve, closed." border="0" width="400" height="300" /&gt;&lt;br /&gt;
&lt;img style="display:block; margin-left:auto; margin-right:auto;" src="http://boredzo.org/blog/wp-content/uploads/2011/07/SD-card-sleeve-back-open.jpg.jpg" alt="The back of the SD card sleeve, open, showing the card inside." border="0" width="400" height="300" /&gt;&lt;/p&gt;
&lt;div class="file-sidebar"&gt;
&lt;p class="header"&gt;&lt;img width="24" height="24" style="vertical-align: middle" alt="File:" src="http://boredzo.org/pdf-24.png" /&gt; &lt;a href="http://boredzo.org/blog/wp-content/uploads/2011/07/SD-card-sleeve.pdf"&gt;SD-card-sleeve.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A PDF file from which you can print out nine sleeves per US Letter sheet. Make sure you print at 100% scale.&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;Assembly instructions&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Cut out a sleeve along the thick lines.&lt;/li&gt;
&lt;li&gt;Place the card in the center of the sleeve so that it is outlined by the thin lines.&lt;/li&gt;
&lt;li&gt;Fold the bottom (rectangular flap) over first.&lt;/li&gt;
&lt;li&gt;Fold the side flaps over.&lt;/li&gt;
&lt;li&gt;Secure the bottom and side flaps with one square piece of three-quarter-inch Scotch tape.&lt;/li&gt;
&lt;li&gt;Fold the top flap over and inside.&lt;/li&gt;
&lt;li&gt;Flip the sleeve over and label it on the seamless side.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=qLALVZJuYtU:TQ6_tFb96q0:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=qLALVZJuYtU:TQ6_tFb96q0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=qLALVZJuYtU:TQ6_tFb96q0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/qLALVZJuYtU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-07-10/sd-card-sleeve#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-07-10/sd-card-sleeve/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-07-10/sd-card-sleeve</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[How to make the Help key do something useful]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/Ny-c0PYtJMg/help-key-made-useful" />
		<id>http://boredzo.org/blog/?p=1480</id>
		<updated>2011-06-14T09:52:11Z</updated>
		<published>2011-06-14T09:51:52Z</published>
		<category scheme="http://boredzo.org/blog" term="Cocoa" /><category scheme="http://boredzo.org/blog" term="Documentation" /><category scheme="http://boredzo.org/blog" term="Programming" />		<summary type="html"><![CDATA[If you want to see the techniques explored in this blog post in a working application, download ContextHelpTest and/or its source code. If you&#8217;ve used Mac OS X with an Apple extended keyboard of some sort, chances are you&#8217;ve seen this: That&#8217;s the cursor that comes up when you press the Help key. And every [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-06-14/help-key-made-useful">&lt;p style="font-style: italic"&gt;If you want to see the techniques explored in this blog post in a working application, download &lt;a href="https://bitbucket.org/boredzo/contexthelptest/downloads"&gt;ContextHelpTest&lt;/a&gt; and/or &lt;a href="https://bitbucket.org/boredzo/contexthelptest/"&gt;its source code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;ve used Mac OS X with an Apple extended keyboard of some sort, chances are you&amp;#8217;ve seen this:&lt;/p&gt;
&lt;p class="screenshot"&gt;&lt;img src="http://boredzo.org/blog/wp-content/uploads/2011/06/HelpCursor.png" alt="The Help cursor, a question mark." border="0" width="32" height="32" /&gt;&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s the cursor that comes up when you press the Help key. And every time, if you click while that cursor is up, you get a beep and the cursor changes back. (If you press a key instead, the cursor changes back and the keystroke goes through, which often will still get you a beep.)&lt;/p&gt;
&lt;p&gt;So most of us probably forget the Help key exists, and curse it when we are reminded of it by pressing it by accident.&lt;/p&gt;
&lt;p&gt;But what does it &lt;em&gt;do&lt;/em&gt;, really? What is it meant to do?&lt;/p&gt;
&lt;p&gt;Every &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSResponder_Class/"&gt;responder&lt;/a&gt; can respond to a message called &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSResponder_Class/Reference/Reference.html#//apple_ref/occ/instm/NSResponder/helpRequested:"&gt;&lt;code&gt;helpRequested:&lt;/code&gt;&lt;/a&gt;. The default implementation is to ask &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/"&gt;the help manager&lt;/a&gt; for &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSHelpManager/contextHelpForObject:"&gt;the attributed string set as help for itself&lt;/a&gt;. If you&amp;#8217;ve never &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSHelpManager/setContextHelp:forObject:"&gt;set any help for it&lt;/a&gt;, then the help manager will return &lt;code&gt;nil&lt;/code&gt;, and the default &lt;code&gt;helpRequested:&lt;/code&gt; implementation will pass the message on to the next responder. If you have set help for the responder, then it will tell the help manager to &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSHelpManager/showContextHelpForObject:locationHint:"&gt;show that help&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So here&amp;#8217;s what you need to do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To associate a help text with a view or other object, send &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/Reference/Reference.html#//apple_ref/occ/clm/NSHelpManager/sharedHelpManager"&gt;the help manager&lt;/a&gt; a &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSHelpManager/setContextHelp:forObject:"&gt;&lt;code&gt;setContextHelp:forObject:&lt;/code&gt;&lt;/a&gt; message, passing the help attributed string and the view/other object. When the object is a view, this is all you need to do for Help-clicking on the view to do the right thing.&lt;/li&gt;
&lt;li&gt;To programmatically show context help for an object, use &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSHelpManager/showContextHelpForObject:locationHint:"&gt;&lt;code&gt;showContextHelpForObject:locationHint:&lt;/code&gt;&lt;/a&gt;. Note that you pass the object to look up, not the help text, here. The location hint is where the user might have Help-clicked to bring up the context help.&lt;/li&gt;
&lt;li&gt;To make your custom view able to show context help for things it draws within itself, override &lt;code&gt;helpRequested:&lt;/code&gt;, find what the user clicked on, lazily set the context help for the clicked object (if appropriate), and &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSHelpManager/showContextHelpForObject:locationHint:"&gt;look it up&lt;/a&gt;. If the user didn&amp;#8217;t click on anything or you don&amp;#8217;t have any help worth providing for it, pass the message on to &lt;code&gt;super&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;To programmatically enter Help-key mode, &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSApplication_Class/Reference/Reference.html#//apple_ref/occ/instm/NSApplication/activateContextHelpMode:"&gt;send the &lt;code&gt;activateContextHelpMode:&lt;/code&gt; action message to the application object&lt;/a&gt;. If you want to make a control or menu item in a nib do this, connect it to that action on the First Responder.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that the help manager does not retain your definable objects. If an object that has help set for it is deallocated, that will cause a crash later on. Therefore, when setting context help for a view, the view itself should do so within its &lt;code&gt;initWithFrame:&lt;/code&gt; (or other designated initializer) and &lt;code&gt;initWithCoder:&lt;/code&gt; methods, and &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSHelpManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSHelpManager/removeContextHelpForObject:"&gt;remove itself from context help&lt;/a&gt; in &lt;code&gt;dealloc&lt;/code&gt;. (I don&amp;#8217;t know how this goes under GC or ARC.)&lt;/p&gt;
&lt;p&gt;You might also have noticed that I&amp;#8217;m not simply saying “view” or “responder”. The help manager does not restrict you to setting help for responders or views; any object can have context help set for it. This includes model objects. This is very, very useful for implementing a view that does selective context help on things within it: You set context help for each model object, and the view tells the help manager to show help for the clicked model object.&lt;/p&gt;
&lt;p&gt;When setting context help for a non-responder, the controller that owns it should do that, and should remove the object from context help before releasing the ownership.&lt;/p&gt;
&lt;p&gt;So, &lt;a href="https://bitbucket.org/boredzo/contexthelptest"&gt;here&amp;#8217;s a test app&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Context help works the usual way on the word-count field:&lt;/p&gt;
&lt;p class="screenshot"&gt;&lt;img src="http://boredzo.org/blog/wp-content/uploads/2011/06/ContextHelpTest-WordCountHelp.png" alt="Help-clicking on the word-count field shows a tooltip-looking popover that shows the context help associated with the field." border="0" width="245" height="59" /&gt;&lt;/p&gt;
&lt;p&gt;The text view is a subclass of NSTextView that implements &lt;code&gt;helpRequested:&lt;/code&gt; by determining what word the user clicked on (by sending itself &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTextView_Class/Reference/Reference.html#//apple_ref/occ/instm/NSTextView/characterIndexForInsertionAtPoint:"&gt;&lt;code&gt;characterIndexForInsertionAtPoint:&lt;/code&gt;&lt;/a&gt; and then using a &lt;a href="http://developer.apple.com/library/mac/documentation/CoreFoundation/Reference/CFStringTokenizerRef/"&gt;CFStringTokenizer&lt;/a&gt; to walk through its words) and then &lt;a href="http://developer.apple.com/library/mac/documentation/UserExperience/Reference/DictionaryServicesRef/Reference/reference.html#//apple_ref/c/func/DCSCopyTextDefinition"&gt;looking that word up in the dictionary&lt;/a&gt;.&lt;/p&gt;
&lt;p class="screenshot"&gt;&lt;img src="http://boredzo.org/blog/wp-content/uploads/2011/06/ContextHelpTest-DefineWord.png" alt="Help-clicking on the word-count field shows a tooltip-looking popover that shows the dictionary definition associated with the clicked-on word." border="0" width="540" height="350" /&gt;&lt;/p&gt;
&lt;p&gt;Naturally, since &lt;a href="http://pckeyboards.stores.yahoo.net/mightymouse.html"&gt;not everybody has a Help key anymore&lt;/a&gt;, I provided an alternative.&lt;/p&gt;
&lt;p class="screenshot"&gt;&lt;img src="http://boredzo.org/blog/wp-content/uploads/2011/06/ContextHelpTest-EditMenu.png" alt="The Edit menu contains a Define menu item, with the keyboard shortcut of ctrl-slash." border="0" width="287" height="375" /&gt;&lt;/p&gt;
&lt;p&gt;I look forward to seeing what uses you come up with in your apps for this.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=Ny-c0PYtJMg:4B7JpU6jJiw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=Ny-c0PYtJMg:4B7JpU6jJiw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=Ny-c0PYtJMg:4B7JpU6jJiw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/Ny-c0PYtJMg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-06-14/help-key-made-useful#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-06-14/help-key-made-useful/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-06-14/help-key-made-useful</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[The Temporal Orphanage]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/DXatGs2Fcbc/the-temporal-orphanage" />
		<id>http://boredzo.org/blog/?p=1472</id>
		<updated>2011-06-01T02:11:10Z</updated>
		<published>2011-06-01T02:11:09Z</published>
		<category scheme="http://boredzo.org/blog" term="Fiction" /><category scheme="http://boredzo.org/blog" term="fiction" /><category scheme="http://boredzo.org/blog" term="orphanage" /><category scheme="http://boredzo.org/blog" term="short story" /><category scheme="http://boredzo.org/blog" term="time travel" />		<summary type="html"><![CDATA[The Temporal Orphanage was a novel solution to the problem of parentless children. Every child who entered the Orphanage had to sign an agreement stating that they would return in 20 years. As the only licensed user of time-travel technology, the Orphanage used it to send the 20-year-old orphan back in time 20 years to [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-05-31/the-temporal-orphanage">&lt;p&gt;The Temporal Orphanage was a novel solution to the problem of parentless children.&lt;/p&gt;
&lt;p&gt;Every child who entered the Orphanage had to sign an agreement stating that they would return in 20 years. As the only licensed user of time-travel technology, the Orphanage used it to send the 20-year-old orphan back in time 20 years to be their own adoptive parent.&lt;/p&gt;
&lt;p&gt;Deferments were granted, on a case-by-case basis, to orphans who would eventually marry. The Orphanage preferred the children to be raised by couples, so they granted nearly every request, but undeferred single parents were not uncommon. Every orphan found out within a month of their acceptance whether they would be single or married when they arrived to pick themselves up, and no review was necessary at the time of the deferment application because they already knew whether they would accept it.&lt;/p&gt;
&lt;p&gt;A few new laws had to be passed shortly after the Orphanage commenced operations. Some were amendments or repeals to legislation that had assumed time travel did not exist or was completely banned, but one new law that could be tied directly to the Orphanage required life insurance companies to consider the number of years that each insured person lived, not merely the subtraction between their dates of birth and death.&lt;/p&gt;
&lt;p&gt;The Orphanage was financed in two parts. The first, and minor, part was by a toy store occupying the other half of the building. Some orphans simply kept all of their toys as they grew up to bring back with them all at once, but this was disfavored by the Orphanage, both because it did not bring in income and because the greater mass made the travel more expensive.&lt;/p&gt;
&lt;p&gt;The other part was an apartment complex. Grown-up orphans would begin renting or buy their own residence in their late teens, but then have to go back 20-plus years to a time when they had no home besides the orphanage. Each parent who arrived rented an apartment within the Orphanage&amp;#8217;s own apartment building—guaranteed to have an opening—until they could find another, cheaper temporary apartment elsewhere. The trickiest part was remembering to pay the rent upon returning to the apartment they&amp;#8217;d left a calendar month/20 biological years ago.&lt;/p&gt;
&lt;p&gt;The Orphanage was almost closed down by OSHA, but managed to remain open with the promise of no further hiring, after a power surge uncaused the deaths of all of the staff.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=DXatGs2Fcbc:ipLNdSo8KkA:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=DXatGs2Fcbc:ipLNdSo8KkA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=DXatGs2Fcbc:ipLNdSo8KkA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/DXatGs2Fcbc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-05-31/the-temporal-orphanage#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-05-31/the-temporal-orphanage/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-05-31/the-temporal-orphanage</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[How to make me lose all interest in your app and not even want to try it much less buy it]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/tkbz82PEORg/making-your-app-look-good-making-your-app-look-bad" />
		<id>http://boredzo.org/blog/?p=1466</id>
		<updated>2011-04-26T22:29:45Z</updated>
		<published>2011-04-26T22:29:19Z</published>
		<category scheme="http://boredzo.org/blog" term="iPhone" /><category scheme="http://boredzo.org/blog" term="Software distribution" />		<summary type="html"><![CDATA[Choose any—or, preferably, none: Make custom buttons, but don&#8217;t hire a professional designer to design them. Draw your UI in your pirated copy of Photoshop and make the best buttons you, fellow non-graphically-superpowered programmer, can manage, which look like you downloaded them from GeoCities in 1995 or got them out of a “1001 Buttons!” book [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-04-26/making-your-app-look-good-making-your-app-look-bad">&lt;p&gt;Choose any—or, preferably, none:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make custom buttons, but don&amp;#8217;t hire a professional designer to design them. Draw your UI in your pirated copy of Photoshop and make the best buttons you, fellow non-graphically-superpowered programmer, can manage, which look like you downloaded them from GeoCities in 1995 or got them out of a “1001 Buttons!” book from the same year.&lt;/li&gt;
&lt;li&gt;Make custom UI controls (especially buttons) simply because you can.&lt;/li&gt;
&lt;li&gt;Fill your App Store page&amp;#8217;s “screenshots” section with images that are not purely screenshots. Showing an iPhone 4 with your app on it is a minus. Showing an older iPhone is another minus. Putting in your own &lt;del&gt;inane blather&lt;/del&gt; marketing copy with your paint program&amp;#8217;s text tool is a minus. Putting the iPhone and/or text on any kind of background is a minus. Any image that does not show the app at all is 500 minuses.&lt;/li&gt;
&lt;li&gt;Show screenshots, but only of some of the app. Leave me wondering whether your app has the feature or UI pattern I&amp;#8217;m looking for. (If your app is free, I&amp;#8217;ll try it and find out. If it&amp;#8217;s not, I won&amp;#8217;t.)&lt;/li&gt;
&lt;li&gt;Custom backgrounds without (&lt;em&gt;good&lt;/em&gt;) custom UI. Extra debit if your background is plain white.&lt;/li&gt;
&lt;li&gt;Abbr btn nms.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How to keep me actually interested and maybe even get me to buy your app:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If you make custom UI, make it awesome. Make a truly original UI that would belong on the cover of Macworld. Make it a custom UI with a purpose that guides and justifies the customizations. (Beware the difference between “purpose” and “theme”.) Otherwise, stick to plain Cocoa Touch controls wherever possible. Functional beats ugly.&lt;/li&gt;
&lt;li&gt;If you go functional, follow the HIG. Either way, keep things clean and well-organized. Don&amp;#8217;t force too much into a single screen. If you “have to” pack multiple things on a line, that&amp;#8217;s too much. If you “have to” abbreviate words, that&amp;#8217;s too much. Consider cutting features; simplicity is a virtue. If you need to break things out into other views, do it.&lt;/li&gt;
&lt;li&gt;The screenshots section is for &lt;em&gt;screenshots only&lt;/em&gt;. If you need to indicate a gesture, composite in a finger and an arrow, and don&amp;#8217;t do that in more than one screenshot. No added text. Ever.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Don&amp;#8217;t miss the comments. I&amp;#8217;m sure some of you have some other don&amp;#8217;ts to suggest that I forgot.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=tkbz82PEORg:L8Z0sZ67DmY:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=tkbz82PEORg:L8Z0sZ67DmY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=tkbz82PEORg:L8Z0sZ67DmY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/tkbz82PEORg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-04-26/making-your-app-look-good-making-your-app-look-bad#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-04-26/making-your-app-look-good-making-your-app-look-bad/feed/atom" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-04-26/making-your-app-look-good-making-your-app-look-bad</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Portal 2]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/hcjVNbBTXf0/portal-2" />
		<id>http://boredzo.org/blog/?p=1464</id>
		<updated>2011-06-12T22:44:37Z</updated>
		<published>2011-04-25T00:45:06Z</published>
		<category scheme="http://boredzo.org/blog" term="Gaming" /><category scheme="http://boredzo.org/blog" term="Reviews" />		<summary type="html"><![CDATA[The best works of fiction all have in common a certain feeling. It comes at the end. You&#8217;ve finished it. There is no more; you know this, and it hurts you, because you want more, you want the enjoyment you&#8217;ve just had to continue forever, and yet you know that if there were always more, [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-04-24/portal-2">&lt;p&gt;The best works of fiction all have in common a certain feeling.&lt;/p&gt;
&lt;p&gt;It comes at the end. You&amp;#8217;ve finished it. There is no more; you know this, and it hurts you, because you want more, you want the enjoyment you&amp;#8217;ve just had to continue forever, and yet you know that if there were always more, if it ran forever, eventually it would get boring, so it is good that is over, and yet it hurts.&lt;/p&gt;
&lt;p&gt;Portal 2—which is great, all the way through—leaves you with that feeling. The ending is great, the best ending I&amp;#8217;ve ever seen in a video game, and it hurts.&lt;/p&gt;
&lt;p&gt;You should play it.&lt;/p&gt;
&lt;p&gt;Play the first one first, and then play the second. And then you should probably play them both again—I know there&amp;#8217;s some stuff I&amp;#8217;ll view differently when I play Portal 2 the second time.&lt;/p&gt;
&lt;p&gt;The only thing it left me wanting was a soundtrack album. I only bought the one song (you know the one) from the Orange Box soundtrack, but I would happily buy the whole soundtrack to this game. The music is as wonderful as the game it accompanies. I hope, someday, preferably someday soon, I can go to the iTunes Store or Amazon MP3 and buy it.&lt;/p&gt;
&lt;p&gt;Valve and everybody else involved in making this game (and the original): You rock.&lt;/p&gt;
&lt;p&gt;&lt;span class="update"&gt;EDIT 2011-06-12:&lt;/span&gt; Just found &lt;a href="http://tvtropes.org/pmwiki/pmwiki.php/Main/AwesomenessWithdrawal"&gt;this phenomenon on TVTropes&lt;/a&gt;. (To be clear, they had it first.)&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=hcjVNbBTXf0:kY9Akf33jmc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=hcjVNbBTXf0:kY9Akf33jmc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=hcjVNbBTXf0:kY9Akf33jmc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/hcjVNbBTXf0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-04-24/portal-2#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-04-24/portal-2/feed/atom" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-04-24/portal-2</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[Writing, n.]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/YbugFuoYNNs/writing" />
		<id>http://boredzo.org/blog/?p=1462</id>
		<updated>2011-03-24T23:01:58Z</updated>
		<published>2011-03-24T23:01:56Z</published>
		<category scheme="http://boredzo.org/blog" term="Life" /><category scheme="http://boredzo.org/blog" term="Programming" />		<summary type="html"><![CDATA[Over on Tumblr (where I have also started writing), Andy Matuschak and Christopher Bowns have challenged each other: Long story short: Andy and I threw down our respective gloves after throwing back the third glass of whiskey, and came up with this: every Tuesday, we’ll spend 20 minutes of our respective shuttle rides to work [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-03-24/writing">&lt;p&gt;Over on Tumblr (&lt;a href="http://boredzo.tumblr.com/"&gt;where I have also started writing&lt;/a&gt;), &lt;a href="http://confusatory.org/post/4066495734/contested"&gt;Andy Matuschak and Christopher Bowns have challenged each other&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Long story short: Andy and I threw down our respective gloves after throwing back the third glass of whiskey, and came up with this: every Tuesday, we’ll spend 20 minutes of our respective shuttle rides to work writing something. It doesn’t matter what, but when those 20 minutes are up, you publish it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After Christopher published that, Colin Barrett entered with &lt;a href="http://iamthewalr.us/blog/2011/03/be-your-own-editor/"&gt;this piece&lt;/a&gt;. Discussion ensued on Twitter, as it so often does, and it included &lt;a href="https://twitter.com/cbowns/status/51030867820281856"&gt;this tweet from Christopher&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;@cbarrett Perfect. I think &amp;#8220;overthinking it&amp;#8221; can cripple your writing, but it&amp;#8217;s hard to let go of, because it&amp;#8217;s so &lt;em&gt;useful&lt;/em&gt; in engineering.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://twitter.com/boredzo/status/51032973390249984"&gt;I responded there&lt;/a&gt;, but I&amp;#8217;d now like to expand in a somewhat different direction here.&lt;/p&gt;
&lt;p&gt;Writing programs &lt;em&gt;is writing&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Consider this: If you write a program that no human can read, you have written it badly, and may have even written an outright bad program. Switch out “program” for “manuscript” and I hope you see my point.&lt;/p&gt;
&lt;p&gt;Don&amp;#8217;t confuse this with &lt;a href="http://en.wikipedia.org/wiki/Literate_programming"&gt;literate programming&lt;/a&gt;. That has you write a more-or-less human-only text, and then run a program such as WEB or CWEB to translate it to source code.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://software-carpentry.org/2011/03/4069/"&gt;The problem with literate programming&lt;/a&gt; is the problem with all translation from one language to another, especially &lt;a href="http://translate.google.com/"&gt;automatic&lt;/a&gt; &lt;a href="http://babelfish.yahoo.com/"&gt;translation&lt;/a&gt;: Error.&lt;/p&gt;
&lt;p&gt;Just as translating a human-only text from one human language to another human language can produce &lt;a href="http://tashian.com/multibabel/"&gt;a garbled mash&lt;/a&gt;, so can translating a program from one language to another produce a nonsense, or at least broken, program.&lt;/p&gt;
&lt;p&gt;Hence the justified suspicion of programs that “upgrade” a program even just from one version of the same language to another: It isn&amp;#8217;t the same language; not really. Similar, but not the same. Going from Python 2 to Python 3, for example, is not much different from going from 18th-century English to 21st-century English. Do these words mean the same thing? &lt;a href="http://docs.python.org/2.7/library/functions.html#range"&gt;Maybe&lt;/a&gt; &lt;a href="http://docs.python.org/3.2/library/stdtypes.html#sequence-types-str-bytes-bytearray-list-tuple-range"&gt;not&lt;/a&gt;. This is why such translators invariably come with warnings to check the hell out of the result.&lt;/p&gt;
&lt;p id="writing-defined-fn1-orig"&gt;No, I&amp;#8217;m not talking about literate programming. I&amp;#8217;m talking about regular programming, where &lt;em&gt;you&lt;/em&gt; write the true text of the program, the text that the interpreter interprets or the compiler converts into machine code.&lt;a href="#writing-defined-fn1"&gt;*&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Programming is a fusion of a couple of skills. It&amp;#8217;s often called “software engineering”, but that&amp;#8217;s only half of it. Writing is the other half. I define “writing” here as writing text into an editor, whatever the language, and “engineering” as designing a thing to be built. Things like OOP, unit testing, and design patterns are aspects of software engineering. Things like DRY, commenting practices, naming practices, and style rules are aspects of writing.&lt;/p&gt;
&lt;p&gt;If you write a program well, you write it not only for the interpreter or compiler, but for any humans who will read the program after you, &lt;a href="http://www.cimgf.com/2009/03/26/dont-blindly-trust-debb/"&gt;including yourself&lt;/a&gt;. It is a text like any other.&lt;/p&gt;
&lt;p&gt;Writing a program &lt;em&gt;is writing&lt;/em&gt;. Every rule, observation, and prescription you apply to writing for humans only, apply also to programming, and vice versa. If the rule does not work, chances are it was not a good rule to begin with.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Suggested reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://bartleby.com/141/"&gt;The Elements of Style&lt;/a&gt;, by William Strunk, Jr. Feedbooks has &lt;a href="http://www.feedbooks.com/book/3697/the-elements-of-style" title="The Elements of Style, by William Strunk, Jr., in ebook formats"&gt;an ebook version&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;On Writing, by Stephen King.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;div class="footnotes"&gt;
&lt;p id="writing-defined-fn1"&gt;* This is, itself, a form of translation; the C standard even calls it such. That&amp;#8217;s part of why compiler bugs are possible, and why compiler authors are extremely careful about their work, which is why &lt;a href="http://boredzo.org/blog/archives/2010-11-13/four-rules-of-debugging"&gt;compiler bugs are so rare&lt;/a&gt;. &lt;a href="#writing-defined-fn1-orig"&gt;↶&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=YbugFuoYNNs:EB4hzZ-LNqI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=YbugFuoYNNs:EB4hzZ-LNqI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=YbugFuoYNNs:EB4hzZ-LNqI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/YbugFuoYNNs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-03-24/writing#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-03-24/writing/feed/atom" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-03-24/writing</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Peter Hosey</name>
						<uri>http://boredzo.org./</uri>
					</author>
		<title type="html"><![CDATA[The application delegate and the new singletons]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/domainofthebored/~3/mThrQdWBU5k/application-delegate-singletons" />
		<id>http://boredzo.org/blog/?p=1460</id>
		<updated>2011-03-19T00:26:59Z</updated>
		<published>2011-03-19T00:26:57Z</published>
		<category scheme="http://boredzo.org/blog" term="Best practices" /><category scheme="http://boredzo.org/blog" term="Cocoa" /><category scheme="http://boredzo.org/blog" term="iPhone" /><category scheme="http://boredzo.org/blog" term="Programming" />		<summary type="html"><![CDATA[Here is a global variable: Wizard *gWizard; I&#8217;ll call this a zeroth-order global, on the premise that I need to talk to exactly zero objects (including classes) to gain access to this object. Next, let&#8217;s look at a singleton: [Wizard sharedWizard]; //hope he's not busy I&#8217;ll call this a first-order global, as we need to [...]]]></summary>
		<content type="html" xml:base="http://boredzo.org/blog/archives/2011-03-18/application-delegate-singletons">&lt;p&gt;Here is a global variable:&lt;/p&gt;
&lt;pre&gt;Wizard *gWizard;&lt;/pre&gt;
&lt;p&gt;I&amp;#8217;ll call this a zeroth-order global, on the premise that I need to talk to exactly zero objects (including classes) to gain access to this object.&lt;/p&gt;
&lt;p&gt;Next, let&amp;#8217;s look at a singleton:&lt;/p&gt;
&lt;pre&gt;[Wizard sharedWizard]; //hope he's not busy&lt;/pre&gt;
&lt;p&gt;I&amp;#8217;ll call this a first-order global, as we need to ask the class for it (1 step) to gain access to it.&lt;/p&gt;
&lt;p&gt;Now, here&amp;#8217;s a second-order global:&lt;/p&gt;
&lt;pre&gt;MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];&lt;/pre&gt;
&lt;p&gt;(I use UIApplication here because I see this most frequently in Cocoa Touch code, but the pattern applies equally to Cocoa.)&lt;/p&gt;
&lt;p&gt;And here&amp;#8217;s a third-order global:&lt;/p&gt;
&lt;pre&gt;Wizard *wizard = [appDelegate wizard];&lt;/pre&gt;
&lt;p&gt;I need to (1) ask the UIApplication class for the application object, (2) ask that for its delegate, and (3) ask that for the wizard. (Assume here that &lt;code&gt;wizard&lt;/code&gt; is a property, not a factory method that creates Wizards on the fly.)&lt;/p&gt;
&lt;p&gt;None of these is any less global. If I can get to it from anywhere in the program without knowing about it directly, it is global.&lt;/p&gt;
&lt;p&gt;Therefore, all the problems of globals apply:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What if two threads want to use the same Wizard?&lt;/li&gt;
&lt;li&gt;What if the Wizard has a delegate of its own, and I have two objects that want to be its delegate?&lt;/li&gt;
&lt;li&gt;What if the Wizard keeps internal state that may be corrupted by multiple objects trying to use it? (Nothing should have to worry about this outside of the Wizard itself.)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;Your application&amp;#8217;s objects form a graph. It should not be a complex one like this:&lt;/p&gt;
&lt;p class="image"&gt;&lt;img width="305" height="249" alt="At the top, the application object. From it, its delegate. From it, your controller objects and a wizard. From each controller object, a path (colored in red) back to the delegate and then to the wizard." src="http://i.imgur.com/aiwJE.png" /&gt;&lt;/p&gt;
&lt;p&gt;Whenever you have paths bouncing around off of other objects like that, that&amp;#8217;s a problem. The red arrows in the problem graph show where you violate the &lt;a href="http://en.wikipedia.org/w/index.php?title=Law_of_Demeter&amp;#038;oldid=411550367"&gt;Law of Demeter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Your object graph should, instead, be straightforward:&lt;/p&gt;
&lt;p class="image"&gt;&lt;img width="221" height="334" alt="At the top, the application object. From it, its delegate. From it, your controller objects. From each one, a wizard." src="http://i.imgur.com/8O4ua.png" /&gt;&lt;/p&gt;
&lt;p&gt;Note that each of your controllers should own—or, if you prefer, &lt;em&gt;hire&lt;/em&gt;—a Wizard all to itself. This eliminates contention between objects and reduces the likelihood of contention between threads (assuming each of the owning objects is supposed to only work on a single thread and not juggle multiple threads).&lt;/p&gt;
&lt;p&gt;If contention is not a problem and you have a good reason why there should be only one Wizard, such as memory pressure or union regulations, then use a singleton. But use &lt;a href="http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW32"&gt;a real singleton&lt;/a&gt;, and only when necessary, and beware of singletons in disguise.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=mThrQdWBU5k:_3Jw4sMbjz4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/domainofthebored?a=mThrQdWBU5k:_3Jw4sMbjz4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/domainofthebored?i=mThrQdWBU5k:_3Jw4sMbjz4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/domainofthebored/~4/mThrQdWBU5k" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://boredzo.org/blog/archives/2011-03-18/application-delegate-singletons#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://boredzo.org/blog/archives/2011-03-18/application-delegate-singletons/feed/atom" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://boredzo.org/blog/archives/2011-03-18/application-delegate-singletons</feedburner:origLink></entry>
	</feed><!-- Dynamic Page Served (once) in 0.261 seconds --><!-- Cached page served by WP-Cache -->

