grep saves the day…

first off, I’m a total idiot. I was updating my passwords file that I keep encrypted. However, when I went to remove the old file, I typed in the new file’s name and deleted it instead. D’oh!

well, as you might know, unix-like systems do not have an “undelete” facility. When you delete a file, it’s gone. Or so they say.

When you create a file on a unix-like system, or more specifically, an indexed file system, there are entries stored somewhere on disk that tell you (and the rest of the system) how and where to find those files. When you delete a file, that information is gone (depending on filesystem). Now, to the standard user, there is no way of knowing where that file is. In fact, parts of that file could be strewn over different parts of the disk. Things are sounding pretty grim, huh? To make matters worse, when new files are created, there’s the possibility that old files are being overwritten with new data.

“grep” is an old, old unix program that allows you to search for specified strings or regular expressions (e.g. any line containing the word `idiot`) in files. Well, those unix guys were pretty smart when they decided that “everything is a file”, including hard disks. So, you can ask grep to search the file that represents the hard drive in question and search for known strings.

The end result is that I retrieved my passwords (and thus, saving my marriage). It doesn’t change the fact that I’m a total idiot. In fact, knowing that I can recover data this way is probably going to ensure that it happens again. Oy.!


living with Ubuntu…

a little over a year ago, I was investigating linux distributions that would be suitable for the missions field. The distro would need to be easy to use and maintain, while also providing a complete desktop environment. Another requirement was that the distro needed to be fairly standardized. Dealing with infinite configuration possibilities while supporting remote users was not something I wanted to bring upon myself. Also, the distro needed to have excellent support for languages other than english.

There were several options out there, including Knoppix. Knoppix runs off of a CD, a so-called “live distribution”, and no hard drive is required for basic operation. I wasn’t so worried about this aspect, so a traditional, disk-based distro would work just fine.

In my research, I had heard about a relatively new distro called Ubuntu Linux, “Linux for Human Beings”. “hmmm”, I thought. Sounds interesting. Upon further inspection, it offered all the items on my checklist.

So, I have been running Ubuntu linux for a few months now. I’ve installed several packages (pre-packaged software modules), removed some, configured basic things, even installed it as a server at work.

The only thing I can say is, “Wow”. The Ubuntu team has brought linux out of the dark ages, and truly lives up to its tagline, “Linux for human beings”.

Package management is a breeze. It’s lightyears ahead of the RedHat “dependency Hell”. I’d say it’s even slicker than the ports/packages collection for the BSDs. The Ubuntu system allows you to have fine grain control over your updates, or leave things alone with very reasonable defaults. I guess that’s kinda the theme with Ubuntu; reasonable defaults. A fresh install leaves you with a good selection of useful tools without overwhelming you with endless variations of the same software. There is also a focus on including default apps that seem to be very cohesive and have at least a modicum of UI consistency. Granted, much of this is due to the inclusion of Gnome as the desktop, but I feel like there’s more at work than just including Gnome. (For those KDE enthusiasts, there’s a separate distribution that uses KDE instead of Gnome, called, well, “Kubuntu”)

While I’m used to linux distros, and Open Source software in general, having good community support, I must say that the Ubuntu forums are a real treat. RTFMs and trolls are at a minimum, and people are genuinely helpful.

I’ve been using linux for quite some time now, and I’ve used several distros including Red Hat (and Fedora), Slackware (my first distro *eyes swelling*), and I’ve tried out several others. Debian (the distro Ubuntu is derived from) was one of the distros I’ve had the least interaction with. I installed it once on an old SparcStation 5, but didn’t really do much with it after the install. But, after my experience with Ubuntu, I’ve given Debian a closer look. There are a few things that I’ll have to get used to (philosophy-wise), but overall, things are pretty logical and clean for both Ubuntu and Debian. For instance, configuration files are divided quite logically by directory, and not just all lumped into “/etc”. Makes figuring things out on your own a little easier.

All this being said about Ubuntu, there are times when you want to have a bare-minumum install of your OS so that your specific application has the most resources available. Ubuntu does have a “server” install that forgoes the GUI and a lot of little utilities. However, being the OS control freak that I am, I wanted more, er, less. In this case, I’d use something like Debian which gives you a very bare-bones minimal install, or one of the BSDs (my first choice).

Another good aspect of Ubuntu is its release schedule. The Ubuntu team keep to a 6-month release cycle for major features. Of course bug fixes and point releases for packages are handled as needed. However, for the uninitiated, this scheme makes the versioning somewhat of an oddity. The versions use a YY.MM format. so, the October, 2005 release is 5.10. They also have clever (if not a bit silly) release names (“Breezy Badger”, “Hoary Hedgehog”, and the very endearing, “Warty Warthog”).

Overall, and after some good use, I’m happy to say that Ubuntu is a keeper. It’s ease of use, simplicity, support for poeple other than english-speaking Americans, release schedule, and the quality of the community make it the distro of choice for newbies and old-timers alike. Plus, for Linux neophytes, this distro will allow you to grow as you like. Most things you’d need to do can be done via the GUI, but if you prefer, you can do all your “real” work at the command line as well. So, if you’re either tired of your current distro, or thinking of giving “this linux thingy” a try, head over to the Ubuntu web site and download it (or you can order free CDs).


Nerd Badge of Courage

So, I just signed up for an account on an OpenPower Project machine in Germany. Power as in PowerPC – the chips that have been powering Macs for the last decade+. It’s sponsored by IBM.

You are allowed to develop and run code on this platform pretty much as you like. They’re trying to get interesting development projects happening in an atmosphere of sharing and innovation. Pretty cool if you ask me.

What am I going to do with it? Who knows. Mostly just play with some test code and benchmark it with other platforms. Plus, it gives me a +5 in geek cred 🙂 Should be fun!


a little underwhelmed

Well, I’ve been using linux (Redhat Enterprise Server 3.0) at work now for over a month. It’s mostly good, but there are a few problems.

  • The CD-ROM drive has issues : for some reason, after about a day of being powered on, the computer loses all communication with the CD-ROM drive. I can’t even open the tray. I don’t recall this being an issue under XP, but it may have been.
  • The GNOME interface is kinda crappy: for instance, sometimes, dragging a window doesn’t work; a second click pops the window to that position. If this were consistent, I’d think it’s a feature, but it isn’t. sometimes, dragging a window drags a window. Other times, it just sits there, waiting for the second click. I don’t get it. I’m pretty sure it’s a bug
  • Still no good Office alternative: I have to interact with others who are using MS Office. Unfortunately, OpenOffice destroys various parts of these documents, so I really can’t use it. For my own files it’s fine.
  • Inconsistency: It’s driving me nuts that every application has a different interface, and different conventions. I never thought much about this before, but even Windows does a better job here. Of course the Mac is great when it comes to this, and I *usually* don’t run into issues.
  • No Sound: This isn’t a big issue for me, but the darn thing should work. Apparently, it mis-identifies the sound device, and it thinks everything is okay. However, it just produces no sound save for the system beep. Not too cool.

Other than these (somewhat significant) issues, linux is nice. I like having all the commandline tools at my fingertips (I guess I could just use Gygwin on Windows), but overall, the stability is nice. If I can get these things working, I’d be all set. I’ll try to figure them out, but I’d rather spend my time writing code, which I can do just fine without fixing these things. Oh well


Linux at work!

Yay! I am writing this from RedHat Enterprise Linux 3.0. Yeah, yeah, I know, “why not Fedora?”. Well, we got this one free with the server we bought. No reason not to use it 🙂 Anyway, I can do everything I need to do for work from Linux now.

I use VNC to connect to the Windows machine with the compiler. I also use Samba to connect to that same machine to edit the code. I can read/write Office docs, so long as they don’t get too complicated. Of course, web and email access are a given.

It’s nice. I think I could really get used to this 🙂 Okay, that’s enough outta me.


it’s like deja vu all over again

So my co-worker says to me, “Hey, you like Apple, right? Got any use for some older ones? I have one or two.”

“Sure”, I say. He shows up at the office with a Quadra 900 and a Quadra 700. The 900 is a honkin’ beast, so I probably won’t take it, especially since the specs are the same as the more petite 700. This thing is really cool!

So, what am I going to do with it? Run NetBSD, of course! It’s supported by the mac68k port. I’ll be sure to post something on my projects page when I get around to it. This little guy has 20MB RAM, a 90MB SCSI HDD, an external SCSI CDROM drive, and is really quiet. I may use this for my terminal server. If that’s the case, I may just run an old version of MacOS on it and use zTerm.

forced to move?

According to several sources, the first one I saw being the drunken blog, Yellow Dog Linux (YDL) will no longer support “old world” Macs. Hmmm, while I understand that they need to have a viable business without stretching themselves too thin,this saddens me.

I have been running YDL on an old Power Computing Power Tower Pro 200. This is one of the Mac clones from the late 90’s. It’s a sweet little computer that I bought from a graphic designer for $200 a few years back. The thing has been running non-stop as my mail server. There were 2 times it was down. Once, after uptime of nearly 300 days, I was rooting around in my closet (server room) and kicked the plug. had to reboot. The second time was when I moved to my new place. Never had to touch it since. The thing just runs, and relatively quietly, too.

Anyway, the “new world” macs have different firmware, and thus makes the older macs obsolete. There is hope, however. I recently got NetBSD running on an old 5500. The 5500 is also an old world system. So, when YDL no longer supports my version (2.3) of linux, then I’ll wipe the box and run NetBSD.

It’s strange, but more and more of my computers are running *BSD. It’s as though these PCs are born with and grow up running Windows®, Linux is the Ferrari of their mid-life crises, and when they get long in the tooth and want to settle down, they run *BSD.


what a long, strange trip it’s been…

Whew! I finally got a bootable OpenBSD image on the Soekris Net4801. After many hours of looking at several how-to’s and adapting them to my specific setup, I finally got something working. The next step is to configure the services I need as well as properly configure all the onboard hardware.

The little Soekris boxes are really nicely made, and are made specifically for Open Source operating systems. I’ve ditched my old Pentium-166MHz box and am currently just using a cheap-o (i paid $10 after MIR) residential “router” that has really basic functionality.

The new box has 3 NICs, so I’ll be able to segregate my network traffic and filter out traffic to my internal network pretty nicely.

Omanomanoman, can’t wait to get this thing up! Of course, I’ll detail my steps once I get the thing finished.


new toys

I just ordered my new firewall. It’s a Soekris Engineering net4801. It’s got 3 10/100 ethernet ports, and runs a 266-MHz Pentium ® class CPU. It has 128MB of SDRAM, and a compact flash reader. I got a 512MB CF card from for $50! The best part is that it runs OpenBSD. Once I get this puppy up and running, I’ll post more about it.