usmb
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:
http://repo.or.cz/w/usmb.git.
Beta release compatible with Samba 3.0, 3.2, 3.3 and 3.4:
usmb-20100212.tar.gz.
- Added -u option for unmounting.
- Various cleanups.
Stable release compatible with Samba 3.0, 3.2, 3.3 and 3.4:
usmb-20090411.tar.gz.
- Uses GNU autoconf to avoid editing the Makefile.
- Implements statvfs() with Samba 3.3 (e.g. df now works).
- Uses ftruncate() with Samba 3.2 or later.
- Various bug fixes, including for recursive deletion.
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:
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 ./mirror.sh 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
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:
- 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.
- If a solution to a given problem exists then typically many other solutions for that problem exist too.
prtvtoc
Linux version of the Solaris prtvtoc
command. Useful for respinning bootable SPARC CDs on a non-Solaris box.
nslookup
Extremely useful but omitted from Linux installations unless you install a
nameserver. Here’s my version.
popclock
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.
rpm
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.)
music
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.