<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Joshua Nozzi</title>
	<atom:link href="http://joshua.nozzi.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://joshua.nozzi.name</link>
	<description>Developer · UX Designer · Author</description>
	<lastBuildDate>Wed, 11 Jan 2012 00:20:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Fading Scroll View</title>
		<link>http://joshua.nozzi.name/2011/12/fading-scroll-view/</link>
		<comments>http://joshua.nozzi.name/2011/12/fading-scroll-view/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 22:21:59 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Cocoa, Xcode]]></category>
		<category><![CDATA[Fading]]></category>
		<category><![CDATA[NSOutlineView]]></category>
		<category><![CDATA[NSScrollView]]></category>
		<category><![CDATA[NSTableView]]></category>
		<category><![CDATA[Source Code]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1308</guid>
		<description><![CDATA[I saw another StackOverflow post today that reminded me I needed to solve this problem once and for all: An easy-to-use table / outline view that fades at the top and bottom as it&#8217;s scrolled. Turns out I needed an NSScrollView instead. You can learn more (including how to get it for yourself) on its source <a href='http://joshua.nozzi.name/2011/12/fading-scroll-view/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I saw another <a href="http://stackoverflow.com/questions/8604004/fade-effect-at-top-and-bottom-of-nstableview-nsoutlineview" target="_blank">StackOverflow post today</a> that reminded me I needed to solve this problem once and for all: An easy-to-use table / outline view that fades at the top and bottom as it&#8217;s scrolled. Turns out I needed an NSScrollView instead. You can learn more (including how to get it for yourself) on its <a href="/source/jlnfadingscrollview">source page</a>. Here&#8217;re a few examples of its configurability:</p>
<p style="text-align: center;"><a href="http://media.nozzi.name/JLNFadingScrollView/JLNFadingScrollView.jpg" rel="lightbox[1308]" title="Fading Scroll View Examples"><img class="aligncenter" title="Fading Scroll View Examples" src="http://media.nozzi.name/JLNFadingScrollView/JLNFadingScrollView.jpg" alt="" width="672" height="312" /></a></p>
<p style="text-align: left;">Happy coding!</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/12/fading-scroll-view/&amp;text=Fading Scroll View&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/12/fading-scroll-view/&amp;t=Fading Scroll View">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/12/fading-scroll-view/&amp;title=Fading Scroll View&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F12%2Ffading-scroll-view%2F&name=Joshua+Nozzi&description=Fading+Scroll+View" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/12/fading-scroll-view/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/12/fading-scroll-view/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/12/fading-scroll-view/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/12/fading-scroll-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just a Cat</title>
		<link>http://joshua.nozzi.name/2011/12/just-a-cat/</link>
		<comments>http://joshua.nozzi.name/2011/12/just-a-cat/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 18:00:53 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Cara]]></category>
		<category><![CDATA[Cats]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1291</guid>
		<description><![CDATA[Those who love and respect the special bonds we can form with animals &#8211; the bonds that show us that the term &#8220;people&#8221; is a bit too specific to a certain know-it-all species &#8211; can skip this. It&#8217;s not meant for you and won&#8217;t say anything you don&#8217;t already know. This is directed at those <a href='http://joshua.nozzi.name/2011/12/just-a-cat/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Those who love and respect the special bonds we can form with animals &#8211; the bonds that show us that the term &#8220;people&#8221; is a bit too specific to a certain know-it-all species &#8211; can skip this. It&#8217;s not meant for you and won&#8217;t say anything you don&#8217;t already know. This is directed at those others.</p>
<p>Permit me to rant a moment. There are those who see our companion animals as things. Too stupid to know any better, to remember their past, to understand pain and loss. Then there are those who know better. Not because of some idiotic mystical nonsense, but because they&#8217;ve actually opened up their hearts and minds to a dog, a cat, or some other intelligent animal. That&#8217;s when they learned that, while no animals &#8211; a cat for example &#8211; are quite as smart as a human they&#8217;re damn sure not stupid. The smarter ones are &#8230; smarter. They remember things. They get sad and even vindictive. If you don&#8217;t think a cat can hold a grudge and then make a very clear point beyond &#8220;stupid animal&#8221; about it, you&#8217;re the one who is fooling yourself, not the cat owners.</p>
<p>The same goes for a dog. Hell even pig owners who&#8217;ve allowed a pig the same special place in their family as a cat or a dog can see an impressive amount of self-aware &#8220;person&#8221; in that creature. It&#8217;s a shame they&#8217;re so tasty I&#8217;m not a PETA member, I&#8217;m an omnivore, but I believe in treating all animals (even the ones we eat) with respect.</p>
<p>I address this post to those insensitive, vulgarly stupid assholes who close their eyes to reality and favor &#8220;conventional wisdom&#8221; &#8211; for whatever reason &#8211; about just what defines a &#8220;person&#8221; and whether a cat, dog, pig, horse, dolphin, chimpanzee, or whatever has a right to be treated, respected, and loved like a person.</p>
<p>For those of you who would tell me, in my current situation with a sick cat whom I&#8217;ve lived with and loved deeply for my entire adult life, that &#8220;she&#8217;s just a cat&#8221; and that I&#8217;m somehow being unreasonable with the depth of emotion I feel over her rapid decline and eventual loss, I have a few things to say to you.</p>
<p>First: Fuck you. Seriously.</p>
<p>Second: I feel very sorry for you (but still, fuck you) because you&#8217;re missing out on one of the most important lessons you can learn in this life.</p>
<p>Third: I never wish a beloved animal (*person*) in your life to die, but here&#8217;s what I do wish upon you: Against your will, a creature whose intelligence and personality you&#8217;ve dismissed, will worm his or her way into your heart. You&#8217;ll grow to truly recognize them for individual they are. Then you&#8217;ll be forced to be there for them when they age and eventually die. I hope that by this time your bond is so close, you wouldn&#8217;t dream of being impersonal &#8230; that you&#8217;d feel the responsibility toward your loved one that really is there &#8211; the deep-seeded need to be there for them, to make them comfortable, to worry over whether to let them go naturally or worse, to worry over when it&#8217;s time to end their lives for them.</p>
<p>In short: I wish you my fate. Not out of cruelty, but out of a hope that there&#8217;ll be one less hard-headed, closed-minded, soulless fuckwad out there because he or she went through a heart-breaking experience that taught them one <em><strong>fuck</strong></em> of a valuable lesson about love and commitment.</p>
<p>Even if it <em>is</em> &#8220;just a cat.&#8221;</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/12/just-a-cat/&amp;text=Just a Cat&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/12/just-a-cat/&amp;t=Just a Cat">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/12/just-a-cat/&amp;title=Just a Cat&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F12%2Fjust-a-cat%2F&name=Joshua+Nozzi&description=Just+a+Cat" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/12/just-a-cat/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/12/just-a-cat/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/12/just-a-cat/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/12/just-a-cat/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Speaking Engagements</title>
		<link>http://joshua.nozzi.name/2011/12/speaking-engagements/</link>
		<comments>http://joshua.nozzi.name/2011/12/speaking-engagements/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 17:23:01 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Cocoa, Xcode]]></category>
		<category><![CDATA[Tech Industry]]></category>
		<category><![CDATA[Xcode 4 Book]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iDeveloper Live]]></category>
		<category><![CDATA[John Fox]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Scotty]]></category>
		<category><![CDATA[Xcode 4]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1288</guid>
		<description><![CDATA[November was a busy month for my career. Not only did I change jobs (again) but I had three separate speaking engagements. CocoaHeads, DC On November 2, I gave a whirlwind tour of Xcode 4 (highlights from my Xcode book) to the nice folks at the DC CocoaHeads meetup. Side note: LivingSocial has a great <a href='http://joshua.nozzi.name/2011/12/speaking-engagements/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>November was a busy month for my career. Not only did I change jobs (again) but I had three separate speaking engagements.</p>
<h3>CocoaHeads, DC</h3>
<p>On November 2, I gave a whirlwind tour of Xcode 4 (highlights from my <a title="Mastering Xcode 4: Develop and Design" href="http://xcodebook.com" target="_blank">Xcode book</a>) to the nice folks at the <a href="http://cocoaheadsdc.org" target="_blank">DC CocoaHeads</a> meetup. Side note: <a href="http://livingsocial.com" target="_blank">LivingSocial</a> has a great office space.</p>
<h3>iDeveloper Live Podcast</h3>
<p>I was also a guest on episodes 34 (November 21), and 35 (November 28) of the <a href="http://ideveloper.tv" target="_blank">iDeveloper Live</a> podcast. The hosts, Steve &#8220;Scotty&#8221; Scott and John Fox &#8211; graciously allowed me to blather on about (you guessed it) Xcode 4. <a title="Download Episode 34" href="http://feeds.ideveloper.tv/ideveloperlive/files/ideveloperlive034.m4a" target="_blank">Episode 34</a> was about its good side; <a title="Download Episode 35" href="http://feeds.ideveloper.tv/ideveloperlive/files/ideveloperlive035.m4a" target="_blank">episode 35</a> was a gripe-fest. I felt rather bad about spending nearly an hour complaining about a tool that <em>is</em> rather good, in spite of its faults. All month long, Scotty had been giving away e-book copies of Mastering Xcode 4.</p>
<p>Thanks to my hosts for the opportunity to speak and thanks to all those who listened patiently to my dimwitted jokes. <img src='http://joshua.nozzi.name/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/12/speaking-engagements/&amp;text=Speaking Engagements&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/12/speaking-engagements/&amp;t=Speaking Engagements">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/12/speaking-engagements/&amp;title=Speaking Engagements&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F12%2Fspeaking-engagements%2F&name=Joshua+Nozzi&description=Speaking+Engagements" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/12/speaking-engagements/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/12/speaking-engagements/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/12/speaking-engagements/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/12/speaking-engagements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://feeds.ideveloper.tv/ideveloperlive/files/ideveloperlive035.m4a" length="25147882" type="audio/mpeg" />
<enclosure url="http://feeds.ideveloper.tv/ideveloperlive/files/ideveloperlive034.m4a" length="25749589" type="audio/mpeg" />
		</item>
		<item>
		<title>Citations Galore</title>
		<link>http://joshua.nozzi.name/2011/12/citations-galore/</link>
		<comments>http://joshua.nozzi.name/2011/12/citations-galore/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 17:05:58 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Bioinformatics]]></category>
		<category><![CDATA[Recognition & Reviews]]></category>
		<category><![CDATA[Publication]]></category>
		<category><![CDATA[SPICE]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1286</guid>
		<description><![CDATA[A minor boast: it&#8217;s gratifying to see the hard work Dr. Roederer and I have done on SPICE is being put to good use. The paper has been cited* a number of times. This week I went back to work for Dr. Roederer full-time to continue improving SPICE and to plan and build yet another <a href='http://joshua.nozzi.name/2011/12/citations-galore/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>A minor boast: it&#8217;s gratifying to see <a title="SPICE Publication" href="http://joshua.nozzi.name/2011/01/spice-cytometry-part-a/" target="_blank">the hard work Dr. Roederer and I have done on SPICE</a> is being put to good use. The paper <a title="SPICE Publication Citations" href="http://scholar.google.com/scholar?hl=en&amp;lr=&amp;cites=11121392703810163050&amp;um=1&amp;ie=UTF-8&amp;ei=l-zgTuC4BsTn0QHe2M3RBw&amp;sa=X&amp;oi=science_links&amp;ct=sl-citedby&amp;resnum=10&amp;ved=0CFcQzgIwCTgU" target="_blank">has been cited</a>* a number of times. This week I went back to work for Dr. Roederer full-time to continue improving SPICE and to plan and build yet another bioinformatics tool.</p>
<p>* I also <em>just</em> discovered Google Scholar. <img src='http://joshua.nozzi.name/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/12/citations-galore/&amp;text=Citations Galore&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/12/citations-galore/&amp;t=Citations Galore">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/12/citations-galore/&amp;title=Citations Galore&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F12%2Fcitations-galore%2F&name=Joshua+Nozzi&description=Citations+Galore" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/12/citations-galore/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/12/citations-galore/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/12/citations-galore/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/12/citations-galore/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nib Segregation</title>
		<link>http://joshua.nozzi.name/2011/11/nib-segregation/</link>
		<comments>http://joshua.nozzi.name/2011/11/nib-segregation/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 16:27:14 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Cocoa, Xcode]]></category>
		<category><![CDATA[nibs]]></category>
		<category><![CDATA[segregation]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1274</guid>
		<description><![CDATA[Always prefer true wisdom to conventional wisdom and think before you segregate nibs.]]></description>
			<content:encoded><![CDATA[<p>Conventional Cocoa wisdom holds that each window in an application should be in its own nib/xib file. The benefits are shorter launch times, better memory usage, and better Xcode project organization. Conventional wisdom is <em>always right</em> &#8230; right? We cynics know better. True wisdom is knowing when conventional wisdom is wrong.</p>
<p>I haven&#8217;t posted in awhile (especially anything Cocoa related) but the subject showed up on my radar again. What bothers me is this generalization: if you&#8217;re not (always) segregating your windows with nibs, you&#8217;re (always) doing it wrong. I have to take a stand. Blind adherence to generalizations will get you in trouble.</p>
<h3>The Methodology</h3>
<p>Let&#8217;s consider the approach. The basic idea is that every window in your app is placed into its own Interface Builder (nib) file. This coincidentally forces you to use one NSWindowController per window, which in turn forces you to keep that window&#8217;s UI management logic separate from <em>other</em> windows&#8217; UI management and so on. For larger applications (which implies larger Xcode projects) this has performance and organizational benefits.</p>
<p>Note the term &#8220;basic idea&#8221; &#8211; this is where rote advice repeaters can fail their listeners. I&#8217;ll admit it: I make this mistake myself. If you repeat a bit of advice often enough, you become lazy. You carelessly overgeneralize. This can result in misguiding others. We&#8217;ll get to that part in a bit. For now, let&#8217;s have a bit more detail.</p>
<h4>Performance</h4>
<p>If you&#8217;re not familiar with the concept of &#8220;lazy loading&#8221; you&#8217;re doing yourself and your users a disservice. Lazy loading means only loading resources when the user&#8217;s actions demand the resource. That is, only load the UI that&#8217;s needed <em>now</em>. In the case of the &#8220;monolithic nib&#8221; &#8211; where the entirety of your application&#8217;s UI is in a single nib file &#8211; your application takes longer to launch and uses more memory whether it needs to or not because it&#8217;s loading <em>everything</em>. This is often unnecessary.</p>
<p>A favorite example is the preferences window. A user is unlikely to adjust the application&#8217;s preferences <em>every time they use the application</em>. It just doesn&#8217;t happen and we <em>know</em> this. Many apps have toolbar-driven, multi-pane preferences windows (another &#8220;is-it-really-necessary&#8221; discussion begging to be written). Does all that need to be loaded at launch time? No. It&#8217;s better that the preferences UI be loaded only when the user requests it for the first time.</p>
<p>Another example is the <em>really</em> complex application. Complex panels, such as Xcode&#8217;s Utility Area, can come with entire populations of sub-panels and may never be used during a session. If you&#8217;re any kind of sane, there&#8217;s <em>at least</em> one top-level NSViewController that manages such a panel but in reality, an extremely complex application may have view controllers for each sub-panel as well. For something as large and complex as Xcode, it&#8217;s <em>a good idea</em> not to load all of this unless the user asks for it.</p>
<p>All but the smallest, simplest of apps usually have at least one opportunity for lazy UI loading of a unit. The agreed-upon major unit is a window and its contents; a view is the minor unit. Anywhere you see a UI unit that <em>may not be seen</em> during a user&#8217;s session is an excellent opportunity to segregate and therefore to save time, memory, and even battery power. iPhone users will thank you for the latter.</p>
<p>In fact I&#8217;ll go a step further by saying anywhere you see an <em>NSWindow and NSWindowController</em> pair or an <em>NSView and NSViewController</em> pair that may not be used is an opportunity to optimize.</p>
<p>An <em>opportunity</em>. Remember the specificity of that word.</p>
<h4>Organization</h4>
<p>From the developer&#8217;s perspective, simply maintaining a large Xcode project offers its own set of challenges.</p>
<p>Good organization is more than just satisfying OCD. A well-organized project makes it easier to find things months or years down the road when you revisit a part of your app you haven&#8217;t needed to in awhile. Believe me, this long-time-no-see scenario happens often when you have more than one app. Or when your app is complex. Or when you&#8217;ve come back from vacation. Or when you finally got over being sick to death of even <em>looking</em> at that damn app.</p>
<p>Organization is especially important when working on a team or when you pass on the torch to another developer. This is similar to the need for readable, well-commented code. You can&#8217;t remain intimately familiar with <em>every facet</em> of your large project. Your future self (or your replacement) will thank you for making things easy to parse later.</p>
<p>Putting the preferences window in PreferencesWindow.xib (or whatever <em>clear</em> and <em>concise</em> naming convention you choose) makes it easy to find the related UI. Together with groups (the yellow folders in Xcode), the project is more easily navigable. You have a reasonable minimum of three files to maintain: PreferencesWindowController.h, PreferencesWindowController.m, and PreferencesWindow.xib. Put these in a group called &#8220;Preferences&#8221; and you can keep the group collapsed until you need to work on the preferences system. Put other preferences-specific source files there (like view/view-controller files if it gets really complicated) and you <em>stay</em> organized.</p>
<p>Zen and the Art of Xcode Project Organization.</p>
<p>Another organizational benefit is fault tolerance. Although it&#8217;s a less frequent occurrence these days, corrupted nibs have bitten nearly every Cocoa developer. Like the segmented hulls of modern ships, the puncturing of one segment shouldn&#8217;t sink the ship. Similarly, one corrupted nib in a well-segregated project causes less of a mess than that monolithic nib into which you stuffed the entire universe.</p>
<p>This is much less of an issue if you&#8217;re using a source code management system like Git or Subversion and make frequent, task-oriented commits. You <em>are</em> using source code management, aren&#8217;t you? Even so, there&#8217;s still risk of unnecessary loss of work if a nib is corrupted when you&#8217;re changing a lot of your UI at once. In the monolithic nib, all those changes are gone if the nib croaks; with multiple nibs, you only lose the work done in the corrupted nib. It&#8217;s a marginal benefit but you&#8217;ll be glad for it if the situation rears its ugly head.</p>
<h3>The Exception</h3>
<p>The point I&#8217;ve been coming to is this: it&#8217;s possible to take it all too far.</p>
<p>Consider a small utility app. It has one main window that&#8217;s always visible and a secondary window (let&#8217;s say a floating palette, despite their decreasing popularity). Neither window is particularly complex and the secondary window is likely to be invoked during each (possibly every) session. The use of multiple nibs here is <em>ridiculous</em>. I&#8217;ll tell you why.</p>
<p>The user launches the app to perform a task. The MainMenu.xib file is read and the UI is loaded. The task likely involves a utility palette. The app is user-friendly so the palette remembers its shown-or-not-shown state from the last session and needs to be loaded. Now there&#8217;s a second round-trip to the disk to read <em>its</em> nib file and load its UI.</p>
<p>If you know the utility application will <em>never</em> become the next Photoshop, your blind &#8220;future-proofing&#8221; is utterly pointless. You&#8217;ve <em>increased</em> your application&#8217;s load time and disk activity for nothing. You followed the &#8220;conventional wisdom&#8221; you heard summarized somewhere without considering why you were doing it and in this case it was the wrong thing to do.</p>
<p>You&#8217;ve also added more files to your Xcode project. Did it help? Did it make your small, simple project easier to navigate and to maintain? I&#8217;ll bet not. Interface builder helps you extract and segregate UI from a single nib; you&#8217;re on your own if you want to merge nibs. From an organizational standpoint, over-segregation can be a burden. Just navigating between several interrelated nib files can become cumbersome. It now involves tabs and assistants. It may soon involve satellite surveillance and an operations team. Think The Bourne Identity.</p>
<h3>Conclusion</h3>
<p>Is it all really necessary? For medium-to-large-complexity apps, you&#8217;re sure to benefit at least a little. For small projects, you might be hurting performance and maintainability. Remember the word &#8220;opportunity&#8221;? It&#8217;s not the same as &#8220;requirement&#8221;. <em>Always</em> consider the units of measurement (window/controller pairs and view/view-controller pairs) and the likelihood those units will be used in each session.</p>
<p>In short: prefer <em>true</em> wisdom to <em>conventional</em> wisdom and think before you segregate.</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/11/nib-segregation/&amp;text=Nib Segregation&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/11/nib-segregation/&amp;t=Nib Segregation">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/11/nib-segregation/&amp;title=Nib Segregation&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F11%2Fnib-segregation%2F&name=Joshua+Nozzi&description=Nib+Segregation" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/11/nib-segregation/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/11/nib-segregation/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/11/nib-segregation/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/11/nib-segregation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thanks for Ziplight</title>
		<link>http://joshua.nozzi.name/2011/10/thanks-for-ziplight/</link>
		<comments>http://joshua.nozzi.name/2011/10/thanks-for-ziplight/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 20:57:08 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Bartas Technologies]]></category>
		<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Ziplight]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1181</guid>
		<description><![CDATA[Someone found a use for Ziplight even after Snow Leopard.]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; clear: none; margin-right: 20px;" src="http://media.nozzi.name/appicons/zlicon96alpha.png" alt="Ziplight Icon" width="64" height="64" />A rather nice e-mail arrived in my Inbox this morning from a gentleman who used my <a href="http://bartastechnologies.com/ziplight" target="_blank">Ziplight</a> Spotlight plugin <a href="http://joshua.nozzi.name/2009/09/ziplight-superfluous-josh-saddened/">well past its prime</a>. &#8220;Chris&#8221; writes:</p>
<blockquote><p>&#8230;I noticed you&#8217;re the ziplight developer, so I just wanted to thank you for it, and share my story; since I suspect I&#8217;m the only man who used Ziplight on Snow Leopard.</p>
<p>I was searching for a solution to tagging comic files (just renamed zips) without using spotlight comments, and then I thought of a slightly ghetto method using file names. So I took ziplight and swapped in the UTI I needed.</p>
<p>Since I was a late comer to Lion, that act got me an extra 2 years of life out of Ziplight.</p></blockquote>
<p>It makes me happy to see someone still had a use for it well after it became unnecessary. Old apps and plugins so often fade quietly into history&#8230;</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/10/thanks-for-ziplight/&amp;text=Thanks for Ziplight&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/10/thanks-for-ziplight/&amp;t=Thanks for Ziplight">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/10/thanks-for-ziplight/&amp;title=Thanks for Ziplight&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F10%2Fthanks-for-ziplight%2F&name=Joshua+Nozzi&description=Thanks+for+Ziplight" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/10/thanks-for-ziplight/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/10/thanks-for-ziplight/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/10/thanks-for-ziplight/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/10/thanks-for-ziplight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Personal</title>
		<link>http://joshua.nozzi.name/2011/10/more-personal/</link>
		<comments>http://joshua.nozzi.name/2011/10/more-personal/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 19:38:20 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1177</guid>
		<description><![CDATA[2011 JUST. WON'T. DIE.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been making a lot of personal posts lately. I have another. You might have noticed my presence online has been somewhat subdued lately. It&#8217;s no single reason; it&#8217;s a number of them altogether.</p>
<p>My sister lost her (very sweet) cat to cancer. My own cat had a lump that was removed &#8211; she&#8217;ll be fine (but she <em>is</em> an old lady and still has old lady issues). The problems didn&#8217;t stop at pets, though.</p>
<p>One of my sisters has been diagnosed with Multiple Sclerosis. She&#8217;s a mother of two in her thirties. It&#8217;s not mild but fortunately it&#8217;s not end-stage-severe. We&#8217;re all still reeling. Just a few months ago, her youngest daughter had a seizure . Looking back, it&#8217;d been going on awhile but this one was bad. She&#8217;s now on medication, probably until her adult years.</p>
<p>Another sister (mother of three) was very likely misdiagnosed with MS a few years ago but her latest doctor &#8211; who is angry at the previous &#8220;diagnosis&#8221; &#8211; is now thinking syringomyelia but a lot more testing is necessary. There are definitely cysts on her spine (thus the earlier diagnosis) and the kinds of problems that go with them. We&#8217;re still waiting to know more.</p>
<p>As if this wasn&#8217;t enough the sister I just mentioned has a fourteen-year-old son. He&#8217;d been having odd problems for quite some time now. I&#8217;ll skip the details, but it&#8217;s now confirmed: he has a form of lymphatic cancer. He&#8217;ll have a catheter inserted tomorrow so he can begin chemotherapy. At 14. Fortunately, this form has an 80% recovery chance (which I think is higher since he&#8217;s so young and it was caught so early).</p>
<p>But wait, there&#8217;s more. An uncle on my father&#8217;s side was just diagnosed with prostate cancer. It has progressed enough that it&#8217;s now in his bones. I don&#8217;t know much more than that.</p>
<p>A familiar problem we thought we&#8217;d solved popped up as well &#8211; Matt&#8217;s ongoing sleeping problems have resurfaced with a vengeance and it looks like it&#8217;s back to obstructive sleep apnea (for which he&#8217;d previously had a positive sleep study and painful operation to correct). We&#8217;re exploring next steps but for now, it&#8217;s back to the problems associated with lack of oxygen while sleeping many times per night.</p>
<p>How are we taking this all? Well, we&#8217;re all alternating between grieving and laughing together. It&#8217;s our way. I&#8217;m personally bouncing between optimistic and focused (throwing my energy into work) and depressed and crying. It&#8217;s a lot to deal with but that&#8217;s what&#8217;s going on with me right now.</p>
<p>Keep me in your thoughts and prayers (just because I&#8217;m areligious doesn&#8217;t mean I don&#8217;t appreciate the latter). A special thanks to those of you who&#8217;ve sent me words of support over the last few weeks as some of this came to light. Truly: thank you.</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/10/more-personal/&amp;text=More Personal&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/10/more-personal/&amp;t=More Personal">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/10/more-personal/&amp;title=More Personal&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F10%2Fmore-personal%2F&name=Joshua+Nozzi&description=More+Personal" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/10/more-personal/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/10/more-personal/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/10/more-personal/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/10/more-personal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Steve</title>
		<link>http://joshua.nozzi.name/2011/10/steve/</link>
		<comments>http://joshua.nozzi.name/2011/10/steve/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 00:33:46 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Steve Jobs]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1174</guid>
		<description><![CDATA[Back when I was a young, pimply geek, I trashed Apple like it was going out of style. Little did I know it would. Crapple. Crapintosh. MacIntrash. I&#8217;ve used them all. It wasn&#8217;t until 2000 (after falling in love with Linux) that I discovered a modern Unix with a unified UI. A Mac I liked. A <a href='http://joshua.nozzi.name/2011/10/steve/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Back when I was a young, pimply geek, I trashed Apple like it was going out of style. Little did I know it <em>would</em>. Crapple. Crapintosh. MacIntrash. I&#8217;ve used them all. It wasn&#8217;t until 2000 (after falling in love with Linux) that I discovered a modern Unix with a unified UI. A <em>Mac</em> I <em>liked</em>. A Mac that<em> ran Unix</em>.</p>
<p>From that moment forward, I kicked my hobbyist-level programing dalliances into high gear to become, a decade later, a damn good Cocoa developer 100% devoted to the Apple ecosystem. 100% of my income is due to my Cocoa and Xcode knowledge and I&#8217;m much happier than I was as a network engineer &#8211; even as IT Manager.</p>
<p>Steve Jobs started something. Then he was booted out of it. It suffered. He came back. In less than 15 years, it rocketed to the top of many lists that matter. Steve&#8217;s leadership made my career and success possible. Would I have found it otherwise? Possibly &#8211; I&#8217;m a very driven person &#8211; but &#8220;possibly&#8221; didn&#8217;t happen. Steve and Apple did. So I am where I am now because of it.</p>
<p>Thanks, Steve, for positively affecting my life.</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/10/steve/&amp;text=Steve&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/10/steve/&amp;t=Steve">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/10/steve/&amp;title=Steve&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F10%2Fsteve%2F&name=Joshua+Nozzi&description=Steve" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/10/steve/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/10/steve/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/10/steve/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/10/steve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Love Meeeee!</title>
		<link>http://joshua.nozzi.name/2011/10/love-meeeee/</link>
		<comments>http://joshua.nozzi.name/2011/10/love-meeeee/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 21:24:42 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Introspection]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1169</guid>
		<description><![CDATA[Is the desire for atonement really a "manifestation of the desire to have everyone like you"?]]></description>
			<content:encoded><![CDATA[<p>My friend <a href="http://twitter.com/tristanx" target="_blank">@tristanx</a> pointed out an interesting, if random, blog post. He&#8217;s good at this. It was titled <em><a href="http://thoughtcatalog.com/2011/how-i-botched-a-budding-e-romance/" target="_blank">How I Botched A Budding E-Romance</a></em>. It was a thoughtful admission of a regrettable mistake on the part of Stephanie (the author). I found it interesting enough I checked out another post on her home page: <em><a href="http://thoughtcatalog.com/2011/12-reasons-why-its-time-to-leave-the-party-and-go-home/" target="_blank">12 Reasons Why It&#8217;s Time To Leave The Party And Go Home</a></em>. It raised another introspective issue that struck home. I&#8217;d like your opinion about it.</p>
<p>As a thirty-something, I am really starting to enjoy the confidence that comes with learning my twenty-something self was <em>over</em>confident. An odd paradox, to be sure. This is a normal state for one&#8217;s teens and twenties and nothing to be ashamed of. Not outgrowing it by forty &#8230; <em>that&#8217;d</em> be squarely into shame territory.</p>
<p>In Reason number 7, Stephanie writes:</p>
<blockquote><p>You see an ex from a number of years ago. Despite the fact that you are now on good terms — friendly terms, even — the relationship ended somewhat badly, and you recognize that most of this is your fault. <strong>In your inebriated state, you apologize, profusely, for your past behavior. In your mind this amounts to a sort of self-deprecating wisdom, an acknowledgement of past wrongs and a mature desire to right them. In actuality it is the manifestation of the desire to have everyone like you, despite the fact that you have, undoubtedly, fucked some people over in your life.</strong> Additionally, approaching an ex in a state normally reserved for hitting on people and then invoking your relationship comes off like, well, hitting on them. They will probably also not want to remember how you fucked them over. They will have overcome this and constructed an idea of who you are w/r/t you fucking them over, and used this to move on. You are not helping yourself. It is time to go home.</p></blockquote>
<p>The emphasis is mine and it&#8217;s what I want to discuss.</p>
<p>The older I get, the more willing I am to acknowledge stupid shit I&#8217;ve said or done to others in the past. In part, I suspect it&#8217;s easier to own up to because it&#8217;s more distant. I like to think, though, that it&#8217;s also maturity and recognizing that, even as a twenty-something adult, I view myself ten years ago as a kid with adult rights and still very little by way of a clue. I also realized in my late twenties that I have the same sort of social problems described by Asperger&#8217;s Syndrome, though I&#8217;ve not been diagnosed with this. I worked hard to learn to recognize those problems and work on them. I wish I could say I&#8217;ve eliminated them, but I haven&#8217;t &#8211; they&#8217;re still there and I&#8217;ll likely have to work at it all my life. But it&#8217;s getting easier with age. <em>Introspection</em> is getting easier with age.</p>
<p>So. Is the desire for atonement really a &#8220;manifestation of the desire to have everyone like you&#8221;? If yes, how much? Completely? Half and half? Just a little bit? More to the point, is that actually wrong? Of <em>course</em> &#8221;normal people&#8221; desire that everyone likes them. They may acknowledge that it&#8217;s not a realistic desire in practice, but we&#8217;re hardwired social creatures by <em>nature</em>. Surely it&#8217;s not wrong to desire that everyone likes us, so long as we know it&#8217;s never going to happen. Isn&#8217;t that desire part of the mechanism that prompts (most of) us not to be sociopaths?</p>
<p>So what do you think? Ignoring that it&#8217;s a reason for leaving a party, is Stephanie&#8217;s (seeming) all-or-nothing label for the compulsion she describes mature introspection, or the oft-scorned desire for everyone to like you? Moreover, is the latter so black and white (and &#8220;bad&#8221; or &#8220;immature&#8221;) as people make it seem?</p>
<p>To Stephanie if you read this: You make good points, which is why I chose to read more. Please don&#8217;t think I&#8217;m singling you out or chastising. Also, please like me. <img src='http://joshua.nozzi.name/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/10/love-meeeee/&amp;text=Love Meeeee!&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/10/love-meeeee/&amp;t=Love Meeeee!">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/10/love-meeeee/&amp;title=Love Meeeee!&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F10%2Flove-meeeee%2F&name=Joshua+Nozzi&description=Love+Meeeee%21" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/10/love-meeeee/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/10/love-meeeee/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/10/love-meeeee/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/10/love-meeeee/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The iZON Wireless Video Camera</title>
		<link>http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/</link>
		<comments>http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 20:48:17 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1154</guid>
		<description><![CDATA[What an awful, ill-conceived, overpriced failure of a product launch. Seriously.]]></description>
			<content:encoded><![CDATA[<p>Last week I saw a new &#8220;wireless video camera&#8221; product by a company called <a href="http://steminnovation.com" target="_blank">Stem Innovation</a>, which promised a number of great features in an easy to use package. The <a href="http://steminnovation.com/section/iZON/24/interior.php" target="_blank">iZON</a> camera is meant to be remotely accessible via your favorite iOS device, giving you live audio and video, push notifications of any motion or noises it detects, etc. Despite its hefty US $130 tag I thought I&#8217;d give it a try and ordered one. It arrived today. Here&#8217;s my review. You can save yourself some time right now: The product almost completely fails to deliver and is a pain in the ass to un-package, set up, and use. If you want the gory details, read on.</p>
<h3>Not That Kind of Remote Control</h3>
<p>First, I&#8217;ll admit my own misunderstanding lead to some disappointment before the device even arrived. Based on the wording, the device&#8217;s iOS-app-controlled nature, the look of its lens, and of course the price tag, I had assumed a fully &#8220;remote controlled&#8221; camera. That is, a camera whose position you can control, letting you pan and perhaps zoom. Other (cheaper) products do this, albeit with web-hosted software. It turns out this is not the case. This camera swivels on a magnetic base. By hand. No remote-controlled panning. Damn. My mistake, I should&#8217;ve read more carefully (though the product site offers surprisingly little detail).</p>
<h3>Wireless. Asterisk.</h3>
<p>Second, their claim of &#8220;wireless&#8221; is outright false. The device requires a USB cable (with AC adaptor for wall sockets) for power. Only its <strong>data</strong> is sent wirelessly using your WiFi network. I had assumed it could be battery powered (and hoped for reasonable battery length). Nope. No battery option. It would have been nice to place the device up high in our main living space without a wire dangling down. Nicer still would be to have it last at least an overnight trip. Not the case. Requiring a wire for power is <strong>not</strong> wireless. This company is <strong>extraordinarily bad</strong> at communicating their product&#8217;s capabilities. Or they&#8217;re intentionally misleading customers.</p>
<h3>Suspicious Package</h3>
<p>The problems began the moment I opened the box. I began pulling the device (and its wireless wires) out and removing the twisty ties, additional wrappings, etc. The USB cable (two, actually; the second, short cable is of unknown intent) was &#8220;protectively wrapped&#8221; at both ends. I&#8217;m used to cast plastic caps or shrink-wrap cellophane sleeves. What I <strong>wasn&#8217;t</strong> expecting was cellphone <strong>tape</strong> directly applied to the cable ends. You read that right: the cable ends were very securely wrapped with plain old cellophane tape. Tape that had to be cut and pried with fingernails. Tape that did not come off in one piece. Tape that&#8217;s still partially stuck to both ends of each cable.</p>
<h3>It&#8217;s a Setup</h3>
<p>So I plugged in my wireless camera&#8217;s wire. Its light lit. I was at a loss as to what to do next. I dug around and found their tiny &#8220;Quick Start&#8221; guide. After the obligatory &#8220;plug in your wireless camera&#8221; steps, it informed me I had to download their app from the App Store. Oh, right. Makes sense. Maybe a brightly-colored reminder card on top of all that packaging somewhere would&#8217;ve reduced the WTF factor there, but fine. My mistake.</p>
<p>I looked up the app &#8211; Stem:Connect &#8211; and paused a moment in worry. At the time, there were 115 reviews and the app averaged 2 out of 5 stars. Uh oh. I installed and launched it. It crashed. I launched it again and followed its prompts through creating an account with Stem&#8217;s network. I did read that the camera depends on their service (worrisome, but I hoped there&#8217;d be an alternative in there somewhere &#8211; a hope that died today) so I wasn&#8217;t surprised. I waited a moment for their confirmation e-mail with my activation code and typed it into my iPhone.</p>
<p>The next step was to set up the device itself. This involved switching my iPhone to the device&#8217;s wireless network, entering my own network&#8217;s credentials, then switching the phone back. After a few false starts (the app wouldn&#8217;t connect to the camera for a full minute), I started to see the camera&#8217;s image updating.</p>
<h3>Poor Performance</h3>
<p>Were this a movie, I&#8217;d have demanded my money back in the first five minutes. While the five-second live video lag is understandable, the interface&#8217;s lag is not. Every UI action is delayed. Some delays make it feel like it&#8217;s about to crash.</p>
<p>Even less understandable is the user interface. Stem:Connect is apparently meant to be a one-stop shop for all of Stem&#8217;s products. As far as I can tell, there are two and they have nothing to do with one-another. Unless you own all of Stems products &#8211; and very shortly I will happily be back to owning <em>none</em> of them &#8211; much of the room taken up for navigation is wasted space. For someone who just wants to check up on their home, a dedicated app makes a lot of sense. As it currently exists, I have to launch the app, select the type of device (the camera), then select the device itself. Every time. Bewildering.</p>
<p>You cannot rotate the device to see the input in its proper aspect ratio, which means the video is much smaller than you&#8217;d expect, as it&#8217;s stuffed into &#8220;portrait&#8221; orientation. In the main living space of my home, things on the opposite side of the room are small and indistinct. Worse than that, the camera&#8217;s image quality is poor in lower light situations. A cheap US $20 USB web cam I found on Amazon looks positively beautiful in average room lighting conditions compared to the iZON.</p>
<h3>Did You Feel That?</h3>
<p>A few weeks ago, the East Coast was rocked by surprise earthquake. My house wobbled. A rather unexpected event for this region of the world. I don&#8217;t think the iZON would&#8217;ve noticed. Its motion detection requires a bit of setup (it&#8217;s not a simple &#8220;on&#8221; switch at first, though you wouldn&#8217;t know it from the UI). You turn the feature on then set up its sensitivity and &#8220;active area&#8221; (the area of the image you want to monitor). Although I turned on push notifications when the app (successfully) launched, and even verified it was allowed for Stem:Connect via the iPhone&#8217;s settings, but I could not get this to work.</p>
<p>I designated the whole damn image as the active area, set the sensitivity all the way up (and down, in case I misunderstood the direction) and acted a fool waving and moving around. No luck. I moved closer, moved further. I even waved my hand (quickly <em>and</em> slowly) directly in front of the lens, thinking that would surely count as motion.</p>
<p>Nothing.</p>
<p>Motion detection is the primary reason I want a remotely-accessible camera. I want to know if someone&#8217;s there. If they are, I want a picture of them. Or a video. Maybe even their voices (so the audio streaming is a nice touch). The iZON, however, doesn&#8217;t seem particularly motivated to give a damn.</p>
<h3>Stop the Camera! I Wanna Get Off!</h3>
<p>Too goddamn bad. There&#8217;s no off switch. There&#8217;s no &#8220;pause&#8221; switch. The only mode that&#8217;s truly wireless is its &#8220;off&#8221; mode because you have to yank the power cord to turn off the device. Otherwise, your house is under 24-hour video <em>and audio</em> surveillance (routed through Stem&#8217;s systems). Oh, and your bandwidth? Yeah, it&#8217;ll be using that too.</p>
<h3>Conclusion</h3>
<p>What an awful, ill-conceived, overpriced failure of a product launch. Seriously.</p>
<p>&nbsp;</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/&amp;text=The iZON Wireless Video Camera&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/&amp;t=The iZON Wireless Video Camera">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/&amp;title=The iZON Wireless Video Camera&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F09%2Fthe-izon-wireless-video-camera%2F&name=Joshua+Nozzi&description=The+iZON+Wireless+Video+Camera" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/09/the-izon-wireless-video-camera/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>To the Fog!</title>
		<link>http://joshua.nozzi.name/2011/08/to-the-fog/</link>
		<comments>http://joshua.nozzi.name/2011/08/to-the-fog/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 13:04:03 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Tech Industry]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[New Again]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=1149</guid>
		<description><![CDATA[Announcing the at-home or in-business successor to Cloud-based technology: Fog. It's like a local area network ... but with a better name.]]></description>
			<content:encoded><![CDATA[<p>Given the cyclical nature of technological advancements, I feel a new phrase will need coining. We&#8217;ve seen the movement between terminal/mainframe to standalone, then back again (this time, called &#8220;thin clients&#8221;), then back again, then back <em>again</em> (this time, called &#8220;the Cloud&#8221;).</p>
<p>I predict a <em>new</em> technology that actually lets you store your own data on <em>your own local network</em>. Imagine! You keep <em>your stuff</em> in <em>your own home or business</em>! Fully Cloud-compatible (via backup and sync services), your stuff is still accessible <em>without the Internet</em>! What do I call this <em>down-to-Earth</em> Cloud-based technology? I shall call it &#8230; <em>the Fog</em>.</p>
<p>The Fog is an at-home or in-business successor to Cloud-based technology. It&#8217;s like a local area network &#8230; but with a better name.</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/08/to-the-fog/&amp;text=To the Fog!&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/08/to-the-fog/&amp;t=To the Fog!">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/08/to-the-fog/&amp;title=To the Fog!&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F08%2Fto-the-fog%2F&name=Joshua+Nozzi&description=To+the+Fog%21" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/08/to-the-fog/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/08/to-the-fog/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/08/to-the-fog/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/08/to-the-fog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Other Writing</title>
		<link>http://joshua.nozzi.name/2011/08/my-other-writing/</link>
		<comments>http://joshua.nozzi.name/2011/08/my-other-writing/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 17:30:11 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[Fiction]]></category>
		<category><![CDATA[Short Stories]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=985</guid>
		<description><![CDATA[If you only know about me because of the Xcode 4 book, you might not be familiar with my &#8220;usual&#8221; style of writing. That is, irreverent, quirky, off-color, etc. It may surprise you to know I&#8217;ve always loved creative writing; I&#8217;ve just never &#8220;put myself out there&#8221; beyond my blog. Well I self-published an adult-humor <a href='http://joshua.nozzi.name/2011/08/my-other-writing/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/I-Like-to-Write-ebook/dp/B004RJ405G/ref=sr_1_7?ie=UTF8&amp;qid=1313811457&amp;sr=8-7"><img class="alignright size-full wp-image-1004" title="I Like to Write Cover" src="http://joshua.nozzi.name/wp-content/uploads/2011/08/I-Like-to-Write-Cover.jpg" alt="" width="93" height="139" /></a>If you only know about me because of the <a href="http://xcodebook.com" target="_blank">Xcode 4 book</a>, you might not be familiar with my &#8220;usual&#8221; style of writing. That is, irreverent, quirky, off-color, etc. It may surprise you to know I&#8217;ve always loved creative writing; I&#8217;ve just never &#8220;put myself out there&#8221; beyond my blog. Well I self-published an adult-humor short story on Kindle Direct Publishing.</p>
<p><a href="http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;field-keywords=B004RJ405G&amp;x=0&amp;y=0" target="_blank">I Like to Write</a> is a doltish name, isn&#8217;t it? It&#8217;s a tale of an elderly, mentally unstable woman stalking an elderly man of failing health by writing him lots of letters. Nancy likes to write. She <em>really</em> likes to write. The trouble is, both her simple language and her seemingly innocent infatuation with Fred is less charming and more scary. This tongue-in-cheek tale is told through the eyes of a young man who&#8217;d just moved into the apartment complex. This short story is <a href="http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;field-keywords=B004RJ405G&amp;x=0&amp;y=0" target="_blank">$0.99 through your favorite Kindle reader</a>. I hope you enjoy it.</p>
<p>&nbsp;</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/08/my-other-writing/&amp;text=My Other Writing&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/08/my-other-writing/&amp;t=My Other Writing">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/08/my-other-writing/&amp;title=My Other Writing&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F08%2Fmy-other-writing%2F&name=Joshua+Nozzi&description=My+Other+Writing" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/08/my-other-writing/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/08/my-other-writing/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/08/my-other-writing/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/08/my-other-writing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mastering Xcode 4 Available for Preorder</title>
		<link>http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/</link>
		<comments>http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 22:30:40 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Cocoa, Xcode]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[Xcode 4 Book]]></category>
		<category><![CDATA[Book]]></category>
		<category><![CDATA[Xcode 4]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=980</guid>
		<description><![CDATA[The Xcode 4 book is finished and currently being printed (and prepared for digital sale in a number of formats as well). You can preorder it now.]]></description>
			<content:encoded><![CDATA[<p><a href="http://xcodebook.com"><img class="size-full wp-image-1000 alignright" title="Mastering Xcode 4" src="http://joshua.nozzi.name/wp-content/uploads/2011/08/xcodebook-purchase-image.png" alt="Mastering Xcode 4" width="97" height="120" /></a>Well that&#8217;s that. The <a title="Xcode 4 book" href="http://xcodebook.com" target="_blank">Xcode 4 book</a> is finished and currently being printed (and prepared for digital sale in a number of formats as well). You can <a href="http://www.amazon.com/gp/product/0321767527?ie=UTF8&amp;tag=joshuanozzina-20&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=0321767527" target="_blank">preorder it now</a> if you like. See the <a href="http://xcodebook.com/2011/08/its-here-well-almost/" target="_blank">official announcement</a> for (un)specific dates.</p>
<p>Special thanks to the crew at <a href="http://www.peachpit.com" target="_blank">Peachpit</a> (Cliff, Myrna, Scout, Robyn, Kim, and the design team I didn&#8217;t get a chance to work with directly). Thanks to all my friends and colleagues for their support and to Matt for putting up with the whole thing. Thanks to Cyril and Colin for allowing me to use their work while writing the book. Finally, thanks to Duncan for getting me in touch with Cliff.</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/&amp;text=Mastering Xcode 4 Available for Preorder&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/&amp;t=Mastering Xcode 4 Available for Preorder">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/&amp;title=Mastering Xcode 4 Available for Preorder&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F08%2Fmastering-xcode-4-available%2F&name=Joshua+Nozzi&description=Mastering+Xcode+4+Available+for+Preorder" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/08/mastering-xcode-4-available/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Breaking News: Professional Services Cost Money</title>
		<link>http://joshua.nozzi.name/2011/08/breaking-news/</link>
		<comments>http://joshua.nozzi.name/2011/08/breaking-news/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 19:28:09 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Random Contact]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=973</guid>
		<description><![CDATA[Professional services cost money. Film at eleven.]]></description>
			<content:encoded><![CDATA[<p>Folks: Not to sound like an arrogant prick or anything, but it may surprise you to learn I write code <em>for a living</em>. It may further surprise you to learn those who write code <em>well</em> for a living expect to be paid for it. While I volunteer some time and code here and there, one-on-one help is called <em>consulting</em>. If you&#8217;re neither family nor a very close friend, <em>consulting</em> will cost you money. Often not an unsubstantial amount. Should you contact me online and ask me to provide one-on-one help, please do not be surprised when I respond with my rate and request partial or full payment in advance.</p>
<p>In summary: I&#8217;m a coding <em>whore</em>, not a coding <em>slut</em>, thank you very much.</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/08/breaking-news/&amp;text=Breaking News: Professional Services Cost Money&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/08/breaking-news/&amp;t=Breaking News: Professional Services Cost Money">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/08/breaking-news/&amp;title=Breaking News: Professional Services Cost Money&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F08%2Fbreaking-news%2F&name=Joshua+Nozzi&description=Breaking+News%3A+Professional+Services+Cost+Money" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/08/breaking-news/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/08/breaking-news/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/08/breaking-news/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/08/breaking-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Recessed List Effect</title>
		<link>http://joshua.nozzi.name/2011/07/the-recessed-list-effect/</link>
		<comments>http://joshua.nozzi.name/2011/07/the-recessed-list-effect/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 15:29:34 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Cocoa, Xcode]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=959</guid>
		<description><![CDATA[It&#8217;s been awhile since I&#8217;ve posted any new Cocoa stuff. Especially anything as widely loved as JLNDragEffectManager. Since I love all that positive attention and am sorely disappointed by the recent falloff of ego-sustaining limelight, I thought I&#8217;d solve yet another of the Cocoa world&#8217;s problems and give you a rather easy way of mimicking <a href='http://joshua.nozzi.name/2011/07/the-recessed-list-effect/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been awhile since I&#8217;ve posted any new Cocoa stuff. Especially anything as widely loved as <a title="Your Very Own Drag Show with JLNDragEffectManager" href="http://joshua.nozzi.name/2009/10/jlndrageffectmanager/">JLNDragEffectManager</a>. Since I love all that positive attention and am sorely disappointed by the recent falloff of ego-sustaining limelight, I thought I&#8217;d solve yet another of the Cocoa world&#8217;s problems and give you a rather easy way of mimicking the &#8220;recessed list effect&#8221; found in Dictionary.app. I was reminded of the effect by <a href="http://stackoverflow.com/questions/6789345/how-to-accomplish-this-splitter-effect-in-code" target="_blank">this StackOverflow post</a> today (thanks, Li Fumin, for reminding me I wanted to figure this out).</p>
<div class="wp-caption alignright" style="width: 398px"><a href="http://media.nozzi.name/recessedsourcelist/dictionary.jpg" rel="lightbox[959]" title="The Recessed Look in Dictionary.app"><img title="The Recessed Look in Dictionary.app" src="http://media.nozzi.name/recessedsourcelist/dictionary.jpg" alt="The Recessed Look in Dictionary.app" width="388" height="189" /></a><p class="wp-caption-text">The Recessed Look in Dictionary.app</p></div>
<p>The effect I&#8217;m talking about is shown to the right. When you search for a word and there are multiple results, you get a list on the left that looks as if it&#8217;s recessed. It&#8217;s no simple shadow edge because, to achieve the desired visual effect, the top and bottom have to fade out, forming a visual depression.</p>
<h3>How Does It Work?</h3>
<p>This lovely effect requires subclassing three views (as far as I could tell to get it to work correctly). A NSTableView subclass provides the basic shadow edge. An NSView subclass provides the same edge but a fade at the top and bottom. An NSSplitView (set to Thin Divider mode) subclass draws the divider with the magic slightly-lighter-than-default color and the same top and bottom fade.</p>
<p>The &#8220;backing&#8221; view (the NSView subclass) has to provide the fade because the table view&#8217;s top and bottom edge move around when scrolled, which would take the fade with it were it responsible for this. The table view is sized in the backing view to leave an 11-pixel gap at the top and bottom to let the backing view&#8217;s fade show through. The backing view stays put and also provides a repeat of the shadow effect to account for the iOS-like elastic scrolling that was added in Lion. Since table views are happiest when they draw a background, this was a good design compromise.</p>
<h3>It&#8217;s Not Perfect</h3>
<p>It could be better. It doesn&#8217;t <em>exactly</em> match Apple&#8217;s flavor as I&#8217;ve fudged some things and don&#8217;t have enough time to polish it up more. You&#8217;re more than welcome to <a href="https://github.com/jnozzi/Recessed-Source-List" target="_blank">fork it on Github</a>, make improvements, and send me a pull request.</p>
<h3>How Do We Use It?</h3>
<p>See <a title="Recessed Source List" href="http://joshua.nozzi.name/source/recessed-source-list/">the source page</a> for details. Long story short: copy the three view subclasses (six source files in all) into your project. Open the example app&#8217;s MainMenu.xib and copy the split view and its contents into your project (you&#8217;ll probably want to replace the web view with something sensible). That&#8217;s all there is to it.</p>
<h3>How&#8217;d You Get the Colors?</h3>
<p>I use and rely on <a href="http://iconfactory.com/software/xscope" target="_blank">xScope</a> (by Icon Factory) for such things. Well worth the money over the years.</p>
<h3>Where Do I Get It?</h3>
<p>Either <a title="Recessed Source List" href="http://joshua.nozzi.name/source/recessed-source-list/">the source page</a> on my site or from <a href="https://github.com/jnozzi/Recessed-Source-List" target="_blank">Github</a>. Liberal license (but I request attribution &#8230; you know &#8230; ego whoring and all). Enjoy!</p>
<p>&nbsp;</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/07/the-recessed-list-effect/&amp;text=The Recessed List Effect&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/07/the-recessed-list-effect/&amp;t=The Recessed List Effect">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/07/the-recessed-list-effect/&amp;title=The Recessed List Effect&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F07%2Fthe-recessed-list-effect%2F&name=Joshua+Nozzi&description=The+Recessed+List+Effect" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/07/the-recessed-list-effect/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/07/the-recessed-list-effect/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/07/the-recessed-list-effect/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/07/the-recessed-list-effect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bloodthirsty Red Cross Robots Want My Delicious Blood</title>
		<link>http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/</link>
		<comments>http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 18:16:22 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[American Red Cross]]></category>
		<category><![CDATA[Blood]]></category>
		<category><![CDATA[Robots]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=934</guid>
		<description><![CDATA[Bloodthirsty robots call, seeking my precious body fluids. I wrote them a heartfelt letter.]]></description>
			<content:encoded><![CDATA[<p>I recently &#8211; against my better judgement &#8211; re-opened an account with Vonage so I could have a business-only line. Now that I&#8217;m working from home, my cell-phone-as-my-only-phone lifestyle is no longer feasible. Minutes are gobbled up in countless teleconferences, etc. With the (not) new number came the previous owner&#8217;s problems and fan base. One such fan is the American Red Cross. Apparently the previous owner registered as a much-desired type O blood donor.</p>
<p>Yesterday I received a robo-dialer call from American Red Cross. Their robot expressed a craving for my tasty, tasty type O blood &#8211; a case of mistaken identity. It gave me several menu options but none of them were &#8220;leave me the hell alone.&#8221; I sighed heavily and gave up for the evening. This morning Matt mentioned a news article talking about a district judge who okays civil suits against robo-dialing. &#8220;Oh yeah!&#8221; I yelled, flashing from relaxing morning coffee mode to angry afternoon mode in an instant, then I ran to my computer to begin my crusade anew.</p>
<p>You see, being a non-profit organization, American Red Cross doesn&#8217;t have to obey the Do Not Call list. Fuckers. My only hope, the Internet claimed, was to contact them a million different ways and keep trying to be removed. Apparently that&#8217;s the hard part. Not only is it difficult to find any way to talk to a person who can actually help with this, but they really seem to be disinclined to give a shit.</p>
<p>Unless, of course, you inform them you have &#8220;undesirable blood.&#8221;</p>
<p>Random strangers in forums as well as people I know told me the quickest way to ensure the Red Cross wouldn&#8217;t touch your blood with a ten-foot blood-extraction device is to tell them you have some sort of disease or are a &#8220;man who has sex with men&#8221; (apparently &#8220;gay&#8221; isn&#8217;t politically correct in this particular context). Armed with this information, I sent them a letter, which I present below for your enjoyment.</p>
<blockquote><p>To Whom it May Concern:</p>
<p>I&#8217;m writing to ask you to remove my (newly-acquired) telephone number from your robo-dialer. The number is XXX-XXX-XXXX.</p>
<p>Trouble is, I don&#8217;t have the blood type your robot stated it so desperately craves. If I did, you wouldn&#8217;t want it anyway, as it&#8217;s riddled with disease from my crack-addled, homosexual, alcoholic, prostitute boy-toy with whom I share needles and dirty, dirty bareback butt-sex in public truck stops.</p>
<p>Also, while I love pricks &#8211; can&#8217;t get enough of the devilish things, in fact &#8211; I&#8217;m outright terrified of needles. Well, needles without illegal drugs in them, at any rate.</p>
<p>On the other hand, if you have a handsome, boyish vampire (the modern, caring kind they show on TV these days), I might reconsider. I wouldn&#8217;t mind that particular form of blood extraction and, like a wistful teenage girl, I&#8217;m CERTAIN I can change him &#8230;</p>
<p>Sincerely,</p>
<p>- Joshua Nozzi</p></blockquote>
<p>This isn&#8217;t to suggest I dislike the American Red Cross. My most recent donation was intended for the Japan relief fund. I just don&#8217;t like people (or bloodthirsty robots) calling me at random, asking for my body fluids.</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/&amp;text=Bloodthirsty Red Cross Robots Want My Delicious Blood&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/&amp;t=Bloodthirsty Red Cross Robots Want My Delicious Blood">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/&amp;title=Bloodthirsty Red Cross Robots Want My Delicious Blood&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F07%2Fbloodthirsty-red-cross-robots-want-my-delicious-blood%2F&name=Joshua+Nozzi&description=Bloodthirsty+Red+Cross+Robots+Want+My+Delicious+Blood" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/07/bloodthirsty-red-cross-robots-want-my-delicious-blood/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Dropbox &#8211; Here Be Monsters</title>
		<link>http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/</link>
		<comments>http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 15:17:17 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Tech Industry]]></category>
		<category><![CDATA[Controversy]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Terms of Service]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=922</guid>
		<description><![CDATA[This latest sin and all it reveals has caused me to abandon Dropbox entirely. I can no longer trust them.]]></description>
			<content:encoded><![CDATA[<p>Popular file-syncing service <a href="http://dropbox.com" target="_blank">Dropbox</a> has been in hot water lately. It was bad enough to find out awhile back their <a href="http://www.wired.com/threatlevel/2011/05/dropbox-ftc/" target="_blank">misleading phrasing</a> wasn&#8217;t true and that files were indeed accessible to its employees. This has resulted in <a href="http://www.wired.com/images_blogs/threatlevel/2011/05/dropbox-ftc-complaint-final.pdf" target="_blank">a formal complaint</a> to the Federal Trade Commission. Now apparently that same design choice &#8211; the one about which they claim they didn&#8217;t mislead customers &#8211; made <a href="http://www.wired.com/threatlevel/2011/06/dropbox/" target="_blank">a new security snafu</a> possible.</p>
<p>Apparently, for a four-hour window this past Sunday, any user account could be accessed using any password. Because a user&#8217;s files are encrypted on Dropbox&#8217;s servers (not on your computers or mobile devices), this means a security screw-up like this can give unimpeded access to any user&#8217;s files.</p>
<p>Conversely, had they chosen to encrypt files client-side, this authentication bug would not have granted access to the files because the password / decryption key would not match and the files would come back scrambled if they came back at all.</p>
<p>Twice, Dropbox has demonstrated poor security practice. Some would argue they also demonstrated dishonesty by claiming their employees couldn&#8217;t access the files (their wording suggested &#8220;unable&#8221; rather than &#8220;not allowed&#8221;). Now a new problem has been demonstrated: they have poor or nonexistent testing practices when rolling out updates to their servers. Had they at least automated testing of their authentication system, they would&#8217;ve discovered the problem before ever having deployed the changes to their public-facing servers. As a user, I have yet to learn of a single one of these incidents from Dropbox themselves.</p>
<p>This latest sin and all it reveals has caused me to abandon Dropbox entirely. I can no longer trust them. <a href="http://www.wired.com/threatlevel/2011/06/dropbox/" target="_blank">Wired suggested</a> two alternative services: <a href="http://www.wuala.com/" target="_blank">Wuala</a> and <a href="https://spideroak.com/" target="_blank" class="broken_link">SpiderOak</a>. Both offer client-side encryption and Mac and iOS clients (important to me). <del>I&#8217;m currently leaning toward Wuala</del> (see update below) but have learned to do my homework first. I won&#8217;t be signing up for another Dropbox-like provider, free or not.</p>
<p>It&#8217;s that last sentence that could be used as a retort: &#8220;Relax, it&#8217;s a free service.&#8221; Granted if you need 2 GB or less, the service is completely free. Nice of them but not nice enough to allow them to &#8211; in my opinion &#8211; mislead me about their security and for me to put up with repeated ham-headed security offenses. Those who&#8217;ve known me awhile (or at least followed me on Twitter) likely remember I was hesitant to use something like Dropbox for awhile at all. I begrudgingly tried it and changed my opinion. I found a few good uses for it. Not good enough to make me want to integrate my own applications with it (a popular request a year or two ago), but good enough to use on its own.</p>
<p>I&#8217;m of the opinion that Apple&#8217;s upcoming iCloud service will offer a seamless file syncing experience (hopefully more &#8220;seamless&#8221; than iDisk). I also believe they&#8217;ll worry over security as well &#8211; they do have a reasonable track record. As I use all Apple devices, I should have no trouble getting to the stuff I need &#8230; with style. For this reason, I&#8217;ll be using Wuala (or SpiderOak) as a stopgap until iCloud is available.</p>
<p>So long, Dropbox, and thanks for all the fish.</p>
<p><strong>Update</strong> &#8211; Err, never mind about Wuala. It&#8217;s Java-based (I&#8217;m a &#8220;native app purist&#8221;) and decidedly not user friendly. I can&#8217;t figure out whether it offers automatic syncing at all and it appears to be still in beta. Further, its completely unexplained &#8220;file system integration&#8221; setting in preferences is enabled but its &#8220;check&#8221; says it can&#8217;t &#8220;Access Root  Directory&#8221; to offer this feature. <em>No fucking thanks.</em></p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/&amp;text=Dropbox &#8211; Here Be Monsters&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/&amp;t=Dropbox &#8211; Here Be Monsters">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/&amp;title=Dropbox &#8211; Here Be Monsters&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F06%2Fdropbox-here-be-monsters%2F&name=Joshua+Nozzi&description=Dropbox+%26%238211%3B+Here+Be+Monsters" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/06/dropbox-here-be-monsters/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Browser Capability Detection &#8211; You&#8217;re Doing It Wrong</title>
		<link>http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/</link>
		<comments>http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/#comments</comments>
		<pubDate>Mon, 23 May 2011 15:14:51 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Tech Industry]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=913</guid>
		<description><![CDATA[Web developers (developers, developers): I need you to listen to me. Are you listening? Good. Stop trying to be smart about detecting browser capabilities. You almost always get this wrong. Usually it&#8217;s because you&#8217;re used to a single platform and only test on others and so you&#8217;re not always up to speed on how the <a href='http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Web developers (developers, developers): I need you to listen to me. Are you listening? Good. <strong><em>Stop trying to be smart about detecting browser capabilities.</em></strong> You almost always get this wrong. Usually it&#8217;s because you&#8217;re used to a single platform and only <em>test</em> on others and so you&#8217;re not always up to speed on how the various browsers of the world work.</p>
<p>There are two main scenarios in which you frequently fail <em>hard</em>, resulting in my assumption that you are a semi-professional entry-level developer <em>at best</em>. This makes me hate you. Often, it makes me fire off an angry rant to your contact address, chiding your lack of experience and your complete destruction of my faith in your site&#8217;s ability to be useful to me, even if I could find my way around your stupidity. Let&#8217;s explore these scenarios together that you might learn from them.</p>
<h3>Mobile Versions &#8211; Whether You Want Them or Not</h3>
<p>First, you assume based on my using &#8220;Mobile Safari&#8221; that I need to be railroaded to your &#8220;mobile version.&#8221; Many of you don&#8217;t even ask &#8211; you just shunt me to mobile and maybe, if I&#8217;m lucky, you give me the opportunity to view the &#8220;full site.&#8221; How generous. Some of <em>you</em> douche bags then fail to persist this choice so I have to go through the whole thing again the <em>next</em> time I visit (hint: there likely won&#8217;t <em>be</em> a next time). Then there are the rest of you. The assholes. The ones who classify visitors as &#8220;normal&#8221; or &#8220;mobile&#8221; and shove the &#8220;mobiles&#8221; bodily toward the &#8220;mobile version&#8221; without a choice.</p>
<p>I hate you. I hate you <em>so much</em>.</p>
<p>That might be alright for other mobile browsers (because they truly do suck), but not for my iOS device. I paid good money for great standards-compliant mobile browsing capabilities. Why the hell would you take that away from me for the simple crime of visiting your web site? Unless your site requires Flash (and it better fucking <em>not</em>), or mouse-overs (which is not compatible with our modern, growing, touch-based world), you have no reason whatsoever to force an iOS device to a &#8220;mobile version.&#8221; If I wanted some shitty, Y2K telephone web browsing experience, I&#8217;d shell out $500/month for 1.5 MB of download capacity for a Motorola RazR and download a low-fidelity Who Let the Dogs Out ring tone for $5.00.</p>
<p>I digress. If you <em>must</em> provide a mobile version in 2011, ask me up front if I want it and <em>remember what I told you</em>. A great mobile browsing experience on an iOS device has been available to users since 2007. You&#8217;ve had plenty of time to learn this so <em>knock it the hell off</em>.</p>
<h3>Get a Real Browser</h3>
<p>The other scenario involves &#8220;clever&#8221; JavaScript that decides either my whole web browser is &#8220;unsupported&#8221; (and refuses to let me in) or that I don&#8217;t have some plugin (that I often do) and doesn&#8217;t even <em>try</em> to do the right thing. This is just as idiotic as the &#8220;mobile version&#8221; scenario. These so-called web developers decide Safari (as a common example), which is standards-compliant and scores <em>extremely high</em> in this regard, just doesn&#8217;t work right and they won&#8217;t let you in if you&#8217;re using it. So many online banks did this until very recently (now only a few do it) for reasons completely unknown. Some of you assholes even go so far as to display a cheeky &#8220;get a real browser, LOLZ&#8221; message to users.</p>
<p>If you do this, what you&#8217;re really telling me is you&#8217;re completely incompetent as a web developer and I should be very wary of your site anyway because you clearly don&#8217;t know what you&#8217;re doing. If your site &#8220;doesn&#8217;t support&#8221; a modern, standards-compliant browser it&#8217;s <em>your</em> fault, not mine. It&#8217;s a <strong>bug</strong> and a goddamn big one. What you&#8217;re saying is &#8220;I&#8217;m a fuck-up, a miserable failure, and my site probably sucks even on my own browser of choice.&#8221;  You&#8217;re showing the world that you (and the company that hired you) are unprofessional, condescending jackasses who don&#8217;t deserve my business or readership because you&#8217;re either too lazy or too uninformed to build a proper web site. You tell me to get a real browser and I imagine you&#8217;re a high school aged relative of some clueless business owner who &#8220;wanted a web.&#8221; This isn&#8217;t the 1990s, folks. Hasn&#8217;t been for over a decade. Just having a web site &#8211; even a shitty one &#8211; won&#8217;t make you rich. These days it&#8217;ll just make you look like a moron.</p>
<p>So the real message isn&#8217;t &#8220;get a real browser&#8221; but rather &#8220;build a real goddamn web site.&#8221; It doesn&#8217;t <em>have</em> to be fancy. It just has to look nice and <em>work</em> no matter who visits it.</p>
<p>The other side of this is specific capability detection. You decide to employ your own &#8220;do they have Flash&#8221; routine. Ignoring the folly of reinventing the wheel many, many times (and doing it poorly almost every single time), it&#8217;s bad enough many of you decide to restrict capabilities rather than trying anyway and letting the user know &#8220;this may not work.&#8221;</p>
<p>These types of warnings should be informational. You should <em>never <strong>ever</strong><span style="font-style: normal;"> restrict things on purpose based on your &#8220;clever&#8221; little JavaScript hack. Your goal should be to </span>inform</em> the user something seems like it may not work but <em>try it anyway</em>. To simply avoid trying to load a plugin because your detection mechanism failed to detect it will almost always end up mistakenly restricting a user. <em>Real</em> web developers&#8217; sites degrade gracefully. They don&#8217;t fall flat on their faces, pissing and shitting themselves because their capability detection code (which often is never updated as browsers grow) was mistaken. It&#8217;s the same mindset as &#8220;Oh god, a big black man! He&#8217;s going to rob us!&#8221; It&#8217;s prejudice born of ignorance. Plain and simple.</p>
<p>If you do this you&#8217;re an inexperienced developer (and possibly racist). You may be an excellent <em>graphic designer</em> but you&#8217;re a shitty <em>developer</em>. Your goal should be standards compliance and graceful degradation (which is part of standards compliance but bad developers don&#8217;t seem to understand this), not trying to second-guess every possible scenario for every version of every browser. If you&#8217;re doing the latter, <em>you&#8217;re doing it wrong and you&#8217;re pissing me off</em>.</p>
<h3>Rant Over</h3>
<p>Okay, now that I&#8217;ve gotten that off my chest, here&#8217;s a message of hope: companies are beginning to realize how foolish it is to cut off entire browsers and platforms, and that there&#8217;s just no excuse for it these days. They see other companies&#8217; sites &#8211; full, rich web applications &#8211; working just fine on all modern browsers. Hopefully this is sufficient pressure to force old-school (and newbie) developers to learn the modern state of the craft properly &#8211; to bring them out of the protective shell of their browser of choice and realize they <em>must</em> support <em>all</em> browsers. Cutting off a whole browser because [ pretty but useless effect ] isn&#8217;t supported is idiotic and detrimental to the goal of a web site: to draw in and retain repeat visitors.</p>
<p>Don&#8217;t be a douche bag web developer. You&#8217;ve got no excuse for it.</p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/&amp;text=Browser Capability Detection &#8211; You&#8217;re Doing It Wrong&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/&amp;t=Browser Capability Detection &#8211; You&#8217;re Doing It Wrong">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/&amp;title=Browser Capability Detection &#8211; You&#8217;re Doing It Wrong&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F05%2Fbrowser-capability-detection-wrong%2F&name=Joshua+Nozzi&description=Browser+Capability+Detection+%26%238211%3B+You%26%238217%3Bre+Doing+It+Wrong" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/05/browser-capability-detection-wrong/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cycliss</title>
		<link>http://joshua.nozzi.name/2011/05/cycliss/</link>
		<comments>http://joshua.nozzi.name/2011/05/cycliss/#comments</comments>
		<pubDate>Sat, 07 May 2011 23:58:22 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Creativity]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Reason]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=895</guid>
		<description><![CDATA[Back in 2003, I really became enamored with music production software. I eventually discovered and bought Reason. It didn&#8217;t take long for me to start cranking out some different things that grew organically as I discovered new Reason tricks. I&#8217;m not a fan of sampled loop stuff (though I did make a few of those <a href='http://joshua.nozzi.name/2011/05/cycliss/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Back in 2003, I really became enamored with music production software. I eventually discovered and bought <a href="http://www.propellerheads.se/products/reason/" target="_blank">Reason</a>. It didn&#8217;t take long for me to start cranking out some different things that grew organically as I discovered new Reason tricks. I&#8217;m not a fan of sampled loop stuff (though I did make a few of those with lesser software) but more classical instruments have always interested me.</p>
<p>One of my pet projects started growing and growing. It was a soft, melodic orchestral thing with a lot of emotion. Each time I&#8217;d write a few new bars, I&#8217;d play it back and know it had potential. Then life intervened. I touched it a few times since then but never in any depth. During my two-week vacation before starting my new job, I decided it was time to dust it off, polish it up, and put it out there for the world. I call it by its first name: Cycliss.</p>
<p>I <em>love</em> this song. I hope you like it too.</p>
<p><em>(Headphones recommended.)</em></p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/05/cycliss/&amp;text=Cycliss&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/05/cycliss/&amp;t=Cycliss">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/05/cycliss/&amp;title=Cycliss&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F05%2Fcycliss%2F&name=Joshua+Nozzi&description=Cycliss" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/05/cycliss/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/05/cycliss/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/05/cycliss/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/05/cycliss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monkey Tail Beards for Gentlemen of Exquisite Taste</title>
		<link>http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/</link>
		<comments>http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 14:10:01 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Rants, Jokes, Opinions]]></category>
		<category><![CDATA[Beard]]></category>
		<category><![CDATA[Monkey Tail]]></category>

		<guid isPermaLink="false">http://joshua.nozzi.name/?p=883</guid>
		<description><![CDATA[I&#8217;m speechless. This is apparently a real trend. It&#8217;s as if someone said &#8220;hey, let&#8217;s take something a ridiculous as the green-dyed mohawk and give it a twist of gentlemanliness.&#8221; &#160; No, that is not me in the photo. TweetFacebookLinkedInTumblrStumbleDiggDelicious]]></description>
			<content:encoded><![CDATA[<div id="attachment_884" class="wp-caption alignright" style="width: 160px"><a href="http://joshua.nozzi.name/wp-content/uploads/2011/04/monkeytail.jpg" rel="lightbox[883]" title="The Monkey Tail Beard"><img class="size-thumbnail wp-image-884" title="The Monkey Tail Beard" src="http://joshua.nozzi.name/wp-content/uploads/2011/04/monkeytail-150x150.jpg" alt="The Monkey Tail Beard" width="150" height="150" /></a><p class="wp-caption-text">The Monkey Tail Beard (not mine)</p></div>
<p>I&#8217;m speechless. This is apparently a real trend. It&#8217;s as if someone said &#8220;hey, let&#8217;s take something a ridiculous as the green-dyed mohawk and give it a twist of gentlemanliness.&#8221;</p>
<p>&nbsp;</p>
<p><strong><em>No, that is not me in the photo.</em></strong></p>
<div id="simple_socialmedia"><ul class="ssm_row"><li class="twitter"><a target="_blank" href="http://twitter.com/share?url=http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/&amp;text=Monkey Tail Beards for Gentlemen of Exquisite Taste&amp;via=jnozzi&amp;related=xcodebook">Tweet</a></li><li class="facebook"><a target="_blank" title="Share on Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/&amp;t=Monkey Tail Beards for Gentlemen of Exquisite Taste">Facebook</a></li><li class="linkedin"><a target="_blank" title="Share on LinkedIn" rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/&amp;title=Monkey Tail Beards for Gentlemen of Exquisite Taste&amp;source=Joshua Nozzi">LinkedIn</a></li><li class="tumblr"><a target="_blank" title="Share on Tumblr" rel="nofollow" href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fjoshua.nozzi.name%2F2011%2F04%2Fmonkey-tail-beards-for-gentlemen-of-exquisite-taste%2F&name=Joshua+Nozzi&description=Monkey+Tail+Beards+for+Gentlemen+of+Exquisite+Taste" title="Share on Tumblr">Tumblr</a></li><li class="stumble"><a target="_blank" title="Share on StumbleUpon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/">Stumble</a></li><li class="digg"><a target="_blank" title="Share on Digg" rel="nofollow" href="http://www.digg.com/submit?phase=2&amp;url=http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/">Digg</a></li><li class="delicious"><a target="_blank" title="Share on Delicious" rel="nofollow" href="http://del.icio.us/post?url=http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/&amp;title=INSERT_TITLE">Delicious</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://joshua.nozzi.name/2011/04/monkey-tail-beards-for-gentlemen-of-exquisite-taste/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: joshua.nozzi.name @ 2012-01-10 19:26:58 by W3 Total Cache -->
