<?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>ArvinderKang.com &#187; Ubuntu</title>
	<atom:link href="http://arvinderkang.com/tag/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://arvinderkang.com</link>
	<description>The world is my backyard.</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:58:55 +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>Postfix install and Security talk</title>
		<link>http://arvinderkang.com/2009/03/07/postfix-install-and-security-talk/</link>
		<comments>http://arvinderkang.com/2009/03/07/postfix-install-and-security-talk/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 20:48:10 +0000</pubDate>
		<dc:creator>Arvinder Kang</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://arvinderkang.com/2009/03/07/postfix-install-and-security-talk/</guid>
		<description><![CDATA[Once your OS is grown enough to play (I mean installed), you have to sit down with it and do the SECURITY TALK. A little on the philosophical side of it, I think sense of security is just a fad &#8230; <a href="http://arvinderkang.com/2009/03/07/postfix-install-and-security-talk/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://arvinderkang.com/wp-content/uploads/2009/03/father-son.jpg" alt="Father son" /></p>

<p>Once your OS is grown enough to play (I mean installed), you have to sit down with it and do the <strong>SECURITY TALK</strong>.</p>

<p>A little on the philosophical side of it, I think sense of security is just a fad and a perception. You are secure when you start feeling it, or we can keep on going paranoid tweaking it deeper and deeper, there will always exploits to to be known, more tools to be learnt, more WMDs to be discovered!</p>

<p>Always have a second plan- backup your data.</p>

<p>Lets get back to our Linux Box.</p>

<p><span id="more-185"></span>
One of the requirements that our installs are going to have is a mail server. The linux box can email me complaining it has stomach ache, or any activity that goes on it.</p>

<p>TechRepublic has an <a href="http://articles.techrepublic.com.com/5100-10878_11-5034523.html" title="Build Your Skills: Open source e-mail server setup">old, yet not obsolete article</a> for recipe indegrients of a mail server. We just need postfix.</p>

<p>After <a href="http://articles.techrepublic.com.com/5100-10878_11-5034638.html" title="Configure IT Quick: Set up a basic e-mail server with Postfix as the MTA">some reading</a> about postfix, here is the route I took</p>

<pre><code>$ sudo aptitude install postfix
</code></pre>

<p>Now head over to the <a href="http://www.postfix.org/BASIC_CONFIGURATION_README.html" title="Postfix Basic Configuration">postfix configuration documentation</a> and tweak the settings. The only change I did was to make sure that my server is relaying mail originating only from local machine.</p>

<pre><code>$ sudo vi /etc/postfix/main.cf
    mynetworks = 127.0.0.0/8
</code></pre>

<p>Save and exit. Now reload the changes.</p>

<pre><code>$ postfix reload
</code></pre>

<p><a href="http://arvinderkang.com/2009/02/27/ubuntu-install-on-xserve-g5" title="Ubuntu Install on XServe G5 | ArvinderKang.com">Remember</a>? We had put up a firewall on this box. However, nmap scan from another machine shows port 25 open (smtp being used by postfix.) Lets add some rules. User <code>--dry-run</code> to test command syntax.</p>

<pre><code>sudo --dry-run ufw deny proto tcp from 0.0.0.0/0 to xx.xx.xx.xx port 25
sudo ufw deny proto tcp from 0.0.0.0/0 to xx.xx.xx.xx port 25
</code></pre>

<p>I think, I&#8217;m not as happy with ufw. Its good for starters, however it does not have advanced flexibility. I&#8217;m going to return to <a href="http://www.shorewall.net/" title="Shoreline Firewall">Shorewall</a> within coming weeks.</p>

<p>Although linux machines hardly have the risk of being affected by viruses, still they can be threatened by trojans, worms by a vital part replaced by a <a href="http://en.wikipedia.org/wiki/Rootkit" title="Rootkit - Wikipedia, the free encyclopedia">rootkit</a>.</p>

<p><a href="http://www.chkrootkit.org/" title="chkrootkit -- locally checks for signs of a rootkit">chkrootkit</a> is a tool to locally check for signs of a rootkit.</p>

<pre><code>$ sudo aptitude install chkrootkit  
$ sudo chkrootkit
</code></pre>

<p>The run returned system not infected. Next lets install <a href="http://www.rootkit.nl/projects/rootkit_hunter.html" title="Rootkit Hunter">Rootkit Hunter</a>. .Rootkit scanner is scanning tool to ensure you for about 99.9%* you&#8217;re clean of nasty tools. This tool scans for rootkits, backdoors and local exploits.</p>

<pre><code>$ sudo aptitude install rkhunter
$ sudo rkhunter -c --skip-keypress
</code></pre>

<p>We came out clean.</p>

<p>Next I should look at <a href="http://www.novell.com/linux/security/apparmor/" title="AppArmor Linux Application Security">AppArmour</a> and <a href="http://www.grsecurity.net/" title="grsecurity">GRSecurity</a>. However there are other things crying for my attention. I&#8217;ll come back to them later.</p>

<p>The security paranoids can look at <a href="http://sectools.org/index.html" title="Top 100 Network Security Tools">top 100 security tools</a>.</p>

<p>Photo credits: GD Senior @ Flickr</p>
]]></content:encoded>
			<wfw:commentRss>http://arvinderkang.com/2009/03/07/postfix-install-and-security-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thinking of PHP, Apache, Ruby, MySQL and Unicode</title>
		<link>http://arvinderkang.com/2009/02/27/thinking-of-php-apache-ruby-mysql-and-unicode/</link>
		<comments>http://arvinderkang.com/2009/02/27/thinking-of-php-apache-ruby-mysql-and-unicode/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 01:05:45 +0000</pubDate>
		<dc:creator>Arvinder Kang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://arvinderkang.com/2009/02/27/thinking-of-php-apache-ruby-mysql-and-unicode/</guid>
		<description><![CDATA[In the last post, I mentioned meeting my old pal Tux. Now back to coniguring the machine. I will be using the test server for Drupal websites, Rails projects and possibly Lift projects. Also, I love Punjabi and I love &#8230; <a href="http://arvinderkang.com/2009/02/27/thinking-of-php-apache-ruby-mysql-and-unicode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In the last post, I mentioned meeting my old pal Tux.</p>

<p>Now back to coniguring the machine. I will be using the test server for <a href="http://drupal.org/" title="drupal.org | Community plumbing">Drupal</a> websites, <a href="http://rubyonrails.org/" title="Ruby on Rails">Rails</a> projects and possibly <a href="http://liftweb.net/" title="Lift &ndash; The Simply Functional Web Framework &ndash; Home">Lift</a> projects. Also, I love <a href="http://en.wikipedia.org/wiki/Punjabi" title="Punjabi - Wikipedia, the free encyclopedia">Punjabi</a> and I love <a href="http://satluj.com/" title="Satluj | ਆਪਣੀ ਬੋਲੀ, ਆਪਣਾ ਮਾਣ!">Unicode</a>. So I&#8217;m going to try to make things as Unicode friendly as they can be.</p>

<p>Let&#8217;s start.</p>

<p><span id="more-179"></span>
People love internet, internet loves images, and images love <a href="http://www.boutell.com/gd/" title="GD Graphics Library">GD</a>.</p>

<pre><code>sudo aptitude search gd
</code></pre>

<p>It gave a numbers of options. I was confused between installing libgd or php5-gd. It turns out after giving</p>

<pre><code>sudo aptitude install php5-gd
</code></pre>

<p>all other gd libraries were installed as dependencies.</p>

<p>Restart Apache</p>

<pre><code>sudo /etc/init.d/apache2 restart
</code></pre>

<p><strong>Tuning PHP/MySQL</strong></p>

<pre><code>cd /etc/php5/apache2/
</code></pre>

<p>By default the installations comes without a php.ini file. Rename it to php.ini-orignal.</p>

<pre><code>sudo mv php.ini php.ini-orignal
</code></pre>

<p>Find recommended file</p>

<pre><code>locate php.ini-recommended
</code></pre>

<p>Found it in  /usr/share/doc/php5-common/examples/php.ini-recommended . Copy it to orignal php.ini localtion and rename it.</p>

<pre><code>sudo cp /usr/share/doc/php5-common/examples/php.ini-recommended ./php.ini
</code></pre>

<p>For drupal to work properly, change <code>session.save_handler = files</code> to <code>to session.save_handler = user</code></p>

<p>Restart Apache</p>

<pre><code>sudo /etc/init.d/apache2 restart
</code></pre>

<p><strong>MySQL fun</strong></p>

<p>Login into mysql as root. By default, root mysql account has no password</p>

<pre><code>mysql -u root
</code></pre>

<p>Lets change the mysql superuser using a hard to guess password.</p>

<pre><code>mysql&gt; SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$a-hard-to-guess-password-here$');
Query OK, 0 rows affected (0.00 sec)

mysql&gt; flush privileges;
Query OK, 0 rows affected (0.00 sec)
</code></pre>

<p>Now lets look around</p>

<pre><code>show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema | 
| mysql              | 
+--------------------+
2 rows in set (0.01 sec)

mysql&gt; use mysql;

mysql&gt; show tables;
</code></pre>

<p>There is a table name user. Aha! This is the one with mysql user list.</p>

<pre><code>mysql&gt; desc user;
</code></pre>

<p>Amoung other things, it did show me three important fields &#8211; Host, User, Password</p>

<p>Lets look into it. Lets filter our view to just these three.</p>

<pre><code>mysql&gt; select Host,User, Password from user;

+------------------------+------------------+---------------------------------
| Host                   | User             | Password                                  
+------------------------+------------------+---------------------------------
| localhost              | root             | *6F50F9BB1F8C9DD174B66A8087FD4FA 
| xxx.xxxx.olemiss.edu   | root             | *6F50F9BB1F8C9DD174B66A8087FD4FA 
| 127.0.0.1              | root             | *6F50F9BB1F8C9DD174B66A8087FD4FA 
| localhost              |                  |                                 
| xxx.xxxx.olemiss.edu   |                  |                                  
| localhost              | debian-sys-maint | *C9D6F50F9B087D174B66A8FD4B1F8FA
</code></pre>

<p>What? No information in user column? Then what kind of user is it. Aha! Thats guest user also called anonymous user. Means any user while on the server can log into localhost. Guests should be served Tea and biscuits, not a mysql database. So from now &#8220;O mighty guest, I banish thee from my MySQL database.&#8221;</p>

<pre><code>mysql&gt; delete from user where User='';
Query OK, 2 rows affected (0.00 sec)
</code></pre>

<p>Much better. Now I have only two users(4 listed, although root is the same user using different hostnames) and debian-sys-maint. I refuse to get super-paranoid about security for now and this is good enough. (Remeber I did set my root password while installation. If you have not, I strongly recommend you to.) Other thing you can do is make another user and grant limited privilges. Keep root user as a backup only with a super secure password, and do not list it in any application code.</p>

<p>Now lets identify mysql database encoding. Wrong encoding can mess up non-Roman characters.</p>

<pre><code>mysql&gt; status;
</code></pre>

<p>Shows latin1. We want default to utf8. There might be other recommended changes too. Like PHP uses php.ini for configurations, MySQL uses my.cnf. Exit mysql.</p>

<pre><code>mysql&gt; exit
locate my-large.cnf
cp /usr/share/doc/mysql-server-5.0/examples/my-large.cnf /etc/mysql/my.cnf
</code></pre>

<p>Adding following to my.cnf</p>

<pre><code>[client]
default-character-set = utf8

[mysqld]
skip-character-set-client-handshake
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8
</code></pre>

<p>Optimize my.cnf, but do not waste too much time here now. You can do it later. Keep moving. Save my.cnf and restart mysql.</p>

<p>Log back into mysql. Now lets create a test database and see how it goes.</p>

<pre><code>mysql&gt; create database dm_drupal;
Query OK, 1 row affected (0.00 sec)

mysql&gt; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON dm_drupal.* TO 'someuser'@'localhost' IDENTIFIED BY 'somepassword';
Query OK, 0 rows affected (0.00 sec)
</code></pre>

<p>Before leaving, you need to flush, otherwise changes will start stinking and fill the room.</p>

<pre><code>flush privileges;

status;
</code></pre>

<p>The encoding is happily unicode.</p>

<p>Now a little MySQL benchmarking (Never fully trust benchmarks though. Remember there are lies, damned lies and benchmarks:))
Output shows 10000000 simple additions can be performed in 0.71 seconds</p>

<pre><code>mysql&gt; SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
|                      0 | 
+------------------------+
1 row in set (0.08 sec)

mysql&gt; SELECT BENCHMARK(10000000,1+1);
+-------------------------+
| BENCHMARK(10000000,1+1) |
+-------------------------+
|                       0 | 
+-------------------------+
1 row in set (0.71 sec)
</code></pre>

<p>I&#8217;m not a testing-for-a-living-guy, however what this seems to me is that my database is pretty decently configured.</p>

<p><strong>Setting up Virtual Hosts</strong></p>

<p>I&#8217;m going to test the setting using a test installation of Drupal.  First I&#8217;m going to create a virtual named host for drupal.</p>

<pre><code>cd  /etc/apache2/sites-available/
cp default drupal
</code></pre>

<p>Modify drupal to point to where you want to keep your installs (by default in <code>/var/www/</code>). I am keeping my sites in my home directory in <code>~/Sites</code> directory</p>

<pre><code>NameVirtualHost *
&lt;VirtualHost *&gt;
    ServerAdmin me@myself.com 

    DocumentRoot /home/myname/Sites/drupal/ 

    &lt;Directory /home/myname/Sites/drupal&gt;
        Options Indexes FollowSymLinks MultiViews
        # AllowOverride None
        AllowOverride All 
        Order allow,deny
        allow from all
    &lt;/Directory&gt;

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

&lt;/VirtualHost&gt;
</code></pre>

<p>Save and restart Apache.</p>

<p>To start with, I&#8217;m going to test a Drupal installation. Download drupal in your Sites folder</p>

<pre><code>cd ~/Sites
wget http://ftp.drupal.org/files/projects/drupal-6.10.tar.gz
tar -xvzf drupal-6.10.tar.gz
mv drupal-6.10 to drupal
</code></pre>

<p>Copy settings.php in director</p>

<pre><code>cp drupal/sites/default.settings.php drupal/sites/settings.php

chmod a+w drupal/sites/settings.php
</code></pre>

<p>We are ready. Point your browser to <code>http://localhost</code> to start the install process.</p>

<p><strong>Enabling clean URLs</strong></p>

<p>Okay now I found out apache was missing the mod-rewrite, required for clean URL&#8217;s. To enable I typed</p>

<pre><code>sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload
apache2ctl -M
</code></pre>

<p>The last command showed mod-rewrite was enables, however the drupal installation still could not make clean URLs. After some Googling and reading the forums, I found the solution.</p>

<p>Disable the site by</p>

<pre><code>sudo a2dissite drupal 
vi /etc/apache2/sties-available/thedmonline
</code></pre>

<p>find AllowOverride and change  <code>AllowOverride None</code> to  <code>AllowOverride All</code> at four places.</p>

<p>Now enable site again
    sudo a2ensite drupal
    sudo /etc/init.d/apache2 restart</p>

<p>Turn on the clean URL option in drupal.</p>

<p><strong>Ruby 1.9</strong></p>

<p>Ruby1.9 is out of beta. So is the <a href="http://www.pragprog.com/titles/ruby3/programming-ruby-1-9" title="The Pragmatic Bookshelf | Programming Ruby 1.9">Pragmatic Ruby book</a> (kind of).</p>

<p>So I rolled my sleeves up (That was a lie my friend, added to give drama&#8230; I was wearing a half sleeve t-shirt).</p>

<pre><code>wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.gz
tar xvzf ruby-1.9.1-p0.tar.gz
cd ruby-1.9.1-p0
sudo aptitude install build-essential libssl-dev libreadline5-dev
./configure --prefix=/usr/local
make &amp;&amp; make install
</code></pre>

<p>Okay I rolled my (virtual)sleeves down. Lets test</p>

<pre><code>ruby -v # ruby 1.9.1p0 (2009-01-30 revision 21907) [powerpc64-linux]
</code></pre>

<p>The post has gone too long(Who cares, its for my own documentation). In the next post, we get to managing development using new content versioning kid around the block, <a href="http://git-scm.com/" title="Git - Fast Version Control System">git</a>. We&#8217;ll probe how to install multiple Drupal and Ruby sites using Git and how it can co-exist and interact with <a href="http://www.nongnu.org/cvs/" title="CVS - Open Source Version Control">CVS</a>/<a href="http://subversion.tigris.org/" title="subversion.tigris.org">SVN</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://arvinderkang.com/2009/02/27/thinking-of-php-apache-ruby-mysql-and-unicode/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ubuntu Install on XServe G5</title>
		<link>http://arvinderkang.com/2009/02/27/ubuntu-install-on-xserve-g5/</link>
		<comments>http://arvinderkang.com/2009/02/27/ubuntu-install-on-xserve-g5/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 23:35:15 +0000</pubDate>
		<dc:creator>Arvinder Kang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[8.04]]></category>
		<category><![CDATA[hardy]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[ppc]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[XServe]]></category>

		<guid isPermaLink="false">http://arvinderkang.com/2009/02/27/ubuntu-install-on-xserve-g5/</guid>
		<description><![CDATA[I hardly get enough time away from my Mac machines, so I planned to get back in touch with the penguin, and to build a test server. My plan was to install Xen, and then run a Linux instance on &#8230; <a href="http://arvinderkang.com/2009/02/27/ubuntu-install-on-xserve-g5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://arvinderkang.com/wp-content/uploads/2009/02/tux-by-daniele-florio.jpg" alt="Tux by Daniele Florio" /></p>

<p>I hardly get enough time away from my Mac machines, so I planned to get back in touch with the penguin, and to build a test server.</p>

<p>My plan was to install <a href="http://www.xen.org/" title="Welcome to xen.org, home of the Xen&reg; hypervisor, the powerful open source industry standard for virtualization.">Xen</a>, and then run a Linux instance on top of it. However the only spare machine was a G5 Xserve, I could not find any information of Xen on ppc processor.</p>

<p>Choosing Linux flavour for ppc wasn&#8217;t easy either. Most of the open source linux flavours have stopped supporting ppc, as it seems like a dying platform. Red Hat and Suse seem to support the architecture in their enterprise versions. I did&#8217;nt wanted to run <a href="http://www.yellowdoglinux.com/" title="Fixstars -- Linux for IBM, AMCC, and Freescale Power Architecture, including the PowerStation, PLAYSTATION, PS3, ZEGO BCU-100, QS22, Mercury Cell, and Apple PowerPC.">YDL</a>, the only flavour I could find truely supporting ppc architecture.</p>

<p>Finally, I decided to go ahead with the Ubuntu 8.04 Server community version for ppc.</p>

<p><span id="more-176"></span>
Once decided, the install was pretty much a breeze. Popped in the CD, and followed GUI to install. Chose ssh-server and Lamp Server during install option.</p>

<p>After the server restart, configured the network interface <code>/etc/network/interfaces</code> to provide a static address.Restarted the network.</p>

<pre><code>sudo /etc/init.d/networking restart
</code></pre>

<p>Update the installation. I prefer aptitude over apt-get.</p>

<pre><code>sudo aptitude update
sudo aptitude safe-upgrade
</code></pre>

<p>It is a good idea to synchronize the system clock with an NTP (network time protocol) server over the internet.</p>

<pre><code>sudo aptitude install ntp ntpdate
</code></pre>

<p>Check hostname and hostname -f return the same value. It matched our specified domain name in the file <code>/etc/hosts</code> to FQDN (Fully Qualified Domain Name) of the machine.</p>

<p><strong>Lets bring the walls up</strong></p>

<p>Ubuntu comes with a <a href="http://www.netfilter.org/projects/iptables/index.html" title="">iptables</a>-wrapper known as <a href="https://wiki.ubuntu.com/UbuntuFirewall">UFW</a>.</p>

<pre><code>sudo aptitude install ufw
</code></pre>

<p>Turn firewall on.</p>

<pre><code>sudo ufw enable
</code></pre>

<p>Turn firewall logging on.</p>

<pre><code>sudo ufw logging on
</code></pre>

<p>Display status of firewall and ports in the listening state</p>

<pre><code>sudo ufw status
</code></pre>

<p>I changed the rules so that the output of above command was</p>

<pre><code>Firewall loaded

To                         Action  From
--                         ------  ----
Anywhere                   ALLOW   xx.xx.xx.0/24
22:tcp                     ALLOW   xx.xx.xx.0/24
80:tcp                     ALLOW   Anywhere
80:udp                     ALLOW   Anywhere
</code></pre>

<p>Therefore only port 80 was open to outside world, for serving web pages, and ssh port for local network. The rest of the requests were dropped.</p>

<p>To make sure, use <a href="http://nmap.org/" title="Nmap - Free Security Scanner For Network Exploration &amp; Security Audits.">nmap</a> from another machine to do a port scan of your server. Only port 80 should be open from outside your lan.</p>

<p>As the result of port scan delivered expected results, I paused for a while and looked at my old friend, <a href="http://www.clubpenguin.com/" title="Club Penguin - Waddle around and meet new friends!">penguin</a>. I flashed-forward to years of our friendship, of growing up churrning big-a$$ web apps, becoming millionaires, and the taking a vacation to Mars, our children going to the same schools, and becoming friends and fighting amoung themselves all the time. Ah! It was such a touching moment! I&#8217;m glad on our renewed friendship.</p>

<p>Next time we&#8217;ll bring in PHP and MySQL, the <a href="http://www.apache.org/" title="Welcome! - The Apache Software Foundation">Indian tribe</a> some <a href="http://www.ruby-lang.org/en/" title="Ruby Programming Language">Jewels</a> and another <a href="http://en.wikipedia.org/wiki/FF_Scala" title="FF Scala - Wikipedia, the free encyclopedia">Dutch-looking</a>  <a href="http://www.scala-lang.org/" title="The Scala Programming Language">friend</a>.</p>

<p>This party is gonna rock!</p>

<p>Image credits: Tux by Daniele Florio shared under CC Share Alike licence</p>
]]></content:encoded>
			<wfw:commentRss>http://arvinderkang.com/2009/02/27/ubuntu-install-on-xserve-g5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->