Opensource Contact Sheets for Photographers

Creating contacts sheets using opensource software

One of the disadvantages to being a pretty active photographer is trying to handle archiving old shoots and being able to quickly locate a certain shot amongst thousands of directories of RAW stills, which may not be present on your local media. Enter the humble contact sheet.

Written By
Jeff

Modifying Computar 12.5mm C-mount lens for M4/3

For whatever reason, there seems to be a serious dearth of information regarding lens modification on the C-mount Computar 12.5mm f/1.3 lens. I am going to share my experience modifying this lens, in the hope that it will prevent other people from having the same issues which I have encountered.

Written By
Jeff

DIY $7 Film Slate

A cheap slate for seven dollars

I can’t claim credit for this one – my extremely talented and resourceful production designer got the idea to use an inexpensive slate “prop” and modify it slightly to allow the use of erasable whiteboard markers. These are usually a bit more than seven dollars, and we didn’t have the time to wait for one to arrive in the mail for the shoot in question. There are only two pieces of “hardware” which are required to make this, along with a few pieces of duct tape, a sharpie, a ruler, and whatever whiteboard markers and erasers you are planning to use on the finished slate.

Written By
Jeff

Checking for deprecated Wordpress functions

A script to help make Wordpress development a little less painful.

One of the major pains involved in Wordpress development and work (and one of the reasons why this isn’t hosted on Wordpress anymore) is that of their quickly changing API. I’ve encountered issues where plugins have suddenly (and quietly) stopped functioning, due to a deprecated function call being removed from the Wordpress API. I’m sharing my “solution” to this issue, which is a script (which can be integrated into a CI system), which scans your plugin and/or theme code and gives you a list of the deprecated functions you’re using, as well as where they exist in your code.

Written By
Jeff

Building Ganglia for OpenBSD 4.3

Building the Ganglia monitoring system for OpenBSD 4.3

I recently had to build a modern version of the Ganglia monitoring system for an OpenBSD 4.3 firewall, which hadn’t been upgraded to a modern version of OpenBSD in quite some time. I documented the process, which I’m sharing here.

Written By
Jeff

Expanding Ganglia RRD files

I figured this out trying to resize RRDs for Ganglia in a rrdcached-enabled environment, since expanding initial RRD parameters in gmetad doesn’t affect existing RRD files. Essentially you simply have to declare the RRA index and the expanded size, and this does the rest. rrdtool unfortunately doesn’t make it particularly easy to do this on a large scale, hence the scripting. One-liner to expand RRDs: /etc/init.d/gmetad stop; /etc/init.d/rrdcached stop ; find .

Written By
Jeff

Updated: Linux support for ADS DVD Xpress DX2

In 2007, I had posted a patch for the ADS DVD Xpress DX2 device to work on Linux, but it had been based on an antiquated kernel version, etc. Since then, someone was nice enough to post an updated version of the driver, but without DVD Xpress DX2 support. I put together a patch which ensures that the drivers now compile and use the new I2C and V4L2 APIs. I can’t guarantee that it works, only that it compiles the driver properly now.

Written By
Jeff

OpenBSD pf states monitoring

The simple recipe is to add this to root’s cron: * * * * * /usr/bin/gmetric -c /etc/gmond.conf -n pf_states -v $(/usr/local/sbin/pftop -b | grep pfTop | cut -d/ -f2 | cut -d, -f1) -t int32 -d 120 2>&1 | logger -t pf_states and install the pftop package along with a gmetric binary and a working /etc/gmond.conf configuration file. It might be advantageous to check for the maximum number of states as well.

Written By
Jeff

Backing up MAPI contacts and calendar from Exchange Server

I have a hate/hate relationship with Exchange Server. I hate it, and I’m pretty sure it hates me. Why someone would design a system to expose every bit of data for a system through a nice standard protocol like IMAP, then only allow certain things to be viewed through a piece of crap proprietary protocol like MAPI just boggles the mind. I’m sure it’s part of their “vendor lock-in” thing, but it just pisses me off.

Written By
Jeff

IMAP Synchronization

I hate it. IMAP Synchronization, that is. In an effort to migrate users from one *shudder* Exchange provider to another (after getting shot down for proposing first Zimbra, then standard mail server stuff, then Openchange), I have been going through all of the available IMAP sync software that I could find. mbsync () – We use this for IMAP backup, so I figured it would be a good idea to try it for syncing between two IMAP servers.

Written By
Jeff

Trixbox directory with Cisco Phones

In case anyone may want to use Trixbox with Cisco 79xx phones and wants to use a directory with it, I have put together a hack to deal with the directory services, which nominally require SugarCRM, so that they report simple extensions back in the appropriate format. 1) In the Endpoint manager, make sure that the services URL and directory URL are in the default configuration for Cisco phones, and restart any phones which are running to activate the configuration.

Written By
Jeff

haproxy 1.3.15.3 for NSLU2

The only haproxy load balancer package for the NSLU2 is really, really old, and is installed as “optware” in /opt. With that in mind, here’s the 1.3.15.3 package, installed in root. Package : haproxy_1.3.15.5-2_armv5b.ipk Source : haproxy-1.3.15.5.tar.gz

Written By
Jeff

urlencode for NSLU2

Instead of having to deal with an entire Perl installation on an NSLU2, I compiled a readily available urlencode binary, which takes piped input and encodes it for use in a URL. Tarball : urlencode-armv5b.tar.gz

Written By
Jeff

remserial binary for NSLU2

For all those fans of the venerable NSLU2 (or “slug” as we like to call it), I have another package for OpenSlug/BE. This time it’s remserial, a Linux equivalent to the BSD “netfwd” software, allowing serial ports to be redirected over TCP. Package: remserial_0.2000-1_armv5b.ipk Source: remserial.tar.gz For those enterprising people who would like to use my armv5b-softfloat-linux cross compilation toolchain, I have made it available on mediafire as well. It was compiled with Ubuntu 8.

Written By
Jeff

gmetric binary for NSLU2

Before a friend clued me in to the embedded gmetric project, I had needed to strip out just the gmetric binary for use in monitoring a process on the NSLU2 I was using. So, for anyone who is interested, I have posted both a binary ipkg package for OpenSLUG/BE and a source package containing all of the pieces I yanked from the ganglia 3.1.1 distribution to create it. (Graciously hosted by mediafire.

Written By
Jeff

PERC Controllers and Why Dell Needs a Kick in the Can

This past week, I stumbled on a strange problem with Dell “PERC” RAID controllers in certain rackmount servers, where they would suddenly just stop working for no apparent reason. The nice people at Dell did actually have firmware available for the PERC 3 and 4 controllers to fix this problem, which was pretty nice. The part that *wasn’t* nice was that they were some stupid Windows binaries which required a floppy disk to be inserted.

Written By
Jeff

Roving access point

I finally got around to getting a 12VDC power supply for the car (15 USD, cheap!), so my WRT54G3G-ST is mobile, and I got to enjoy trying out Skype while doing 65mph on the Mass Pike. There’s some sort of gee-whiz factor in all this, but I guess it’s just another way to become more and more endlessly connected.

Written By
Jeff

NSLU2 based load balancer

Another day, another project … A few days ago I put together an NSLU2-based load balancer using haproxy to do the load balancing. If you don’t have an NSLU2, go get one. Those things are incredible, and ridiculously useful. I’m using OpenSlug/BE, but any distro is awesome on these things. Hint: It takes some manual hacking of the haproxy.conf file and the init script to get it working from the optware packages.

Written By
Jeff

Booting an old machine

If you’ve ever been stuck booting an old machine with a bad CD drive, or worse yet, no CD drive and an old enough BIOS not to properly boot a USB drive, you’ve experienced the wallbanger I have today. (and no, PXE boot wasn’t an option) Fortunately, it appears that there is a nice boot floppy which allows booting via network or USB, which is available at … Direct link to the zipped floppy disk image is at etherboot.

Written By
Jeff

Backing up a Motorola RAZR v3m with Ubuntu

I’ve had a Sprint Motorola RAZR v3m for a while, and when the time came to move to a Blackberry (for work), getting the information off of it would have been a horrendous process. Instead, I present a pretty simple way of doing this using the Subversion version of opensync’s sync-moto script. Note that I did this under Ubuntu 7.10 (Gutsy Gibbon): • Get the id by using lsusb: $ lsusb

Written By
Jeff

Modding that old XBox

If you’ve got an old junky XBox around, and would like to put something, well, *useful* on it, like XBMC, then I’ve got a great link for you which allows soft modding without having a copy of any of the exploitable games. Patched xboxhdm 1.9 with exploits will allow you to boot another PC while hotswapping your XBox hard drive into that machine. It has all of the known exploits on it, I believe, so you don’t have to have your XBox connected to another machine or anything, nice and simple.

Written By
Jeff

Deploying GWT Applications with Jetty

I’m not a big fan of tomcat, preferring Jetty where possible. Unfortunately there are a lot of catches involved with getting GWT applications working. I’ll try to break the changes down here. This assumes that you already have a GWT project built and made with projectCreator which you are migrating into Jetty. 1) Pull the start.jar, bin/jetty.sh script (which will be moved to the base of your distribution), lib and etc directories from your Jetty distribution, and put them in $DIST (your distribution directory)

Written By
Jeff

Improved Film Noir rendering

Thanks to my brother, who is much better with gimp-perl than I am, there’s a vastly improved version of the original RenderFilmNoir.pl script, available here. If you get a chance (shameless plug), please patronize his Flickr page, as we does work very hard at being a great photographer …

Written By
Jeff

Linux support for ADS DVD Xpress DX2

I take no credit for this at all, but the maintainer of the go7007 linux driver recently added support for the ADS DVD Xpress DX2 (which until recently was conveniently available at Walmart and other retail stores) after I took a picture of the board and asked him *very* nicely. If you get any kind of mileage out of it and decide that you really *have* to send someone money, please send it to him.

Written By
Jeff

Cisco VPN Client with Ubuntu Feisty

I worked out a simple patch to get the Cisco VPN client working with Ubuntu Feisty, which I’m attaching here.

Written By
Jeff

No more hotlinking images

For those who use Apache 2.x, this is a nice trick to keep people from hotlinking your images. I’ve seen a few variants of it, but this one I picked up most recently from a slashdot comment, of all places. Make sure you have enabled mod_rewrite, then add this in your .htaccess file for any directory with images in it: RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://(www.)?yourdomain.com [NC] RewriteRule .* /files/goatse.jpg [NC,L] to redirect to an awful image, or use my own personal variant:

Written By
Jeff

WRT54G Multiple External IP Trick

To assign multiple external IP addresses to a WRT54G/S, you have to push a multiline variable into the rc_firewall nvram variable (non-volatile ram): nvram set rc_firewall=" iptables -t nat -I PREROUTING -d x.y.z.1 -j DNAT --to-destination 192.168.1.x iptables -t nat -I PREROUTING -d x.y.z.2 -j DNAT --to-destination 192.168.1.x " nvram commit This will protect the changes against being lost when the router is reset.

Written By
Jeff

Ubuntu Dapper studio patched kernel 2.6.17

I have compiled an initial 2.6.17 kernel for Ubuntu Dapper Drake, as described on ubuntustudio.com. It has the EVMS patch needed by Ubuntu as well as the realtime patch installed. This version is not usplash patched. Files : kernel-headers-2.6.17-rt7_1_i386.deb, kernel-image-2.6.17-rt7_1_i386.deb

Written By
Jeff

WordPress 2.0.3 upgrade

I have created a wordpress “diff” which can be applied to easily upgrade WordPress 2.0.1 to WordPress 2.0.3 instead of going through the long and involved method on the WordPress Codex. Use diff and a grain of salt with wordpress-patch-2.0.1-to-2.0.3.gz.

Written By
Jeff

Ubuntu touchpad annoyance

After more than six months of dealing with the Synaptics touchpad driver interpreting my hand brushing against the pad as a “click”, I found a small change to xorg.conf which will take away the sting of using a touchpad with Ubuntu/Kubuntu. Simply add the following lines in /etc/X11/xorg.conf in the InputDevice clause for the touchpad, and restart X: Option "SHMConfig" "on" Option "MaxTapTime" "0" Just had to share that, it took me so long to get up the resolve to actually look for a solution …

Written By
Jeff

Creating TTS Prompts for Asterisk with Realspeak

I was playing around with using ScanSoft Realspeak for Linux, and finally found the “magic sequence” to generate the appropriate GSM prompts for Asterisk. Requires: Standard installation of Scansoft Realspeak 4 with American English Jill voice Debian’s libgsm-tools and sox cd /usr/local/ScanSoft/RealSpeak_4.0 echo " - TTS being performed on $1 ... " export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ScanSoft/RealSpeak_4.0/api/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ScanSoft/RealSpeak_4.0/speech/components/common/ ./standard "American English" Jill ./speech text.txt echo " - Converting to 8000Hz WAV .

Written By
Jeff