I typically spend some time during the down week following Christmas each year to indulge my inner geek and learn some new technology. I have no programming background apart from an eight-week college tutorial in BASIC, so it’s always an adventure. I learn by diving in and doing.
This year I focused on learning Mambo, an open-source content management system, and Samba, the widely respected file-sharing utility. I found both packages impressive in their power and scope but frustratingly difficult to learn and use. I think this accessibility issue continues to be open source’s weak point because the audience of SMB and home users who are the best candidates for low-cost open-source solutions are too inclined to just throw up their hands and walk away rather than deal with all the complexity.
A good example is Samba. My goal this holiday was to set up a simple Linux-based file server to host my business documents. Only two people needed to access the server and both needed universal read/write permission, since we frequently alter each other’s files. A directory created by one user needed to inherit the open permissions of its parent.
In Windows, the process of setting up a share like this takes about 30 seconds. In Samba on Linux, it took me the better part of two weeks, involved two complete re-installs of the operating system and probably a dozen hours of tinkering. I think it works now, but I’m still not 100% sure.
The Linux portion was a snap. Ubuntu Linux is a fantastic distribution. It installed easily and includes a nice suite of office applications and utilities. This distro has totally changed my thinking about desktop Linux. However, you can’t host a Windows directory on Linux. Samba is a great technology that runs on just about every operating system ever invented and allows file exchange with Windows.
The problem for me was that Samba takes a much more disciplined approach to security than Windows. It’s as if the developers couldn’t comprehend why anyone would ever want two users to have unfettered access to the same directory. I found a widely cited tutorial online by a blogger who set up a Samba/Ubuntu file server for $80. His instructions worked great until I got to the PhP administration section, at which time the console either didn’t launch or wouldn’t let me in. I got the share to work, but the permissions were still locked down.
Then I found this tutorial by none other than John Terpstra, the inventor of Samba, detailing how to set up a simple anonymous read/write share. Eureka! This tutorial eventually solved my problem, but it was no simple task.
Setup involved typing in a lot of Linux commands, editing Samba configuration files and setting up each PC that needed to access the directory. One problem is that different Linux distros use slightly different commands. Terpstra was using SUSE Linux and I was on Ubuntu. A couple of the commands in the tutorial simply elicited error messages from Ubuntu. Also, a command to create multiple directories bombed in Ubuntu, which wouldn’t give the needed permissions. At one point, Ubuntu refused to let me modify the critical smb.conf file. That required me to dive down another hole looking for a command that would bypass that restriction.
It seemed that in each case, I would get three-quarters of the way through the tutorial and then something would fail. Because I’m not good enough to undo my mistakes, I had to reinstall Ubuntu twice to clean up the mess.
The happy ending is that I now have an 833MHz Compaq Deskpro with a 320GB hard disk happily purring away and quickly serving files over the network. The whole setup cost about $250. Ubuntu’s reliability has been fantastic and Samba is impressive in its power and the range of options it provides.
Still, I was frustrated by the hours of work that it took to get there. My techie readers will say that I’m a fool for not learning more about Samba before starting the project. They’re right, but I suspect most advanced amateurs like me prefer to just start tinkering. In any case, I found the Samba documentation to be dauntingly complex. The online tutorials were much easier to navigate.
Windows still holds the edge when it comes to ease-of-use. This is the Achilles heel of most open source programs that I’ve used. I think open source programmers have a hard time giving up flexibility for the sake of usability. Microsoft got comfortable with that tradeoff many years ago and that’s why it’s so popular with small businesses.
Next, I’ll talk about my Mambo odyssey, which was fulfilling and frustrating for a whole different set of reasons.