<?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>UnixWars &#187; Linux</title>
	<atom:link href="http://unixwars.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://unixwars.com</link>
	<description>Taher Shihadeh's ragbag</description>
	<lastBuildDate>Sat, 03 Jul 2010 14:09:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>epi_sort.py: Filename comparison</title>
		<link>http://unixwars.com/2010/07/03/filename-comparator/</link>
		<comments>http://unixwars.com/2010/07/03/filename-comparator/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 14:08:57 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=667</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>As every Joe Six-pack would do, I usually write a lot of scripts to automate my tasks as much as I can. Most of them aren&#8217;t even worth mentioning, but nevertheless I have been meaning to start posting some of those. I&#8217;ve stumbled upon lots of jewels on the net that seemed worthless to their authors, so if any one gets to use one of mine I&#8217;ll be happy. You never know.</p>
<h4>The problem:</h4>
<p>I have a directory full of unclassified media files, some are duplicates, some aren&#8217;t, and each one follows a different naming convention.</p>
<p>I even try to classify them from time to time, so you can throw some directories into the pack. Sometimes, I even create two or three directories for the same group-series-category-whatever before I realize there is an existing one with a slightly different name. And frequently a lot of files remain unclassified, many of which could fit into one of the directories I mentioned.</p>
<p>Of course &#8230; whenever a new file arrives to my <a href="/tag/home-server/">home server</a>, it gets thrown into that very same directory, so Chaos keeps spreading, as it always does.</p>
<p>To clarify things, lets show an example:</p>
<pre>drwxrwxrwx 1 user user      4096 2010-07-03 11:50 01_Battlestar_Enterprise
drwxrwxrwx 1 user user      4096 2010-07-03 11:42 02_Startrek_Galactica
drwxrwxrwx 1 user user      4096 2010-07-03 11:50 03_battlestar.enterprise-season.1
-rwxrwxrwx 1 user user 220393472 2010-07-03 02:49 battlestar.enterprise.s1e01.avi
-rwxrwxrwx 1 user user 221227008 2010-07-03 02:50 Battlestar_Enterprise_1_22.mp4
-rwxrwxrwx 1 user user 195393472 2010-07-03 02:49 startrek.galactica.4x15.[ripper_22].mkv
</pre>
<p>As you can imagine, sorting things up can get really tedious, and there is no automatic way of doing it that I know of.</p>
<p>I had some time this morning and got fed up with it. Every little piece of help is more than welcome, and here is where Python comes to the rescue.</p>
<h4>The solution:</h4>
<p>There are dozens of ways to do this, but I ended up coding a quick hack to help me sort things out.<br />
It just compares the names of files and directories, and estimates the similarities. Anything above a 50% match is usually correctly estimated.</p>
<pre class="prettyprint">#!/usr/bin/env python
# -*- coding: utf-8 -*-

# (C) 2010, Taher Shihadeh
# Licensed: GPL v2

"""
The script works based only on names of files and directories in a
non-recursive manner.

It takes a path as parameter and tries to determine if the names of
the contents look alike.

It removes separator characters, numbers and file extensions prior to
the comparison.
"""

import os
import sys
import string
from operator import itemgetter

FAST = False # Change this to skip file-to-file comparisons
SEP  = '_-+~.·:;·()[]¡!¿?<>'

def main (path):
    lst1    = os.listdir (path)
    lst2    = lst1
    len_lst = len(lst1)
    count   = 0.0
    results = []

    for x in lst1:
        for y in lst2:
            if x==y:
                continue
            x_dir = os.path.isdir(x)
            y_dir = os.path.isdir(y)

            if FAST and not (x_dir or y_dir):
                continue

            result = {'A': (x, x_dir), 'B': (y, y_dir)}

            str1, str2 = x, y
            if not x_dir:
                str1,_ = os.path.splitext (x)
            if not y_dir:
                str2,_ = os.path.splitext (y)

            result['factor'] = compare (str1,str2)
            results.append(result)

        lst2.remove(x)
        count += 1
        print >> sys.stderr, '%.2f%% done' %((count / len_lst)*200)

    show(results)

def split (str1):
    trans = string.maketrans(SEP, ' '*len(SEP))
    return str1.translate(trans).split()

def clean (lst):
    assert type(lst) == list
    return filter(lambda x: not x.isdigit(), lst)

def compare (str1, str2):
    """Return similarity factor as percentage"""
    aux1 = clean (split (str1.lower()))
    aux2 = clean (split (str2.lower()))

    set_or  = set(aux1) | set(aux2)
    set_and = set(aux1) &amp; set(aux2)

    return (float(len(set_and)) / float(len(set_or)))*100

def show (results):
    """Show most similar last"""
    for x in sorted(results, key=itemgetter('factor')):
        a,b = x['A'],x['B']
        if not b[1] and a[1]:
            a,b = b,a
        print '%.2f \t %s \t --> %s' %(x['factor'], a[0], b[0])

if __name__=='__main__':
    try:
        path = sys.argv[1]
    except IndexError:
        path = os.getcwd()

    main (path)
</pre>
<p>I don&#8217;t think any one is going to use it, but what the hell. It&#8217;s a big Internet ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2010/07/03/filename-comparator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cherokee Summit 2010: Mission accomplished</title>
		<link>http://unixwars.com/2010/05/10/cherokee-summit-2010-mission-accomplished/</link>
		<comments>http://unixwars.com/2010/05/10/cherokee-summit-2010-mission-accomplished/#comments</comments>
		<pubDate>Mon, 10 May 2010 21:36:58 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=648</guid>
		<description><![CDATA[We&#8217;ve been working in frenzy since last week. Not that we usually don&#8217;t, but this was something more. The Cherokee Summit just took place last weekend, and among other things we released our latest and greatest Cherokee v1.0, we defined the roadmap for v2.0, we shared knowledge with some of the most impressive experts in [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been working in frenzy since last week. Not that we usually don&#8217;t, but this was something more. The <a href="http://summit.cherokee-project.com/">Cherokee Summit</a> just took place last weekend, and among other things we <a href="http://summit.cherokee-project.com/the-cherokee-web-server-release-1-0-is-officially-out/">released our latest and greatest Cherokee v1.0</a>, we defined the roadmap for v2.0, we shared knowledge with some of the most impressive experts in High Availability I&#8217;ve ever met, and above all, we had the chance to meet face to face. Our Community is, without a doubt, stronger than ever. The <a href="http://www.alobbs.com/1385/Cherokee_Summit_Big_Success.html">summit has been a great success</a>. We had people attending from all over the World, all levels of expertise, and even from all ages. On this photo you can see <a href="http://alobbs.com">Alvaro</a> and the youngest attendee.</p>
<p style="text-align: center;"><a href="http://gallery.cherokee-project.com/"><img class="aligncenter size-full wp-image-651" title="All ages" src="http://unixwars.com/wp-content/2010/05/MG_6377.jpg" alt="MG 6377 Cherokee Summit 2010: Mission accomplished" width="614" height="410" /></a></p>
<p>Everything was recorded, so we will upload the slides and videos of all our sessions really soon. For now, only the <a href="http://gallery.cherokee-project.com/">photo gallery</a> is available. Take a look at the <a href="http://gallery.cherokee-project.com/index.php/Mugshots-2010-B-W">mugshots</a>.</p>
<p style="text-align: center;"><a href="http://gallery.cherokee-project.com/"><img class="aligncenter size-full wp-image-650" title="Jump" src="http://unixwars.com/wp-content/2010/05/MG_6058.jpg" alt="MG 6058 Cherokee Summit 2010: Mission accomplished" width="614" height="410" /></a></p>
<p style="text-align: left;">I&#8217;m really glad we could make this Summit. It surpased all my expectations. By far. It was an unbelievable experience, and we had lots of fun. Take a look at our family photo. If you want to know which of the guys above is me, here&#8217;s a clue: <em>&#8220;In brightest day&#8230;&#8221;</em>.</p>
<p style="text-align: left;">I&#8217;m really looking forward to the next summit. Cherokee Summit 2010 was awesome. I&#8217;m sure the next one will be even better.</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2010/05/10/cherokee-summit-2010-mission-accomplished/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Org-mode to the rescue</title>
		<link>http://unixwars.com/2010/02/28/org-mode-to-the-rescue/</link>
		<comments>http://unixwars.com/2010/02/28/org-mode-to-the-rescue/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 18:00:47 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=608</guid>
		<description><![CDATA[It&#8217;s been a while since I started using Org-mode. Like four months or so. When I discovered it I knew I would blog about it sooner or later, but I didn&#8217;t want to rush things. Before writing about it,  I wanted to give it a run to see if it could be of any help [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I started using <a href="http://orgmode.org/">Org-mode</a>. Like four months or so. When I discovered it I knew I would blog about it sooner or later, but I didn&#8217;t want to rush things.</p>
<p>Before writing about it,  I wanted to give it a run to see if it could be of any help to a rather absentminded guy. I&#8217;m sure many long time Emacs users out there are forgetful at times. I know I am. It seems to fit the profile somehow ;-)</p>
<p>Since I couldn&#8217;t rely too much on my memory for these things, I had to find a task management solution. That&#8217;s where Org-mode comes in.</p>
<p>If you are like me, maybe Org-mode can save the day. I seem to be able to organize my time a lot better since I started using it.</p>
<p>Org-mode is a mode for keeping notes,  ToDo lists, and project planning in <a href="http://www.gnu.org/software/emacs/">Emacs</a>, with a fast and effective plain-text system. It seems awfully spartan  and simplistic at first, but it is nothing less than magnificent in features. Being a part of Emacs is also a plus for me, since it is the first thing I install on any platform I happen to be working. Besides the OS independence, not being tied at all to a particular application does get extra points. Formats may vary over time, but plain text files are here to stay.</p>
<p>These days I&#8217;m using it as an outliner, as a note-taking application, to manage my accounting and, most importantly, as a <a href="http://members.optusnet.com.au/~charles57/GTD/gtd_workflow.html">Getting Things Done (GTD)</a> tool. I don&#8217;t quite yet use it for Web and PDF <a href="http://orgmode.org/">Authoring</a>, but it never hurts to know I could if I wanted.</p>
<p>And for now the deal is working pretty well for me. It is very flexible, has lots of other uses, and also a very rich and knowledgable community, so I totally recommend you take a look at some of the links of this post. It will be worth your while.</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2010/02/28/org-mode-to-the-rescue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s official: Cherokee Summit 2010 is on its way!</title>
		<link>http://unixwars.com/2010/01/11/its-official-cherokee-summit-2010-is-on-its-way/</link>
		<comments>http://unixwars.com/2010/01/11/its-official-cherokee-summit-2010-is-on-its-way/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 13:42:37 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Cherokee]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[high performance]]></category>
		<category><![CDATA[Octality]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=609</guid>
		<description><![CDATA[It is no secret that our Cherokee-Project Community has been growing steadily and relentlessly over the last couple of years. In fact, it has been doing so well that we&#8217;ve reached a point where holding a conference about the project actually makes a lot of sense. A lot of people have been asking about this, [...]]]></description>
			<content:encoded><![CDATA[<p>It is no secret that our <a href="http://www.cherokee-project.com/">Cherokee-Project Community</a> has been growing steadily and relentlessly over the last couple of years. In fact, it has been doing so well that we&#8217;ve reached a point where holding a conference about the project actually makes a lot of sense. A lot of people have been asking about this, and after a lot of work we are ready to announce our first Summit, to be held on May 7th-8-th.</p>
<p><img class="aligncenter" src="http://www.alobbs.com/images/cherokee-summit-2001-img1.png" alt="cherokee summit 2001 img1 Its official: Cherokee Summit 2010 is on its way!" width="454" height="128" title="Its official: Cherokee Summit 2010 is on its way!" /></p>
<p>You can read <a href="http://www.alobbs.com/1379/Cherokee_Summit_2010.html">Alvaro&#8217;s announcement</a>, or you can check out the <a href="http://summit.cherokee-project.com/">Summit web-site</a>.</p>
<p>Cherokee will be an important topic, but it won&#8217;t be the only one. Those will be a couple of days fully dedicated to High Performance and Scalable Web topics, so there&#8217;s room for everyone to join in.  We are commited to reaching the 1.0 milestone of Cherokee by then, so we will also have a party to celebrate it.</p>
<p>It&#8217;s going to be fun. I&#8217;ll be a speaker at the summit and I&#8217;m really looking forward to personally meeting many of the members of the project. Thanks to our sponsors we&#8217;ve managed to make the event completely free, so don&#8217;t forget to <a href="http://summit.cherokee-project.com/register/">register</a> while we still have free spots!</p>
<p><strong>UPDATE</strong>: We&#8217;ve written a <a href="http://www.alobbs.com/downloads/Cherokee Summit 2010.pdf">little brochure</a> (~100KB) ﻿that can be used to  let your colleagues know about the summit. Do not hesitate to send it to any coworker or friend who would be interested in attending a High Performance and Scalable Web event.﻿﻿﻿</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2010/01/11/its-official-cherokee-summit-2010-is-on-its-way/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Our first Cherokee screencast</title>
		<link>http://unixwars.com/2009/11/19/our-first-cherokee-screencast/</link>
		<comments>http://unixwars.com/2009/11/19/our-first-cherokee-screencast/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 11:40:10 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Cherokee]]></category>
		<category><![CDATA[high performance]]></category>
		<category><![CDATA[Octality]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=567</guid>
		<description><![CDATA[Alvaro an I have been putting together a screen-cast to show an overview of Cherokee-Admin&#8217;s capabilities. It is just an introduction, but I think this kind of thing is really helpful to spread out the word about Cherokee&#8217;s multiple merits. We wanted to brag about our little baby. After all, not every serious web server [...]]]></description>
			<content:encoded><![CDATA[<p>Alvaro an I have been putting together a screen-cast to show an overview of Cherokee-Admin&#8217;s capabilities. It is just an introduction, but I think this kind of thing is really helpful to spread out the word about Cherokee&#8217;s multiple merits.</p>
<p>We wanted to brag about our little baby. After all, not every serious web server out there has a killer interface to configure it. Take a look at our <a href="http://www.vimeo.com/7683565">Cherokee Web Server introductory screen-cast</a>.</p>
<p style="text-align: center;">
<object width="400" height="340"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7683565&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7683565&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="340"></embed></object></p>
<p>You might want to see it at full screen for readability.</p>
<p>It&#8217;s just one of many to come. We&#8217;ve got some more planned, so I&#8217;ll let you know when they&#8217;re ready.</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2009/11/19/our-first-cherokee-screencast/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cherokee 0.99.25 party kit!</title>
		<link>http://unixwars.com/2009/10/26/cherokee-0-99-25-party-kit/</link>
		<comments>http://unixwars.com/2009/10/26/cherokee-0-99-25-party-kit/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 17:17:02 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Cherokee]]></category>
		<category><![CDATA[high performance]]></category>
		<category><![CDATA[Octality]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=515</guid>
		<description><![CDATA[No, don&#8217;t worry. I&#8217;m not going to play with you and expect you to work for free as my personal advertisement company. I have to recognize that I&#8217;m astonished that Microsoft got away with it with all it&#8217;s Windows 7 craze, which once again proves that there are lots of guys out there that outsmart [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">No, don&#8217;t worry. I&#8217;m not going to play with you and expect you to work for free as my personal advertisement company. I have to recognize that I&#8217;m astonished that <a title="The perfect scam" href="http://www.houseparty.com/windows7">Microsoft got away with it with all it&#8217;s Windows 7 craze</a>, which once again proves that there are lots of guys out there that outsmart me by far. I&#8217;m talking about their PR guys, mind you.</p>
<p style="text-align: left;">If you expect a party kit from us you&#8217;ve come to the wrong place. We actually believe our software is so good that it is a prize for its own merits. It has been a while since I last announced one of our releases, mainly because I didn&#8217;t have much to add besides what was told on the official announcements. As always, a lot of development effort is being invested in our flag product, and this is something that doesn&#8217;t go by unnoticed. This weekend we decided to release <a href="http://lists.octality.com/pipermail/cherokee/2009-October/011619.html">Cherokee 0.99.25.</a> As you can tell by the .25 part, lots of fixes and enhancements have been added steadily release after release.</p>
<p style="text-align: center;"><a title="Cherokee Web Server" href="http://www.cherokee-project.com/"><img class="aligncenter" src="http://unixwars.com/wp-content/2008/03/cherokee.gif" alt="Cherokee Webserver" title="Cherokee 0.99.25 party kit!" /></a></p>
<p>I hope you enjoy it. We&#8217;ve tried to update all the documentation for this release, and we&#8217;ve automated most of the recipes in our cookbook by adding lots and lots of configuration Wizards, so hopefully you&#8217;ll be able to set up anything in a matter of seconds. As always feedback and feature requests are more than welcome at the <a href="http://cherokee-project.com/cgi-bin/mailman/listinfo/cherokee">mailing lists</a>. Here are links to <a title="Donwload Cherokee 0.99.25" href="http://www.cherokee-project.com/download/0.99/0.99.25/cherokee-0.99.25.tar.gz">download</a> the tarball and the <a href="http://www.cherokee-project.com/doc/">online documentation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2009/10/26/cherokee-0-99-25-party-kit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux turns 18. Happy birthday!</title>
		<link>http://unixwars.com/2009/08/25/linux-turns-18-happy-birthday/</link>
		<comments>http://unixwars.com/2009/08/25/linux-turns-18-happy-birthday/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 18:57:31 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=470</guid>
		<description><![CDATA[I&#8217;m sure plenty of sites will talk about it, so I&#8217;ll keep it short. Precisely 18 years ago, Linux was born. I&#8217;m told Linus -nicknamed Linux back then- wanted to call it Freax, but it didn&#8217;t stick. From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure plenty of sites will talk about it, so I&#8217;ll keep it short. Precisely 18 years ago, Linux was born. I&#8217;m told Linus -nicknamed Linux back then- wanted to call it Freax, but it didn&#8217;t stick.</p>
<blockquote><p>From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)<br />
Newsgroups: comp.os.minix<br />
Subject: What would you like to see most in minix?<br />
Summary: small poll for my new operating system<br />
Message-ID: &lt;1991Aug25.205708.9541@klaava.Helsinki.FI&gt;<br />
Date: 25 Aug 91 20:57:08 GMT<br />
Organization: University of Helsinki</p>
<p>Hello everybody out there using minix -</p>
<p>I&#8217;m doing a (free) operating system (just a hobby, won&#8217;t be big and professional like gnu) for 386(486) AT clones.  This has been brewing since april, and is starting to get ready.  I&#8217;d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).</p>
<p>I&#8217;ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I&#8217;ll get something practical within a few months, and I&#8217;d like to know what features most people would want.  Any suggestions are welcome, but I won&#8217;t promise I&#8217;ll implement them :-)</p>
<p>Linus (torvalds@kruuna.helsinki.fi)</p>
<p>PS.  Yes &#8211; it&#8217;s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that&#8217;s all I have :-(.</p></blockquote>
<p>Regarding <a href="http://en.wikipedia.org/wiki/List_of_Linux_supported_architectures">Linux portability,</a> one could easily loose track. Some hobbies can change the World.</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2009/08/25/linux-turns-18-happy-birthday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.04 problems: Jaunty fixes for HP DV6 1120es</title>
		<link>http://unixwars.com/2009/07/29/ubuntu-9-04-problems-jaunty-fixes-for-hp-dv6-1120es/</link>
		<comments>http://unixwars.com/2009/07/29/ubuntu-9-04-problems-jaunty-fixes-for-hp-dv6-1120es/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 16:55:23 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=441</guid>
		<description><![CDATA[A friend of mine just asked me for help with his new laptop. He wanted to try out Jaunty, but got stuck with a couple of show stoppers: no WIFI and no sound. The hardware is already supported in newer releases of ALSA and the Linux kernel, so 9.10 &#8220;Karmic&#8221; will probably run flawlessly with [...]]]></description>
			<content:encoded><![CDATA[<p>A friend of mine just asked me for help with his new laptop. He wanted to try out Jaunty, but got stuck with a couple of show stoppers: no WIFI and no sound. The hardware is already supported in newer releases of ALSA and the Linux kernel, so 9.10 <em>&#8220;Karmic</em>&#8221; will probably run flawlessly with this HP out of the box. Here&#8217;s how to fix it:</p>
<ul>
<li>Wifi: it ships an Atheros AR9285 wireless card. From the <a href="http://wireless.kernel.org/en/users/Drivers/ath9k">Official Linux Wireless wiki</a> we can see that it is supported on kernels &gt;= 2.6.29. Jaunty comes with 2.6.28, but it is not a problem:</li>
</ul>
<pre class="prettyprint">sudo apt-get install linux-backports-modules-jaunty</pre>
<ul>
<li>Sound: Update ALSA. This is for the latest snapshot:</li>
</ul>
<pre class="prettyprint">sudo apt-get install build-essential
wget http://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/\
alsa-driver-unstable-snapshot.tar.bz2 -O -| tar xvj
cd alsa-driver-unstable
./configure --enable-dynamic-minors
make
sudo make install-modules
echo "options snd_hda_intel model=hp-dv5" | \
sudo tee -a /etc/modprobe.d/alsa-base</pre>
<p>Problem solved. Reboot and enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2009/07/29/ubuntu-9-04-problems-jaunty-fixes-for-hp-dv6-1120es/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Something BIG is about to happen</title>
		<link>http://unixwars.com/2009/05/31/something-big-is-about-to-happen/</link>
		<comments>http://unixwars.com/2009/05/31/something-big-is-about-to-happen/#comments</comments>
		<pubDate>Sun, 31 May 2009 13:07:45 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=415</guid>
		<description><![CDATA[Lately I&#8217;ve been wanting to buy a netbook. I&#8217;m not an impulsive guy when it comes to buying new gadgets, so I have been postponing the moment. But having an unexpensive, semi-disposable system laying around can come in quite handy. I mention this because the time to buy is getting closer and closer, and yet [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been wanting to buy a netbook. I&#8217;m not an impulsive guy when it comes to buying new gadgets, so I have been postponing the moment. But having an unexpensive, semi-disposable system laying around can come in quite handy.</p>
<p>I mention this because the time to buy is getting closer and closer, and yet I&#8217;m astonished that so little people out there are making a big fuss over the next big thing: ARM netbooks and Linux. Sure, we already have some of these out there from<a href="http://alpha-400-mips-elonex-razorbook-coby.blogspot.com/2009/04/worlds-first-android-netbook-laptop-is.html"> Skytone and Elonex</a> -and probably others-, but those are fairly limited machines performance-wise.</p>
<p>I&#8217;m talking about cheap mini-laptops that can be used to surf the web, write reports and even play 720p video, all with an extremely low power consumption, 10+ hour battery life and very little heat generation. These machines <a href="http://www.engadget.com/2009/01/09/pegatron-and-freescale-team-for-low-power-ultra-cheap-netbooks/">are already on their way</a>, will use newer and more powerful ARM processors and will hit the market in the following months.</p>
<p>I believe this is, in fact, a silent revolution that doesn&#8217;t even ripple the surface. This will change everything. And why is that? Well&#8230; for starters there is a huge market for something like this, like the sells of anything Netbook-related have been steadily showing lately. An it seems hardly possible that Microsoft will release an ARM enabled Windows XP. This means Linux will get yet another boost in market share when these machines become mainstream, although I&#8217;m pretty sure Microsoft will still claim a 90%+ share in the netbook segment. Despite this alleged 90%, the rules of the game have changed, and netbooks are not playing by Microsoft&#8217;s rules any more.</p>
<p>Things are changing. And with this, cheap, ubiquitous, multimedia network-enabled machines will become a reality. And those will be powered by free software, at last.<a href="http://www.debian.org/ports/arm/"> Debian</a> has been supporting ARM chips for a long time, <a href="http://www.ubuntu.com/products/whatisubuntu/arm">Ubuntu</a> does since release 9.04 and other<a href="http://mojo.handhelds.org/"> mobile and embedded devices</a> have a long history with Linux. And lets not forget about <a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9133698">Android</a>! Oh man, I can hardly wait to get my hands on one of these jewels!</p>
<p>It&#8217;s a revolution.  It&#8217;s quiet, but it&#8217;s happening.</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2009/05/31/something-big-is-about-to-happen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jaunty Server on Compact Flash: running Ubuntu 9.04 on a Thin Client</title>
		<link>http://unixwars.com/2009/03/07/jaunty-server-on-compact-flash-running-ubuntu-904-on-a-thin-client/</link>
		<comments>http://unixwars.com/2009/03/07/jaunty-server-on-compact-flash-running-ubuntu-904-on-a-thin-client/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 19:31:12 +0000</pubDate>
		<dc:creator>Taher Shihadeh</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[home server]]></category>

		<guid isPermaLink="false">http://unixwars.com/?p=360</guid>
		<description><![CDATA[Previously on UnixWars … I said in another post that I would be using a Thin Client as my home server. The machine is fanless, diskless and it makes no noise. The system boots from a low power Compact Flash. After setting things up, some friends decided to buy the exact same machine, so I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>Previously on UnixWars …<br />
I said in another post that I would be using a  <a href="http://unixwars.com/2009/02/19/fattening-up-a-thin-client/">Thin Client</a> as my home server. The machine is fanless, diskless and it makes no noise. The system boots from a low power Compact Flash. After setting things up, some friends decided to buy the exact same machine, so I&#8217;m going to write down the steps I followed to configure the server. Please note that Ubuntu Jaunty is still in Alpha 5 stage, so you might want to rethink which release you are going to install. I&#8217;ve had no problems whatsoever, so for a setup such as mine you should be safe. Alpha 6 is due to be released shortly and the first beta will be out on March 21st. Then, just one month will separate us from the official release day, so by now I&#8217;d say Jaunty has done most of it&#8217;s homework.</p>
<p>The easiest thing to do would be installing the system normally through PXE (look for the link at the end of this post if you&#8217;re interested), but there is a problem. Flash devices have a limited number of write-cycles, and wear levelling is not used on consumer grade cards. There are file systems optimized for flash devices -such as <a href="http://en.wikipedia.org/wiki/JFFS2">JFFS2</a>- but the benefits are not obvious here. As I understand it, these are designed for industrial devices with direct access to the memory cells. Consumer devices have an abstraction layer that make them transparent and enable us to use them as any other normal storage. It should provide everything we need, such as wear levelling. But as I said before, it normally doesn&#8217;t for consumer-type devices.</p>
<h3><span style="color: #000000;">Alternatives</span></h3>
<p>Having discarded the optimal solution for both technological and budget limitations, we are left with three alternatives.</p>
<ol>
<li>Use the CF as an ordinary device, with total disregard for the premature death of the drive. This is the simplest, and provided you have a lifetime warranty for your media it might not be such a bad idea.</li>
<li>Use the CF as if it were a LiveCD, maybe even adding persistence for our changes. This option should prove perfect if we want to use the Thin Client as a desktop system. Temporary changes are written to RAM, permanent changes will be stored on disk and even software updates will remain between reboots. It is a bit more complicated, so I&#8217;ll leave this in my TO DO list for now.</li>
<li>Install everything by hand on a local copy, configure the system to be able to run with as little disk access as possible (ideally, from a read-only root file-system), and dump it to the CF. Since space is not a problem for me (I have both a 1GB and 8GB CF cards), I&#8217;ll prefer this approach. In case everything was set as read-only, we would only  have to remount the file systems as writable during the process. As for SquashFS, though it seems an ideal choice for an embedded system that needs no upgrades, I&#8217;ll discuss this in other posts. It is simpler to deal with a &#8220;standard&#8221; system, not having to recreate binary boot images every time you update the box.</li>
</ol>
<p>My home server is used to share media and printers on my local network, manage downloads, and above all, provide a permanent access to my home network from wherever I might be. This is, by far, the handiest thing ever. At least it is for me. You never know when you are going to need to bypass Internet filters when you are roaming, for example. The wonders of SSH truly never cease to amaze me :)</p>
<p>I&#8217;ve opted for letting some writing be done to the CF, albeit the write-intensive tasks have been dealt with, because it is easier for the system to be updated, and because some of the services I&#8217;ll be using refuse to work on read-only mode. However, my next entry will be about using aufs/unionfs, and replicating this setup on totally read-only and compressed system that will run from the 256MB standard CF that comes with the computer.</p>
<p><span id="more-360"></span></p>
<h3>Things to install</h3>
<ul>
<li>Basic system: since Jaunty is still in Alpha stage, downloading the whole ISO is not worth it. Just grab the <a href="http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/alpha-5/images/netboot/mini.iso">NetBoot mini ISO</a> and download the rest as you go. You&#8217;ll have to update frequently until it is released anyhow.</li>
<li><strong>linux-image-server</strong>: A scheduler less suited for multimedia but with some advantages for a server.</li>
<li><strong>ssh</strong>: Access point to/from your server.</li>
<li><strong>cups</strong>: printer support. Note that CUPS alone will add around 100 MB to your installation.</li>
<li><strong>portmap, nfs-kernel-server</strong>: NFS file server.</li>
<li><strong>samba</strong>: sharing files and printers for Windows boxes.</li>
<li><strong>nmap, mc, wget, curl, unrar, p7zip-full, arj, unzip, </strong><strong>unp</strong>, <strong>unace, qemacs-nox</strong>: some handy tools I can&#8217;t live without. Mostly Swiss-army knives, decompressors and a tiny Emacs-like editor. It&#8217;s bigger than <strong>mg</strong>, but it has UTF8 support. I love Emacs but it is huge for a system like this.</li>
<li><strong>usbmount, ntfs-3g</strong>: to automatically mount USB devices. Nice if you plan to plug and unplug your external drives to share them on your LAN.</li>
<li><strong>mldonkey-server</strong>: for our every day download-needs.</li>
</ul>
<p>These were the steps I followed. Keep in mind these are mainly notes to myself. They should work for you, but they might not. At the very least these steps will give you some useful hints. Please note that there might be some rough edges in the tutorial, since I actually wrote this after having everything installed. I tooks some notes during the process, and this setup is working flawlessly for me. I don&#8217;t think any important (read non-trivial) steps were left out, but if that&#8217;s the case and it is giving you any kind of problem, just ask in the comments!</p>
<p>The CF shouldn&#8217;t suffer much IO, so the idea is to install and customize everything on a virtual machine, and then dump the resulting image to the CF after making every needed adjustment.</p>
<p>I originally intended to make the system completely read-only, but then decided that preventing /tmp and /var/log from massacring the CF would be more than enough. You can skip completely some of these steps, since the root-fs will not be totally read-only. For that, check the next post.</p>
<h3>Installing the base system</h3>
<p>I&#8217;ll be using VirtualBox because I find it easier to work with than plain QEMU, particularly since I&#8217;m going to be needing the network from within the virtual machine. Just create a new one with a disk size that can fit in you CF. I&#8217;ll use a 1GB card that I have laying around. Also configure the CDROM drive to use the <a href="http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/alpha-5/images/netboot/mini.iso">NetBoot mini ISO</a> that you have downloaded.</p>
<p>Before booting the machine, add <strong>PAE/NX</strong> support to the virtual CPU. The generic kernel doesn&#8217;t need it, but once you try to boot with the <strong>linux-image-server</strong> branch you will need this to proceed. That is done from the virtual machine definition section following the path: Details -&gt; General -&gt; Advanced.</p>
<p>Boot the machine and type &#8216;cli&#8217; if you want to minimize the installations. Then manually partition the hard drive if you want to use the new EXT4 file-system type, and go through the process as you normally would. Of course, <strong>disregard the swap partition</strong>. You can&#8217;t have that on a CF or it will die soon for sure.</p>
<p>I use the French repositories because those are the fastest for me. I always start by modifying the list of repositories on the recently installed system, in case I want to install things not present in <strong>universe</strong>. Edit it manually or just append the needed info.</p>
<pre class="prettyprint">echo "deb http://fr.archive.ubuntu.com/ubuntu jaunty \
main restricted universe multiverse" >> /etc/apt/sources.list</pre>
<p>And install the packages.</p>
<pre class="prettyprint">sudo su -
apt-get clean
apt-get update
apt-get install linux-image-server openssh-server samba cups \
 wget p7zip-full portmap nfs-kernel-server nmap mc \
 qemacs-nox unp arj unrar unzip usbmount mldonkey-server
apt-get clean</pre>
<p>No real need to mention it, but don&#8217;t forget to delete the generic kernel and associated files if you want to save another 100MB or so.</p>
<p>Now to handle issues related to readable-writable paths, as well as config files. Some steps are only useful if you will mount the rootfs as read-only. I&#8217;ll mark them as &#8220;Optional&#8221;:</p>
<ul>
<li>Optional: /etc/mtab: We will link it to a file that can describe the mounted file-systems without requiring write access.</li>
</ul>
<pre class="prettyprint">rm /etc/mtab
ln -s /proc/mounts /etc/mtab</pre>
<ul>
<li>/etc/network/interfaces: static IP for the server. Bare in mind you&#8217;ll need writable<em><strong> /etc/resolv.conf</strong></em> and <em><strong>/var/lib/dhcp3</strong></em> if you intend to use dynamic IPs. You&#8217;ll probably have to edit <em><strong>/sbin/dhclient-script</strong></em> to account for this if you are going for a full-ro filesystem. This is how my <em><strong>/etc/network/interfaces</strong></em> looks like.</li>
</ul>
<pre style="padding-left: 30px;">auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.0.0.100
gateway 10.0.0.1
broadcast 10.0.0.255
netmask 255.255.255.0</pre>
<ul>
<li>/etc/etc/fstab: define the mountpoints. Ensure that directories that need to be writable ar mounted as tmpfs rather than letting the system write them to flash. Alternatively you can mount them on external media. You need this to run the rootfs mounted as read-only. Even if you are not going to do so, you *MUST* set the &#8216;noatime&#8217; flag when mounting, or at least &#8216;relatime&#8217;. If you don&#8217;t, every single access to the files will require a read operation to modify the access time, and this is pure overhead for the CF that will significantly shorten its life span. Using journaling is probably another bad idea, since many commits will also affect the CF. Either use EXT2, or use this as a temporary solution and go for the SquashFS-Live system of approach #2.</li>
</ul>
<pre style="padding-left: 30px;">/dev/sda1 / ext4 noatime,errors=remount-ro 0 0
proc /proc proc defaults 0 0
tmpfs /var/log tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/lib/urandom tmpfs defaults 0 0
# Define the following ones if you use NFS or dynamic IPs.
# Writable paths should be tmpfs or be on external media.
# Both settings are OPTIONAL for our current setup.
tmpfs /var/lib/nfs tmpfs 0 0
tmpfs /var/lib/dhcp3 tmpfs defaults 0 0</pre>
<ul>
<li>Logging: either log to a tmpfs as shown above, to an external media, remotely or remove logging capabilities. This step is not optional at all. If you choose any option other than the first one, you&#8217;ll probably want to take a look at <strong><em>/etc/syslog.conf</em></strong>, <strong>/etc/default/syslogd</strong> and your /etc/rc?.d for links to <em><strong>/etc/init.d/sysklogd</strong></em>. Don&#8217;t forget the <em><strong>syslog.conf </strong></em>man entry. Note that logging to a tmpfs will give you some warnings at boot-time since some files are expected to exist. It&#8217;s probably not such a good idea, since you&#8217;ll loose the logs between reboots, troubleshooting vulnerabilities becomes more difficult, and so on. If you do proceed with the idea, you should keep this in mind: some logfiles are expected to be present at boot-time, so you&#8217;ll get some errors if you boot with an empty /var/log. Mldonkey also doesn&#8217;t boot if it can&#8217;t access the logs, so populate the directory with a  trivial script such as the following. It  must be run at boot-time before <em><strong>/etc/init.d/bootlogs.sh</strong></em> and <strong><em>/etc/init.d/sysklogd</em></strong> are invoked:</li>
</ul>
<pre style="padding-left: 30px">#!/bin/sh
### BEGIN INIT INFO
# Provides:          madoka
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      1
# X-Start-Before:    bootlogs sysklogd
# Short-Description: recreate /var/log structure for Madoka
# Description:       recreate /var/log structure for Madoka
### END INIT INFO

do_start () {
 mkdir -p /var/log/mldonkey
 mkdir -p /var/log/news
 cd /var/log

 touch \
 dmesg          \
 mail.warn      \
 user.log       \
 daemon.log     \
 messages       \
 debug          \
 auth.log       \
 mail.err       \
 syslog         \
 mail.log       \
 kern.log       \
 lpr.log        \
 mail.info      \
 news/news.crit \
 news/news.err  \
 news/news.notice

 chgrp adm dmesg
 chown syslog:adm \
 mail.warn       \
 user.log        \
 daemon.log      \
 messages        \
 debug           \
 auth.log        \
 mail.err        \
 syslog          \
 mail.log        \
 kern.log        \
 lpr.log         \
 mail.info

 chown news:news news
 chown root:news news/*
}

case "$1" in
 start)
 do_start
 ;;
 restart|reload|force-reload)
 echo "Error: argument '$1' not supported" &gt;&amp;2
 exit 3
 ;;
 stop)
 # No-op
 ;;
 *)
 echo "Usage: $0 start|stop" &gt;&amp;2
 exit 3
 ;;
esac</pre>
<p style="padding-left: 30px;">I saved it in /etc/init.d/madoka, and added it to my default runlevel to execute before <em><strong>init.d/bootlogs.sh</strong></em> and <strong><em>/etc/init.d/sysklogd</em></strong></p>
<pre style="padding-left: 30px">update-rc.d madoka start 05 2 .</pre>
<h3>Adding some more goodies</h3>
<ul>
<li>mldonkey: I just made symbolic links to an external drive. <em><strong>/var/lib/mldonkey/incoming</strong></em>, <em><strong>/var/lib/mldonkey/temp</strong></em> and <strong>/var/lib/mldonkey/torrents</strong> are the most frequently written directories by far. It also rewrites the configuration files whenever changes are made. Those are also stored under <em><strong>/var/lib/mldonkey/.<br />
</strong></em></li>
</ul>
<ul>
<li>/etc/usbmount/usbmount.conf: this is great if you are going to have lots of external drives. It automatically mounts the devices wherever you choose to (in my case, under my shared samba directory). It just works after rebooting. I only edited the file to specify the mount point and to add more file-systems that I wish automatically mounted:</li>
</ul>
<pre style="padding-left: 30px;">FILESYSTEMS="ntfs vfat ext2 ext3"</pre>
<ul>
<li>/etc/samba/smb.conf: to share files and printers, edit yours to resemble these pointers.</li>
</ul>
<pre style="padding-left: 30px"># add to [global] section, and edit the rest to your heart's contempt
workgroup = WARPCORE
printcap name = cups
printing = cups
security = share
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# make sure [printers] section looks like this
[printers]
browseable = yes
printable = yes
public = yes
create mode = 0700
guest only = yes
use client driver = yes
path = /tmp</pre>
<pre style="padding-left: 30px">#define at least one share point
[shared]
comment = Shared media
path = /media
guest ok = Yes</pre>
<p style="padding-left: 30px;">To have the printers actually work you&#8217;ll need to configure them with cups. After having everything tuned, remember to mount the root file-system read-only. Adding the printer is trivial thanks to the administration web interface. Just forward the needed port or make <strong><em>cups</em></strong> accept connections from interfaces other than localhost, and launch your web browser.</p>
<pre class="prettyprint" style="padding-left: 30px;">ssh -L 2000:localhost:631 10.0.0.100</pre>
<p style="padding-left: 30px;">Then, access the configuration wizard visiting http://localhost:2000. On Windows systems you can add this by simply add ing a new printer with the wizard and browse your samba shares. You should see the printer there, hanging from your samba server. User your disks with the drivers and it should be a done deal.</p>
<ul>
<li>/etc/exports: remember to set up this if you are using NFS shares. I export the same things as with Samba.</li>
</ul>
<pre style="padding-left: 30px">/media 10.0.0.0/24(rw,sync,no_subtree_check)</pre>
<h3>Copying the image to the CF</h3>
<p>Ok, so now you have a perfectly working system in your virtual machine. That&#8217;s great. Time to copy it to the CF. Convert your VDI file to a raw image as shown below, and dump it to the CF.</p>
<p>If you are using the OSE edition of VirtualBox:</p>
<pre style="padding-left: 30px">vditool DD machine.vdi raw_image.img</pre>
<p>If it is the closed-source release, vditool is not available. You&#8217;ll have to do it like this:</p>
<pre style="padding-left: 30px">VBoxManage internalcommands converttoraw machine.vdi raw_image.img</pre>
<p>Once you have that, simply dump it to your CF with <em><strong>dd</strong></em> and you are good to go! Mine is detected on /dev/sdc</p>
<pre style="padding-left: 30px">dd if=raw_image.img of=/dev/sdc bs=1024</pre>
<h3>Other installation tips</h3>
<p>Going for a completely read-only system, even running something as mldonkey, is not that complicated either. Just trace the paths that need to be written frequently with <strong><em>&#8220;lsof /&#8221;</em></strong> and if you find something that has to modify many files, either replicate the file-structure on tmpfs/ramfs (preferably the former), or better yet, use <a href="http://aufs.sourceforge.net/">aufs</a>/<a href="http://www.unionfs.org/">unionfs</a> on a temporary file system.  Thats the great thing about the live-system approach that I&#8221;ll be using next. I&#8217;m still working on some rough edges, but I&#8217;ll blog about it as soon as the results are perfect :)</p>
<p>Another, simpler approach if you don&#8217;t mind the hassle and some extra wear on your CF, simply make a PXE install and customize afterwards following my steps. Here is a nice and easy tutorial to make an <a href="https://help.ubuntu.com/community/Installation/QuickNetboot">Ubuntu  net installation</a> in case you want to try that.</p>
<p>Anyway I hope you find this useful. It certainly was for me. Let me know if you find a cheap thin client on Ebay and follow this tutorial. A noiseless server does really make a difference!</p>
]]></content:encoded>
			<wfw:commentRss>http://unixwars.com/2009/03/07/jaunty-server-on-compact-flash-running-ubuntu-904-on-a-thin-client/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
	</channel>
</rss>
