<?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>Live &#38; Code &#187; rant</title>
	<atom:link href="http://www.liveandcode.com/tag/rant/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.liveandcode.com</link>
	<description>Enrico on programming, living, and everything in between</description>
	<lastBuildDate>Tue, 31 Aug 2010 22:18:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Why I curse the TTC</title>
		<link>http://www.liveandcode.com/2010/02/22/why-i-curse-the-ttc/</link>
		<comments>http://www.liveandcode.com/2010/02/22/why-i-curse-the-ttc/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 03:49:49 +0000</pubDate>
		<dc:creator>Enrico</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[commuting]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[TTC]]></category>

		<guid isPermaLink="false">http://www.liveandcode.com/?p=380</guid>
		<description><![CDATA[It&#8217;s a quarter past 9 in the evening. I&#8217;ve just arrived from my office, which I departed from at not too bad a time: 6 PM. My commute on the TTC subway and bus from work to home, which typically takes an hour and a half, has taken me three hours. For that amount of [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a quarter past 9 in the evening. I&#8217;ve just arrived from my office, which I departed from at not too bad a time: 6 PM. My commute on the TTC subway and bus from work to home, which typically takes an hour and a half, has taken me <em>three hours</em>. For that amount of transit time, I probably could&#8217;ve paid my good friend <a title="maplealmond on Twitter" href="http://twitter.com/maplealmond">maplealmond</a> a visit in Kitchener. But I don&#8217;t live in Kitchener. I live near Finch and Islington.</p>
<p>My subway ride was smooth as usual. Having left the office later, the subway cars were not as crowded and almost halfway through the trip I managed to snag a seat and sit comfortably for the rest of the stops leading up to the north end of the Yonge line, Finch station.</p>
<p>This is where the fun begins.</p>
<p><a href="http://www.liveandcode.com/wp-content/uploads/2010/02/68545497.jpg"><img class="aligncenter size-full wp-image-383" title="Crowd at Finch Station" src="http://www.liveandcode.com/wp-content/uploads/2010/02/68545497.jpg" alt="A large crowd waits for 36 buses at Finch Station on the Yonge line" width="600" height="400" /></a></p>
<p><span id="more-380"></span></p>
<p>I reach the top of the three sets of stairs that lead from the subway platform to the bus platform. Then I move through a set of double doors to my left leading outside. The picture above fails to show the full magnitude of the crowd of people that I had to squeeze through to get to the location from which I shot it. The two lines of people that usually form for the 36 Finch West buses both curve in the same direction and run parallel to each other on the other side of the platform.</p>
<p>At this point, I know I&#8217;m in for a long wait in the cold and I&#8217;m visibly anxious. I watch all the buses that pass by.</p>
<p>Out of service. Out of service. 60. Another 60. 36C (<em>to Jane, not far enough for me</em>). Another 36C. A 36D (<em>Weston, still not quite far enough</em>). Out of service sign that switches to DETOUR ON ROUTE (<em>wait, what?</em>). Another 60&#8230;</p>
<p>As the 36&#8242;s stop to pick up people, I start to move closer and closer to the front of the line. But my bus is still to arrive. About an hour passes. I make fists with my hands to keep them a bit warmer. My feet hurt I am shivering. I continue to wait, wondering if maybe there was a detour on Finch West causing delays in getting buses back to the station.</p>
<p>Finally, a 36B. This one will go all the way down to Humberwood, well past where I need to get off. I&#8217;m close to the back door and desperate to get out of the cold. As we file onto the bus, I feel an unpleasant sensation between my shoulder blades: I&#8217;m being pushed from behind. Another passenger turns to yell at the man behind her, demanding to know why he&#8217;s pushing her. Clearly, the people behind us are as desperate to get on the bus as we are and considerably less polite about it.</p>
<p>The bus is packed as tight as a sardine can. The driver tells riders at the front door that he has no more room and that another bus is behind him; he doesn&#8217;t know if it is another B. The back door is particularly crowded. The riders there exit the bus and re-enter, playing a precarious game of human Tetris (no, not <em><a title="YouTube - Human Tetris" href="http://www.youtube.com/watch?v=Ll2kajMH2u0">that</a></em> human Tetris) against the two bars that trigger the door to open at stops. The driver tells people to try entering via the back door. Each time he does, the passengers near the back door groan.</p>
<p>We pass by the major stops: Dufferin, Bathurst. The bus is still roughly as packed as it began.</p>
<p>At Keele, a person further to the front squeezes past me to get to the back door. As he passes by, the messenger bag that is hanging on my right shoulder is pushed behind me and lifted way up. Finally, he manages to break through and exit the bus.</p>
<p>Not until Weston do enough people clear out to give me some space to breathe. There are still no seats however; I&#8217;ve been standing the whole time.</p>
<p>Now I&#8217;m home, quite irritated and wondering why my usual commute had suddenly doubled in length. TTC&#8217;s <a title="Official TTC Tweets (TTCnotices)" href="http://twitter.com/TTCnotices">official Twitter feed for service notices</a> says nothing about it. It reminded me of a customer service tip that might be useful to the TTC: <em>perception matters</em>.</p>
<p>Even if you&#8217;re doing the best you can, if that&#8217;s not what it looks like to your customers, you have lost them. That&#8217;s why the photo of the sleeping fare collector caused such a stir in the community. We now pay more than ever for each ride, including Metropass holders, and we want to see the return on that investment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liveandcode.com/2010/02/22/why-i-curse-the-ttc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The True Spirit of Open Source</title>
		<link>http://www.liveandcode.com/2009/08/12/the-true-spirit-of-open-source/</link>
		<comments>http://www.liveandcode.com/2009/08/12/the-true-spirit-of-open-source/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 18:01:19 +0000</pubDate>
		<dc:creator>Enrico</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://www.liveandcode.com/?p=176</guid>
		<description><![CDATA[Very rarely does something completely disconnected from my day-to-day existence annoy me so much that I feel the need to say something, but this is something I feel very strongly about. Robert Fischer wrote a post titled “Dear User of My Open Source Project” and many of the proggit comments were quite vicious. I noticed that some of [...]]]></description>
			<content:encoded><![CDATA[<p>Very rarely does something completely disconnected from my day-to-day existence annoy me so much that I feel the need to say something, but this is something I feel very strongly about.</p>
<p>Robert Fischer wrote a post titled “<a href="http://enfranchisedmind.com/blog/posts/fyi-my-open-source-users/">Dear User of My Open Source Project</a>” and many of the <a href="http://www.reddit.com/r/programming/comments/97ewj/you_took_my_free_toilet_plunge_it_yourself/">proggit comments</a> were quite <a title="mojonixon comments on &quot;You ... took my free toilet. Plunge it yourself.&quot; - programming reddit" href="http://www.reddit.com/r/programming/comments/97ewj/you_took_my_free_toilet_plunge_it_yourself/c0bovba">vicious</a>. I noticed that some of these commentators seemed to have the same understanding of “open source”: that an open source project is a product, like any other product, that is simply distributed with its source code. Therefore, Robert is clearly creating and releasing “inferior” products and this behaviour should be punished. Being open source is not an excuse.</p>
<p>If this is your understanding of open source, <strong>you have missed the point. Entirely.</strong></p>
<p>Yes, there are open source projects out there that are very well-documented, quite reliable, and have attracted large communities of contributors that tirelessly work to improve every aspect of the software. But by my count, that seems to be the <em>exception</em> rather than the rule. Most open source projects out there are maintained by just one person who scratched an itch and thought the solution might be useful to others. Some of these projects might be lucky enough to have a few passionate contributors. These projects may have some rough edges in their code or their documentation, and perhaps the contributors might be too busy to put on the appropriate polish.</p>
<p>You might think that irresponsible, or even reprehensible. How dare this person release this garbage and pollute the open source community!</p>
<p>News flash: it is <em>these</em> people who drive open source software. Those large, reliable open source projects with all of the sparkle and polish? They became that way because large groups of people found them useful enough that they decided to invest their time in making the project even better. But in all cases, for open source software to progress, people have to be willing to give up their time and energy for free and with no expectation of reward. Open source is driven by pure <em>altruism</em>.</p>
<p>And yes, as a programmer using open source software, you may sometimes have to roll up your sleeves, get into the code, and make the changes that you need. Or perhaps you can find other ways to contribute. But complaining like a petulant child that it doesn’t serve your particular purpose is, frankly, incredibly rude considering that you were given this software entirely for free and given the power to inspect its source code and change it to suit your needs. If that is the way that you’re going to approach these projects, <em>go use something else</em>.</p>
<p>Like Christmas, <strong>the true spirit of open source is giving</strong>.</p>
<p>Edit: Some one on proggit <a title="inmaterian's comment on programming reddit" href="http://www.reddit.com/r/programming/comments/9abv6/the_true_spirit_of_open_source_or_free_toilets/c0bzxpi">rightly pointed out</a> that I’ve made a common mistake of grouping “open source” software with “free” software, a subtle distinction that <a title="Why Open Source Misses the Point - GNU Project - FSF" href="http://www.gnu.org/philosophy/open-source-misses-the-point.html">this page</a>from the <a title="Free Software Foundation" href="http://www.fsf.org/">FSF</a> makes very clear. However, I believe that Robert Fischer’s post and his complaints also referred more to “free” software than “open source” software. Consider, for example, that he prefers to use the <a href="http://sam.zoy.org/wtfpl/">WTFPL</a> for his projects, the spirit of which is “I’ve decided to put this out here, and you guys can do whatever you’d like with it.”</p>
<p>This is not to say that all “open source” software doesn’t adhere to the values of “free” software or that all “open source” software necessarily follows the values of “free” software.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liveandcode.com/2009/08/12/the-true-spirit-of-open-source/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>On &#8220;Magical&#8221; Ruby and Rails</title>
		<link>http://www.liveandcode.com/2009/07/23/on-magical-ruby-and-rails/</link>
		<comments>http://www.liveandcode.com/2009/07/23/on-magical-ruby-and-rails/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 12:00:39 +0000</pubDate>
		<dc:creator>Enrico</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.liveandcode.com/?p=160</guid>
		<description><![CDATA[Giles Bowkett wrote a post which, at the surface, seems to be a harsh criticism of the way that Pythonistas and, in particular, Django developers view Ruby and Rails but is actually much more general — he simply wanted to point out that the entire notion of calling language/framework features “magic” is silly for programmers, [...]]]></description>
			<content:encoded><![CDATA[<p>Giles Bowkett wrote a <a title="Giles Bowkett: Do You Believe in Magic?" href="http://gilesbowkett.blogspot.com/2009/07/do-you-believe-in-magic.html">post</a> which, at the surface, seems to be a harsh criticism of the way that Pythonistas and, in particular, Django developers view Ruby and Rails but is actually much more general — he simply wanted to point out that the entire notion of calling language/framework features “magic” is silly for programmers, who should prefer to be rational than superstitious.</p>
<p><span id="more-160"></span></p>
<p>It’s the same reason why scientists have by and large stopped explaining away the world with “God”. Saying that something in our natural world is “magic” or the work of a “God” is a cop-out. Why even study the world at all? We could just say it’s all hocus-pocus and never have to worry about it! The same idea can apply to programming as well.</p>
<p>I used to think that Ruby meta-programming was dark magic. I didn’t understand any of it and felt like I just couldn’t break through the barrier of clever one-liners and idioms, but I started to read the source code of Ruby projects that I used in my day job and side projects. I studied carefully, taking the time to understand even the most complex-looking constructions. I learned some things about Ruby that I didn’t know before and picked up some common patterns. Suddenly, Ruby made a lot more sense and my skill with it grew rapidly. Every day, I’m learning more and more.</p>
<p>So here’s the first part of the message that Giles was trying to deliver: <strong>Rails is not magic. It’s <em>Ruby</em>.</strong></p>
<p>(There are also some supplementary thoughts about how, from a Lisp lover’s point of view, languages like Ruby and Python, even with all of their meta-programming power, might be annoying because there is still a subtle distinction between data and code.)</p>
<p>This is not to say that Rails is perfect or pure. The Rails team is making great efforts to bring in ideas from Merb to reduce some of the pain that developers feel when trying to go against the grain of Rails’ conventions. I am very much looking forward to Rails 3 and I think many others in the Rails developer community are too. But it is not “dark magic”; it is a tapestry of abstractions (albeit sometimes of the <a title="The Law of Leaky Abstractions - Joel On Software" href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html">leaky</a> variety) that are weaved together with clever Ruby programming. Maybe some of the code is too clever for its own good but it is a potent demonstration of just how expressive Ruby can be. But the upshot of Rails’ design is that, inevitably, something in Rails won’t behave the way you might desire it to and you will find yourself forced to dive into the source code of the framework to find out why.</p>
<p>While I don’t disagree with the notion that Rails could be documented a lot better, I’ve <a href="http://twitter.com/enricobianco/status/2676399009">realized</a> that source code is the most reliable form of documentation. API docs and tutorials and blog posts may be out of date or missing details, but the source code is the current set of instructions that is being given to the computer. It is always the most comprehensive and accurate picture of how the system works at any given moment. And, more frequently than ever, we have the power to dive into the source of the software we use to enhance our understanding where its documentation fails.</p>
<p>Now here comes the second part of what Giles was trying to say:</p>
<p>If you love Ruby (as even some anti-Rails folks do) but you’re vexed by Ruby “magic”, <strong>read the source</strong>. Study it carefully, ask for help if you need to, and contribute your findings back to the community. But don’t just dismiss it as magic, or you might be missing out on a chance to learn some incredibly useful and powerful things.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liveandcode.com/2009/07/23/on-magical-ruby-and-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
