Vacation 1.27.0 beta 5 released

This release of vacation fixes a brown paper bag bug that broke compilation completely due to a duplicate case statement. Apologies to everyone for not spotting either the bug or the report on the tracker! 🙁

This release also fixes the case where a user who had configured a .forward file for vacation but had not created the database with the -i option (or had the database removed for some reason) would find that vacation generated an error. Vacation will now silently create the database if it is missing.

Please report any problems, I think we’re getting very close to a 1.2.7.0 release!

SourceForge has the released sources.

Google Code Search

If you’re ever looking around for a piece of code to do something, then you should try Google’s Code Search.

For example, say I’m looking for some C code to parse RFC 2822 mail headers (which, strangely enough, I am). I go to codesearch and put in a search term of lang:c rfc2822

That gives me back a bunch of results, but say I want to look for something with a BSD license to use with Vacation, then I just extend that search with a license:bsd term, which gives me the great news that SMail (which I used to run 13-14 years ago now) has a librfc2822 directory, which deserves further investigation!

KDE 4.0.0 is released!

So the announcement is up on the KDE website, Kubuntu has announced its packages and for the past week or so I’ve been running KUbuntu Hardy Heron (currently in alpha, will be 8.04) with it installed and trialing it with a “kde4” test user!

Not bad actually, the final release seems like a massive improvement over earlier versions and I’m not running into the killer bugs that I found previously (to much relief!). The new desktop effects in KDE4 work well with this Intel G33 graphics card (once I’d dropped the Xorg acceleration method back to the old XAA from EXA) and I must admit to being sorely tempted to try it out as my main desktop. I think I might create yet another user for that an experiment first though with a copy of my .kde files.. 🙂

Sears – purveyors of Spyware to the masses ?

I wonder how many people using Windows have been bitten by this new spyware, as related by the Computer Associates Security Advisor Blog ?

Sears.com is distributing spyware that tracks all your Internet usage – including banking logins, email, and all other forms of Internet usage – all in the name of “community participation.” Every website visitor that joins the Sears community installs software that acts as a proxy to every web transaction made on the compromised computer. In other words, if you have installed Sears software (“the proxy”) on your system, all data transmitted to and from your system will be intercepted.

The mention of “banking logins” is to get your attention, because as this apparently hoovers up all your traffic it will get whatever you do, presumably including credit cards, etc.

They also have an interesting take on how to do privacy policies:

What I have come to learn is that if you navigate to http://www.myshccommunity.com/Privacy.aspx you could actually get one of two policies. […] If you access that URL with a machine compromised by the Sears proxy software, you will get the policy with direct language (like “monitors all Internet behavior”). If you access the policy using an uncompromised system, you will get the toned down version (like “provide superior service”). Both policies share the same URL and same look and feel – coloring, page layout, Kmart and Sears branding, etc.

In other words they have a policy that implies that it’s inoccuous prior to installation, which then springs into sharp relief once you’ve crossed the Rubicon and installed their spyware – nice touch!

(Via Bruce Schneier)

SMP implementation of bzip2

Here’s something of a find, courtesy of Jordan Mendler on the ZFS/FUSE mailing list, an SMP implementation of bzip2 called pbzip2 by Jeff Gilchrist:

PBZIP2 is a parallel implementation of the bzip2 block-sorting file compressor that uses pthreads and achieves near-linear speedup on SMP machines. The output of this version is fully compatible with bzip2 v1.0.2 or newer (ie: anything compressed with pbzip2 can be decompressed with bzip2). PBZIP2 should work on any system that has a pthreads compatible C++ compiler (such as gcc). It has been tested on: Linux, Windows (cygwin & MinGW), Solaris, Tru64/OSF1, HP-UX, and Irix.

It’s packaged in Ubuntu (in Universe) and testing on this quad core Intel box (2.4GHz with 4GB RAM) on a 712MB tar file in comparison with the standard bzip2 showed pretty impressive performance!

Standard bzip2 compression:

chris@quad:/tmp$ time bzip2 -v backup-20020122.tar
backup-20020122.tar: 1.531:1, 5.227 bits/byte, 34.66% saved, 746250240 in, 487572628 out.

real 2m32.331s
user 2m29.593s
sys 0m0.976s

Standard bzip2 decompression:

chris@quad:/tmp$ time bunzip2 -v backup-20020122.tar.bz2
backup-20020122.tar.bz2: done

real 0m56.215s
user 0m54.519s
sys 0m1.136s

Parallel bzip2 compression:

chris@quad:/tmp$ time pbzip2 -v backup-20020122.tar
Parallel BZIP2 v1.0.1 - by: Jeff Gilchrist [http://compression.ca]
[Mar. 20, 2007] (uses libbzip2 by Julian Seward)

# CPUs: 4
BWT Block Size: 900k
File Block Size: 900k
-------------------------------------------
File #: 1 of 1
Input Name: backup-20020122.tar
Output Name: backup-20020122.tar.bz2

Input Size: 746250240 bytes
Compressing data...
Output Size: 487531723 bytes
-------------------------------------------

Wall Clock: 41.335455 seconds

real 0m41.338s
user 2m40.962s
sys 0m2.248s

Parallel bzip2 decompression:

time pbzip2 -v -d backup-20020122.tar.bz2
Parallel BZIP2 v1.0.1 - by: Jeff Gilchrist [http://compression.ca]
[Mar. 20, 2007] (uses libbzip2 by Julian Seward)

# CPUs: 4
-------------------------------------------
File #: 1 of 1
Input Name: backup-20020122.tar.bz2
Output Name: backup-20020122.tar

BWT Block Size: 900k
Input Size: 487531723 bytes
Decompressing data...
Output Size: 746250240 bytes
-------------------------------------------

Wall Clock: 18.078961 seconds

real 0m18.081s
user 1m3.516s
sys 0m1.776s

So that’s almost a x3.7 speedup over the single CPU version, not bad!

Oh, and yes, there is an MPI version available too, called mpibzip2.. 🙂

Taking the plunge (updated)

I’m about to try and upgrade this blog from WordPress 2.0.11 to 2.3.2, expect breakage for a while!

Updated

That was quick (as ever) – I’m now running 2.3.2 – now for the plugins..

OK – plugins done and theme hacked to do a better job at being a variable width theme!

Electronic voting report in Ohio

Ohio has published a report on an investigation into electronic voting machines, Wired reports on it, summarising one particular finding thus:

They found that a voter or poll worker with a Palm Pilot and no more than a minute’s access to a voting machine could surreptitiously re-calibrate the touch-screen so that it would prevent voters from voting for specific candidates or cause the machine to secretly record a voter’s vote for a different candidate than the one the voter chose. Access to the screen calibration function requires no password, and the attacker’s actions, the researchers say, would be indistinguishable from the normal behavior of a voter in front of a machine or of a pollworker starting up a machine in the morning.

…and if you think that’s bad enough, then here’s an interesting comment from a collection of complaints about voting in Florida in 2006 that were assembled after an FOI request:

Vote for one candidate registered as vote for different candidate

Upon opening ballot for first time voter saw “x” by Katherine Harris’s name though voter had not touched screen yet.

So the machines are quite capable of getting things wrong without a malicious attack (well, assuming that wasn’t the cause in the above events).

So, who would you like to win today ?

(Via Bruce Schneier)

Emerging Linux Filesystems

In July I was commissioned to write an article for LinuxWorld called “Emerging Linux Filesystems” which they published in early September in three parts. Part of the deal was that there was a 90 day exclusivity period for them before I could republish it elsewhere, which has now lapsed.

So you can now read the article in its original (single page) form complete with inline images and graphs and covering Ext4, NILFS, btrfs, Reiser4, ChunkFS and ZFS under both FUSE on Linux and OpenSolaris. Enjoy!

My thanks to Don Marti of LinuxWorld for commissioning (and paying for) the article and to Dragan Dimitrovici of Xenon Systems for the loan of the test system!