Information Management and Data Integrity

CA Magazine’s Sept. 2011 issue lists the top 10 tech issues facing the accounting profession, according to the Canadian Institute of Chartered Accountants. The number 1 issue is information management and data integrity.

This corroborates my own professional experience. For too many businesses, there is no way to tell which copy of a document is the one “true” version, all the more difficult if there are multiple copies of the document scattered across personal directories and shared network directories. Almost as bad, there is no way to tell what changes have been made to a document over time, by who, for what reason, and if they were authorized by someone in authority.

Big business solves this in typically big business ways, and with a big price tag. Achievo is a solution for SMEs (and medium organizations that know better).

Re-discovering technology (or how to convert text files from DOS-format to Unix)

I develop on both Windows and Unix laptops for deployment on Unix servers, and invariably forget to save text files from Windows in Unix-format (in Windows, lines end with both the line feed and carriage return ASCII characters, but Unix uses only a line feed). It doesn’t cause any problems, but it’s sure ugly to look at on the server. Googling around, I found the following solution using the tr command.

> mv file file.tmp
> tr -d '\r' < file.tmp > file
> rm file.tmp

After putting up with what was really more of an ugly hack for about a year, I decided it was time to write a quick and dirty shell script to hide the mess – but before reinventing the wheel thought I’d try a quick ‘net search. After all, I can’t be the first one to do this, could I?

Asking Google again for how to convert text from DOS to Unix, but this time including “shell script”, I mostly got the same links to tr, sed, and perl tutorials that I got the first time. There were also a couple links to shell scripts, but almost hidden in the hits was a reference to “flip”, a ~250 line C program that has apparently been the de facto standard command since it was released into the wild in 1998.

flip does a lot more than I was going to implement in my quick and dirty shell script. It detects binary files and leaves them alone unless intentionally overridden. It doesn’t modify files that are already in the specified format, and it preserves file timestamps. It handles user interrupts gracefully and doesn’t leave behind garbage or corrupted files.

Compiling and installing flip from the FreeBSD ports collection took all of 20 seconds. I don’t know why I didn’t find flip a year ago, but think I’ll dig out my venerable Unix in a Nutshell and see what other utilities are out there I could use, but don’t know about.

“New” Lenovo Thinkpad T61 with PC-BSD 8.2

I installed PC-BSD 8.2 on my “new” T61 ThinkPad last week and love it!

FreeBSD is a respected Unix OS for servers. While FreeBSD can be installed on a laptop, including a graphical desktop and applications, it takes time and can require advanced knowledge – especially for the wireless interface. At, we develop server-side enterprise applications, typically for deployment on FreeBSD and other Unix-like servers. I need a reliable laptop development environment, having it run FreeBSD is an advantage – but not if it takes time away from development.

PC-BSD is a FreeBSD distribution that targets end users. Installing, configuring and maintaining is simplified by a new installer, a graphical Software Manager, simplified PBI software packaging format, and the Apps Cafe for software distribution.

I had tried PC-BSD before on my T23 ThinkPad, but found performance understandably lacking. Deciding to upgrade, I found a T61 ThinkPad within my budget, with Intel i965GM graphics and Intel PRO/Wireless 4965BGN B/G wireless interface (both reportedly supported by FreeBSD/PC-BSD).

I first tried installing PC-BSD 9.0Beta1.5. The installer didn’t recognize the T61’s hard drive, but after changing the BIOS SATA controller mode to “AHCI” mode (from “Compatibility”), installation completed without issue. The graphics and wireless interfaces were recognized and configured, but after several minutes of use the display would freeze and the T61 spontaneously reboot. It appeared to be consistent, so I installed PC-BSD 8.2 (the current production release of PC-BSD). The install went smoothly, and there were no display problems afterwards.

The only significant issue I’ve had is that the T61 doesn’t recover from suspend, suspend-to-RAM and suspend-to-disk. However, I can live having to do a full shutdown and haven’t investigated further. Once PC-BSD 9.0 has been released though, I’ll try it to see if both the display and the suspend problems have been fixed.

FreeBSD Shout-Out on Linux Outlaws

I was lucky enough to get a shout-out for FreeBSD from Fab and Dan recently on Linux Outlaws podcast #213. Fab conceded he had “… heard from other people that FreeBSD was a good server” and Dan grudgingly commented “I know it’s a very well used server.” On a Linux podcast, I couldn’t have hoped for more!

The origin of this shout-out was when I was cycling home from work one day listening to Linux Outlaws # 210 (AFAIR). Fab had launched into a tirade (in beautiful Fab fashion) on what a loss it would be to the Linux server community if the CentOS project collapsed (CentOS is a free GNU/Linux distribution based on and functionally identical to Redhat Enterprise Linux). I immediately got off my bike and e-mailed Fab the solution – FreeBSD. Not only is FreeBSD the absolutely best Unix-like server OS, but the FreeBSD project has easily stood the test of time with its genesis in 1993.

I like Linux Outlaws to get a overview of the open source community and updates on foss software projects, new and old (I also like listening to Fab and Dan banter back and forth, although the language is closer to sailor’s than nerd-speak. I admit I’m envious of the attention GNU/Linux attracts, but most of the attention is for desktop features – shiny widgets, graphical applications, etc. When I was selecting a server OS, I wanted a GUI-less interface, minimal cruft between me and the silicon, a stable consistent architecture, good documentation, a reliable release strategy, and a community that felt right. For me, that’s clearly FreeBSD!

FreeBSD Beastie Image
FreeBSD Beastie

(BSD Daemon Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved.)