Linux

Ubuntu 8.04: My Thoughts

Every so often I get the urge to check out desktop Linux - just to see how things have progressed and whether or not it is in a usable state yet. For the last few times, the distro of choice I have tried has been Ubuntu, as that seems to be the new de facto starting point for a desktop distro.

Before beginning this review, let me first say that desktop distros have come a long way over the last few years, and Ubuntu is by far the most usable of the ones I’ve seen. Ubuntu itself has come a long way and, for someone who is willing to compromise on some points, is quite usable for someone who’s willing to spend some time tweaking things.

Having said that, it still has a ways to go before reaching Windows. And it’s not even in the same league as Mac OS X.

First, a little about my test rig: An AMD Athlon64 3700+ with 2 gigabytes of memory, two 250gb SATA hard drives (one for Windows, one for whatever OS I’m testing at the time), and dual GeForce 7600 GS’s running three 19” Samsung LCDs. Not your standard setup, mind you, but not ultra advanced and bleeding edge, either.

The installation: The installation is much the same as previous releases of Ubuntu: load up the live CD and, from within the live environment, launch the installer. The installer itself asks fewer questions that the Windows XP installer, yet seems to be able to do more. And doesn’t require endless reboots to get everything working.

My installation proceeded mostly okay (being that Windows resides on sda, I installed Ubuntu in sdb), except that after I installed and rebooted … nothing. It kept booting into Windows. I reinstalled again just to be sure I didn’t blitz through the boot record screen, but sure enough, writing to the MBR on sda doesn’t work when you have two SATA drives and you’re installing Ubuntu on sdb. This has been a bug for at least the last two times I’ve tried to install Ubuntu. I can fix it with grub commands and properly write a boot record to sda, but for the purposes of testing (and because I’m lazy and wanted to play with it) I just plugged sdb directly in and removed sda. So I’m up and running. This is something that would befuddle a lot of folks, but to be fair I’ve had problems with Windows in the past, but it seems like it would be an easy fix.

So I have Ubuntu installed now. Yay. Next step is to get my three LCDs working. This is where we run into what I think is the biggest hinderance to desktop Linux: X.

If I plug three monitors into two video cards on a Mac, it’s going to turn on all three monitors and allow me to drag things between them all effortlessly (one big desktop). If I plug it into Windows, I’ll need to download the drivers, but after that, no problems. Not so in X, though in fairness it is likely more due to the intrangisence of Nvidia when it comes to providing open source support.

First, if you want to do anthing, you have to download a “Restricted” driver. This is Ubuntu-speak for “we didn’t want to compromise our oh-so-precious ‘freeprinciples in the name of usability” (in case you can’t tell, I have very little patience for zealotry). In Ubuntu 8.04, the Restricted Drivers Manager has been poorly renamed to Hardware Drivers. Doesn’t make a lot of sense, since a driver for hardware may or may not be restricted. So, I download and install the Nvidia drivers.

Next, fire up the nvidia-settings utility to fix the X config. I was running this from the shell, but I later discovered that it puts a nice menu item in the Administration for you. It sees all my cards and, using this, I am able to configure everything up.

You have multiple options for ways to do three monitors, but only one works: Xinerama. You could do three separate X screens, but you can’t move windows between them. You could do Twinview on one screen and a separate X screen but, again, you couldn’t move windows between a dual screen and the third monitor, the windows on the Twinview screen don’t maximize and minimize properly, and the login screen is right in the middle of the two monitors so that it’s very difficult to see what you’re tying when you login. Only Xinerama lets you move windows between the three monitors, allows them to maximize properly, and has the login on a single screen. This was about an hour of changing settings and restarting X before I got it right.

The downside? It still isn’t supported in Compiz, which is a real bummer becauase compositing window managers was one of the things I was really looking forward to using. Anybody know if Compiz accepts bounties, because I really want this feature?

So no Compiz. Oh well. Next, get my other hardware working. I have a Logitech MX1000 Laser (greatest mouse ever, by the way), and I like to map the buttons to do various things (most notably, I use the “cruise” buttons to go back and fourth on web pages). In order to get this to work:

  1. sudo apt-get install xserver-xorg-input-evdev
  2. cat /proc/bus/input/devices (find Logitech USB Receiver)
  3. sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
  4. sudo gedit /etc/X11/xorg.conf
  5. Changes:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "evdev"
Option "CorePointer"
Option "Name" "Logitech USB Receiver" #this should be the name of the device which I made bold here.
EndSection
  1. sudo apt-get install xvkbd xbindkeys
  2. gedit ~/.xbindkeysrc
  3. Changes:
/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Left]" m:0x0 + b:12
/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Right]" m:0x0 + b:11

After restarting (yes, again) I have working buttons. Yay.

The volume control on my Microsoft Natural Egro 4000 works now. It seems like this required some hacking last time around. Yay.

Now to install some developer tools so I can get to work. I love Synaptic; I wish Mac OS X had real package management the way Linux does - it’s one of the things Linux really has going for it, though I generally prefer Gentoo’s portage manager. So I install Eclipse. Huge package, and I was getting really crappy download speeds, so I let it run all night and went to bed. The next day found Eclipse installed and ready to go. Installed PHP, SVN, Apache. So I now have the tools to work.

My conclusions: I like Linux. I really do. I want to see Linux succeed on the desktop. And Ubuntu has gone further, faster than any other Linux distro. It is now by far the most fit and ready to use of any desktop Linux distro. I have a usable system now, and, theoretically, there is nothing stopping me from using my machine for most of my daily work.

Having said that, there is a lot to be said for style. First of all, it’s ugly as sin. The Gnome UI, while it is much improved, is still terrible when compared to Windows and OS X. Also, who thought that brown was a good color for a UI? Second, the names of some of the tools are un-intuitive: “Hardware Drivers,” “SCIM Input Method Detection,” “Authorizations,” and others need to have more intuitive names, and once you use any of them, the layout is not really intuitive either. The initial screen layout with a menu at the top and a taskbar at the bottom is also not really all that usable, though it can be corrected by removing the top panel.

I’m using it now (typing this in Drivel) so it is usable, but it still can’t displace my Mac for ease of use.

Read More
Conferences

Live from OSCON

I will again be attending OSCON this year in Portland, Oregon on July 21st - 25th. Come and say hello!

Read More
Apple

Automatically Joining a Group Chat with Adium

At dealnews, we have an internal Jabber server that we use for our internal communications. As part of that, we have a number of internal chat rooms for the various areas of the company.

I’m a big believer in automation - that is, scripting various repetitive actions that I have to do every so often. One of these little things is joining our developer chat channel each morning when I get to the office. Unfortunately, there’s no built in way in Adium to do this, nor does Adium expose native AppleScript commands to join group chat. It does for other functions, but group chat functionality is conspiciously absent, even though there’s a long standing feature request to implement this.

So, we have to hack it. In this case, I used AppleScript to imitate keyboard input

set CR to ASCII character of 13
tell application "System Events"
tell application "Adium" to activate
keystroke "j" using {command down, shift down}
keystroke "development"
keystroke CR
end tell

So we have a script, but how to automate the launching of it?

I mentioned MarcoPolo before. It has quickly become one of my favorite pieces of Mac software. In this case, I use MarcoPolo to launch the AppleScript (with a 10 second delay to allow time for Adium to start and connect to the Jabber service). You can launch AppleScripts using the osastart utility like so:

/usr/bin/osastart /Users/codelemur/Scripts/DevChat_AutoJoin.scpt

It sucks that it’s like this, and I wish they would expose a more native way to do this, but it does work.

Read More
Linux

Gentoo

I’ve been a happy Gentoo user for the last few years. There’s so much to like about it: built from source with only what you need and Portage beats the pants off RPM, among many other reasons. But lately, I’ve been getting a little annoyed with it.

My annoyance has to do with the releases … or lack thereof. And, the communication about said “delays” … or lack thereof.

There used to be four Gentoo releases a year. A few years ago, they went to two releases a year. Last year, they completely skipped 2007.1 release. Now, we’re three months into 2008 and the 2008.0 release, which was supposed to be released to the public as stable on March 17th, hasn’t even been seeded to mirrors for public beta yet. 2007.0 is still the official stable release of Gentoo - a release that is more than a year old at this point.

This wouldn’t be a big deal if I didn’t really need an updated live CD to do installs with. I have new machines with an onboard SATA controller that isn’t supported by the kernel in the 2007.0 release but is supported by the 2.6.23 kernel which was in the Gentoo sources at the time. I was at an impasse, unable to install Gentoo on my equipment until I got around it by compiling my own updated kernel and rolling my own live CD. But, I wouldn’t have had to do that if the Gentoo release team could at least come close to hitting their release schedule. I’m not asking for the universe - just get within the same month as the schedule says and we’ll call it good.

There’s also been disturbingly little communication about the reasoning behind these “delays.” There was one post to the site about the 2007.1 release being cancelled. There’s been no communication on the site whatsoever about the delay with 2008.0. The things on the front page right now talk about the monthly newsletter and some new trustees of the Gentoo foundation.

I know it’s free software and I shouldn’t complain, but for those of us who make our living using Gentoo, it’s a bit annoying to say the least. You won’t need trustees of a foundation if there’s no foundation … because everyone goes somewhere else because the distro is updated less often than a phone book comes out.

Read More

Cybersquatting Annoyance

I’m getting ready to launch a new open source project, and, as everyone knows, you can’t do that without a cool sounding name. :P

I’ve picked out about six cool sounding names, and I’ve been looking them up on GoDaddy to see if I could go ahead a register the domain name. And wouldn’t you know, all of them are already taken. Now, this wouldn’t irritate me so much if there was actual content on the sites. But every single one I looked up is squatted by link farms. I am literally 0-6 right now.

Girls are like internet domain names, the ones I like are already taken. well, you can stil get one from a strange country :-P - [bash.org](http://www.bash.org/?369)
Read More
Music

Matthew Ebel

This weekend in Atlanta, I had the chance to hear an extrodinarily talented musician. I want to give him major props for one of the best concerts I have seen in a long time.

Matthew Ebel (you can buy/listen to his stuff on iTunes too) has a sound that is somewhere between Ben Folds and Billy Joel. If you like Piano Rock, or are just looking for something good to listen to, I highly suggest you check him out. I already bought all three of his albums.

Read More
Linux

PHP, PostScript and ATM Fonts

Recently, I’ve been expermenting with PHP’s PS functions - the PECL extension that allows you to directly output PostScript from your scripts. There are other projects that come to mind (html2ps is another one that will render to PostScript) but I wanted somsething more tightly intergrated into my script.

Mysteriously, when I went to install my scripts on the new Poweredge I bought, I began to get there strange errrors:

ps_findfont() [function.ps-findfont]: PSlib warning: Trying to insert the glyph '.notdef' which already exists. Please check your afm file for duplicate glyph names.

I couldn’t understand what was going on - it was working fine on the previous server. After googling about the web and wracking my brains for about two hours, I checked the versions of PSlib  installed on the two servers. Both were masked by Gentoo’s Portage system, but the unmasked version on the previous server was 0.2.6, whereas the one on the new server was 0.4.1. After I masked out 0.4.1 (thanks to Gentoo’s awesome package.mask) and downgraded back to 0.2.6, everything began working again.

So there you have it. Apparently the PECL PS extension is not completely compatible with the most recent version of PSlib, and downgrading back seems to work. Hope this helps somebody!

Read More
DIY

DIY 19-inch Rolling Rack

After my debacle with the 1U servers I bought (see my previous post), I went by a local technology recycling center and picked up a couple of off-lease Dell Poweredge 1750s. It’s what I should have done in the first place.

Anyways, I decided a few weeks ago that I wanted to mount these servers in a rack. I wanted it to be mobile and easy to move as moving is something I have been very familiar with over the last few years. After not finding what I wanted anywhere, I was able to find rack rail at  zZounds (a music store that I’ve ordered guitar stuff from before). So I decided to do it myself.

The first step was to understand the measurements of a 19” rack. Originally designed to hold railroad signal switching relays, 19” rack measurements are specified by EIA-310-D. The strips from RaXXess are standard rack rail at 0.625” in with. They are mounted at 19” apart from the outside of the rails, giving a distance between the inside edges of the rails of 17.75”. The depth isn’t specified, so I decided to make mine 30” deep.

After that, it’s just cutting! It took 4 2x4’s at 10ft and a sheet of plywood. The pictures below will explain better than I can in words the process of building this thing.

Parts

The first step was measuring and cutting. This was actually the most tedious part of doing this whole thing was getting the measurements right - as Dad always said, measure twice, cut once! I cut four 24.5” pieces, four 22” pieces, and four 36” pieces.

Frame 1

Here’s the completed frame 1, with a Dell Poweredge 1750 in to test and be sure that I had the measurements right. The rails had been mounted on the inside towards the back of the frame to give the server face some protection.

Server Closeupt

Closeup of the server in the frame.

Almost complete!

Adding the top and bottom pieces now.

(Mostly) Finished Product

Mostly complete. By now you can see what I’m aiming for.

Done!

And here’s the finished product! I added plywood sides and casters to roll it around.

Looking Down

The total cost was about $100. The most expensive items were the rails (which came in at about $50 shipped) and the casters (which were $20 for four locally from Harbor Freight). After that, it took me about four hours cut and put everything together. It’s not quite finished yet - I want to add doors to the front and back to ease transport a little bit as well as handles on the sides to make it easier to lift in and out of a truck.

I haven’t put the servers in it yet - I’m waiting for rails to come in for the servers since they didn’t have any where I bought them from. I’m also thinking about slaping a coat of paint on it to make it look a bit better. Otherwise, it’s pretty sweet!

Read More
Ramblings

Angry Rob is Angry

… or, beware of deals that look too good to be true.

In my professional career, I have now found only two things that have a 100% failure rate. The first was a batch of Digium TDM-400P FXO/FXS card. Every single one we deployed from that batch at my previous employer failed. I hear they don’t have those problems anymore - using a different fab shop now, I guess. But I still don’t like that card for that specific reason.

The second 100% failure rate came just this evening. The culprit is this little POS: Dual Xeon 2.4GHz 2GB ECC 120GB 1U Rack Mount Server being sold by Geeks.com.

Look, it’s a 1U for $375. I’m not expecting the universe out of these things. With that in mind, let me document the last two days of my life. I ordered two of these little guys about a week ago, and they arrived on Tuesday. I intended to turn one into a general purpose test and development box, and one was going to go to Atlanta to replace the 1U Celeron in my friends’ data center.

So I get the machines home, unpack them and try to boot. The first one won’t POST. No beep, no video, just a bright orange surrender HD light. Research tells me that the motherboard is fried. The other one booted up fine. I figured I was just unlucky, so I RMA’d the first one today and was going to put the OS on this one.

Well, the OS install went fine but when it came time to reboot … presto. The exact same thing as the first. No video, no beep, orange HD light. Of two machines ordered, both of them failed within 48 hours and both in the exact same way. So now I’m out at least $60 in RMA shipping charges - and I have no servers - just because this company apparently has no Q.A.

So take my experience as an example of what not to do when ordering a server. A good deal can turn into a major headache incredibly fast. Me? I’m ordering Dells from now on.

Read More
Apple

Something In The Air

… or maybe the water.

Unless you were living under an Internet rock, you likely know that today was Keynote Tuesday. That is, the day Apple CEO Steve Jobs tells us loyal apple fanbois what we will be spending our money on this year.

The star of this year’s show was the Macbook Air, a thin, light laptop designed to fit somewhere inbetween the Macbook and the Macbook Pro. At first I was wow’d by the Air. Jobs, as always, is the consummate showman and I will admit that I bought into the reality distortion field for a little bit. Then the “air” cleared and I began to think about what the Macbook Air really is. So let’s take a look at the Macbook Air and where it fits.

  • Maximum thickness of 0.76”. The Macbook is a quarter inch or so higher at 1.08”.

  • Weight of 3 lbs. The Macbook, a slightly heavier 5 lbs.

  • Battery life is slightly longer at 5 hours. The Macbooks average between 3-4 in my experience. However, the battery is not removable, whereas I could carry several Macbook batteries with me.

  • For $1200 more, you can get a solid state drive.

  • 2GB of memory, and only 2GB of memory. The Macbook comes in at 1GB standard, but can be upgraded to 4GB.

In my opinion, these are the areas where the Air wins. Now, let’s look at where it loses.

  • 1.6ghz / 1.8ghz Core 2 Duo. The Macbook slides in at betwen 2.0 and 2.2 ghz.

  • Storage is an 80GB 4200rpm PATA drive, whereas the Macbook boasts an 80GB 5400rpm SATA drive. Granted you can get a 64gb SSD drive with the Air, but for $1200 I can’t believe that anyone other than the biggest fanboi will be buying those for that price.

  • The Macbook can be upgraded to as much as 4GB of memory. The Air is stuck at 2GB, and since it’s sodered onto the board, it’s stuck there forever.

  • 1 USB plug? No onboard Ethernet or FireWire? No mic plug?

  • No optical drive. Granted, you can buy an external drive, and you can use that boot from another computer thing, but that doesn’t help you if you have no other computer.

Now, Brian Moon often tells me that I don’t think from the point of view of an average user because I’m not an average user. While it’s true that I’m not your average user (as a computing professional, I have needs generally beyond most consumer computing gear), I like to think that I can look at all choices and choose the best one. In this case I just can’t understand where this product is being targeted.

I just don’t understand how anyone could want to trade off all the features you get with the regular ol’ Macbook for what is essentially a small gain in dimensions and weight, and the “wow!” factor, especially when all those added features on the Macbook come in at $300 less for the top-end Macbook model. At that price, you could upgrade the memory and buy an extra battery and still come in less than the base price of the Macbook Air, with the only tradeoff being that it’s 0.32” thicker and 2lbs heavier.

I can’t believe that any informed consumer is going to choose a feature poor Macbook Air when the standard Macbook, at between $300 and $750 less, is just so obviously a better deal. Brian Tiemann said it best: “a ridiculously overpriced, feature-poor, and generally useless pig of an idea.”

Also, I wonder if Steve Jobs knew Randy Newman was going to go all Michael Moore on everyone. Someone please be sure he never sees a microphone again!

Read More