<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Psychohistory &#187; Developer</title>
	<atom:link href="http://blog.adamnash.com/category/developer/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.adamnash.com</link>
	<description>The personal blog of Adam Nash</description>
	<lastBuildDate>Thu, 16 Feb 2012 05:07:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.adamnash.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Psychohistory &#187; Developer</title>
		<link>http://blog.adamnash.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.adamnash.com/osd.xml" title="Psychohistory" />
	<atom:link rel='hub' href='http://blog.adamnash.com/?pushpress=hub'/>
		<item>
		<title>&#8216;Twas The Night Before Hackday</title>
		<link>http://blog.adamnash.com/2011/07/15/twas-the-night-before-hackday/</link>
		<comments>http://blog.adamnash.com/2011/07/15/twas-the-night-before-hackday/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 07:19:09 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/?p=1562</guid>
		<description><![CDATA[A quick parody of a classic to celebrate the LinkedIn Hackday tomorrow (July 15th).  Apologies in advance for the inside jokes / names.  It may not make complete sense to those of you who are not LinkedIn employees. Twas the night before Hackday, when all through LinkedIn Not a person was stirring, not even Stegman. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1562&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://psychohistory.files.wordpress.com/2008/02/pic_li_wizard_411x389.gif?w=247&#038;h=233&#038;h=233" alt="" width="247" height="233" />A quick parody of a classic to celebrate the <a href="http://blog.adamnash.com/2011/05/05/why-linkedin-hackdays-work/" target="_blank">LinkedIn Hackday</a> tomorrow (July 15th).  Apologies in advance for the inside jokes / names.  It may not make complete sense to those of you who are not LinkedIn employees.</p>
<blockquote><p><span style="color:black;font-family:Tahoma;font-size:x-small;"><span style="color:gray;font-family:Arial;font-size:small;">Twas the nig</span><span style="color:gray;font-family:Arial;font-size:small;">ht before Hackday, when all through LinkedIn</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Not a person was stirring, not even Stegman.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
The fridges were stocked with cans of Redbull</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
The cups were all stacked, the bins were all full.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
The hackers were nestled with text editors,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
The build was still stable, with normal errors.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
iPhones were docked, and Droids were all sleeping,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
And MacBooks were purring with power lights breathing.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
All of a sudden the InGraphs start flashing,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
The NOC is alerted; what is now crashing?</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Henke &amp; Kevin were quickly online,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
What could be causing this kind of flatline?</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Before the team could dive into root cause,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
The problems had ended and everyone paused.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Elliot checked, and the metrics were fine</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
2011 would be over the line.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Suddenly a voice boomed from across the LinkedGym</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
There was no doubt: the Wizard of In!</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
He comes every month, for the same simple reason:</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Hackday is coming, and it&#8217;s coding season</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
&#8220;Forget all your meetings, tell Outlook to shove it.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Hackday&#8217;s for coding, just try it, you&#8217;ll love it.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Inspire your colleagues, show what you wrote,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Win their applause, and count Twitter votes!&#8221;</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
The Wizard began to run even faster,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
and shouting the names of past Hackday Masters,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
&#8220;Go Crosa, go Ragade, go Efrat &amp; Heuser. Go Gillick, go Jiong, go Blackburn &amp; </span><span style="color:gray;font-family:Arial;font-size:small;">Brikman</span><span style="color:gray;font-family:Arial;font-size:small;">.</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Go John, go Matthew, go Shoup &amp; Grishaver. Go Peter, Go Sam, Go Shannon &amp; </span><span style="color:gray;font-family:Arial;font-size:small;">Vikram</span><span style="color:gray;font-family:Arial;font-size:small;">.&#8221;</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
As he ran by the kitchen, he stopped for a second:</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
&#8220;I need a Coke Freestyle, this thing is just heaven.&#8221;</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
Quick as he came, he ran out the door,</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
&#8220;Happy Hackday to all, you are all h@x0rs&#8221;</span><span style="color:gray;font-family:Arial;font-size:small;"><br />
</span></span></p></blockquote>
<br />Filed under: <a href='http://blog.adamnash.com/category/developer/'>Developer</a>, <a href='http://blog.adamnash.com/category/linkedin/'>LinkedIn</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/1562/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1562&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2011/07/15/twas-the-night-before-hackday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>

		<media:content url="http://psychohistory.files.wordpress.com/2008/02/pic_li_wizard_411x389.gif?w=247&#38;h=233" medium="image" />
	</item>
		<item>
		<title>Why LinkedIn Hackdays Work</title>
		<link>http://blog.adamnash.com/2011/05/05/why-linkedin-hackdays-work/</link>
		<comments>http://blog.adamnash.com/2011/05/05/why-linkedin-hackdays-work/#comments</comments>
		<pubDate>Thu, 05 May 2011 05:04:44 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[Silicon Valley]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[H@x0rz]]></category>
		<category><![CDATA[Hackday]]></category>
		<category><![CDATA[Wizard of In]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/?p=1524</guid>
		<description><![CDATA[Two weeks ago, we celebrated yet another great Hackday judging event at LinkedIn.  For the April 15th Hackday, over 50 employees submitted a combined total of 29 projects for the contest.  We saw incredible product concepts, developer tool innovations, internal corporate applications, and even a few ideas so good they&#8217;ll likely ship as products in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1524&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago, we celebrated yet another great Hackday judging event at LinkedIn.  For the April 15th Hackday, over 50 employees submitted a combined total of 29 projects for the contest.  We saw incredible product concepts, developer tool innovations, internal corporate applications, and even a few ideas so good they&#8217;ll likely ship as products in the coming weeks.  At this point, it feels like every Hackday is better than the one before it.</p>
<p style="text-align:center;"><a href="http://psychohistory.files.wordpress.com/2008/02/pic_li_wizard_411x389.gif"><img class="aligncenter size-full wp-image-644" style="border:0 none;" src="http://psychohistory.files.wordpress.com/2008/02/pic_li_wizard_411x389.gif" alt="" width="247" height="233" /></a></p>
<p>Most of the engineers who work at LinkedIn have also worked at other great technology companies, and in the past year there has been an incredible swell of feedback from new and old employees alike that LinkedIn Hackdays have become something truly special.  Creating the LinkedIn Hackday has been an iterative, experimental process, so I thought it might be useful to capture some of the details on how LinkedIn Hackdays work, and more importantly, why we run them the way we do.</p>
<p><strong>Origins</strong></p>
<p>It&#8217;s funny to think about it now, but the original LinkedIn Hackday had an unlikely catalyst.  On December 14th, 2007 approximately 100+ LinkedIn employees moved into a brand new space on the first floor of 2029 Stierlin Court.  It was the first time that LinkedIn had designed a workspace from the ground-up, and it included a large number of LCD TV&#8217;s on the wall.  The goal was to immerse the product and engineering teams in real-time feedback and data from the LinkedIn community, and each of the TV&#8217;s was driven by small Mac Mini.</p>
<p>The &#8220;Pure Energy&#8221; contest kicked off right before Christmas, with a goal of using some of the seasonal downtime to produce cool, internal applications that we could effectively &#8220;hang on the wall&#8221;.  The prize?  Brand new iPhones for the winning team.  The only rules?  The application had to reflect real usage of LinkedIn, it had to run continuously (so it could be left up 24&#215;7), it had to be designed for display on a 720P monitor (1366&#215;768), and it had to run in either Safari or as a Mac OS X screensaver.</p>
<p>Five projects were submitted, and several became staples of our decoration in 2029 for all of 2008.  (Coincidentally, December 2007 was also the first time we pull the live Twitter search for &#8220;LinkedIn&#8221; up on the wall for everyone in Product &amp; Engineering to see at all times through the day).  The winner of the &#8220;Pure Energy&#8221; contest, <a href="http://newin.linkedin.com" target="_blank">NewIn</a>, still lives on in an upgraded form, in both the LinkedIn reception lobby as well as on <a href="http://www.linkedinlabs.com" target="_blank">LinkedIn Labs</a>.<strong><br />
</strong></p>
<p><strong>Key Ingredients</strong></p>
<p>We&#8217;ve learned a lot in the past four years about how to make Hackdays successful at LinkedIn, but at a high level, there are ten key ingredients that make LinkedIn Hackdays work. <strong><br />
</strong></p>
<ol>
<li><strong>For Engineers, By Engineers.  </strong>This may be obvious, but Hackdays are highly optimized events around engineering culture.  There may be a lot of opinions about what would be considered &#8220;fun&#8221; or &#8220;useful&#8221;, but for Hackdays, in the end, is designed for engineers.  This effects everything from the timing, the prizes, the venue and the communication around it.<br />
<strong><br />
</strong></li>
<li><strong>Spirit of Exploration.  </strong>Hackdays have an opinionated culture, and one of those opinions is that with software it is infinitely better to learn by actually doing, rather than reading / talking.  It&#8217;s part of why people go into engineering in the first place.  This is one of the reasons that we celebrate hacks that are purely to learn a new language, environment, algorithm, or architecture.  This is not just a fun thing to do &#8211; it&#8217;s an incredibly effective way to expose talented engineers to new technology, and more importantly, set a tone that we should always be learning.<br />
<strong><br />
</strong></li>
<li><strong>Independence.  </strong>Hackdays are a day of true self-determination.  At LinkedIn, we believe that small, cross-functional teams build the best software.  Teams do a great job looking at product metrics, customer requests, and innovative ideas from the team, and then prioritizing what to work on.  Hackdays are a day to break free, and work on whatever you personally find interesting.  If you have a great idea, this is the day to help make it a reality.<br />
<strong><br />
</strong></li>
<li><strong>Company-wide Event. </strong>Hackdays may be optimized for engineers, but everyone is invited and included.  Some of the best Hackday projects come from an engineer, web developer and product manager working together.  We&#8217;ve had entries from almost every function, and from multiple offices.  Most importantly, hackday projects are shared with the entire company on the intranet, and Hackday Judging is an event that everyone is encouraged to attend.  Winners are announced to the whole company.  It&#8217;s incredibly important to cement hackdays as a part of company culture, rather than something that lives within the engineering function.<br />
<strong><br />
</strong></li>
<li><strong>Executive Attention.</strong>  Believe it or not, it wasn&#8217;t until 2010 that we stumbled upon an obvious truth.  Executive attention matters.  Actions speak louder than words, and when executives make a point to attend, reference, and discuss hackday projects, it makes a huge difference to the entire organization.  At every LinkedIn Hackday Judging event, you&#8217;ll now find at least three of LinkedIn&#8217;s senior executives on the panel.<br />
<strong><br />
</strong></li>
<li><strong>It&#8217;s a Contest, but Loosely Enforced.</strong>  LinkedIn Hackdays are thrown on Fridays, with the submission date for projects due at 9am on the following Monday.  Teams are limited to five people, and projects have to be presented live for Hackday Judging to be considered for prizes.  Having rules for hackdays is a delicate balance &#8211; if you are too weak on enforcement, people lose faith in &#8220;the system&#8221;, and you&#8217;ll get discontent from the people who follow them.  However, too tight on the rules, and you break the independent spirit of the event.<br />
<strong><br />
</strong></li>
<li><strong>Hackday Judging, or Hackday Idol?</strong>  Hackday Judging has morphed over the years into an &#8220;American Idol&#8221; like event.  The hackdays themselves are relatively independent and quiet.  It&#8217;s the judging that is the main event.  Teams are given two minutes to demo their hacks.  The panel of celebrity judges is given a minute to asks questions, and then it&#8217;s on to the next project.  We serve lots of food &amp; drink, and try to make it a fun event.  (Typically, I fill the role of Ryan Seacrest.  Yes, I know that my mom would be proud.)  There is a lot of laughing, a lot of cheering, and we try to make a good time for everyone.  Most people who attend leave the event incredibly inspired by what their co-workers come up with.  More importantly, once people attend, they tend to come back again (or better yet, enter their own projects.)  We now have everyone in the company help judge by tweeting out their favorite projects with the project name and a #inday hashtag.<br />
<strong><br />
</strong></li>
<li><strong>Lots of Prizes. </strong>We give prizes to every team that present a project at Hackday, typically a reasonably sized Apple gift card.  Winning teams get larger dollar amounts.  We have 5-6 regular categories, so there are always multiple winners.  Some times, we give additional prizes for stand out projects, but that&#8217;s up to the judges.  The reason for gift cards is logistics &#8211; giving out iPhones, iPods, Flip cameras, etc sounds like a great idea, but too often you get winners who already have one, or who don&#8217;t want one.  (The Apple bias bugs some people, but the truth is we&#8217;ve experimented with a wide variety of prizes, and people on average seem to really prefer these.  We did notice that our college interns preferred Amazon gift certificates, however&#8230;)<br />
<strong><br />
</strong></li>
<li><strong>Path to Production.  </strong>Some hackday projects are so impressive, there is a natural desire to shout &#8220;SHIP IT!&#8221;  In reality, however, hackday projects can vary significantly in their technical and product appropriateness for a large scale production environment.  At LinkedIn, we&#8217;ve now found multiple ways for people to share their hacks.  Some projects live on hosted on internal machines, and are used by employees.  Some of our best internal tools have come from previous hackdays.  Other projects are built over the LinkedIn Platform, and can be launched to end users on <a href="http://www.linkedinlabs.com" target="_blank">LinkedIn Labs</a>.  Some projects are actually extensions of our production codebase, and actually become live site features.  (Example: The 2010 Year In Review email began as a Hackday Winner, as did the inline YouTube expansion in the LinkedIn feed.)<br />
<strong><br />
</strong></li>
<li><strong>Learn &amp; Iterate.    </strong>We are big believers in continuous improvement, and I don&#8217;t think there has been a single hackday where we didn&#8217;t add some improvements.  We constantly try out new things, and stick with the ones that work, and shed the ones that don&#8217;t.  The pace of innovation has dramatically quickened as hackdays became more frequent, and as the company has grown larger.</li>
</ol>
<p><strong>Common Issues &amp; Questions</strong></p>
<p>It would be impossible to capture all the common questions about hackdays here, but I thought it was worthwhile to capture a few persistent questions that we&#8217;ve debated in our process of creating LinkedIn Hackdays.<strong><br />
</strong></p>
<ul>
<li><strong>I have a great hackday idea &#8211; how do I find engineers to build it?<br />
</strong>This is a really well meaning question, typically from non-technical employees, who are excited about the idea of hackday, but lack the means to implement it themselves.   The most reliable way that people solve this problem is by talking about their idea broadly, and effectively evangelizing the idea of forming a hackday team around it.  In the past, we&#8217;ve tried throwing pre-hackday mixers, usually around a technical topic, to help people find teams, but it&#8217;s had at best mixed success.<br />
<strong><br />
</strong></li>
<li><strong>I want people to build features for XYZ &#8211; how do we get people to do it?<br />
</strong>This question typically comes from a product manager, executive, or business owner who sees hackdays as a massive amount of valuable potential engineering effort for their area.  In this case, the short answer is that hackdays are about independence &#8211; the more you try to get people to do what you want, the more energy (and innovation) you sap from the system.  That being said, we&#8217;ve seen quite a bit of success where teams sponsor &#8220;special prizes&#8221; for a specific category on a given hackday.  Example: an iPad 2 for the project voted best &#8220;developer tool&#8221;.  This approach seems to provide the best balance of independence and incentive to generate the desired result.<br />
<strong><br />
</strong></li>
<li><strong>How do we get all hackday projects live to site?<br />
</strong>This question assumes that the goal of all hackday projects should be to go live to site.  However, given the education and innovation mandate of hackday, there are actually quite a few projects that are not intended to go live to site, and that&#8217;s not a bad thing.  The way that we&#8217;ve handled this question is by providing both a variety of mechanisms for projects to &#8220;go live&#8221;, as well as prize categories for projects that are not based on being a &#8220;shippable&#8221; feature.<br />
<strong><br />
</strong></li>
<li><strong>How can we spare a day from our priorities for a Hackday?<br />
</strong>In some ways, this is the big leap of faith.  For anyone who has attended any of the recent LinkedIn Hackdays, it&#8217;s hard to imagine this being considered seriously at this point.  However, at small companies, there are always more things to do than time to do them.  The decision to have hackdays is largely based on the belief that giving people time to learn by doing and to pursue independent ideas will pay off in multiples, not just in the projects themselves, but in the attitude and energy it brings to the company overall.  In some ways, you can view it as an HR benefit that also has a measurable positive impact on culture, internal technology, and product innovation.<br />
<strong><br />
</strong></li>
<li><strong>How do we get people to participate?<br />
</strong>The ten ingredients above reflect the system that we&#8217;ve devised, but the truth is it took time for hackdays to build into a culture fixture at LinkedIn.  In 2008, we threw two hackdays, and had about half a dozen teams enter each.  However, as the company celebrated each hackday winner, we saw demand pick up.  We had a major breakthrough in participation when we launched the &#8220;Hackday Idol&#8221; format for judging in early 2010, and since then we&#8217;ve seen incredible growth in the number of participants and projects.<br />
<strong><br />
</strong></li>
</ul>
<p><strong>What&#8217;s Next?</strong></p>
<p>I&#8217;ve got a few new innovations ready to roll out for the May 20th hackday.  Not to spoil the surprise, but we&#8217;ll be rolling out for the first time a new &#8220;Hackday Masters&#8221; designation and category, for people who have won at least three hackdays.</p>
<p>Hopefully, the Wizard of In will smile down on us, and as always reward those who seek to bend code to their will.<strong><br />
</strong></p>
<br />Filed under: <a href='http://blog.adamnash.com/category/developer/'>Developer</a>, <a href='http://blog.adamnash.com/category/linkedin/'>LinkedIn</a>, <a href='http://blog.adamnash.com/category/silicon-valley/'>Silicon Valley</a>, <a href='http://blog.adamnash.com/category/software/'>Software</a> Tagged: <a href='http://blog.adamnash.com/tag/hx0rz/'>H@x0rz</a>, <a href='http://blog.adamnash.com/tag/hackday/'>Hackday</a>, <a href='http://blog.adamnash.com/tag/wizard-of-in/'>Wizard of In</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/1524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/1524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/1524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/1524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/1524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/1524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/1524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/1524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/1524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/1524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/1524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/1524/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/1524/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/1524/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1524&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2011/05/05/why-linkedin-hackdays-work/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>

		<media:content url="http://psychohistory.files.wordpress.com/2008/02/pic_li_wizard_411x389.gif" medium="image" />
	</item>
		<item>
		<title>Personal Finance for Engineers</title>
		<link>http://blog.adamnash.com/2011/04/23/personal-finance-for-engineers/</link>
		<comments>http://blog.adamnash.com/2011/04/23/personal-finance-for-engineers/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 23:12:21 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[Personal Finance]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/?p=1520</guid>
		<description><![CDATA[Last Friday, LinkedIn had it&#8217;s monthly &#8220;InDay&#8221;, an event where the company encourages employees to pursue research, ideas &#38; interests outside of their day-to-day responsibilities. (This is the same day that I run the regular LinkedIn Hackdays for the company.) This month, the theme was &#8220;personal finance&#8221; as a brief nod to the ominous due [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1520&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last Friday, LinkedIn had it&#8217;s monthly &#8220;InDay&#8221;, an event where the company encourages employees to pursue research, ideas &amp; interests outside of their day-to-day responsibilities. (This is the same day that I run the regular <a href="http://blog.linkedin.com/category/linkedin-hackdays/" target="_blank">LinkedIn Hackdays</a> for the company.) This month, the theme was &#8220;personal finance&#8221; as a brief nod to the ominous due date for income taxes in the United States.</p>
<p>For fun, I volunteered to give a talk based on material that I&#8217;ve put together over the years called &#8220;Personal Finance for Engineers&#8221;</p>
<iframe src='http://www.slideshare.net/slideshow/embed_code/7644434' width='425' height='348'></iframe>
<p>I cover the most obvious two questions up front:</p>
<ol>
<li><strong>Why Personal Finance?</strong>  Personal finance is a bit of a passion of mine, and has been for almost twenty years.  It&#8217;s both amazing and shocking to me that you can attend some of the finest secondary schools and universities in this country, and still not get a basic grounding in personal finance.  More importantly, it happens to be an area with a huge signal-to-noise problem:  there is far more &#8220;bad&#8221; advice and content out there than good content.  And lastly, I believe that money matters are deeply important to the long term success and happiness of most people. (Let&#8217;s face it, money happens to be one of the top three causes of marital problems)</li>
<li><strong>Why Engineers?</strong>  The talk isn&#8217;t purely for engineers, per se, so this reflects a personal bias (I just empathize more with engineers more than other people).  That being said, engineers tend to make higher incomes earlier in life than most people, and thus face some of these questions earlier.  They also tend to have stock options, a fairly advanced financial instrument, as part of their standard compensation.  Probably most troubling, engineers also consider themselves exceptionally rational, which makes them more prone to human weaknesses when it comes to money.</li>
</ol>
<p>It was very hard to decide how to condense personal finance into a 60 minute talk (I leave 30 minutes for advanced topics).  I decided to focus on five topics:</p>
<ul>
<li>You Are Not Rational (Behavioral Finance)</li>
<li>Liquidity is Undervalued (Emergency Fund)</li>
<li>Cash Flow Matters (Spend less than you Earn)</li>
<li>The Magic of Compounding (Investment Returns &amp; Debt Disasters)</li>
<li>Good Investing is Boring (Asset Allocation)</li>
</ul>
<p>The deck is not perfect by any stretch, and I have a number of ideas on how to improve it.  There are some great topics / examples I missed, and there are some points that I could emphasize more.  I spend literally half the time on behavioral finance, which may or may not be the right balance.</p>
<p>The talk went extremely well.  We had well over 100 people attend, and stay through the full 90 minutes.  Surprisingly, I got more thank yous and follow up questions from this talk than any other that I&#8217;ve given at LinkedIn.  I&#8217;m strongly considering giving it again, perhaps at other venues, depending on the level of interest.</p>
<p>Let me know what you think.</p>
<br />Filed under: <a href='http://blog.adamnash.com/category/developer/'>Developer</a>, <a href='http://blog.adamnash.com/category/economics/'>Economics</a>, <a href='http://blog.adamnash.com/category/linkedin/'>LinkedIn</a>, <a href='http://blog.adamnash.com/category/personal-finance/'>Personal Finance</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/1520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/1520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/1520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/1520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/1520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/1520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/1520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/1520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/1520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/1520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/1520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/1520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/1520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/1520/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1520&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2011/04/23/personal-finance-for-engineers/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>
	</item>
		<item>
		<title>Why T-Shirts Matter</title>
		<link>http://blog.adamnash.com/2010/11/29/why-t-shirts-matter/</link>
		<comments>http://blog.adamnash.com/2010/11/29/why-t-shirts-matter/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 07:44:21 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[Silicon Valley]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/?p=1461</guid>
		<description><![CDATA[During my tenure at LinkedIn, I&#8217;ve held a wide variety of roles and responsibilities within the company.  Some are fairly public (as described on my LinkedIn profile).  Others are the the type that you&#8217;d never find formally discussed, and yet would be no less true if you asked anyone who worked at the company. In [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1461&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>During my tenure at LinkedIn, I&#8217;ve held a wide variety of roles and responsibilities within the company.  Some are fairly public (as described on <a href="http://www.linkedin.com/in/adamnash" target="_blank">my LinkedIn profile</a>).  Others are the the type that you&#8217;d never find formally discussed, and yet would be no less true if you asked anyone who worked at the company.</p>
<p>In a rare combination of serendipity, passion, and empowerment, I personally ended up with one of those unspoken roles: the most prodigious producer of LinkedIn t-shirts.</p>
<p style="text-align:center;">
<div id="attachment_1462" class="wp-caption aligncenter" style="width: 410px"><a href="http://psychohistory.files.wordpress.com/2010/11/linkedin_rhinestones.jpg" target="_blank"><img class="size-full wp-image-1462 " style="border:0 none;" title="LinkedIn_Rhinestones" src="http://psychohistory.files.wordpress.com/2010/11/linkedin_rhinestones.jpg" alt="" width="400" height="300" /></a><p class="wp-caption-text">2010 LinkedIn for Breast Cancer Awareness Shirt</p></div>
<p>At the recent <a href="http://www.nesta.org.uk/areas_of_work/silicon_valley_2010" target="_blank">Silicon Valley Comes to the UK</a> trip, I had the chance to have a great conversation with <a href="http://www.augustcap.com/team/david_hornik/" target="_blank">Dave Hornik</a> on why making t-shirts matter to high tech start-ups.   Believe it or not, I felt that this was a subject important enough to capture in a blog post.  (I&#8217;ll write a separate blog post on how to make truly great high tech t-shirts, which is a field of expertise unto itself.)</p>
<p><strong>Why T-Shirts Matter</strong></p>
<p>At a high level, understanding the typical culture at a high tech startup can be difficult for those who haven&#8217;t worked for one.  The best analogy I can think of is to put yourself back in time, to when you were between 8 &#8211; 12 years old.  Now, think carefully about the things that 8 &#8211; 12 year old boys like (at least, the geeky ones).  Video games.  Caffeine.  Scooters.  Toys.  Computers. Bean bag chairs.  Junk food.  This should help orient you, and brings you to the right frame of mind about t-shirts.</p>
<p>T-shirts are a part of that culture.  In part, t-shirts represent the ultimate middle finger to those unnamed sources of authority who wanted software engineers to dress like &#8220;Thomas Anderson&#8221; in the Matrix.  Software engineers want to be Neo, not John Anderson.</p>
<p>This leads us to the reasons why t-shirts matter:</p>
<p><strong>Empowerment</strong>.  In some ways, engineers delight in having found a profession where their intellect and passion for technology have enabled them to earn a great living and work at a company where &#8211; yes, you guessed it &#8211; they can wear t-shirts to work.  Giving out t-shirts tells your employees, implicitly, that you get it.  You hire only the best, and the best can wear whatever they want.  It says you know that you value merit over appearance; a working prototype over an MBA.</p>
<p><strong>Incentives</strong>.  Over the past decade, behavioral finance has taught us that people don&#8217;t value money rationally &#8211; it varies depending on form and context.  You can bring a $20 bottle of wine to your girlfriend&#8217;s parents&#8217; house and be thought a gentleman.  Handing her Mom a $20 at the door isn&#8217;t looked on the same way.   Let me just tell you, free t-shirts evoke some sort of primal response at a high tech company.  I&#8217;ve often said that I would see less interest at a high tech company handing out $100 bills than handing out free t-shirts.  High tech companies are filled with benefits that cost hundreds of thousands of dollars per year, benefit a minority of employees, and are generally under-appreciated financially.  You&#8217;d be shocked at what a $200 per person per year budget for t-shirts will do for employee morale comparatively.</p>
<p><strong>Tribal Cohesion.</strong> There are a lot of reasons why many institutions require employees to wear uniforms.  Common appearance can be a reminder that the person represents the company.  More importantly, common dress signals who is &#8220;part of the tribe&#8221; and belongs to the corporate family.  Uniforms are incompatible with the &#8220;empowerment&#8221; aspect of how people want to dress, but t-shirts can represent a form of &#8220;voluntary uniform&#8221; if produced in sufficient variety and quantity.   This effect can be had at a team level, when a t-shirt is made just to celebrate a new product, or at the company level.  It has a profound effect on new hires, as well, who desperately want &#8220;a shirt&#8221; so they can fit in.  It may sound subversive, but t-shirts can provide many of the same benefits of camaraderie and tribal cohesion that uniforms did, without the top-down oppression.</p>
<p><strong>Tenure</strong><strong> Based Seniority.</strong> High tech companies are largely meritocratic, and as they grow they tend to define roles based on skills &amp; experience rather than &#8220;time at the company&#8221;.  However, there are positive aspects to rewarding those who have &#8220;bled for the company&#8221; over the years, and put their hearts and souls into building the business.  T-Shirts, in an innocuous way, implicitly do this by almost always becoming &#8220;limited editions&#8221;.  Want the t-shirt from the 2007 company picnic?  You had to be there to get one.  How about the shirt from the first intern program?   The launch of a game-changing new product?  Even shirts that are given out to the whole company will become rare at a company that&#8217;s growing rapidly.  In a socially acceptable way, t-shirts subtlely communicate a form of tenure that is warm, and yet structured.</p>
<p><strong>Branding</strong>.  As discussed under &#8220;Tribal Cohesion&#8221;, people want to wear the brand of their tribe.  They will wear them out everywhere if you let them.  Let them.  While being careful not to interfere with the uniqueness of shirts given to employees, make shirts for your developers, your fans, your early adopters.  Long before they become vocal advocates for your brand, they will gladly showcase it if you let them.  This tends to work best in relatively inter-connected, dense, techy cultures like Silicon Valley, but you&#8217;d be surprised how far your reach might be.  Of course, this assumes that you make shirts that don&#8217;t suck, but we&#8217;ll cover that in the next blog post.</p>
<p><strong>So How Do I Make Great Shirts?</strong></p>
<p>It turns out that this is a lot harder than it appears.  <a href="http://www.linkedin.com/in/mariosundar" target="_blank">Mario</a> always tells me my blog posts are too long, so I&#8217;m going to save this topic for the next post&#8230;</p>
<br />Filed under: <a href='http://blog.adamnash.com/category/developer/'>Developer</a>, <a href='http://blog.adamnash.com/category/entrepreneurship/'>entrepreneurship</a>, <a href='http://blog.adamnash.com/category/linkedin/'>LinkedIn</a>, <a href='http://blog.adamnash.com/category/silicon-valley/'>Silicon Valley</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/1461/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1461&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2010/11/29/why-t-shirts-matter/feed/</wfw:commentRss>
		<slash:comments>69</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>

		<media:content url="http://psychohistory.files.wordpress.com/2010/11/linkedin_rhinestones.jpg" medium="image">
			<media:title type="html">LinkedIn_Rhinestones</media:title>
		</media:content>
	</item>
		<item>
		<title>iPhone 3.0 Event Next Week: March 17th</title>
		<link>http://blog.adamnash.com/2009/03/14/iphone-30-event-next-week-march-17th/</link>
		<comments>http://blog.adamnash.com/2009/03/14/iphone-30-event-next-week-march-17th/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 18:46:56 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Developer]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/?p=1118</guid>
		<description><![CDATA[Got the graphic from CNET.  They have some details about the event: Apple distributed invitations Thursday for a March 17 special event in Cupertino, Calif., to discuss the iPhone 3.0 software and a new software development kit. Next Tuesday&#8217;s event will come a little more than a year after Apple unveiled the original SDK at [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1118&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img class="size-full wp-image-1117 aligncenter" title="top" src="http://psychohistory.files.wordpress.com/2009/03/top.jpg" alt="top" width="374" height="275" /></p>
<p>Got the graphic from CNET.  They have <a href="http://news.cnet.com/8301-13579_3-10194846-37.html" target="_blank">some details about the event</a>:</p>
<p><!-- oid.editionId = 3--></p>
<div class="postByline"><span class="author"><a href="http://www.cnet.com/profile/Tom+Krazit/"></a> </span></div>
<blockquote><p>Apple distributed invitations Thursday for a March 17 special event in Cupertino, Calif., to discuss the iPhone 3.0 software and a new software development kit.</p>
<p>Next Tuesday&#8217;s event will come <a title="Apple developers mark a year of iPhone apps -- Thursday, Mar 5, 2009" href="http://news.cnet.com/8301-13579_3-10188732-37.html">a little more than a year</a> after Apple unveiled the original SDK at <a title="With new iPhone software, Apple breaks from the pack -- Thursday, Mar 6, 2008" href="http://news.cnet.com/8301-13579_3-9888230-37.html">the iPhone 2.0 software event</a>, setting the stage for over 25,000 iPhone applications to make their way onto the App Store. Speculation about a new iPhone had mostly centered on <a title="New iPhone firmware reveals code for next model -- Thursday, Jan 29, 2009" href="http://news.cnet.com/8301-13579_3-10152596-37.html">new hardware features</a>, rather than software upgrades, but it seems Apple has something up its sleeve.</p></blockquote>
<p>Hoping to see OS-level support for some missing basics:</p>
<ul>
<li>Clipboard (cut &amp; paste)</li>
<li>Background processing (some form of mult-tasking where apps can receive updates even when they aren&#8217;t front-most)</li>
</ul>
<p>I&#8217;m wondering if we&#8217;ll see any significant hardware enhancements or new models announced.  The iPhone currently drives developers to really focus on a single screen size&#8230; would be nice to see more robust handling for multiple sizes/shapes to give more flexibility to hardware in the future.  It&#8217;s not that you can&#8217;t make resolution-independent applications today &#8211; you can.   It&#8217;s just not encouraged or optimal.</p>
<p><a href="http://blog.adamnash.com/2009/03/11/forget-iphone-nano-i-want-a-megaphone/" target="_blank"><strong>MegaPhone</strong></a>?</p>
<br />Posted in Apple, Developer  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/1118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/1118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/1118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/1118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/1118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/1118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/1118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/1118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/1118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/1118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/1118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/1118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/1118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/1118/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1118&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2009/03/14/iphone-30-event-next-week-march-17th/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>

		<media:content url="http://psychohistory.files.wordpress.com/2009/03/top.jpg" medium="image">
			<media:title type="html">top</media:title>
		</media:content>
	</item>
		<item>
		<title>Source Code That Allegedly Broke the Microsoft Zune</title>
		<link>http://blog.adamnash.com/2009/01/01/source-code-that-allegedly-broke-the-microsoft-zune/</link>
		<comments>http://blog.adamnash.com/2009/01/01/source-code-that-allegedly-broke-the-microsoft-zune/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 20:20:49 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/?p=1030</guid>
		<description><![CDATA[Thanks to Lawrence, Ryan, JSTN. while (days &#62; 365) { if (IsLeapYear(year)) { if (days &#62; 366) { days -= 366; year += 1; } } else { days -= 365; year += 1; } } For non-programmers out there, this is what we like to call in technical terms &#8220;an infinite loop&#8221;. This code [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1030&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://lawrencedenes.com/post/67770168/the-code-that-allegedly-broke-the-zune" target="_blank">Lawrence</a>, <a href="http://tumblpress.com/post/67769909/the-code-that-allegedly-broke-the-zune" target="_blank">Ryan</a>, <a href="http://jstn.cc/post/67760495" target="_blank">JSTN</a>.</p>
<pre style="padding-left:30px;"><strong>while (days &gt; 365) {
    if (IsLeapYear(year)) {
        if (days &gt; 366) {
            days -= 366;
            year += 1;
        }
    } else {
        days -= 365;
        year += 1;
    }
}</strong></pre>
<p>For non-programmers out there, this is what we like to call in technical terms &#8220;an infinite loop&#8221;.   This code block will never finish running because on Day 366, the loop keeps checking to see if the day is greater than 365 (it is), and then checks to see if it&#8217;s a Leap Year (it is), and then checks to see if it is greater than 366 (it isn&#8217;t).  So it does nothing, and then starts all over.</p>
<p>Perfect way to lock up your Zune every four years on the last day of the leap year.</p>
<p>Not sure if this is the actual code snippet or not, but a fun exercise.  I could actually see this being on an introduction to programming test at some point.</p>
<p>My favorite quote about this fiasco (from the <a href="http://www.siliconvalley.com/ci_11345379?nclick_check=1" target="_blank">San Jose Mercury News</a>):</p>
<blockquote><p>&#8220;I&#8217;ve never heard of a consumer electronic device fail en masse like this,&#8221; said Matt Rosoff, an analyst with Directions on Microsoft, a Seattle-based research firm that focuses on the software giant.</p></blockquote>
<p>Does anyone doubt that &#8220;Microsoft Zune&#8221; has become the &#8220;<a href="http://www.automotoportal.com/article/Worst_cars_ever_made" target="_blank">Ford Pinto</a>&#8221; of consumer electronics?</p>
<br />Posted in Developer, Microsoft  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/1030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/1030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/1030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/1030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/1030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/1030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/1030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/1030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/1030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/1030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/1030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/1030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/1030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/1030/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=1030&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2009/01/01/source-code-that-allegedly-broke-the-microsoft-zune/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>
	</item>
		<item>
		<title>New Dutch Architecture Five (5) Euro Coin, Programmed in Python</title>
		<link>http://blog.adamnash.com/2008/11/17/new-dutch-architecture-five-5-euro-coin-programmed-in-python/</link>
		<comments>http://blog.adamnash.com/2008/11/17/new-dutch-architecture-five-5-euro-coin-programmed-in-python/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 07:15:56 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Coins]]></category>
		<category><![CDATA[Developer]]></category>

		<guid isPermaLink="false">http://psychohistory.wordpress.com/?p=973</guid>
		<description><![CDATA[Yes, I said Python. First, special hat tip to Mario Sundar for finding this lead.  Mario is not a coin collector, but he reads my blog often enough to know that I have a special interest in coins.  This one is a beauty, since it combines creative visualization with a unique engineering tale. Here is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=973&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yes, I said Python.</p>
<p>First, special hat tip to Mario Sundar for finding this lead.  Mario is not a coin collector, but he reads my blog often enough to know that I have a special interest in coins.  This one is a beauty, since it combines creative visualization with a unique engineering tale.</p>
<p>Here is the coin design:</p>
<p><a href="http://psychohistory.files.wordpress.com/2008/11/dutch_coin_design.jpg"><img class="alignnone size-full wp-image-974" title="dutch_coin_design" src="http://psychohistory.files.wordpress.com/2008/11/dutch_coin_design.jpg" alt="dutch_coin_design" width="400" height="200" /></a></p>
<p>Here is a brief description, from <a href="http://en.knm.nl/domains/knm/pages/article.asp?content=11720000000909_999_11650000000011&amp;navid=11650000000014_11720000000067&amp;cookie=init" target="_blank">the Dutch Mint website</a>, on the coin design:</p>
<blockquote><p>A new 5 euro commemorative coin pays tribute to the history of Dutch architecture. Both our historical architecture as well as our innovative conceptual architecture and modern design are popular across the globe.</p>
<p>The Architecture five-euro coin was designed by artist Stani Michiels (b. 1973). The design on the obverse of the coin pays tribute to the history of Dutch architecture, with the portrait of Queen Beatrix being distinctively constructed using the names of important architects from Dutch history. The artist used the internet as a popularity-meter to determine the names’ order of appearance.</p>
<p>The reverse of the Architecture five-euro coin draws attention to the striking fact that many Dutch architects have also included publishing books on architecture in their professional activities. To illustrate this phenomenon, recent books on architecture rise up from the sides of the coin like buildings. Through their careful placement they combine to outline the Netherlands, while birds’ silhouettes suggest the capitals of all the provinces.</p></blockquote>
<p><a href="http://pythonide.blogspot.com/2008/10/how-to-make-money-with-free-software.html" target="_blank">This blog post</a>, however, from the designer, is where the real beauty lies.  It&#8217;s too long to reproduce here, but it goes into significant depth about the design inspiration, concepts, and visualization at work.  If you have a background in design, you will appreciate it.</p>
<p>Here is the summary from the post, and I think you&#8217;ll see why this contest winner gets substantial geek cred, as he goes into detail about the technology used in the coin design:</p>
<blockquote><p>The whole design was done for 100% with free software. The biggest part consists of custom software in <a href="http://www.python.org/">Python</a>, of course within the <a href="http://pythonide.stani.be/">SPE editor</a>. For the visual power I used <a href="http://www.pythonware.com/products/pil/">PIL</a> and <a href="http://www.cairographics.org/pycairo/">pyCairo</a>. From time to time also <a href="http://www.gimp.org/">Gimp</a>, <a href="http://www.inkscape.org/">Inkscape</a> and <a href="http://photobatch.stani.be/">Phatch</a> helped quite a bit. All the developing and processing was done on GNU/Linux machines which were running <a href="http://www.ubuntu.com/">Ubuntu</a>/<a href="http://www.debian.org/">Debian</a>. In the end I had to collaborate closely on location together with the technicians of the Royal Dutch Mint (coin factory). So all the last bits were done on my <a href="http://eeepc.asus.com/">Asus Eee PC</a>. (I am still wondering why Asus doesn&#8217;t offer Ubuntu on its netbooks.) The Eee laptop took a bit longer (30 seconds instead of 3 seconds to generate a whole coin), but did the job just fine. For looking up the number of hits on the internet, I rediscovered <a href="http://www.yahoo.com/">Yahoo</a>, which provides a much better <a href="http://developer.yahoo.com/">api</a> for automatic querying than its competitors. Of course the jury judged only the design and not the software used as others used Maya, Illustrator, &#8230;</p>
<p><span style="font-weight:bold;">And the winner is&#8230;</span><br />
I am proud to announce that I <a href="http://en.knm.nl/domains/knm/pages/article.asp?content=11720000000909_999_11650000000011&amp;navid=11650000000014_11720000000067&amp;cookie=init">won</a> the competition! So soon 350.000 Dutch people will use the fruits of free software. I would have loved to release the coin under the GPL, which could maybe solve the financial crisis. However for obvious reasons I was not allowed to do that. There will be also <a href="http://en.knm.nl/sanashop_v2/default/pages/Bulk_V2.asp?content=11720000000083_2_10000000002134&amp;contentcode=Euromunten%20Nederland&amp;navid=11650000000054_11650000000024">special editions</a> for collectors which can be bought world wide: a massive silver edition for € 30,95 and a massive gold edition for € 194,95. They will be probably sold out quickly as these are real collectors items. The coin is released in all Dutch post offices to the public the same day as the Intrepid Ibex: 30th October 2008.</p></blockquote>
<p>You can purchase the coin <a href="http://en.knm.nl/sanashop_v2/knm/pages/detail.asp?content=11720000000821_2_11650000000012" target="_blank">here</a> at the Royal Dutch Mint.  They seem to still have the gold version available, but no sign of the silver version.  Maybe it sold out?  If you find it, please comment here with a link.</p>
<br />Posted in Coins, Developer  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/973/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/973/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/973/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/973/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/973/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/973/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/973/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/973/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/973/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/973/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/973/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/973/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/973/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/973/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=973&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2008/11/17/new-dutch-architecture-five-5-euro-coin-programmed-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>

		<media:content url="http://psychohistory.files.wordpress.com/2008/11/dutch_coin_design.jpg" medium="image">
			<media:title type="html">dutch_coin_design</media:title>
		</media:content>
	</item>
		<item>
		<title>Ding Dong, The Apple iPhone NDA is Dead</title>
		<link>http://blog.adamnash.com/2008/10/02/ding-dong-the-apple-iphone-nda-is-dead/</link>
		<comments>http://blog.adamnash.com/2008/10/02/ding-dong-the-apple-iphone-nda-is-dead/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 04:41:23 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[CS193P]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[NDA]]></category>

		<guid isPermaLink="false">http://psychohistory.wordpress.com/?p=873</guid>
		<description><![CDATA[They&#8217;ve been celebrating in the streets all day.  Apple iPhone NDA.  Gone. History. Finito.  Buh-Bye. Great news and timing for the CS 193P class at Stanford, as this means that forums are likely to emerge quickly for students to engage with, learn from, and help each other. Here is some text from the Apple Announcement: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=873&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>They&#8217;ve been celebrating in the streets all day.  Apple iPhone NDA.  Gone. History. Finito.  Buh-Bye.</p>
<p>Great news and timing for the <a href="http://www.stanford.edu/class/cs193p" target="_blank">CS 193P</a> class at Stanford, as this means that forums are likely to emerge quickly for students to engage with, learn from, and help each other.</p>
<p>Here is some text from <a href="http://developer.apple.com/iphone/program/" target="_blank">the Apple Announcement</a>:</p>
<blockquote><p>We have decided to drop the non-disclosure agreement (NDA) for released iPhone software.</p>
<p>We put the NDA in place because the iPhone OS includes many Apple inventions and innovations that we would like to protect, so that others don’t steal our work. <strong>It has happened before</strong>. While we have filed for hundreds of patents on iPhone technology, the NDA added yet another level of protection. We put it in place as one more way to help protect the iPhone from being ripped off by others.</p>
<p>However, the NDA has created too much of a burden on developers, authors and others interested in helping further the iPhone’s success, so we are dropping it for released software. Developers will receive a new agreement without an NDA covering released software within a week or so. Please note that unreleased software and features will remain under NDA until they are released.</p></blockquote>
<p>It&#8217;s interesting to note the phrase I bolded above&#8230; given Apple&#8217;s history with the Mac &amp; Quicktime, it always seemed possible that the iPhone NDA was a reaction to those bitter lessons.</p>
<p>The San Jose Mercury has <a href="http://blogs.siliconvalley.com/gmsv/2008/10/apple-relents-after-iphone-developer-gag-falls-flat.html" target="_blank">a funny write up here</a>.  Ars Technica has a <a href="http://arstechnica.com/news.ars/post/20081001-apple-finally-drops-nda-iphone-developers-rejoice.html" target="_blank">more verbose post</a> up as well.</p>
<p>I think we&#8217;ll see a measurable increase in the number of applications and the relative quality and pace of innovation from this change.  It was shocking how much this simple legal protection was stifling the growth and development of developers new to the platform.</p>
<br />Posted in Apple, Developer Tagged: CS193P, iPhone, NDA <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/873/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/873/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=873&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2008/10/02/ding-dong-the-apple-iphone-nda-is-dead/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>
	</item>
		<item>
		<title>Stanford CS193P: iPhone Application Programming Launches Tomorrow</title>
		<link>http://blog.adamnash.com/2008/09/23/stanford-cs193p-iphone-application-programming-launches-tomorrow/</link>
		<comments>http://blog.adamnash.com/2008/09/23/stanford-cs193p-iphone-application-programming-launches-tomorrow/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 06:17:28 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[CS193P]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Stanford]]></category>

		<guid isPermaLink="false">http://psychohistory.wordpress.com/?p=856</guid>
		<description><![CDATA[A little too busy tonight for a long blog post, but thought I&#8217;d share how excited I am to be helping assist the launch of a new course at Stanford this Fall: CS 193P: iPhone Application Programming The class website is still a work in progress, but it will come along.  The course is open [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=856&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A little too busy tonight for a long blog post, but thought I&#8217;d share how excited I am to be helping assist the launch of a new course at Stanford this Fall:</p>
<p><a href="http://www.stanford.edu/class/cs193p/cgi-bin/index.php" target="_blank"><strong>CS 193P: iPhone Application Programming</strong></a></p>
<p>The class website is still a work in progress, but it will come along.  The course is open to Stanford undergrad and graduate students, as well as through the Stanford Center for Professional Development (SCPD) on video.  Enrollment is limited, and my guess is that it will be oversubscribed.</p>
<p>A wonderful opportunity for me to dust off the old Objective-C skills, and help give back to the Stanford community.  Launching new courses is always exciting, and I feel very lucky to be involved with this one in particular.</p>
<p>It might sound crazy to take this on in addition to the full load at both work and at home, but I&#8217;m excited to get back involved with teaching, and that&#8217;s worth the potential sleep deprivation for the quarter.</p>
<br />Posted in Apple, Developer, Software Tagged: CS193P, iPhone, Programming, Stanford <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/856/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/856/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/856/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/856/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/856/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/856/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/856/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/856/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/856/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/856/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/856/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/856/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/856/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/856/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=856&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2008/09/23/stanford-cs193p-iphone-application-programming-launches-tomorrow/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>
	</item>
		<item>
		<title>SimCity Is Now Open Source as Micropolis</title>
		<link>http://blog.adamnash.com/2008/01/17/simcity-is-now-open-source-as-micropolis/</link>
		<comments>http://blog.adamnash.com/2008/01/17/simcity-is-now-open-source-as-micropolis/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 07:09:15 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/2008/01/17/simcity-is-now-open-source-as-micropolis/</guid>
		<description><![CDATA[Very cool to see that the original SimCity code has been updated and released under the name Micropolis. There is coverage on Boing Boing:  SimCity has just been released as free software under the GPL version 3 license (though the name has been changed to Micropolis for trademark reasons; it was the original working title). [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=602&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Very cool to see that the original SimCity code has been updated and released under the name Micropolis.</p>
<p>There is coverage on <a href="http://www.boingboing.net/2008/01/12/simcity-goes-free-so.html" target="_blank">Boing Boing</a>:</p>
<blockquote><p> SimCity has just been released as free software under the GPL version 3 license (though the name has been changed to Micropolis for trademark reasons; it was the original working title). This was precipitated by the inclusion of SimCity on the One Laptop Per Child XO machines, but no reason the kids should have all the fun. Can&#8217;t wait to see the SimCity hacks that emerge now:</p>
<p><img src="http://craphound.com/images/simcitygpl.jpg" /><br />
The &#8220;MicropolisCore&#8221; project includes the latest Micropolis (SimCity) source code, cleaned up and recast into C++ classes, integrated into Python, using the wonderful SWIG interface generator tool. It also includes a Cairo based TileEngine, and a cellular automata machine CellEngine, which are independent but can be plugged together, so the tile engine can display cellular automata cells as well as SimCity tiles, or any other application&#8217;s tiles.</p></blockquote>
<p>There is more detailed coverage about the open source release <a href="http://weblogs.asp.net/bsimser/archive/2008/01/10/simcity-source-code-released-to-the-wild-let-the-ports-begin.aspx" target="_blank">on this blog</a>.</p>
<p>Back in college, I spent a good chunk of my junior year coding up a fast sprite library for the Mac called &#8220;Pixie&#8221; which had hand-tuned blitters, layering, and other goodies that seem shockingly dated now in a world of graphics cards, modern rendering pipelines, and modern gaming engines.  Back then, getting 30 frame-per-second animation for about fifty 32&#215;32 animated sprites was considered real bragging rights for a 68K-based Mac.  I can&#8217;t tell you how excited back then I would have been to download and play with this.</p>
<p>Check it out, if you are so inclined.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/psychohistory.wordpress.com/602/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/psychohistory.wordpress.com/602/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/602/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/602/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/602/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/602/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/602/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/602/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/602/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/602/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/602/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/602/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/602/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/602/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/602/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/602/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=602&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2008/01/17/simcity-is-now-open-source-as-micropolis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>

		<media:content url="http://craphound.com/images/simcitygpl.jpg" medium="image" />
	</item>
		<item>
		<title>My Mail.app Plugin, v0.1</title>
		<link>http://blog.adamnash.com/2008/01/08/my-mailapp-plugin-v01/</link>
		<comments>http://blog.adamnash.com/2008/01/08/my-mailapp-plugin-v01/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 08:19:13 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/2008/01/08/my-mailapp-plugin-v01/</guid>
		<description><![CDATA[Major milestone tonight. Spent two hours after the boys went to bed.  Managed to get swizzling working.  I have now completed a Mail plug-in that when installed&#8230; &#8230; drumroll, please &#8230; logs out to console the name &#38; email address of the sender of every email you view in Mail.app. &#8230; let it sink in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=592&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Major milestone tonight.</p>
<p>Spent two hours after the boys went to bed.  Managed to get swizzling working.  I have now completed a Mail plug-in that when installed&#8230;</p>
<p>&#8230; drumroll, please &#8230;</p>
<p>logs out to console the name &amp; email address of the sender of every email you view in Mail.app.</p>
<p>&#8230; let it sink in &#8230;</p>
<p>OK, it may not sound significant, but that was 1 of the 7 things I have to get working to have a demo of my new Mail plug-in up and running.  I now have a renewed burst of confidence that this plug-in will indeed get done.<br />
Many thanks to Adam Tow, who responded to my previous blog post, sharing not only tips &amp; sample code, but also a pointer to a <a href="http://theocacao.com/document.page/507" target="_blank">regular, weekly coffee night</a> for Cocoa developers in Campbell.  I had forgotten how supportive the Mac development community was&#8230; this event looks pretty neat.  Maybe when I get to the really tough stuff, I&#8217;ll go.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/psychohistory.wordpress.com/592/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/psychohistory.wordpress.com/592/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/592/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=592&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2008/01/08/my-mailapp-plugin-v01/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>
	</item>
		<item>
		<title>Mac OS X: Method Swizzling in Cocoa</title>
		<link>http://blog.adamnash.com/2008/01/07/mac-os-x-method-swizzling-in-cocoa/</link>
		<comments>http://blog.adamnash.com/2008/01/07/mac-os-x-method-swizzling-in-cocoa/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 02:24:17 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://blog.adamnash.com/2008/01/07/method-swizzling-in-cocoa/</guid>
		<description><![CDATA[It took me about 45 minutes, but I finally think I have this figured out: Method Swizzling in Cocoa Basically, it&#8217;s the missing piece you need to effectively &#8220;hijack&#8221; an existing function in an existing piece of Mac OS X software. To do this, you follow a few key steps: You identify a method of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=590&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It took me about 45 minutes, but I finally think I have this figured out:</p>
<p><a href="http://www.cocoadev.com/index.pl?MethodSwizzling" target="_blank">Method Swizzling in Cocoa</a></p>
<p>Basically, it&#8217;s the missing piece you need to effectively &#8220;hijack&#8221; an existing function in an existing piece of Mac OS X software.</p>
<p>To do this, you follow a few key steps:</p>
<ol>
<li>You identify a method of an existing class in an existing piece of software that you want to hijack, let&#8217;s call it &#8220;foo&#8221;</li>
<li>You then write your own implementation of that method in that class, let&#8217;s call it &#8220;myFoo&#8221;</li>
<li>You do what ever you want in myFoo, but then you include a call to myFoo.  It looks like infinite recursion, but it&#8217;s not.</li>
<li>You do the MethodSwizzle trick, which basically tells the Objective-C runtime to replace all calls to &#8220;foo&#8221; with &#8220;myFoo&#8221;, and vice-versa.</li>
</ol>
<p>End result, every existing call to &#8220;foo&#8221; now calls &#8220;myFoo&#8221;, and &#8220;myFoo&#8221; is no longer infinitely recursive because it&#8217;s call to &#8220;myFoo&#8221; now calls &#8220;foo&#8221;.</p>
<p>It turns out this type of trickery is essential if you want to write a plug-in for an existing application, like Apple Mail, where there is no pre-defined API, and you want to take over pre-existing actions and add some functionality to them.</p>
<p>My <a href="http://blog.adamnash.com/2007/09/17/getting-ready-to-write-an-apple-mailapp-plug-in-for-mac-os-x/" target="_blank">work on an Apple Mail plug-in</a> is painfully slow, but I&#8217;m at least a little further along now.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/psychohistory.wordpress.com/590/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/psychohistory.wordpress.com/590/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/590/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/590/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/590/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/590/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/590/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/590/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/590/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/590/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/590/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/590/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/590/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/590/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/590/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/590/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=590&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2008/01/07/mac-os-x-method-swizzling-in-cocoa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting Ready to Write an Apple Mail.app Plug-in for Mac OS X</title>
		<link>http://blog.adamnash.com/2007/09/17/getting-ready-to-write-an-apple-mailapp-plug-in-for-mac-os-x/</link>
		<comments>http://blog.adamnash.com/2007/09/17/getting-ready-to-write-an-apple-mailapp-plug-in-for-mac-os-x/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 06:18:49 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://psychohistory.wordpress.com/2007/09/17/getting-ready-to-write-an-apple-mailapp-plug-in-for-mac-os-x/</guid>
		<description><![CDATA[Blowing some dust off the old compiler this weekend&#8230; after about 8 years, I&#8217;m actually getting ready to write some real client-side software again.  Just a personal project, for fun. Nothing fancy, but I&#8217;ve decided to see if I can&#8217;t write some useful plug-ins for Mac OS X.  In particular, I&#8217;m going to see if [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=511&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Blowing some dust off the old compiler this weekend&#8230; after about 8 years, I&#8217;m actually getting ready to write some real client-side software again.  Just a personal project, for fun.</p>
<p>Nothing fancy, but I&#8217;ve decided to see if I can&#8217;t write some useful plug-ins for Mac OS X.  In particular, I&#8217;m going to see if I can&#8217;t improve:</p>
<ul>
<li>Apple Address Book</li>
<li>Apple Mail</li>
</ul>
<p>I tend to joke with friends that when I went to business school, part of the admissions process was officially &#8220;turning in&#8221; my compiler.  To show you how dated I am, the last serious Mac OS development I did was in Metrowerks Codewarrior.</p>
<p>Over my vacation in August, I went through Cocoa in a Nutshell from the O&#8217;Reilly series, just to refresh my memory.  Even when I was on the WebObjects team at Apple, I primarily wrote framework code in Java, not Objective-C, so basically I&#8217;ve got to come up to speed again on:</p>
<ul>
<li>Objective-C</li>
<li>XCode 2.4</li>
<li>Five versions of Mac OS X (the version I worked on became 10.0)</li>
<li>Documented methods of extending Apple Address Book</li>
<li><em>Undocumented</em> methods of extending Apple Mail</li>
</ul>
<p>I managed this weekend to get a sample plug-in for Apple Address Book working.  This wasn&#8217;t a huge feat, really, since XCode includes a sample project for this as a default install, and it&#8217;s fairly trivial to customize the three Objective-C messages that define the functionality.</p>
<p>If you are looking for the documentation on extending Apple&#8217;s Mac OS X Address Book, check out:</p>
<ul>
<li>Apple&#8217;s <a href="http://developer.apple.com/documentation/UserExperience/Conceptual/AddressBook/index.html#//apple_ref/doc/uid/10000117i" target="_blank">Address Book Programming Guide</a></li>
<li>Apple&#8217;s <a href="http://developer.apple.com/documentation/UserExperience/Reference/AddressBook/ObjC_classic/index.html#//apple_ref/doc/uid/20001692" target="_blank">Address Book Object-C Framework Reference</a></li>
</ul>
<p>Pretty basic really, although adding a contextual menu command for certain fields is hardly the best interface.  I&#8217;ve been playing with <a href="http://www.plaxo.com/downloads/mac" target="_blank">Plaxo Toolbar for Mac</a>, and trying to figure out how they inserted their drawer into the GUI.</p>
<p>Creating plug-ins for Apple Mail is much trickier, because it&#8217;s completely not supported or documented.  Well, I shouldn&#8217;t say not supported&#8230; it&#8217;s not supported officially.  However, Apple Mail does implement a plug-in architecture, and with a few quick setting changes, you can install a wide range of third party plug-ins.</p>
<p>Here are some cool links if you are interested:</p>
<ul>
<li><a href="http://www.bazza.com/~eaganj/weblog/2006/03/29/demystifying-mail-app-plugins" target="_blank">Demystifying Mail App Plugins</a>.  This blog post covers some high level tips and source code, in Python, to write a quick Mail.app plugin.  Thanks to this post, I re-discovered <a href="http://www.codethecode.com/Projects/class-dump/release-notes.html" target="_blank">class-dump</a>, which lets you inspect the classes and methods for any Mac OS X application (very cool).</li>
<li><a href="http://harnly.net/2006/software/mail-plugin-template/mail-plugin-template-10/#more-52" target="_blank">Mail Plugin Template 1.0.</a> Aaron Harnly, you are my hero.  Aaron has posted an excellent XCode project template, with class-dump headers, for building your own Apple Mail plug-ins and installer scripts.  He even answered a simple project question for me over email.  Very cool.</li>
<li><a href="http://www.cocoadev.com/index.pl?MethodSwizzling" target="_blank">CocoaDev</a>.  This is a wiki site dedicated to Cocoa development.  Aaron&#8217;s code pointed me here, since it features &#8220;Method Swizzling&#8221;.  It&#8217;s a very sneaky feature of the Objective-C runtime, where you can effectively not only over-ride an method for an object you don&#8217;t own, but you can even replace the parent class method in applications that you don&#8217;t control!  Read this for specifics (very cool if you&#8217;re into programming).</li>
<li><a href="http://www.tikouka.net/mailapp/" target="_blank">Apple Mail Plug-Ins and Tools</a>.  A whole directory site of Apple Mail plug-ins.</li>
<li><a href="http://www.tuaw.com/2007/05/27/apple-mail-plug-in-roundup/" target="_blank">Apple Mail Plug-In Roundup</a>.  This post on The Unofficial Apple Weblog covered a lot of cool Mail.app plugins.</li>
<li><a href="http://www.indev.ca/MailActOn.html" target="_blank">Mail Act-On</a>.  Very cool Mail.app plug-in that lets you map individual rules to keyboard commands.  My favorite Eudora feature, now on Mail.app</li>
</ul>
<p>So far, I have an Apple Mail plug-in that compiles and loads correctly in Mail.app and logs data into the console.  But I&#8217;m going to put that in the &#8220;W&#8221; column for this weekend, given my incredible level of rust around the gears.</p>
<p>I&#8217;m going to be flying to Omaha this week to visit the LinkedIn customer service team&#8230; I&#8217;m going to try and use the flight time to get a little bit more working.</p>
<p>My biggest question now is how far can I go in terms of influencing the Mail.app UI.  I already know how to:</p>
<ul>
<li>Create a plug-in</li>
<li>Insert menu commands and menus into the main application</li>
<li>Create my own preferences panel &amp; preferences file</li>
<li>Create my own window</li>
</ul>
<p>However, if I really want to integrate,  I need to figure out how to:</p>
<ul>
<li>Add commands to existing contextual menus (I can&#8217;t find them in the NIB files anywhere)</li>
<li>Add views/panes to the existing windows (ala a toolbar)</li>
</ul>
<p>I haven&#8217;t found sample code that does either of the above yet, but I&#8217;m still looking.</p>
<p>All in all, it&#8217;s fun to be compiling again.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/psychohistory.wordpress.com/511/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/psychohistory.wordpress.com/511/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/511/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=511&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2007/09/17/getting-ready-to-write-an-apple-mailapp-plug-in-for-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>
	</item>
		<item>
		<title>Code Monkey Video on YouTube</title>
		<link>http://blog.adamnash.com/2006/10/16/code-monkey-video-on-youtube/</link>
		<comments>http://blog.adamnash.com/2006/10/16/code-monkey-video-on-youtube/#comments</comments>
		<pubDate>Mon, 16 Oct 2006 01:06:16 +0000</pubDate>
		<dc:creator>Adam Nash</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Silicon Valley]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://psychohistory.wordpress.com/2006/10/16/code-monkey-video-on-youtube/</guid>
		<description><![CDATA[Found this today on Chad Alderson&#8216;s blog. It&#8217;s not worth $1.65 Billion, but it&#8217;s definitely worth something. Jonathan Coulton releases his songs under the Creative Commons license, allowing third parties (like Michael Booth) the ability to create things like these videos with them. These videos themselves are spliced together from World of Warcraft. Lyrics are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=44&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Found this today on <a href="http://www.chadalderson.com">Chad Alderson</a>&#8216;s blog.  It&#8217;s not worth $1.65 Billion, but it&#8217;s definitely worth something.</p>
<p><span style="text-align:center; display: block;"><a href="http://blog.adamnash.com/2006/10/16/code-monkey-video-on-youtube/"><img src="http://img.youtube.com/vi/v4Wy7gRGgeA/2.jpg" alt="" /></a></span><a href="http://www.youtube.com/watch?v=v4Wy7gRGgeA"><br />
</a></p>
<p>Jonathan Coulton releases his songs under the Creative Commons license, allowing third parties (like Michael Booth) the ability to create things like these videos with them.  These videos themselves are spliced together from World of Warcraft.</p>
<p>Lyrics are available <a href="http://www.jonathancoulton.com/lyrics/code-monkey">here</a>.</p>
<p>Some key lines:</p>
<blockquote><p>Code Monkey think maybe manager want to write god damned login page himself<br />
Code Monkey not say it out loud<br />
Code Monkey not crazy, just proud</p>
<p>Code Monkey like Fritos<br />
Code Monkey like Tab and Mountain Dew<br />
Code Monkey very simple man<br />
With big warm fuzzy secret heart:<br />
Code Monkey like you</p></blockquote>
<p>Very funny, and very cool.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/psychohistory.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/psychohistory.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/psychohistory.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/psychohistory.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/psychohistory.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/psychohistory.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/psychohistory.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/psychohistory.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/psychohistory.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/psychohistory.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/psychohistory.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/psychohistory.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/psychohistory.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/psychohistory.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/psychohistory.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/psychohistory.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.adamnash.com&amp;blog=323242&amp;post=44&amp;subd=psychohistory&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.adamnash.com/2006/10/16/code-monkey-video-on-youtube/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/de0195b1a8418e4da096b82bfc226220?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adamnash</media:title>
		</media:content>
	</item>
	</channel>
</rss>
