Vacation 1.2.7.0 Released!

I’m happy to announce the release of Vacation 1.2.7.0.

This is a complete rebase of the current Vacation code base from the closely related version at http://savannah.nongnu.org/cvs/?group=vacation which had been released under the two clause BSD license (no advertising clause).

This means Vacation finally links legally with the GPL’d GDBM (something I don’t believe people previously realised)!

New features in this version are:

  • Vacation will not reply to emails that have the SpamAssassin “X-Spam-Status: Yes” header, thanks to Roberto Piola.
  • It uses the OpenBSD secure string handling functions strlcat and strlcpy and use of sprintf has been changed to snprintf to enhance resilience.
  • Vacation now uses Eric Raymonds rfc822.c library from his Unix Cookbook for much better parsing RFC2822 email addresses.
  • Should (hopefully!) compile on FreeBSD thanks to Marshal Newrock.
  • Vacation will silently create its database if it is missing (previously it just crashed!).
  • Lots of bug fixes!

This version (still) does not implement support for folded headers for those headers it worries about (From:, Reply-To:, etc), that requires a major reworking of the code that is currently underway in the trunk of the Subversion repository.

Thanks to all those who’ve submitted bug fixes, requested enhancements and sent patches, especially Roberto Piola, Marshal Newrock and Daniel Pittman.

You can download the program from http://sourceforge.net/project/showfiles.php?group_id=3852&package_id=3820&release_id=611078.

Recovering files from a ZFS/FUSE snapshot under Linux

A week ago I had a hairy crash when stopping ZFS/FUSE on my box, which I mentioned on the ZFS/FUSE mailing list. I upgraded from 2.6.25.4 to 2.6.26-rc7 and in the process blew away the kernel build tree for the 2.6.25.4 kernel to recover the disk space. Shortly after that I received a query off-list from Miklos Szeredi, the FUSE maintainer, asking if I could supply him a disassembly of the offending function from the kernel build – which was now consigned to the bit bucket. 🙁

Fortunately I’ve been regularly rsync’ing various important parts of my computer onto ZFS/FUSE partitions and snapshoting them with timestamps so I (theoretically) was only a few commands away from getting to the defunct kernel tree once more. The problem is that unfortunately you can’t look at a ZFS/FUSE snapshot directly at the moment, it’s one of the parts that is still to be gotten working under Linux.

Luckily there is a trick to be able to get access, which is is to create a clone of the snapshot. The ZFS Administration Guide describes a clone thus:

A clone is a writable volume or file system whose initial contents are the same as the dataset from which it was created. As with snapshots, creating a clone is nearly instantaneous, and initially consumes no additional disk space. In addition, you can snapshot a clone.

The magic command to do this was just:

zfs clone ZFS/home@20080606-2201 ZFS/temp

and suddenly I had /srv/ZFS/temp, a fully working version of this machines /home directory as it was around 10pm on the 6th June and in it was the kernel tree.

Very nice!

Applying Graphics Cards to Password Cracking

On the Beowulf list there has been a long thread on GPGPU and especially nVidia’s CUDA language. As part of it Prentice Bisbal posted about a friend of his, Mario Juric, who decided to write a proof of concept MD5 password hashing program to take advantage of CUDA.

In his message to the Beowulf list Prentice quoted Mario saying:

If you attempt to compute a single hash on an entire card, you won’t get any improvement. Same as you wouldn’t if you tried it on a single vs. quad core CPU. But if you compute four hashes, than single vs. quad makes a huge difference. And the GPU cards are effectively 128 core CPUs, so when you need to compute millions of hashes…

Now Mario Juric (who organised the AstroGPU workshop) has put up a web page on the program, which gives details of the sort of performance he got with a quick hack.

One way of visualizing this is noting that a single 8800 Ultra could brute-force break an MD5 hashed password of eight or less characters+numbers (A-Z, a-z, 0-9) in about ~16 days.

But this really is just a quick hack:

The MD5 code used here was written in less than 2 days, as a proof-of-concept, and with only a single one-liner GPU-specific optimization.

Of course if people do want to try playing with it the program is available, though at the moment there isn’t a software license included with it. I’ve emailed Mario about the license to see if he can clarify what the rules are.

Searching Photos by Drawing a Picture

OK, so maybe you’ve got a few hundred, or thousand, photos that you’ve taken, but how do you search them ? You could try and tag them for everything (if you’ve got the time) but wouldn’t it be nice if you could just draw a picture and search for that ?

Well the Digikam folks are working on that by incorporating some of the existing ImgSeek projects code into the KDE4 version of Digikam (0.10.0).

They’ve got a short video demo of it up on YouTube (embedded below).

Designing and Building Parallel Programs available online

Found via Ian Fosters blog on “Free Books“, his paper book “Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering” is available online at ANL for reference for no cost (though you’re not allowed to archive a copy without permission).

This isn’t something new, mind you, it was done 13 years ago in 1995 – quite forward thinking!

Vacation 1.2.7.0 rc1 released

This is the first release candidate for vacation 1.2.7.0 and fixes a segmentation fault for a broken Reply-To: header where there is no address specified.

I’ve also added a KNOWN_BUGS file which lists the fact that vacation currently doesn’t cope with multi-line (wrapped) headers, this is scheduled to be fixed in 1.3 and work is in progress in the SVN trunk for this.

Please test this and report back – if you find any problems please do report them!

Download the release from SourceForge.

Adobe Opens Flash 9 Specification (Updated)

As part of Adobe’s OpenScreen project to get Flash onto more devices they have just openly published the Flash 9 specification, with what appear to be no restrictions on their part (that I can see). The OpenScreen site seems to confirm it, listing their moves as:

  • Removing restrictions on use of the SWF and FLV/F4V specifications
  • Publishing the device porting layer APIs for Adobe Flash Player
  • Publishing the Adobe Flash® Castâ„¢ protocol and the AMF protocol for robust data services
  • Removing licensing fees – making next major releases of Adobe Flash Player and Adobe AIR for devices free

This is great news, suddenly Flash becomes an open standard and the projects to create open source viewers for it suddenly should have a lot of the information that they need. It doesn’t remove all the issues though, some of the codecs that can be employed are patented and can themselves attract licensing fees, but it does appear that they are not required (unlike OOXML, which requires MP3 for audio content for example). It also means that people wanting to implement open tools to create Flash content, or export to Flash, will have their job made a lot easier too.

Hats off to Adobe – better late than never!

Update: This also includes the FLV/F4V specification too!

Found via the ever excellent LWN..