<?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>toxicsoftware.com &#187; Default</title>
	<atom:link href="http://toxicsoftware.com/tag/default/feed/" rel="self" type="application/rss+xml" />
	<link>http://toxicsoftware.com</link>
	<description>RANDOMIZE USR 0</description>
	<lastBuildDate>Thu, 17 Dec 2009 15:12:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Special Kind Of Idiot</title>
		<link>http://toxicsoftware.com/a-special-kind-of-idiot/</link>
		<comments>http://toxicsoftware.com/a-special-kind-of-idiot/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 16:03:51 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[batshitinsane]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/a-special-kind-of-idiot/</guid>
		<description><![CDATA[This Thanksgiving I truly have something to be thankful for. It isn&#8217;t my Wife, my home, my family, my friends, my health or my business. Although I am thankful for all those things. What I&#8217;m most thankful for this Thanksgiving is: I got me a stalker!!!

Yep. I&#8217;ve got my very own nutjob on the internet [...]]]></description>
			<content:encoded><![CDATA[<p>This Thanksgiving I truly have something to be thankful for. It isn&#8217;t my Wife, my home, my family, my friends, my health or my business. Although I am thankful for all those things. What I&#8217;m most thankful for this Thanksgiving is: I got me a stalker!!!</p>

<p>Yep. I&#8217;ve got my very own nutjob on the internet who has decided he is going to go out of his way to fling poo at me! Seems like I did something to offend the, dare I say <em>infamous</em>, Rick Downes.</p>

<p>OK. I must admit when they were handing out the stalkers I wasn&#8217;t at the front of the queue. No Glenn Close (when she was still pretty darn hot) style femme fatales are after me alas. Instead I get some bitter, semi-retired Swedish geek who has oddly decided that I needed to be brought to task, for whatever it is I did to get his goat.</p>

<p>So who is this Rick Downes character? From his <a href="http://rixstep.com/1/0/20060307,01.shtml">own site</a>: <i>&#8220;Rick Downes is an internationally acclaimed and respected computer scientist, long specialising in taking care of the &#8216;common man&#8217; and in defending the rights of the common man against corporate and political abuses of power.&#8221;</i> Go on, google him now, it should be easy to find some positive information on this person for who <i>&#8220;<strong>hundreds of thousands</strong> of individuals worldwide know and well respect&#8221;</i>.</p>

<p>Rick, who has a extraordinary fondness for using &copy;, &reg; and &trade; symbols for ironic emphasis, apparently runs a software company in Cyprus where he likes to release <a href="http://perversiontracker.com/archives/000186.html">poetry inspiring Mac OS X software</a> (<em>if you only follow one link from this blog post follow that one</em>), has been <a href="http://www.fairtrialsabroad.org/?m=View&amp;action=DocumentContent&amp;L1=5&amp;L2=19&amp;id=441&amp;secId=5&amp;PHPSESSID=38da2d2af746ef438b8ecf6e8c587013">arrested</a> for <a href="http://www.theregister.co.uk/2005/11/02/rixstep_spam_case_probe/">commercial spamming</a> and <a href="http://rixstep.com/1/0/20060307,01.shtml">drug trafficking</a> and has absolutely nothing positive to say about <a href="http://rixstep.com/4/2/marsedit,00.shtml">other</a> <a href="http://rixstep.com/4/2/bbe,00.shtml">people&#8217;s</a> Mac OS X <a href="http://rixstep.com/4/2/podworks,00.shtml">software</a>.</p>

<p>Apparently I am in good company. Rick isn&#8217;t frugal with his diatribes against, well apparently lots of things. Rick dislikes a <em>whole</em> lot of things. And people. And software. And TIFF files. Rick <em>especially</em> dislikes TIFF files. Oh and bloat. He <em>really</em> doesn&#8217;t like bloat.</p>

<p>And what does Rick say about things he doesn&#8217;t like? Why, you get your very own page on <a href="http://rixstep.com/">rixstep.com</a> where Rick will lay into you about how un-optimised your TIFF files are. He might even accuse of you of being a Texan (yes, really he believes someone who spells optimise with an S is Texan)! Or maybe he&#8217;ll call you a tool. Or try to disparage the work you&#8217;re doing helping to teach technology to children.</p>

<p>Rick seems to think he can use the internet and his professional web-site to attack whatever it is he doesn&#8217;t like. Generally he limits his attacks to software but occasionally he decides individuals are fair game. Unfortunately for Rick these attacks have done nothing more than turn him into a <a href="http://twitter.com/rentzsch/statuses/384831722">laughing</a> <a href="http://twitter.com/buzz/statuses/434871892">stock</a> amongst the developer community.</p>

<p>So what did I do to deserve the wrath of such a vengeful spirit? Well I participated in the comment thread of a blog post about software optimisation (yes, <a href="http://lipidity.com/apple/ctgradient-code-bloat/"><em>that</em> blog post</a>). That&#8217;s all it takes to unleash the bile and slobbering attacks. I may have also referred to Rick as a <a href="http://lipidity.com/apple/ctgradient-code-bloat/comment-page-3/#comment-39457"><i>&#8220;911 conspiracy theory-level fucking nutter.&#8221;</i></a> My bad. But then in my defence I was linking to this <a href="http://www.rixstep.com/2/1/20071121,00.shtml">posting of Rick&#8217;s</a> where he seems to go slightly off the rails about some conspiracy of the imaginary elite Mac developers, the so called <i>&#8220;<a href="http://www.rixstep.com/2/1/20071121,00.shtml">Landed Gentry of Mac Development&trade;</a>&#8220;</i> (note that the United States Patent and Trademark Office <a href="http://tess2.uspto.gov/bin/showfield?f=toc&amp;state=8sake9.1.1&amp;p_search=searchss&amp;p_L=50&amp;BackReference=&amp;p_plural=yes&amp;p_s_PARA1=&amp;p_tagrepl%7E%3A=PARA1%24LD&amp;expr=PARA1+AND+PARA2&amp;p_s_PARA2=Landed+Gentry+of+Mac+Development&amp;p_tagrepl%7E%3A=PARA2%24COMB&amp;p_op_ALL=AND&amp;a_default=search&amp;a_search=Submit+Query&amp;a_search=Submit+Query">doesn&#8217;t seem to have that trademark on file yet</a>, I can only assume the application is in the mail).</p>

<p>Rick started on me gently, merely (and quite randomly I might point out) mentioning me in his totally unbiased review of <a href="http://rixstep.com/4/2/marsedit,00.shtml">MarsEdit</a>, calling me an <i>&#8220;insufferable blogger&#8221;</i>, amongst other things. I emailed Rick at this point to see if we could resolve this seemingly bizarre issue. But the chances are that my e-mail got deleted by his rather <a href="http://rixstep.com/0/contact.shtml">paranoid email filters</a> (for a company that claims to pride itself on serving the customer I find it odd that e-mail from such large providers as gmail and mac.com are summarily discarded).</p>

<p>But then the big guns came out. Rick devoted a <a href="http://rixstep.com/1/1/20071121,01.shtml">whole blog post</a> to just me, or rather to <i>&#8220;Johnathan Right&#8221;</i> (a misspelling I can only assume Rick is intentionally making to be just that <em>extra</em> bit juvenile), linking to it from his <a href="http://rixstep.com/1/">Industry Watch</a> page (yes really, slagging off a fellow developer is considered <i>&#8220;Industry Watch&#8221;</i>).</p>

<p>In the blog post Rick posts select quotes from a what was believed to be private conversation between myself and a 3rd party. Not quite sure what this has to do with, well anything really, but when someone takes the time and energy to write a whole blog post trying to character assassinate someone, rationality isn&#8217;t a priority. For some reason Rick seems to think a comparison between his qualifications and mine are in order. Bizarre! Batshit insane bizarre? Well go read the blog post. You be the judge. And of course Rick dredges up two applications that have long since been abandoned. Rick is nothing if not swift. By the way, Rick, have you ever considered abandoning some of your apps? Funny Haiku&#8217;s aside, some of your apps could really do with being taken out back and put out of their misery.</p>

<p>The funniest quote of the whole bizarre episode is <i>&#8220;Ah Texas boy. We can relax. Texas has produced some ace programmers over the years. Like George Walker Bush.&#8221;</i> Ignoring the half-arsed attempt at a Bush joke, Rick obviously spent 2 minutes searching my blog trying to find more mud to sling. And the best he could come up with is that I&#8217;m a Texan. Which of course, <a href="http://en.wikipedia.org/wiki/Portsmouth%2C_England">just happens not to be where I&#8217;m from at all.</a></p>

<p>I thought the Mac developer community had some oddballs in it before. But Rick totally takes the cake. A Mac software publisher whose catalog is so awful that there exists Haiku extolling their awfulness. A blogger who takes great pride in picking apart apps and slurring the developers of said apps with insults and ad-hominem attacks. Encouraging script-kiddies to deface websites. And let&#8217;s not forget the spamming and drug trafficking arrests.</p>

<p>So while I&#8217;m disappointed that my stalker isn&#8217;t a leggy blonde unafraid to do cruel things to bunnies, I must admit that as nutjobs go I think I&#8217;ve attracted one of <a href="http://en.wikipedia.org/wiki/Timecube">timecubesque</a> magnitude.</p>

<p>Of course I&#8217;ve committed the the biggest blunder on the internet: <i>&#8220;Do not feed the trolls!&#8221;</i>. Guilty I&#8217;m afraid. But maybe someone will hit this page while googling for Rick and realise what kind of person he is.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/a-special-kind-of-idiot/feed/</wfw:commentRss>
		<slash:comments>58</slash:comments>
		</item>
		<item>
		<title>What&#8217;s in a name?</title>
		<link>http://toxicsoftware.com/whats-in-a-name/</link>
		<comments>http://toxicsoftware.com/whats-in-a-name/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 16:03:14 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/whats-in-a-name/</guid>
		<description><![CDATA[You&#8217;d think that a rather uncommon last name like &#8220;Wight&#8221; would be a relatively easy name for others to spell correctly. It is uncommon enough that I&#8217;ve never met any other Wights outside of &#8220;my family&#8220;. And yet people seem to have trouble with it. People seem to think that it should be spelled more [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;d think that a rather uncommon last name like &#8220;<a href="http://en.wikipedia.org/wiki/Wight">Wight</a>&#8221; would be a relatively easy name for others to spell correctly. It is uncommon enough that I&#8217;ve never met any other Wights outside of &#8220;<a href="http://en.wikipedia.org/wiki/James_Herriot">my family</a>&#8220;. And yet people seem to have trouble with it. People seem to think that it should be spelled more conventionally as &#8220;White&#8221;, or maybe with an extra &#8220;R&#8221; as &#8220;Wright&#8221;, or they wrongly spell it &#8220;Right&#8221;.</p>

<p>As anyone with a rather uncommon name can probably attest to, you just have to get used to people spelling or pronouncing your name incorrectly. Of course you can do your best to correct mistakes; back home I used to always say &#8220;Like the <a href="http://en.wikipedia.org/wiki/Isle_of_wight">Isle of Wight</a>&#8221; to help prevent error, but here in the USA that isn&#8217;t really so useful. My wife still gets annoyed at people spelling her last name incorrectly, but I&#8217;ve long gotten past that. Most people are happy to fix their errors when corrected and rarely make the same mistake more than once.</p>

<p>And of course there is occasional humour in someone intentionally misspelling or mispronouncing your name. Being referred to as &#8220;Jonathan <a href="http://en.wikipedia.org/wiki/Widget_%28beer%29">Widget</a>&#8221; never gets old. No really, it never gets old. Honest.</p>

<p>And still there are a plethora of alternative spellings for Jonathan too (all of them inferior of course) with &#8220;Jonathon&#8221; and &#8220;Johnathan&#8221; being perhaps the most common alternatives. But of course you pick your battles.</p>

<p>You&#8217;d think on the internet these mistakes would be less common. You certainly can&#8217;t blame these mistakes on mishearing the name. Generally the name is there, in ASCII form for you to see (or copy &amp; paste), clear as day. But of course mistakes happen. On more than one occasion I have been confused online with Jonathan Wright, apparently an AI programmer at <a href="http://www.idsoftware.com/business/team/">id Software</a>. I would to think that Jonathan Wright has been mistaken for me in return. During a recent interview about <a href="http://ironcoder.org/">Ironcoder</a> I was quoted as &#8220;Jason Wright&#8221;, go figure.</p>

<p>It would take a special kind of Internet idiot to misspell a name more than say, a dozen times&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/whats-in-a-name/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>R.I.P Toxic Progress Indicator</title>
		<link>http://toxicsoftware.com/rip_toxic_progress_indicator/</link>
		<comments>http://toxicsoftware.com/rip_toxic_progress_indicator/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 13:17:26 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[toxic progress indicator]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/rip_toxic_progress_indicator/</guid>
		<description><![CDATA[Thanks to Matt Gemmell for pointing out that Apple has finally provided a pie chart style NSProgressIndicator for the circular/determinate modes. This style is new to Leopard. This means my Toxic Progress Indicator class can be retired, at least for 10.5+ only applications. Leopard has really helped to retire a lot of my code (for [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://mattgemmell.com/2007/10/28/get-rid-of-your-code-with-leopard">Matt Gemmell</a> for pointing out that Apple has finally provided a pie chart style NSProgressIndicator for the circular/determinate modes. This style is new to Leopard. This means my <a href="http://toxicsoftware.com/toxic_progress_indicator/">Toxic Progress Indicator</a> class can be retired, at least for 10.5+ only applications. Leopard has really helped to retire a lot of my code (for example my QuickTime Sequence Grabber code can probably be retired too) and I expect this trend to continue.</p>

<p>Toxic Progress Indicator should still be used on apps that need to run on 10.4, but I wont be supporting the class any more (not that it is really needed any support&#8230;)</p>

<div style="text-align:center;"><img src="http://toxicsoftware.com/wordpress//uploads/cocoapiechart.png" alt="CocoaPieChart.png" border="0" width="429" height="407" /></div>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/rip_toxic_progress_indicator/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ironcoder NEEDS You!</title>
		<link>http://toxicsoftware.com/ironcoder-needs-you/</link>
		<comments>http://toxicsoftware.com/ironcoder-needs-you/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 20:51:27 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[Ironcoder]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/ironcoder-needs-you/</guid>
		<description><![CDATA[





Ask not what Ironcoder can do for you&#8230;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://ironcoder.org/blog/2007/10/16/in-the-grim-future-there-is-only-ironcoder/"></p>

<div style="text-align:center;"><img src="http://toxicsoftware.com/wordpress//uploads/needs-you.jpg" alt="needs you.jpg" border="0" width="400" height="547" /></div>

<p></a></p>

<p>Ask not what Ironcoder can do for you&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/ironcoder-needs-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;Discrete&#8217; NSLevelIndicatorCell too slow</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/</link>
		<comments>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comments</comments>
		<pubDate>Sat, 24 Jun 2006 16:30:44 +0000</pubDate>
		<dc:creator>schwa</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[NSLevelIndicatorCell]]></category>
		<category><![CDATA[Shark]]></category>
		<category><![CDATA[Source Code]]></category>

		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/</guid>
		<description><![CDATA[I recently needed to embed the &#8216;Discrete&#8217; variant of the NSLevelIndicatorCell into an NSTableView. The discrete cell looks like this:

 Unfortunately adding the cell caused drawing of the table&#8217;s window to slow to crawl. The spinning beachball of death would often appear when I was merely resizing the window. After some quick experimented I narrowed [...]]]></description>
			<content:encoded><![CDATA[<p>I recently needed to embed the &#8216;Discrete&#8217; variant of the <a href="http://www.devworld.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSLevelIndicatorCell_Class/Reference/Reference.html">NSLevelIndicatorCell</a> into an NSTableView. The discrete cell looks like this:</p>

<p><img src="http://toxicsoftware.com/wordpress//uploads//Discrete.png" alt="Discrete.png" /> Unfortunately adding the cell caused drawing of the table&#8217;s window to slow to crawl. The spinning beachball of death would often appear when I was merely resizing the window. After some quick experimented I narrowed it down to something within the &#8216;Discrete&#8217; variant of the NSLevelIndicatorCell, the other variants had no such performance problems.</p>

<p>It didn&#8217;t take an expert in <a href="http://developer.apple.com/tools/sharkoptimize.html">Shark</a> to realise what was going on:</p>

<p><img src="http://toxicsoftware.com/wordpress//uploads//Shark.png" alt="" /> It looked like NSLevelIndicatorCell was perform an expensive gaussian blur per cell, possibly even for each discrete block within each cell. For a single NSLevelIndicatorCell that shouldn&#8217;t be a real problem, but for a whole table column full of them it could create major performance problems.</p>

<p>Some quick google searches showed that people had complained about poor NSLevelIndicatorCell performance before but failed to find a solution.</p>

<p>Switching to another variant of NSLevelIndicatorCell wasn&#8217;t an option, the &#8216;Discrete&#8217; variant was just too sexy. So the obvious solution was to create a subclass of NSLevelIndicatorCell that posed as the real thing, but cached the drawing code of its parent class into NSImages. So I present to the the world the imaginatively titled <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Misc/CachingLevelIndicator/">CCachingLevelIndicatorCell</a>.</p>

<p>CCachingLevelIndicatorCell is designed to pose as NSLevelIndicatorCell but shouldn&#8217;t require any other configuration. The class will only cache images for the &#8216;Discrete&#8217; variant and will use a dictionary of NSImage objects to cache the drawing (one image per discrete value the cell can display). If any other attribute of the cell is changed the class will discard the cache and attempt to recache the drawing at the next opportunity.</p>

<p>Just so you can compare the differences in speed I&#8217;ve created two stand-alone test applications so you can compare the speed without CCachingLevelIndicatorCell and with it posing as NSLevelIndicatorCell. The binaries are checked into my <a href="http://toxic-public.googlecode.com/svn/tags/BlogTag_20070927_729/Misc/CachingLevelIndicator//Output/">public subversion</a>.</p>

<p>Radar bug: <a href="rdar://problem/4601201">rdar://problem/4601201</a></p>
]]></content:encoded>
			<wfw:commentRss>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
