<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vintage Post Blog</title>
	<atom:link href="http://vintagepost.net/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://vintagepost.net/blog</link>
	<description>David Parmenter&#039;s musings: mostly about software, postcards and maybe bicycles!</description>
	<lastBuildDate>Sun, 06 May 2012 18:37:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Validated Learning, using Instagram as a lab</title>
		<link>http://vintagepost.net/blog/?p=106</link>
		<comments>http://vintagepost.net/blog/?p=106#comments</comments>
		<pubDate>Wed, 02 May 2012 01:52:55 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=106</guid>
		<description><![CDATA[Instagram finally released an Android version, so I&#8217;m happily snapping away. My feed is at http://www.gramfeed.com/dparmenter. I&#8217;ve spent much of this spring pondering how to put the precepts in &#8216;The Lean Startup&#8217; into practice in a practical way. Ideally, I&#8217;ll be &#8230; <a href="http://vintagepost.net/blog/?p=106">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://distilleryimage0.instagram.com/20e4cc6e92db11e1af7612313813f8e8_7.jpg" alt="" width="367" height="367" />Instagram finally released an Android version, so I&#8217;m happily snapping away. My feed is at <a title="http://www.gramfeed.com/dparmenter" href="http://www.gramfeed.com/dparmenter">http://www.gramfeed.com/dparmenter</a>.</p>
<p>I&#8217;ve spent much of this spring pondering how to put the precepts in &#8216;The Lean Startup&#8217; into practice in a practical way. Ideally, I&#8217;ll be able to do this at work and help my projects be awesome! But it&#8217;s kind of tricky, and not clear how to get started.</p>
<p>This week, I used Instagram as a laboratory. At the beginning of the trial, I had 27 followers. The metric I tried to maximize is conversion rate to &#8216;follower&#8217;. I have created five separate cohorts of Instagram users as follows.</p>
<ol>
<li>Cohort #1 &#8211; people who I simply &#8216;liked&#8217; 4 of their photos</li>
<li>Cohort #2 &#8211; people who I blindly followed</li>
<li>Cohort #3 &#8211; people who liked my photos that I followed back (and liked 4 of their photos)</li>
<li>Cohort #4 &#8211; followers&#8217; followers &#8211; just follow them</li>
<li>Cohort #5 &#8211; followers&#8217; followers &#8211; when they accept I then immediately unfollowed</li>
</ol>
<p>All test subjects were found from my feed, people I follow&#8217;s feed, etc, so there is probably a clustering effect. I should say, I feel kinda guilty about following people insincerely, but I am just doing an experiment. Hopefully no karmic damage.</p>
<p>In the week I did this experiment, I went from 27 followers</p>
<p>And the results:</p>
<ol>
<li>Cohort #1: 3 followers</li>
<li>Cohort #2: 1 follower</li>
<li>Cohort #3: 3 followers</li>
<li>Cohort #4: 5 followers</li>
<li>Cohort #6: 6 followers</li>
</ol>
<p>Additionally, I picked up 18 other followers. Some of them &#8216;legitimately&#8217; and others because I could see the #4 worked so well, I used it some more.</p>
<p>I think I can categorically state that your best bet for getting followers is to follow your followers&#8217; followers.</p>
<p>In terms of process, keeping your cohorts straight is crucial. Once you&#8217;ve done that, you can study them for a long time if you like.</p>
<p>As the business owner (of my feed), I think the next step for me is to try to get to the point where I have roughly the same # of followers as followee&#8217;s.</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=106</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Balsamiq and the iPad</title>
		<link>http://vintagepost.net/blog/?p=102</link>
		<comments>http://vintagepost.net/blog/?p=102#comments</comments>
		<pubDate>Tue, 06 Mar 2012 11:48:40 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=102</guid>
		<description><![CDATA[I&#8217;ve been a loyal balsamiq customer for about a year. The software is insanely great, it does just what it is designed to do, very pleasing to look at and to use. And perhaps importantly, the team that makes it &#8230; <a href="http://vintagepost.net/blog/?p=102">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="vintage iPad" src="http://ipadinsight.com/wp-content/uploads/2011/06/WelcometotheFutureofComputing.jpg" alt="" width="300" height="395" />I&#8217;ve been a loyal balsamiq customer for about a year. The software is insanely great, it does just what it is designed to do, very pleasing to look at and to use. And perhaps importantly, the team that makes it seems rather awesome! Don&#8217;t believe me? Check out their <a title="balsamiq manifesto" href="http://www.balsamiq.com/products/mockups/manifesto" target="_blank">manifesto</a>.</p>
<p>So there&#8217;s just this one thing I don&#8217;t get:</p>
<blockquote><p>Why no native iPad support?</p></blockquote>
<p>I decided to be vendor-centric (just invented this term!) and get in touch with Peldi to find out the answer.</p>
<p>He wrote back almost immediately, so here&#8217;s the tutorial:</p>
<blockquote><p>Hi David, thanks for the kind words. iPad elements are here for now:<br />
<a href="http://mockupstogo.mybalsamiq.com/projects/ios" target="_blank">http://mockupstogo.mybalsamiq.<wbr>com/projects/ios</wbr></a> - instructions on how to use them are here:<br />
<a href="https://mockupstogo.mybalsamiq.com/projects/aboutmtg/Finding+and+Using+Libraries" target="_blank">https://mockupstogo.<wbr>mybalsamiq.com/projects/<wbr>aboutmtg/Finding+and+Using+<wbr>Libraries</wbr></wbr></wbr></a></p>
<p>We&#8217;ll make these easier to find from within the app soon!<br />
Peldi</p></blockquote>
<p>I tried it and it works! You need to be following their best practices and put all of your assets in a directory with that name wherever your BMML files live, and then <strong><em>tutti va bene!</em></strong></p>
<p>I still would like for them to add this support into the product natively, but I&#8217;m unblocked.</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=102</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>January / February hiatus bearing fruit</title>
		<link>http://vintagepost.net/blog/?p=96</link>
		<comments>http://vintagepost.net/blog/?p=96#comments</comments>
		<pubDate>Tue, 21 Feb 2012 02:51:19 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=96</guid>
		<description><![CDATA[I find it devilishly difficult to simplify my own ideas. Other people&#8217;s ideas, I whittle them down to their essence in no time. I guess this is what Lennon/McCartney, Rodgers/Hart was all about, but I just have me! As I regroup &#8230; <a href="http://vintagepost.net/blog/?p=96">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Le Truc" src="http://distillery.s3.amazonaws.com/media/2011/02/02/6ea7baea55774c5e81e7e3e1f6e791a7_7.jpg" alt="" width="367" height="367" />I find it devilishly difficult to simplify my own ideas. Other people&#8217;s ideas, I whittle them down to their essence in no time. I guess this is what Lennon/McCartney, Rodgers/Hart was all about, but I just have me!</p>
<p>As I regroup from the deadend I created for myself, I am asking:</p>
<ul>
<li>what is super popular in the iPhone-o-spere that I can cooperate with?</li>
<li>how do I eliminate just about all of the processing steps in my design</li>
<li>how can I get this thing designed and coded in the 4 hours / week I seem to have available?</li>
</ul>
<p>I think I&#8217;ve got a plan, but I&#8217;m staying in stealth mode for a little bit more. Stay tuned!</p>
<p>In the meantime, I&#8217;ll probably start blogging about work a bit, since there are some pretty cool things happening that I can share.</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=96</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Give blood &#8211; Learn Parallelism</title>
		<link>http://vintagepost.net/blog/?p=90</link>
		<comments>http://vintagepost.net/blog/?p=90#comments</comments>
		<pubDate>Sat, 28 Jan 2012 14:04:04 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=90</guid>
		<description><![CDATA[A couple weeks ago, my pal Bob Treitman got the bloodmobile from Mass General Hospital to come to Adobe at Waltham.  It was a great experience, thanks Bob!  Lots of people showed up, and even people from neighboring offices came &#8230; <a href="http://vintagepost.net/blog/?p=90">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://vintagepost.net/blog/wp-content/uploads/2012/01/bloodmobile1.jpg"><img class=" wp-image-91 alignright" title="bloodmobile" src="http://vintagepost.net/blog/wp-content/uploads/2012/01/bloodmobile1.jpg" alt="" width="303" height="421" /></a>A couple weeks ago, my pal Bob Treitman got the bloodmobile from Mass General Hospital to come to Adobe at Waltham.  It was a great experience, thanks Bob!  Lots of people showed up, and even people from neighboring offices came down.</p>
<p>I was amazed by how well organized it was, and how capable the staff was.</p>
<p>The bloodmobile also presents itself as a lovely example of how to build a robust, parallel processing system.</p>
<ol>
<li>They schedule visitors in 15 minute increments, but if more, or less, show, this is not a problem because&#8230;</li>
<li>They can wait inside, and overflow outside</li>
<li>They give you privacy, while they get your data, check your vitals, ask you personal questions</li>
<li>If need be back to the waiting area, although in my case they put me on the couch right away</li>
<li>My blood sugar was a little low, so they sent me to the &#8230;</li>
<li>Fridge and then back again</li>
<li>When I was done, I got a card and felt great about the whole thing!</li>
</ol>
<p>I believe that if you can get more than 30 people to show, they will probably come to you.  Visit their <a href="http://www.massgeneral.org/blooddonor/blooddrives/bloodmobiles.aspx">site</a> for more information!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=90</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Back to the design phase</title>
		<link>http://vintagepost.net/blog/?p=82</link>
		<comments>http://vintagepost.net/blog/?p=82#comments</comments>
		<pubDate>Sun, 08 Jan 2012 13:13:20 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=82</guid>
		<description><![CDATA[&#8220;It&#8217;s a dangerous business going out your front door.&#8221; &#8211; Bilbo Baggins VintagePost.app is out of control.  It *could* do so many things, and yet right now, it can&#8217;t actually do any of them.  Time to step back and stop &#8230; <a href="http://vintagepost.net/blog/?p=82">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;It&#8217;s a dangerous business going out your front door.&#8221;<img class="alignright" title="For you my darling" src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/USMailbox1909.jpg/370px-USMailbox1909.jpg" alt="" width="222" height="360" /><br />
&#8211; Bilbo Baggins</p></blockquote>
<p>VintagePost.app is out of control.  It *could* do so many things, and yet right now, it can&#8217;t actually do any of them.  Time to step back and stop coding, and reengage with the XD part of my brain.</p>
<p>I&#8217;ll probably make an inventory of all the pieces of technology I have &#8220;working&#8221; at some point, but first I have to channel my inner agilist.</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=82</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Giving in to the excellence of the 2011 theme</title>
		<link>http://vintagepost.net/blog/?p=80</link>
		<comments>http://vintagepost.net/blog/?p=80#comments</comments>
		<pubDate>Sat, 07 Jan 2012 20:32:39 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=80</guid>
		<description><![CDATA[Sorry, this is a really nice theme.  Plus it works on mobile devices. I&#8217;ll probably style it a bit as I go, which will no doubt break it in subtle ways. Here&#8217;s a nice tutorial on how to get rid &#8230; <a href="http://vintagepost.net/blog/?p=80">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sorry, th<img class="alignright" title="2011" src="http://www.designscollage.com/wp-content/uploads/2010/12/Happy-New-Year-2011-.jpg" alt="" width="318" height="179" />is is a really nice theme.  Plus it works on mobile devices. I&#8217;ll probably style it a bit as I go, which will no doubt break it in subtle ways.</p>
<p>Here&#8217;s a <a title="tutorial" href="http://wpti.ps/functions/replace-remove-header-image-twenty-eleven-theme/">nice tutorial</a> on how to get rid of the default images and replace it with your own.</p>
<p>Note: the tutorial doesn&#8217;t handle the permalink view:  the old images still appear there.  On the backlog!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=80</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Top three pieces of advice</title>
		<link>http://vintagepost.net/blog/?p=72</link>
		<comments>http://vintagepost.net/blog/?p=72#comments</comments>
		<pubDate>Sat, 07 Jan 2012 15:02:10 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=72</guid>
		<description><![CDATA[Nothing fancy, but timeless.  I should use these every day. &#8220;Always be coding&#8221; &#8211; David Coletta &#160; &#8220;If it&#8217;s hard to do, do it often&#8221; &#8211; Adobe Agile Trainer, Peter Green &#160; &#8220;The deadline is your friend&#8221; &#8211; My own &#8230; <a href="http://vintagepost.net/blog/?p=72">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nothing fancy, but timeless.  I should use these every day.<img class="alignright" title="Mais Oui" src="http://i.ebayimg.com/t/MAIS-OUI-Vintage-Sunset-Louisiana-Yam-Crate-Labels-/03/!B6y+(Y!BGk~$(KGrHqIOKjIEzJrWft2sBMyb+1Sq3g~~-1_35.JPG" alt="" width="236" height="240" /></p>
<blockquote><p>&#8220;Always be coding&#8221;<br />
&#8211; David Coletta</p>
<p>&nbsp;</p>
<p>&#8220;If it&#8217;s hard to do, do it often&#8221;<br />
&#8211; Adobe Agile Trainer, Peter Green</p></blockquote>
<blockquote><p>&nbsp;</p>
<p>&#8220;The deadline is your friend&#8221;<br />
&#8211; My own dad, Tom Parmenter</p>
<p>&nbsp;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=72</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nearest neighbor for geo data</title>
		<link>http://vintagepost.net/blog/?p=61</link>
		<comments>http://vintagepost.net/blog/?p=61#comments</comments>
		<pubDate>Thu, 05 Jan 2012 04:40:09 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=61</guid>
		<description><![CDATA[Given a latitude and longitude, I need to pull the nearest neighbors out of the database and return them in proximity order.  To get this to work we use: geohash &#8211; every entry in the database records its geohash code &#8230; <a href="http://vintagepost.net/blog/?p=61">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="globe" src="http://www.1worldglobes.com/images/GLAM/ap108_sm.jpg" alt="" width="134" height="179" /></p>
<p>Given a latitude and longitude, I need to pull the nearest neighbors out of the database and return them in proximity order.  To get this to work we use:</p>
<ul>
<li><a title="geohash.org" href="geohash.org" target="_blank">geohash</a> &#8211; every entry in the database records its geohash code</li>
<li><a title="compute distance" href="http://www.movable-type.co.uk/scripts/latlong.html" target="_blank">law of cosines</a> - fast trig based solution to the distance problem</li>
<li><a title="sorting" href="http://wiki.python.org/moin/HowTo/Sorting" target="_blank">python sorting</a></li>
</ul>
<p>To do the query, we need to compute a bounding box:</p>
<pre>swhash = Geohash.encode(latitude-delta, longitude-delta)
nehash = Geohash.encode(latitude+delta, longitude+delta)</pre>
<p>This produced two hashcodes, one to the southwest of the orig, and one the northeast.  A delta of 0.5 is about 138 KM, in North America, at least.  Geohash codes are great because they can be sorted in lexical order, so my boto query now looks like this:</p>
<pre>sdb = boto.connect_sdb(AWS_ACCESS_KEY, AWS_SECRET_KEY])
domain = sdb.get_domain(PLACES_DOMAIN)
places = domain.select("select * from `Places` where
    `geohash` &gt;= '%s' and `geohash` &lt;= '%s' LIMIT 10"
    %(swhash, nehash), max_items=10)</pre>
<p>The places object is actually an iterator much thanks to <a href="http://blog.coredumped.org/2009/12/boto-can-be-great-tool-if-youre.html" target="_blank">Chris Moyer for documenting this</a>. We want the array.  NOTE, the query is lazily performed when you interpret the first token from the iterator.</p>
<pre>results = [place for place in places]</pre>
<p>The distance function is very simple:</p>
<pre>def distance(a,b):
    R = 6371 # radius of Earth in KM
    lat1 = radians(a[0])
    lon1 = radians(a[1])
    lat2 = radians(b[0])
    lon2 = radians(b[1])
    d = math.acos(math.sin(lat1)*math.sin(lat2) +
        math.cos(lat1)*math.cos(lat2) * math.cos(lon2-lon1)) * R;
    return d</pre>
<p>Finally, python sorts the result:</p>
<pre>results = sorted(results, key=lambda place: distance(orig,
    (float(place['latitude']), float(place['longitude']))))</pre>
<p>This actually worked on the second try.</p>
<p>Notes: there are better distance functions, but this one works well and is quite fast.  I have not put in the error handling, or the back off code if you get too many or too few results.</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=61</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YAML &gt; JSON &gt; XML</title>
		<link>http://vintagepost.net/blog/?p=57</link>
		<comments>http://vintagepost.net/blog/?p=57#comments</comments>
		<pubDate>Mon, 02 Jan 2012 13:16:45 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=57</guid>
		<description><![CDATA[My app gets images from various photo sharing sites.  After checking for copyright correctness, I download images onto my own machine for review and Photoshopping. Then I upload them into my S3/SimpleDB cloud storage. The metadata I get back from the &#8230; <a href="http://vintagepost.net/blog/?p=57">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My app gets images from various photo sharing sites.  After checking for copyright correctness, I download images onto my own machine for review and Photoshopping. Then I upload them into my S3/SimpleDB cloud storage.</p>
<p>The metadata I get back from the photo sharing sites is generally in JSON format, but I frequently want to edit this metadata and even though JSON is the bee&#8217;s knees, it&#8217;s not that great to edit, plus grepping for metadata kinda sucks too.</p>
<p>Enter Yaml:</p>
<blockquote>
<pre>city: ''
country: ''
filtered: 0
geohash: dhwfq5vbb02h
id: '3077164973'
kind: scene
latitude: 25.728738
license: '4'
longitude: -80.236244
owner: 11211909@N00
ownername: corsi photo
state: ''
tags: miami floridawaterbeachskylineshorelineoceanbuildings
title: Miami shoreline
url_z: http://farm4.staticflickr.com/3149/30771649c6a6c_z.jpg
vp_id: flickr.scene.11211909@N00-3077164973</pre>
</blockquote>
<p>Exit JSON:</p>
<blockquote>
<pre>{'tags': 'miami floridawaterbeachskylineshorelineoceanbuildings', 'vp_id': 'flickr.scene.11211909@N00-3077164973', 'owner': '11211909@N00', 'id': '3077164973', 'city': '', 'kind': 'scene', 'url_z': 'http://farm4.staticflickr.com/3149/3077164973_a31b4c6a6c_z.jpg', 'license': '4', 'title': 'Miami shoreline', 'country': '', 'longitude': -80.236244, 'state': '', 'geohash': 'dhwfq5vbb02h', 'ownername': 'corsi photo', 'latitude': 25.728738, 'filtered': 0}</pre>
</blockquote>
<p>PyYAML even has type inferencing, so when I reload the data, it seems to do just what I want.</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=57</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sandboxitude</title>
		<link>http://vintagepost.net/blog/?p=55</link>
		<comments>http://vintagepost.net/blog/?p=55#comments</comments>
		<pubDate>Mon, 02 Jan 2012 12:46:44 +0000</pubDate>
		<dc:creator>David Parmenter</dc:creator>
				<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://vintagepost.net/blog/?p=55</guid>
		<description><![CDATA[Homebrew and Virtualenv go together like cognac and chocolate (YMMMV: your metaphorical mileage may vary!). By using mac ports and being unaware of virtualenv, my upstairs mac had become an absolute mess.  Finally, I removed all traces of mac ports &#8230; <a href="http://vintagepost.net/blog/?p=55">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Homebrew and Virtualenv go together like cognac and chocolate (YMMMV: your <img class="alignright" title="Cognac" src="http://www.chocolate.com/dimages/product_images/13143-lindt-liquor-milk-chocolate-bar-with-cognac-3oz-6-bar-pack-1_250x250.jpg" alt="" width="250" height="250" />metaphorical mileage may vary!).</p>
<p>By using mac ports and being unaware of virtualenv, my upstairs mac had become an absolute mess.  Finally, I removed all traces of mac ports from the system, I <em>think</em> I did anyway <img src='http://vintagepost.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Now, I am installing and uninstalling recipes, never once sudo&#8217;ing.</p>
<p>Even better is virtualenv.  Putting Python code into production is a breeze, since you&#8217;re already running in a sandbox, you&#8217;ve documented your dependencies, and Python is portable.  What a great world!</p>
]]></content:encoded>
			<wfw:commentRss>http://vintagepost.net/blog/?feed=rss2&#038;p=55</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

