Do one thing very well

When I was a wee lad, I was quite unpopular at school. Regularly picked on, beat up, and mocked, it was no secret that I was a pushover and the other kids could get away with whatever torture they devised for me. The problem was that I was trying to be everyone’s friend, to please everyone, and subsequently I attempted to become whatever anyone wanted me to be. But because I didn’t know how to become what they wanted, I was just an uncool, dorkish poser, painting a big target on his chest for the barbs of others.

Sometime late in 7th grade, though, I snapped and decided to be my own person. Screw them, I thought, I’m going to figure out what I want and do it; who cares what they think? And, much to my surprise, the mocking stopped. Within a year I was, if not popular, at least respected. When I stopped trying to be everything to everyone and became my own person, I was finally recognized as such.

I say this by way of introduction to Unix. A common mandate or philosophy of Unix and Unix software/commands is to do only one thing but do it very well. Too many software companies try to make their product do everything, or try to please all of their customers, and what they end up doing is making something overly complex that nobody can use or even likes. By trying to do everything, they end up doing nothing.

We can take some obvious life lessons from this, but also find some guidance regarding the tools we settle on. In building this site, as well as my other work resources, I try to find those things that do their job simply and well. WordPress is simply the best blogging software I’ve found, and since this site is primarily a blog, it’s my tool. It’s not nearly as powerful as Joomla!, but it works significantly better. Just like Zenphoto doesn’t have all the capabilities of Coppermine, or PunBB is considerably leaner than phpBB, it does one thing and does it well. Coppermine and phpBB are bloated and difficult to work with… so I don’t. If a tool makes my life more difficult, requiring more of my time than it saves, then it fails and isn’t worth using.

I am finally beginning to learn what I do well, and I’m going to focus on that. Throughout this week, I’ll be writing about some of the changes happening both in my life and at SilverPen Publishing. I’m taking steps for what I am calling SilverPen Pub rev. 3.1. Revision 3 began around the end of August 2007, I believe, and this is the next phase of that progression. I’ll be implementing changes a bit at a time until December 31, with revision 3.1 formally going live on January 1. You probably won’t notice many differences, to be honest, but we’ll get into that later. Stay tuned!

USB Mouse on FreeBSD

Since I’ve been getting a surprising amount of search hits on this topic, I thought I’d provide a general update on my FreeBSD status. First, like I said before, FreeBSD doesn’t like USB because, apparently, USB sucks. To get around the issues I was having, I simply had to move the USB devices to a different line than what the Ethernet port was on.

I’ve always defaulted to plugging the keyboard and mouse, in that order, right next to the Ethernet port because of some Dell machines we received a couple of years ago. There was a bug in their USB implementation that prevented mice and keyboards from working if they weren’t plugged in that order, but FreeBSD specifically would not load (during boot time) devices plugged in alongside the Ethernet port. Moving the keyboard and mouse to different USB ports did the trick.

More updates on FreeBSD when I get the time; right now I’m wholly consumed by my desire to get Confluence working right with our Active Directory server, and after providing me a glimmer of hope, it has taken a turn for the worst.

FreeBSD 7.0

I saw the announcement for FreeBSD 7.0 on Slashdot this morning and, since my boss had just purchased Absolute FreeBSD 2nd Edition for me, I thought I’d download, burn, and install it. I only had a couple of hours with the OS today, and it’ll be a while before I can really post my full impressions, but here’s what I have so far.

  1. My keyboard and mouse didn’t work at first, and so I couldn’t even begin the install process. Apparently, BSD developers hate USB and therefore don’t go out of their way to support it. If it works, fantastic, but you shouldn’t use it. If it doesn’t work, you should have been using PS/2, clearly. Some BIOS have a way to emulate PS/2 so USB look like older technology, but mine does not. Strangely enough, a work-around was to simply move my keyboard and mouse to some different USB ports. Specifically, to ones not on the same line as the Ethernet port. Other options included getting a USB hub or simply ditching FreeBSD. Creating my own version of FreeBSD with better USB support would probably also be encouraged, but perhaps take too much time.
  2. As most people (and this book) observe with BSD, the install sucks. There’s no GUI, the menus are not intuitive, and the way it installs software is asinine. You tell it everything you want, and rather than organizing that and going sequentially through the discs (insert disc 1, install everything from that CD, insert disc 2, install everything from that CD, etc.), it goes by package, so you have to swap back and forth between discs a few score times during the installation.
  3. There’s no GUI preconfigured in FreeBSD, despite installing one. That’s fine, really; if I wanted a GUI, I’d use PC-BSD instead. Since I wanted 7.0, I went with FreeBSD, and there’s no GUI. However, when I got KDE working, my mouse didn’t work, and that was a bit of a surprise. It’s not that fancy of a mouse (Logitech Marble Mouse USB, and works on everything else after one fashion or another, but I get nothing on FreeBSD. Therefore…
  4. I have resigned myself to using only the shell, no GUI. To be honest, though, I kind of prefer this. I can sit across my office (which is, admittedly, not all that large), kicked back in my chair and still see the friendly, white text on the black screen. Also, the book I have doesn’t talk about a GUI at all, so it’ll still be easy to follow. The downside is that I like to have a web browser up to reference and research, and Pidgin to keep in contact with colleagues, but I can’t do either. I might have to relocate my tablet to this desk so I can have it next to my keyboard.

I was able to repartition my hard drive and shrink my EXT3 partition (which has openSUSE 10.3 on it) so I could install FreeBSD without losing anything. This is good because I’m clearly not going to be able to do most of my work on FreeBSD. It is not a desktop operating system. Even PC-BSD may not be able to do what I need (like remote in from the Help Desk when I have to cover the phones and run my Windows virtual machine so I can use HEAT, our ticket tracking software). But that’s OK, I can take a few hours here and there to switch over and slowly work my way through this book.

So far, Absolute FreeBSD seems very well written and has been enjoyable to read. I look forward to delving into it further in the coming months. It’s clearly not much of a reference manual, though, so I’m just going to have to read it straight through and glean what I can from this mystical OS based on Unix.