<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Stefano Rivera (Posts about hardware)</title><link>https://stefanorivera.com/</link><description></description><atom:link href="https://stefanorivera.com/categories/hardware.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:stefano@rivera.za.net"&gt;Stefano Rivera&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-SA"
     class="cc-license-button"
     src="/assets/img/cc-by-sa-4.0.svg"&gt;&lt;/a&gt;</copyright><lastBuildDate>Fri, 01 May 2026 14:29:40 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>An update on Laptop Hard Drives &amp; Linux</title><link>https://stefanorivera.com/posts/2007/10/27/update-laptop-hard-drives-linux/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;Launchpad &lt;a href="https://bugs.launchpad.net/bugs/59695"&gt;bug 59695&lt;/a&gt; has been gathering a &lt;em&gt;huge&lt;/em&gt; amount of activity since I wrote about this issue. The issue seems to be that the hardware manufacturers (BIOS and HDD firmware) set &lt;em&gt;very&lt;/em&gt; aggressive values for power management. And every other OS (Windows &amp;amp; Mac OSX) override these values to something more sane. The manufacturers only test their equipment in Windows, so they don't see any problems :-)&lt;/p&gt;
&lt;p&gt;This kind of thing seems to happen to Linux quite regularly - we all remember the ACPI debacle caused by manufacturers using Microsoft's broken ASL compiler, which worked in Microsoft's broken ACPI environment (or was overridden with driver updates).&lt;/p&gt;
&lt;p&gt;So in my opinion, Ubuntu (and every other distributor) has to step in and override these aggressive settings. And, by the look of the bug report, Gnome Power Manager should provide the user with a slider to set the balance between power savings and hardware lifetime.&lt;/p&gt;
&lt;p&gt;There is already the obligatory &lt;a href="http://ubuntuiskillingyourhd.blogspot.com/"&gt;ubuntu is killing your Hard Drive blog&lt;/a&gt;, and a &lt;a href="https://ubuntuforums.org/showthread.php?t=508576"&gt;closed for cooling off Ubuntu forums thread&lt;/a&gt;, if you want get involved and start swinging your battle-axe.&lt;/p&gt;
&lt;p&gt;Oh, and the workaround I posted last week obviously doesn't cover the case of the machine resuming from suspend. You have to use an ACPI event script for that.&lt;/p&gt;</description><category>apm</category><category>hard-drive</category><category>hardware</category><category>laptop</category><category>linux</category><category>ubuntu</category><guid>http://tumbleweed.org.za/2007/10/27/update-laptop-hard-drives-linux</guid><pubDate>Sat, 27 Oct 2007 08:11:31 GMT</pubDate></item><item><title>A serious warning to Linux Laptop users</title><link>https://stefanorivera.com/posts/2007/10/22/serious-warning-linux-laptop-users/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;I've just come across a rather scary, and worryingly old &lt;a href="https://bugs.launchpad.net/bugs/59695"&gt;launchpad bug&lt;/a&gt;, which talks about real hardware damage. There is more on the problem &lt;a href="http://paul.luon.net/journal/2005/11/24/broken-hdds/"&gt;here&lt;/a&gt;. But basically, by default, Linux is far too optimistic with spinning laptop hard drives down, and you can reach number of spin-up/downs that your drive is rated for over it's entire life-time, in a few months.&lt;/p&gt;
&lt;p&gt;My laptop (3 months old), is already at 160000 Load/Unloads: Around half it's rated life.&lt;/p&gt;
&lt;p&gt;The easy solution is&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;# hdparm -B 180 /dev/sda
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Or, the following in /etc/hdparm.conf&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;/dev/sda {
    apm = 180
}
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Lets hope that this gets resolved soon, or the problem isn't as bad as it appears.&lt;/p&gt;
&lt;p&gt;I see that Matthew Garrett (the Ubuntu Laptop Tzar) is subscribed to this bug, but doesn't seem to have commented on it. I find that a little odd, considering its seriousness.&lt;/p&gt;</description><category>apm</category><category>hard-drive</category><category>hardware</category><category>laptop</category><category>linux</category><category>ubuntu</category><guid>http://tumbleweed.org.za/2007/10/22/serious-warning-linux-laptop-users</guid><pubDate>Mon, 22 Oct 2007 21:15:22 GMT</pubDate></item><item><title>N800 (overdue) review</title><link>https://stefanorivera.com/posts/2007/10/21/n800-overdue-review/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;I was lucky enough to win a &lt;a href="http://europe.nokia.com/A4305006"&gt;Nokia N800&lt;/a&gt; at &lt;a href="http://www.lugradio.org/live/"&gt;LugRadio Live&lt;/a&gt; 2007, because I'd come from South Africa. I've had it for 3 months now, and the successor was announced last week, so I think it's time to blog about it, properly.&lt;/p&gt;
&lt;h3&gt;Hardware&lt;/h3&gt;
&lt;p&gt;&lt;img alt="N800" src="https://stefanorivera.com/files/n800-1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;The hardware is pretty decent. The screen is very bright and vivid (great for photos), and just big enough to read websites comfortably. There are enough buttons to fulfil the basic tasks without reaching for the stylus, but you generally work it with the stylus (or a finger). It has quite a few hardware features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A periscope webcam (640x480) that pops out the left side, and can swivel 200°&lt;/li&gt;
&lt;li&gt;2 SD sockets (one in battery compartment, for more permanent storage, and one external)&lt;/li&gt;
&lt;li&gt;It ships with a 128MiB &lt;a href="https://en.wikipedia.org/wiki/MicroSD"&gt;µSD&lt;/a&gt; card and SD adaptor. I wish manufacturers would ship with decent sized (say 2GiB) cards...&lt;/li&gt;
&lt;li&gt;A built-in FM radio (requires headphone lead for antenna)&lt;/li&gt;
&lt;li&gt;WiFi (802.11g)&lt;/li&gt;
&lt;li&gt;Bluetooth&lt;/li&gt;
&lt;li&gt;Stereo Speakers (very tinny)&lt;/li&gt;
&lt;li&gt;Microphone&lt;/li&gt;
&lt;li&gt;Headset socket (ships with a wired stereo hands-free set)&lt;/li&gt;
&lt;li&gt;Standard Nokia charger (I wish it charged by USB)&lt;/li&gt;
&lt;li&gt;mini-USB-B port. It has the hardware to be used in &lt;a href="https://en.wikipedia.org/wiki/USB_On-The-Go"&gt;USB OTG&lt;/a&gt; mode, but this requires a custom kernel and custom cables&lt;/li&gt;
&lt;li&gt;A (slightly flimsy) fold-out standing-arm&lt;/li&gt;
&lt;li&gt;A spare stylus&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The battery life is comperable to my cellphone (about a week of non-use, or a day or two of use), and I'm happy with most of the hardware, but I do have a few issues:&lt;/p&gt;
&lt;p&gt;The power button isn't sufficiently recessed for it's soft carrying case. This means that I can't carry it off in my bag, it'll turn itself on eventually, and run it's battery flat from spurious touch-screen clicks. The solution is to always leave it on, and screen-locked (it supports an auto-lock). For a cellphone manufacturer, I'd have thought they'd get this right.&lt;/p&gt;
&lt;p&gt;The webcam's position at the far left means it gets a good view of the left side of your face. This can be a little disconcerting.&lt;/p&gt;
&lt;p&gt;The USB port is (without some serious hackery) only in peripheral mode. I'd really like to be able to plug a USB keyboard into this device (bluetooth keyboards are way too expensive).&lt;/p&gt;
&lt;p&gt;There's a bottleneck in the system (processor presumably), that stops it playing youtube videos at full framerate. Mplayer seems to just be able to handle QVGA video at 24fps, but nothing more.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;cat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;proc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;cpuinfo&lt;/span&gt;
&lt;span class="nx"&gt;Processor&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Some&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Random&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;V6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Processor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;v6l&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;BogoMIPS&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m m-Double"&gt;320.37&lt;/span&gt;
&lt;span class="nx"&gt;Features&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;swp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;half&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;thumb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;fastmult&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;vfp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;edsp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;java&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="nx"&gt;CPU&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;implementer&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x41&lt;/span&gt;
&lt;span class="nx"&gt;CPU&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;architecture&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="nx"&gt;TEJ&lt;/span&gt;
&lt;span class="nx"&gt;CPU&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;variant&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x0&lt;/span&gt;
&lt;span class="nx"&gt;CPU&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0xb36&lt;/span&gt;
&lt;span class="nx"&gt;CPU&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;revision&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="nx"&gt;Cache&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;type&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;back&lt;/span&gt;
&lt;span class="nx"&gt;Cache&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;clean&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;cp15&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;c7&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ops&lt;/span&gt;
&lt;span class="nx"&gt;Cache&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;lockdown&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;format&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C&lt;/span&gt;
&lt;span class="nx"&gt;Cache&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;format&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Harvard&lt;/span&gt;
&lt;span class="nx"&gt;I&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;32768&lt;/span&gt;
&lt;span class="nx"&gt;I&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;assoc&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;
&lt;span class="nx"&gt;I&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;
&lt;span class="nx"&gt;I&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sets&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;
&lt;span class="nx"&gt;D&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;32768&lt;/span&gt;
&lt;span class="nx"&gt;D&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;assoc&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;
&lt;span class="nx"&gt;D&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;line&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;
&lt;span class="nx"&gt;D&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sets&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;

&lt;span class="nx"&gt;Hardware&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Nokia&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;N800&lt;/span&gt;
&lt;span class="nx"&gt;Revision&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;24202524&lt;/span&gt;
&lt;span class="nx"&gt;Serial&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0000000000000000&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Software&lt;/h3&gt;
&lt;p&gt;The software stack of the N800 is everything I could desire. It runs a Debian derivative of Linux, &lt;a href="http://maemo.org/"&gt;Maemo&lt;/a&gt;. Maemo uses proper Debian package management, the GTK widget set (with addons), Telepathy for IM, and Gstreamer for media. This makes it a doddle to port existing X applications to the N800.&lt;/p&gt;
&lt;p&gt;When you first turn on the N800, after unboxing (or reflashing), you go through an install wizard. It sets the hostname, timezone, and pairs with your bluetooth cellphone. The bluetooth phone pairing is well thought out, and beats anything I've ever come across on any platform. Unfortunately it suffers from the same problem as Windows - it doesn't set your Home Town, etc. based on the time-zone.&lt;/p&gt;
&lt;p&gt;The default web browser is Opera-based, but a Gecko engine is available, and a WebKit one remoured to be on the way. It has a (proprietary) flash plugin, so you &lt;em&gt;can&lt;/em&gt; watch YouTube, and the CACert.org root certificate is pre-installed :-)&lt;/p&gt;
&lt;p&gt;The device has 4 input modes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bluetooth keyboard (or something like &lt;a href="http://www.russnelson.com/"&gt;Russ Nelson&lt;/a&gt;'s chording bluetooth keyboard, which I came across at OSCON, and is truly a sight to behold)&lt;/li&gt;
&lt;li&gt;Stylus on-screen keyboard. I find this frustrating, but at least it has predictive-text.&lt;/li&gt;
&lt;li&gt;Full screen, thumb on-screen keyboard. This is better, but switching between pages (case, numerals, symbols) gets tiring. It's launched by pressing on a text field with a finger, this only works about 60% of the time.&lt;/li&gt;
&lt;li&gt;A user has prototyped an &lt;a href="http://blog.gustavobarbieri.com.br/2007/07/24/iphone-like-virtual-keyboard-for-n800/"&gt;iPhone-like keyboard&lt;/a&gt; for the N800 (in python), which works very nicely. But clearly the Maemo input system doesn't allow plugins, so it remains a prototype.&lt;/li&gt;
&lt;li&gt;Handwriting recognition. I'm a P910i user, so this fits well with me, but I took a while to get used to writing &lt;em&gt;inside&lt;/em&gt; the input area, rather than all over the screen. The handwriting recognition is good, and trainable, which is very nice. But I find the input area too small to reliably input in the correct case. It can't decipher cursive (but then nobody can decipher &lt;em&gt;my&lt;/em&gt; cursive), and some symbols don't input easily. All this is forgiven by the ability to correct the handwriting recognition, by writing over the incorrect letter.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I find the input fine, although slow, for everything except passwords. Multi-case, symbol-laden passwords really bring out the worst of &lt;em&gt;all&lt;/em&gt; the input systems.&lt;/p&gt;
&lt;p&gt;The default software selection is passable, but not great. The device really ships with "internet tablet" software, with a few decent games thrown in. The major problems are the media player doesn't play oggs or video, and the e-Mail program's IMAP support, which is a joke, at best (It uses IMAP as if it was POP).&lt;/p&gt;
&lt;p&gt;But I enabled a few extra repositories and soon my N800 became a really cool device:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Camera (by default, the web-cam is only used by the "Internet Call" software)&lt;/li&gt;
&lt;li&gt;There is a port of Claws, which is a &lt;em&gt;real&lt;/em&gt; IMAP client&lt;/li&gt;
&lt;li&gt;Fmradio (yes it isn't usable by default)&lt;/li&gt;
&lt;li&gt;ipython (the maemo Hildon GUI library has python bindings)&lt;/li&gt;
&lt;li&gt;maemo-mapper. It's hard to tell the functionality of this without a GPS, but it supports all the popular online maps (for imagery), and uses OpenStreetmap by default, which turns many geeks' eyes.&lt;/li&gt;
&lt;li&gt;maemo-recorder - A sound recorder.&lt;/li&gt;
&lt;li&gt;maemo-wordpy - A WordPress client.&lt;/li&gt;
&lt;li&gt;Mediastreamer - A UPNP media client. I've tried this with MediaTomb and GMediaServer, but in both cases, connections seemed to die prematurely. I think this is a known bug with libupnp.&lt;/li&gt;
&lt;li&gt;Mplayer - I used my N800 to watch movies on cheap transatlantic flights. It's battery life is much better than a laptop, although the screen is small.&lt;/li&gt;
&lt;li&gt;OpenSSH (client and server) - naturally :-)&lt;/li&gt;
&lt;li&gt;rdesktop and vncviewer - These impress geeks, while also being useful&lt;/li&gt;
&lt;li&gt;An X terminal is a must. The maemo-hackers edition is the one to get, it has a Ctrl-key...&lt;/li&gt;
&lt;li&gt;Skype is installable with one click. The N800 makes a &lt;em&gt;great&lt;/em&gt; skype phone (assuming you have WiFi, which is rare to find in this country, but in Portland OR it was the perfect device to have in my back pocket)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My repositories:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;http://catalogue.tableteer.nokia.com/certified/ bora user
http://catalogue.tableteer.nokia.com/non-certified/ bora user
http://repository.maemo.org/ bora free non-free
http://repository.maemo.org/extras/ bora free non-free
http://www.claws-mail.org/maemo/ bora user
http://maemo-hackers.org/apt bora main
&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;What's the point&lt;/h3&gt;
&lt;p&gt;It's a cool device for a geek to own, no doubt, but what's the actual point of it?&lt;/p&gt;
&lt;p&gt;I can answer that in a few ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Firstly, it's screen's bigger than my cellphone, but smaller than a laptop, so it's good for goofing off during university lectures, and surfing the web.&lt;/li&gt;
&lt;li&gt;It plays YouTube. All my machines are AMD64, and don't run proprietary flash, so they don't. I can't say I use this much, but when I'm forced at gunpoint to watch a YouTube video, I &lt;em&gt;can&lt;/em&gt; do it.&lt;/li&gt;
&lt;li&gt;It's nice for looking at photos. Bigger than a camera / phone, and supporting bluetooth and SD.&lt;/li&gt;
&lt;li&gt;I don't own a portable video player, so this is my portable video player.&lt;/li&gt;
&lt;li&gt;When you can't get to sleep at night, and suddenly something comes to you that you meant to find out about on Wikipedia or the web, you can grab it from the bedside table and do so. (Yes, I'm an unashamed geek)&lt;/li&gt;
&lt;li&gt;My cellphone is notoriously unreliable, and this doesn't make for a good alarm clock. So the N800 got pressed into this service. However, it's alarm system seems to have a bad bug, that can semi-brick it for a week. I haven't got to the bottom of it. But sometimes (and only when you have alarms set), it won't boot for a week. You either have to re-flash it, or wait for it to suddenly wake up and make alarm noises.&lt;/li&gt;
&lt;li&gt;If I want to see if there's WiFi somewhere, it's a lot quicker to check on the N800, then to take out a laptop.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But in the end, all that matters is that it runs Linux , and has Python dammit, so it's a piece of cake to write any software for it that I want to. I think that reason on it's own makes it a device worth owning.&lt;/p&gt;</description><category>embedded</category><category>hardware</category><category>linux</category><category>n800</category><category>review</category><guid>http://tumbleweed.org.za/2007/10/21/n800-overdue-review</guid><pubDate>Sun, 21 Oct 2007 09:40:15 GMT</pubDate></item><item><title>BIOS Recovery</title><link>https://stefanorivera.com/posts/2007/10/17/bios-recovery/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;A couple of months ago, I was looking at a friend's laptop. It had definite motherboard problems and a dead HDD. As part of the service, I updated the BIOS. Unfortunately, it died mid-flash.&lt;/p&gt;
&lt;p&gt;I tried the local Fujitsu-Siemens service center, but they said the motherboard had to be replaced. On an aging laptop, that's just not worth it. New HDD, yes. New Mobo, no.&lt;/p&gt;
&lt;p&gt;I asked around UCT everywhere, looking for someone with a PROM programmer, but the only one I could find was an &lt;em&gt;ancient&lt;/em&gt; device attached to a 286. The "new" programmer (not much newer) was broken... I waited a couple of months, but it still isn't fixed.&lt;/p&gt;
&lt;p&gt;So, I tried a mail-order BIOS flashing service, &lt;a href="https://www.biosflash.com/"&gt;biosflash.com&lt;/a&gt;. They found a compatible chip, programmed it (with the update I'd been trying to install), and put it in the (registered) post within 24hrs. 2 weeks later, I've got it, and it installed it in the laptop.&lt;/p&gt;
&lt;p&gt;It works!&lt;/p&gt;
&lt;p&gt;Usually this kind of kind of thing means the laptop is written off. (Desktops normally have some kind of bad-flash recovery procedure, but it's rare in laptops, and not foolproof anyway). I'm very impressed with biosflash.com: for only €15, the machine is no longer a brick.&lt;/p&gt;
&lt;p&gt;Now to replace that HDD...&lt;/p&gt;</description><category>83</category><category>bios</category><category>bricked</category><category>flash</category><category>hardware</category><guid>http://tumbleweed.org.za/2007/10/17/bios-recovery</guid><pubDate>Wed, 17 Oct 2007 21:36:28 GMT</pubDate></item><item><title>Hardware sucks</title><link>https://stefanorivera.com/posts/2007/05/05/hardware-sucks/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;I spent a morning trying to debug my LTSP server, which wasn't booting after it's feisty upgrade.&lt;/p&gt;
&lt;p&gt;I assume it was something to do with RAID &amp;amp; LVM on the root &lt;em&gt;initially&lt;/em&gt;, but after I got through that, it still wouldn't boot.&lt;/p&gt;
&lt;p&gt;Aah, but the recovery option worked&lt;/p&gt;
&lt;p&gt;Ok, so maybe it's something with usplash, restart and boot without &lt;code&gt;quiet&lt;/code&gt; but with &lt;code&gt;splash&lt;/code&gt;.  Boots.&lt;/p&gt;
&lt;p&gt;Eventually I found that it just needed a few extra seconds of spin-time in the grub screen (increase &lt;code&gt;timeout&lt;/code&gt; to 10), and now it works.&lt;/p&gt;
&lt;p&gt;Bloody hardware!&lt;/p&gt;</description><category>hardware</category><category>ubuntu</category><guid>http://tumbleweed.org.za/2007/05/05/hardware-sucks</guid><pubDate>Sat, 05 May 2007 12:29:55 GMT</pubDate></item><item><title>AVM ISDN drivers and Linux 2.6</title><link>https://stefanorivera.com/posts/2007/05/04/avm-isdn-drivers-and-linux-26/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;I had the pleasure of trying to get an AVM Fritz ISA card working under linux 2.6 this week. While drivers for AVM's premium equipment is in Linux mainline, these drivers are not. The used to be obtained from &lt;a href="ftp://ftp.avm.de/cardware/"&gt;AVM's ftp site&lt;/a&gt;, but these days, if you look there, all that you'll find is old 2.4.&lt;early&gt; drivers, and a notice saying future drivers are available in SuSE.&lt;/early&gt;&lt;/p&gt;
&lt;p&gt;Before I continue, I &lt;em&gt;wish&lt;/em&gt; that all hardware vendors that write linux drivers would &lt;a href="https://lwn.net/Articles/232379/"&gt;get them mainlined&lt;/a&gt;. I've begged AVM to do this before.&lt;/p&gt;
&lt;p&gt;I tried porting the old driver to a modern 2.6 kernel, but while I could get it to compile, I never actually got it to work :-)&lt;/p&gt;
&lt;p&gt;For the record, and for googlers, here's how you build these buggers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You read gentoo's &lt;a href="https://gitweb.gentoo.org/repo/gentoo/historical.git/tree/net-dialup/fritzcapi/fritzcapi-2.6.43.ebuild?id=267bffc8cfebb5fee2723a8ebb3316807980f7b1"&gt;ebuild&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;This points you to somewhere on ftp.suse.com where you can download a 2.6 compatible version of the driver. The URL given didn't work for me, but I poked around with similar URLs, and came up with &lt;a href="https://ftp.suse.com/pub/suse/i386/10.0/SUSE-Linux10.0-GM-Extra/suse/i586/km_fritzcapi-2.6-40.i586.rpm"&gt;the goods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;You'll see a sed command that adds some includes to everything. Run this.&lt;/li&gt;
&lt;li&gt;You'll also find a whole pile of &lt;a href="https://gitweb.gentoo.org/repo/gentoo/historical.git/tree/net-dialup/fritzcapi/files?id=267bffc8cfebb5fee2723a8ebb3316807980f7b1"&gt;patches&lt;/a&gt;, needed for recent kernels.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Really&lt;/em&gt; old cards might not be actively patched, but many of the changes in other drivers are applicable to all of them, i.e. in the patch for &lt;code&gt;fritz.pcmcia&lt;/code&gt;, the entire &lt;code&gt;atomic_xchg&lt;/code&gt; function is removed; this must happen for &lt;code&gt;fritz.classic&lt;/code&gt;, too.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I got the &lt;code&gt;fritz.classic&lt;/code&gt; driver working with Linux 2.6.21.1, thanks to Gentooers :-)&lt;/p&gt;</description><category>hardware</category><category>linux</category><guid>http://tumbleweed.org.za/2007/05/04/avm-isdn-drivers-and-linux-26</guid><pubDate>Fri, 04 May 2007 20:17:31 GMT</pubDate></item><item><title>Cell phone "up"grade</title><link>https://stefanorivera.com/posts/2007/04/23/cell-phone-upgrade/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;My old (hand-me-down) &lt;a href="https://en.wikipedia.org/wiki/P900"&gt;Sony Ericsson P900&lt;/a&gt; has been dieing for a while. The screen was scratched to death, the stylus missing, and the keypad cracked. (The Top row of buttons didn't work, and the rest occasionally returned the wrong number). Oh, and the phone was crashing a lot.&lt;/p&gt;
&lt;p&gt;I don't do spending money on cellphones (because the ones I'd like cost a fortune, and I would never buy something that I don't want), I've upgraded to a "new" hand-me-down &lt;a href="https://en.wikipedia.org/wiki/P910i"&gt;SE P910i&lt;/a&gt; from my brother :-). It came Orange-branded, and after I firmware-updated it, it Orange-locked, grr.&lt;/p&gt;
&lt;p&gt;I wish there was a free way to sort this out, but I couldn't find one, so I paid my £16, and used &lt;a href="http://www.totalmultiserver.co.uk/"&gt;Total Multi Server&lt;/a&gt;. It doesn't require any cables beyond the docking station, and most importantly it worked.&lt;/p&gt;
&lt;p&gt;Overall, the P910i is much like the P900, but better. The keypad is sturdier, the phone has more RAM, more applications, and it seems to get better reception.&lt;/p&gt;
&lt;p&gt;I "bluetoothed" all my contacts across (because if you do it the syncing route, you loose information when a contact has more than one cell phone number, etc.). &lt;/p&gt;
&lt;p&gt;I've installed a few apps, that I like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mini.opera.com/"&gt;Opera Mini&lt;/a&gt; - the best web browser for a phone&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.google.com/mobile/mail/index.html"&gt;GMail&lt;/a&gt; - this &lt;em&gt;may&lt;/em&gt; come in handy (all my incoming mail gets CCed to GMail)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.epocware.com/SE_P900/Handy_Day_2004.html"&gt;Handy Day 2004&lt;/a&gt; - It makes the phone much more usable as a PIM, and I had a copy lying around.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mgmaps.com/"&gt;MGMaps&lt;/a&gt; - I've tried using maps in opera on my P900, and it was a pain.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.xk72.com/midpssh/"&gt;MidpSSH&lt;/a&gt; - Never needed it, but just &lt;em&gt;in case&lt;/em&gt;, and anyway, it's cool :-)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mxit.co.za/"&gt;Mxit&lt;/a&gt; - I rarely use it, but it's jabber-peering makes it occasionally nice to have.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://quirc.rtfm.se/"&gt;quirc&lt;/a&gt; - Who ever wants to be stuck without IRC?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally I got it to synchronise with &lt;a href="https://calendar.google.com/calendar/"&gt;Google Calendar&lt;/a&gt;. The phone only does proprietary (windows) syncs or SyncML over GPRS. But Google Calendar doesn't do SyncML. The &lt;a href="http://www.funambol.com/" title="Funambol"&gt;OpenSource SyncML server&lt;/a&gt; is a Java monster which I wasn't going to install on any of &lt;em&gt;my&lt;/em&gt; servers, So I opted for &lt;a href="http://www.scheduleworld.com"&gt;ScheduleWorld&lt;/a&gt; as an intermediary. (don't you love their shameless google-style website? :-) ) It works really nicely.&lt;/p&gt;
&lt;p&gt;There is also a midp Java program for syncing to Google calendar, &lt;a href="http://www.gcalsync.com/"&gt;gcalsync&lt;/a&gt;, but it requires "JSR 75: PDA Optional Packages for the J2ME Platform", which the P910i doesn't have :-(&lt;/p&gt;</description><category>hardware</category><guid>http://tumbleweed.org.za/2007/04/23/cell-phone-upgrade</guid><pubDate>Mon, 23 Apr 2007 18:41:32 GMT</pubDate></item><item><title>Getting servers in line</title><link>https://stefanorivera.com/posts/2007/02/25/getting-servers-line/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;I spent a lovely weekend morning setting up monitoring on servers - yes, what &lt;em&gt;fun&lt;/em&gt; :-)&lt;/p&gt;
&lt;p&gt;I like all my servers to run &lt;code&gt;logcheck&lt;/code&gt;, &lt;code&gt;smartmontools&lt;/code&gt;, &lt;code&gt;sysstat&lt;/code&gt;, and &lt;code&gt;lm-sensors&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;logcheck means watching your email every hour, and adding in yet &lt;em&gt;more&lt;/em&gt; ignore rules for things your server thinks it's perfectly OK to spit out.&lt;/p&gt;
&lt;p&gt;smartmontools means waiting to see which attributes it's going to complain about, making sure it's set up to mail you about bad sectors, and getting this all in inside the 128-character line-length limit.&lt;/p&gt;
&lt;p&gt;And lm-sensors, well that takes a lot of tweaking, to get all the alarms to stop ringing, labelling the right temperatures, and ignoring the disconnected pins.&lt;/p&gt;
&lt;p&gt;Ugh, it's painful work, but it helps in the long-run...&lt;/p&gt;</description><category>debian</category><category>hardware</category><category>monitoring</category><category>software</category><guid>http://tumbleweed.org.za/2007/02/25/getting-servers-line</guid><pubDate>Sun, 25 Feb 2007 11:54:34 GMT</pubDate></item><item><title>Horrific performance with 3ware RAID</title><link>https://stefanorivera.com/posts/2007/02/16/horrific-performance-3ware-raid/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;I've been enjoying our server at &lt;a href="https://uk2.net/"&gt;UK2.net&lt;/a&gt;. It's a pretty speedy machine (although a little light on RAM - I suspect that they don't want people running Xen), and it's connected to a fat pipe.
But I've been experiencing a lot of bad lockups.&lt;/p&gt;
&lt;p&gt;I traced the problem to &lt;a href="http://www.postfix.org/postmap.1.html"&gt;postmap&lt;/a&gt;ing the &lt;a href="http://www.uceprotect.net/en/index.php"&gt;uceprotect.net&lt;/a&gt; RBL file. They recommend that you rsync this file from them, and then postmap it into a fast lookup database for postfix, rather than using their DNSRBL service. But running the postmap was taking my box 40 mins. The same operation, on a loaded, lower-spec, 2 year old server took 2 mins (yes this server also has RAID1 on the volume concerned). On my UK2 box, while the postmap was running, the machine became totally unresponsive, and it could take a minute or two to log in, serve a web page, or even execute a basic command like &lt;code&gt;ps&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Clearly something wasn't right. And it was something in the IO system. The only answer is the 3ware RAID controller. (It's a 8006-2, doing RAID-1) I know these controllers have a big buffer, so I looked up the 3ware website, for &lt;a href="http://www.3ware.com/KB/article.aspx?id=11050"&gt;tuning guidance&lt;/a&gt;. I followed it to the letter, and things didn't really improve. I tried the deadline scheduler, and tweaking the buffers, but it only got marginally better.&lt;/p&gt;
&lt;p&gt;Personally, I've always used software RAID, even for RAID-5, and I've never had bad performance like that. And having the RAID in a portable format has really helped with recovery in the past. I understand that Windows monkeys have to use hardware RAID (because their software RAID sucks so much), but is this kind of performance normal?&lt;/p&gt;
&lt;p&gt;I've asked UK2 to chuck my controller and give me software RAID :-)&lt;/p&gt;
&lt;h3&gt;Update&lt;/h3&gt;
&lt;p&gt;I've now got software RAID 1, and postmap runs in 25 seconds. That's what I call a 60x speed improvement :-)&lt;/p&gt;
&lt;p&gt;Oh, and the system is totally responsive while the postmap runs.&lt;/p&gt;</description><category>3ware</category><category>hardware</category><category>linux</category><category>raid</category><category>software</category><category>uk2</category><guid>http://tumbleweed.org.za/2007/02/16/horrific-performance-3ware-raid</guid><pubDate>Fri, 16 Feb 2007 08:01:54 GMT</pubDate></item><item><title>Bloody heat</title><link>https://stefanorivera.com/posts/2007/01/28/bloody-heat/</link><dc:creator>Stefano Rivera</dc:creator><description>&lt;p&gt;My cheapo desktop Planet Gigabit switch died of heatstroke today. (or at least the port my desktop PC plugs into did)&lt;/p&gt;
&lt;p&gt;The sooner this heatwave ends, the better.&lt;/p&gt;</description><category>hardware</category><guid>http://tumbleweed.org.za/2007/01/28/bloody-heat</guid><pubDate>Sun, 28 Jan 2007 14:19:01 GMT</pubDate></item></channel></rss>