usmb lets you mount SMB shares as unprivileged users via FUSE, in the vein of Windows’ Map Network Drive facility. It differs from the other FUSE SMB filesystems (fusesmb, SMB for FUSE) in that it doesn’t have Network Neighbourhood functionality: this means that you can mount shares that you can’t see via NetBIOS browsing.
Git repository:
Beta release compatible with Samba 3.0, 3.2, 3.3 and 3.4: usmb-20100212.tar.gz.
Stable release compatible with Samba 3.0, 3.2, 3.3 and 3.4: usmb-20090411.tar.gz.
Earlier releases are available on request.
Licence: GNU General Public Licence version 3.
Pre-requisites: glib 2.6 or later, libxml2, FUSE 2.6 or 2.7, Samba 3.0.24 or later.
I have seen trouble communicating with Windows 2K3 servers with Samba versions earlier than 3.0.24.
FAIL: FAult Injection Library
FAIL lets you hook almost all Linux system calls and Standard C functions, letting you override the return value and errno. You can thus inject faults, such as failed memory allocations, into applications without having to modify the application. The current implementation allows you to do this periodically with a different period for each hooked call:
FAIL screenshot
This is alpha-quality code.
Source: fail-20080420.tar.gz.
Licence: GNU General Public Licence version 3.
Pre-requisites: Qt 3.3.
Cygwin Mirroring
Two scripts that generate a mirror of the necessary parts of a Cygwin repository containing a given list of packages and their dependencies. It also creates a custom setup.ini file such that all of the packages are installed by default.
Put the two scripts in a directory and make them executable. To mirror the necessary packages to install an OpenSSH server:
$ OUTDIR=/tmp/openssh-mirror ./ openssh sed
(sed is erroneously omitted from Cygwin's OpenSSH dependency list.) Make /tmp/openssh-mirror available on a Windows box and double-click setup.exe therein. Use the appropriate local directory as your installation source.
Countdown is a television quiz programme on Channel 4 in the UK. Each show has two Numbers rounds where contestants must compute a given three digit number using six given one or two digit numbers and the four basic arithmetic operations.
Solving this mechanically is an interesting programming exercise: evaluating arithmetic expressions is basic Computer Science undergraduate material; producing the expressions to evaluate is more challenging: the number of expressions with m operators over n operands is mn-1C(n), where C(n) is the nth Catalan number.
This program solves this problem. (Well, sort of. It doesn’t consider solutions that use fewer than the six given numbers as they’re normally trivial, and presents the answer in reverse polish notation.) Two interesting observations from its execution are:
  1. Although the general problem with n given numbers has exponential running time, if a solution to the problem exists then the program finds it quickly (typically within half a second). Exhausting the solution space for the Countdown problem takes just over 6 seconds on a 1.5 GHz Celery.
  2. If a solution to a given problem exists then typically many other solutions for that problem exist too.
Linux version of the Solaris prtvtoc command. Useful for respinning bootable SPARC CDs on a non-Solaris box.
Extremely useful but omitted from Linux installations unless you install a nameserver. Here’s my version.
Minimal pop-up clock for X11. Creates a 1x1 pixel window in the top left corner of the display. Move the pointer over it pop up a clock. Move the pointer out of the clock to hide it again. Click the clock to keep it visible. Press a key while the clock has the focus to quit. Source.
This script gives a simple tar-style interface for unpacking RPM files. Requires rpmoffset but not the rpm package.
Note: I can’t call the script just rpm because IIS thinks that any URL without a file extension is really a directory and stuffs / on the end. Thanks, but I know what I’m doing, and don’t need IIS to do things for me. (This is related to Windows’ obsession with file extensions in general, which leads to a whole host of security problems.)
Originally developed for my embedded MP3 player in my Hi-Fi system, my MP3 player software, um, plays MP3 files. It uses mad for MPEG decoding and OSS for noisemaking. UI output is to a terminal or to an HD44780 LCD on the parallel port. Control is via the keyboard or a USB attached remote control. It is probably of no use to you unless you change where it looks for MP3 files (/mp3 by default) or write a new playlist plugin.