<?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>shazow.net &#187; Linux</title>
	<atom:link href="http://shazow.net/blog/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://shazow.net/blog</link>
	<description>The cake is a lie</description>
	<lastBuildDate>Sun, 23 May 2010 22:13:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Don&#8217;t put all your Python eggs in one basket</title>
		<link>http://shazow.net/blog/2008/09/02/dont-put-all-your-python-eggs-in-one-basket/</link>
		<comments>http://shazow.net/blog/2008/09/02/dont-put-all-your-python-eggs-in-one-basket/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 05:21:01 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[easy_install]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/?p=129</guid>
		<description><![CDATA[

One of my favourite things about Python is how I can package up my module into an egg and easy_install it from a tarball, source export, or even an http link. All you need is setuptools and you&#8217;re off to the races, but there&#8217;s a few things to watch out for:


There&#8217;s no easy_uninstall. To remove [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="/temp/pythoneggs.png" title="Om nom nom" style="border: 0;" /></p>
<p>
One of my favourite things about Python is how I can package up my module into an egg and easy_install it from a tarball, source export, or even an http link. All you need is setuptools and you&#8217;re off to the races, but there&#8217;s a few things to watch out for:
</p>
<ul>
<li>There&#8217;s no easy_uninstall. To remove an egg, you would need to go into <code>/usr/lib/python2.5/site-packages/easy-install.pth</code>, manually prune out the offending line, and finally <code>rm -rf</code> the directory container of that egg. Oh, and carefully pick out the various binary scripts the egg installed into <code>/usr/bin</code>. Good luck.</li>
<li>What if you&#8217;re working on two projects that require different versions of a specific egg? Having to re-easy_install a different version of an egg every time you switch contexts is no fun.</li>
<li>Didn&#8217;t your mother teach you that it&#8217;s always better to not do things as root?</li>
</ul>
<p>
The solution is <a href="http://pypi.python.org/pypi/virtualenv">virtualenv</a>.
</p>
<p>
Virtualenv creates a local copy of everything you need for maintaining your eggs. The prescribed way to use it is to <code>virtualenv ~/python1</code> and then execute <code>~/python1/bin/activate</code> to enter into the environment of that local installation. From then on, anything you easy_install will go into your local installation instead of your root install. If zombies attack and you need to purge your site-packages of any disease, you can scrap the whole thing and start a-new &#8212; try to do that with your root install without losing hair.
</p>
<h2>The shazow method</h2>
<p>
The default use of virtualenv is great, but I like to take things a little further. I setup a permanent local install as soon as I log into a fresh Linux user. This way, I never have to install any eggs as root.
</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> easy_install virtualenv
virtualenv ~<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span></pre></div></div>

<p>
And add these two lines to your <code>~/.bashrc</code> or equivalent:</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PYTHONPATH</span>=~<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span><span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>python2.5:<span style="color: #007800;">$PYTHONPATH</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=~<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span><span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #007800;">$PATH</span></pre></div></div>

<p>
Now I never have to activate anything, I just happily use my local install without worrying about making a mess in my root. If I need to have different versions of things, I create a separate virtualenv install and activate that whenever I need it as mentioned before.
</p>
<p>
It&#8217;s nice to have your very own contained egg basket. This is especially useful for deploying production code on servers. Production environments often require very specific versions of packages, so deploying multiple Python apps on the same server is made much easier with virtualenv.
</p>
<p>
<strong>Update</strong>: Another good idea is to use <code>--no-site-packages</code> with virtualenv, this way the root PYTHONPATH can be omitted and all of your package dependencies will live entirely in the virtual environment. (Thanks, <a href="http://www.percious.com/">Chris</a>! Check out his <a href="http://showmedo.com/videos/video?name=2910000&amp;fromSeriesID=291">Virtualenv and PasteScript screencast</a> for more on the topic.)
</p>
<h2>IPython caveat!</h2>
<p>
For those of you who have discovered the incredible life-changing tool of never-ending code-gasms that is <a href="http://www.google.ca/search?q=IPython+is+awesome">IPython</a>, there&#8217;s one extra step you&#8217;ll need to perform: It turns out that IPython saves some hard-coded paths when it&#8217;s installed, so you&#8217;ll need to re-install it with your new virtualenv active before it will work properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2008/09/02/dont-put-all-your-python-eggs-in-one-basket/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Gentoo, Rockband, Code, and Music</title>
		<link>http://shazow.net/blog/2008/04/02/gentoo-rockband-code-and-music/</link>
		<comments>http://shazow.net/blog/2008/04/02/gentoo-rockband-code-and-music/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 03:32:24 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rockband]]></category>
		<category><![CDATA[workerpool]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/?p=120</guid>
		<description><![CDATA[

Today, you&#8217;ll get to hear about what I&#8217;ve been up to! This wont be on the exam.


After a year and a half stint with Ubuntu, I&#8217;m back to my true love Gentoo. That is, with a shiny matte new quad core beast of a machine.
Bought Rockband for my PS3 couple of weeks ago. Drums are [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center"><img src="http://shazow.net/blog/wp-content/uploads/2008/04/rockband.png" alt="" title="rockbanding" style="border: 0;"/></div>
<p>
Today, you&#8217;ll get to hear about what I&#8217;ve been up to! This wont be on the exam.
</p>
<ul>
<li>After a year and a half stint with <a href="http://www.ubuntu.com/">Ubuntu</a>, I&#8217;m back to my true love <a href="http://www.gentoo.org">Gentoo</a>. That is, with a <s>shiny</s> matte new quad core beast of a machine.</li>
<li>Bought <a href="http://en.wikipedia.org/wiki/Rock_Band_(video_game)">Rockband</a> for my PS3 couple of weeks ago. Drums are ridiculously hard. Been rocking out. Good fun is being had by all those who dare rock. Can&#8217;t wait for <a href="http://www.ps3fanboy.com/2008/03/31/rock-band-john-coultons-still-alive-on-psn-april-17/"><em>Still Alive</em> to be released</a> for free. It shall be a triumph!</li>
<li>What started out as <a href="http://shazow.net/blog/2008/01/24/code-storytelling/">pretty code</a> is now a bonafide open source Python module: <a href="http://code.google.com/p/workerpool/">workerpool</a>. People are using it. No, really.</li>
<li><a href="http://muxtape.com/">muxtape.com</a>: A super simple music sharing web app launched last week. Its been enriching my life &mdash; doing what <a href="http://www.pandora.com">Pandora</a> once did. Here&#8217;s <a href="http://shazow.muxtape.com/">my muxtape</a>. Be right back, <span title="Who is it? What? I don't know any Arayaa...?" style="border-bottom: 1px dashed #ccc;">there&#8217;s someone at the door</span>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2008/04/02/gentoo-rockband-code-and-music/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Installing Gentoo on Playstation 3</title>
		<link>http://shazow.net/blog/2008/01/20/installing-gentoo-on-playstation-3/</link>
		<comments>http://shazow.net/blog/2008/01/20/installing-gentoo-on-playstation-3/#comments</comments>
		<pubDate>Sun, 20 Jan 2008 18:49:01 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[mario]]></category>
		<category><![CDATA[mednafen]]></category>
		<category><![CDATA[nes]]></category>
		<category><![CDATA[ps3]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/?p=113</guid>
		<description><![CDATA[

Back up my precious save files: Formatted my external hard drive to FAT32, plugged it into the PS3, went to System Settings > Backup Utility, and hit OK.
While it&#8217;s backing up, I&#8217;m reading various Playstation 3 hacking forums, such as ps2dev.org where the first hack to utilize the locked-away GPU in Linux was created. Apparently [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://shazow.net/blog/wp-content/uploads/2008/01/marioleaf.jpg" width="255" height="253" alt="Mario!" class="imgaligncenter" style="border: 0;"/></p>
<ol>
<li>Back up my precious save files: Formatted my external hard drive to FAT32, plugged it into the PS3, went to <code>System Settings > Backup Utility</code>, and hit OK.</p>
<p>While it&#8217;s backing up, I&#8217;m reading various Playstation 3 hacking forums, such as <a href="http://forums.ps2dev.org/viewforum.php?f=25">ps2dev.org</a> where the <a href="http://forums.ps2dev.org/viewtopic.php?t=8364">first hack to utilize the locked-away GPU in Linux</a> was created. Apparently there&#8217;s also hope to <a href="http://forums.ps2dev.org/viewtopic.php?t=9238">use the Playstation Eye as a webcam</a>&#8230;</p>
</li>
<li>Burned the <a href="http://gentoo.osuosl.org/experimental/ppc64/livecd/">installcd ISO</a>, inserted it into my PS3, hit <code>Install other OS</code>, it did its magic, rebooted, and I was in the Gentoo install CD. Just like that.
</li>
<li>Plugged in a keyboard into the PS3, created a password, started sshd, and ssh&#8217;d in from my desktop and did the rest from the comfort of my fancy chair.
</li>
<li>Followed the <a href="http://overlays.gentoo.org/proj/cell/wiki/InstallGentooOnPS3">Gentoo Install guide</a> which took about 20 minutes of work, the rest was waiting for things to download, extract, and compile. Meanwhile, I ate pizza and watched the first couple of episodes of <a href="http://www.imdb.com/title/tt0805663/">Jericho</a> through my PC. Not too bad.
</li>
<li>Time for the real purpose of this ordeal: Setting up emulators. After much trial and error, I learned that <a href="http://mednafen.sourceforge.net/">Mednafen</a> is the cream of the crop. After more jumping through hoops, I created the perfect controller configuration that supports two PS3 Sixaxis controllers <s>plugged in USB</s> (bluetooth works too!). You can download it here: <a href="http://shazow.net/files/linux/mednafen.cfg">mednafen.cfg</a>. Shove it in your ~/.mednafen/ and you&#8217;ll be good to go &#8212; full screen and all.
<p>To make your own key bindings, read the nitty gritty <a href="http://forum.fobby.net/index.php?t=msg&#038;th=7&#038;goto=947">in this thread</a>.</p>
</li>
</ol>
<p style="text-align: center;"><a href="http://shazow.net/blog/wp-content/uploads/2008/01/ps3_mario.jpg" rel="lightbox[pics113]" title=""><img src="http://shazow.net/blog/wp-content/uploads/2008/01/ps3_mario.thumbnail.jpg" width="480" height="454" alt="PS3 Mario" class="imageframe imgaligncenter" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2008/01/20/installing-gentoo-on-playstation-3/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Linux Love, part 2</title>
		<link>http://shazow.net/blog/2007/10/11/linux-love-part-2/</link>
		<comments>http://shazow.net/blog/2007/10/11/linux-love-part-2/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 16:57:02 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/2007/10/11/linux-love-part-2/</guid>
		<description><![CDATA[.code_list code { border: 1px dotted #ddd; background: #eee; }
(Continuation of Why I Love Linux)

Need to make a quick ISO image of your CD or DVD?
dd if=/dev/cdrom of=/tmp/output.iso
Your minion co-worker is leaving the office for an alleged 5 minutes, you believe David he is a liar and need to prove him wrong? time read in [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">.code_list code { border: 1px dotted #ddd; background: #eee; }</style>
<p>(Continuation of <a href="http://shazow.net/blog/2006/07/15/why-i-love-linux/">Why I Love Linux</a>)</p>
<ol class="code_list">
<li>Need to make a quick ISO image of your CD or DVD?<br />
<code>dd if=/dev/cdrom of=/tmp/output.iso</code></li>
<li>Your <s>minion</s> co-worker is leaving the office for an alleged 5 minutes, you believe <s>David</s> he is a liar and need to prove him wrong? <code>time read</code> in your nearest terminal, then hit <code>ctrl+d</code> whenever he&#8217;s back, and tada, instant stopwatch.</li>
<li>Need to SSH but don&#8217;t feel like using ol&#8217; <code>cd</code> and </code>ls</code>? Fire up KDE's fish:// protocol and SSHing is the same as browsing your local files. Even edit things in-place.</li>
<li>You're doing something long and CPU-intensive in a terminal but you feel like playing a game that needs said CPU? <code>ctrl+z</code> to pause the process, do your thing, then <code>fg</code> to resume.</li>
<li>Need to make a quick backup of something and too lazy to type it twice? <code>cp foo{,.bak}</code> is equivalent to <code>cp foo foo.bak</code>. Great for those <code>/super/long_paths/that\ everyone.dreads.</code></li>
<li>Bonus Super-Useful Alias: <code>alias p='ps aux | grep -i'</code>. Need to check if your rogue daemon process is still alive? <code>p foo</code></li>
</ol>
<p>Much of this was written about a year ago and I never got around to posting it. Yay for agelessness of Linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2007/10/11/linux-love-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Filesystems and murder</title>
		<link>http://shazow.net/blog/2006/10/15/filesystems-and-murder/</link>
		<comments>http://shazow.net/blog/2006/10/15/filesystems-and-murder/#comments</comments>
		<pubDate>Mon, 16 Oct 2006 01:41:06 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/2006/10/15/filesystems-and-murder/</guid>
		<description><![CDATA[
Hans Reiser created the Reiser4 filesystem which is widely regarded as the best
performing and most extensible modern filesystem. After stumbling upon 
Hans&#8217; Tech Talk at Google, I was intrigued and
went off to read more about it. You can find plenty of information within the
various links in this post, so I&#8217;ll only go over what I [...]]]></description>
			<content:encoded><![CDATA[<p>
Hans Reiser created the Reiser4 filesystem which is widely regarded as the best<br />
performing and most extensible modern filesystem. After stumbling upon <a<br />
href="http://video.google.ca/videoplay?docid=6866770590245111825&#038;q=hans+Reiser"><br />
Hans&#8217; Tech Talk at Google</a>, I was intrigued and<br />
went off to read more about it. You can find plenty of information within the<br />
various links in this post, so I&#8217;ll only go over what I personally found<br />
interesting about Hans and his filesystem in approximately chronological<br />
order:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Hans_reiser">Hans Reiser</a> was born<br />
in California, dropped out of junior high school because he<br />
didn&#8217;t like the way things were taught, and got accepted into UC Berkeley at the<br />
age of 15. He earned a degree in Systematizing (combination of Math,<br />
Physics, etc).
</li>
<li>
<a href="http://www.idiom.com/~beverly/hans_resume.html">Worked in<br />
various tech jobs</a> to accumulate capital. Hired a small team of programmers<br />
from Russia (to avoid venture capital) and founded <a<br />
href="http://namesys.com/">Namesys</a> which is responsible for developing the<br />
Reiser filesystem.
</li>
<li>
<a href="http://en.wikipedia.org/wiki/ReiserFS">ReiserFS</a> (aka. Reiser3)<br />
was created from scratch by Hans Reiser. Made it into Linux Kernel at version<br />
2.4.1. Hans was dissatisfied with the performance in some key situations (many<br />
small randomly-sized files), so once ReiserFS was stable, he went on to create<br />
Reiser4.
</li>
<li>
This would be a good time to read the <a<br />
href="http://newkerneltrap.osuosl.org/node/5654">interview with Hans Reiser on<br />
KernelTrap</a>. In particular, the <em>Background</em> section where he talks<br />
about the thought process and attitude of being a systems architect, which I<br />
found very insightful. Some of the following points summarize the interview.
</li>
<li>
What happened to Reiser1 and Reiser2? Due to a versioning mistake early on,<br />
the major version number got bumped up to Reiser3, and they refused to go back.
</li>
<li>
Hans invented an improved data structure for Reiser4 called the <a<br />
href="http://en.wikipedia.org/wiki/Dancing_tree">Dancing Tree</a>. This tree<br />
structure has better performance than most modern databases (which use<br />
variations of B trees). This has something to do with the tree structure being<br />
more parallel to the way a hard drive stores and reads data.
</li>
<li>
Reiser4 code is incredibly modular, clean and well-documented. It boasts an<br />
impressive plugin architecture which supports significant expandability, like<br />
live compression, encryption, metadata, querying, etc. Also, Hans is very<br />
supportive of the open source development mantra and very encouraging of<br />
external contributions.
</li>
<li>
Through plugins, Reiser4 is able to match all the functionality that<br />
Microsoft promised with <a href="http://en.wikipedia.org/wiki/Winfs">WinFS</a><br />
and more.
</li>
<li>
One example of an impressive plugin is live compression: Due to advancement<br />
in CPUs, we are able to compress data faster than hard drives can write it, so<br />
we can compress things on the fly without performance penalty. In fact, we gain<br />
performance due to the decreased amount of data needed to write or read. More<br />
compression = less space = less blocks to read/write = faster operations. With<br />
average compression rate of 50%, we&#8217;d be able to achieve x2 read speeds (as<br />
well as 1/2 storage space required).
</li>
<li>
Reiser4&#8217;s storage is completely independent of the overlying structure (like<br />
the hierarchical structure that we&#8217;re used to). With plugins, Reiser4 can be<br />
extended to function like a relational database or any other metaphor we can<br />
produce.
</li>
<li>
Reiser4 is not yet part of the main Linux Kernel branch (but is available<br />
through Andrew Morton&#8217;s patchset). Next step is to get it stable enough to make<br />
it into the kernel and then start pumping out those awesome plugins.
</li>
<li>
Nancy Reiser, Hans&#8217; wife, disappeared on September 6th, 2006. <a<br />
href="http://news.google.com/news?q=hans+reiser">Hans was accused<br />
of murdering her</a>. Blood splatter was found. On October 16th, Hans was<br />
arrested. Body still missing. Alternate speculations include that she ran off to<br />
Russia (her place of birth). Great concern for the development of Reiser4<br />
ensues.
</li>
</ul>
<p>
It may seem selfish and barbaric to be concerned about the health of the<br />
development of a filesystem when a woman is murdered, but <a<br />
href="http://www.ninareiser.com/">many people do show compassion</a>.<br />
Similarly, many people believe that Reiser4 is <em>the</em> filesystem,<br />
and with the leaps of advancement it has over competing filesystems, these<br />
people fear for the project&#8217;s future. Slashdot discussion covered this topic on<br />
<a href="http://slashdot.org/search.pl?query=reiser">several occasions</a>.
</p>
<p>
My best wishes go out to Nancy Reiser and the Reiser4 project. May they both<br />
turn out to be alive and healthy.</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2006/10/15/filesystems-and-murder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Kernel 2.6.18 Changelog Statistics</title>
		<link>http://shazow.net/blog/2006/09/21/linux-kernel-2618-changelog-statistics/</link>
		<comments>http://shazow.net/blog/2006/09/21/linux-kernel-2618-changelog-statistics/#comments</comments>
		<pubDate>Thu, 21 Sep 2006 05:07:31 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/2006/09/21/linux-kernel-2618-changelog-statistics/</guid>
		<description><![CDATA[My ultra controversial rant about women in computer science is enduring writer&#8217;s block, so I&#8217;ll present some interesting statistics I found in the latest Linux Kernel 2.6.8 Changelog (3MB, be warned):

Total Patches:
$ grep -i "Author: " ChangeLog-2.6.18 &#124; wc -l
6325
Number of unique contributors
$ grep -i "Author: " ChangeLog-2.6.18 &#124; sort &#124; uniq &#124; wc -l
938
Number [...]]]></description>
			<content:encoded><![CDATA[<p>My ultra controversial rant about women in computer science is enduring writer&#8217;s block, so I&#8217;ll present some interesting statistics I found in the latest <a href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.18">Linux Kernel 2.6.8 Changelog</a> (3MB, be warned):</p>
<ul>
<li><strong>Total Patches:</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: " ChangeLog-2.6.18 | wc -l</code><br />
6325</li>
<li><strong>Number of unique contributors</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: " ChangeLog-2.6.18 | sort | uniq | wc -l</code><br />
938</li>
<li><strong>Number of patches by Andrew Morton (lead maintainer)</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: Andrew Morton" ChangeLog-2.6.18 | wc -l</code><br />
133</li>
<li><strong>Number of patches by Linus Torvalds (father of Linux)</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: Linus Torvalds" ChangeLog-2.6.18 | wc -l</code><br />
40</li>
<li><strong>Number of patches by people with IBM email addresses</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: .*@.*ibm.*\.com" ChangeLog-2.6.18 | wc -l</code><br />
387</li>
<li><strong>Number of unique IBM contributors</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: .*@.*ibm.*\.com" ChangeLog-2.6.18 | sort | uniq | wc -l</code><br />
81</li>
<li><strong>Number of patches by people with Google email addresses</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: .*@google.com" ChangeLog-2.6.18 | wc -l</code><br />
11</li>
<li><strong>Number of unique Google contributors</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: .*@.*google.com" ChangeLog-2.6.18 | sort | uniq | wc -l</code><br />
7</li>
<li><strong>Number of patches by people with GMail email addresses</strong><br />
<code style="color: #999999; font-size: 10px">$ grep -i "Author: .*@gmail.com" ChangeLog-2.6.18 | wc -l</code><br />
466</li>
</ul>
<p>Take these numbers with grains of salt. Some people use multiple email addresses, others use non-work email addesses &#8212; Andrew Morton is a Google employee for instance, but doesn&#8217;t use a @google.com address.</p>
<p>I was impressed at the quantity of contributions by IBM, they make up 6.1% of the total number of patches in this release. Good work!</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2006/09/21/linux-kernel-2618-changelog-statistics/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nothing is free</title>
		<link>http://shazow.net/blog/2006/08/06/nothing-is-free/</link>
		<comments>http://shazow.net/blog/2006/08/06/nothing-is-free/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 16:01:11 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/2006/08/06/nothing-is-free/</guid>
		<description><![CDATA[While reviewing the latest hubbub on GPLv3 (the open source license) I got hit with a strong wiff of nostalgia. Back in my Windows days, some 9-10 years ago &#8212; before I discovered the dark art of pirating software, I would browse download.com for freeware. My perception of freeware was that a very kind-hearted developer, [...]]]></description>
			<content:encoded><![CDATA[<p>While reviewing the <a href="http://developers.slashdot.org/developers/06/08/06/0110254.shtml">latest hubbub on GPLv3</a> (the open source license) I got hit with a strong wiff of nostalgia. Back in my Windows days, some 9-10 years ago &#8212; before I discovered the dark art of pirating software, I would browse <a href="http://www.download.com/">download.com</a> for freeware. My perception of freeware was that a very kind-hearted developer, surrounded by a throng of money-hungry leeches, stood up and exclaimed &#8220;I&#8217;m going to try make the world a better place.&#8221; On Windows, freeware was so rare, I&#8217;d be lucky to find anything at all that was worth using, but occasionally I did (like <a href="http://irfanview.com/">IrfanView</a>, one of the best image viewers I&#8217;ve ever used).</p>
<p>Fast-forward to today, into Linux-land, where 99% (literally) of my software is open source and free. The 1% being <a href="http://transgaming.org/">Cedega</a> (used for running, non-free, Windows games).</p>
<p>While reading the debate on GPLv3, I see that there really <em>is</em> a throng of kind-hearted developers amidst the throng of money-hungry leeches. Albeit a smaller throng, but a throng nonetheless. Enough people to make the free world turn.</p>
<p>Some things <em>are</em> free.</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2006/08/06/nothing-is-free/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why I love Linux</title>
		<link>http://shazow.net/blog/2006/07/15/why-i-love-linux/</link>
		<comments>http://shazow.net/blog/2006/07/15/why-i-love-linux/#comments</comments>
		<pubDate>Sun, 16 Jul 2006 04:07:16 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/2006/07/15/why-i-love-linux/</guid>
		<description><![CDATA[As a casual gamer, I game. I game with Cedega and I game with Wine. Occasionally, I&#8217;ll also enjoy a native game or two.
While enjoying an exuberant game of WarCraft III, I will occasionally have some downtime and use it to check my messages. This requires switching from the game to another application. In the [...]]]></description>
			<content:encoded><![CDATA[<p>As a casual gamer, I game. I game with <a href="http://www.transgaming.org/">Cedega</a> and I game with <a href="http://www.winehq.com/">Wine</a>. Occasionally, I&#8217;ll also enjoy a <a href="http://www.freeciv.org/">native game</a> or <a href="http://www.nethack.org/">two</a>.</p>
<p>While enjoying an exuberant game of WarCraft III, I will occasionally have some downtime and use it to check my messages. This requires switching from the game to another application. In the ol&#8217; Windows days, this would be done with an alt+tab. You&#8217;d hit the two magic keys, blink your eyes and hope that the screen changed states by the time your eyes opened. Of course, it never would. You&#8217;d always open your eyes with disappointment, and wait a couple more seconds until Windows woke up and decided to do something useful.</p>
<p>Although Linux is faster with the window switching to begin with, desktop switching is in a league of its own. When I was a young and unwise penguin, I scoffed at and avoided virtual desktops. Also, in the same streak of naivety, I always used to maximize my windows &#8212; but that&#8217;s a different rant altogether. But now, by allocating different purpose to each virtual desktop, my productivity flourishes. And I can save a few precious eye blinks &#8212; dry eyes be damned!</p>
<p>One for web browsing and chat, one for music and file browsing, one for development or gaming, and one to bind them all.</p>
<p>When I play some WarCraft III <a href="http://www.dota-allstars.com/">DOTA</a> on desktop #3 and I get pinched to death by the Sand King, I can spend the 40 seconds it takes to respawn productively by replying to pending messages on desktop #1. And quickly switch to desktop #2 to change songs before going back into battle.</p>
<p>There was a slight issue of Gaim opening its new message windows in whatever desktop was currently active, but that&#8217;s easily fixed with awesome desktop managers like <a href="http://www.kde.org/">KDE</a> by restricting the application&#8217;s window class to a specific desktop. Yay.</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2006/07/15/why-i-love-linux/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>The initiation</title>
		<link>http://shazow.net/blog/2006/06/25/the-initiation/</link>
		<comments>http://shazow.net/blog/2006/06/25/the-initiation/#comments</comments>
		<pubDate>Mon, 26 Jun 2006 01:36:17 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[ThinkPad X41]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/2006/06/25/the-initiation/</guid>
		<description><![CDATA[


(Elder laptop brother helping younger brother install Linux)
Isn&#8217;t it cute? Adorable! They&#8217;re getting along great. The youngin&#8217; is a total attention whore though.

Linux is all set, most things are working fabulously. Only quirks I need to work out:

Battery life: It&#8217;s down to 2 hours versus the ~2:50 hr I got on my initial windows trial. [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center"><a class="imagelink" title="Elder brother helping younger brother install Linux" href="http://shazow.net/blog/wp-content/uploads/2006/06/laptopbros.jpg"><br />
<img id="image39" alt="Elder brother helping younger brother install Linux" src="http://shazow.net/blog/wp-content/uploads/2006/06/laptopbros.thumbnail.jpg" /><br />
</a></div>
<p align="center"><em>(Elder laptop brother helping younger brother install Linux)</em></p>
<p>Isn&#8217;t it cute? Adorable! They&#8217;re getting along great. The youngin&#8217; is a total attention whore though.</p>
<p><span id="more-38"></span><br />
Linux is all set, most things are working fabulously. Only quirks I need to work out:</p>
<ol>
<li>Battery life: It&#8217;s down to 2 hours versus the ~2:50 hr I got on my initial windows trial. I believe the culprit is the hard drive not spinning down when not in use. Or maybe it is now, I didn&#8217;t benchmark recently.</li>
<li><strike>Suspend to ram: Hibernating to disk works, suspend to RAM doesn&#8217;t wake up properly (screen remains black).</strike> Fixed by adding <code>acpi_sleep=s3_bios</code> argument to kernel on boot.</li>
<li>Hard drive active protection: Hard drive motion sensors are working, I just didn&#8217;t hook it up to a head parking script. Do I need it? It&#8217;s damn annoying.</li>
<li>Finger print reader: The driver is there, I&#8217;m just not using it. I read that they&#8217;re not as reliable as one would like. Do I need it?</li>
</ol>
<p>Sadly now that I got everything I need for drawing working, I lost the desire to draw. :-(</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2006/06/25/the-initiation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.432 seconds -->
