Tony's ramblings on Open Source Software, Life and Photography

Photo Browser Alpha Video

Well, the thumbnail browser for my photography workflow application is complete. The next step is to finish designing the UI around it, and then link it with a database, etc. to keep track of photos.

Here's a video of it in action. Keep in mind this is early Alpha. It loads in thumbnails and rotates and reflects them on the fly. The farther and faster you drag your mouse over the images, the faster they go, and they continue to spin and slow down after you let go.

Working On A Photo Manager

I'm working on a photo manager for Linux with a kinetic scrolling feature in Python. So far so good. The thumbnails are actually being rendered, tilted and reflected by my code. Unfortunately Python can't do perspective transforms, only sheers, so you get a bit of a top-down view.

Another Senior Portrait

Whitley Senior Portrait shotHere's another "Senior Portrait" for Whitley. I'm loving the new 50mm Prime lens. I was afraid it would be cropped too close for portrait work, and it almost is, but it's working out rather nicely.

It was blowing cold and about 15 degrees for this shot, so we didn't tarry and only got the one really usable shot out of the 30 or so taken. Lit with sunlight filtered through the trees behind me and over my left shoulder. No reflector was needed, because the snow did nicely to provide a nice all around soft fill.

First I used LightZone for Linux to do the RAW conversion and relight the image, reducing the shadows on her face and add a high-key effect. Then I used Gimp to do a bit of reconstruction of her hair due to some wild strands blowing in the wind, and softened up her skintone and brightened her eyes. I also prefer to use Gimp for the final image sharpening.


Ubuntu "Karmic Koala" to include Eucalyptus

Some people may not know, but Canonical, the company that manages development of the open-source Linux based operating system "Ubuntu", tags their releases a couple of ways. First, the release number is determined by the month and year it's released. For instance, Ubuntu 8.10 was released in October of 2008. They also tag an animal name with each release: "Gutsy Gibbon", "Hoary Hedgehog", "Intrepid Ibex", "Jaunty Jackalope" (due in April) and now "Karmic Koala" for October.

The kismet part is that "Karmic Koala" will be the first release to include Eucalyptus, which one can only hope was not named specifically for the Ubuntu release.

Eucalyptus is an open-source cloud computing platform that allows you to build your own cloud infrastructure similar to Amazon's EC2. With it, you can dynamically assign resources as your computing needs grow and shrink.

One of the big fears of cloud computing has been what happens when the cloud goes down? What if a fiber line is cut and your office can't reach Amazon's or Google's servers anymore? What if Amazon wakes up and decides one day they don't want to host cloud applications anymore? With Eucalyptus you can have your own cloud, running in your own datacenter.


The New Lens

Annika High KeyI've been playing around with my new 50mm prime lens. For portrait it seems that about F5 is perfect to give a well blurred background while still sharp on the subject. Here's a test shot of Annika at the park.

Unfortunately it was extremely cold that day, after just having a nice week in the 60's it was about 33 degrees so we only stayed at the park a few minutes. This was the best of the shots.

The Olympus Zuiko Digital F/2.0 is a sweet little prime lens. Being "prime" means that it doesn't zoom. Ever. It's locked in at 50mm - which on the Olympus 4/3 system is equivalent to a 100mm lens on any other camera. This photo was taken at around 6 feet from the subject. This lens will also do macro photography, i.e. flowers, bugs, dust mites, etc. lol.

This shot was taken at F/5.0 which seems to be the sweet spot for portrait photography with this lens. It will go all the way out to F/2.0 but the depth of field drops off significantly.


The Future Of Computing Is Not A Screen

Every so often some blogger who has little understanding of either technology or history will come along and make some futurist post about the future of computing. The latest to draw my ire is Jason Perlow.

Now, don't get me wrong, I'm not bashing Jason's perspective - I'm just disagreeing with it.

Jason puts forth the following premise:

In the not so far off future, computing for most of us will be reduced to remotely delivered subscriber services, running on cheap, commodity high-definition display units.

So far so good, Jason. He says "most of us", and who is the average computer user in the United States today? The person who uses Facebook, checks mail and lives on Youtube. Most people are already running thinclients in that regard and just haven't downgraded their hardware. I think about 40% or more of users could actually have someone secretly change their computer to Linux and they'd simply think Microsoft updated their "theme".

Unfortunately Jason goes on to state:


Configuring OpenVPN on Ubuntu 8.04 LTS

For me, setting up an OpenVPN server on Ubuntu Server was orders of magnitude easier than trying to use a commercial ipsec utility. Here's the steps to take to set up an Ubuntu 8.04 (Hardy) server.

First, be aware this setup makes a few assumptions. First, no bridging of networks is done which means no broadcast traffic and no multicast. I believe most people won't use those, so I'm not even going to try to explain how to make that work - I'm going for a quick and easy setup. Second, the server is on the Internet with a static IP address - or at least has a DNS entry somewhere so that computers on the outside can locate it. Your typical home network won't have a static IP, but with some of the "dynamic DNS" website / utilities, you can get around that restriction.

I'm also not going to try to deal with firewall issues in this HOWTO. If you can disable your firewall and everything works, then get your firewall working afterwards. The best advice I can give there is to allow all traffic to/from the "tun0" (or tun1 or tun2... whatever) device that the VPN creates, and allow incoming traffic on the Internet facing adapter (eth0?) to the TCP or UDP port you configure your server to listen on. It's really not that complicated for a basic setup.

First, become root (sudo su -) and then install the following:

apt-get install openvpn dnsmasq openssl


Printing Theme For

I just implemented a better print theme into this site, so if you want to print out any of the tutorials, howto's or just plain rants, you'll automatically get something much more printer friendly.

CSS is fun!


Auto Customizing Linux Desktops For Enterprise Deployment

I'm deploying 6 more Linux workstations on my network (8.04 LTS) and decided it would be much easier if I could just run one script on each workstation that would install the additional packages I needed for LDAP authentication, configure PAM and nsswitch.conf automatically and standardize the user's desktop environment with a Firefox icon on the desktop and the Firefox homepage to our Intranet workflow system.

There's probably better ways to do this, but a simple script did it for me. First, I configured one workstation, logged in as a new user and configured their Firefox and desktop the way I wanted.

Next, as root I created a working directory called "add2network" and copied the following into it:

mkdir /root/add2network
cd /root/add2network
cp /etc/nsswitch.conf ./
cp /etc/ldap.conf ./
cp /etc/ldap.secret ./
mkdir pam.d
cp /etc/pam.d/common* ./pam.d/
cp /home/user/Desktop ./
cp -R /home/user/.mozilla ./

Next, I created a new script called "" in the working directory and inserted the following commands into it:

apt-get install libpam-ldap libnss-ldap nss-updatedb libnss-db
rm -R /etc/skel/*
cp ./nsswitch.conf /etc/
cp ./pam.d/* /etc/pam.d/
cp ./ldap.* /etc/
chmod 600 /etc/ldap.secret
cp -R ./Desktop /etc/skel/
cp -R ./mozilla /etc/skel/

Next, do the following to make the script executable:

Using OpenLDAP to configure Bind9 DNS Zones

I've recently started migrating much of our network services to OpenLDAP for the backend storage. I've switched completely from NIS authentication to LDAP, and even configured a Samba domain control for the few Windows logins that remain on our network.

For our internal DNS I run Bind9. Bind9 is notoriously hard for the average joe to configure, and to this point I've been using Webmin to manage my DNS entries. That works fine, but Ubuntu doesn't include Webmin packages, so I've been wanting to switch to something else. LDAP for the backend seemed like a perfect match.

At first I investigated using LDAP directly as the backend for DNS. It turns out this is highly experimental, and prevents Bind from doing any caching. The best solution is a package called ldap2dns. With ldap2dns it will automatically generate Bind9 zone files and restart Bind anytime your DNS entries in the LDAP server change.