<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Straw Dogs » Straw Dogs</title>
	
	<link>http://www.straw-dogs.co.uk</link>
	<description>The Tao of Ruby, Python, and....Straw Dogs?</description>
	<lastBuildDate>Tue, 15 Nov 2011 06:47:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/StrawDogs" /><feedburner:info uri="strawdogs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>How Python Decorators Work</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/a6t-zXNeVsE/</link>
		<comments>http://www.straw-dogs.co.uk/11/15/how-python-decorators-work/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 06:47:43 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=693</guid>
		<description><![CDATA[The more I use StackOverflow the more I love it. Its rammed full of gems like this: Understanding Python Decorators. In answer to a users question about how decorators work, e-satis has gone way beyond the call of duty and written a full blown tutorial complete with exercises. Its by far the best explanation of [...]]]></description>
			<content:encoded><![CDATA[<p>The more I use StackOverflow the more I love it. Its rammed full of gems like this: <a href="http://stackoverflow.com/questions/739654/understanding-python-decorators/1594484#1594484">Understanding Python Decorators</a>.</p>
<p>In answer to a users question about how decorators work, e-satis has gone way beyond the call of duty and written a full blown tutorial complete with exercises. Its by far the best explanation of Python decorators I&#8217;ve ever come across.</p>
<p><a href="http://stackoverflow.com/questions/739654/understanding-python-decorators/1594484#1594484">Well worth a look</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/JyIYLp9fZMbn2VtzvFDeVv1M_wA/0/da"><img src="http://feedads.g.doubleclick.net/~a/JyIYLp9fZMbn2VtzvFDeVv1M_wA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JyIYLp9fZMbn2VtzvFDeVv1M_wA/1/da"><img src="http://feedads.g.doubleclick.net/~a/JyIYLp9fZMbn2VtzvFDeVv1M_wA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/a6t-zXNeVsE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/11/15/how-python-decorators-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/11/15/how-python-decorators-work/</feedburner:origLink></item>
		<item>
		<title>History of Python – Guido van Rossum</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/AMEFgrls4FQ/</link>
		<comments>http://www.straw-dogs.co.uk/11/13/history-of-python-guido-van-rossum/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 06:38:54 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=683</guid>
		<description><![CDATA[Here&#8217;s a video of Guido giving a talk on the history and philosophy of Python. Total length: 1hr:50m.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a video of Guido giving a talk on the history and philosophy of Python. Total length: 1hr:50m.</p>
<p><object width="560" height="315"><param name="movie" value="http://www.youtube.com/v/ugqu10JV7dk?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ugqu10JV7dk?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>

<p><a href="http://feedads.g.doubleclick.net/~a/Uv65d70qhmCWncICWG2fGJfXbCM/0/da"><img src="http://feedads.g.doubleclick.net/~a/Uv65d70qhmCWncICWG2fGJfXbCM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Uv65d70qhmCWncICWG2fGJfXbCM/1/da"><img src="http://feedads.g.doubleclick.net/~a/Uv65d70qhmCWncICWG2fGJfXbCM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/AMEFgrls4FQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/11/13/history-of-python-guido-van-rossum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/11/13/history-of-python-guido-van-rossum/</feedburner:origLink></item>
		<item>
		<title>PyQuery – Bringing jQuery Syntax to Python</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/g37NvQxZTwM/</link>
		<comments>http://www.straw-dogs.co.uk/11/09/pyquery-bringing-jquery-syntax-to-python/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 07:58:30 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=677</guid>
		<description><![CDATA[If BeautifulSoup has ever felt unwieldily or you&#8217;ve looked upon Ruby&#8217;s NokoGiri with envy then you may find this funky Python library interesting. PyQuery brings jQuery selector syntax to Python. If you&#8217;re already familiar with jQuery selectors you&#8217;ll be right at home. Even if you don&#8217;t its easy enough to pick up. Here&#8217;s a quick [...]]]></description>
			<content:encoded><![CDATA[<p>If BeautifulSoup has ever felt unwieldily or you&#8217;ve looked upon Ruby&#8217;s <a href="http://nokogiri.org/">NokoGiri</a> with envy then you may find this funky Python library interesting.</p>
<p><b>PyQuery</b> brings <a href="http://jquery.com/">jQuery</a> selector syntax to Python. If you&#8217;re already familiar with jQuery selectors you&#8217;ll be right at home. Even if you don&#8217;t its easy enough to pick up.</p>
<p>Here&#8217;s a quick example:</p>
<pre name="code" class="python">
from pyquery import PyQuery as pq

d = pq(url="http://www.straw-dogs.co.uk")
# d is now like the jQuery $

for post in d('div.post'):
	p = pq(post)
	print p('h2').text()
</pre>
<p><a href="http://packages.python.org/pyquery/" title="PyQuery">Get it here</a>.</p>
<p>PyQuery is also available to install via &#8220;pip&#8221;.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/3bHHNhXt12Kk4O8FrB4EkDt_rAM/0/da"><img src="http://feedads.g.doubleclick.net/~a/3bHHNhXt12Kk4O8FrB4EkDt_rAM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3bHHNhXt12Kk4O8FrB4EkDt_rAM/1/da"><img src="http://feedads.g.doubleclick.net/~a/3bHHNhXt12Kk4O8FrB4EkDt_rAM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/g37NvQxZTwM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/11/09/pyquery-bringing-jquery-syntax-to-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/11/09/pyquery-bringing-jquery-syntax-to-python/</feedburner:origLink></item>
		<item>
		<title>Finally – A Python HTTP Lib that’s as nice as…</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/wqRtXLIZijQ/</link>
		<comments>http://www.straw-dogs.co.uk/11/05/finally-a-python-http-lib-thats-as-nice-as/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 06:43:45 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[urllib2]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=680</guid>
		<description><![CDATA[…Ruby. One thing I envy in Ruby is the simplicity of so many of their libraries &#8211; both core and 3rd party. Python&#8217;s urllib2 never really felt natural but here is a solution. Requests: &#8220;HTTP for humans&#8221;. An example will do it justice: r = requests.get('http://www.straw-dogs.co.uk') r.content Wow &#8211; clean, simple and quick. Add to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.straw-dogs.co.uk/wp-content/uploads/2011/10/requests-turtle.png" alt="Requests turtle" border="0" width="224" height="200" style="float:right;" />
<p>…Ruby. One thing I envy in Ruby is the simplicity of so many of their libraries &#8211; both core and 3rd party. Python&#8217;s urllib2 never really felt natural but here is a solution. <a href="http://docs.python-requests.org/en/latest/index.html">Requests: &#8220;HTTP for humans&#8221;</a>.</p>
<p>An example will do it justice:</p>
<pre name="code" class="python">
r = requests.get('http://www.straw-dogs.co.uk')
r.content
</pre>
<p>Wow &#8211; clean, simple and quick.</p>
<p>Add to that the awesome logo and you have a winner.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/i09ugXQ1M4xhAZyOIx1APXX5yt8/0/da"><img src="http://feedads.g.doubleclick.net/~a/i09ugXQ1M4xhAZyOIx1APXX5yt8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/i09ugXQ1M4xhAZyOIx1APXX5yt8/1/da"><img src="http://feedads.g.doubleclick.net/~a/i09ugXQ1M4xhAZyOIx1APXX5yt8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/wqRtXLIZijQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/11/05/finally-a-python-http-lib-thats-as-nice-as/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/11/05/finally-a-python-http-lib-thats-as-nice-as/</feedburner:origLink></item>
		<item>
		<title>Halloween Python</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/smVsfyog-bQ/</link>
		<comments>http://www.straw-dogs.co.uk/10/31/halloween-python/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 08:42:11 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[halloween]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=685</guid>
		<description><![CDATA[Seems fitting for today. Credit to rkem&#8217;s wife via Reddit.]]></description>
			<content:encoded><![CDATA[<p>Seems fitting for today. Credit to <a href="http://www.reddit.com/user/rkern">rkem&#8217;s</a> wife via <a href="http://www.reddit.com">Reddit</a>.</p>
<p><img src="http://i.imgur.com/umdTL.jpg" style="width:440px;" /></p>

<p><a href="http://feedads.g.doubleclick.net/~a/hIP_dOHF05OFFtL5k4hiUTKpiWc/0/da"><img src="http://feedads.g.doubleclick.net/~a/hIP_dOHF05OFFtL5k4hiUTKpiWc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hIP_dOHF05OFFtL5k4hiUTKpiWc/1/da"><img src="http://feedads.g.doubleclick.net/~a/hIP_dOHF05OFFtL5k4hiUTKpiWc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/smVsfyog-bQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/10/31/halloween-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/10/31/halloween-python/</feedburner:origLink></item>
		<item>
		<title>Myth of the Genius Programmer</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/TjU2vm3oOFM/</link>
		<comments>http://www.straw-dogs.co.uk/10/12/myth-of-the-genius-programmer/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 17:05:16 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[io]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=672</guid>
		<description><![CDATA[This video from Google IO &#8217;09 is 3 years gone now but it is so incredibly relevant I had to post it. Every place I&#8217;ve worked with other developers has had a strange mix of elitism and anxiety. Its well worth watching for any developer &#8211; &#8216;genius&#8217; or not:]]></description>
			<content:encoded><![CDATA[<p>This video from Google IO &#8217;09 is 3 years gone now but it is so incredibly relevant I had to post it. Every place I&#8217;ve worked with other developers has had a strange mix of elitism and anxiety.</p>
<p>Its well worth watching for any developer &#8211; &#8216;genius&#8217; or not:</p>
<p><object width="420" height="315"><param name="movie" value="http://www.youtube.com/v/0SARbwvhupQ?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/0SARbwvhupQ?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>

<p><a href="http://feedads.g.doubleclick.net/~a/DP_FLb5BHD7U6GQ6KYpGC6Bw9uI/0/da"><img src="http://feedads.g.doubleclick.net/~a/DP_FLb5BHD7U6GQ6KYpGC6Bw9uI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/DP_FLb5BHD7U6GQ6KYpGC6Bw9uI/1/da"><img src="http://feedads.g.doubleclick.net/~a/DP_FLb5BHD7U6GQ6KYpGC6Bw9uI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/TjU2vm3oOFM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/10/12/myth-of-the-genius-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/10/12/myth-of-the-genius-programmer/</feedburner:origLink></item>
		<item>
		<title>1955-2011 Steve Jobs</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/ldlaTsS8M6M/</link>
		<comments>http://www.straw-dogs.co.uk/10/06/1955-2011-steve-jobs/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 07:30:29 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=667</guid>
		<description />
			<content:encoded><![CDATA[<p><a href="http://www.apple.com/stevejobs/"><img src="http://www.straw-dogs.co.uk/wp-content/uploads/2011/10/apple-300x187.jpg" alt="" title="apple" width="300" height="187" class="aligncenter size-medium wp-image-668" /></a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/LBcwFr9Xsime_yW6N5Zdzb0kZqk/0/da"><img src="http://feedads.g.doubleclick.net/~a/LBcwFr9Xsime_yW6N5Zdzb0kZqk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LBcwFr9Xsime_yW6N5Zdzb0kZqk/1/da"><img src="http://feedads.g.doubleclick.net/~a/LBcwFr9Xsime_yW6N5Zdzb0kZqk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/ldlaTsS8M6M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/10/06/1955-2011-steve-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/10/06/1955-2011-steve-jobs/</feedburner:origLink></item>
		<item>
		<title>Macs Make Terrible Development Platforms</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/Zf7SExH-HPU/</link>
		<comments>http://www.straw-dogs.co.uk/09/17/macs-make-terrible-development-platforms/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 14:34:23 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=642</guid>
		<description><![CDATA[Mac&#8217;s are not a panacea for programming/web development. There! I said it. I feel like an alcoholic finally admitting he has a problem. So desperate to cling to the ideal that Macs make the perfect development machines but I was kidding myself all along. As a web developer/coder I used Windows and Linux (mainly Debian, [...]]]></description>
			<content:encoded><![CDATA[<p>Mac&#8217;s are not a panacea for programming/web development. There! I said it. I feel like an alcoholic finally admitting he has a problem. So desperate to cling to the ideal that Macs make the perfect development machines but I was kidding myself all along.</p>
<div id="attachment_647" class="wp-caption alignnone" style="width: 330px"><a href="http://www.straw-dogs.co.uk/wp-content/uploads/2011/09/everyone-has-mac-loser-has-acer.jpg"><img src="http://www.straw-dogs.co.uk/wp-content/uploads/2011/09/everyone-has-mac-loser-has-acer-300x199.jpg" alt="Everyone Has a Mac" title="Everyone Has a Mac" width="320" height="210" class="size-medium wp-image-647" /></a><p class="wp-caption-text">Everyone Has a Mac</p></div>
<p>As a web developer/coder I used Windows and Linux (mainly Debian, Arch &#038; Mint) for everything. I switched to a Macbook Pro in 2008 (the first unibody model) while at home.</p>
<p>When I first got it, I loved it. It was the best thing since getting my first computer as a kid. It made web development easier and all the major scripting languages I used were installed by default.</p>
<p>But now &#8211; 3 years later I&#8217;m having doubts and here&#8217;s why:</p>
<h3>Cross platform GUI development is bad</h3>
<p>If you want to create something in Objective C you&#8217;re fine and there&#8217;s bindings for all the major languages. However, if you want to create, say, a GTK app or QT app then you&#8217;re screwed. Especially if you want to do them in Ruby or Python. Want to use Python&#8217;s wxWidgets? ok &#8211; as long as you use 32bit mode. But this will cause problems when you package it for distribution. GTK &#8211; you&#8217;ll need the buggy, messy X11 server running on the host system. A GTK app on Windows and Linux &#8216;just work&#8217; &#8211; to steal a favourite Apple phrase.</p>
<h3>MacPorts is a Mess</h3>
<p>I didn&#8217;t realise at first until I started getting numerous version conflicts between packages. MacPorts tries to make sure dependencies are kept in check but whenever I ran an update I hit numerous snags about active ports which required me to manually activate and deactivate things. There&#8217;s actually an FAQ entry about this but only for Perl. However, it doesn&#8217;t just affect Perl. I&#8217;ve had it happen with Python, Ruby, Lua, Perl and numerous others I&#8217;ve probably forgotten.</p>
<p>Lesson learnt &#8211; don&#8217;t fall into the trap of using MacPorts. You WILL regret it. It will take a while for you to notice the problems but they&#8217;ll come, especially if you want to do anything different and during upgrades.</p>
<h3>The MacPorts alternatives aren&#8217;t much better</h3>
<p>Although removing Macports solved a lot of problems there were still issues installing some libraries for Python and Ruby. The library would often recommend Macports because that was the easiest way to install it. Otherwise they&#8217;d provide difficult custom setup instructions that would invariably break numerous other things on your system. The whole phrase &#8211; &#8220;it just works&#8221; rapidly starts to lose its credibility after 2 hours trying to setup a Python library.</p>
<h3>Too many versions and conflicts</h3>
<p>There&#8217;s been so many times I&#8217;ve had the existing base installed software conflict with a MacPorts package or a binary install. I couldn&#8217;t understand why my dev web server wasn&#8217;t working. I was editing config files but nothing happened. After an hour of digging I discovered MacPorts had installed Apache as a dependency of some obscure library and I had that running instead of my usual web server &#8211; which died when it couldn&#8217;t use port 80. I&#8217;ve had the same issues with MySQL. I had the binary installed but it conflicted with a MacPorts install. I&#8217;ve got about 4 versions of Python and although virtualenv can make life easier its still a pain if you want to package anything. At one point I ran &#8220;python&#8221; on the terminal and it was version 2.5.5. Odd &#8211; I thought &#8211; Lion is meant to be 2.7. That explained that when I ran &#8220;easy_install xxx&#8221; I couldn&#8217;t access it on the Python shell. Because easy_install was installing to version 2.7 of &#8220;site-packages&#8221;. Not 2.5. Turns out &#8220;python&#8221; was pointing to the wrong version. Mac NEEDS the other Python versions for various internal things so you can&#8217;t get rid of them.</p>
<p>Of course I&#8217;m sure some will comment that I&#8217;m an idiot. I should have been more careful, more thoughtful, etc. However, what happened to: &#8220;it just works&#8221;? The fact is I was able to develop on a Linux box for years without having to obsessively keep track of versions and installs.</p>
<h3>Its too similar to Linux/Unix &#8211; Some simple apps just don&#8217;t work</h3>
<p>As an extension to the comments on GUI frameworks I mentioned I wanted to check out <a href="http://deluge-torrent.org/">Deluge</a> (a torrent client). Its built in Python so surely it&#8217;ll run? Oh yes &#8211; if you jump through numerous hoops, sacrifice a goat, pray to Beelzebub and eat a few virgins. The gods may allow you to run it fully. I wanted to use Deluge mainly to tinker with plugin development for it. I eventually used a Linux VM instead. The fact is, OSX is similar to Linux/Unix in many ways. Which is why so many Linux apps will run on it with very little change. But thats actually a hinderance. Its close but there&#8217;s just enough differences to make it really awkward to install many things. Unless you use Macports but as I&#8217;ve already pointed out that is a poisoned chalice destined to murder your sanity in the future.</p>
<h3>Fuse/FTPFS</h3>
<p>I&#8217;ve found it very useful to use <a href="http://en.wikipedia.org/wiki/FTPFS">FTPFS</a> which enables me to link a local directory to a remote FTP location. So I can effectively edit remote code like it was local. Yes I&#8217;m well aware using FTP is frowned upon but we don&#8217;t always get a choice.</p>
<p>This was very easy on Leopard. Its <b>extremely</b> easy on Linux. However, on Snow Leopard <a href="http://code.google.com/p/macfuse/">MacFUSE</a> broke. There&#8217;s a <a href="http://fuse4x.org/">few</a> <a href="https://github.com/osxfuse">new</a> libraries trying to fill the gaping hole but none of them support FTPFS (last I checked a month ago).</p>
<p>I still love my Mac but I&#8217;m under no illusions that if I want to do anything remotely off the beaten path its a nightmare. I find myself switching to Linux VM&#8217;s or Linux servers to do coding work now. Because more often than not &#8211; <b>Linux &#8220;just works&#8221;</b>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/CpLjnLR13YzM0O4gF-k5zX4E7cM/0/da"><img src="http://feedads.g.doubleclick.net/~a/CpLjnLR13YzM0O4gF-k5zX4E7cM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/CpLjnLR13YzM0O4gF-k5zX4E7cM/1/da"><img src="http://feedads.g.doubleclick.net/~a/CpLjnLR13YzM0O4gF-k5zX4E7cM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/Zf7SExH-HPU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/09/17/macs-make-terrible-development-platforms/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/09/17/macs-make-terrible-development-platforms/</feedburner:origLink></item>
		<item>
		<title>11 Ruby Ebooks – Free &amp; Legal</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/KFe2cKhy508/</link>
		<comments>http://www.straw-dogs.co.uk/01/05/11-ruby-ebooks-free-legal/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 14:11:50 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=627</guid>
		<description><![CDATA[A quick listing of 11 free Ruby e-books: The Book Of Ruby &#8211; a pretty comprehensive book that keeps getting updated. Mr. Neighborly&#8217;s Humble Little Ruby Book &#8211; this is a great little quirky book. Similar basic topics are covered as in PickAxe but the style is much more friendly and it really gets you [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-114" style="float: right;" title="ruby-400" src="http://www.straw-dogs.co.uk/wp-content/uploads/2008/04/ruby-400.png" alt="" width="127" height="127">A quick listing of 11 free Ruby e-books:</p>
<p><b><a href="http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby">The Book Of Ruby</a></b> &#8211; a pretty comprehensive book that keeps getting updated.</p>
<p><b><a href="http://www.infoq.com/minibooks/ruby">Mr. Neighborly&#8217;s Humble Little Ruby Book</a></b> &#8211; this is a great little quirky book. Similar basic topics are covered as in PickAxe but the style is much more friendly and it really gets you thinking.</p>
<p><b><a href="http://arachnoid.com/ruby/index.html">Encountering Ruby</a></b> &#8211; a very quick intro to the Ruby Language.</p>
<p><b><a href="http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html">The Poignant Guide</a></b> &#8211; Long gone is the original author but this archived copy is complete and one of the best introductions to the language.</p>
<p><b><a href="http://ruby.runpaint.org/">Read Ruby (1.9)</a></b> &#8211; a draft book written for the latest Ruby 1.9. Although its a draft its pretty comprehensive with chapters on just about every area. You&#8217;ll find this more useful than Pickaxe.</p>
<p><b><a href="http://www.ruby-doc.org/docs/ProgrammingRuby/html/index.html">Pickaxe</a></b> &#8211; The first edition was donated for free by the Pragmmatic Programmers. I&#8217;m not a big fan of this book but its still worth a read for the basics.</p>
<p><b><a href="http://www.techotopia.com/index.php/Ruby_Essentials">Ruby Essentials</a></b> &#8211; a great book covering all Ruby&#8217;s basics. Similar in style to PickAxe.</p>
<p><b><a href="http://www.rubyist.net/~slagell/ruby/">Ruby User Guide</a></b> &#8211; the rapidly aging user guide translated form the original Japanese edition.</p>
<p><b><a href="http://en.wikibooks.org/wiki/Ruby_programming_language">Wikibooks Ruby</a></b> &#8211; Not the best resource and lacking some key sections but still a useful one to add to the list.</p>
<h3>Project Specific</h3>
<p><b><a href="http://www.rorsecurity.info/the-book/">Ruby on Rails Security</a></b> &#8211; A Ruby on Rails book dedicated to keeping your RoR websites secure.</p>
<p><b><a href="http://sinatra-book.gittr.com/">Sinatra Book</a></b> &#8211; Sinatra is a lightweight web framework which has a huge following.</p>
<p><strong>Have I missed any?</strong></p>

<p><a href="http://feedads.g.doubleclick.net/~a/QNXCvLXDbGo1oTrzaEcE2p1lJco/0/da"><img src="http://feedads.g.doubleclick.net/~a/QNXCvLXDbGo1oTrzaEcE2p1lJco/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QNXCvLXDbGo1oTrzaEcE2p1lJco/1/da"><img src="http://feedads.g.doubleclick.net/~a/QNXCvLXDbGo1oTrzaEcE2p1lJco/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/KFe2cKhy508" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/01/05/11-ruby-ebooks-free-legal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/01/05/11-ruby-ebooks-free-legal/</feedburner:origLink></item>
		<item>
		<title>MIT OpenCourseware Computing Courses</title>
		<link>http://feedproxy.google.com/~r/StrawDogs/~3/kXSKx6G354U/</link>
		<comments>http://www.straw-dogs.co.uk/12/31/mit-opencourseware-computing-courses/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 20:55:18 +0000</pubDate>
		<dc:creator>KingOfThisHereBlog</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[courses]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[mit]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.straw-dogs.co.uk/?p=620</guid>
		<description><![CDATA[I&#8217;ve known about the free materials at MIT OpenCourseware for a while now but procrastination has always gotten the better of me. If you&#8217;ve not heard of it I&#8217;d give it a gander as there&#8217;s a lot of free learning material up there if you&#8217;re feeling adventurous. Apart from having a marathon horror film binge [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve known about the free materials at <a href="http://ocw.mit.edu/index.htm">MIT OpenCourseware</a> for a while now but procrastination has always gotten the better of me. If you&#8217;ve not heard of it I&#8217;d give it a gander as there&#8217;s a lot of free learning material up there if you&#8217;re feeling adventurous.</p>
<p>Apart from having a marathon horror film binge this holiday I&#8217;m also starting conquering that procrastination and doing a few computing courses. I&#8217;ve already got a degree in software engineering but it feels a long time ago now and it feels about time for a brush up.</p>
<p>Now OpenCourseware is great but most of the courses have huge gaps in the materials. For example many of those listed will have very abstract and cryptic lecture notes that don&#8217;t really make sense unless you were at the lecture or have the additional materials they provided. Case in point this image of lecture notes on &#8220;phonetics&#8221; in the &#8220;Introduction to Linguistics&#8221; course. This isn&#8217;t a quiz/test &#8211; these are notes.</p>
<p><img src="http://www.straw-dogs.co.uk/wp-content/uploads/2010/12/Screen-shot-2010-12-28-at-02.04.40.png" alt="Screen shot 2010-12-28 at 02.04.40.png" border="0" width="400" /></p>
<p>So having been scared away from linguistics I chose some courses that had more comprehensive notes and found the following gems:</p>
<ul>
<li><b><a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005">Structure and Interpretation of Computer Programs</a></b> &#8211; This seems to be an all-rounder for new students to the computing courses at MIT but what I really liked about it was their teaching of <b>Scheme</b>!</li>
<li><b><a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005">Introduction to Algorithms</a></b> &#8211; I hated algorithms at uni but I wanted to give it another go and this one seems pretty comprehensive.</li>
<li><b><a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-033-computer-system-engineering-spring-2009/">Computer System Engineering</a></b> &#8211; This is another course that seems to cover a hell of a lot of ground. From the description: engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; atomicity and coordination of parallel activities; recovery and reliability; privacy, security, and encryption&#8230;..etc.</li>
</ul>

<p><a href="http://feedads.g.doubleclick.net/~a/w9ovFc0vzwZaSheli8C4f8F2wk0/0/da"><img src="http://feedads.g.doubleclick.net/~a/w9ovFc0vzwZaSheli8C4f8F2wk0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/w9ovFc0vzwZaSheli8C4f8F2wk0/1/da"><img src="http://feedads.g.doubleclick.net/~a/w9ovFc0vzwZaSheli8C4f8F2wk0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/StrawDogs/~4/kXSKx6G354U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.straw-dogs.co.uk/12/31/mit-opencourseware-computing-courses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.straw-dogs.co.uk/12/31/mit-opencourseware-computing-courses/</feedburner:origLink></item>
	</channel>
</rss>

