<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5.2" -->
<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/"
>

<channel>
	<title>fdiv.net</title>
	<link>http://fdiv.net</link>
	<description>the floating point divide</description>
	<pubDate>Sun, 20 Apr 2008 14:51:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>
	<language>en</language>

		<item>
		<title>Apple Mail Hack: Move Message To Sent Folder</title>
		<link>http://fdiv.net/2008/04/20/apple-mail-hack-move-message-to-sent-folder/</link>
		<comments>http://fdiv.net/2008/04/20/apple-mail-hack-move-message-to-sent-folder/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 14:43:27 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Apple</category>
	<category>Not Apple</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2008/04/20/apple-mail-hack-move-message-to-sent-folder/</guid>
		<description><![CDATA[	In the year that has elapsed since I failed to explain why I was using PINE for email, I&#8217;ve switched to Apple Mail.  Don&#8217;t ask.
	Well, it&#8217;s been alright, but much to my regret the improved latency due to keystrokes only traveling around my local machine &#8212; instead of through the interweb and back as [...]]]></description>
			<content:encoded><![CDATA[	<p><img style="background-color: #808080" align="right" src="http://img.b33p.net/pub/bMIYbDwt8DlYjnZCp4wFZ7KxnbSr1o7L" alt="Apple Mail Icon" />In the year that has elapsed since I <a href="http://fdiv.net/2007/05/12/keybindings-in-macosx-terminal-app/">failed to explain</a> why I was using PINE for email, I&#8217;ve switched to <a href="http://www.apple.com/macosx/features/mail.html">Apple Mail</a>.  Don&#8217;t ask.</p>
	<p>Well, it&#8217;s been alright, but much to my regret the improved latency due to keystrokes only traveling around my local machine &#8212; instead of through the interweb and back as was the case with PINE on a remote machine &#8212; makes it almost justifiable.  Almost.<br />
<a id="more-124"></a></p>
	<p>Apple Mail makes it really easy to delete messages.  You just press the &#8220;Delete&#8221; button.  Poof.</p>
	<p>Apple Mail, however, makes it a lot more difficult to SAVE messages.  You have to go to the &#8220;Message&#8221; menu, then select &#8220;Move To&#8221;, then select the mailbox you want to save it in.  Or use the mouse to drag-and-drop it into your mailbox of choice.  But this is not acceptable as using the mouse depletes one&#8217;s indie cred even more than simply using a GUI mail client in the first place.</p>
	<p>So, armed with <a href="http://www.bazza.com/~eaganj/weblog/2008/02/16/demystifying-mailapp-plugins-for-leopard/">James Eagan&#8217;s article on writing mailbundles</a> I wrote a hack which adds a menu item, complete with keyboard shortcut, allowing the user to easily and quickly file one or more messages away in the &#8220;Sent&#8221; folder (*).  See here:</p>
	<p><img align="right" src="http://img.b33p.net/pub/9uPTamngrrI4UzA_STkwRLK0tdJ4o0Rn" alt="Move to Sent Menu Screenshot" /></p>
	<p>(*) Since switching to Apple Mail &#8212; and having access to its nifty and swift full-text search capabilities &#8212; I&#8217;ve abandoned the thousand-or-so individual folders in which I used to file things away.  Mail in my Inbox now goes to one of two destinations:  <i>Trash</i>, for spam and automatic notifications and other stuff I have no interest in ever looking at again, or <i>Sent</i>, for anything written by a human and on occasion important things written by computers.</p>
	<p>Download <a href="http://softpixel.com/~smokris/widgets/appleMail/MoveMessageToSentFolder-1.0.zip">MoveMessageToSentFolder-1.0.zip</a>.<br />
Leopard (Mac OS X 10.5) only.</p>
	<p>To install:</p>
	<ul>
	<li>Copy the mailbundle to <code>~/Library/Mail/Bundles</code>.  Create this folder if it doesn&#8217;t already exist.</li>
	<li>Open Terminal and run the following commands to enable mailbundle support:
	<pre>
defaults write com.apple.mail EnableBundles 1
defaults write com.apple.mail BundleCompatibilityVersion 3
</pre>
	</li>
	</ul>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/04/20/apple-mail-hack-move-message-to-sent-folder/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Neural-Go-Round</title>
		<link>http://fdiv.net/2008/03/15/neural-go-round/</link>
		<comments>http://fdiv.net/2008/03/15/neural-go-round/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 18:26:29 +0000</pubDate>
		<dc:creator>bbinkovitz</dc:creator>
		
	<category>ruori</category>
	<category>ruori: pure</category>
		<guid>http://fdiv.net/2008/03/15/neural-go-round/</guid>
		<description><![CDATA[	
Remember those weird things we built for PURE a couple years ago, and posted creepy photos of? Well it&#8217;s become a traveling freakshow of stochastic electronic goodness, appearing after its initial Boston display at electro-music 2007 in Philadelphia, and soon to be inflicted on the public again at Notacon in Cleveland, April 4th - 6th, [...]]]></description>
			<content:encoded><![CDATA[	<p><img src="http://img.b33p.net/pub/j5ZKNxqS5rn92isEMPmu2DE0mvtYKbYb/thumbnail-512" alt="project ruori's neural currency exhibit at notacon" /><br />
Remember those weird things we built for <a href="http://reanimationstudios.com/pure/">PURE</a> a couple years ago, and <a href="http://fdiv.net/category/ruori/pure/">posted creepy photos</a> of? Well it&#8217;s become a traveling freakshow of stochastic electronic goodness, appearing after its initial Boston display at <a href="http://event.electro-music.com">electro-music 2007</a> in Philadelphia, and soon to be inflicted on the public again at <a href="http://www.notacon.org/">Notacon</a> in Cleveland, April 4th - 6th, 2008. Come check it out, and we might lovingly assault your ears with our mental vibrational energies if you&#8217;re lucky.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/03/15/neural-go-round/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>The Complete Idiot&#8217;s Guide to Voter Fraud</title>
		<link>http://fdiv.net/2008/03/03/the-complete-idiots-guide-to-voter-fraud/</link>
		<comments>http://fdiv.net/2008/03/03/the-complete-idiots-guide-to-voter-fraud/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 00:53:21 +0000</pubDate>
		<dc:creator>bbinkovitz</dc:creator>
		
	<category>Antisocial Story</category>
		<guid>http://fdiv.net/2008/03/03/the-complete-idiots-guide-to-voter-fraud/</guid>
		<description><![CDATA[	Remember how in 2004 everyone was so freaked out about the terrific hackability of both the hardware and software of Diebold and other electronic voting machines?  Well, the fuss has sort of died down about that.  (Not that there was any reason for it to &#8212; there are no reports that the problems [...]]]></description>
			<content:encoded><![CDATA[	<p><img src="http://img.b33p.net/pub/krj82FGmbYujuV91T7VqrAWEI2aNkw1W" alt="Warning - Fraud Hazard Next 1 Elections" align="right"/>Remember how in 2004 everyone was so freaked out about the <a href="http://arstechnica.com/articles/culture/evoting.ars/1">terrific</a> <a href="http://blog.washingtonpost.com/securityfix/2007/07/report_evoting_systems_hackabl.html">hackability</a> of both the <a href="http://www.techdirt.com/articles/20070123/134221.shtml">hardware</a> and <a href="http://itpolicy.princeton.edu/voting/">software</a> of Diebold and other electronic voting machines?  Well, the fuss has sort of died down about that.  (Not that there was any reason for it to &#8212; there are no reports that the problems with the machines were ever adequately addressed.)  And anyway, what vigilante dictator has the time or inclination to mess around with all that techno-crap involved in hacking a voting machine?  Key-cutting takes all of 2-5 minutes per key, and firmware hacking involves learning boring things, like what firmware is.  It&#8217;s enough to get a would-be crooked election worker or stealth saboteur to give up and go back to throwing Molotov cocktails at Planned Parenthood staff. </p>
	<p>But don&#8217;t give up yet, all you burgeoning totalitarians out there! For here I shall reveal a much simpler (albeit slightly less efficient) method of voting fraud.  Here is what I learned in my absentee-ballot-casting experience.  Oh yeah, and dear internets: please use this for good and not evil.  And also don&#8217;t use it at all.  <a id="more-120"></a></p>
	<p>Today I cast my absentee vote for tomorrow&#8217;s Ohio presidential primary at the Franklin County Board of Elections.  Like a good citizen, I arrived there prepared with my opinions and my state-issued, valid photo ID.  I thought I was packing light by leaving my purse in the car and just grabbing my wallet, but it turned out I could have traveled lighter &#8212; you don&#8217;t need a photo ID, or any other kind of ID for that matter, to vote absentee.  And, since there&#8217;s such a large window of time in which you can cast an absentee ballot, you can vote pretty much as many times as you want, provided you have enough people&#8217;s name, address, date of birth, and last four digits of their SSN.</p>
	<p>Parking was hectic and when I rolled my window down to get parking instructions, I was assailed by propagandists from all sides.  I was then directed to a parallel parking space into which the car barely fit.  After that I waited in line for over an hour.</p>
	<p>When I got to the voting booth without ever having been asked to so much as spell my last name, I asked an election worker, &#8220;Isn&#8217;t anyone going to ask me for identification?&#8221;</p>
	<p>&#8220;They don&#8217;t need to,&#8221; she replied.  &#8220;They have all that information in the computer.&#8221;</p>
	<p>&#8220;So, it would be pretty easy, then, for someone to show up and pretend to be me?&#8221; I asked/commented.</p>
	<p>&#8220;No, because there are certain things they wouldn&#8217;t know about you,&#8221; she said, matter-of-factly.</p>
	<p>The absentee ballot request form requires a voter to fill out their name, current address, and the last four digits of their social security number.  <i>That&#8217;s right &#8212; not even the whole number.</i>  This is information that tons of people have about almost everybody.  Employers, former employers, universities, high schools, the postal service, the college board, and lots of others have this info about me. </p>
	<p>I said, &#8220;But anyone with the information on this card&#8221; &#8212; gesturing to my absentee ballot request form &#8212; &#8220;would be able to just show up and claim to be me?  And no one would challenge that?&#8221;</p>
	<p>She looked at me as though I&#8217;d expressed concern that the ballot-boxes weren&#8217;t sufficiently elf-proofed. After an exasperated hand-on-hip-eyeroll-sigh, she demanded, &#8220;Now, who would ever go to that much trouble?&#8221; and huffed away.  My ID never left my pocket.</p>
	<p>(Disclaimer:  this is probably not a new development by any means.  I have never voted absentee before, so I have no idea how long this opportunity for election fraud has been available, and I can only speculate that it&#8217;s been a good many years.  I also can&#8217;t guarantee the efficacy of voting a bajillion times for your chosen candidate, because it seems likely that the number of people on each side of any given controversial ballot issue who carry out this kind of fraud would probably be evenly distributed enough to cancel each other out.  And then there&#8217;s also the question of whether absentee votes are even counted, or whether anyone&#8217;s votes are counted, or whether the word &#8216;counting&#8217; even applies at all to election polling at all anymore. )
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/03/03/the-complete-idiots-guide-to-voter-fraud/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Data Integrity a Posteriori</title>
		<link>http://fdiv.net/2008/03/01/data-integrity-a-posteriori/</link>
		<comments>http://fdiv.net/2008/03/01/data-integrity-a-posteriori/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 00:03:44 +0000</pubDate>
		<dc:creator>cwright</dc:creator>
		
	<category>Social Story</category>
		<guid>http://fdiv.net/2008/03/01/data-integrity-a-posteriori/</guid>
		<description><![CDATA[	Data integrity is a hot topic these days.  With data volumes on the rise and hard drive half-lives falling, protecting data has become important in many different fields.
	Conventionally, a storage medium will report its life expectancy in terms of MTBF, or Mean Time Between Failures.  This is often measured in hours.  However, [...]]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/WPZI3FbeLDAt8JnhhQuUVjhTP-gedHE7/thumbnail-256" alt="Danger: Corrosive Liquids.  Wear Protective Equipment." />Data integrity is a hot topic these days.  With data volumes on the rise and hard drive half-lives falling, protecting data has become important in many different fields.</p>
	<p>Conventionally, a storage medium will report its life expectancy in terms of <acronym title="Mean Time Between Failures">MTBF</acronym>, or Mean Time Between Failures.  This is often measured in hours.  However, it&#8217;s not always this simple.  Usage patterns and environmental characteristics take a heavy toll on how long our storage devices last.  <a id="more-94"></a></p>
	<p>One fun experiment I unintentionally tried this afternoon helps provide one data point that goes above and beyond our classical MTBF estimate, and into the realm of &#8212; shall we say &#8212; aquatic endurance?</p>
	<p>Several months ago, I purchased a SanDisk 1.0<acronym title="Gigabyte">GB</acronym> Cruzer Micro <acronym title="Universal Serial Bus">USB</acronym> flash drive.  I used this as spill-over when I took too many videos without flushing the data off of my camera while I was in Utah.  Since I didn&#8217;t have a personal computer, and only had limited computer access, the best I could do was shuffle data between various solid-state devices.  So this device has been filled to capacity a couple times, and has been completely erased a couple times, and has had various data-shuffling jobs in between for the past 9 months or so.  Despite being dropped, being X-Rayed at <acronym title="Salt Lake City">SLC</acronym> Airport, and being kept in pockets for long periods of time in various weather extremes, it has held up like a champ.  I&#8217;ve not lost anything, nor have I had any problems shuffling data between my laptops and desktops, as well as other machines.</p>
	<p>This experiment, however, was above and beyond the typical environmental exposure these devices normally take.  Today, my little USB drive got to take a swim through our Frigidaire Washer and then through our Whirlpool Dryer.  For what it&#8217;s worth, the Washer is a sideways one, so it uses less water.  This might have been the show-stopper in disguise.</p>
	<p>The reason this all happened is because I normally hold all of my belongings in my pockets.  That&#8217;s what they&#8217;re there for, after all.  Because I was shuffling data around last week, I must have left it in one of my pockets.</p>
	<p>Upon finding myself nearly out of clothes for the week, I opted to do laundry.  My work clothes were especially dirty (landscaping tends to get lots of dirt on your hands and clothes) so I opted to wash with the Heavy Wash Cycle, which takes about 25-30 minutes, to get my clothes all clean and ready for the coming work week.  It was a fairly large load; several (4) pairs of jeans and many (5) shirts.  No socks.</p>
	<p>After washing, I like to get my clothes into the dryer as soon as possible to avoid the mildew smell.  I&#8217;ve never had much faith in the &#8220;automatic&#8221; setting on dryers, so I put all the clothes in for 60 minutes.  Since I had more than 2 pairs of jeans in there, I also extended the dryer time an additional 20 minutes once the first 60 expired because my jeans like to hold irrationally large quantities of water and are never dry after a mere 60 minutes of high heat.  After this duration, I removed my clothes, and discovered my flash drive sitting comfortably on the bottom of the dryer cylinder.  This, of course, made me a bit downhearted.  Cellphones can&#8217;t endure this kind of rough treatment.  Palm Pilots can&#8217;t either.  I wouldn&#8217;t dare try it on a camera, <acronym title="Compact Disc">CD</acronym> player, or Social Security Card either.  From past experience, things were looking grim for this little data carrier.</p>
	<p>As with any storage medium loss, the first thoughts through my head were &#8220;What did I put on that device that isn&#8217;t backed up somewhere else?&#8221;  Thankfully, I couldn&#8217;t remember anything.  This was in part because I haven&#8217;t explored it much in a long time, making me likely to forget.  It&#8217;s always easier to lose data if you can&#8217;t remember what it was anyway.</p>
	<p>Deciding to test it out and see what I could salvage, I decided to plug it into my laptop and see what would happen.  I was partially expecting it to cause my laptop to reboot;  I&#8217;ve seen computers where shorting the USB +5V and Ground pins acts as a poor man&#8217;s reset switch.  If that didn&#8217;t happen (I&#8217;ve also seen where my MacBook is engineered to be at least a little more resilient than that), I figured it&#8217;d leave some fun console messages, do nothing, or have tons of data errors.</p>
	<p>Much to my surprise, the disk lit up when inserted.  It also blinked a couple times, characteristic of OS auto-mounting.  This was good so far.  The mounted volume showed up on my desktop, and lo-and-behold, all the data was there, intact.  Currently, I have about 450<acronym title="Megabytes">MB</acronym> of data on it.  Disk Utility didn&#8217;t find any File System problems, and inspection using Finder didn&#8217;t either.  The pictures show up fine, the MP3&#8217;s sound fine, and all the source code is intact.  Since <acronym title="Joint Photographic Expert Group">JPEG</acronym><acronym>s and MP3s will be essentially useless if even a few bits are toasted, I find these to be handy metrics in the event of suspected data corruption.</p>
	<p>So, when looking for devices that retain data above and beyond the call of normal duty, look no further.  This little Cruzer took a licking, and has kept on ticking.</acronym>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/03/01/data-integrity-a-posteriori/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Python&#8217;s Flying Circus</title>
		<link>http://fdiv.net/2008/02/22/pythons-flying-circus/</link>
		<comments>http://fdiv.net/2008/02/22/pythons-flying-circus/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 19:35:35 +0000</pubDate>
		<dc:creator>cwright</dc:creator>
		
	<category>kineme</category>
	<category>Antisocial Story</category>
	<category>Language</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2008/02/22/pythons-flying-circus/</guid>
		<description><![CDATA[	
	Lately I&#8217;ve been working on integrating (or, more accurately, attempting to integrate) the Python scripting language into some plugins for an application we develop plugins for.  We&#8217;ve wrapped many libraries with varying levels of success, so this one wasn&#8217;t going to be much different.  Or, so we thought.
	Technically, we&#8217;re interested in &#8220;Embedding&#8221; Python [...]]]></description>
			<content:encoded><![CDATA[	<p><img src="http://img.b33p.net/pub/cwIngHlMs0BtBweZ0BcHJrnBo3K6wYeW/thumbnail-256" align="right" alt="Python Logo" /></p>
	<p>Lately I&#8217;ve been working on integrating (or, more accurately, attempting to integrate) the Python scripting language into some plugins for an application we develop plugins for.  We&#8217;ve wrapped many libraries with varying levels of success, so this one wasn&#8217;t going to be much different.  Or, so we thought.<a id="more-118"></a></p>
	<p>Technically, we&#8217;re interested in &#8220;Embedding&#8221; Python &#8212; We have a native Objective-C application that needs to make use of the Python interpreter at various stages of execution.  The Python scripts are user-supplied, and are exceptionally free-form:  the functions they write can take variable numbers of inputs, produce variable numbers of outputs, and can use any Python modules they have installed.</p>
	<p>Unfortunately, this makes the embedding process somewhat complicated:  From Objective-C, we need to be able to parse the script, find all its functions, and get all those functions&#8217; input and output parameters.  From this data, we can expose the Python module&#8217;s interface usefully.  Unfortunately, Python does not appear to allow this kind of introspection from the outside (and it&#8217;s questionable whether or not it&#8217;s even possible from the inside.)</p>
	<p>In searching for information on this, <a href="http://davidf.sjsoft.com/mirrors/mcmillan-inc/embed.html">Numerous</a> <a href="http://www.developer.com/lang/other/article.php/2217941">Documents</a> are <a href="http://twistedmatrix.com/users/glyph/rant/extendit.html">Found</a> that <a href="http://www.linuxjournal.com/article/8497">Needlessly</a> <a href="http://www.python.org/doc/current/ext/embedding.html">Complicate</a> or Obfuscate the difference between Embedding and Extending.  As if it&#8217;s really that difficult (<strong>embed</strong> means &#8220;fix firmly and deeply in a surrounding mass&#8221; while <strong>extend</strong> means &#8220;cause to cover a larger area; make longer or wider&#8221;.  From these obvious definitions, we can infer that &#8220;Embedding&#8221; means putting something inside, while &#8220;Extending&#8221; means adding functionality or abilities.  Maybe it&#8217;s not so clear for non-native english speakers.  I don&#8217;t know.)</p>
	<p>Another annoying side-trip of this research was an overwhelmingly smug idea that almost reeks of Java.  This side effect is the recorded smarmy discussion of why one should &#8220;Extend&#8221; rather than &#8220;Embed&#8221; (these reasons are then used to explain away why there isn&#8217;t any good documentation on actually embedding Python).  The arguments go something like this:</p>
	<ul>
	<li>Python&#8217;s so good, cross-platform, and flexible that it&#8217;s actually more cost-effective to <em>Throw Out All Your C/C++/ObjC Code And Rewrite Everything In Python.</em></li>
	<li>Embedding is so cumbersome to code, and so difficult compared to embedding Python in Python, that you should <em>Throw Out All Your C/C++/ObjC Code And Rewrite Everything In Python.</em></li>
	<li>High-performance code can be written in C, and then called from within Python&#8217;s runtime when you actually need to performance boost.  Why not just <em>Throw Out All Your C/C++/ObjC Code And Rewrite Everything In Python</em> Except for the fast bits?</li>
	<li>If you embed Python, you&#8217;ll annoy Python developers who can&#8217;t access the modules they&#8217;re used to using.  Why not <em>Throw Out All Your C/C++/ObjC Code And Rewrite Everything In Python</em> so you don&#8217;t annoy your Python developers?</li>
	</ul>
	<p>These arguments cover some pretty diverse ground there.  Unfortunately, there are 2 fatals flaws in the list above.  </p>
	<p>First, embedded Python _Can_ in fact use installed modules just like raw Python, so point 4 above is flagrantly incorrect.  There are some suggestions that it&#8217;s simply annoying to develop in such an environment because namespaces are all strange (or wrong) and nothing works quite right.  Guess What:  Welcome To Plugin Development!  It&#8217;s like these Python developers have never worked on real projects before or something.</p>
	<p>Second, All of the above points assume that it&#8217;s possible to discard your entire code-base and rewrite everything.  While this is technically possible, it&#8217;s not very likely when you don&#8217;t have access to the source of the application to be discarded (in our case).  The unfortunate downside is that _All The Listed &#8220;Solutions&#8221; Hinge On This One Idea_.</p>
	<p>What&#8217;s with these non-solutions from allegedly flexible languages?  Even Objective-C, a compiled language, and the (totally undocumented) JavaVM-ObjC bridge, offer enough introspection to at least find methods and parameter counts without too much hassle.  Maybe Python does this just as simply, but if so, no one&#8217;s talking about it&#8230;
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/02/22/pythons-flying-circus/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Some Crazy MacBook Pro Checkerboard Graphics Corruption / Crash</title>
		<link>http://fdiv.net/2008/02/15/some-crazy-macbook-pro-checkerboard-graphics-corruption-crash/</link>
		<comments>http://fdiv.net/2008/02/15/some-crazy-macbook-pro-checkerboard-graphics-corruption-crash/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 18:34:40 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Antisocial Story</category>
	<category>Yon Reptile Campaign</category>
	<category>Apple</category>
		<guid>http://fdiv.net/2008/02/15/some-crazy-macbook-pro-checkerboard-graphics-corruption-crash/</guid>
		<description><![CDATA[	Last summer Kosada purchased a MacBook Pro for the president of Yon Reptile Campaign.  It&#8217;s been a great improvement over the old Dell laptop he was formerly using, and, though he was initially worried about whether he&#8217;d be able to grasp the new UI, he seems to have picked it up quickly, and he [...]]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/zE14cdTlco08Nid8arNNAJAUuDvmyWl3/thumbnail-256"/>Last summer <a href="http://kosada.com/">Kosada</a> purchased a MacBook Pro for the president of Yon Reptile Campaign.  It&#8217;s been a great improvement over the old Dell laptop he was formerly using, and, though he was initially worried about whether he&#8217;d be able to grasp the new UI, he seems to have picked it up quickly, and he reports that he&#8217;s been loving it.</p>
	<p>But this morning he called me with a rather odd problem:</p>
	<blockquote><p>&#8220;I hooked up my Treo and started syncing it, then walked away for a few minutes.  When I returned, the screen was covered with a bunch of squares, and I can&#8217;t do anything.&#8221;</blockquote>
<a id="more-119"></a></p>
	<p>He took a few photos with his cellphone camera and emailed them to me (click for full-size):<br />
<a target="_new" href="http://img.b33p.net/pub/8l3SZ4dJ8jbUXqjU4jB0O5RnfDph8_bV"><img src="http://img.b33p.net/pub/8l3SZ4dJ8jbUXqjU4jB0O5RnfDph8_bV/thumbnail-256"/></a><a target="_new" href="http://img.b33p.net/pub/bG1i2Tz8SJg39EoEtsm7_48rrHKin1wg"><img src="http://img.b33p.net/pub/bG1i2Tz8SJg39EoEtsm7_48rrHKin1wg/thumbnail-256"/></a><a target="_new" href="http://img.b33p.net/pub/zE14cdTlco08Nid8arNNAJAUuDvmyWl3"><img src="http://img.b33p.net/pub/zE14cdTlco08Nid8arNNAJAUuDvmyWl3/thumbnail-256"/></a></p>
	<p>(You can see bits of the menu-bar scattered around the screen, and it looks like <a href="http://www.markspace.com/missingsync_palmos.php">Missing Sync</a> had launched iPhoto.  Possibly related?)</p>
	<p>I talked him through a few tests.  He was able to see the mouse cursor and move the mouse, but clicking didn&#8217;t cause any apparent response.  He could activate Dashboard &#8212; Dashboard itself looked fine, and the checkerboard showed through in the background.  He then tapped the power button, and the &#8220;Are you sure you want to shut down your computer now?&#8221; dialog appeared, but it was scrambled and the buttons didn&#8217;t work.</p>
	<p>I instructed him to power it off by holding the power button down.  Since rebooting, it&#8217;s been working fine.</p>
	<p><em>*Confused.*</em></p>
	<p>I googled it a bit but wasn&#8217;t able to find any clear reports of this happening to other people.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/02/15/some-crazy-macbook-pro-checkerboard-graphics-corruption-crash/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Is Smaller Better?</title>
		<link>http://fdiv.net/2008/02/03/is-smaller-better/</link>
		<comments>http://fdiv.net/2008/02/03/is-smaller-better/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 03:39:07 +0000</pubDate>
		<dc:creator>mradcliffe</dc:creator>
		
	<category>Social Story</category>
	<category>Antisocial Story</category>
	<category>Apple</category>
	<category>Not Apple</category>
		<guid>http://fdiv.net/2008/02/03/is-smaller-better/</guid>
		<description><![CDATA[	
	In the past couple of months I thought about spending some money on either a Nintendo Wii or a multi-purpose media box (not to mention my anxiety over buying an unmodifiable blackbook).  Over the past 3 years I&#8217;ve looked at smaller cases as &#8220;better&#8221;.  Before that it was always the full tower case [...]]]></description>
			<content:encoded><![CDATA[	<div style="float: right; padding: 5px;"><img src="http://softpixel.com/~mradcliffe/images/epia_ex.png" border="0" alt="Epia EX small"/></div>
	<p>In the past couple of months I thought about spending some money on either a <a href="http://wii.nintendo.com">Nintendo Wii</a> or a multi-purpose media box (not to mention my anxiety over buying an unmodifiable <a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?ncto=MacBook&#038;aa=6E1BC8D9&#038;mco=6E1BC8D9">blackbook</a>).  Over the past 3 years I&#8217;ve looked at smaller cases as &#8220;better&#8221;.  Before that it was always the full tower case that provided more room and ease-of-use.  In this vein I&#8217;ve been looking at the world of <a href="http://en.wikipedia.org/wiki/Mini_itx">mini-itx</a> for the past several months.</p>
	<p>VIA created the mini-itx specification for itself, but since its creation other companies started creating motherboards with this spec and recently so has <a href="http://www.intel.com">Intel</a>.  The spec allows for a low-power consumption CPU, which is great for point-of-sales machines, thin clients, and more.  The other use of mini-itx, popular amongst personal users, is as a <a href="http://en.wikipedia.org/wiki/Htpc">Home Theater PC</a> (HTPC) or media center.</p>
	<p><a id="more-116"></a></p>
	<div style="float: left; padding: 5px;"><img src="http://softpixel.com/~mradcliffe/images/xbmc.png"/></div>
	<p>There are several solutions available in this market.  By far the most popular media box in the past few years has been a Microsoft product, the <a href="http://www.xbox.com">XBox</a>.  You can slap on an open source GPL media player onto the xbox - <a href="http://www.xboxmediacenter.com">XBox Media Center</a> (XBMC).  This was great as a video, audio, and game machine for dvds, mpeg4 (xvid), and various audio formats.</p>
	<div style="float: right; padding: 5px;"><img src="http://softpixel.com/~mradcliffe/images/appletv.png"/></div>
	<p>Alternatively <a href="http://www.apple.com">Apple</a> sells the <a href="http://www.apple.com/appletv/">Apple TV</a>, which not only plays movies, but can connect to your shared ITunes library.  However as with many things Apple (and not-Apple) it has limited uses even with the <a href="http://www.engadget.com/2007/03/23/apple-tv-reportedly-hacked-for-xvid-support/">hack</a> to allow xvid and DivX support.  <i>Author&#8217;s Note: I first wrote this before Mac World Expo January 2008.</i></p>
	<p>The two products mentioned above are limited by their age.  Both are not powerful enough to decode h.264 matroska encapsulated video or HDMI video input.  This is the problem.  Would I be able to build a mini-itx machine capable of doing what these once-awesome products do not?  My requirement was pretty simple.  I&#8217;ve dealt with TV Tuners and HDTV before, and I&#8217;m not interested in building a true &#8220;HTPC&#8221; or personal video recorder (PVR).  That ship has sailed.  Not to mention all the hullaboo about DRM in bluray/hd-dvd, hd capable monitors, video cards, etc&#8230;</p>
	<p>After investigating hardware articles and reviews of the boards on <a href="http://www.mini-itx.com">mini-itx.com</a> I narrowed down my search to the <a href="http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=450">VIA Epia EX 15000G</a>.  This newer board offered a &#8220;fast&#8221; 1.8ghz VIA C7 processor.  A PCI slot would take care of a wireless card as I wouldn&#8217;t be dragging cat5 down from the router upstairs to the TV.  It seemed to offer everything that I was looking for.  It even had an on-board graphics chip with a mpeg2/mpeg4 hardware decoder though underpowered in 3d acceleration!</p>
	<p>The VIA Epia boards are also highly compatible in linux so that&#8217;s a plus.  I delved deeper.  I wanted to make sure that this board would suffice.  After all I&#8217;ve never touched a processor other than AMD or Intel.</p>
	<p>However I&#8217;m afraid to say that the Unichrome Pro II mpeg2/mpeg4 hardware decoder is not usable at the current time.  There have been <a href="http://forums.viaarena.com/messageview.aspx?catid=32&#038;threadid=77918&#038;highlight_key=y&#038;keyword1=h.264">numerous</a> <a href="http://forums.viaarena.com/messageview.aspx?catid=32&#038;threadid=69894&#038;highlight_key=y&#038;keyword1=h264">complaints</a> that hardware decoding doesn&#8217;t work for .mkv files and even in Windows!  Surprisingly the only h.264 playback possible was in <a href="http://www.kernel.org">linux</a> with the now seemingly defunct <a href="http://sourceforge.net/projects/vemp">Via enhanced MPlayer</a>.</p>
	<p>This was the nail in the coffin.  I&#8217;m not going to buy a board because it *may* work in linux with the supposed mpeg4 hw decoding support (and not at all in Windows).  What does this leave us with?  Software decoding?  The C7 processor is not powerful enough to decode 720p let alone 1080p content.</p>
	<p>The cost of this machine and project will significantly increase switching from a mini-itx C7 processor board to perhaps an intel mini-itx core 2 duo mobile board or switch to micro-atx (about $150-$200 increase in budget with a core 2 duo mobile or desktop).</p>
	<p>The smallest really isn&#8217;t better.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/02/03/is-smaller-better/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Mac OS Xodus</title>
		<link>http://fdiv.net/2007/12/27/mac-os-xodus/</link>
		<comments>http://fdiv.net/2007/12/27/mac-os-xodus/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 15:50:13 +0000</pubDate>
		<dc:creator>cwright</dc:creator>
		
	<category>Social Story</category>
	<category>Apple</category>
		<guid>http://fdiv.net/2007/12/27/mac-os-xodus/</guid>
		<description><![CDATA[	(First, yes I do realize the &#8216;X&#8217; in &#8216;OS X&#8217; is pronounced &#8220;ten&#8221; not &#8220;ecks.&#8221;  I simply like the portmanteau.)
	With the release of Leopard, I discovered the need to migrate my existing Tiger system onto an external drive.  I needed it to be bootable, and I wanted to have a little discontinuity as [...]]]></description>
			<content:encoded><![CDATA[	<p><img src="http://img.b33p.net/pub/dvRi9P44hDYzijx82Phrp-MkV4z_UMHk/thumbnail-256" align="right" /><em>(First, yes I do realize the &#8216;X&#8217; in &#8216;OS X&#8217; is pronounced &#8220;ten&#8221; not &#8220;ecks.&#8221;  I simply like the portmanteau.)</em></p>
	<p>With the release of Leopard, I discovered the need to migrate my existing Tiger system onto an external drive.  I needed it to be bootable, and I wanted to have a little discontinuity as possible.  Apple generally makes this pretty easy, but it&#8217;s still a bit involved.  I write this article from my migrated system, currently booting Tiger off of a USB drive.<a id="more-112"></a></p>
	<p>The mechanical process of getting an installation working on a USB drive is fairly well-documented by now.  I&#8217;ve had much success following Evgeny Myatin&#8217;s tutorial, found <a href="http://www.digit-life.com/articles2/td/mac-flash.html">here</a>.  However, like many similar articles, it has one major weakness:  It attacks the problem with the assumption that you&#8217;re trying to squeeze OS X on to some microscopic medium.  Because of this, it skips many steps to produce a full-featured system when such a constraint is not in effect.  Since I chose a 250GB harddrive as my target, I had no such enforced limit.</p>
	<p>After following the above directions, here&#8217;s a list of things I did to flesh out my system to get it back to normal.</p>
	<p>0.  Before anything, I copied my internal drive&#8217;s <code>/Applications</code> folder to my new bootable one.  This filled in most of the applications that I need.  It also filled in <code>/Applications/Utilities</code>, which comes in handy in short order.</p>
	<p>1.  SystemUIServer crashed incessantly for some reason right after installation.  This meant no clock, no spotlight, and no networking (setting it in System Preferences didn&#8217;t work).  It also meant no Menu Meters and no Synergy.  Using <code>Console.app</code> (from <code>/Applications/Utilities</code>), I was able to find that dyld was having problems finding a symbol in <code>/System/Library/PrivateFrameworks/ICANotifications.framework</code>.  I don&#8217;t recommend tinkering with stuff in System too often, but the fix here was pretty simple:  copy my old framework into the new place.  Actually, I just copied the file inside the framework, but I imagine copying the whole thing is cleaner.  This immediately (literally) stopped the crashing without a reboot.  The clock and spotlight popped into place, as did the airport icon, the battery icon, and the bluetooth icon.  Nice</p>
	<p>2.  I installed the Developer tools from the Mac OS X install DVD.  I don&#8217;t trust simply copying <code>/Developer</code>, since that&#8217;s only part of the package.</p>
	<p>3.  I booted into my old installation again, and copied <code>/Users/cwright/</code> to the new installation.  I suspected that this would cause unimaginable problems, but it actually didn&#8217;t.  I took a long time (it&#8217;s over 25GB), but everything appears to be undisturbed.  iTunes worked without a blink, as did Firefox, Xcode, Adium, and other frequently used programs.  Menu Meters and Growl even worked without reinstalling them.  This still impresses me, honestly, especially after doing user migrations on Windows 2000/XP earlier this year.</p>
	<p>4.  With my new settings in place, I noticed that I had no desktop background.  Copy <code>/Library/Desktop Pictures/</code> to restore them</p>
	<p>5.  No screen savers either.  Copy <code>/System/Library/Screen Savers/</code></p>
	<p>6. Fink had a hard time installing.  Apparently <code>/usr/bin</code> was pretty sparse.  Copied that (this is extremely dangerous.  At first, I just copied programs that weren&#8217;t present, but I got tired of that after a while).</p>
	<p>7. <code>/usr/share/misc/</code> was missing some programs too (showing up in console).  Copied the absent utilities.</p>
	<p>After the above tweaks, everything seems to be working fine.  There&#8217;s probably a more official way to get this (and any other missing parts) put in place by default, but this can help in a pinch.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/12/27/mac-os-xodus/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Zero Grams of Trans Fat Binaries</title>
		<link>http://fdiv.net/2007/12/19/zero-grams-of-trans-fat-binaries/</link>
		<comments>http://fdiv.net/2007/12/19/zero-grams-of-trans-fat-binaries/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 05:36:15 +0000</pubDate>
		<dc:creator>cwright</dc:creator>
		
	<category>Antisocial Story</category>
	<category>Apple</category>
	<category>Not Apple</category>
	<category>Software Development</category>
	<category>Kosada</category>
		<guid>http://fdiv.net/2007/12/19/zero-grams-of-trans-fat-binaries/</guid>
		<description><![CDATA[	People like their applications to work.  Even better, they like them to work, even when things change.  For the WinTel world, this isn&#8217;t a big deal (Vista aside ;), because the underlying CPU architecture hasn&#8217;t really changed, from a program&#8217;s point of view, in the past two decades.  Unless you have a [...]]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/ywiHvPcTv8ZWhWv6nf-AHhne2GUlkx99/png-indexed-64" alt="tons of xcode build targets" />People like their applications to work.  Even better, they like them to work, even when things change.  For the WinTel world, this isn&#8217;t a big deal (Vista aside ;), because the underlying CPU architecture hasn&#8217;t really changed, from a program&#8217;s point of view, in the past two decades.  Unless you have a weird program that&#8217;s designed for AMD&#8217;s 3DNow! instruction set and you switch to an Intel CPU, or perhaps an application designed for a more esoteric old SIMD architecture, your application should run just fine (as long as your Operating System is ok with it).</p>
	<p>Mac OS X doesn&#8217;t have the luxury of working on the same underlying CPU though, so things need to be handled a little bit differently.  The solution Apple came up with was <a id="more-115"></a>the idea of a &#8220;Fat&#8221; binary, sometimes called a &#8220;Universal Binary&#8221;.  In other words, instead of a single program being contained in a program file, the program file can contain several programs for different architectures.  For example:</p>
	<pre class="code">
cwright@phendrana:~>file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures
/bin/ls (for architecture i386):	Mach-O executable i386
/bin/ls (for architecture ppc7400):	Mach-O executable ppc
</pre>
	<p>or an even more convoluted example:</p>
	<pre class="code">
cwright@phendrana:~>file GLTools
GLTools: Mach-O universal binary with 4 architectures
GLTools (for architecture ppc7400):	Mach-O bundle ppc
GLTools (for architecture i386):	Mach-O bundle i386
GLTools (for architecture ppc64):	Mach-O 64-bit bundle ppc64
GLTools (for architecture x86_64):	Mach-O 64-bit bundle x86_64
</pre>
	<p>This increases file size considerably (4x in the last example), but it provides you with the cool side effect of being able to drop the exact same program onto a PowerPC Mac, and have it operate identically &#8212; as long as you&#8217;re properly handling architectural differences such as <a href="http://en.wikipedia.org/wiki/Endianness">endianness</a>.  Overall, this is a pretty slick solution, and with the exception of a few small tweaks, I doubt I could have come up with a better idea.  (The small tweaks, in case you&#8217;re wondering, would be shared data segments across the binaries inside, such that non-code stuff only needs to be included once, instead of 4 times.  This doesn&#8217;t work well when the data contains code though, so you&#8217;d need to have flags to control how it operates).</p>
	<p>One of many problems rears its ugly head though when developing such portable applications:  Linking with static and dynamic libraries.</p>
	<p>Out of the box, OS X ships with many libraries that are all appropriately compiled to support all the above architectures, so you never notice this problem when compiling against standard included libraries.  However, if you stray off the beaten path, and use another library, you&#8217;re destined for trouble.  Open Source libraries, especially the ones whose build system depends on the monstrosity that is <a href="http://en.wikipedia.org/wiki/Autoconf">AutoConf</a> (<code>./configure</code> scripts and all that), are surprisingly difficult to get working.  In part, because they&#8217;re not designed to be built for multiple architectures in parallel, and in part because AutoConf is infuriatingly worthless when it comes to documentation.</p>
	<p>Of course, since I&#8217;m writing all of this, I&#8217;m obviously in the middle of such a battle :)</p>
	<p>By default, I run configure like this: </p>
	<pre class="code">
CFLAGS=\"-Os -fomit-frame-pointer\" ./configure [options]
</pre>
	<p>where options is stuff like <code>--enable-shared</code> and other library stuff.  On occasion (only 85% of the time), I also have to override other environment variables because parts like <code>pkg-config</code> don&#8217;t work, because other libraries don&#8217;t install properly, and a whole host of other problems.  I really can&#8217;t believe I actually <i>liked</i> dealing with this crap when I used linux&#8230;  but I digress.</p>
	<p>So first off, I think &#8220;Hey, I can add some magic to the CFLAGS parameter, and it&#8217;ll just compile!&#8221; &#8230; hahaha &#8230; I wish.  Here&#8217;s what happens:</p>
	<pre class="code">
cwright@phendrana:~/Desktop/Recent Source Stuff/libSomeLib-X.Y.Z>CFLAGS=\"-Os -fomit-frame-pointer -arch i386 -arch ppc -arch x86_64 -arch ppc64\" ./configure --enable-shared
</pre>
	<p>Configure does its thing, and then says it&#8217;s done and you&#8217;re ready to build.  It&#8217;s lying, of course:</p>
	<pre class="code">
cwright@phendrana:~/Desktop/Recent Source Stuff/libSomeLib-X.Y.Z>make
make  all-recursive
Making all in libSomeLib
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I..    -Os -fomit-frame-pointer -arch i386 -arch ppc -arch x86_64 -arch ppc64 -MT io.lo -MD -MP -MF .deps/io.Tpo -c -o io.lo io.c
 gcc -DHAVE_CONFIG_H -I. -I.. -I.. -Os -fomit-frame-pointer -arch i386 -arch ppc -arch x86_64 -arch ppc64 -MT io.lo -MD -MP -MF .deps/io.Tpo -c io.c  -fno-common -DPIC -o .libs/io.o
gcc-4.0: -E, -S, -save-temps and -M options are not allowed with multiple -arch flags
make[2]: *** [io.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
</pre>
	<p>So, -M options aren&#8217;t allowed to have multiple arch flags, says gcc.  I do some spelunking to find out exactly what these flags do, and find that they&#8217;re for creating Makefile dependencies.  But wait a minute, isn&#8217;t that Configure&#8217;s job?  Man these build tools are awesome. &#8230;  (technically speaking, it <i>is</i> Make&#8217;s job to make this stuff.  There just isn&#8217;t a hook to add architecture support anywhere else without completely re-engineering the build system.)</p>
	<p>Next up, I read some Apple documentation to see how they go about doing it (for stuff like OpenSSL, etc.).  They recommend making a new XCode project, and then making a <a href="http://developer.apple.com/opensource/images/AllTargets.cropped.jpg">zillion build targets</a>, taped together with some <a href="http://developer.apple.com/opensource/images/BuildPPCScript.cropped.jpg">shell scripts</a>.  To be honest, it doesn&#8217;t seem very Apple-like.  If I&#8217;m going to be dealing with shell scripts, I&#8217;ll just do it myself in Terminal.</p>
	<p>The second attempt consists of duplicating the source tree into 4 directories, one for each architecture.  Then, my plan goes, I&#8217;ll use <code>lipo</code> to glue them all together into a fat binary, and I&#8217;ll be on my way.</p>
	<p>I run configure in each directory tree, careful to include only one <code>-arch</code> parameter in each one.  I issue make in the i386, ppc, and x86_64 trees without issue, and start to think a bit smugly to myself that I&#8217;ve defeated this silly monster.  But then, another Configure Dragon charges.</p>
	<pre class="code">
cwright@phendrana:~/Desktop/Recent Source Stuff/libSomeLib-X.Y.Z-ppc64>CFLAGS=\"-Os -fomit-frame-pointer -arch ppc64\" ./configure --enable-shared
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/bin/sh: /Users/cwright/Desktop/Recent: No such file or directory
configure: WARNING: `missing' script is too old or missing
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
</pre>
	<p>Of course, whenever configure tells you to check &#8220;config.log&#8221; for more details, it&#8217;s about as informative as reading a <a href="http://www.thecybersource.com/images/bsod.jpg">Blue Screen</a>.  Also, note the 4th or 5th line, which shows a lack of quoted paths.  That looks safe&#8230;</p>
	<p>The problem, according to configure, is that it &#8220;cannot run C compiled programs,&#8221; which is actually accurate for this case:  Rosette doesn&#8217;t translate ppc64 binaries to x86.  However, gcc can compile such programs, so we know we can do it.  Configure suggests using the &#8220;-<nop />-host&#8221; command.</p>
	<p>Running configure with -<nop />-help reveals how -<nop />-host is supposed to be used.  It&#8217;ll look like this, I suppose:  &#8220;-<nop />-host=ppc64&#8243;.</p>
	<p>It issues this warning, but continues to do its thing:</p>
	<pre class="code">
configure: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet.  If you think this
configuration is useful to you, please write to autoconf@gnu.org.
</pre>
	<p>I hope that&#8217;s ok.. ?</p>
	<p>I run make, and it builds, and finishes.  A bit earlier than the others.  In the .libs directory, there&#8217;s no .dylib, which is what &#8211;enable-shared is supposed to create.  So, I look at the output from previous builds, and copy the line it inexplicably skips.  It&#8217;s a pretty long, but simple gcc line that takes all the .o&#8217;s and makes them into a .dylib.  No idea why it skipped over that one&#8230;</p>
	<p>And at last, we&#8217;re able to build our fat binary using lipo.  Hurray for portable cross-platform build tools!
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/12/19/zero-grams-of-trans-fat-binaries/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>fAIL: The Self-Replicating Network Connection</title>
		<link>http://fdiv.net/2007/12/11/fail-the-self-replicating-network-connection/</link>
		<comments>http://fdiv.net/2007/12/11/fail-the-self-replicating-network-connection/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 13:55:03 +0000</pubDate>
		<dc:creator>mradcliffe</dc:creator>
		
	<category>Social Story</category>
	<category>Antisocial Story</category>
	<category>Not Apple</category>
	<category>Kosada</category>
		<guid>http://fdiv.net/2007/12/11/fail-the-self-replicating-network-connection/</guid>
		<description><![CDATA[	


	Good morning gentle readers.  I opened up my craptop this morning to witness the struggles of what seemed to be a laptop battling cancer.  No, this was not another case of opteron cancer.   Instead I found that Windows, unable to cope with my Cisco Aironet 350 wireless card, was creating network [...]]]></description>
			<content:encoded><![CDATA[	<div style="float: right;">
<image src="http://img.b33p.net/pub/z1QUKOctz9KGEcYtr10csyTHjvH40t5I/thumbnail-256" border=0><br />
</image></div>
	<p>Good morning gentle readers.  I opened up my <a href="http://www.lenovo.com/us/en/">craptop</a> this morning to witness the struggles of what seemed to be a laptop battling cancer.  No, this was not another case of <a href="http://fdiv.net/2007/03/20/amd-opteron-dual-core-meltdown/">opteron cancer</a>.   Instead I found that Windows, unable to cope with my <a href="http://www.cisco.com">Cisco</a> Aironet 350 wireless card, was creating network connections one after another in the system tray.</p>
	<p><a id="more-113"></a></p>
	<p>Recently I have been taking out my wireless network card while at work, which used to always reside in my laptop&#8217;s PCMCIA slot.  At the end of the day I&#8217;d plug it back in usually either before or after I had sent my laptop into power save mode.</p>
	<p>So this morning like all mornings I take out my laptop, set it up, open the lid and log in.  Within seconds I notice my system tray bombarded by a new wireless network connection appearing once every second or so, enlarging the system tray beyond its normal size (note the arrow to the far right of the screenshot).  My esteemed colleague <a href="http://softpixel.com/~cwright/">Chris Wright</a> and I were both disappointed that the info bubble did not in fact pop up for each of those connection icons.  Luckily this cancer seemed benign, and within a few seconds Windows realized there actually was only one wireless networking device.</p>
	<div style="text-align: center;">
<img src="http://softpixel.com/~mradcliffe/images/self-replicating-network-connection.png" border=0/>
</div>
	<p>Though it seems this all boils down to the lesson: <b>never mess with an IBM trying to get some sleep</b>.   Whether it&#8217;s not waiting long enough for a print process to get out of the queue causing endless beeping or windows self-replicating wireless network connections, you&#8217;ll face the seemingly impossible behavior of a laptop pushing the boundaries of sanity.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/12/11/fail-the-self-replicating-network-connection/feed/</wfw:commentRSS>
	</item>
	</channel>
</rss>
