<?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>MPD &#187; my software</title>
	<atom:link href="http://blog.mpdaugherty.com/category/my-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mpdaugherty.com</link>
	<description>Mike&#039;s in China, doing tech stuff</description>
	<lastBuildDate>Sun, 05 Feb 2012 04:18:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.mpdaugherty.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>MPD &#187; my software</title>
		<link>http://blog.mpdaugherty.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.mpdaugherty.com/osd.xml" title="MPD" />
	<atom:link rel='hub' href='http://blog.mpdaugherty.com/?pushpress=hub'/>
		<item>
		<title>What I learned from being on LifeHacker 9 days after starting work on ShirtFitFinder.com</title>
		<link>http://blog.mpdaugherty.com/2010/12/09/what-i-learned-from-being-on-lifehacker-9-days-after-starting-work-on-shirtfitfinder-com/</link>
		<comments>http://blog.mpdaugherty.com/2010/12/09/what-i-learned-from-being-on-lifehacker-9-days-after-starting-work-on-shirtfitfinder-com/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 09:20:29 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Bespoke Row]]></category>
		<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.mpdaugherty.com/?p=459</guid>
		<description><![CDATA[The biggest thing that happened last month was that my site-in-a-week experiment, Shirt Fit Finder, ended up on LifeHacker two days after it launched.  This was a far better reaction than I had ever hoped for, and much bigger than I knew how to handle.  In fact, the site went down for at least 6 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=459&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The biggest thing that happened last month was that my <a title="Building a site in a week" href="http://blog.mpdaugherty.com/2010/11/01/building-a-site-in-a-week/">site-in-a-week experiment</a>, <a title="Shirt Fit Finder - search for a better fitting dress shirt" href="http://www.shirtfitfinder.com">Shirt Fit Finder</a>, ended up on <a title="LifeHacker - Shirt Fit Finder" href="http://lifehacker.com/5680502/fit-finder-matches-men-to-their-perfect-shirt">LifeHacker</a> two days after it launched.  This was a far better reaction than I had ever hoped for, and much bigger than I knew how to handle.  In fact, the site went down for at least 6 hours while it was featured.  I was asleep in China, and my friend who submitted it couldn&#8217;t get a hold of me because I had my phone set up to ignore calls from the US in the middle of the night, precisely so that people don&#8217;t wake me up accidentally.  Unfortunately, this time was on purpose&#8230;</p>
<p>Regardless of the reason, I learned a lot from the experience of finally getting a lot of attention focused on something I had worked on.  Here&#8217;s the good and the bad of how I handled it, and also some financial results:</p>
<h2>Results</h2>
<ul>
<li>Upgrade of server to bigger plan on Linode: -$16</li>
<li>Money from affiliate links on SFF: $0 (Really!  Experimenting to see if affiliate links would be a better way to make money was actually the original purpose of the site.)</li>
<li>New customers for Bespoke Row: 5 (which was actually more orders, because some of them ordered a second time after getting their shirts)</li>
</ul>
<h2>Good</h2>
<ul>
<li><strong>Quickly responded to comments online</strong> &#8211; e.g. on <a title="Reddit's Shirt Fit Finder thread" href="http://www.reddit.com/r/malefashionadvice/comments/e0qzv/shirt_fit_finder_helps_you_find_the_perfectly/">Reddit where people thought I should make the connection to Bespoke Row more clear</a>, so I changed the site in a few hours.</li>
<li><strong>Created a new channel to my main business</strong> &#8211; The visitors to Bespoke Row who came from SFF generally converted at a better rate than other visitors, which I think is because SF basically acts as a demonstration of why they need a custom shirt before they come over.  There are also now a lot more links to SFF than to Bespoke Row on the web, too, so I hope it will continue to work this way for a long time.</li>
<li>L<strong>earned that affiliate links are also a hard way to make a living</strong> &#8211; The fact that I had thousands of people on my site and not a single affiliate sale pretty much answered my question about how many visitors would be needed to make money from affiliate links to clothing sites.</li>
</ul>
<h2>Bad</h2>
<ul>
<li><strong>No Analytics</strong> &#8211; I built the site so quickly that I didn&#8217;t even add in any analytics packages.  This is so easy to do, and I missed it.  Now I don&#8217;t even know how much traffic I actually got.</li>
<li><strong>No way for people to sign up for future news and updates</strong> &#8211; I have a feeling I lost a lot of potential sales here.  A lot of people visited the site, but I have no way to identify them or to follow up because I didn&#8217;t have a newsletter signup or a link to a Twitter account that people could follow, etc.  Even though part of the appeal of SFF was that you don&#8217;t need to sign up, you can just use it, some percentage of people would probably have wanted to leave feedback or hear about changes.  I will definitely remember this for any future projects.  I added a Twitter account pretty quickly, but all it could do was message people who had shared SFF or the LifeHacker link.  That&#8217;s a bit different than having a group of followers that would see any future tweets.</li>
<li><strong>No way for people to share</strong> &#8211; Traffic died off pretty quickly after about a week.  It was old news on LifeHacker, and people didn&#8217;t think to come back.  In combination with not having any way to remind them (see above), I also didn&#8217;t have any way for the current traffic to lead to more traffic.  In retrospect, SFF results would be great to share with family or friends right before people go shopping for Christmas gifts.  Even beyond that, just giving people the opportunity to tell their friends on Twitter and Facebook might have led to traffic that built over time instead of falling off.</li>
<li><strong>No way to grow the database</strong> &#8211; There are a lot of ways to get no results on Shirt Fit Finder &#8211; for example, if you&#8217;re taller than the tallest shirt we knew about, we don&#8217;t have anything to show you.  This happened to many people.  There were also a lot of people who didn&#8217;t own any of the shirts listed, so they couldn&#8217;t even search for something better.  A week later, I added <a title="Search with a new size on ShirtFitFinder" href="http://www.shirtfitfinder.com/search/start/newsize">a way for people to search with their own shirts and add different brands to the database</a>, but it was a little too late.</li>
<li><strong>No way to know about the site going down during the day</strong> &#8211; I didn&#8217;t leave any way for people to wake me up during the night, and the notices from my host were all sent to my personal email so my partner in Boston didn&#8217;t even realize what was happening.  I fixed this by changing my linode account to be associated with a shared Bespoke Row email address instead.</li>
</ul>
<p>Overall, though, Shirt Fit Finder was a huge success.  I will definitely be doing more side projects in the future to see what other ideas can gain traction.  They may or may not be related to Bespoke Row, but because I&#8217;m thinking quite a lot about the problems of choice and knowledge when making fashion decisions these days, they probably will be.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/459/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/459/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=459&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2010/12/09/what-i-learned-from-being-on-lifehacker-9-days-after-starting-work-on-shirtfitfinder-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a site in a week</title>
		<link>http://blog.mpdaugherty.com/2010/11/01/building-a-site-in-a-week/</link>
		<comments>http://blog.mpdaugherty.com/2010/11/01/building-a-site-in-a-week/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 08:42:44 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.mpdaugherty.com/?p=431</guid>
		<description><![CDATA[I just put up the &#8216;final&#8217; version of a new site that I built last week.  I had an idea that people might be interested in better fitting shirts, but too worried to order from a custom shirt site.  I&#8217;ve also wanted to try out Ruby on Rails for a while, so this was a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=431&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just put up the &#8216;final&#8217; version of a new site that I built last week.  I had an idea that people might be interested in better fitting shirts, but too worried to order from a custom shirt site.  I&#8217;ve also wanted to try out Ruby on Rails for a while, so this was a good opportunity.</p>
<p>With those two requirements, I built <a href="http://www.shirtfitfinder.com">ShirtFitFinder.com</a>, which lets you search for brand name <a href="http://www.shirtfitfinder.com">dress shirts that will fit you well</a> based on what you don&#8217;t like about shirts that you already own.  We&#8217;ll see if people use it, and if so, I&#8217;ll give it some more attention.  At the very least, it was great practice for <a href="http://www.iweekendbeijing.org/">iWeekend</a> this month.</p>
<p>For now, though, I&#8217;m done with the project; I only had a week, so now I&#8217;m back to my regularly scheduled Bespoke Row stuff &#8211; we&#8217;re launching custom pants soon!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/431/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=431&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2010/11/01/building-a-site-in-a-week/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>Automatic networking</title>
		<link>http://blog.mpdaugherty.com/2010/09/06/automatic-networking/</link>
		<comments>http://blog.mpdaugherty.com/2010/09/06/automatic-networking/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 09:39:09 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[my software]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://blog.mpdaugherty.com/?p=362</guid>
		<description><![CDATA[Networking and keeping track of my contacts has always been hard for me.  Other than the occasional guilty feeling at forgetting someone&#8217;s birthday or sending late Christmas cards, it was never a big deal before February.  However, after I moved to China, I realized that I had no friends here, no one to go talk [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=362&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Networking and keeping track of my contacts has always been hard for me.  Other than the occasional guilty feeling at forgetting someone&#8217;s birthday or sending late Christmas cards, it was never a big deal before February.  However, after I moved to China, I realized that I had no friends here, no one to go talk to about tech, and because I was working at home every day, I wasn&#8217;t meeting anyone.  On top of that, when I did meet new people, I was very bad at following up with them &#8211; maybe because I felt it would be awkward to offer to hang out with someone I didn&#8217;t really know yet.</p>
<p>For a while, I became fairly depressed, but eventually I realized that I was going to have to get over these feelings and go find some friends of my own or else I was going to go crazy.  I knew there must be a way, because every day I could see how easily my girlfriend was able to make new friends and very quickly start a meaningful relationship with them.</p>
<p>One of the big skills my girlfriend has that I lack is that she always knows who to call on any given day.  She instinctively knows how long to wait between contacts for friends vs. business contacts, and she can remember for whom it&#8217;s been too long.  I don&#8217;t know if my brain is just different from hers, but I find that requires a lot of effort.  If I haven&#8217;t seen someone for a long time, I&#8217;m probably less likely to think of hanging out with them, not more likely&#8230;</p>
<p>Luckily, I&#8217;m an analytical programmer, so I can use a computer to do this thinking for me.  I made myself a spreadsheet that keeps track of my contacts and calculates when the next that I should reach out to each of them is.  Every person can have their own period of time that I should wait, so if someone&#8217;s a good friend, I can remember them every three weeks, but if someone just needs an update every once in a while, I can send them an email every three months and be ok.  I now check this every week to see who I should get in touch with.  For example, this week, I need to email my friend Jason and see how he&#8217;s doing in Boston.</p>
<p>After using this for a while, I feel much more confident about getting more people in my network and not worrying that I&#8217;ll lose track of them.  I can safely say that I&#8217;ve made more new friends in the last month than in the first five months I was in Beijing.</p>
<p>I actually think this would be a fun web app to build.  Would anyone else be interested in getting an email every Monday that reminds you who you should be in touch with this week?  If there&#8217;s a positive response, I&#8217;ll take a few days and build an MVP for this and send everyone an invite.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/362/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=362&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2010/09/06/automatic-networking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>OutdoorsBeijing</title>
		<link>http://blog.mpdaugherty.com/2010/06/05/outdoorsbeijing/</link>
		<comments>http://blog.mpdaugherty.com/2010/06/05/outdoorsbeijing/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 03:10:56 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Beijing]]></category>
		<category><![CDATA[my software]]></category>
		<category><![CDATA[appspot]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[outdoorsbeijing]]></category>
		<category><![CDATA[pollution]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.mpdaugherty.com/?p=282</guid>
		<description><![CDATA[One of the first software projects I built in China was an Appspot.com application to visualize the air pollution in Beijing hour-to-hour.  You can see it at outdoorsbeijing.appspot.com.  I did this for a combination of reasons: Part of being programmer is constantly learning, and I wanted to evaluate python and the Google App Engine as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=282&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the first software projects I built in China was an Appspot.com application to visualize the air pollution in Beijing hour-to-hour.  You can see it at <a href="http://outdoorsbeijing.appspot.com">outdoorsbeijing.appspot.com</a>.  I did this for a combination of reasons:<span id="more-282"></span></p>
<ol>
<li>Part of being programmer is constantly learning, and I wanted to evaluate python and the Google App Engine as a possible replacement for the PHP work I had already done.</li>
<li>I wanted to make my test app something real, though, so I needed a simple idea.</li>
<li>Beijing is a much dustier place than anywhere in the US &#8211; it can even be hazardous to breathe the air sometimes, and I was a bit worried about it when I first moved.</li>
<li>There was already a service on Twitter (@BeijingAir) that updates every hour with particulate matter and ozone statistics.</li>
<li>However, Twitter is blocked in China, so I can&#8217;t check it on my iPhone, plus Twitter is text-only, so there are no graphs.</li>
</ol>
<p>By having Google&#8217;s servers request and cache the pollution data for me in the US, I figured I could create a database of historical pollution data, visualize it how I wanted, and access it on my iPhone because the data would now be served by a non-Twitter server.</p>
<p>So, I downloaded the Google development server, read up on Python, read about the Twitter API and put this together in a day or two.  Google&#8217;s toolchain made it quite easy to deploy the application.</p>
<p>It&#8217;s really pretty simple &#8211; in App Engine apps, you can create a process that will execute every X number of minutes/hours/days.  That meant I needed two pages for my app.  The first one would be a page that kicks off a process to access the latest updates from @BeijingAir, parse them, and store the data in Google&#8217;s DB.  The second is the home page, which accesses the data for the last 24 hours and displays it in a table, which then gets turned into a graph via javascript.  Every half hour, my script gets the latest twitter updates (throwing them away if they&#8217;re already in the DB) and that&#8217;s it.</p>
<p>If I ever get time to play around with it again, I&#8217;d like to make some cosmetic changes.  One would be to move the &#8216;About this page&#8217; into the same fixed-width div as the pollution graphs.  That way, when I open it on my iPhone, the screen would automatically resize to fit the graphs perfectly.  Currently, I have to double click on them to get that behavior.</p>
<p>Secondly, I&#8217;d improve the graph display.  We really only need one graph, since the concentration and AQI for each pollutant are directly related.  Also, to make it more clear what range the graph is in, we should change its color (and the color of the description text) to match the colors defined on <a href="http://www.airnow.gov/index.cfm?action=aqibasics.aqi">www.airnow.gov</a>.  That would make it clear when one graph is going down and the other is going up that the one going down can still be a lot worse because it&#8217;s been bad for the entire day.</p>
<p>If you want, you can look at the code on <a href="http://github.com/mpdaugherty/Outdoors-Beijing">github.com</a>.  Feel free to send me any questions or code patches if you want to change anything.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/282/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=282&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2010/06/05/outdoorsbeijing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>How to include git hooks in a repository AND still personalize your machine</title>
		<link>http://blog.mpdaugherty.com/2010/04/06/how-to-include-git-hooks-in-a-repository-and-still-personalize-your-machine/</link>
		<comments>http://blog.mpdaugherty.com/2010/04/06/how-to-include-git-hooks-in-a-repository-and-still-personalize-your-machine/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 14:04:05 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[my software]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://blog.mpdaugherty.com/?p=226</guid>
		<description><![CDATA[In my new job as Director of Engineering at 25Lux.com, I&#8217;ve been dealing with a lot of the infrastructure parts of development that I mostly glossed over before because I always worked at a company that had everything set up for me.  It&#8217;s a good chance to think about in what kind of environment I&#8217;d [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=226&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my new job as Director of Engineering at 25Lux.com, I&#8217;ve been dealing with a lot of the infrastructure parts of development that I mostly glossed over before because I always worked at a company that had everything set up for me.  It&#8217;s a good chance to think about in what kind of environment I&#8217;d really like to develop.</p>
<p>It turns out that big part of my answer involves automating everything.  Part of my reasoning is that our team is very small now, so the more we automate, the more we can concentrate on just development.  Another part of my reasoning is that I&#8217;ve read a lot about continuous deployment lately and many of the principles like decreasing the time between developing a hypothesis and learning your answer make sense and can only be achieved through extensive automation.<span id="more-226"></span></p>
<p>To that end, I&#8217;ve decided that all the developers should have some common git hooks in their repositories that will do things like run tests, etc.  Moreover, since we&#8217;ll be spending a lot of time developing these hook scripts, I&#8217;d like them to be backed up and versioned as well &#8211; i.e. also in the repository.</p>
<p>Therefore, my first step was to create a folder in the repository called <code>/git_hooks/</code> and symlink <code>/.git/hooks</code> -&gt; <code>/git_hooks/</code>.  This way, any changes we make to the hooks will be automatically applied across all the developers&#8217; machines.</p>
<p>However, this has a downside in that everyone&#8217;s hooks become the same and they are unable to add their own (I, for example, might like to add a spell checker to my commit comments, but that would be annoying if someone didn&#8217;t like it).  To solve that problem, I created a <code>/git_hooks/personal/</code> directory which behaves just like the normal <code>/.git/hooks/</code> directory, and any hooks a developer adds in there get executed as part of the common hook.  Here&#8217;s the code I used as the base of all of our common hooks to make it work:</p>
<p><pre class="brush: bash;">
#!/bin/sh

# Check if the individual developer has his own hook
CMD_NAME=`basename $0`
if [ -f $GIT_DIR/hooks/personal/$CMD_NAME ]
then
  # If so, run it. $@ passes all the command line arguments passed to this function
  # If the personal hook fails, fail this one as well
  if ! $GIT_DIR/hooks/personal/$CMD_NAME $@
  then
    echo &quot;User hook '$CMD_NAME' failed&quot;
    exit 1
  fi
fi

exit 0
</pre></p>
<p>Finally, if any developer does decide to add their own hooks in <code>/git_hooks/personal/</code>, they should be sure to add a line containing &#8220;<code>/git_hooks/personal/*[^.sample]</code>&#8221; to the end of their <code>/.git/info/exclude</code> file so that git will ignore their customizations.</p>
<p>You can download this at <a href="http://gist.github.com/357538">http://gist.github.com/357538</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=226&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2010/04/06/how-to-include-git-hooks-in-a-repository-and-still-personalize-your-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>iPhone Reference Errors</title>
		<link>http://blog.mpdaugherty.com/2009/02/28/iphone-reference-errors/</link>
		<comments>http://blog.mpdaugherty.com/2009/02/28/iphone-reference-errors/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 16:14:55 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[my software]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://mpdaugherty.wordpress.com/?p=161</guid>
		<description><![CDATA[I&#8217;ve decided to give iPhone development a try.  I have a few ideas for cool mobile apps that I&#8217;d love to implement so that I can learn a new platform, a new language, and maybe make some money on the side&#8230;  However, I&#8217;ve remembered what I dislike most about programming &#8211; configuration. I started out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=161&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to give iPhone development a try.  I have a few ideas for cool mobile apps that I&#8217;d love to implement so that I can learn a new platform, a new language, and maybe make some money on the side&#8230;  However, I&#8217;ve remembered what I dislike most about programming &#8211; configuration.</p>
<p><span id="more-161"></span></p>
<p>I started out trying interface builder and got a basic interface to show up pretty quickly, but it was rather confusing and I didn&#8217;t really know what was going on.  Next, I thought I should probably just go through the tutorials in my book (iPhone SDK Application Development by O&#8217;Reilly) so that I could get an overview of what&#8217;s actually possible with the iPhone.  That way, when I restart building my own apps it will be much faster because I&#8217;ll know what I&#8217;m doing.</p>
<p>However, I&#8217;ve now been trying to get the TextView example in Chapter 3 (Hello World) to work for almost a week!  I typed in all the code correctly (twice, into two separate projects), and it compiles fine, but all I get on the iPhone simulator is a black screen!  After a while, I found the debugger console button in XCode and realized I was getting the following errors:</p>
<p>warning: Unable to read symbols for &#8220;/System/Library/Frameworks/UIKit.framework/UIKit&#8221; (file not found).<br />
warning: Unable to read symbols from &#8220;UIKit&#8221; (not yet mapped into memory).<br />
warning: Unable to read symbols for &#8220;/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics&#8221; (file not found).<br />
warning: Unable to read symbols from &#8220;CoreGraphics&#8221; (not yet mapped into memory).</p>
<p>These frameworks are quite obviously linked in XCode (because the code completion works and the project compiles fine), but for some reason they don&#8217;t show up in the simulator.  After searching online, I&#8217;ve gotten to the point where I think it has to do with the way they&#8217;re referenced in XCode and that when running on the simulator, the application doesn&#8217;t actually compile all the references together; it just starts running without them, so you have to run it from within XCode.   Some people have also said that it had to do with breakpoints in code.  However, I&#8217;m running from within XCode and I don&#8217;t have any breakpoints, so I think it must be a file location configuration issue.  Now, I&#8217;ve had no luck finding any solutions online or by experimenting&#8230;</p>
<p>I&#8217;ll let you know how it works out; I&#8217;m not going to give up on this.</p>
<p>&#8212;- Update &#8211; March 1, 2009 &#8212;-</p>
<p>Well, the Hello World example started working&#8230;  First thing to note is that the &#8220;file not found&#8221; type warnings I noted above don&#8217;t actually seem to be related to the problem; now that it works, they still show up.</p>
<p>I fixed the blank black screen by cleaning all targets (in the Build menu), then rewriting Hello World to directly use a TextView instead of manually subclassing UIView myself.  Also, I didn&#8217;t allocate a window object; I just started using it and let the synthesize keyword work for me (before, I was trying to remove Interface Builder from the project, like it recommended in the book.  Here&#8217;s the code that first worked (I called the project &#8220;Arg&#8221; because I was so frustrated):</p>
<p>ArgAppDelegate.h:<br />
<code><br />
#import </p>
<p>@interface ArgAppDelegate : NSObject  {<br />
    UIWindow *window;<br />
	UITextView *textView;<br />
}</p>
<p>@property (nonatomic, retain) IBOutlet UIWindow *window;</p>
<p>@end<br />
</code></p>
<p>ArgAppDelegate.m:<br />
<code><br />
#import<br />
#import<br />
#import<br />
#import "ArgAppDelegate.h"</p>
<p>@implementation ArgAppDelegate</p>
<p>@synthesize window;</p>
<p>- (void) applicationDidFinishLaunching:(UIApplication *)application<br />
{<br />
	CGRect screenBounds = [ [ UIScreen mainScreen ] applicationFrame ];</p>
<p>	textView = [[MainView alloc] initWithFrame:screenBounds];<br />
	[window addSubview:textView];</p>
<p>	[window makeKeyAndVisible];<br />
}</p>
<p>- (void)dealloc {<br />
    [window release];<br />
    [super dealloc];<br />
}<br />
@end<br />
</code></p>
<p>This compiled fine and the text view showed up correctly, etc.  Next, I slowly changed the code one line at a time back to the original code, compiling at each step, to see if I could find the line that was causing the problem.  Unfortunately, I eventually came back to the original code and it worked&#8230;</p>
<p>ArgAppDelegate.h:<br />
<code><br />
#import </p>
<p>@interface MainView	: UIView<br />
{<br />
	UITextView *textView;<br />
}</p>
<p>@end</p>
<p>@interface ArgAppDelegate : NSObject  {<br />
    UIWindow *window;<br />
	MainView *myMainView;<br />
}</p>
<p>@property (nonatomic, retain) IBOutlet UIWindow *window;</p>
<p>@end<br />
</code></p>
<p>ArgAppDelegate.m:</p>
<p><code><br />
#import<br />
#import<br />
#import<br />
#import "ArgAppDelegate.h"</p>
<p>@implementation MainView</p>
<p>- (id)initWithFrame:(CGRect) rect {<br />
	self = [ super initWithFrame: rect ];</p>
<p>	if (self != nil) {<br />
		textView = [ [ UITextView alloc] initWithFrame: rect ];<br />
		textView.text = @"Hello, World!";</p>
<p>		[self addSubview:textView];<br />
	}</p>
<p>	return self;<br />
}</p>
<p>- (void)dealloc {<br />
	[ textView release ];<br />
	[ super dealloc ];<br />
}</p>
<p>@end</p>
<p>@implementation ArgAppDelegate</p>
<p>@synthesize window;</p>
<p>- (void)applicationDidFinishLaunching:(UIApplication *)application {<br />
	CGRect screenBounds = [ [ UIScreen mainScreen ] applicationFrame ];<br />
	CGRect windowBounds = screenBounds;<br />
	windowBounds.origin.y = 0.0;</p>
<p>	self.window = [ [ [ UIWindow alloc ] initWithFrame: screenBounds ]<br />
		autorelease<br />
				   ];</p>
<p>	myMainView = [ [ MainView alloc ] initWithFrame: windowBounds ];<br />
	[window addSubview:myMainView];<br />
    // Override point for customization after application launch<br />
    [window makeKeyAndVisible];<br />
}</p>
<p>- (void)dealloc {<br />
	[myMainView release];<br />
    [window release];<br />
    [super dealloc];<br />
}<br />
</code></p>
<p>main.m:</p>
<p><code><br />
#import </p>
<p>int main(int argc, char *argv[]) {</p>
<p>    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];<br />
    int retVal = UIApplicationMain(argc, argv, nil, @"ArgAppDelegate");<br />
    [pool release];<br />
    return retVal;<br />
}<br />
</code></p>
<p>I hope this helps somewhat to anyone having the same problem.  I found this incredibly frustrating and am not entirely happy about my solution here.  I still don&#8217;t really know why it happened in the first place, so I&#8217;m worried it will come up again in the future.  Let&#8217;s hope not!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=161&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2009/02/28/iphone-reference-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>Dancing for Engineers</title>
		<link>http://blog.mpdaugherty.com/2008/01/06/dancing-for-engineers/</link>
		<comments>http://blog.mpdaugherty.com/2008/01/06/dancing-for-engineers/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 04:51:07 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[dancing]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[my software]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[salsa]]></category>

		<guid isPermaLink="false">http://mpdaugherty.wordpress.com/2008/01/06/dancing-for-engineers/</guid>
		<description><![CDATA[Now here&#8217;s a topic I&#8217;ve been thinking about for a while. I started going to salsa dancing lessons fairly regularly this fall, but am having a hard time remembering the long sequences of complex moves that I learn in the MIT lessons (which are great, by the way). Even when I can remember them, it&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=102&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now here&#8217;s a topic I&#8217;ve been thinking about for a while.  I started going to salsa dancing lessons fairly regularly this fall, but am having a hard time remembering the long sequences of complex moves that I learn in the MIT lessons (which are great, by the way).  Even when I can remember them, it&#8217;s hard to do them on the dance floor with a girl who doesn&#8217;t also know what is coming, while staying on the beat, etc. etc.  So, at some point this fall, I thought to myself that there must be a better way to learn enough sequences of moves not to bore a good follower to tears.<span id="more-102"></span></p>
<p>As I thought about the problem, I realized that salsa dancing (and most partner dances) is really a finite-state machine.  We have X number of states (the positions that you end up in on beat 1), and transitions between the states (twirls, etc.).  Naturally, I thought of creating a diagram with states and transitions and tracing paths through the diagram to come up with new sequences.  This way, if I could memorize a few positions and all the different transitions between them, I could come up with lots of sequences on my own without ever having to memorize a two-minute series of steps.  Each set of steps would be at most 8 or 16 beats long.</p>
<p>Still, I didn&#8217;t know exactly what to call each state, what precisely is considered a transition, or most importantly, how to present this information in a usable manner.  Last week, I was again thinking about this and realized that since a finite-state diagram is also a directed graph, and the web is a directed graph, a webpage made perfect sense for a presentation mechanism.  Moreover, if I used a wiki, I could start adding pieces very easily, even if I don&#8217;t know the best terminology or have the perfect definition of each state.  Plus, other people can add their own moves to the wiki and eventually, we can all learn from each other.</p>
<p>Thus, yesterday morning, I started a new website: <a href="http://salsa.wikidot.com">salsa.wikidot.com</a>.   So far it&#8217;s not much; I have a few positions and moves described, and I plan to add more.  I feel a little bit like I shouldn&#8217;t actually be the one adding content, since I&#8217;m so new at dancing and don&#8217;t really know how to describe everything.  However, I also think that a lot of times we just need to start doing something even if we don&#8217;t know how, so there it is.  I have it set up so that it will be easy to add photos and videos of the steps if I ever get that far.  Should be fun.  Hopefully this helps someone someday.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mpdaugherty.wordpress.com/102/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mpdaugherty.wordpress.com/102/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=102&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2008/01/06/dancing-for-engineers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>MIT Undergraduate Advanced Project &#8211; Complete</title>
		<link>http://blog.mpdaugherty.com/2007/06/02/uap-open-source/</link>
		<comments>http://blog.mpdaugherty.com/2007/06/02/uap-open-source/#comments</comments>
		<pubDate>Sat, 02 Jun 2007 14:06:38 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[mit]]></category>
		<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://mpdaugherty.wordpress.com/2007/06/02/uap-open-source/</guid>
		<description><![CDATA[Near the end of my UAP, I promised my adviser that I would release the code I wrote as Open Source, so that people could continue to work on it after I left. If you&#8217;d like to try out my system or just take a look, it&#8217;s at http://daugherty.mit.edu/StoryAde1.0/Documentation.html.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=64&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Near the end of my UAP, I promised my adviser that I would release the code I wrote as Open Source, so that people could continue to work on it after I left.  If you&#8217;d like to try out my system or just take a look, it&#8217;s at <a title="Story-Ade 1.0" href="http://daugherty.mit.edu/StoryAde1.0/Documentation.html">http://daugherty.mit.edu/StoryAde1.0/Documentation.html</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mpdaugherty.wordpress.com/64/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mpdaugherty.wordpress.com/64/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=64&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2007/06/02/uap-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>MIT Undergraduate Advanced Project</title>
		<link>http://blog.mpdaugherty.com/2007/05/20/mit-undergraduate-advanced-project/</link>
		<comments>http://blog.mpdaugherty.com/2007/05/20/mit-undergraduate-advanced-project/#comments</comments>
		<pubDate>Sun, 20 May 2007 04:09:36 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[mit]]></category>
		<category><![CDATA[my software]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://mpdaugherty.wordpress.com/2007/05/20/mit-undergraduate-advanced-project/</guid>
		<description><![CDATA[As of Friday, I am done with every requirement for an undergraduate degree in computer science from MIT, except for one not-too-troublesome final! I had quite a time trying to get my UAP (senior project and write-up) finished on time&#8230; Which didn&#8217;t quite happen. However, I talked to Anne Hunter (course administrator) and received permission [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=51&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As of Friday, I am done with every requirement for an undergraduate degree in computer science from MIT, except for one not-too-troublesome final!  I had quite a time trying to get my UAP (senior project and write-up) finished on time&#8230;  Which didn&#8217;t quite happen.  However, I talked to Anne Hunter (course administrator) and received permission to turn it in one day late, which gave me just enough time to go through another revision with my great adviser, <a title="Barbara's Homepage" href="http://alumni.media.mit.edu/~barbara/">Barbara Barry</a>.</p>
<p>My project ended up being some work in story-analysis using common sense (provided by <a title="ConceptNet" href="http://web.media.mit.edu/~hugo/conceptnet/">ConceptNet</a>, another Media Lab project) as well as trying a new approach to anaphora resolution (basically determining antecedents for pronouns), which didn&#8217;t rely so much on common sense.</p>
<p>If you&#8217;re really interested, you can download <a title="Story-Ade Paper" href="http://daugherty.mit.edu/wp-content/uploads/2007/05/finalreport.pdf">the paper</a> I wrote.  I also am planning on releasing the source code to my project by the end of the month, though I want to get through my linear-algebra final first before I clean it up and put it on a webpage somewhere.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mpdaugherty.wordpress.com/51/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mpdaugherty.wordpress.com/51/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=51&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2007/05/20/mit-undergraduate-advanced-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
		<item>
		<title>More Map updates</title>
		<link>http://blog.mpdaugherty.com/2006/08/12/more-map-updates/</link>
		<comments>http://blog.mpdaugherty.com/2006/08/12/more-map-updates/#comments</comments>
		<pubDate>Sat, 12 Aug 2006 14:07:00 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://mpdaugherty.wordpress.com/2006/08/12/more-map-updates/</guid>
		<description><![CDATA[I spent some time this morning to create a generic page in which people can enter a flickr username and set name, and it will generate a timeline map for them. Check it out at http://web.mit.edu/mpdaugh/www/maps/mapPage.html. It currently does no input validation, so be sure to type your username and set names correctly!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=20&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I spent some time this morning to create a generic page in which people can enter a flickr username and set name, and it will generate a timeline map for them.  Check it out at<a href="http://web.mit.edu/mpdaugh/www/maps/mapPage.html"> http://web.mit.edu/mpdaugh/www/maps/mapPage.html</a>.  It currently does no input validation, so be sure to type your username and set names correctly!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mpdaugherty.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mpdaugherty.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mpdaugherty.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mpdaugherty.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mpdaugherty.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mpdaugherty.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mpdaugherty.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mpdaugherty.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mpdaugherty.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mpdaugherty.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mpdaugherty.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mpdaugherty.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mpdaugherty.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mpdaugherty.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mpdaugherty.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mpdaugherty.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mpdaugherty.com&amp;blog=1126752&amp;post=20&amp;subd=mpdaugherty&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mpdaugherty.com/2006/08/12/more-map-updates/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1789bf112f20b2b53047372a84803581?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>
	</item>
	</channel>
</rss>
