Systems archived articles

Subscribe to the RSS feed for this category only

Systems05 Jan 2006 at 14:45 by Jean-Marc Liotier

Nowadays, apt has built-in support for GPG verification of package signature. It was silently doing its business of verifying the integrity of Debian packages until a couple of days ago when an ‘apt-get update’ yielded the following error :

W: GPG error: http://ftp2.fr.debian.org testing Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 010908312D230C5F
W: GPG error: http://ftp2.fr.debian.org unstable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 010908312D230C5F
W: You may want to run apt-get update to correct these problems

Apt is complaining about a package signed with a key it does not know about. We need to import it into the GPG keyring and then tell apt about it. So let’s issue the two following commands as root :

# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 010908312D230C5F
# gpg --armor --export 2D230C5F | apt-key add -

And that’s it… We’re now back to our regularly scheduled programming…

Brain dump and Systems04 Jan 2006 at 18:34 by Jean-Marc Liotier

Can you believe that as of today the string “collaborative adblock” yields no hits on Google ? For now there is the centraly managed list of blockable advertisement at yoyo.org. Conversion scripts make the list available in a large number of popular ad blocking formats and there is even an Adblock filterset updater available for it as a Mozilla extension. You can submit your own items, that is a start. But wouldn’t a truly distributed collaborative peer to peer sharing of Adblock items be staggeringly more powerful ? Something made robust with a reputation system… Let’s seed the meme !

Mobile computing and Systems22 Dec 2005 at 21:14 by Jean-Marc Liotier

Slugishness and random soft resets… The banes of the Treo 650… I first attributed the problem to Palm OS being a bit out of its depth on such a complex device. But the randomness was too high – I could not correlate the problem with any specific application nor could my favorite inside source at Orange nor apparently any of the people involved with debugging the Treo there. It had to be a hardware problem.

With time and aggravation came the insight that all these problems might be correlated to SIM accesses. My engineering friend at Orange suggested using a piece of paper stuck in the tray to hold the SIM steadier. It did improve the situation somewhat. Later I found that during a sluggishness event, pushing hard on the tray sometimes instantly gets the system back to normal speed.

So it definitely looks like the system barfing on SIM access problems. These problems should not take place and they are caused by a bad SIM tray design. But the operating system should handle them more gracefuly, for example with a “SIM not available” dialog.

Meanwhile I have found another solution that seems to support the SIM access hypothesis : Cingular Wireless proposes a Treo 650 SIM Tray Replacement that works somewhat like the piece of paper jammed in the original tray. So get that and meanwhile remember to push hard on the tray when sluggishness occurs. I am now looking for a way to get that new SIM tray in Europe…

Systems22 Dec 2005 at 20:53 by Jean-Marc Liotier

The Treo 650 is the synthesis of all that I tried to achieve ever since I first connected my Palm Pilot 1000 (with the Palm III upgrade) to the Ericsson SH-888 I got after breaking my beloved Ericsson GH-388. It is my best defense against chaos and my best ally in Getting Things Done. Without it, keeping pace with an increasingly complex and accelerating life would be a hard problem.

By the way, taking inspiration in the the methods related to David Allen’s Getting Things Done really does improve productivity while requiring less energy and generating less stress. My favorite arsenal for implenting it includes :

  • A smartphone
  • A bunch of wikis – some collaborative, some personnal
  • Ticket tracking systems

The “work smarter not harder” mantra may be overrused but it does actually apply here… I love my Treo 650 !

The integrated keyboard is surprisingly pleasing to use for small messages and quick notes, but be sure to use the Treo with a foldable keyboard with full-size keys so that you can input large quantity of text painlessly. Unless you need to access heavy documents on the move a laptop suddendly does not make much sense anymore…

Photography and Systems22 Dec 2005 at 13:34 by Jean-Marc Liotier

OneTouchPhotoDumpToJournal.sh is a trivial script I wrote that saves me much manipulation each time I come back to my workstation with removable media full of photos. It copies all images from a removable media to the directory of the day (created on the fly if not existing), autorotates them and sets the permissions right. It is what I use prior to putting the pictures in an appropriately named directory and running dir_date_serial_rename_all.sh to name them according to my standard.

Photography and Systems21 Dec 2005 at 16:33 by Jean-Marc Liotier

Canon Eos digital cameras name their files “img_XXXX.jpg” where ‘XXXX’ is a number beween 0001 and 9999. Considering how many pictures we take, duplicate names come fast. In addition, that name is desperately lacking any meta-information that may help in making the file manageable.

So as part of my workflow I have defined a photo file naming scheme that includes the date, the time and the session that picture belongs to. What I define as a session is a group of pictures with a unity of time, place and/or action. I believe I have found a good choice of minimal meta-information to pack in the file name to make it both unique and useful to humans.

The datetime of acquisition is found in an EXIF tag embedded in the file. I deduce the session from the parent directory name because putting all pictures belonging to a single session into an approprietely named directory is what immediately follows my automated download and lossless rotation routine.

Because I am a very lazy person I have of course automated all that. So here is dir_date_serial_rename_all.sh – a small shell scripts that automates my habit of picture files renaming.

This script takes all files in the current directory and renames them using the following pattern :
current_directory_name.date.time.camera_serial.extension

For example :
"my current directory/img_6051.jpg" taken the 2nd of December 2005 at 9:07:59 AM (according to the embedded EXIF metadata)
becomes
my current directory/my_current_directory.20051202.090759.6051.jpg

Systems and Travels29 Nov 2005 at 14:23 by Jean-Marc Liotier

My real time earth view used to only feature a view centered on Europe, Middle East, Africa and the Atlantic. I now also provide an Asia centered one and another one centered on the Americas.

As before, views are calculated every handful of minutes, cloud cover is updated eight times a day and the daylight background map is NASA’s Blue Marble‘s monthly map automatically rotated in place the first day of each month.

The available views and resolutions :

Systems05 Nov 2005 at 17:24 by Jean-Marc Liotier

While looking for a way to remove the <meta name="ROBOTS" content="NONE"%/> meta tag from some of the pages produced by Geneweb I stumbled upon a relatively new tool with interesting potential – mod_publisher :

Mod_publisher turns the URL mapping of mod_proxy_html into a general-purpose text search and replace. Whereas mod_proxy_html applies rewrites to HTML URLs, and in version 2 extends that to other contexts where a link might occur, mod_publisher extends it further to allow parsing of text wherever it can occur.

Unlike mod_proxy_html there is no presumption of the rewrites serving any particular purpose – this is entirely up to the user. This means we are potentially parsing all text in a document, which is a significantly higher overhead than mod_proxy_html. To deal with this, we provide fine-grained control over what is or isn’t parsed, replacing the simple ProxyHTMLExtended with a more general MLRewriteOptions directive.

My feeling is that the authors are considerably understating how much CPU this thing is going to cost. Production-minded people were certainly cringing at that thought while reading the description, but I foresee immense power for hacks of last resort.

Systems05 Nov 2005 at 17:05 by Jean-Marc Liotier

By default Geneweb asks robots to abstain from indexing the pages it generates. I wanted to :

  • Make the content of my genealogy database indexable by search engines.
  • Avoid putting the host under too much CPU load resulting from visits by spiders.
  • Keep the spiders from getting lost into the infinite navigation that Geneweb produces.

It is the special “non-person” pages (such as an ascendant tree) that are the most computationally intensive. It is also these pages that make the navigation infinite. So the functional constraints can be condensed into the following technical ones :

The first step was therefore to bypass the robots.txt generated by Geneweb. I use gwd in ‘server mode’ behind a Apache vhost with mod_rewrite so all I had to do was to add a mod_rewrite directive to hide Geneweb‘s robots.txt with mine :

RewriteEngine On
ProxyPass / http://kivu.grabeuh.com:2317/
ProxyPassReverse / http://kivu.grabeuh.com:2317/
ProxyPass /robots.txt http://www.bensaude.org/robots.txt

But that was not enough because Geneweb embeds a <meta name="ROBOTS" content="NONE"%/> tag into each page it generates. Geneweb provides a separate template for each page class. I guessed that etc/perso.txt is the template for what I call the “person page” and removed the <meta name="ROBOTS" content="NONE"%/> line from it.

And that was it : the person pages do not repulse friendly spiders anymore while the other pages are still off limit.

I love Geneweb !

Systems02 Nov 2005 at 2:24 by Jean-Marc Liotier

The latest addition to the collection of lame scripts I wrote and put online completely automates the trivial yet tedious task of Awstats batch Apache log reports production, with full history and even where multiple vhosts coexist.

And the icing on the cake is that it does it quite efficiently : it always updates the reports for the current month and the current year, but only produces other reports if they do not exist. To force the regeneration of a report, you simply erase it.

If a user wishes to control the access to a report for a vhost he must create a .htaccess file named /etc/awstats/.htaccess.vhost.name.tld
This file will be automatically detected and used. This is dead simple, and it just works.

Grab the code ! It is in production on this very server as the sample output testifies.

Systems31 Oct 2005 at 2:57 by Jean-Marc Liotier

In case you wondered what the display from a heat damaged video card looks like, I have nice specimen available in the photo gallery. This Radeon 9800 Pro is not quite fried but overheating definitely rendered it unusable for all practical purposes. In-game artefacts and cursor artefacts are common symptoms of heat damage, but I had never seen text-mode corruption with garbled text at boot-time. As far as I have understood, such damage is irremediable.

BIOS text output from an overheated Radeon 9800 Pro

The Radeon 9800 Pro is an excellent deal for those wish to extend the gaming life of an AGP based system on the cheap, but much care must be taken in dealing with the ungodly amounts of heat this thing radiates. Even more than usual, stay away from models mounted with cheap fans and tiny radiators or it will only be a matter of time before your Radeon 9800 Pro croaks horribly.

Systems and Travels17 Oct 2005 at 17:21 by Jean-Marc Liotier

The same basic Earth view as before (calculated every handful of minutes with cloud cover updated several times a day) but the daylight background map is now the NASA’s Blue Marble‘s monthly image. The current one is automatically rotated in place the first day of each month… The images were captured during the year 2004 but this is nevertheless a more realistic and lively seasonal change of the land surface: the green-up and dying-back of vegetation in temperate regions such as North America and Europe, dry and wet seasons in the tropics, and advancing and retreating Northern Hemisphere snow cover… Enjoy !

Two resolutions are available :

  • 800×600
  • 1280×1024
  • « Previous Page