<?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>pixelmonkey.org - alter or abolish?</title>
	<atom:link href="http://www.pixelmonkey.org/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pixelmonkey.org</link>
	<description>Andrew J. Montalenti's Blog</description>
	<lastBuildDate>Thu, 25 Feb 2010 02:17:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flavors.me emerges from beta: lifestreaming for the masses</title>
		<link>http://www.pixelmonkey.org/2010/02/24/flavors-me-emerges-from-beta-lifestreaming-for-the-masses</link>
		<comments>http://www.pixelmonkey.org/2010/02/24/flavors-me-emerges-from-beta-lifestreaming-for-the-masses#comments</comments>
		<pubDate>Thu, 25 Feb 2010 01:58:13 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=520</guid>
		<description><![CDATA[My good friends at HiiDef just launched a new app that has been in beta for awhile, Flavors.me.  This is an excellent tool that has a great, simple, and usable design.
What&#8217;s the value preposition of Flavors.me?  It&#8217;s to unify your various &#8220;online identities&#8221; into a single, dynamic, automatically-updated, and elegant website.
What do I [...]]]></description>
			<content:encoded><![CDATA[<p>My good friends at <a href="http://hiidef.com/">HiiDef</a> just launched a new app that has been in beta for awhile, <a href="http://flavors.me">Flavors.me</a>.  This is an excellent tool that has a great, simple, and usable design.</p>
<p>What&#8217;s the value preposition of Flavors.me?  It&#8217;s to unify your various &#8220;online identities&#8221; into a single, dynamic, automatically-updated, and elegant website.</p>
<p>What do I mean by that?  OK &#8212; so, like most people on the web, you spread public information about yourself in multiple places.  You might run one or two blogs (personal and work?).  You might have a Facebook account, a Twitter account.  You may share your favorite books at GoodReads, your favorite movies at Netflix, and your favorite music on Last.fm.</p>
<p>Flavors.me lets you take all that information and put it together in a single website to serve as your &#8220;online identity&#8221;.  All your publicly shared information, aggregated in one place, and displayed beautifully.</p>
<p>I&#8217;ve been running a Flavors.me site for some time that you can see here: <a href="http://flavors.me/pixelmonkey" target="_blank">http://flavors.me/pixelmonkey</a></p>
<div align="center"><a target="_blank" href="http://flavors.me/pixelmonkey"><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/pixelmonkey-flavorsme1-300x187.png" alt="pixelmonkey-flavorsme" title="pixelmonkey-flavorsme" width="300" height="187" class="aligncenter size-medium wp-image-523" /></a></div>
<p>Now, that&#8217;s the end product.  All the content gets pulled dynamically from your various online feeds.  The real magic with Flavors.me is how easy it is to get there.  You can drastically change the look and feel of this site using a dynamic, &#8220;WYSIWYG&#8221; interface.  You can do one or two clicks to add a service, reorder it, rename it.  Another couple of clicks and you change font sizes, colors, and even the overall layout.</p>
<p><span id="more-520"></span></p>
<p>As I was writing this post, I noticed that Flavors.me had added LinkedIn support, which wasn&#8217;t available earlier in the beta.  So I went ahead and added it.  I simply logged in and pulled up the design panel.</p>
<div align="center"><a href="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-01.png"><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-01.png" alt="flavors-cpanel-01" title="flavors-cpanel-01" width="407" height="528" class="aligncenter size-full wp-image-528" /></a></div>
<p>From there, I could navigate over to &#8220;Services&#8221;, click the &#8220;LinkedIn&#8221; logo, and Flavors.me would guide me through the authorization process to make LinkedIn data available to them for display on my page.  You simply get redirected to LinkedIn.com, log in there (if not already logged in), and then get redirected back to the Flavors control panel.</p>
<div align="center"><a href="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-02.png"><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-02.png" alt="flavors-cpanel-02" title="flavors-cpanel-02" width="315" height="492" class="aligncenter size-full wp-image-529" /></a></div>
<p>Next, I could simply drag-and-drop the service box in the panel in order to reorder it on the page.  Yay, drag-and-drop!  There is also in-line editing, and editing the title of the LinkedIn &#8220;popout&#8221; dynamically updates my profile page in real-time!  Nice touch.</p>
<div align="center"><a href="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-03.png"><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-03.png" alt="flavors-cpanel-03" title="flavors-cpanel-03" width="306" height="336" class="aligncenter size-full wp-image-530" /></a></div>
<p>Finally, I can go to the &#8220;Design&#8221; panel to tweak fonts, layout, sizes, etc.  Look at how Flavors.me displays fonts.  It&#8217;s amazing &#8212; this is the web, but it&#8217;s easier to change my Flavors.me web design font styles than it is to change font styles in a Microsoft Word document!</p>
<div align="center"><a href="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-04.png"><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-04.png" alt="flavors-cpanel-04" title="flavors-cpanel-04" width="307" height="343" class="aligncenter size-full wp-image-531" /></a></div>
<p>Now, depending on where, exactly, you store the bits that make up your online identity, you may find yourself disappointed by a lack of this-or-that service.  They already support quite a few, and they are adding more in the future, I hear.  The one I sorely missed was <a href="http://delicious.com">Delicious</a>, so I could share my bookmarks with the world.</p>
<p>But wait!  For those services that still don&#8217;t have first-class support, Flavors.me gracefully supports RSS feeds of any variety.  I simply popped the RSS feed for my Delicious bookmarks into Flavors.me services panel, and, voila! &#8212; my bookmarks are now publicly shared!</p>
<div align="center"><a target="_blank" href="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-05.png"><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2010/02/flavors-cpanel-05-300x183.png" alt="flavors-cpanel-05" title="flavors-cpanel-05" width="300" height="183" class="aligncenter size-medium wp-image-532" /></a></div>
<p>It&#8217;s this kind of simplicity, design sense, and user-centric approach that makes me love the web as a place to develop, deploy, and use software.  So, what are you waiting for?  <a href="http://flavors.me/signup">Sign up for Flavors.me today: it&#8217;s free!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2010/02/24/flavors-me-emerges-from-beta-lifestreaming-for-the-masses/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Switching from Chase</title>
		<link>http://www.pixelmonkey.org/2010/01/06/switching-from-chase</link>
		<comments>http://www.pixelmonkey.org/2010/01/06/switching-from-chase#comments</comments>
		<pubDate>Thu, 07 Jan 2010 04:50:27 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Corporate Power]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=510</guid>
		<description><![CDATA[Andrew Leonard of Salon.com has written an article about switching from Chase to a local community bank, in response to HuffPo&#8217;s MoveYourMoney campaign.
I&#8217;ve written on this blog multiple times about my frustration with Chase bank, but it&#8217;s interesting to see someone with as big a readership as Andrew Leonard writing about it.  Are commercial [...]]]></description>
			<content:encoded><![CDATA[<p>Andrew Leonard of Salon.com has <a href="http://www.salon.com/technology/how_the_world_works/2010/01/06/move_your_money/index.html">written an article about switching from Chase to a local community bank</a>, in response to HuffPo&#8217;s <a href="http://moveyourmoney.info/">MoveYourMoney</a> campaign.</p>
<p>I&#8217;ve written on this blog <a href="/2009/08/21/chase-insecure">multiple</a> <a href="/2009/10/30/jpmorgan-chase-valid-fees-and-humanity">times</a> about my frustration with Chase bank, but it&#8217;s interesting to see someone with as big a readership as Andrew Leonard writing about it.  Are commercial big banks&#8217; days numbered?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2010/01/06/switching-from-chase/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The danger of feature-driven design</title>
		<link>http://www.pixelmonkey.org/2009/12/22/the-danger-of-feature-driven-design</link>
		<comments>http://www.pixelmonkey.org/2009/12/22/the-danger-of-feature-driven-design#comments</comments>
		<pubDate>Tue, 22 Dec 2009 06:49:39 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=504</guid>
		<description><![CDATA[I recently re-read Douglas Crockford&#8217;s JavaScript: The Good Parts.  I have been writing more and more JavaScript lately, especially object-oriented JavaScript plugging into existing frameworks.  Re-reading the book has definitely been a useful exercise &#8212; I think when I first read it approximately 6 months ago, I didn&#8217;t fully understand it.  But [...]]]></description>
			<content:encoded><![CDATA[<p>I recently re-read Douglas Crockford&#8217;s <em>JavaScript: The Good Parts</em>.  I have been writing more and more JavaScript lately, especially object-oriented JavaScript plugging into existing frameworks.  Re-reading the book has definitely been a useful exercise &#8212; I think when I first read it approximately 6 months ago, I didn&#8217;t fully understand it.  But now, I do.</p>
<p>I also found it very interesting to hear Crockford wax poetic about the virtue of simplicity in all forms of software design.  The following passage concludes the book.</p>
<blockquote><p>
When I started thinking about this[...], I wanted to take the subset idea further, to show how to take an existing [product] and make significant improvements to it by making no changes except to exclude the low-value features.</p>
<p>We see a lot of feature-driven product design in which the cost of features is not properly accounted. Features can have a negative value to consumers because they make the products more difficult to understand and use. We are finding that people like products that just work. It turns out that designs that just work are much harder to produce than designs that assemble long lists of features.</p>
<p>Features have a specification cost, a design cost, and a development cost. There is a testing cost and a reliability cost. The more features there are, the more likely one will develop problems or will interact badly with another. In software systems, there is a storage cost, which was becoming negligible, but in mobile applications is becoming significant again. There are ascending performance costs because Moore’s Law doesn’t apply to batteries.  </p>
<p>Features have a documentation cost. Every feature adds pages to the manual, increasing training costs. Features that offer value to a minority of users impose a cost on all users. So, in designing products[...], we want to get the core features—the good parts—right because that is where we create most of the value.</p>
<p>We all find the good parts in the products that we use. We value simplicity, and when simplicity isn’t offered to us, we make it ourselves. My microwave oven has tons of features, but the only ones I use are cook and the clock. And setting the clock is a struggle. We cope with the complexity of feature-driven design by finding and sticking with the good parts.</p>
<p>It would be nice if products[...] were designed to have only good parts.
</p></blockquote>
<p>I removed direct references to the main subject of Crockford&#8217;s discussion &#8212; namely, the JavaScript language itself.  The truth is, this advice is much more valuable for the design of all software products.  Perhaps one day someone will write the much needed book, <em>Startups: The Good Parts</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/12/22/the-danger-of-feature-driven-design/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Persistent Folders: Or, why ideas don&#8217;t matter, and execution does</title>
		<link>http://www.pixelmonkey.org/2009/12/11/ideas-and-execution</link>
		<comments>http://www.pixelmonkey.org/2009/12/11/ideas-and-execution#comments</comments>
		<pubDate>Fri, 11 Dec 2009 15:59:51 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=475</guid>
		<description><![CDATA[I&#8217;ll start off this post with a somewhat  controversial claim: I invented Dropbox.
I&#8217;ll show why this claim doesn&#8217;t matter later, but for now, I&#8217;ll assure you that it&#8217;s true. 
How many of you out there use Dropbox?  If you don&#8217;t, you should &#8212; it&#8217;s an excellent tool.  In its free version, it [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll start off this post with a somewhat  controversial claim: <i>I invented Dropbox</i>.</p>
<p>I&#8217;ll show why this claim doesn&#8217;t matter later, but for now, I&#8217;ll assure you that it&#8217;s <b>true</b>. </p>
<p>How many of you out there use <a href="http://getdropbox.com">Dropbox</a>?  If you don&#8217;t, you should &#8212; it&#8217;s an excellent tool.  In its free version, it provides you with 2GB of storage &#8220;in the cloud&#8221;, using a new kind of folder called a &#8220;Dropbox&#8221;.  What distinguishes a Dropbox from other folders on your computer?  The following:</p>
<ul>
<li>Every file put in your Dropbox is automatically (and securely) uploaded to Dropbox&#8217;s servers, ensuring you have an offsite backup of all data therein.</li>
<li>Multiple computers can gain access to a Dropbox, ensuring files are automatically synchronized across computers without having to use complication version control systems.</li>
<li>All files in your Dropbox are versioned, ensuring you can always recover an older version of a file in case you accidentally overwrite a good version.</li>
</ul>
<p>Dropbox is supported on Windows, Mac OS X, and Linux, and now even has mobile applications, as well.  Further, I have a special place in my heart for this service because I started using it almost 2 years ago, and it has acted as a file sharing and project management tool for my own startup&#8217;s internal operations at <a href="http://parse.ly">Parse.ly</a>.  I was therefore more than ecstatic to discover that this excellent tool and its smart founders had also made it through all of the hurdles necessary to get an early-stage company the financing it needs: they&#8217;ve <a href="http://gigaom.com/2009/11/24/dropbox-raises-7-25m-crosses-3m-users/">raised over $7 million in financing and have over 3 million users</a>.</p>
<p>But there is another reason I absolutely love Dropbox: because <i>it was my idea</i>.  I invented it.</p>
<p><span id="more-475"></span></p>
<p>In the summer of 2004, I was really itching to get into <a href="http://code.google.com/soc/">Google&#8217;s Summer of Code competition</a>.  This was the summer I had taken a job working from home as the lead web developer at the <a href="http://uac-ny.org">Unemployment Action Center of NY</a>.  Though the job was great experience &#8212; letting me build my first full web application for a real client &#8212; I was itching to work on a technically juicy problem, something that affected <i>me</i> in my daily computer use.  </p>
<p>And so, I sat down for a day and wrote up a Google Summer of Code proposal for a new system I had invented called <i>Persistent Folders</i>.  It wasn&#8217;t <i>exactly</i> like Dropbox, but damn close.  Even the implementation is close: Dropbox and my system both sync files using rsync, and both use a Python daemon process.  The main difference is that since my system was meant to be open source, it did not require the use of a company-maintained service; instead, I proposed that users piggyback existing storage they have via web hosting providers.</p>
<p>Unfortunately, my project wasn&#8217;t selected.</p>
<p>Why am I posting this?  I recently had a discussion with another engineer after I had discussed some of the technology behind <a href="http://parse.ly">Parse.ly</a> with him.  He was surprised at how liberal I was with explaining our internal implementation, architecture, and algorithms.  He asked me, &#8220;Aren&#8217;t you worried that I could steal your idea?&#8221;</p>
<p>I responded, &#8220;You can steal it all you want; I dare you to try and implement it!&#8221;  I then explained that to me, ideas don&#8217;t matter.  I had the idea for a hundred startups that now exist before they started.  I know from talking to users and customers of Parse.ly that they had our idea before we implemented it.  What matters in software is not an idea, but <i>execution</i> of that idea.  Ideas are a dime a dozen.</p>
<p>I began this post with the statement, <i>I invented Dropbox</i>.  And now I&#8217;m here to tell you that it <i>doesn&#8217;t matter one bit</i>, because I never <i>implemented</i> Dropbox.  And you can&#8217;t own ideas&#8230;</p>
<blockquote><p>
If nature has made any one thing less susceptible than all others of exclusive property, it is the action of the thinking power called an idea, which an individual may exclusively possess as long as he keeps it to himself; but the moment it is divulged, it forces itself into the possession of every one, and the receiver cannot dispossess himself of it. Its peculiar character, too, is that no one possesses the less, because every other possesses the whole of it. He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me.<br />
<i>-Thomas Jefferson</i>
</p></blockquote>
<p>Imagine if when I had come up with this idea, I had patented it.  Would it really have been fair to force Dropbox to license my technology?  To sue them for &#8220;infringing&#8221; on my patent?</p>
<p>No way &#8212; these guys deserve the success they have.  How stifling it would have been for me to put any roadblocks in their way because &#8220;I had the idea first&#8221;!  The world is better because Dropbox exists.  And, these guys have had &#8212; in my opinion &#8212; <b>near-flawless execution</b>.  So, kudos to them.</p>
<p>Consider the following matrix:</p>
<div align="center">
<table style="border: 1px solid #000; padding: 3px; text-align: center;">
<tr>
<td>&nbsp;</td>
<td style="font-weight: bold; padding: 5px;">Mediocre Idea</td>
<td style="font-weight: bold; padding: 5px;">Great Idea</td>
</tr>
<tr style="background-color: #ccc;">
<td style="font-weight: bold; padding: 5px;">No implementation</td>
<td> <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </td>
<td> <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </td>
</tr>
<tr style="background-color: #ddd;">
<td style="font-weight: bold; padding: 5px;">Mediocre Implementation</td>
<td> <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </td>
<td> <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_confused.gif' alt=':-?' class='wp-smiley' /> </td>
</tr>
<tr style="background-color: #eee;">
<td style="font-weight: bold; padding: 5px;">Great Implementation</td>
<td> <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </td>
<td> <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_cool.gif' alt=':cool:' class='wp-smiley' /> </td>
</tr>
</table>
</div>
<p>A mediocre idea with a good implementation is worth infinitely more than a carefully-guarded, good idea with no implementation.  Of course, the best products are both great ideas and great implementations.  And I think my proposal for &#8220;Persistent Folders&#8221; &#8212; written three years before Dropbox even started &#8212; proves this to me in a very personal way.</p>
<p>Now, I&#8217;m certain the Dropbox guys never read my little proposal, because it was only sent to Google and otherwise sat on my hard drive for years, not viewed by anyone.  I had a great idea, but no implementation.  And the Dropbox guys took a great idea (one they arrived at on their own, I&#8217;m sure), and gave it the implementation it deserved.</p>
<p>For those of you who guard your ideas carefully, I&#8217;d suggest you stop wasting your time, get off your butt, and focus on <a href="http://gettingreal.37signals.com/">actually building stuff</a>.  Because if you don&#8217;t, someone else will!</p>
<div align="center"><a href="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2009/12/persist-poster.jpg" target="_blank"><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2009/12/persist-poster-300x219.jpg" alt="persist-poster" title="persist-poster" width="300" height="219" class="aligncenter size-medium wp-image-492" /></a></div>
<p>For the curious, below is my proposal to Google Summer of Code 2004, unaltered from its original draft.  This is just a relic; for now, I&#8217;m glad to keep <a href="http://parse.ly">hacking on my own little idea</a>, hoping one day I can look back and say I <i>executed</i> as well as Dropbox did&#8230;</p>
<blockquote><p>
<strong>PERSISTENT FOLDERS: A New Metaphor for Data Synchronization</strong><br />
<i>May 13, 2004</i></p>
<p><strong>The Problem</strong></p>
<p>Computer users are more and more finding themselves with a serious problem: the fragmentation of personal data across multiple physical machines, and even multiple operating systems.  Users who find it most comfortable to have a desktop machine at home and a mobile laptop computer &#8220;on-the-go&#8221; (for business or trips) have to deal with chaotic and often frustrating manual methods to copy that data to the needed places.  Some users carry USB memory sticks &#8212; which hold their important &#8220;working set&#8221; of files &#8212; and either work directly off those disks (suffering reduced speeds) or make copies of the folders therein on their actual machines, as they become needed, spreading yet more copies and compounding the problem of synchronization.  Others abuse ubiquitous technologies for accessing important files, by either e-mailing the files to themselves or by uploading them temporarily to web or FTP servers.</p>
<p>The end result of any of these methods is fragmentation of personal data, with error-prone manual processes for replication, and the inability for a consistent way to search, backup or even just keep track of all the important files and folders spread among the PCs in question.</p>
<p>What is needed to solve this problem, or at least make the problem more manageable, is an intelligent, user-friendly, customizable cross-platform program that allows for transparent synchronization of personal data across multiple computers and systems, either via a LAN or via the Internet.</p>
<p><strong>Introducing the Persistent Folder</strong></p>
<p>Up to this point, most users are used to understanding folders as existing solely in one location.  The only way to get a folder&#8217;s data onto another machine is to copy that folder, thus making a duplicate.  The goal of this project will be to introduce a new high-level data storage mechanism known as a Persistent Folder.  Persistent Folders differ from regular folders in that they are meant to be transparently persistent, or synchronized, across different computers.</p>
<p>To explore a hypothetical example, imagine user Joe sits down to do some personal accounting work on Friday.  He creates a folder on his desktop called &#8220;Personal Accounting,&#8221; and begins working on some OpenOffice spreadsheets in that folder.  A few minutes later, Joe realizes that some of his accounting work will have to be done while he is away during the weekend, on his laptop computer.</p>
<p>To enable this, he simply right-clicks the folder on his desktop and says &#8220;Make this folder persistent across multiple computers.&#8221;  When he does this, a dialog comes up asking him to type in a description of the persistent folder, and to select computers on which he wishes to make this folder persistent.  Joe is presented with a dialog of computers currently available on the LAN.  He sees his laptop, &#8220;MobileJoe&#8221;, and selects it.  He then presses OK.</p>
<p>Within seconds, Joe sees the folder &#8220;Personal Accounting&#8221; appear on his mobile computer&#8217;s desktop, even though he hasn&#8217;t even touched his mobile computer yet.  When he enters that folder, he sees the same spreadsheets that are available on his main PC&#8217;s desktop.</p>
<p>These two folders are now treated by Joe as &#8220;one persistent folder available across two computers.&#8221;  He can add files to one folder and they will automatically be propagated to the other.  He can modify files and the new versions will then exist in the other.  Joe no longer has to worry about pushing his data back and forth across the computers.</p>
<p><strong>Internet Synchronization by way of Ubiquitous Services</strong></p>
<p>One of the major questions one may ask at this point, &#8220;that is all well and good for persistence of a folder on a LAN, but what about when I leave my home/office, and need to synchronize over the Internet?&#8221;</p>
<p>One approach would be to have a special server application with which all computers that wish to share persistent folders could synchronize.  But then the user needs his own server, and needs to install my little server daemon on it.  And not many users have their own servers on which they can just install any old application.  So for normal users, this, in fact, is no approach at all.</p>
<p>Although most users don&#8217;t run their own servers, many modern users do have _server access_.  That is, many users do have Web/FTP hosting providers to whom they pay subscriptions, and these servers power their blogs, personal photo stores, etc.  The goal of Persistent Folders would be to allow users to piggyback their existing web services to synchronize their files, essentially turning a folder on that server into a Persistent Folder Repository.</p>
<p>A dialog in the properties of a persistent folder would include a checkbox that allows the user to &#8220;make this folder available over the Internet.&#8221;  It would then allow a user to choose a method for making this folder available via the Internet, asking the user to provide a &#8220;persistent folder repository&#8221; via FTP by default (due to commonality), but equally possible would be scp, rsync, NFS, or even something like cvs/svn (the goal, of course, would be to make the design modular enough that it could support any server type with basic file system operations).</p>
<p>Then, every other visible machine on the LAN who shares that persistent folder would have option enabled automatically.  If the machines are offline, the option can be entered manually by the same method explained above.</p>
<p>From that point on, the folders become persistently available and transparently usable, just as before.  If the other computers are available on the LAN, then the program utilizes LAN speeds and synchronizes directly.  Otherwise, it synchronizes with the Internet Repository.</p>
<p>Lucky Joe is now able to work on his files in the office, leave his laptop there (&#8221;the darn thing is so heavy to carry around!&#8221;), return home, and continue right on working on those files which are now found in the &#8220;same folder&#8221; on his desktop machine at home. </p>
<p><strong>Implementation Ideas</strong></p>
<p>I plan on implementing this idea in Python, since one of the major goals of the project is to allow Persistent Folders to exist not just across computers, but also across operating systems (so that a Windows desktop could have a persistent folder that also exists on a Linux laptop, for example).  For a user interface, I plan to use PyGTK, since that&#8217;s what I know, and since it is also cross-platform.  I need something powerful like GTK since there will be times when user intervention will be necessary, but since it is a goal of this project to reduce the number of times the user must intervene, I want to make sure that when he does, he is presented with sane, human-readable, and user-friendly dialogs.</p>
<p>I don&#8217;t plan to reinvent the wheel.  Most of the magic of Persistent Folders is just making existing synchronization tools work relatively silently and in a way that makes sense with a user&#8217;s workflow.  The main tool I am thinking of using is rsync, the relatively-ubiquitous UNIX utility for incremental synchronization of directory trees.  I considered using the unison, as recommended by Ubuntu&#8217;s Wiki entry, but I saw two major problems: (1) unison is no longer under active development and (2) it is written in OCaml, a relatively obscure language which I don&#8217;t know.  Therefore, any bugs I discover in unison would not be fixed in a timely fashion by its developers, and any features I&#8217;d like to add to support my idea would be quite difficult to implement.</p>
<p>As for monitoring folders for changes, I imagine the most elegant solution would be to take advantage of inotify under Linux (like Beagle does) and perhaps handle ChangeNotify events under Windows.  I&#8217;d really like to avoid polling, since polling is just plain evil for something as potentially neat as this.  Regardless, I&#8217;ll probably need to code Yet Another Daemon (or Windows service) to keep track of Persistent Folders on the local machine and their equivalents across the network.</p>
<p>Finally, for secure synchronization of files, I plan to use SSH tunneling wherever possible, which is available under Windows under the OpenSSH for Windows Sourceforge project, http://sshwindows.sf.net.  Linux distros like Ubuntu, of course, have all the ssh support one needs.</p>
<p><strong>Conclusion</strong></p>
<p>This project aims to introduce a new metaphor users may utilize to share important files across multiple computers: the Persistent Folder.  A Persistent Folder is not a shared a folder; rather, it is seen as a single folder that exists locally across multiple computers, and can be treated by the user as such.  Changes at any one folder rapidly propagate to the others.  Properly implemented, this may provide a better way for users to manage important data that might otherwise be scattered, fragmented, and even lost through the daily shuffle of file transfers across networked PCs.</p>
<p><strong>Appendix A: Project Roadmap</strong></p>
<p>o June 24: Begin Work, with ideas now fully developed in the form of documents.  Post these documents to Ubuntu&#8217;s Wiki to encourage ideas from community. </p>
<p>o July 5: Have a console synchronization wrapper and some network discovery stuff in Python written, and have UI concepts designed in Glade.</p>
<p>o July 20: Make 0.1 (GUI and basic features working) release, so that Google can show it off at OSCON?</p>
<p>o August 1: Have other great features, like the Internet synchronization and multi-protocol support, in 0.2 release.</p>
<p>o August 10: Consider working on features to allow transparent backup and versioning, to include with bug fixes in a 0.3 release.</p>
<p>o August 20: Make simultaneous 0.4 releases on Linux and<br />
Windows, hammering out as many cross-platform issues as possible. Add inotify/ChangeNotify support if not already there.</p>
<p>o August 30: The big 0.5 release, finished for Google&#8217;s deadline.  Let Google/Ubuntu make the decision if it&#8217;s worthy of being renamed a &#8220;1.0&#8243; release.</p>
<p>o September 1: Live a less stressful life, since my files are now neatly synchronized among my PCs!  But I&#8217;ll keep making it better.</p>
<p><strong>Appendix B: Hold On, Isn&#8217;t Samba Good Enough?</strong></p>
<p>One common response to this project may be, &#8220;Aren&#8217;t Samba and SMB shared folders good enough?&#8221;  Though Samba is good, I do not believe it is good enough.  Here&#8217;s why:</p>
<p>(1) Samba does not aim to present the user with a metaphor of a folder existing in multiple locations at the same time.  I believe this metaphor would be appreciated as powerful by longtime computer users and subconsciously acknowledged as highly usable by novices.</p>
<p>(2) Samba only allows users to share folders on their drives.  Other Samba users may then mount those folders via the LAN.  This two-step, asymmetric process already seems complicated and convoluted to end users.  But more importantly, synchronization is left up to the user.  In theory, users could avoid synchronization altogether and work on the files directly, via the share.  In practice, LAN speeds are not adequate, and other issues are raised (such as file locking and write conflicts).  This forces users to home-brew their own synchronization protocol to make sure duplicate files at different versions doesn&#8217;t result in an accidental loss of data.</p>
<p>(3) Samba does not provide any easy method to access personal files once one leaves the LAN and enters the WAN, short of opening up a bunch of ports on your router and trying to connect in from outside (a very slow and insecure method).</p>
<p>(4) Samba provides no recourse when a computer is no longer available.  Persistent Folders, on the other hand, make data available &#8220;offline&#8221; by design.</p>
<p>(5) Samba does not know whether two duplicate files exist across the network.  Therefore, Samba cannot be immediately utilized as a transparent form of backup.</p>
<p>Is the Persistent Folder meant to replace Samba?  Of course not.  I believe Samba has specific purposes: to allow for easy, fast, one-time transfers of files across a LAN, and to allow networked printer and device sharing.  I do not believe Samba is an adequate solution to allow a user to  treat a folder as if it existed on multiple computers at once.</p>
<p><strong>Appendix C: Versioning&#8217;s the Thing</strong></p>
<p>Upon further contemplation of this project, I realized I had left a question unanswered in this document.  What is the right way to deal with version conflicts during the silent synchronization phase among Persistent Folders?</p>
<p>Imagine user Joe works on a file in a Persistent Folder which exists on his laptop and desktop computers.  The first version (let&#8217;s call it version 0.1) was created on his desktop, and Joe had the laptop on the same network, allowing automatic synchronization to occur.  But then Joe&#8217;s laptop was disconnected from his desktop, as Joe was without network or even Internet access.  He works on the document a bit, which can now be called version 0.2.  But then Joe forgets that he worked on the document on his laptop, and when he gets home, he works on his desktop computer, creating a version 0.2 there too.  Which version 0.2 should be synchronized?</p>
<p>Normally, the answer would be to pick the most recent one.  But we don&#8217;t want Joe&#8217;s laptop work to be lost, just because Joe forgot about his prior work, do we?  Well, what needs to happen is a bit of smart conflict resolution with no data loss.</p>
<p>I propose that Persistent Folders should also be versioned to a sane degree.  Perhaps by default 3-5 versions of files are always kept, with the most recent versions visible directly in the persistent folder, and other versions buried (in .dotfiles or hidden folders) behind there.  Then, the Persistent Folder monitor should inform Joe (&#8221;whisper&#8221; to Joe via the notification area/systray) that there was a conflict, and the newest file was chosen.  But at any point, Joe can choose to revert a file back to an older version.  The interface should be such that Joe can even see where the file was edited, for example:</p>
<p>Personal Accounts.xls &#8211; Prior Versions<br />
  o version 0.2: edited on MobileJoe<br />
  o version 0.2: edited on DesktopJoe<br />
  o version 0.1: edited on DesktopJoe</p>
<p>Of course, versioning could be disabled (at risk of data loss to the user), or could be enabled as &#8220;smart versioning&#8221; to only version files when conflicts occur during synchronization.  Some may say that versioning is dangerous because it can drastically increase disk usage, but as I mentioned above, the other benefit is that the user gets redundant network backup of files for free.  In higher versions of Persistent Folders, things could get more sophisticated by allowing users to turn off versioning even at the file-level, but I don&#8217;t think that&#8217;d be necessary in the first few releases.
</p></blockquote>
<p>So, for those not keeping score, Dropbox supports:</p>
<ul>
<li>Windows, Linux and Mac OS X syncing, using a scheme similar to that described above, except with a managed set of servers (Dropbox&#8217;s) acting as the &#8220;repository&#8221;</li>
<li>sync over LAN (in latest beta releases) when PCs are local</li>
<li>file-level versioning</li>
<li>Collaboration by sharing folders with other users &#8212; a feature I didn&#8217;t discuss in my proposal, but that would be a clear next step for a managed service</li>
</ul>
<p>Go Dropbox!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/12/11/ideas-and-execution/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Simplifying CSS with 960.gs</title>
		<link>http://www.pixelmonkey.org/2009/12/08/simplifying-css-with-960-gs</link>
		<comments>http://www.pixelmonkey.org/2009/12/08/simplifying-css-with-960-gs#comments</comments>
		<pubDate>Tue, 08 Dec 2009 20:20:52 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=469</guid>
		<description><![CDATA[I recently did some web design work in collaboration with a graphic designer.  She introduced me to what has become my latest favorite piece of CSS code: 960.gs.
960.gs is a CSS grid framework, similar in spirit to Blueprint CSS and YUI Grid.  However, 960.gs is at once more minimalist than these approaches, and [...]]]></description>
			<content:encoded><![CDATA[<p>I recently did some web design work in collaboration with a graphic designer.  She introduced me to what has become my latest favorite piece of CSS code: <a href="http://960.gs/">960.gs</a>.</p>
<p>960.gs is a CSS grid framework, similar in spirit to <a href="http://www.blueprintcss.org/">Blueprint CSS</a> and <a href="http://developer.yahoo.com/yui/grids/">YUI Grid</a>.  However, 960.gs is at once more minimalist than these approaches, and more thorough.</p>
<p>The <a href="http://sonspring.com/journal/960-grid-system">author has a detailed blog post</a> explaining his motivations for working on 960.gs, so I won&#8217;t rehash each of those.  Instead, I&#8217;ll just dive into what I liked about it.</p>
<p><span id="more-469"></span></p>
<ol>
<li><b>Very simple and comprehensible name choices for CSS classes</b>: You can see their <a href="http://960.gs/demo.html">demo page</a> (view its source) for examples, but I can even summarize the approach in a few short sentences.  You begin a grid container with a <i>container_XX</i> class, where XX is the number of total grid columns in the container.  Every child element has a <i>grid_XX</i> class, which is the number of columns (aka colspan) for that element.  All grid_XX elements should add up to the XX amount in the container if you are using all the grid elements available.  To use larger gutter widths, you can use <i>prefix_XX</i> and <i>suffix_XX</i> classes.  Finally, for any child grid elements, you need to mark the first one with an <i>alpha</i> class and the last one with an <i>omega</i> class &#8212; this is necessary to get rid of left/right margins on starting and ending elements.</li>
<li><b>Excellent CSS generator</b>: this <a href="http://www.spry-soft.com/grids/">online CSS generator</a> tool lets you generate 960.gs CSS that is just right for your website.</li>
<li><b>jQuery-based bookmarklet for double-checking grid layouts</b>: another <a href="http://gridder.andreehansson.se/">online tool</a> is a bookmarklet which will &#8220;inject&#8221; a customizable grid overlay on any existing site, to help with alignment.</li>
<li><b>Templates for every major design tool</b>: I saved the best for last.  Nathan&#8217;s focus in designing 960.gs was to allow better collaboration between trained graphic designers (whose tools are typically Adobe Photoshop, Fireworks, Illustrator, etc.) and trained web designers (whose tools are things like Rails, Grails, Django).  To ease this collaboration, the author <a href="http://bitbucket.org/nathansmith/960-grid-system/src/tip/templates/">provides templates for every major graphic design tool</a> that has &#8220;grid overlays&#8221; compatible with the 960.gs framework.</li>
</ol>
<p>Finally, the entire project is hosted <a href="http://bitbucket.org/nathansmith/960-grid-system/">on bitbucket and developed in the open</a>.  What more could you ask for?  This has really simplified my approach to standard CSS designs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/12/08/simplifying-css-with-960-gs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parse.ly presentation at NYC Search &amp; Discovery Meetup</title>
		<link>http://www.pixelmonkey.org/2009/11/09/parse-ly-presentation-at-nyc-search-discovery-meetup</link>
		<comments>http://www.pixelmonkey.org/2009/11/09/parse-ly-presentation-at-nyc-search-discovery-meetup#comments</comments>
		<pubDate>Mon, 09 Nov 2009 11:44:03 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Startups]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cogtree]]></category>

		<guid isPermaLink="false">tag:blog.cogtree.com://3ff8a70fcd1be6ee3b1e63380d9c6e58</guid>
		<description><![CDATA[Hi Parse.ly fans.  Andrew here.  I just wanted to let you know that I presented Parse.ly at the NYC Search &#038; Discovery Meetup on Thurs, Oct. 29.  The meetup is organized by Otis Gospodnetic (blog), who is one of the authors of Lucene in Action and the author of the ...]]></description>
			<content:encoded><![CDATA[<p>I presented Parse.ly at the NYC Search &#038; Discovery Meetup on Thurs, Oct. 29.  The meetup is organized by Otis Gospodnetic (blog), who is one of the authors of Lucene in Action and the author of the upcoming book, Solr in Action.  We make heavy use of Lucene and Solr on Parse.ly, so it was exciting to get an opportunity to present to a community of fellow technologists building systems with these excellent technologies.</p>
<p><span id="more-460"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/11/09/parse-ly-presentation-at-nyc-search-discovery-meetup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JPMorgan Chase, &#8220;valid&#8221; $39 overlimit fees, and humanity</title>
		<link>http://www.pixelmonkey.org/2009/10/30/jpmorgan-chase-valid-fees-and-humanity</link>
		<comments>http://www.pixelmonkey.org/2009/10/30/jpmorgan-chase-valid-fees-and-humanity#comments</comments>
		<pubDate>Sat, 31 Oct 2009 02:07:57 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Corporate Power]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=452</guid>
		<description><![CDATA[In addition to running Parse.ly, I also run a small consulting business, Aleph Point, Inc.  In the course of working on client jobs, I sometimes have to make business purchases, which I always pay in full at the end of every month.  I have never carried a balance on my credit card and [...]]]></description>
			<content:encoded><![CDATA[<p>In addition to running <a href="http://parse.ly">Parse.ly</a>, I also run a small consulting business, <a href="http://alephpoint.com">Aleph Point, Inc.</a>  In the course of working on client jobs, I sometimes have to make business purchases, which I always pay in full at the end of every month.  I have never carried a balance on my credit card and I never intend to.</p>
<p>When I signed up for a business checking account at Chase, the branch manager who I worked with (and who now no longer works there) encouraged me to sign up for a business credit card, as well.  I thought, hey, why not &#8212; I&#8217;m just going to use it for small purchases like monthly hosting fees and the like.</p>
<p>Recently, I made a relatively large purchase at Best Buy for a client, which I was going to be reimbursed for.  It was about $200.  I already had a balance of $350 on my account, and a few days later my account was closing for the month.</p>
<p>When I looked over my account information a few days later, I found a strange charge.  <b>$39 OVERLIMIT FEE</b>.  What&#8217;s that, I thought?</p>
<p><span id="more-452"></span></p>
<p>Well, I went to my branch to find out.  The branch manager explained that my credit card had a credit limit of $500.  Wow.  That&#8217;s a low credit limit.  I explained that I sometimes make reimbursed purchases of more than $500, so this was quite strange value to pick.  Further, I already had multiple other credit cards with much higher limits, so I don&#8217;t get why they would choose such a small limit for me.  &#8220;Oh&#8221;, the branch manager said, &#8220;that&#8217;s because we&#8217;re picking $500 limits for all new business customers.&#8221; Hmph, fine&#8230; seems strange, but fine.  (The engineer in me thinks, &#8220;Couldn&#8217;t they have done an analysis of my cash flow to figure out a more reasonable limit?  Of course not &#8212; this is a bank, after all.  That&#8217;s expecting them to be smart.&#8221;)</p>
<p>&#8220;OK,&#8221; I said.  &#8220;So I have a $500 limit on the account.  But why is there an OVERLIMIT FEE?  Shouldn&#8217;t it just be declined?  What is that about?&#8221;  She says, &#8220;Oh, unfortunately, I can&#8217;t explain why that was charged.  You&#8217;ll have to call the number on the back of the card.&#8221;  I say, &#8220;Really?  Why?&#8221;  She says, &#8220;Unfortunately, we can&#8217;t discuss credit card fees at the branch.&#8221;  This strikes me as a very strange policy, probably just put in place as a deterrent for people actually contesting their fees.  Very sneaky little bastards, these Chase guys.  But fine, for now I&#8217;ll follow the policy.</p>
<p>A couple days later, I call up the number on the back of the card.  I ask about the fee.  He says, &#8220;Yes, sir, that is a completely <b>valid</b> fee.&#8221;  I reply, &#8220;Valid?  Who cares if it is valid?  Any fee you guys put on my account is &#8216;valid&#8217;.  The question is, why was it put there?  And is it justified?&#8221;  He replied, &#8220;It was put there because you went over your $500 limit.&#8221;  I asked, &#8220;Why did you let me go over the $500 limit?  If I have a limit, shouldn&#8217;t I get TRANSACTION DECLINED when I go over?  Isn&#8217;t that the whole point of a limit?&#8221;</p>
<p>The guy on the phone laughs.  Literally, he laughed at me.  &#8220;No, Chase provides overlimit protection as a convenience to our customers.  So that if, for example, you&#8217;re taking a client out to dinner, you won&#8217;t be embarrassed by going over your limit.&#8221;</p>
<p>I didn&#8217;t respond for a couple of seconds, because I was parsing his sentence.  &#8220;So, this isn&#8217;t so much a fee, as much as a convenient service Chase is providing me.  You guys are saving my embarrassment for the mere cost of $39. I get it now.&#8221;</p>
<p>&#8220;Yes, sir.&#8221;</p>
<p>Apparently, the guy didn&#8217;t get my sarcasm.  &#8220;Here&#8217;s what I think,&#8221; I continued.  &#8220;I think you guys are just ripping me off.  There is absolutely no reason not to decline the transaction, except that in allowing the transaction to go through, you now assess a fee.  It doesn&#8217;t cost you anything for me to go $50 over limit, as I did.  And I paid down the account in full through my automatic payment system just a few days later.  So, I think you guys just figured &#8212; hey, here&#8217;s an easy way to make free money off our consumers.  Here&#8217;s another fee we can invent because we are greedy bastards.&#8221;</p>
<p>He seemed a little taken aback, and then said, &#8220;No, sir.  Chase does not rip off its customers.  Chase is here to serve its customers.&#8221;</p>
<p>&#8220;OK,&#8221; I say.  &#8220;I&#8217;ve been your customer for more than a decade.  So since you&#8217;re in the business of serving customers, I suppose you&#8217;ll have no problem removing this fee, which is completely unjustified.&#8221;</p>
<p>&#8220;Unfortunately, sir,&#8221; he responds, &#8220;I cannot remove the fee.&#8221;</p>
<p>&#8220;What do you mean?  Of course you can remove it,&#8221; I say, incredulous.  &#8220;Just pull up my account and press delete on the line that says, OVERLIMIT FEE.&#8221; </p>
<p>&#8220;No, sir, I cannot.  It is a valid fee.  Valid fees cannot be removed.&#8221;</p>
<p>&#8220;There&#8217;s that word again.  Here is another example of a valid fee: $500 for transferring money between my checking and savings account on a Wednesday.  If you guys had that policy, that would be a valid fee.&#8221;</p>
<p>&#8220;We don&#8217;t have that policy.&#8221;</p>
<p>&#8220;Listen,&#8221; I&#8217;m revving now.  &#8220;It would be one thing if you guys charged $1 for going over my credit limit.  But you charge $39.  You know how you guys came up with the number $39?&#8221;</p>
<p>&#8220;This fee is set by the executives of the banks.&#8221;</p>
<p>&#8220;Wow, I wish I had just recorded that to send to Congress!  No, really &#8211;&#8221;, I interrupt.  &#8220;I don&#8217;t care who came up with the number.  But I&#8217;ll tell you how $39 was picked.  It was picked because after rigorous market testing, they found that if the fee were $40, people would grab their kitchen knife, run out in the street, and kill every fucking Chase banker in sight.&#8221;</p>
<p>He was silent.</p>
<p>&#8220;So, the executives decided &#8212; better make it $39.&#8221;</p>
<p>He didn&#8217;t laugh this time.  No sense of humor.  &#8220;Listen, just let me speak to a supervisor to get this issue resolved.&#8221;</p>
<p>He insists, &#8220;Sir, no supervisor can remove this fee.  The executives mandate that we cannot remove it.&#8221;</p>
<p>&#8220;Who can I contact to appeal the fee, AND the policy that does not allow it be removed, AND the appointment of the executive who instituted it?&#8221;</p>
<p>&#8220;You can write a letter to business services in Delaware,&#8221; the representative says.</p>
<p>Frustrated, I end with a rant.  It was long-winded and I won&#8217;t produce the whole thing here.  It talked about <a href="/2009/08/21/chase-insecure">my prior blog post</a>, which pointed out how Chase ran an insecure document exchange system.  It talked about how there are currently 21 Chase customers who are &#8220;mad as hell and not gonna take it anymore&#8221;, ranting on my site about how crappy Chase is.  And I discussed how even after contacting Chase about this issue, even after pointing them to a significant problem with numerous angry customers, they do nothing.  Just like they are doing nothing now.  A company that is like a black hole.</p>
<p>&#8220;And as a systems engineer,&#8221; I conclude, &#8220;the fact that you guys can&#8217;t remove this fee just makes me so god-damn depressed, I can&#8217;t even express it to you.  We have managed to put a man on the moon, but JPMorgan Chase bank cannot hit delete on a fucking spreadsheet.  How pathetic is that?&#8221;</p>
<p>I resignedly ask for the complaint address.  I write it down.  And I end the conversation with, &#8220;Listen, I know you&#8217;re just doing your job.  But I want to make it clear to you that your company does not deserve a single god-damn dime of my money.  Neither the money in my personal checking account, nor in my business checking account, nor any of the money my representatives awarded you in that $25 billion bailout that saved your company&#8217;s greedy ass.  It&#8217;s not your fault &#8212; it&#8217;s your company&#8217;s fault.  But for the love of everything good and just in this world, man, why the hell do you work for these clowns?&#8221;</p>
<p>That bit of humanity connected with him, just a little.  I could hear it in his voice.  &#8220;I hope things turnaround for you with Chase.  I really do.  But there&#8217;s nothing I can do for you at this time.&#8221;</p>
<p>I hope things turn around, too.  In the meanwhile, I&#8217;ll sharpen my kitchen knife.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/10/30/jpmorgan-chase-valid-fees-and-humanity/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Parse.ly releases new version on Sunday, Sept. 20</title>
		<link>http://www.pixelmonkey.org/2009/09/21/parse-ly-releases-new-version-on-sunday-sept-20</link>
		<comments>http://www.pixelmonkey.org/2009/09/21/parse-ly-releases-new-version-on-sunday-sept-20#comments</comments>
		<pubDate>Tue, 22 Sep 2009 00:56:51 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Startups]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cogtree]]></category>

		<guid isPermaLink="false">tag:blog.cogtree.com://a2bd2fb255fbc8ab2301c4d3cd19fc41</guid>
		<description><![CDATA[If you were trying to log into Parse.ly between 11pm-1am this Sunday, you may have noticed that it was intermittently down for maintenance.  Over the last several weeks, we've been working hard to roll out some new features, polish some rough edges, and improve our infrastructure after our launch last ...]]></description>
			<content:encoded><![CDATA[<p>If you were trying to log into Parse.ly between 11pm-1am this Sunday, you may have noticed that it was intermittently down for maintenance.  Over the last several weeks, we&#8217;ve been working hard to roll out some new features, polish some rough edges, and improve our infrastructure after our launch last &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/09/21/parse-ly-releases-new-version-on-sunday-sept-20/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chase&#8217;s completely insecure and broken &#8220;secure&#8221; document exchange system (aka securedx, secure-dx)</title>
		<link>http://www.pixelmonkey.org/2009/08/21/chase-insecure</link>
		<comments>http://www.pixelmonkey.org/2009/08/21/chase-insecure#comments</comments>
		<pubDate>Fri, 21 Aug 2009 14:41:17 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=432</guid>
		<description><![CDATA[A few days ago, I got a call from my girlfriend, Olivia.  I was so deep in working on my startup, Parse.ly, that I hadn&#8217;t checked my bank account statements in several weeks.  We just went into private beta last Thursday, after DreamIt Demo Day.  She noticed some suspicious charges, and so [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, I got a call from my girlfriend, Olivia.  I was so deep in working on my startup, <a href="http://parse.ly">Parse.ly</a>, that I hadn&#8217;t checked my bank account statements in several weeks.  We just went into private beta last Thursday, after <a href="http://www.techcrunch.com/2009/08/13/dreamit-releases-ten-startups-into-the-wild/">DreamIt Demo Day</a>.  She noticed some suspicious charges, and so I looked into them.  Indeed, it looked like I had been a victim of fraud: there were three charges that clearly was not me.</p>
<p>I immediately called Chase Customer Service.  In order to confirm the details about my account, the representative needed me to identify the fraudulent charges, but also identify charges that were actually valid.  For this latter bit, I needed to identify the time/place of a specific transaction.  This card was mostly used for online auto bill payments, so this turned out to be impossible for any of my last 20 valid payments. Yet the customer service rep insisted that I name a time and place.  I told her, &#8220;The time and place was whenever the server for this system decided to automatically bill my account.  I don&#8217;t know where their server is, I don&#8217;t know what time their cron jobs run.&#8221;</p>
<p>&#8220;Cron jobs?&#8221; she said.</p>
<p>Right, I had been hanging around techies at <a href="http://dreamitventures.com">DreamIt Ventures</a> for too long.  &#8220;Listen, the transaction didn&#8217;t take place physically, it took place digitally.  I can identify one transaction, which is about a month old, where I actually used the card in-person to buy something.&#8221;  She finally understood and let me move on.</p>
<p><a href="http://burakkanber.blogspot.com/">Burak</a> from <a href="http://trendsta.com">Trendsta</a> said he felt bad for me, for how patient I had to be with this person.  But that was the least of it.  This little technical misunderstanding was nothing compared to what followed.</p>
<p><span id="more-432"></span></p>
<p>I was told that in order to get a credit back from my account, they had to collect from me a signed affidavit indicating the charges were fraudulent.  This affadavit would be &#8220;securely shared&#8221; with me via e-mail.  OK, &#8220;sounds good&#8221; I said.  I waited around for the e-mail to come in.</p>
<p>Finally, two e-mails arrived in my inbox.  The important bits <span style="color: red">are in red</span>.  First:</p>
<blockquote>
<h3>Message from Chase Customer Claims Secure Document Exchange</h3>
<p><strong>From:</strong> <span style="color: red">chase_customer_claims@secure-dx.com</span></p>
<p>Welcome to the Chase Customer Claims Secure Document Exchange. You recently contacted Chase regarding your claim number XXXX. Your documents are available for your review.</p>
<p>Per our telephone conversation, you will need to register to our secure website. </p>
<p><strong style="color: red"><br />
Your initial password is: password</p>
<p>Your initial user name has been sent to you in a separate email.<br />
</strong></p>
<p>On your first log in, you will be required to select a new password.</p>
<p>Thank you for using Chase Customer Claims Secure Document Exchange.</p>
<p>To contact Chase for claim related questions or to withdraw your claim, please call 1-866-564-2262.
</p></blockquote>
<p>Any geek reading this will immediately identify some key things wrong with this e-mail that make it look like a total phishing expedition.  Namely:</p>
<ol>
<li>The e-mail address, rather than being from a chase.com domain, was from a strange domain named &#8220;secure-dx.com&#8221;.</li>
<li>Rather than sending a cryptographically secure, expiring activation link, a default password was sent in plain text.</li>
<li>To make matters worse, the password is the same for all users, and thus anyone who can guess my e-mail address can easily impersonate me on this &#8220;secure document&#8221; website.</li>
<li>The default password is &#8220;password&#8221;.  WTF?! I mean, c&#8217;mon?</li>
</ol>
<p>I didn&#8217;t quite understand why I needed a &#8220;second e-mail&#8221; now, but I opened it up.  Here it is, excerpted:</p>
<blockquote>
<h3>Your Chase Customer Claims Secure Document Exchange Electronic Package is available online</h3>
<p><strong>From:</strong> <span style="color: red">chase_customer_claims@secure-dx.com</span></p>
<p>ANDREW MONTALENTI,</p>
<p>Welcome to the Chase Customer Claims Secure Document Exchange.You recently contacted Chase regarding your claim number XXXX. Your documents are available for your review. </p>
<p>Per our telephone conversation, you will need to register to our secure website by clicking on the link below or copy and paste the link into your browser&#8217;s address bar.</p>
<p><span style="color: red">https://chase.secure-dx.com/consumerdcx-chase_atm</span></p>
<p>Your user name is my.email@hidden.com</p>
<p><span style="color: red">Your initial password has been sent to you in a separate email</span></p>
<p><span style="color: red">On your first log in, you will be required to select a new password. NOTE: This site is different from Chase.com and passwords are not related. Updating your password on Chase Customer Claims Secure Document Exchange will have no impact on established Chase.com passwords.</span></p>
<p>Once registered, you will be able to access your customer correspondence on our secure website. You may be offered the option to complete and sign the form online if you wish to do so. [...]
</p></blockquote>
<p>To say I was confused would be a major understatement.  I was downright depressed.</p>
<p>My guess is that the engineers at Chase thought that by separating the &#8220;password e-mail&#8221; from the &#8220;user e-mail&#8221;, that somehow made the whole communication more secure.  Two e-mails are better than one, right?</p>
<p>The most important thing to point to is the link.  The link where this secure communication will happen is <strong>not at the chase.com domain</strong>  Instead, it is at https://<strong>chase.secure-dx.com</strong>/consumerdcx-chase_atm.  There is no way, NO WAY this is a real Chase site, I think.</p>
<p>I click on the link and in Firefox, I see this:</p>
<p><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2009/08/chase_forgery.png" alt="chase_forgery" title="chase_forgery" width="435" height="228" class="aligncenter size-full wp-image-437" /></p>
<p>At this point, my paranoid self turns on.  Curious, I click through the link anyway.  And I see this:</p>
<p><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2009/08/chase_sdx.png" alt="chase_sdx" title="chase_sdx" width="600" height="294" class="aligncenter size-full wp-image-438" /></p>
<p>Now I&#8217;m really paranoid.  Links off secure-dx.com pointing back to chase.com&#8217;s privacy policy.  A username and password box and a sort of hokey imitation of the Chase.com web design.  I realize, holy shit, I&#8217;m being duped!  Not just small-time credit card fraud, but someone has managed to really take over my life!</p>
<p>Why am I freaking out?  The customer service person I talked to, I realize what must have happened.  That wasn&#8217;t Chase.  Someone stole my credit card information and then set up a call forwarding on my cell phone, somehow, to point Chase&#8217;s customer service number to some fraudulent interceptor.  This person then diligently took my claim only to send me an e-mail that would get yet more information out of me and take me for even more money.  I freaked!</p>
<p>Immediately, I double-checked my call logs and compared them to Chase.com customer service numbers.  I made sure to change my DNS server to OpenDNS to make sure no one was somehow intercepting that.  Finally, I realized I could look at the number written on the back of my Chase credit cards.  It all checked out &#8212; the number was good.  So I switched phone.  I called Chase customer service on both my phone and Olivia&#8217;s.  I made sure the messages were exactly the same.  From Olivia&#8217;s phone, I called back Chase again to speak to someone there about this.  But then I got even more paranoid &#8212; how big could this be? &#8212; so I decided to hang up.  Instead, I called my local Chase branch in my neighborhood.</p>
<p>With my local branch&#8217;s help, I got transferred via a branch office line to the actual Chase customer service.  <em>Finally on a secure line</em>, I thought to myself.  When they picked up, I was expecting to uncover the scam of the century.  I felt like an investigative journalist right on the tail of something truly big.</p>
<p>But then I spoke to the Chase representative, on the secure line, and she explained to me that this is just the normal procedure.  secure-dx.com is the website they use for &#8220;securely&#8221; sharing documents.</p>
<p>I was livid.  I explained everything wrong with this setup.  I demanded to speak to a supervisor.  I spoke to a supervisor.  He said he did not know why the system was the way it was.  He wasn&#8217;t a software guy.  He just knew that &#8220;with the way the business is changing lately, a lot of systems are in flux.&#8221;  I said this flux was unacceptable.  &#8220;I&#8217;m a software engineer,&#8221; I said.  &#8220;How can I possibly trust Chase to manage my financial accounts if something as simple as sharing a PDF document is done in the least secure way possible?&#8221;  What other skeletons might they have in the closet?</p>
<p>I wanted to be forwarded to the department responsible for that.  After my explanation to him of what was wrong, he fully understood the problem.  To his credit, he admitted it was wrong the way it was set up.  He actually tried to track down a supervisor.  But there was none that could field IT and software requests.</p>
<p>They promised to call me once they could track someone down to talk about this.  No call yet.</p>
<p>My excitement came down a couple of notches.  I was not the investigative journalist undercovering an elaborate scam any longer.  Instead, I was a software engineer.  And some members of my profession have let me down.  Big time.</p>
<p>In the meanwhile, I did the research and found the vendor who provided this service to Chase.  They are Wolters Kluwer, a &#8220;financial services and banking compliance solutions provider&#8221;.  The product page for &#8220;SDX&#8221;, <a href="http://www.wolterskluwerfs.com/Content/Products/ProductDetail/Secure_Document_Exchange.aspx">Secure Document Exchange</a>, is completely ludicrous.  They claim this product includes &#8220;industry-leading security, including PKI encryption and multi-level user authentication, to keep communications safe at every step of the process.&#8221;  </p>
<p>Right, so the password was <strong>sent in plain text</strong>.  The <strong>default password is &#8220;password&#8221;</strong>.  And, rather than having a chase.com subdomain which points at Wolters Kluwer&#8217;s server (e.g. secure-dx.chase.com) and sharing a secure chase.com certificate with them, they decide to host the whole thing outside of the chase.com domain, so that as a user, I have no way of confirming this actually is an e-mail or system originating from Chase.  Users are so confused by this that they have already reported it as a phishing scam, even though it is not one.  </p>
<p>That&#8217;s industry-leading?  That&#8217;s &#8220;safe communication&#8221;?</p>
<p>No, that&#8217;s a joke.  Chase should be ashamed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/08/21/chase-insecure/feed</wfw:commentRss>
		<slash:comments>112</slash:comments>
		</item>
		<item>
		<title>For Linux/GNOME users: tired of nm-applet? Try wicd</title>
		<link>http://www.pixelmonkey.org/2009/07/31/for-linuxgnome-users-tired-of-nm-applet-try-wicd</link>
		<comments>http://www.pixelmonkey.org/2009/07/31/for-linuxgnome-users-tired-of-nm-applet-try-wicd#comments</comments>
		<pubDate>Fri, 31 Jul 2009 23:01:44 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2009/07/31/for-linuxgnome-users-tired-of-nm-applet-try-wicd/</guid>
		<description><![CDATA[This post is only intended for those who actually run GNOME and Linux, just a warning  

I just replaced network-manager on my Ubuntu Jaunty desktop with wicd.  See wicd here:

http://wicd.sourceforge.net/

What&#39;s so great about wicd?  I used to think nm-applet and NetworkManager were the best thing since sliced bread, but have grown increasingly frustrated with [...]]]></description>
			<content:encoded><![CDATA[<p>This post is only intended for those who actually run GNOME and Linux, just a warning <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p />
<div>I just replaced <b>network-manager</b> on my Ubuntu Jaunty desktop with <b>wicd</b>.  See wicd here:
<p />
<div><a href="http://wicd.sourceforge.net/">http://wicd.sourceforge.net/</a></div>
<p />
<div>What&#39;s so great about wicd?  I used to think nm-applet and NetworkManager were the best thing since sliced bread, but have grown increasingly frustrated with these tools over time.  Here&#39;s my short list of things I dislike about NM:</div>
<p><span id="more-427"></span></p>
<p />
<div>
<ul>
<li>The wifi network list is <b>unsorted</b> (rather than <b>obviously</b> being sorted by signal strength).</li>
<li>The wifi network list uses an animated progress bar.  This may look cool in screencasts, but when there are &gt;20 networks in range, pulling up the list brings my computer to a crawl (due to 20 animated progress bars).</li>
<li>The wifi network list is only accessible by clicking on the nm-applet icon &#8212; there is no &quot;full screen&quot; view for when you have a lot of networks in range.</li>
<li>Its logic for remembering and prioritizing networks is just plain wrong, and the UI for editing this stuff is broken.</li>
<li>It does a horrible job of guessing the authentication type of a network, and takes way too long authenticating.</li>
<li>There is no command-line way to switch networks, and NM so messes with your Linux network connections that using typical command-line tools becomes painful.  I run Linux for a reason, you know <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>NM is written in GObject/C.  I know GObject/C, but I also know enough to know that it&#39;s too much of a pain to go in there to fix any of these problems.</li>
</ul>
<p>Enter wicd.  It seems to fix all these problems.  Like NM, wicd runs as a daemon and it is via that daemon that networks are connected.  It has a systray app like nm-applet that is written in GTK+ and easily integrates with GNOME, which is called <b>wicd-client</b>.  Unlike nm-applet, wicd-client provides a fast and ergonomic interface for browsing networks.  If you have a lot of networks in range, you get a nice window with all of them sorted by signal strength, and can easily set up &quot;automatic connect&quot; settings.</div>
<div>
<p />
<div>wicd is also written in <b>Python</b>.  I think that gives it about +100 points above NM for me, as now I can actually submit patches against my wifi manager if anything bugs me.  But so far, it actually seems like quite a neat, robust, and good little app.</div>
<p><a href='http://posterous.com/getfile/files.posterous.com/pixelmonkey/Ifp8BLBdGyZyJY9AoIjcalZ7fhiMOWZ1HCsZ8u84s7jNQHuOT1PT65KlYRbm/Screenshot-Wicd_Network_Manage.png'><img src="http://posterous.com/getfile/files.posterous.com/pixelmonkey/eeNT6N2MWDtCrPWO41WJJWAoRcvih6Mr9RSmX8rTdMOvPHgMs1PuVUQNcEzr/Screenshot-Wicd_Network_Manage.png.scaled.500.jpg" width="500" height="389"/></a></p>
<p />
<div>wicd 1.6.2 (the latest version available on their <a href="http://sf.net">sf.net</a> page) also includes <b>wicd-curses</b>, an ncurses-based command-line client for the wicd daemon.  Yes!  I can finally manage my wifi networks from the command-line.  All in all, I&#39;m glad there is a competitor to NetworkManager that is getting actively developed, because I have lived frustrated with NM for too long.  Hooray for open source, it&#39;s all about choices!</div>
</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/07/31/for-linuxgnome-users-tired-of-nm-applet-try-wicd/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Atul Gawande (MD/author) on the cost of health care in this excellent 	New Yorker piece</title>
		<link>http://www.pixelmonkey.org/2009/07/15/atul-gawande-mdauthor-on-the-cost-of-health-care-in-this-excellent-new-yorker-piece</link>
		<comments>http://www.pixelmonkey.org/2009/07/15/atul-gawande-mdauthor-on-the-cost-of-health-care-in-this-excellent-new-yorker-piece#comments</comments>
		<pubDate>Wed, 15 Jul 2009 18:34:59 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[US Government]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2009/07/15/atul-gawande-mdauthor-on-the-cost-of-health-care-in-this-excellent-new-yorker-piece/</guid>
		<description><![CDATA[Click to read &#8220;The Cost Conundrum&#8221; @ The New Yorker
Will a new, national insurance plan solve the essential problem of the rising cost of health care?  According to Atul Gawande, it won&#39;t.  What is needed is nothing short of a complete cultural shift in the community of practicing medical doctors and the organizations/institutions that provide [...]]]></description>
			<content:encoded><![CDATA[<div><a href="http://www.newyorker.com/reporting/2009/06/01/090601fa_fact_gawande">Click to read &#8220;The Cost Conundrum&#8221; @ The New Yorker</a></div>
<p>Will a new, national insurance plan solve the essential problem of the rising cost of health care?  According to Atul Gawande, it won&#39;t.  What is needed is nothing short of a complete cultural shift in the community of practicing medical doctors and the organizations/institutions that provide care.  From the article:
<div></div>
<blockquote class="posterous_short_quote"><p>    Providing health care is like building a house. The task requires experts, expensive equipment and materials, and a huge amount of coördination. Imagine that, instead of paying a contractor to pull a team together and keep them on track, you paid an electrician for every outlet he recommends, a plumber for every faucet, and a carpenter for every cabinet. Would you be surprised if you got a house with a thousand outlets, faucets, and cabinets, at three times the cost you expected, and the whole thing fell apart a couple of years later? Getting the country’s best electrician on the job (he trained at Harvard, somebody tells you) isn’t going to solve this problem. Nor will changing the person who writes him the check.</p></blockquote>
<div></div>
<div>Check it out. </div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/07/15/atul-gawande-mdauthor-on-the-cost-of-health-care-in-this-excellent-new-yorker-piece/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trouble connecting to GTalk with Pidgin?</title>
		<link>http://www.pixelmonkey.org/2009/07/13/trouble-connecting-to-gtalk-with-pidgin</link>
		<comments>http://www.pixelmonkey.org/2009/07/13/trouble-connecting-to-gtalk-with-pidgin#comments</comments>
		<pubDate>Mon, 13 Jul 2009 19:05:26 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2009/07/13/trouble-connecting-to-gtalk-with-pidgin/</guid>
		<description><![CDATA[After my recent upgrade to Pidgin 2.5.5 (on Ubuntu Jaunty), GTalk mysteriously stopped working.  Check out the FAQ entry on the Pidgin developer website for an explanation.  The workaround, not listed there, is to change your &#34;Connect Server&#34; to &#34;talk.google.com&#34;.  Pidgin will then prompt you once for a certificate, and after that, it will connect fine.

A developer [...]]]></description>
			<content:encoded><![CDATA[<p>After my recent upgrade to Pidgin 2.5.5 (on Ubuntu Jaunty), GTalk mysteriously stopped working.  Check out the <a href="http://developer.pidgin.im/wiki/Protocol%20Specific%20Questions#WhycantIlogontomyGoogleTalkGoogleAppsaccountanymore">FAQ entry</a> on the Pidgin developer website for an explanation.  The workaround, not listed there, is to change your &quot;Connect Server&quot; to &quot;<a href="http://talk.google.com">talk.google.com</a>&quot;.  Pidgin will then prompt you once for a certificate, and after that, it will connect fine.
<div></div>
<div>A developer in #pidgin on <a href="irc://irc.freenode.org">irc.freenode.org</a> told me to &quot;fix my router&quot; since my &quot;router was broken&quot;.  This even though the problem has now occurred on three separate LANs, two of which I don&#39;t own/control.  Routers that are used as DNS servers are <i>very</i> common, and the fact they are broken in this regard is a reality.  Wake up &#8212; realities trump ideal every time.  Pidgin should automatically work around this problem, IMO.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/07/13/trouble-connecting-to-gtalk-with-pidgin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We’ve planted our roots, and now we’re growing…</title>
		<link>http://www.pixelmonkey.org/2009/07/06/we%e2%80%99ve-planted-our-roots-and-now-we%e2%80%99re-growing%e2%80%a6</link>
		<comments>http://www.pixelmonkey.org/2009/07/06/we%e2%80%99ve-planted-our-roots-and-now-we%e2%80%99re-growing%e2%80%a6#comments</comments>
		<pubDate>Tue, 07 Jul 2009 04:44:34 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Startups]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cogtree]]></category>

		<guid isPermaLink="false">tag:blog.cogtree.com://0e06e4115fcbfb1df8928ff1bd909155</guid>
		<description><![CDATA[Sorry for excessive metaphors related to trees, but it just seemed so fitting.

You see, for almost a year, Sachin (the other founder of Cog Tree) and I have spent every moment of our free time to the path of starting this company.  We felt quite nomadic during that time -- ...]]></description>
			<content:encoded><![CDATA[<p>Sorry for excessive metaphors related to trees, but it just seemed so fitting.</p>
<p>You see, for almost a year, Sachin (the other founder of Cog Tree) and I have spent every moment of our free time to the path of starting this company.  We felt quite nomadic during that time &#8212; &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/07/06/we%e2%80%99ve-planted-our-roots-and-now-we%e2%80%99re-growing%e2%80%a6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Jaunty installation process</title>
		<link>http://www.pixelmonkey.org/2009/06/06/ubuntu-jaunty-installation-process</link>
		<comments>http://www.pixelmonkey.org/2009/06/06/ubuntu-jaunty-installation-process#comments</comments>
		<pubDate>Sat, 06 Jun 2009 21:17:39 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=408</guid>
		<description><![CDATA[Today, I decided to finally sit down and upgrade my Ubuntu Intrepid installation to Ubuntu Jaunty.  I torrented the live DVD last night (causing my roommates to complain of major Internet hoggage &#8212; it was downloading at 1.2MB/sec!).  I then performed a full system backup to a remote hard drive, and then repartitioned [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I decided to finally sit down and upgrade my Ubuntu Intrepid installation to Ubuntu Jaunty.  I torrented the live DVD last night (causing my roommates to complain of major Internet hoggage &#8212; it was downloading at 1.2MB/sec!).  I then performed a full system backup to a remote hard drive, and then repartitioned my drives this morning using gparted, the graphical partition editor that comes with Jaunty&#8217;s live DVD.</p>
<p>The process took some time, which is why I saved it for a weekend.  To backup my hard drive took about 2 hours, and doing the partitioning operations took about 3 hours.  I went out in the nice weather and picked up groceries while it was loading.</p>
<p>When I got back and could kick off the installation process, I was pleasantly surprised by the installation wizard UI.  It easily guided me through the partition setup process.  Even though in my case I had to make use of the &#8220;Advanced&#8221; editor, it easily visualized what was going on in my hard drive, and even detected the operating systems I had on there (WinXP and Intrepid).</p>
<p>I set up my new ext3 partitions (after deciding ext4 too unstable for my taste), and got started.  I was pleasantly surprised when instead of asking me to reboot my computer, it just <em>started</em> right up.  I still had access to a functioning computer while it was installing!  Nice.  That allowed me to jump on my blog and start on this post <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   I even connected my MP3 player and have some tunes playing!</p>
<p>I was considering doing an upgrade of my system from Intrepid->Jaunty, but decided to give a clean installation a try.  I get the feeling that there is some &#8220;drag&#8221; in my Linux installation which has been running on my machine for almost 3 years now.  (Wow, has it been that long since I got this laptop?)  I went through multiple releases of Ubuntu via upgrades, and I simply feel my requirements for my system have shrunk so significantly that a clean install was best to ensure my system is configured well and cleanly.</p>
<p>What do I mean by &#8220;shrunk&#8221; requirements?  Well, when I profile the usage of my computer, nowadays 90% of what I do personally happens within Firefox.  The remaining 10% are all handed by newer software.  Among things that don&#8217;t include Firefox are browsing photos and listening to MP3s.  Even some of these tasks are moving to the web platform.</p>
<p>For my work on <a href="http://www.cogtree.com">Cog Tree</a>, I really only have 3 development tools I lean on directly: vim, WingIDE (Python), and Eclipse IDE (Java).  Javascript development and debugging happens inside a browser.  I still lean on VMWare to give me some high-quality creative professional tools from the Windows world, e.g. Photoshop and Topstyle (for CSS).  Aside from these, I don&#8217;t really need nor want much other software on my system.  Any other development tools can be installed on-demand using Synaptic.</p>
<p>Jaunty&#8217;s installation percentage is about 50% right now.  We&#8217;ll see how the system runs once it boots directly off the hard drive.  I&#8217;m pleasantly surprised that most of my hardware seems to be working out of the box.  Even my volume buttons, brightness buttons and media buttons on my laptop now work, which is a nice touch.  My sound quality is still a little poor due to a chipset detection problem that still seems to be present in the snd_hda_intel driver.  But I&#8217;m pretty sure by setting some options in /etc/modprobe.d/alsa-base I&#8217;ll be able to get it working better.</p>
<p>People who know me know that I&#8217;m very skeptical about my computer and about Linux.  I regularly complain about all the little silly regressions that Linux has suffered over the years.  I&#8217;m also particularly upset about how certain beautiful and essential pieces of software never end up making it into the Linux mainstream, e.g. TuxOnIce.  But hopefully, Jaunty will capture my heart this time, and gain some love from this Linux cynic&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/06/06/ubuntu-jaunty-installation-process/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The End of Philosophy?</title>
		<link>http://www.pixelmonkey.org/2009/04/07/the-end-of-philosophy</link>
		<comments>http://www.pixelmonkey.org/2009/04/07/the-end-of-philosophy#comments</comments>
		<pubDate>Tue, 07 Apr 2009 22:11:02 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Media Criticism]]></category>
		<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=387</guid>
		<description><![CDATA[David Brooks has written a column for the NYTimes entitled, &#8220;The End of Philosophy&#8221;.  The basic thrust of the article is that moral reasoning is less about reasoning and more about intuition.  In other words, morality is more like aesthetics than logic.
A representative section:
Think of what happens when you put a new food [...]]]></description>
			<content:encoded><![CDATA[<p>David Brooks has written a column for the NYTimes entitled, <a href="http://www.nytimes.com/2009/04/07/opinion/07Brooks.html">&#8220;The End of Philosophy&#8221;.</a>  The basic thrust of the article is that moral reasoning is less about reasoning and more about intuition.  In other words, morality is more like aesthetics than logic.</p>
<p>A representative section:</p>
<blockquote><p>Think of what happens when you put a new food into your mouth. You don’t have to decide if it’s disgusting. You just know. You don’t have to decide if a landscape is beautiful. You just know.</p>
<p>Moral judgments are like that. They are rapid intuitive decisions and involve the emotion-processing parts of the brain. Most of us make snap moral judgments about what feels fair or not, or what feels good or not. We start doing this when we are babies, before we have language. And even as adults, we often can’t explain to ourselves why something feels wrong.</p>
<p>In other words, reasoning comes later and is often guided by the emotions that preceded it.</p></blockquote>
<p>The major hole I see in Brooks&#8217; article &#8212; and argument &#8212; is what he himself recognizes here:</p>
<blockquote><p>Moral intuitions have primacy, Haidt argues, but they are not dictators. There are times, often the most important moments in our lives, when in fact we do use reason to override moral intuitions, and often those reasons — along with new intuitions — come from our friends.</p></blockquote>
<p>It&#8217;s true that moral intuitions may have evolutionary (or other) roots distinct from reason, but that&#8217;s why they&#8217;re called &#8220;intuitions.&#8221;  Brooks recognizes that at the &#8220;most important moments in our lives&#8221;, we cast those intuitions aside.  Well, doesn&#8217;t that suggest that there exists a moral &#8220;right answer&#8221; outside our intuitions?  Perhaps people should use reason to override impulse at more mundane moments of their lives, too. For example, when deciding whether one deserves those alligator skin shoes, or whether the dying children in Africa might be better candidates for that money.</p>
<p>There have been many attempts in recent years to justify the <strike>less rational</strike> sloppy moral thinking of individuals by pointing to evolution and saying that an individuals&#8217; beliefs are just derived from their primordial roots.  I simply disagree with this line of reasoning.  The fact that you <i>can</i> override your moral impulses means that at times you <i>must</i>!  I much prefer to frame my decisions in terms of Jean-Paul Sartre&#8217;s concept of &#8220;radical&#8221; or &#8220;unlimited&#8221; freedom.  And with that freedom comes responsibility.</p>
<p>Brooks quotes Haidt,</p>
<blockquote><p>The emotions are, in fact, in charge of the temple of morality, and &#8230; moral reasoning is really just a servant masquerading as a high priest.</p></blockquote>
<p>My analogy is that moral intuitions are more like the inmates in a psychotic ward.  In people who don&#8217;t think their moral choices through, &#8220;the inmates are running the asylum.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/04/07/the-end-of-philosophy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Favorite PyCon 2009 talks</title>
		<link>http://www.pixelmonkey.org/2009/04/06/favorite-pycon-2009-talks</link>
		<comments>http://www.pixelmonkey.org/2009/04/06/favorite-pycon-2009-talks#comments</comments>
		<pubDate>Mon, 06 Apr 2009 15:10:13 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=385</guid>
		<description><![CDATA[I attended PyCon 2009 this year, which was a whole lot of fun.  Quite a few people have asked me which talks I liked, so I decided to put together my &#8220;top 5 talks&#8221; list, in ranked order:

A Whirlwind Excursion through Writing a C Extension.  This talk by Ned Batchelder (author of coverage.py [...]]]></description>
			<content:encoded><![CDATA[<p>I attended PyCon 2009 this year, which was a whole lot of fun.  Quite a few people have asked me which talks I liked, so I decided to put together my &#8220;top 5 talks&#8221; list, in ranked order:</p>
<ol>
<li><a href="http://pycon.blip.tv/file/1957417/">A Whirlwind Excursion through Writing a C Extension</a>.  This talk by Ned Batchelder (author of coverage.py and cog) shows that you can write a Python C extension module in under 20 minutes.  This is my top talk because I never thought that my skills in C would be so directly useful in writing Python applications.  Considering <i>how damn easy</i> it is to write a basic C extension module, I wouldn&#8217;t be surprised if the only reason I ever write C code again is to implement some Python functions or types in C.  Truly the best of both worlds!</li>
<li><a href="http://pycon.blip.tv/file/1957215/">Reinteract: a better way to interact with Python</a>.  Owen Taylor (of GNOME/GTK+ fame) has spent some time over the last few months building a better Python shell.  Specifically, it&#8217;s a lightweight shell that is meant to be a prototyping or &#8220;worksheet&#8221; environment a la Matlab, Mathematica, or Maple.  Except, you&#8217;re running and re-evaluating Python code.  It even supports things like in-line graph plotting, but I&#8217;ve already used it to experiment with Python web services API.  Any Python programmer who has been frustrated with IPython before should check out Reinteract.</li>
<li><a href="http://pycon.blip.tv/file/1947373/">Easy AI with Python</a>.  This talk might have gotten the #1 slot for most interesting, but not the #1 slot overall because it seems like this talk has been given at a lot of conferences (not just PyCon) over the last few years.  This talk introduces some complex AI topics in a very short time frame, and in a very intuitive way.  For me, the neural networks example with Jets and Sharks was particularly impressive.  Raymond Hettinger is a great presenter, and if you have some time you should definitely check out his recipes on <a href="http://code.activestate.com/recipes/users/178123/">ActiveState&#8217;s Python Cookbook</a> and his <a href="http://users.rcn.com/python/download/Descriptor.htm">How-to Guide for Descriptors</a>.</li>
<li><a href="http://pycon.blip.tv/file/1957071/">Abstraction as Leverage</a>.  A talk by one of my favorite Python authors, Alex Martelli (who wrote the best book on Python on the market, <i>Python in a Nutshell</i>), this talk isn&#8217;t so much about Python as it is about software engineering overall.  But it&#8217;s thought-provoking as his talks usually are.</li>
<li><a href="http://pycon.blip.tv/file/1949345/">Class Decorators: Radically Simple</a>.  The presenter is the author of the Class Decorators PEP, Jack Diederich.  If you like decorators and you are curious about metaclasses, you&#8217;ll love class decorators.</li>
</ol>
<p>Feel free to share your favorites!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/04/06/favorite-pycon-2009-talks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beautiful Code and a Beautiful Bug</title>
		<link>http://www.pixelmonkey.org/2009/02/28/beautiful-code-and-a-beautiful-bug</link>
		<comments>http://www.pixelmonkey.org/2009/02/28/beautiful-code-and-a-beautiful-bug#comments</comments>
		<pubDate>Sun, 01 Mar 2009 02:32:14 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=374</guid>
		<description><![CDATA[I am teaching a technical course on the popular and ubiquitous version control system, Subversion, this Monday.  I thought it might be fun to give my class a little &#8220;extra credit&#8221; reading from the O&#8217;Reilly book, Beautiful Code.  In it, one of the original authors of Subversion, Karl Fogel, shares what he considers [...]]]></description>
			<content:encoded><![CDATA[<p>I am teaching a technical course on the popular and ubiquitous version control system, <a href="http://subversion.tigris.org/">Subversion</a>, this Monday.  I thought it might be fun to give my class a little &#8220;extra credit&#8221; reading from the O&#8217;Reilly book, <a href="http://oreilly.com/catalog/9780596510046/">Beautiful Code</a>.  In it, one of the original authors of Subversion, Karl Fogel, shares what he considers to be the most beautiful internal design within the codebase: the <a href="http://www.red-bean.com/kfogel/beautiful-code/bc-chapter-02.html">SVN delta editor</a>.  Though this API is not directly used in doing Subversion development, I thought it might be cool for students to have a deeper understanding of the thought that went into SVN&#8217;s codebase.  But when trying to print up some copies of the chapter for the class, I got more than I bargained for&#8230;</p>
<p><span id="more-374"></span></p>
<p><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2009/02/caterpillar-300x199.jpg" alt="" title="caterpillar" width="300" height="199" class="alignright size-medium wp-image-375" /></p>
<p>I highly recommend the entire book.  It is not so much a book about beautiful code as about passionate and opinionated programmers and their tastes.  But this is a good thing.  It was one of the few books about software that I have read in the last decade or so that actually gave me entirely positive feelings about my profession.  There is so much raw creativity and thought captured in these few essays.  What <a href="http://en.wikipedia.org/wiki/Brian_Kernighan">Brian Kernighan</a> finds beautiful is entirely different from what <a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto">Matz</a> or <a href="http://en.wikipedia.org/wiki/Simon_Peyton_Jones">simonpj</a> find beautiful.  And that&#8217;s the thing about a fundamentally creative craft like software.  You put five software engineers in a room with a piece of code, and you&#8217;re lucky if you come out with only six different opinions about it.  It&#8217;s like art, or writing.  Taste matters.</p>
<p>I don&#8217;t recommend people read Beautiful Code to try to imitate some of the code described therein.  Instead, I recommend you read it as a sociological or psychological study of what makes proud and bright software engineers tick.  For example, for Kernighan it is the simplicity and minimalism that is embodied in UNIX.  For Matz, it is the notion that the programming language should be as syntactically flexible as our real languages are.  For simonpj, it&#8217;s that complicated can be made easy, given the right abstractions.  And for Jon Bentley, in one of the more thought-provoking essays in the book, beauty and elegance was only perceived as the size of his code <i>shrank</i>.</p>
<p><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2009/02/acroread_disaster1.png" alt="" title="acroread_disaster1" class="alignleft size-full wp-image-376" /></p>
<p>The essay about the SVN Delta Editor not only illuminates the internals of SVN, but also illustrates the social dimension to software engineering and design.  It is a story about programmers, debating an API, producing it, and then putting it into practice.  It is about give and take, and an unteachable skill in problem size and complexity reduction.  All this in C!  There was a period of time in university where I actually programmed in C full-time, so I have a lot of respect for the elegance with which they crafted this powerful API.  C gives you few tools (like OO or explicit interfaces) for doing this kind of work; they had to work in spite of the language&#8217;s features and plan carefully.</p>
<p>I have about twenty students in my class, so I was going to print up one copy and get it copied and stapled at a local print shop.  (See <a href="#note-on-copyright">note on copyright below</a>.)  I opened up my ebook PDF of Beautiful Code with acroread on UNIX.  I navigated to the right chapter and realized that I wanted to print just that single chapter.  I always remember being annoyed whenever I had to do this, for a number of reasons.</p>
<ol>
<li>PDF ebooks sometimes lack the proper &#8220;bookmark&#8221; information to navigate to the right section to print</li>
<li>Since ebooks were once print copies, they tend to have page numbers at the bottom of each page.  But since the ebook itself has a different page numbering scheme, all sorts of psychic dissonance occurs.  You navigate to page 30 (in the print copy) but have to note that it&#8217;s actually page 42 in the ebook.  You then navigate to page 45 (in the print copy) but have to note that it&#8217;s actually 57 in the ebook.</li>
<li>OK, now I know what I need to print&#8230; I think.  So now I have to enter one of those print ranges in the &#8220;Print&#8221; dialog. Is it 30-42?  No, wait, it&#8217;s 42-45&#8230; I mean, 42-57 &#8212; that&#8217;s it!  Is that inclusive or exclusive? <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   Oh, my&#8230;</li>
</ol>
<p>It&#8217;s really not <i>that</i> bad, and it&#8217;s only an occasional annoyance, but it&#8217;s always there.  I&#8217;m sure you know what I&#8217;m talking about.</p>
<p><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2009/02/acroread_disaster2.png" alt="" title="acroread_disaster2" class="alignright size-full wp-image-377" /></p>
<p>I had recently upgraded to acroread and noticed that the UI was all spiffed up.  And I noticed that this ebook had the right metadata for the bookmarks.  I thought to myself, &#8220;Wouldn&#8217;t it be nice if acroread supported printing a <strong>chapter</strong>?&#8221;  I right-clicked on the first entry in the chapter bookmark and was astonished.  Lo and behold, my feature existed!  (See the image to the right.)  I clicked the &#8220;Print Pages&#8230;&#8221; button with a bit of discomfort.  I don&#8217;t trust software too often, and am always suspicious when I find a feature I didn&#8217;t expect to be there.  It&#8217;s like my inner programmer is saying, &#8220;Yea, right &#8212; too good to be true.&#8221;</p>
<p>A few minutes later, my chapter was printed.  I looked it over, and brought it with my other materials to the local print shop.  One hour later, I picked up my copies and brought them home to look them over.</p>
<p>I noticed something very strange.  Instead of my copies containing pages 42-57, they contained pages 42, 43, 46, 51, 55, and 57.  <i>Damn it</i>.  There didn&#8217;t seem to be much of a rhyme or reason to the pages that were selected.  What kind of sequence was this?  I felt that there <i>must</i> be some pattern, some fibonacci-like, non-obvious sequence that applied to these pages.  I suspected the first, and obvious, culprit: that the printer had made a mistake.  <i>Maybe it&#8217;s a human error</i>.  But then I looked over my original and indeed, the original only had those pages.  Not a human error.  I thought to myself, &#8220;How is this possible?&#8221;</p>
<p><img src="http://www.pixelmonkey.org/wordpress/wp-content/uploads/2009/02/butterfly-150x150.jpg" alt="" title="butterfly" width="150" height="150" class="alignright size-thumbnail wp-image-380" /></p>
<p>Of course, I&#8217;ve probably given you enough information that you&#8217;ve already figured it out.  Especially if you&#8217;re a programmer.  We&#8217;re just wired to think this way.  But in case you haven&#8217;t figured it out, I&#8217;ll indulge you.</p>
<p>When I went back into acroread, tracing back my steps, I noticed something about that menu item I clicked.  It didn&#8217;t say <i>Print chapter</i>.  Instead, it said, <i>Print pages</i>.  Now, conceptually that seems like a small distinction, but I picked up on it.</p>
<p>I started to think like a programmer, rather than a user.  This function with a for loop emerged from the program and hovered above it, almost magically.  It said:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> print_pages<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, selected<span style="color: black;">&#41;</span>:
    to_print = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
    <span style="color: #ff7700;font-weight:bold;">for</span> bookmark <span style="color: #ff7700;font-weight:bold;">in</span> selected.<span style="color: black;">self_and_bookmarked_children</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
        to_print.<span style="color: black;">append</span><span style="color: black;">&#40;</span>bookmark.<span style="color: black;">page</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
    PrintSubsystem.<span style="color: black;">queue_job</span><span style="color: black;">&#40;</span>to_print<span style="color: black;">&#41;</span></pre></div></div>

<p>Then I realized the pattern in the pages it picked.  There was no pattern.  This was a beautiful little bug.  A <i>butterfly</i>.</p>
<p>You see, within the narrow world of this <i>Print Pages</i> function, the &#8220;feature&#8221; works as expected.  But from a user&#8217;s perspective, it makes absolutely no sense.  Rather than printing everything from that bookmark to the next bookmark at the same level (that is, rather than printing a <i>chapter</i>), it printed each <i>individual page that happened to be physically bookmarked (or &#8217;sub-bookmarked&#8217;) in the PDF, at or below that level</i>.  This resulted in a bunch of pages being printed that happened to be the pages on which subsections began.  But this left out most of the chapter, somewhat randomly.</p>
<p>The worst traits of our profession come out when it is at its least social.  I have no doubt that this function that prints these pages was written by a single programmer in a windowless room, without any peer review, pair programming, or other check on his logic.  I am sure that he was given the narrow and ill-defined requirement to enable an action to &#8220;print bookmark pages&#8221;.  He needed to <i>think</i>, but instead, he decided to code.  And coding got &#8220;it&#8221; done, for some very weird value of &#8220;it&#8221;.  He was probably under time pressure.  But one thing is certain to me: he was alone.  No two programmers, debating the design and implementation of this feature, would let each other make this mistake.</p>
<p>The behavior it exhibited truly caught me by surprise.  Strange as it sounds, I admired how easily I had been duped by this feature.  The human error &#8212; the anti-social error &#8212; made by that programmer exhibited an odd and enigmatic computer behavior.  A human inelegance created a strange sort of cruel machine elegance.</p>
<p>I found it ironic that in trying to print a chapter about beautiful design from a book called <i>Beautiful Code</i>, I came across this beautiful bug.  I call the bug beautiful because it managed to fool me, to get me to suffer its wrath while thinking I was getting some convenience.  It exhibited behavior that challenged me to identify a pattern, where there was none.  It was so clever, it even cost me money (the printing charges).  And even though I was a discerning programmer &#8212; skeptical of the feature, and so unsure of the software&#8217;s operation that I checked the output, albeit too briefly &#8212; this little bug managed to outsmart me.</p>
<p>My students will have to live without the chapter, or read it online on their own.  I&#8217;m not upset about it.  There can be beauty, even in failure.</p>
<p><small><strong><a name="note-on-copyright">A note about copyright:</a></strong> some readers on reddit and on my comments section suggested that I might be ignoring copyright issues by thinking that I could just photocopy a chapter from this book to distribute to my students.  Trust me, I know about copyright.  The content of this chapter happens to be available <a href="http://www.red-bean.com/kfogel/beautiful-code/bc-chapter-02.html">online for free</a> under <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a>.  Karl Fogel, the author of the article, has even given his informal blessing in my comments section.  And finally, by most people&#8217;s interpretation of the rules of Fair Use, it was OK for me to copy a chapter for my classroom.  I&#8217;m surprised no one suggested that this bug might be beautiful in another way: that it saved me from a copyright disaster.  I don&#8217;t think it was <i>that</i> good&#8230; <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   If you are really interested in seeing a debate about this, you can read <a href="http://www.reddit.com/r/programming/comments/814ku/beautiful_code_and_a_beautiful_bug/c07z97y">this thread on reddit</a>.  Warning, somewhat painful and longwinded.  (Also, if you clicked the anchor link within the article to get to this note, simply click &#8220;back&#8221; in your browser to return and continue reading.)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2009/02/28/beautiful-code-and-a-beautiful-bug/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>A video interview with John Kenneth Galbraith</title>
		<link>http://www.pixelmonkey.org/2008/08/03/a-video-interview-with-john-kenneth-galbraith</link>
		<comments>http://www.pixelmonkey.org/2008/08/03/a-video-interview-with-john-kenneth-galbraith#comments</comments>
		<pubDate>Mon, 04 Aug 2008 03:56:28 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Corporate Power]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[US Government]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2008/08/03/a-video-interview-with-john-kenneth-galbraith/</guid>
		<description><![CDATA[I wrote about John Kenneth Galbraith earlier, but just recently found this video on YouTube.  A reflective 1-hour interview with the man that discusses his long career as a professor, advisor, and economic theorist.  Well worth a listen.
A Conversation with John Kenneth Galbraith &#8212; April 27, 1986
]]></description>
			<content:encoded><![CDATA[<p>I wrote about <a href="/2007/10/25/facile-anti-illectualism-is-the-order-of-the-day/">John Kenneth Galbraith</a> earlier, but just recently found this video on YouTube.  A reflective 1-hour interview with the man that discusses his long career as a professor, advisor, and economic theorist.  Well worth a listen.</p>
<p><a href="http://www.youtube.com/watch?v=jNgfIH5pyxg">A Conversation with John Kenneth Galbraith &#8212; April 27, 1986</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2008/08/03/a-video-interview-with-john-kenneth-galbraith/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The media blackout of Ralph Nader</title>
		<link>http://www.pixelmonkey.org/2008/08/02/the-media-blackout-of-ralph-nader</link>
		<comments>http://www.pixelmonkey.org/2008/08/02/the-media-blackout-of-ralph-nader#comments</comments>
		<pubDate>Sat, 02 Aug 2008 19:20:15 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Corporate Power]]></category>
		<category><![CDATA[Media Criticism]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[US Government]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=372</guid>
		<description><![CDATA[I haven&#8217;t done a formal analysis of this yet.  Just an informal one using a NYTimes.com search for Ralph Nader.
On July 1, 2008, CNN published a poll that put Ralph Nader at 6%.  On February 24, 2008, Ralph Nader formally announced his bid for presidency on &#8220;Meet the Press.&#8221;  What happened in [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t done a formal analysis of this yet.  Just an informal one using a NYTimes.com search for Ralph Nader.</p>
<p>On July 1, 2008, <a href="http://www.cnn.com/2008/POLITICS/07/01/cnn.poll.matchup/?iref=mpstoryview">CNN published a poll that put Ralph Nader at 6%</a>.  On February 24, 2008, Ralph Nader <a href="http://www.msnbc.msn.com/id/23319781/">formally announced his bid for presidency on &#8220;Meet the Press.&#8221;</a>  What happened in the intervening four months?</p>
<p>Not much, according to the &#8216;liberal&#8217; NYTimes.  In the days following Nader&#8217;s announcement, the NYTimes had a bit of activity.  You can see the full details by looking at the newspaper&#8217;s <a href="http://topics.nytimes.com/top/reference/timestopics/people/n/ralph_nader/index.html">Ralph Nader feed</a>.  Two articles were published immediately after the announcement, one merely rehashing the &#8220;Meet the Press&#8221; discussion.  The second one was more interesting, as it appeared as an editorial and was called, &#8220;Ralph Nader: Going, Going, not Gone&#8221;.  In it, Eleanor Randolph repeats the typical diatribe about Ralph Nader &#8217;spoiling&#8217; the 2000 election, seemingly with detachment, but then points to Bush&#8217;s presidency as being a regrettable outcome.  Here&#8217;s a select piece:</p>
<blockquote><p>
Many Democrats still believe, bitterly but without conclusive evidence, that Mr. Nader siphoned off a lot of Democratic votes in the 2000 presidential election. He argued that the main candidates, George W. Bush and Al Gore, were nothing more than “Tweedledum and Tweedledee,” two peas in a pod, no daylight between them.</p>
<p>The Republican Tweedle won the presidency, and the Bush administration went on to gut, hobble or hamstring many of the safety agencies that Mr. Nader had fought so hard to create. Mr. Gore got a Nobel Peace Prize for raising concern about global warming.</p>
<p>If there is a stronger word for whoops, it certainly applies here. But that does not seem to cast a shadow on the Nader enthusiasms.
</p></blockquote>
<p>Bob Herbert&#8217;s Op-Ed, &#8220;A Driving Force&#8221;, published the same day, seems to recognize Nader&#8217;s &#8216;right to run,&#8217; but also points out, somberly, how Democrats despise and Republicans will encourage his run to force another &#8217;spoiler&#8217; outcome.  This was followed by a couple of narrow-interest pieces, one on Nader supporters (entitled &#8220;Trying Times for Remaining Nader Faithful&#8221;) and one about Nader&#8217;s vice presidential pick, Matt Gonzales. This news activity all occurred at the end of February.</p>
<p>In the intervening 4 months, there hasn&#8217;t been a <i>single news article</i> covering Nader&#8217;s campaign in <i>The New York Times</i>.  Not one.  I think it&#8217;s fair to say that there hasn&#8217;t been a day that has passed since February where there were any fewer than two or three articles on the other presidential candidates.</p>
<p>There have been a couple of Nader mentions buried deep within other articles, but no mention of the fact that Nader has secured access to quite a few state ballots.  No background on his campaign or profile of his person.  No interviews with him, his vice presidential pick, staffers, or anyone else involved with his campaign.  And no mention of this remarkable number &#8212; 6% in a national opinion poll by CNN.  That&#8217;s 6% despite <i>no</i> coverage in the NYTimes, and not much coverage elsewhere in the Mainstream Media.</p>
<p>Is this a media blackout?  Well, there is no other way to classify it.</p>
<p>Related to my last post, who determines the content of the news: journalists and editors (and their masters), or we, the people?  If the news really reflects our interest, why is it that 6% of the political news coverage of the last four months hasn&#8217;t been about Nader?  I&#8217;m not asking for there to be equal news coverage as Obama or McCain.  But why not at least an in-depth article or two?  This is a presidential candidate making a serious run.  Nader also has better credentials and deeper experience with Washington and politics than Obama or McCain.  Why is it that the media continues to ignore him?  I know there&#8217;s <a href="http://en.wikipedia.org/wiki/Manufacturing_Consent">at least one explanation</a>, but the effects still baffle me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2008/08/02/the-media-blackout-of-ralph-nader/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Is media slant determined by the market?</title>
		<link>http://www.pixelmonkey.org/2008/03/02/is-media-slant-determined-by-the-market</link>
		<comments>http://www.pixelmonkey.org/2008/03/02/is-media-slant-determined-by-the-market#comments</comments>
		<pubDate>Sun, 02 Mar 2008 17:17:24 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Corporate Power]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Media Criticism]]></category>
		<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2008/03/02/is-media-slant-determined-by-the-market/</guid>
		<description><![CDATA[In &#8220;Lean Left? Lean Right?  News media may take cues from customers&#8221; by Chicago School professor Austan Goolsbee, we are given yet another argument for market determinism, this time with regard to the slant of the media.
One of the most interesting things coming out of research on the economics of the media industry has [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.nytimes.com/2006/12/07/business/media/07scene.html">&#8220;Lean Left? Lean Right?  News media may take cues from customers&#8221;</a> by Chicago School professor Austan Goolsbee, we are given yet another argument for market determinism, this time with regard to the slant of the media.</p>
<blockquote><p>One of the most interesting things coming out of research on the economics of the media industry has been the notion that media slant may simply reflect business rather than politics.</p></blockquote>
<p>The author then cites a few Chicago School studies that analyze the media in terms of slant of articles vs. readership.  They find that readership is a stronger indicator of slant than ownership or big corporate donations.  But then the dangerous conclusions begin.</p>
<blockquote><p>[...] there is certainly good news in the finding. If slant comes from customers, then the views of the owners and the reporters do not matter. We do not need to fear that some partisan billionaire will buy up newspapers and use them for propaganda.&#8221;</p></blockquote>
<p>This is a little presumptuous.  Of course there is a fear of a partisan billionaire buying up all the newspapers.  In history, we had William Randolph Hearst.  In modern times, we have <a href="http://www.pbs.org/wnet/wideangle/shows/berlusconi/resources.html">Silvio Berlusconi of Italy</a>. He owned all the media in that country, slanted it, and then maintained control over it while presiding as Prime Minister.  The market, for all its virtues, cannot solve these problems.</p>
<p>Let&#8217;s take one angle.  Partisan billionaires can control the slant of their writing just by controlling the kinds of journalists they hire.</p>
<p>For example, let&#8217;s assume Rupert Murdoch would not hire very many bleeding-heart liberals to work as financial reporters in the WSJ.  WSJ&#8217;s staff becomes more right-leaning, therefore there is a partisan slant.  I&#8217;m not saying this is actually true, but it&#8217;s quite absurd to claim it isn&#8217;t likely, or that reporters <i>only</i> choose their slant based upon their readership&#8217;s expectations.</p>
<blockquote><p>So although politicians from both sides tend to accuse the news media of partisanship and negativity, the data suggests that they ought to blame the public. The papers basically reflect what their readers want to hear.</p></blockquote>
<p>Ick.  This is the classic chicken and egg problem.  It assumes that the public exists in a vacuum, and that the public&#8217;s opinions are not <i>influenced</i> by the media.  Of course, this vacuum does not exist.  The public may have views in alignment with the newspaper precisely because the newspaper <i>shaped the views of the public</i>.  In other words, if I read the WSJ every morning on my way to work, I may very well start voting Republican.  It&#8217;s not that the WSJ reflects my opinion: it&#8217;s that my opinion and the WSJ&#8217;s start to converge, since the WSJ is influencing my opinion.</p>
<p>The whole point of propaganda is that you don&#8217;t realize it&#8217;s propaganda while you&#8217;re reading it.  Did Pravda just &#8220;represent what the worker&#8217;s wanted to hear&#8221;?  According to this analysis, it certainly could have: I&#8217;m sure workers would have declared that their personal views were in line with Pravda&#8217;s slant.</p>
<p>As much as researchers of the Chicago School of Economics would love to believe the market can explain the media&#8217;s slant, I don&#8217;t buy it.  That said, the market is certainly a factor &#8212; just not the only one, and IMO, not the primary one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2008/03/02/is-media-slant-determined-by-the-market/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joe Conason thinks Ralph Nader &#8220;loves&#8221; McCain</title>
		<link>http://www.pixelmonkey.org/2008/03/02/joe-conason-thinks-ralph-nader-loves-mccain</link>
		<comments>http://www.pixelmonkey.org/2008/03/02/joe-conason-thinks-ralph-nader-loves-mccain#comments</comments>
		<pubDate>Sun, 02 Mar 2008 05:12:43 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Corporate Power]]></category>
		<category><![CDATA[Media Criticism]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[US Government]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2008/03/02/joe-conason-thinks-ralph-nader-loves-mccain/</guid>
		<description><![CDATA[Conason writes for Salon,
&#8230; the evidence suggests another possible motive for Nader to run this year &#8212; namely, that he hopes to help his longtime ally John McCain, to whom he owes at least one big favor
I just did a search for Nader on Salon, and found this article in the old &#8220;Brilliant Careers&#8221; section. [...]]]></description>
			<content:encoded><![CDATA[<p>Conason <a href="http://www.salon.com/opinion/conason/2008/02/29/mccain_nader/">writes for Salon</a>,</p>
<blockquote><p>&#8230; the evidence suggests another possible motive for Nader to run this year &#8212; namely, that he hopes to help his longtime ally John McCain, to whom he owes at least one big favor</p></blockquote>
<p>I just did a search for Nader on Salon, and found <a href="http://www.salon.com/bc/1999/01/26bc.html">this article in the old &#8220;Brilliant Careers&#8221; section</a>.  It was written in 1999.  You know, before the Democrats pathetically lost the 2000 election, and then blamed it all on one of the greatest progressives to ever have lived.</p>
<p>I think we forget that in 2000, Nader&#8217;s reputation was essentially flushed down the toilet by the Democratic Party.  We should all be outraged that the Democratic Party, and all of its members, blamed the loss of 2000 on Nader, rather than blaming it on itself.  If the Democratic Party had blamed 2000 on itself, it might have had a chance at winning 2004, by realizing it wasn&#8217;t the party it should have been.  </p>
<p>To suggest that Nader, after years of taking nothing short of principled stands on every issue, would run a presidential campaign just to &#8220;return a favor&#8221; to John McCain.  C&#8217;mon, Joe, give me a break.</p>
<p>I guess all partisan Democrats &#8212; like Eric Alterman in &#8220;An Unreasonable Man&#8221; &#8212; just can&#8217;t get over the fact that they lost in 2000 and 2004.  Admit it, the Democratic Party has become the spineless, least-worst party of American politics.  In many ways, I have more respect for Republicans nowadays, who, despite being wrong on almost every issue, aren&#8217;t afraid of radical change, and can get people excited about the radical-ness of deregulation, tax cuts, and wedge issues.  <i>Nothing</i> about the Democratic Party excites me nowadays, <i>except</i> that it isn&#8217;t the Republican party.</p>
<p>Could a modern &#8220;New Democrat&#8221; have implemented a progressive policy that was as sweeping/radical as the Republican &#8220;hollowing out of government&#8221; described in Naomi Klein&#8217;s book, &#8220;The Shock Doctrine&#8221;?  At least the Republicans follow through on their ideology.  What progressive reform did Bill Clinton get us?  NAFTA?  DMCA?</p>
<p>Do you think corporations would support Clinton and Obama if they were actually progressive?  Take a look at articles like the following:</p>
<ul>
<li><a href="http://www.harpers.org/archive/2006/11/0081275">&#8220;Barack Obama, Inc.&#8221;</a>, Harper&#8217;s Magazine</li>
<li><a href="http://money.cnn.com/magazines/fortune/fortune_archive/2007/07/09/100121742/index.htm">&#8220;Who Business is Betting On&#8221;</a>, Fortune</li>
</ul>
<p>There you&#8217;ll see how it&#8217;s &#8220;politics as usual&#8221;, even for the Democrats.  Sure, they rile you up with their health care plans.  But do you think they&#8217;ll actually implement them, if they are not even considering any cuts to, say, the military budget?</p>
<p>In 2000, Al Gore ran a bland campaign that didn&#8217;t even mention global warming, even though it was supposedly the cause of his life.  In 2004, Kerry tried to out-commander-in-chief George Bush, instead of pointing out his war crimes and calling the Iraq war a sham.</p>
<p>And, mark my words, it&#8217;ll happen again in 2008 if the Democrats don&#8217;t get their act together and stop apologizing for being liberal.  Obama wants to expand the military by tens of thousands of troops.  Clinton thinks she&#8217;s the fittest on day one to be commander-in-chief.  I&#8217;m sorry, but if the Democrats don&#8217;t shape up, here is my prediction: McCain is perceived as a better commander-in-chief by average Joe Americans, Conservatives turn out their base against &#8220;Barack Hussein Obama,&#8221; true progressives stay home, and Democrats lose.  Eight more years of Republicans.  Are they going to blame 2008 on Nader, too?  When will they ever take responsibility?  You&#8217;re trying to tell me sixteen years of a paucity of progressive politics will be the fault of one man?</p>
<p><b>Update</b>: <a href="http://letters.salon.com/opinion/conason/2008/02/29/mccain_nader/permalink/2b28e7dbde4584a4e320ea723b1b4276.html">A letter from Robert Franklin</a> points out the paradox in &#8220;supporting progressive movements&#8221; while still voting Democratic:</p>
<blockquote><p>&#8230;I voted Dem for years [...] By 2000, I was fed up with the DLC and turned my back on the Democratic Party. It was a fascinating experience [...] Once I stepped outside the Dem Party, it became obvious that they are as deeply in hock to big money interests as the Reps are and govern accordingly. All the things that are not part of the public debate but should be became obvious too. When looking at politics in America, <b>don&#8217;t just think about what&#8217;s going on and ask why, think about what&#8217;s not going on and ask why not.</b> When you do that, you realize just how narrow the range is of policies and discourse that are deemed appropriate by political elites. And &#8220;political elites&#8221; includes Dems.</p>
<p>[...] Look at the elections of 2006. The country overwhelmingly voted Reps out of &#8211; and Dems into &#8211; office. That was almost universally attributed to popular discontent with the Iraq War. So what did Dems do about that, given their enormous popular support? Not one damned thing. So now it&#8217;s two years later and your advice is Vote Democratic!</p>
<p>Your first prescription is to encourage grass roots support for progressive policies. Look at the platform of the Green Party and you&#8217;ll see that that&#8217;s exactly what that is &#8211; grass roots support for progressive policies. But for some reason you deem every sort of support for progressive policies to be appropriate except electoral support. Nader and the Greens are actually progressive, which I believe you think you are as well, but you adamantly refuse to vote that way. I just can&#8217;t buy that approach.</p>
<p>Your second prescription is to help the Dems win and then point out your contribution [...] That&#8217;s naive. If you do that, as liberals have been doing all along, what you get from Dems is &#8220;Thank you very much. See you in two years.&#8221; You don&#8217;t get anyone in office to pay attention to you if they know that you will never penalize them for acting against your interests. It&#8217;s Politics 101, and liberals haven&#8217;t learned it. Again, the Christian Right is far smarter than liberals on this subject, which is why the Reps give them a lot more stroke than Dems give liberals.</p>
<p>Finally you say what Democrats say every single election year &#8211; &#8220;not this year!&#8221; Here&#8217;s another election and Dems are telling liberals that, once again, we can&#8217;t vote our principles. I&#8217;ve been hearing that from Dems every election year for the past 8 years. You say &#8220;for the time being,&#8221; we must vote for Dems so that Reps don&#8217;t win. <b>The problem is that, by that logic, it&#8217;s never time. According to that reasoning, the time is never right for liberals to vote liberal. And if you never vote liberal, what does that make you?</b></p></blockquote>
<p>The real solution to this problem has nothing to do with voting your conscious.  It&#8217;s called Instant Runoff Voting (IRV), and is described in 3 minutes by <a href="http://www.youtube.com/watch?v=wqblOq8BmgM">this video</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2008/03/02/joe-conason-thinks-ralph-nader-loves-mccain/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>America&#8217;s &#8220;first black president&#8221;</title>
		<link>http://www.pixelmonkey.org/2008/01/29/americas-first-black-president</link>
		<comments>http://www.pixelmonkey.org/2008/01/29/americas-first-black-president#comments</comments>
		<pubDate>Tue, 29 Jan 2008 13:50:03 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Media Criticism]]></category>
		<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2008/01/29/americas-first-black-president/</guid>
		<description><![CDATA[Elizabeth Alexander of Salon writes about the mis-used Toni Morrison quote that Bill Clinton was America&#8217;s &#8220;first black president.&#8221;  This quote was repeated during the Democratic Presidential Debates &#8212; which was the first time I heard it.  You can read Toni Morrison&#8217;s original article from the New Yorker, but Alexander&#8217;s analysis concisely illuminates [...]]]></description>
			<content:encoded><![CDATA[<p>Elizabeth Alexander of Salon <a href="http://www.salon.com/opinion/feature/2008/01/28/first_black_president/">writes</a> about the mis-used Toni Morrison quote that Bill Clinton was America&#8217;s &#8220;first black president.&#8221;  This quote was repeated during the Democratic Presidential Debates &#8212; which was the first time I heard it.  You can read Toni Morrison&#8217;s <a href="http://ontology.buffalo.edu/smith/clinton/morrison.html">original article from the New Yorker</a>, but Alexander&#8217;s analysis concisely illuminates the key point.  Surprise, surprise: this quote is always used out of context, and never in the way Morrison intended.</p>
<blockquote><p>
Her words have been used frequently and almost always out of their original context, as a way of signaling Bill Clinton&#8217;s supposed comfort with and advocacy for black people, to the extent that Hillary Clinton even attempted to joke that she was &#8220;in this interracial marriage.&#8221; &#8230; </p>
<p>[Instead, Morrison] questioned the pitch of Starr-fueled hysteria, and said: &#8220;Years ago, in the middle of the Whitewater investigation, one heard the first murmurs: white skin notwithstanding, this is our first black President. Blacker than any actual black person who could ever be elected in our children&#8217;s lifetime &#8230; The always and already guilty &#8216;perp&#8217; is being hunted down not by a prosecutor&#8217;s obsessive application of law but by a different kind of pursuer, one who makes new laws out of the shards of those he breaks.&#8221; &#8230;</p>
<p>Morrison was not saying that Bill Clinton is America&#8217;s first black president in a cute or celebratory way, nor was she calling Clinton an &#8220;honorary Negro.&#8221; Rather, she was comparing Clinton&#8217;s treatment at the hands of Starr and others with that of black men, so often seen as &#8220;the always and already guilty &#8216;perp.&#8217;&#8221;
</p></blockquote>
<p>I have to ask the obvious question: does our media even do its <i>basic</i> job anymore?  Can we rely upon it to do <i>anything</i> right?  Or will it continue to take quotations out of context and mis-represent ideas like these?  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2008/01/29/americas-first-black-president/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sex offenders barred from using the Internet in NJ</title>
		<link>http://www.pixelmonkey.org/2007/12/29/sex-offenders-barred-from-using-the-internet-in-nj</link>
		<comments>http://www.pixelmonkey.org/2007/12/29/sex-offenders-barred-from-using-the-internet-in-nj#comments</comments>
		<pubDate>Sun, 30 Dec 2007 03:52:22 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Civil Liberties]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[US Government]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/12/29/sex-offenders-barred-from-using-the-internet-in-nj/</guid>
		<description><![CDATA[The latest insanity: New Jersey legislators have decided that sex offenders will be barred from using the Internet.  That&#8217;s not a joke: barred altogether &#8212; there is only a single exception for job searches.  This is a major infringement of their civil liberties.  Once a sexual offender is let out of jail, [...]]]></description>
			<content:encoded><![CDATA[<p>The latest insanity: <a href="http://www.nytimes.com/2007/12/28/nyregion/28offender.html">New Jersey legislators have decided that sex offenders will be barred from using the Internet</a>.  That&#8217;s not a joke: barred altogether &#8212; there is only a single exception for job searches.  This is a major infringement of their civil liberties.  Once a sexual offender is let out of jail, he does not get to live a normal life.</p>
<p>Here is a <a href="http://yro.slashdot.org/article.pl?sid=07/12/29/0457259">comment from Slashdot</a> that rang true with me:</p>
<blockquote><p>
&#8220;Those who want to be soft on sex offenders are most likely not parents, and most definitely not parents of a child who has been abused.&#8221;</p>
<p>Wow, watch those strawmen fly!</p>
<p>I&#8217;m a parent, and I&#8217;m guessing that under your worldview, I want to be `soft on sex offenders&#8217;. But I don&#8217;t see it that way &#8212; instead, I want the punishment to fit the crime. If you&#8217;re 17 and have sex with your 15 year old girlfriend, you should be grounded for a week, perhaps have your cell phone taken away. Peeing on the side of a building? $50 fine. Rape a 3 year old girl to within an inch of her life? Life in prison, perhaps even the death penalty.</p>
<p>`Sex offender registration&#8217; is a huge crock. All it really does is let us take some people, found guilty of certain offenses, and make them pariahs for life. I imagine the original premise was to protect society from these dangerous predators, but in many cases they&#8217;re not predators at all! And why only sex crimes? I&#8217;d be FAR more concerned if the guy next door killed his neighbor in a fight 10 years ago than if he got caught diddling the 16 year old girl next door when he was 19 &#8212; but guess which one has to register?</p>
<p>I might be better able to support registration as either further punishment or to protect society if it applied to all crimes of a certain level, not just `sex crimes&#8217;. But even then I can&#8217;t really support it &#8212; when you&#8217;ve paid your debt to society, that should be the end of it. And if you&#8217;re too dangerous to be let out, then you shouldn&#8217;t be let out &#8212; the sex offender registry should not be a `last ditch&#8217; sort of thing.</p>
<p>And what good does the sex offender registry do? Sure, it gives people a list of names of people to harass, to run out of town, to lynch, to kill. And you can tell your kids to avoid these houses, but what good does that really do? Has anybody ever shown that knowing where the sex offenders in town were led to children (we&#8217;re worried about protecting the children, right?) who were less likely to be the victims of crime (or sex crimes, if you want to be more specific?)</p>
<p>And the whole banning them from the Internet thing, even worse &#8230;
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/12/29/sex-offenders-barred-from-using-the-internet-in-nj/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Facile anti-intellectualism is the order of the day&#8221;</title>
		<link>http://www.pixelmonkey.org/2007/10/25/facile-anti-illectualism-is-the-order-of-the-day</link>
		<comments>http://www.pixelmonkey.org/2007/10/25/facile-anti-illectualism-is-the-order-of-the-day#comments</comments>
		<pubDate>Thu, 25 Oct 2007 21:09:03 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/10/25/facile-anti-illectualism-is-the-order-of-the-day/</guid>
		<description><![CDATA[A book review by Thomas Frank, on a biography of John Kenneth Galbraith.

What astonishes the contemporary reader is, first of all, that a genuine, independent intellectual like Galbraith was permitted to serve in government, let alone become the confidant of presidents. Facile anti-intellectualism is the order of the day now, as even Democrats race to [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.nytimes.com/2005/02/27/books/review/27FRANKL.html">book review by</a> Thomas Frank, on a biography of John Kenneth Galbraith.</p>
<blockquote><p>
What astonishes the contemporary reader is, first of all, that a genuine, independent intellectual like Galbraith was permitted to serve in government, let alone become the confidant of presidents. Facile anti-intellectualism is the order of the day now, as even Democrats race to embrace the free-market logic of the Chicagoans. The &#8221;New Industrial State&#8221; that the great liberal economist described in 1967 is now Public Enemy No. 1 of financiers and rebel C.E.O.&#8217;s determined to, as Tom Peters put it in 1992, blast &#8221;the violent winds of the marketplace into every nook and cranny in the firm.&#8221;</p>
<p>Yet reading Parker&#8217;s comprehensive account of the 20th century&#8217;s economic battles, I can&#8217;t help thinking that this ought to be Galbraith&#8217;s moment. An old-school scoffer like Galbraith would remind us that all our elected officials have done with their heady incantations of the virtues of privatizing Social Security and the glories of deregulation is resurrect the superstitions of our orthodox ancestors, and trade in our affluent society for a faith-based 19th-century model in which the affluence accrues only to the top.
</p></blockquote>
<p>Or, as I sometimes like to put it, &#8220;Economics is too important to be left to economists.&#8221;  Galbraith would have agreed.</p>
<p>Seemed particularly relevant to me as I have just finished reading books by Galbraith and Frank in the last few months.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/10/25/facile-anti-illectualism-is-the-order-of-the-day/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Did I miss the nuances of free speech?</title>
		<link>http://www.pixelmonkey.org/2007/09/21/nuances-free-speech</link>
		<comments>http://www.pixelmonkey.org/2007/09/21/nuances-free-speech#comments</comments>
		<pubDate>Sat, 22 Sep 2007 04:33:27 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Civil Liberties]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[US Government]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/09/21/nuances-free-speech/</guid>
		<description><![CDATA[This taken from the comments section of an article written by Joe Conason on the tasering incident.
The most distressing thing about this incident to me is that commentators like Mr. Conason, with whom I agree most of the rest of the time, insist on viewing this whole thing as some kind of free speech issue. [...]]]></description>
			<content:encoded><![CDATA[<p>This taken from the <a href="http://letters.salon.com/opinion/conason/2007/09/21/free_speech/view/index11.html?show=all&#038;order=desc">comments section</a> of an <a href="http://letters.salon.com/opinion/conason/2007/09/21/free_speech/view/?show=all">article written by Joe Conason</a> on the tasering incident.</p>
<blockquote><p>The most distressing thing about this incident to me is that commentators like Mr. Conason, with whom I agree most of the rest of the time, insist on viewing this whole thing as some kind of free speech issue. It was not. On this point, the letter previously submitted by FinFangFoom had it exactly right:</p>
<p>&#8220;You don&#8217;t have the right to violate an organization&#8217;s rules, burst into their meeting, grab a microphone from another student, and begin rambling about your conspiracy theory. The University of Florida had every right to remove the student, and every [right] to get rough with him when he VIOLENTLY resisted arrest.&#8221;</p>
<p>If there&#8217;s any First Amendment issue here, it&#8217;s that Mr. Meyer infringed upon the First Amendment rights of everyone else in that room who hoped to ask Senator Kerry a question. He had his time to speak, he went over his time, and clearly his only purpose in being there was to cause a ruckus. Let&#8217;s be blunt: the kid behaved like a spoiled asshole. Why is he now being celebrated, defended, held up as a First Amendment martyr?</p>
<p>[...]</p>
<p>There are plenty of people in the U.S. who are legitimate victims of suppression of First Amendment rights. Go champion their causes &#8212; don&#8217;t waste your time defending this idiot who didn&#8217;t know when to stand down, and who was only there because he wanted to promote himself.
</p></blockquote>
<p>Is this commenter right?</p>
<p>It would be impossible to dispute that there are people whose First Amendment rights have been more egregiously violated than Mr. Meyers&#8217;.  But, you could say that about any First Amendment violation, however large or small.  So that is something of a non-issue.  I won&#8217;t apologize for the fact that this kid was white, possibly rich, possibly had a sense of entitlement.  In fact, from the video he looked like something of a jerk.  But that doesn&#8217;t mean he isn&#8217;t entitled to his rights.</p>
<p>I&#8217;ll repeat it again &#8212; free speech is only free speech if it&#8217;s <a href="http://www.chomsky.info/articles/19810228.htm">a right even given to people you hate</a>.</p>
<p>The commenter writes, &#8220;If there&#8217;s any First Amendment issue here, it&#8217;s that Mr. Meyer infringed upon the First Amendment rights of everyone else in that room who hoped to ask Senator Kerry a question.&#8221;  I have seen a similar sentiment expressed elsewhere on the web.  The first thing that comes to mind for me is that the First Amendment protects your free speech from <em>government</em> infringement.  It doesn&#8217;t say anything about the courtesy to speak among my peers, in any fair or equal share or measure.  In other words, free speech (at least as defined by the First Amendment) is about allowing a soap box in the public square, but it says nothing about who gets to stand on it, and for how long.  The key thing the First Amendment says is that the <em>government</em> has <em>no right restricting</em> the use of the soap box.</p>
<p>Did I miss the nuance here?  I don&#8217;t think so.  Police officers comprise an arm of the executive branch of government.  They are law enforcement.  When someone acting on behalf of the government restricts my speech, <i>especially in a political context</i>, that&#8217;s a First Amendment violation.  Plain and simple.</p>
<p>In conclusion, Meyers was taser&#8217;ed for standing on the soap box too long, and for saying things too disagreeable to the general audience, especially the police officers.  Like it or not, standing on the soap box too long is protected by the First Amendment.  </p>
<p>If you want him off the soap box, it&#8217;s simple: ask him off, boo him off, or simply stop listening.  You don&#8217;t get to ask the government to remove him, because the government doesn&#8217;t get to pick how long is too long, and what speech is worthy of being heard.  Let me repeat that again: the government doesn&#8217;t get to pick what speech is worthy of being heard.</p>
<p>I think it is only intellectually honest to separate the free speech issue from the police brutality issue.  But at the same time, I have a hard time doing so.  Meyers was <em>removed</em> from the forum by <em>force</em> &#8212; initially, the police just grabbed him, and told him he had to go.  This was a First Amendment violation in itself.  But then, they handcuffed him.  This made him think he was under arrest (and in fact, he was).  So now, not only was his First Amendment right being trampled upon, but he was also being charged as a criminal.  I, in the same situation, would not have simply gone quietly in the night.  I would have done exactly what he did &#8212; shouted out, &#8220;They are arresting me!  Do you see this!?&#8221;  I would have squirmed.  I would have asked for the police to <em>reason</em> with me.  And, I would have been taser&#8217;ed.</p>
<p>So, although it seems intellectually honest to separate the speech from the brutality, the two seem vitally, essentially connected.  More generally, if you have your rights violated, and then resist that violation, the punishment for your resistance still relates to the rights which were originally violated.</p>
<p>On a side note, I think Conason is right to relate this incident to the &#8220;Free Speech Zones&#8221; used by Bush during his speeches.  Here&#8217;s another post from the comments section:</p>
<blockquote><p>
I live and work in a University community. Two years ago, I was among a group of about 70 people who quietly marched towards the campus, where President Bush was speaking, to protest the war in Iraq. We held signs, all of them within the bounds of good taste, and we did not chant or shout or create any disturbance, just marched quietly through town and to the campus, where we were prevented, by campus security, from getting anywhere near the central commons where the president was to speak. Only those who had been vetted in advance were allowed there, most of them wearing red, white and blue and carrying pro-Bush and pro-war signs and banners. We were shunted to an area &#8212; shade and grass there so we were not uncomfortable &#8212; well out of sight and earshot of the actual event. That was disturbing, in a free country on a public university campus. But more disturbing was the fact that there were armed guards carrying large, visible weapons, patrolling the rooftops of the buildings surrounding us, and keeping an eye on us. And most disturbing was the fact that, when the event &#8212; which we could not hear except for the cheering of the carefully assembled crowd &#8212; was over, the attendees departed the event by a route that took them right past our area. They threw things at us, shouted obscenities, and had a bullhorn through which they shouted &#8220;Traitors!&#8221; and other things far more offensive. No one made any effort to restrain their rage or hatred. But I am quite sure, had any one of us made a move, or started shouting, or in any way appeared to be trying to break free from our &#8220;free speech zone&#8221;, we would have been &#8220;handled&#8221; by the guys on the rooftops.  It is alarming to me that this kind of thing has happened again and again and the media never mentions it in the coverage of these staged events. I believe that is how dictatorships operate; it is not how I was taught that people live and behave in a democracy.</p></blockquote>
<p>I feel this is also related to the recent incident in New York with regard to President Ahmadinejad of Iran visiting Columbia University for a public forum.  Here is a post and a clever response by someone named &#8220;ann&#8221; on <a href="http://cityroom.blogs.nytimes.com/2007/09/21/bloomberg-wont-listen-to-ahmadinejad/?hp">NYTimes City Room</a>:</p>
<blockquote><p>“As some of the other people here have already said, what in the world could this guy have to say that we need to hear? Yes, I believe in freedom of speech, but, Iranians are NOT our allies…If you really want to hear what this man has to say, why don’t you go visit him in Iran, and, see if you get the same liberal freedoms that you want to grant him here…and, honestly, anything that comes out of his mouth will only be a lie, conjured up to make himself and his country look more like an ally than an enemy…and, as far as visiting Ground Zero, if we did let him, we would probably see a picture of him at the site (smiling) on the Al Jazeera website soon after…” — Posted by ron</p>
<p>I wouldn’t want to hear him speak in Iran because no one would have the freedom to question him there. In America, we will be able to hear him express his opinions, and we will be able to hear someone openly question them, debate them, and discuss them. It’s a beautiful thing. — Posted by ann</p></blockquote>
<p>Let&#8217;s just hope Ahmadinejad doesn&#8217;t get taser&#8217;ed for speaking too long.  Might make follow-up diplomatic relations difficult.  (I hope Cheney isn&#8217;t reading this&#8230;)</p>
<p>Responding again to the above, I don&#8217;t think it&#8217;s alarmist to point to these currents in our culture and say, &#8220;This smells like fascism.&#8221;  We may still be the greatest country on Earth with regard to free speech, but it isn&#8217;t a given.  Everything can change, and everything does. We must defend this essential right now as fiercely as two centuries ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/09/21/nuances-free-speech/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fascism Rising: Suppressing Speech with Tasers</title>
		<link>http://www.pixelmonkey.org/2007/09/19/fascism-rising</link>
		<comments>http://www.pixelmonkey.org/2007/09/19/fascism-rising#comments</comments>
		<pubDate>Wed, 19 Sep 2007 13:15:38 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Civil Liberties]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[US Government]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/09/19/fascism-rising/</guid>
		<description><![CDATA[I hate to alienate readers by starting with a Noam Chomsky quote, but oh well.  Chomsky once said, &#8220;If you are in favor of freedom of speech, that means you are in favor of freedom of speech precisely for views you despise &#8211; otherwise you&#8217;re not in favor of freedom of speech.&#8221;
I am sure [...]]]></description>
			<content:encoded><![CDATA[<p>I hate to alienate readers by starting with a Noam Chomsky quote, but oh well.  Chomsky once said, &#8220;If you are in favor of freedom of speech, that means you are in favor of freedom of speech precisely for views you despise &#8211; otherwise you&#8217;re not in favor of freedom of speech.&#8221;</p>
<p>I am sure by now you&#8217;ve heard the story of Andrew Meyers, a 21-year-old student who was arrested and taser&#8217;ed by four or five University of Florida police officers because he was loud and rude at a political Q-and-A session with John Kerry.</p>
<p>When he was being dragged off the podium, the audience applauded.  To be fair, that was probably because Meyers was impassioned, and probably was asking questions that made people uncomfortable.  Possible voter fraud in the 2004 election, impeaching Bush for war crimes: neither of these are things the average Floridian probably finds to be in alignment with their own view of the world.</p>
<p>I don&#8217;t think police should have the right to escort me away from the podium when I&#8217;m speaking to an elected representative of government.  This is a democracy.  Sometimes it&#8217;s loud, sometimes it&#8217;s rude, things don&#8217;t always go according to plan.  Questions aren&#8217;t always easy ones, and questions can make people uncomfortable.  But that&#8217;s democracy.  It&#8217;s messy, but through the chaos,  our voices get heard.</p>
<p>Fascists were very good at making sure Q-and-A sessions were orderly.  No one went over their time limit, and no one asked a question a politician didn&#8217;t like.</p>
<p>If Meyers had only been escorted out of the building, I would find that to be a violation of his First Amendment rights and I&#8217;d want the State to force those police officers to take some training courses.  The first course would force every one of them to read the U.S. Constitution, before they go around supposedly protecting the rights it describes.</p>
<p>But it didn&#8217;t stop there.  They didn&#8217;t just escort him out of the building, or practice good old-fashioned diplomacy.  They didn&#8217;t even grab him &#8212; 4 vs. 1 &#8212; and drag him out of there.</p>
<p>Despite the fact that he posed no physical threat to the numerous officers around him &#8212; he had no weapons, he was throwing no punches, he was just a little squirmy because he had his 1st amendment right trampled upon &#8212; the police officers decided it was a good time to try out their new toy.  They taser&#8217;ed Meyers, and left him writhing in pain in an auditorium full of his peers.   A Senator of the US Government stood by and told everyone to &#8220;calm down&#8221;.</p>
<p>If you haven&#8217;t yet, you can see <a href="http://video.nbc6.net/player/?id=157250">the full video here</a>, and also from <a href="http://youtube.com/watch?v=qUtBlDu8azU">another angle</a> (though warning, the latter one is a bit gut-wrenching).</p>
<p>I saw a <a href="http://weblogs.baltimoresun.com/news/politics/blog/2007/09/witness_defends_kerry_response.html">blog post about the event and Kerry&#8217;s response</a>, but what really got to me was the following comment from a reader named &#8220;Roman B.&#8221; on that blog:</p>
<blockquote><p>
I&#8217;ve done my sint as a questioner at political functions in college. Whenever I had my mike turned-off &#038; asked to leave the podium (always at conservative functions, go figure), that&#8217;s what I did. I didn&#8217;t wait for security to ask me to leave, escort me, argue with them, or get myself in a position where I could get myself in trouble.</p>
<p>This has nothing to do with Andrew Meyer&#8217;s freedom of speech, Kerry, Bush, homeland security, 04 elections, left, right, or anything of the sort.</p>
<p>Andrew went up there to the podium with the intent of instigating trouble &#038; he got it. He was dumb enough to get himself into trouble, but smart enough to know he would get the notariety he was looking for.</p>
<p>Why else would he make sure the camera was on?&#8221;
</p></blockquote>
<p>I&#8217;ve decided to rewrite Roman B&#8217;s post, with a few key words changed:</p>
<blockquote><p>
I&#8217;ve done my stint as a questioner at political functions in college.  Whenever I had my microphone turned off and was asked to leave the podium (always at Nazi rallies, go figure), that&#8217;s what I did.  I didn&#8217;t wait for the SS to ask me to leave, escort me, argue with them, or get myself in a position where I could get myself in trouble.</p>
<p>This has nothing to do with Andrew Meyer&#8217;s freedom of speech, or any of the other political issues of Germany&#8217;s Third Reich.</p>
<p>Andrew went up there to the podium with the intent of instigating trouble, and he got it.  He was dumb enough to get himself into trouble, but smart enough to know the notoriety he was looking for.</p>
<p>He may have died at the hands of the SS, or perhaps he&#8217;s working in a concentration camp somewhere (we&#8217;ll never know).  But this is exactly what he wanted &#8212; why else would he have had all his journalist friends of the German Resistance there, taking notes for tomorrow&#8217;s paper?
</p></blockquote>
<p>For those of you who do care about the freedom of speech, I urge you to write a letter to the <a href="http://www.police.ufl.edu/">University of Florida Police Department</a>, to the <a href="http://www.aclufl.org/">ACLU of Florida</a>, and to the <a href="http://www.usdoj.gov/crt/split/complaints.htm#Police">USDOJ</a>.  For those of you who think Meyers deserved to get taser&#8217;ed (and there are quite a few of you out there), I&#8217;ll remind you of the following parable:</p>
<blockquote><p>
They say that if you put a frog into a pot of boiling water, it will leap out right away to escape the danger.  But, if you put a frog in a kettle that is filled with water that is cool and pleasant, and then you gradually heat the kettle until it starts boiling, the frog will not become aware of the threat until it is too late.  The frog will die without even realizing it.
</p></blockquote>
<p>Or, as Huey Long once said, &#8220;Of course we will have fascism in America, but we will call it democracy!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/09/19/fascism-rising/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What is Libertarianism?</title>
		<link>http://www.pixelmonkey.org/2007/09/02/what-is-libertarianism</link>
		<comments>http://www.pixelmonkey.org/2007/09/02/what-is-libertarianism#comments</comments>
		<pubDate>Sun, 02 Sep 2007 21:52:29 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Corporate Power]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[US Government]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/09/02/362/</guid>
		<description><![CDATA[From an interesting thread on /.

My definition of &#8220;libertarianism&#8221; stands from a firm principle of &#8220;live and let live&#8221;. That is, everyone is free to do what they want as long as they are not doing any direct harm to others against their will.
I put in the phrase &#8220;direct harm&#8221; because it is all to [...]]]></description>
			<content:encoded><![CDATA[<p>From an <a href="http://ask.slashdot.org/askslashdot/07/09/02/0310215.shtml">interesting thread on /.</a></p>
<blockquote><p>
My definition of &#8220;libertarianism&#8221; stands from a firm principle of &#8220;live and let live&#8221;. That is, everyone is free to do what they want as long as they are not doing any direct harm to others against their will.</p>
<p>I put in the phrase &#8220;direct harm&#8221; because it is all to easy to declare anything you want as an &#8220;indirect harm&#8221; without any justification. When I say &#8220;direct harm&#8221;, there has to be actual clearly identifiable victims of that harm, and also clear, identifiable harm. Alas, much of what in politics and the law today that is declared &#8220;harm&#8221; isn&#8217;t really.</p>
<p>So, in essence, unless you see me actually doing something that is clearly harming someone else, you are to leave me alone. And I, of course, will do likewise.</p>
<p>I have lost count of how many times in my own life, for instance, someone has phoned the police on me simply because they *thought* I was dangerous, regardless of the fact that I had not done anything wrong nor had any intentions of doing so. And that has caused much damage &#8212; much harm &#8212; to me and my family, and yet no one learns from this. Police still encourages the public to phone everything in at the drop of a hat. Then they go out and harass innocent individuals, doing harm to them.</p>
<p>If I were libertarian-leaning before, such experiences have firmly pushed me into that camp.
</p></blockquote>
<p><strong>My response:</strong></p>
<p>You&#8217;re conflating social libertarianism and economic libertarianism. Not your fault, so is everyone else on this forum.</p>
<p>&#8220;Live and let live&#8221; is social libertarianism. You&#8217;re saying, &#8220;personal / private freedoms must not be infringed&#8221;. Economic libertarianism says, &#8220;there should not be ANY government regulation on the &#8216;free&#8217; market&#8221;. Someone who buys into both of these ideas (or, more commonly, conflates them) is a social/economic libertarian. In other words, a modern libertarian.</p>
<p>Most American-style liberals (i.e., people who believe in the power of government to help society) are also social libertarians, just not economic ones. An example of a policy offensive to an economic libertarian but not a liberal is the minimum wage, or the 40-hour work-week. Interestingly, most American-style conservatives are economic libertarians, but NOT social ones. They don&#8217;t mind eliminating the minimum wage, but they do want to tell you what you can and can&#8217;t do in your bedroom with your consenting adult partner.</p>
<p>You would think that modern libertarians would hate both parties, and some do, but you find many more of them supporting Republicans than Democrats.</p>
<p>The reason? Modern-day libertarianism really has more to do with Milton Friedman than it does with the ACLU. Many are just brainwashed Chicago school amateur economists. They think that the &#8220;invisible hand of the market&#8221; will fix everything, while they benefit from the fruits of a century of progressive policies that are only recently being dismantled.</p>
<p>They conflate social and economic libertarianism because it is convenient to do so; the latter is <em>so vulgar</em> that if presented alone to most compassionate human beings, it would seem completely insane. No 40-hour work week? No controls on foods and substances? No safety labels on medicines? No nutrition labels on food? No seatbelts in cars? No environmental regulations on dumping and pollution? Yep &#8212; that&#8217;s economic libertarianism. The &#8220;market&#8221; will sort things out. Just let the invisible hand do its work, and all these things will magically be taken care of. [You often hear economic libertarians making the mistake of applying Darwin's principle of natural selection to the market -- those with the most money and skills are "selected", and the rest <em>should</em> be left in the dust.]</p>
<p>Social libertarianism, on the other hand, jives with American sensibilities and our Constitution. And so, through the sheep&#8217;s clothing of social and personal freedoms, comes the wolf of the business-run &#8220;free&#8221; market.</p>
<p><strong>Update</strong>: A Wikipedia article on the <a href="http://en.wikipedia.org/wiki/Nolan_chart">Nolan Chart</a>, as well as <a href="http://en.wikipedia.org/wiki/Image:Nolan-chart.svg">the chart itself</a>, elaborates this distinction.  If I were producing the chart today, instead of making the x-axis &#8220;economic freedom,&#8221; I&#8217;d label it &#8220;opposition to government regulation of the market.&#8221;  Certainly less succinct, but more accurate.</p>
<p><strong>Another Update</strong>: I was revisiting the /. thread, and found a particularly good description of the difference between economic liberals and economic libertarians:</p>
<blockquote><p>
[...] the question fundamentally comes down to, &#8220;What do you fear the most?&#8221;</p>
<p>   1. An inefficient government running roughshod over you (taxation, interference in property rights, tyranny of the majority, etc).<br />
   2. Powerful, unaccountable private entities running roughshod over you (monopolies, externalities, inequity of power, etc).</p>
<p>Of course, this is a bit of an oversimplification (as is the notion that most people fit into these little political boxes), but it mostly suffices. I find that most libertarian and most liberal points of view come down to concerns that their favorite bogeyman will ruin everything if left unchecked and powerless. More nuanced views come from realizing that they both are pretty bad and that you have to make a choice how to balance them (even if you tend to throw the balance almost entirely one way or the other). The crazy ideologues you see here on Slashdot and elsewhere are the people who seem to never acknowledge that the other side&#8217;s feared enemy is a problem too.
</p></blockquote>
<p>I love this explanation.  My personal belief, as elaborated in earlier posts in this blog, is that careful government regulation of business is a good thing.  But the modern US administrations strip away regulation of businesses, while growing the government in its ability to censor, to control social and personal behavior, to use the national purse for foreign wars, etc.  In other words, the <em>worst of both worlds</em>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/09/02/what-is-libertarianism/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unanswered questions</title>
		<link>http://www.pixelmonkey.org/2007/08/13/unanswered-questions</link>
		<comments>http://www.pixelmonkey.org/2007/08/13/unanswered-questions#comments</comments>
		<pubDate>Mon, 13 Aug 2007 17:42:59 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/08/13/unanswered-questions/</guid>
		<description><![CDATA[I passed by a church on the way to work today, and read the following:
Unanswered questions are far less dangerous than unquestioned answers.
This may just be the most succinct quote I&#8217;ve seen that summarizes my view on the distinction between honest religious beliefs and religious fanaticism.
If one uses religion as a way to cope with [...]]]></description>
			<content:encoded><![CDATA[<p>I passed by a church on the way to work today, and read the following:</p>
<blockquote><p>Unanswered questions are far less dangerous than unquestioned answers.</p></blockquote>
<p>This may just be the most succinct quote I&#8217;ve seen that summarizes my view on the distinction between honest religious beliefs and religious fanaticism.</p>
<p>If one uses religion as a way to cope with unanswered questions, that is fine.  However, the moment you say <em>this is true because my scripture says so</em> &#8212; in other words, the second you stop questioning an answer which lacks evidence &#8212; you become a fanatic, and lose all credibility in my book.</p>
<p>Religion gives you <em>an</em> answer, not <em>the</em> answer.  For certain questions (for example, &#8220;How did the universe begin?&#8221;), religion may give you just as good an answer as modern science.</p>
<p>This may be due to a current lack of convincing evidence that could provide answers to this question, as is true with many of the larger questions about existence and our &#8220;place&#8221; in the universe.  Looking back in history, science failed to provide answers to questions like, &#8220;Why do diseases randomly afflict human beings?&#8221;, and religion was looked to for an answer, as when many believed that the Black Death was an earthly manifestation of divine justice from God, or the beginning of Armageddon.</p>
<p>It may also be due to epistemological constraints &#8212; in other words, it may be something that may never be known through empirical methods.  An example of the unknowable would be the answer to &#8220;Is there an afterlife?&#8221;, since supposedly, there would be no way for those of the afterlife to communicate its existence to the presently living.</p>
<p>But for other questions (for example, &#8220;How did humans develop on Earth?&#8221;), science can provide evidence, and answers.  These answers <em>have</em> been questioned, have been tested empirically, have been peer-reviewed.  Accepting the religious argument in this case &#8212; saying, &#8220;science is just <em>wrong</em> because my scripture says so&#8221; &#8212; is fanaticism.  And it should <em>not</em> be tolerated by intelligent people.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/08/13/unanswered-questions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A New Yorker&#8217;s Take on San Francisco</title>
		<link>http://www.pixelmonkey.org/2007/08/07/san-francisco-trip</link>
		<comments>http://www.pixelmonkey.org/2007/08/07/san-francisco-trip#comments</comments>
		<pubDate>Wed, 08 Aug 2007 03:38:48 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/08/07/san-francisco-trip/</guid>
		<description><![CDATA[I just got back from San Francisco.  This wasn&#8217;t my first time to the west coast, but it was my first time to Northern California.  Overall, I had an amazing time.

This trip emerged as a major convenience for me.  My brother was heading out to California for the Real Estate Connect conference, [...]]]></description>
			<content:encoded><![CDATA[<p>I just got back from San Francisco.  This wasn&#8217;t my first time to the west coast, but it was my first time to Northern California.  Overall, I had an amazing time.<br />
<span id="more-359"></span></p>
<p>This trip emerged as a major convenience for me.  My brother was heading out to California for the <a href="http://www.realestateconnect.com/">Real Estate Connect</a> conference, since his company is intimately involved with Real Estate technologies.  But he didn&#8217;t want to go alone, so he paid for my plane ticket and hotel stay the first few nights to convince me to come out.  (Thanks, Alex!)</p>
<p>I got in touch with some people I knew out there, but many of them weren&#8217;t going to be around during my stay, due to summer vacations, etc.</p>
<p>Joseph Sofaer, a friend of mine from NYU, was gracious enough to delay a trip to Europe to show me around the area.  I was even lucky enough that the first first day I was there, he invited me to a party at the Facebook headquarters in Palo Alto, CA, where I briefly met Mark Zuckerberg, saw Robert Scoble walking around, and met about twenty other software developers in a room of 300, who worked for companies like Yahoo, Pandora, del.icio.us, and, of course, Facebook itself.</p>
<p>The train ride home, I was riding with the <a href="http://www.milliondollarhomepage.com/faq.php#2">creator</a> of the <a href="http://www.milliondollarhomepage.com/">MillionDollarHomepage</a>, probably the best website idea of all time.</p>
<p><strong>Palo Alto and Software is Sexy<br />
</strong> &#8212;<br />
The vibe in Palo Alto was enviable, especially for a native New Yorker.  When I pull out my laptop on the train or in a cafe in NY, screens full of code or running with full-screen vterms, I get stares and strange looks.  (Including right now, as I write this blog post on the LIRR&#8230;)  In Palo Alto, my brother and I walked by two or three cafes, and in each I saw young guys and gals at their laptops, coding away, screens full of GNU make output scroling by, emacs and vim buffers splitting off.  I overheard conversation snippets like, &#8220;we&#8217;re hoping to release our next version in a couple weeks&#8221;, &#8220;you have got to try metaclass programming with Python&#8221;, and &#8220;did you see that article on /.?&#8221;</p>
<p>In New York, people aren&#8217;t that proud to be a geek.  You go to a typical gathering and say, &#8220;I&#8217;m a software developer&#8221; and the typical response is, &#8220;Oh&#8230;&#8221;, followed by silence, followed by, &#8220;I think I need another drink&#8230;&#8221;.  Sexy in New York, programming isn&#8217;t.  If you want sex appeal, go into finance, law, or politics.</p>
<p>Opposite in Palo Alto, of course.  Which makes you feel great as a software developer.  What are you into?  If you answer, &#8220;Stocks, bonds, and the market&#8221; you&#8217;ll get the treatment I described above.  You answer, &#8220;Ruby on Rails&#8221; and you&#8217;ll be having a 2-hour, heated conversation.</p>
<p>BTW, the Silicon Valley excitement about Ruby on Rails is palpable.  Everyone wants a Rails developer.</p>
<p>A quick anecdote to illustrate the NY disdain for geeks: I was out with a friend once who had attend culinary school and was trying her way up the restaurant ladder, to become a chef.  She complained, however, that the money in these entry level jobs (food preparer, etc.) in the kitchen was way too little, that it was difficult to get by.  So, someone suggested, &#8220;Why don&#8217;t you waitress on the side?&#8221;</p>
<p>Her response, &#8220;Waitress?  I&#8217;m trying to become a chef.  That&#8217;s like saying to someone who wants to run a company, &#8216;Why don&#8217;t you work as an IT guy?&#8217;&#8221;</p>
<p>Something tells me that joke wouldn&#8217;t work that well in Palo Alto.</p>
<p><strong>San Francisco and Good Coffee<br />
</strong> &#8212;<br />
It was great to be able to get a little sense of the Silicon Valley vibe on my first day in Northern California.  But by the end of the day, my head was spinning.  I was ready to head back to an environment that was less technobubble, something a bit more real.</p>
<p>My second day there, I walked around some neighborhoods on my own, particularly Union Square (which is a bit of a tourist center), the Mission (which reminds me of Astoria, but with a different set of ethnic groups), and Noe Valley (which reminds me of the Upper East Side, but with houses instead of apartment buildings).</p>
<p>In the Mission, I ended up stopping by a coffee place named <a href="http://www.philzcoffee.com/">Philz</a>.  I asked for an iced coffee.  I then watched as the barrista (who I think was <a href="http://www.philzcoffee.com/philcoffee.html">Phil</a>!) took a scoop of coffee beans, ground them in a grinder, put them in a coffee machine, and made a fresh cup of coffee.  Some ice went in with frothed milk atop it.  I kid you not, the <strong><em>BEST</em></strong> iced coffee I have ever had.</p>
<p>Later in the day, when I met up with Joey at his apartment, I mentioned that I had just stumbled upon the best iced coffee of my life a couple hours ago.  And he said, &#8220;Oh, man&#8230; if you want good coffee, you have to try this place Philz.&#8221;</p>
<p>I laughed and said &#8220;THAT&#8217;s exactly where I was!&#8221; and he responded, &#8220;Man, you had &#8216;just stumbled upon&#8217; possibly the best coffee in the world.&#8221;  So that was a bit of good luck.  We ended up going back to Philz later that day <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Joey had to leave the next day for Europe, but we spent the rest of the afternoon chatting about software ideas, in particular details about his latest idea, a Blackboard replacement application hosted on the Facebook Platform.  If you&#8217;re on the Facebook, check out the application called &#8220;Courses&#8221;.  It&#8217;s quite cool, even if it is in the early stages.</p>
<p><strong>The Weekend</strong><br />
&#8212;<br />
My brother&#8217;s real estate conference was winding down, so he snuck me in so I could catch the last couple presenters.  Unfortunately, I had missed the presentation by Craig Newmark (of craiglist fame), which was apparently pretty good.  Instead, I caught a panel by some head honchos of real estate technology at Google, Yahoo, Microsoft and Realtor.com.This panel was mighty uninteresting.  Despite the fact that these guys were all supposed to be team leads and head-techies-in-charge, they all gave tired lines and made me question whether they actually knew what they were talking about.</p>
<p>Nonetheless, it was interesting to see a conference of this kind &#8212; lots of buzz, lots of software developers all gathered together, a lot of excitement about an emerging market.</p>
<p>That afternoon, we took a bus tour of San Francisco, which was well worth it due to the hilarious tour guide named &#8220;Silvio.&#8221;</p>
<p>We spent that night at a Vietnamese Restaurant named &#8220;<a href="http://www.lecolonialsf.com/index_flash.html">La Colonial</a>&#8220;.  Excellent.</p>
<p>Saturday morning, we walked around the city, starting out in Union Square, moving through to Civic Center.  We stopped at the <a href="http://www.asianart.org/">Asian Art Museum</a>, where I saw an exhibit on <a href="http://www.marvelofmanga.org/">Manga</a> and <a href="http://www.asianart.org/yoshitoshi.htm">Japanese Wood Block art</a>, both very good, among others.  Finally, we ended up in the Lower Haight and Haight Ashbury, where we spent the afternoon lounging and exploring.</p>
<p>At night, we headed to North Beach and <a href="http://www.stepsofrome.com/">ate dinner</a> there.  We ended the night at the bar at the top of the Sir Francis Drake hotel, which my brother said reminded him a bit of Windows on the World, when that was still around.</p>
<p><strong>Conclusion</strong><br />
&#8212;</p>
<p>For a short trip, I got to see a good chunk of the city, and even got to take that important visit outside the city.  Overall, I had a great time.</p>
<p>As a technologist based out of New York, I have to say that San Francisco is quite appealing.  The weather, the laid back attitude, the independent shops, cafes and restaurants, the technology buzz.  But moving there would certainly seem like selling out.  Sure, we may not be able to <a href="http://www.paulgraham.com/siliconvalley.html">reproduce Silicon Valley</a> but we can <a href="http://en.wikipedia.org/wiki/Silicon_Alley">do our own thing</a>.  New York is too strong a city to be left in the hands of financiers and lawyers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/08/07/san-francisco-trip/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>In San Francisco</title>
		<link>http://www.pixelmonkey.org/2007/08/02/in-san-francisco</link>
		<comments>http://www.pixelmonkey.org/2007/08/02/in-san-francisco#comments</comments>
		<pubDate>Fri, 03 Aug 2007 04:25:31 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/08/02/in-san-francisco/</guid>
		<description><![CDATA[I&#8217;m in San Francisco, will be back this Monday.  Have lots to say.  This trip has been&#8230; well, a trip.
Stay tuned.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in San Francisco, will be back this Monday.  Have <em>lots</em> to say.  This trip has been&#8230; well, a trip.</p>
<p>Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/08/02/in-san-francisco/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
