<?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>4by12 &#187; Software</title>
	<atom:link href="http://4by12.com/blog/archives/category/software/feed" rel="self" type="application/rss+xml" />
	<link>http://4by12.com/blog</link>
	<description>by Guy Gur-Ari</description>
	<lastBuildDate>Sat, 21 Aug 2010 00:01:49 +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>How to push GMail, Twitter to your iPhone with Prowl</title>
		<link>http://4by12.com/blog/archives/159</link>
		<comments>http://4by12.com/blog/archives/159#comments</comments>
		<pubDate>Fri, 24 Jul 2009 23:26:42 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/?p=159</guid>
		<description><![CDATA[Officially, Prowl is described as a &#8216;Growl client for the iPhone&#8217;, which doesn&#8217;t mean much to most non-Mac users. Here&#8217;s an alternative description: Prowl lets you send push notifications to your iPhone. Unlike most programs that use push, Prowl doesn&#8217;t use it for a specific purpose; You can send any notification you like using their [...]]]></description>
			<content:encoded><![CDATA[<p>Officially, <a href="http://prowl.weks.net/">Prowl</a> is described as a &#8216;Growl client for the iPhone&#8217;, which doesn&#8217;t mean much to most non-Mac users. Here&#8217;s an alternative description: <em>Prowl lets you send push notifications to your iPhone</em>. Unlike most programs that use push, Prowl doesn&#8217;t use it for a specific purpose; You can send any notification you like using their <a href="http://prowl.weks.net/api.php">API</a>. I&#8217;m currently using Prowl and some Perl scripts to push new GMail messages and Twitter mentions. In this post I&#8217;ll explain how to create such a setup, but you&#8217;ll probably need some Perl skills to make it work with my scripts. It&#8217;s also easy to add other types of notifications.</p>
<p>I should mention first that there are simpler alternatives. You can use <a href="http://growlforwindows.com/gfw/">Growl</a> to push GMail, Twitter, and lots of other stuff (see their <a href="http://growlforwindows.com/gfw/apps.aspx">apps</a> page). The latest version supports <a href="http://lifehacker.com/5322057/gmail-growl-15-improves-push-notifications-for-iphone-with-prowl">true GMail push</a> using IMAP IDLE. YMMV but when I tried it Growl was unreliable and constantly lost notifications. There are also iPhone apps that push specific types of notifications; For instance <a href="http://boxcar.io/">Boxcar</a> pushes Twitter mentions and DMs. Those seem to me like a waste of money (with one small caveat &#8212; below) since Prowl can handle that and more. Also, when using Prowl it is your own computer that handles the notifications, so you don&#8217;t need to give anyone your GMail or Twitter password.</p>
<p>The only disadvantage to using Prowl is that the &#8216;Slide to View&#8217; function on the iPhone takes you to Prowl instead of to the relevant app. For example, with Boxcar, &#8216;Slide to View&#8217; takes you to your Twitter client. In my experience this is a non-issue.</p>
<p>Finally, the instructions and scripts below are provided AS IS and without any warranty. The scripts are licensed under the <a href="http://www.perl.com/pub/a/language/misc/Artistic.html">Perl license</a>.</p>
<p><H2>The Setup</H2><br />
Here is what you&#8217;ll need:</p>
<ol>
<li>An iPhone running 3.0 or higher with push notifications enabled</li>
<li>A computer that is connected to the internet 24/7, which will run the notification scripts</li>
<li>Perl installed on said computer (this is needed if you want to use my scripts)</li>
</ol>
<p>Install Prowl on your iPhone (it costs $3) and register an account. Login on <a href="http://prowl.weks.net/">their site</a> and go to the <a href="https://prowl.weks.net/settings.php">settings</a> page. Click &#8216;Generate API key&#8217; and save the API key to a file. This key is like a password you use for sending yourself notifications.</p>
<p>If you want push GMail, <a href="http://mail.google.com/support/bin/answer.py?hl=en&#038;answer=77695">enable IMAP access</a> to your GMail account.</p>
<p>Next, to run my scripts you&#8217;ll need some Perl modules that you can get from CPAN. They are:</p>
<ul>
<li><code>FindBin</code></li>
<li><code>List::Util</code></li>
<li><code>Data::Dumper</code></li>
<li><code>WebService::Prowl</code></li>
<li><code>Net::IMAP</code> (for GMail notifications)</li>
<li><code>Net::Twitter</code> (for Twitter notifications)</li>
</ul>
<p><a href='http://4by12.com/blog/wp-content/uploads/2009/07/prowl_scripts.zip'>Download the scripts</a> and insert your details:</p>
<ul>
<li>Place your Prowl API key that you created above in <code>prowl_apikey</code></li>
<li>Enter your GMail username and password in <code>push_gmail.pl</code></li>
<li>Enter your Twitter username and password in <code>push_twitter.pl</code></li>
</ul>
<p>Run <code>push_gmail.pl</code> to get GMail notifications. Run <code>push_twitter.pl</code> to get Twitter notifications. </p>
<p><H2>How It Works</H2><br />
Push GMail works using the IMAP IDLE command, which lets a client leave a connection open to the server, and when a new message comes in the server notifies the client. I used the <code>Net::IMAP</code> package, which sadly didn&#8217;t support IDLE. So I added this support in a very inelegant way &#8212; you can find it in <code>Client.pm</code>, which is a modified version of the original <code>Net/IMAP/Client.pm</code> the comes with <code>Net::IMAP</code>.</p>
<p>Push Twitter is more straightforward and works by simply polling Twitter every minute, using their API.</p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/159/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>It&#8217;s like deja vu all over again</title>
		<link>http://4by12.com/blog/archives/114</link>
		<comments>http://4by12.com/blog/archives/114#comments</comments>
		<pubDate>Thu, 20 Sep 2007 18:21:06 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/114</guid>
		<description><![CDATA[6th grader raises $6.5 million in round A funding. The bubble&#8217;s back, folks.]]></description>
			<content:encoded><![CDATA[<p>6th grader <a href="http://www.techcrunch.com/2007/09/19/playspan-takes-65m-series-a-founder-in-grade-6/">raises $6.5 million</a> in round A funding. The bubble&#8217;s back, folks.</p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/114/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>aMule Hacking</title>
		<link>http://4by12.com/blog/archives/102</link>
		<comments>http://4by12.com/blog/archives/102#comments</comments>
		<pubDate>Thu, 31 May 2007 00:19:59 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/102</guid>
		<description><![CDATA[aMule is an open source eMule-like client. It enforces a strict upload/download ratio at the client side: You set the maximum upload rate, and your down rate is limited accordingly. For example, if you allow aMule to use 5 kB/s for upload, your maximum download rate is 20 kB/s. 9 kB/s upload gives you 36 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amule.org">aMule</a> is an open source eMule-like client. It enforces a strict upload/download ratio at the client side: You set the maximum upload rate, and your down rate is limited accordingly. For example, if you allow aMule to use 5 kB/s for upload, your maximum download rate is 20 kB/s. 9 kB/s upload gives you 36 kB/s. 10 kB/s gives you unlimited download bandwidth.</p>
<p>My problem is (or rather, was <img src='http://4by12.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) this: 36 kB/s for download is very little compared with my ADSL line&#8217;s capacity of 180 kB/s. But to get the full speed I need to allow aMule to use 10 kB/s out of about 12 kB/s of upload capacity, which makes web surfing extremely painful (ping google.com gives > 2 secs). I don&#8217;t mind sharing my bandwidth, but this is too much.</p>
<p>I tried being a good citizen by doing some traffic shaping with <a href="http://lartc.org/wondershaper/">wondershaper</a> at my router, giving aMule traffic low priority compared with web surfing. This isn&#8217;t trivial, because aMule uses varying ports at both ends of a connection. I used <code>netstat --program</code> to find the peers and then lowered their priorities by host. This helped matters a bit (reducing latency to about half a second), but surfing still felt sluggish.</p>
<p><!-- more --></p>
<p>So I pulled out the big(ger) guns. I downloaded the aMule source code and found this nice little function in <code>Preferences.cpp</code>:</p>
<p><code>
<pre>
// Here we slightly limit the users' ability to be a bad citizen: for very low upload rates
// we force a low download rate, so as to discourage this type of leeching.
// We're Open Source, and whoever wants it can do his own mod to get around this, but the
// packaged product will try to enforce good behavior.
//
// Kry note: of course, any leecher mod will be banned asap.
void CPreferences::CheckUlDlRatio()
{
	// Backwards compatibility
	if ( s_maxupload == 0xFFFF )
		s_maxupload = UNLIMITED;

	// Backwards compatibility
	if ( s_maxdownload == 0xFFFF )
		s_maxdownload = UNLIMITED;

	if ( s_maxupload == UNLIMITED )
		return;

	// Enforce the limits
	if ( s_maxupload < 4  ) {
		if ( ( s_maxupload * 3 < s_maxdownload ) || ( s_maxdownload == 0 ) )
			s_maxdownload = s_maxupload * 3 ;
	} else if ( s_maxupload < 10  ) {
		if ( ( s_maxupload * 4 < s_maxdownload ) || ( s_maxdownload == 0 ) )
			s_maxdownload = s_maxupload * 4;
	}
}
</pre>
<p></code></p>
<p>So, commented out the 'Enforce the limits' section, compiled, and viola -- your basic leech mod. Now I was free to set my upload rate to 1 kB/s without affecting my download rate, but I didn't want to do that because:</p>
<ol>
<li>I didn't want to be a leech. As a citizen, I try to follow a set of rules that I believe is scalable. What I mean by 'scalable' is this: If everyone followed my set of rules, the community would prosper. My rules aren't necessarily the official ones. For example, I always vote at elections because I believe that if everyone voted it would be good for society. There's no rule that says you have to vote, but it's scalable so I do it. Anyway, being a leech on a P2P network is certainly not scalable.</li>
<li>aMule has a 'credit' system: When you are on someone's queue waiting to download a chunk, uploading him some data gives you credit. You use this credit to jump ahead in his queue. The queue wait is typically very long, so jumping ahead is significant. Hence your effective upload rate still affects your download rate, even with the mod.</li>
<li>Leeching clients are banned when they are discovered. As far as I can tell, this is not done automatically, but rather manually by people who notice skewed upload/download ratios.</li>
</ol>
<p>Fortunately, there is good middle ground: Setting my upload rate to 7 kB/s. At this rate web surfing is smooth, I still share most of my bandwidth, and chances of getting detected are slim to none. Best of all, this is scalable behavior: If everyone set their upload rate to 3 kB/s under their max rate, and got max down rate in return, things would be terrific.</p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/102/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fwd: Spread this number</title>
		<link>http://4by12.com/blog/archives/101</link>
		<comments>http://4by12.com/blog/archives/101#comments</comments>
		<pubDate>Tue, 01 May 2007 14:02:57 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/101</guid>
		<description><![CDATA[09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 This is the Processing Key that will allow viewing HD-DVD movies on Linux. What&#8217;s happening now with this key is similar to what happened a couple of years ago with the DVD key and DeCSS. For more, see here [...]]]></description>
			<content:encoded><![CDATA[<p><b>09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0</b></p>
<p>This is the Processing Key that will allow viewing HD-DVD movies on Linux. What&#8217;s happening now with this key is similar to what happened a couple of years ago with the DVD key and <a href="http://en.wikipedia.org/wiki/DeCSS">DeCSS</a>.</p>
<p>For more, see <a href="http://rudd-o.com/archives/2007/04/30/spread-this-number/">here</a> and <a href="http://forum.doom9.org/showthread.php?s=d9da68c11a88904641ba24b96ff95a12&#038;p=953036#post953036">here</a>. The second link is an account of how the key was recovered by the guy who did it. Spread the word!</p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/101/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recommended Todo web app: Vitalist</title>
		<link>http://4by12.com/blog/archives/90</link>
		<comments>http://4by12.com/blog/archives/90#comments</comments>
		<pubDate>Wed, 21 Feb 2007 02:44:04 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/90</guid>
		<description><![CDATA[I&#8217;ve been looking for a good application to manage todo lists &#8212; or Getting Things Done (GTD) as it&#8217;s called these days. I have been using Remember The Milk but found it annoying. Yesterday I discovered Vitalist and, well, I was blown away. It&#8217;s as though they had found a way to read my mind, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking for a good application to manage todo lists &#8212; or Getting Things Done (GTD) as it&#8217;s called these days. I have been using <a href="http://www.rememberthemilk.com/">Remember The Milk</a> but found it annoying. Yesterday I discovered <a href="http://www.vitalist.com/">Vitalist</a> and, well, I was blown away. It&#8217;s as though they had found a way to read my mind, searched through all the junk, collected any thought I ever had about The Perfect Todo Application, and then went ahead and materialized the whole thing in the form of a sleek web app, adding some brilliant ideas in the process. Brilliant.
<p>So what&#8217;s the big deal about a todo app? For starters, It has a simple and effective workflow concept behind it: New todos usually go into the Inbox. Adding a todo is quick and painless. It can be done using the app, or you can send in the item by email. So for example if you&#8217;re somewhere listening to the radio, and you hear a song you&#8217;d like to download later, you can use your phone to send in an item that says &#8216;download that song&#8217; &#8212; and it&#8217;ll show up in you Inbox. Neat, huh?
<p>The next step is to catalog the items in the Inbox. Here you have several options:</p>
<ul>
<li><strong>Contexts:</strong> Catalog items by the context they should be performed in. For example, create a @Phone context that includes all items that require making a phone call. Then, when you&#8217;re at a phone, you can quickly look these up.</li>
<li><strong>Projects:</strong> Just a simple grouping of items into projects. Contexts and Projects are orthogonal: Any item can belong to both a project and a context.</li>
<li><strong>Waiting:</strong> Items that you delegate to someone else go into the &#8216;Waiting&#8217; state until that person gets back to you.</li>
<li><strong>Someday:</strong> Stuff you want to do someday but not right now. Vitalist will remind you every once in a while about these.</li>
<li><strong>Reference:</strong> Little bits of information you want to store somewhere. For example, when I order heating gas for my apartment they give me a confirmation number for the order. I never know where to put it. Now I can just tap the number into my phone and email it to my Inbox. The next time I&#8217;m at a computer, I&#8217;ll move the item into the Reference list for keeps.
</ul>
<p>After GMail, this is definitely my &#8216;best web app around&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/90/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Composing Hebrew Messages in GMail</title>
		<link>http://4by12.com/blog/archives/77</link>
		<comments>http://4by12.com/blog/archives/77#comments</comments>
		<pubDate>Tue, 22 Aug 2006 00:35:37 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/77</guid>
		<description><![CDATA[Hebrew support in GMail is a bit problamatic. You can align the text to the right and start typing in hebrew, but when you enter numbers or punctuation marks the text gets flipped. For example, you can&#8217;t end a sentence with a period, because the period jumps to the beginning of the line&#8230; I found [...]]]></description>
			<content:encoded><![CDATA[<p>Hebrew support in GMail is a bit problamatic. You can align the text to the right and start typing in hebrew, but when you enter numbers or punctuation marks the text gets flipped. For example, you can&#8217;t end a sentence with a period, because the period jumps to the beginning of the line&#8230;</p>
<p>I found a simple workaround for this problem. First, align the text to the right as before. Then type in a hebrew word (e.g. you can enter your name if you use it as a signature). Press &#8216;Home&#8217;, and hit &#8216;Enter&#8217; several times. Move up to the empty lines above the text and start typing. Problem solved!</p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/77/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Google plugin for deskbar-applet</title>
		<link>http://4by12.com/blog/archives/74</link>
		<comments>http://4by12.com/blog/archives/74#comments</comments>
		<pubDate>Sat, 19 Aug 2006 13:46:48 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/74</guid>
		<description><![CDATA[I discovered Gnome&#8217;s deskbar-applet today. What a great tool! I wrote a Google plugin that allows you to search Google, use I&#8217;m Feeling Lucky, and get a word definition using &#8216;define:word&#8217;. You can download it here. To install, simply extract this file in your ~/.gnome2/deskbar-applet/handlers directory. To use the plugin, type the following in your [...]]]></description>
			<content:encoded><![CDATA[<p>I discovered Gnome&#8217;s <a href="http://raphael.slinckx.net/deskbar/">deskbar-applet</a> today. What a great tool! I wrote a Google plugin that allows you to search Google, use I&#8217;m Feeling Lucky, and get a word definition using &#8216;define:word&#8217;. You can download it <a href="http://4by12.com/blog/wp-content/uploads/2006/08/google_plugin.tar">here</a>.</p>
<p>To install, simply extract this file in your <code>~/.gnome2/deskbar-applet/handlers</code> directory.</p>
<p>To use the plugin, type the following in your deskbar:</p>
<ul>
<li><b>some search query</b> searches google for &#8216;some search query&#8217;</li>
<li><b>luck(y)  some site</b> jumps to &#8216;some site&#8217; using I&#8217;m Feeling Lucky</li>
<li><b>def(ine) ubuntu</b> takes you to the definition of &#8216;ubuntu&#8217;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/74/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ubuntu Installation Update</title>
		<link>http://4by12.com/blog/archives/60</link>
		<comments>http://4by12.com/blog/archives/60#comments</comments>
		<pubDate>Fri, 14 Jul 2006 12:12:06 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/60</guid>
		<description><![CDATA[I finished installing Ubuntu on my ThinkPad, and I&#8217;ve been working with it for a couple of weeks now. Here are my thoughts so far. The Bad My first installation attempt was a disaster. First thing I did was create restoration CDs for my ThinkPad, allowing me to completely restore my machine to its factory [...]]]></description>
			<content:encoded><![CDATA[<p>I finished installing Ubuntu on my ThinkPad, and I&#8217;ve been working with it for a couple of weeks now. Here are my thoughts so far.</p>
<p><span id="more-60"></span></p>
<h2>The Bad</h2>
<p>My first installation attempt was a disaster. First thing I did was create restoration CDs for my ThinkPad, allowing me to completely restore my machine to its factory configuration. Annoyingly, Lenovo don&#8217;t supply these CDs with the machine, and you have to burn them from a BIOS utility. All nine of them. The data itself is present in a separate partition on the hard drive, but that of course won&#8217;t help you if your hard drive dies.</p>
<p>Next, I downloaded the Ubuntu live installation CD and started installing. I was presented with an option to resize the existing NTFS partition &#8212; the first time I&#8217;ve seen such an option in a Linux installation. I was a bit suspicious, but I went ahead and used it to shrink the parition and make room for Ubuntu. After that, the machine failed to boot. Ubuntu had destroyed the machine&#8217;s partition table.</p>
<p>Looking up this problem on the Ubuntu forums, I found out that the Live CD had a buggy old version of the partitioner which caused this problem. I also learned that the Live CD install was new and not very stable. That&#8217;s not an excuse for destroying my hard drive, but whatever. Folks on the forums recommended using the Alternate Installation CD instead of the LiveCD.</p>
<p>Grudgingly, I restored my machine to its original state using the CDs I burned earlier, and started from scratch. This was a very major fuck up that caused me to rethink the whole Ubuntu thing. Eventually I decided to go ahead with it anyway, and luckily from this point on everything went smoothly.</p>
<h2>The Good</h2>
<p>I used my trusty PartitionMagic to shrink the NTFS partition and make room for Linux. I then installed Ubuntu using the Alternate Installer &#8212; that&#8217;s the previous, text-based, stable version of their <a href="http://mirror.cs.umn.edu/ubuntu-releases/6.06/">installation CD</a>.</p>
<p>The installation went off without a hitch. As is common with Linux installations, all the choices you need to make are concentrated at the beginning of the installation. So once you hit &#8216;Install&#8217; you can go away and come back to a fully installed and configured machine. Also, the entire installation required only one or too reboots. What is special about Ubuntu is that it doesn&#8217;t ask you what to install. It installs reasonable default packages, and you can install everything else later using Synaptic or apt-get. I like this approach.</p>
<p>Having done a couple of Linux laptop installations in the past, I was expecting a week or so of post-installation tweaking to get everything working. When the machine first booted, I was pleasently surprised to find almost everything working out of the box. This included wireless networking, sleep, hibernation, battery monitor, SpeedStep, subpixel rendering, and the mouse&#8217;s scroll wheel, not to mention graphics and USB support.</p>
<p>I almost fell off my chair when I found that all the ThinkPad-specific keys were also working: Volume control, brightness control, wireless on/off, hibernate button, and sleep button. Even the key that controls the keyboard light at the top of the monitor worked! To me, everything-just-works is the most important feature a distribution can have. Ubuntu has mastered this, and it positions Ubuntu as the most user-friendly distrib around.</p>
<h2>The Tweaking</h2>
<p>Ah, the tweaking. My favorite part of every Linux installation. First thing I did was to upgrade the kernel to a 686-compiled version (Ubuntu comes with a 386 version by default, which doesn&#8217;t use newer processor features). To get wireless to work after that, I also had to install the restricted-modules package, because the driver for my wireless card is closed-source. I&#8217;m used to compiling custom kernels for my Linux laptops to get everything to work. With Ubuntu, that wasn&#8217;t necessary.</p>
<p>Next, I installed Windows fonts (I love Tahoma) and added hebrew support. I used OpenOffice to edit Word documents and Excel spreadsheets, and view PowerPoint presentations. All these documents were in hebrew. Everything worked, except for some minor PowerPoint presentation glitches. I also used OpenOffice to convert an HTML document to PDF, which also worked. OpenOffice has made tremendous progress since the last time I tried it. I think a vast majority of users can already use it as an Office replacement.</p>
<p>I also installed the <a href="http://proggyfonts.com/index.php?menu=download">ProggySquare font</a> which I use for shell and programming. The Gnome terminal had trouble showing the TrueType version, so I switched to Konsole.</p>
<p>When I tried to print something, my printer was recognized correctly but didn&#8217;t work. This is a well known problem with Canon printers, which require special drivers to work. I just let it go for now, and printed from Windows.</p>
<p>Next thing I did was switch the graphics driver to the closed-source ATI FireGL driver to get 3D acceleration working. Replacing the driver also greatly improved 2D performance, so it&#8217;s highly recommended if you have a recent ATI card.</p>
<p>Finally, I did all the fun desktop tweaks: Keyboard shortcuts, adding panel applets, transparent panels, choosing a theme, and choosing a wallpaper. My desktop now looks like this:</p>
<table>
<tr>
<td>
<a href="/blog/wp-content/uploads/2006/07/ubuntu_desktop_empty_1024.png"><br />
<img src="/blog/wp-content/uploads/2006/07/ubuntu_desktop_empty_1024.thumbnail.png"><br />
</a>
</td>
<td width="10"></td>
<td>
<a href="/blog/wp-content/uploads/2006/07/ubuntu_desktop_full_1024.png"><br />
<img src="/blog/wp-content/uploads/2006/07/ubuntu_desktop_full_1024.thumbnail.png"><br />
</a>
</td>
</tr>
</table>
<p></p>
<h2>The Conclusion</h2>
<p>Since the installation, I&#8217;ve only booted back into Windows twice, to use a web site that only works in IE, and to print a document. I think I&#8217;ll install VMWare on Linux to get rid of the web dependency, and I&#8217;m hopeful I&#8217;ll never have to leave Linux again.</p>
<p>I&#8217;ve used a variety of Linux distributions over the years, including Red Hat, Fedora, Mandrake, PLD, and a few others. I&#8217;m incredibly impressed with Ubuntu. It&#8217;s by far the best distribution I&#8217;ve ever used. It&#8217;s so good, I&#8217;d feel comfortable recommending it to a non-Linux-savvy user as a complete desktop environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/60/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Trying out virtualization on my new ThinkPad</title>
		<link>http://4by12.com/blog/archives/53</link>
		<comments>http://4by12.com/blog/archives/53#comments</comments>
		<pubDate>Fri, 23 Jun 2006 22:32:31 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/53</guid>
		<description><![CDATA[Got my new T42p a couple of days ago. After playing around with it for a while (1600&#215;1200 resolution rocks!), now comes the fun part: Installing Linux. After checking up on what&#8217;s hot in the market I decided on Ubuntu. So now the question is what configuration to use: dual boot or virtualization? I&#8217;ve been [...]]]></description>
			<content:encoded><![CDATA[<p>Got my new T42p a couple of days ago. After playing around with it for a while (1600&#215;1200 resolution rocks!), now comes the fun part: Installing Linux. After checking up on <a href="http://www.google.com/trends?q=debian%2C+ubuntu%2C+fedora%2C+suse">what&#8217;s hot</a> in the market I decided on Ubuntu. So now the question is what configuration to use: dual boot or virtualization?</p>
<p><span id="more-53"></span></p>
<p>I&#8217;ve been playing the Windows/Linux dual-boot game for years now and I&#8217;ve grown rather tired of stuff like booting back into Windows every time I want to access my bank account (yes, they only support IE&#8230;). So this time I tried to install Linux in VMWare in Windows. This has many advantages. Obviously the ability to work simultaneously on both machines is great. But it also means dead-simple backup of the Linux machine, and the ability to migrate that same VM to new computers in the future without having to reinstall anything.</p>
<p>I therefore installed Ubuntu 6.06 as a VM in Windows. The installation was a breeze and everything worked out of the box. It was the easiest OS installation I ever performed (including Windows installations). But then I started working with the thing and it became obvious that it wouldn&#8217;t last: It just wasn&#8217;t fast enough. Everything from switching tabs in Firefox to hitting backspace in a terminal and watching it go felt sluggish. Installing VMWare Tools didn&#8217;t help either. So, sadly, I gave up on desktop virtualization for now. I guess it&#8217;s back to dual-boot land&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/53/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Friday Night Hacking</title>
		<link>http://4by12.com/blog/archives/41</link>
		<comments>http://4by12.com/blog/archives/41#comments</comments>
		<pubDate>Thu, 15 Jun 2006 10:14:59 +0000</pubDate>
		<dc:creator>Guy Gur Ari</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://4by12.com/blog/archives/41</guid>
		<description><![CDATA[(full story now posted&#8230; sorry about the partial post earlier) Last Friday I was over at my girlfriend&#8217;s parents&#8217; house for dinner. My girlfriend&#8217;s sister had been nagging me for a while to install something on her laptop, and this time I finally remembered to bring the installation disc. Now, my girlfriend&#8217;s family are religious [...]]]></description>
			<content:encoded><![CDATA[<p>(full story now posted&#8230; sorry about the partial post earlier)</p>
<p>Last Friday I was over at my girlfriend&#8217;s parents&#8217; house for dinner. My girlfriend&#8217;s sister had been nagging me for a while to install something on her laptop, and this time I finally remembered to bring the installation disc. Now, my girlfriend&#8217;s family are religious jews, which means there are a lot of things they are not allowed to do on Friday night. A partial list includes: Picking up a computer, turning a computer on, and installing software on a computer. According to these laws, she&#8217;s not even allowed to help me use the computer.</p>
<p>Okay, no problem. I got the laptop from her room and turned it on. The login screen showed up. I clicked her user and was asked for her password. Of course, I didn&#8217;t have her password, and she wasn&#8217;t allowed to give it to me.. Now we had a problem.</p>
<p>I didn&#8217;t want to leave the CD with her because I needed it for other purposes, so I had to get into that machine somehow. After several failed attempts at coercing the girl to give up her password, I realized I would just have to hack into it.</p>
<p><span id="more-41"></span></p>
<p>Luckily for me, hacking into a normal user&#8217;s Windows machine is usually pretty easy. I rebooted the machine, brought up the boot menu (&#8216;F8&#8242;), and chose <i>&#8216;Start in Safe Mode&#8217;</i>. The login screen came up and now there was an additional user on the list: Administrator. As I expected, no one had bothered to set the administrator password, and I managed to login by just clicking on it.</p>
<p>Once in, I reset her user&#8217;s password, rebooted into normal mode, and logged in with her user. I went back to the girl and told her what I did, and that if she wanted her old password to work she&#8217;d have to tell me what it was.. Finally she caved in and gave me her password, which I restored on her laptop. Isn&#8217;t it nice how a little technology can break down religious barriers? <img src='http://4by12.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://4by12.com/blog/archives/41/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
