Laptops
I am in the market for a new laptop. My current laptop is literally falling apart, as some of the case screws have fallen out. I could replace those, but that would only fix one small problem. Also problematic is the fact that my battery only holds about 25 minutes worth of charge. And lately, doing anything remotely CPU intensive causes the system to overheat and shutdown. I've taken the system apart several times, inspecting the system fan and looking for obvious problems that might cause overheating. Alas, I've found nothing. So I've been forcibly setting the CPU frequency to its lowest setting, which makes the whole thing more sluggish than I would like.
So I'm looking for something new. Through the OSU technology store I can purchase a Hewlett Packard 8510w laptop. This is the "workstation" caliber laptop, with a sturdy metal case instead of cheap consumer plastic. It also comes with a high-end Nvidia graphics card -- something I've really missed on my current laptop (I miss playing Quake, surprisingly). Other features include 2 GB RAM, roomy hard disk, Bluetooth, and a 3-year accidental damage warranty. That last is extremely appealing.
If I get that laptop, I'll install GNU/Linux onto it. Before I purchase it, I intend to take an Ubuntu LiveCD to the store to try it on the floor model, to get an idea of what hardware works and what doesn't work. I expect most of the hardware will work. Certainly the NVidia card will be supported by closed-source drivers. Bluetooth should work. The wireless chipset should work (though may require a binary closed-source firmware blob). Audio may require some fussing to make work; though I might be presently surprised. Assuming all the hardware works, after installing Ubuntu I'd have to install all the proprietary audio and video codecs so prevalent today (though I could consider purchasing the Fluendo closed-source GStreamer plugins).
I did use an Ubuntu LiveCD on the HP 8510p -- the consumer model of this laptop, with the ATI graphics card instead of the NVidia. Most everything worked just fine: volume control buttons, WiFi kill switch, touchpad -- including the scroll portion -- and Bluetooth. That was all very refreshing, and helped solidify my interest in the 8510w. This page about Debian on the 8510w leaves me more than a little concerned, though, as it describes considerable more hoop-jumping than I'm inclined to do.
In the interest of comparative research and being an informed consumer, I picked DrBacchus's brain about his satisfaction with his Apple laptop. A long-time GNU/Linux user, several years ago he purchases an Apple laptop and has been using a Apple ever since. He's mostly satisfied with it. He came to the conclusion that he was tired of trying to get all his laptop hardware fully supported and properly working with the various GNU/Linux distributions. I share his frustrations on this issue. He's grown to appreciate most of the iLife products (iPhoto, in particular), and he raves about Keynote for his presentations. I don't give many presentations, so that's not too big a deal to me.
My sister has been using a Mac for a number of years, and she seems fairly well satisfied. At least, I haven't heard her complaining about it lately. She purchased a Mac specifically for the ease-of-use when she joined the Peace Corps: she didn't want to suffer through system instabilities or application failures when she was literally isolated from any meaningful technical support. This seems to have been a good choice for her, and worked fairly well.
While chatting with Carina the other night, I admitted I was growing increasingly frustrated by all the hoop-jumping required to enjoy various multimedia in GNU/Linux, and that the ease of a Mac had a very strong appeal. She admitted that she intended to purchase an Apple when her current laptop expires. But then I remember that I don't particularly like OSX; nor am I keen to pay Apple every year for operating system upgrades. I'm also reminded of Mark Pilgrim's juggling oranges and when the bough breaks essays detailing his dissatisfaction with Apple. His comments really hit home for me, highlighting the subtle importance of "Free as in Freeom".
I don't expect to use iTunes, primarily for philosophical reasons; but also because I don't use my computers to listen to a lot of music (in fact, I don't listen to a lot of music). I might be willing to try iPhoto, but I've been working happily enough to date just making directories for groups of photos based on date, then manually selecting the ones to upload to Flickr and finally burning to DVD when I have several gigs worth of photos. I might enjoy using iDVD, since I find the GNU/Linux DVD authoring utilities to be more frustrating than they need to be most of the time. Time Machine doesn't interest me much; and the OSX Dashboard and widgets don't interest me too much, either.
The real value of purchasing a Mac would be the knowledge that all the hardware was absolutely supported by the software. Of course, I could also try running Ubuntu (or another distribution of GNU/Linux) on a Mac laptop, as I know folks do, but it would require time and effort to get everything set up. I expect that the latter would exhaust the former, and I'd be left with something that was almost but just not quite working perfectly. If I'm going to be in that situation, why should I pay the premium that Apple commands for their hardware? Better to save money and get less expensive hardware that is equally poorly supported!
Complicating my decision making process is my intense aversion to spending money. I particularly hate to spend large quantities of money, as I almost always experience buyer's remorse. I know that as soon as I purchase a laptop it will be largely out of date. I don't intend to purchase another laptop for at least three years (preferably longer), so I need to make sure that I can be content with whatever I purchase for at least that long. I expect the Apple to work through that time frame, and be well supported. I imagine that the HP hardware would last that long, though I'm not entirely keen on the way Ubuntu has been developing lately, as features and services continue to be added that I don't use and which will only suck up battery life (things like the Tracker service: I don't lose files, so I don't have a need for a file indexing service -- yes of course I can turn this off, but that's more hoop-jumping, dammit!).
And then I keep remembering that the overwhelming use of this laptop will be for low-resource tasks like email and news reading. Occasionally I'll record something for LibriVox, or produce a DVD of video of the kids. As previously mentioned I would sometimes like to enjoy the diversion of Quake and similar games. I could invest in a (reasonably) powerful desktop computer for these more demanding activities, and then continue to make do with my current laptop for mobility when reading email. I would prefer, however, to minimize the number of computers in my home, and using a laptop exclusively seems like the best way to do that.
This is the first time I've ever seriously considered purchasing a computer and not running GNU/Linux on it. In some ways I feel like I'd be selling out, but that's not a particularly compelling reason to avoid the Mac. I've certainly enjoyed the benefits of Free Software for many years, and in that time I've almost entirely ignored any benefits I might receive from proprietary software. I wonder if I could be happy using a proprietary system for three years? The fact of the matter is that I'm not a developer, I'm a user. What little development I do do is entirely web-based. So while I appreciate the benefits of Free Software, it's not something to which I am fundamentally connected.
I had hoped that distilling my thoughts into this post would help me reach some sort of conclusion; but I'm afraid all I've done is ramble! I guess that should be indicative of the fact that I'm not yet ready to make a decision. If anyone has any input on the matter, I would like to hear it.
Distributions
I've been using GNU/Linux as my primary operating system for many years. At my last job I used Microsoft Windows as my desktop operating system for about the first year, but was able to gradually convince my boss that I'd be more productive using GNU/Linux. When I started at OSU, I used Microsoft Windows for the first couple of months, because that's what I was given, before installing GNU/Linux onto my machine. On the whole, I do think I'm more productive using GNU/Linux as my desktop client: it's been super reliable for me, and largely problem free through all the upgrades I've performed.
When I first started using Linux, way back in the mid-1990s, I used Red Hat 5.2. Almost everyone I knew used Red Hat, except for a few show-offs who used Slackware. I dutifully upgraded to 6.0, and then 6.2, and then 7.0 and 8.0. Somewhere right around there, Red Hat decided to focus exclusively on Red Hat Enterprise Linux. Like many disgruntled users, I decided that Red Hat was no longer the distribution for me, and I switched almost overnight to Debian. It was a rocky transition -- at the time the Debian way and the Red Hat way of doing the same tasks were very different, and I wasn't exactly an expert user. I managed to muddle through, though, and found myself liking Debian an awful lot. I stuck with Debian until I found Ubuntu.
I've been using Ubuntu on my computers exclusively ever since. I really like it. It offers all that I've grown to love from Debian with a more aggressive release cycle, so that I get more recent releases of software more often. I haven't had any real complaints about Ubuntu in all the time that I've been using it.
Until today.
At work we have a Microsoft Windows Active Directory. It is possible to join GNU/Linux clients to an Active Directory infrastructure, so that a user can use a single account to log onto both Windows and Linux client machines. This is important at work because we plan to dedicate one of our computing labs to Linux computers, but we don't want to unduly increase our administrative overhead. Using the Active Directory allows us to have a single user account for all our students, but still allow them to use the platform of their choice.
Until recently, my Linux workstation had been a standalone system to which I logged on using a local user account. After upgrading my workstation to Ubuntu 8.04, I joined it to the Active Directory so that I could log onto it using my domain account. In many ways, I think it's important that the IT support staff "walk the walk" by using the services they provide. This is an important sentiment that will surface again later in this post. Joining my machine to the domain wasn't terribly difficult, and I had quickly migrated all my data from my old standalone account to my domain account. Shortly thereafter, the trouble began.
While doing the normal things I do with my computer -- launching applications, opening files, browsing directories on my hard drive -- my system would spontaneously lose all of the theme configuration I had applied. It's somewhat of a challenge to accurately describe the problem to someone who hasn't used Linux. Basically, all the widgets and buttons on my desktop and in my applications would lose their style and revert to the ugly default. Worse, I was unable to change these settings back to the way I wanted them unless I logged out or rebooted the computer. Neither solution is acceptable. I discovered several other problems when this would happen: sometimes I would be unable to see the contents of my home directory! This would happen in the Nautilus graphical file manager, as well as in "File Open" dialog boxes. This was absolutely catastrophic: it meant I couldn't attach files to emails, or navigate to sub-directories in my home directory. (I could still access things from the command line, which was only a modest relief to the problem.)
I narrowed my problem down to the fact that the gnome-settings-daemon was failing. Searching revealed that a number of other people experienced the same problem, and a variety of solutions and work-arounds were put forward. I tried most of them, but had not lasting success: gnome-settings-daemon kept terminating, resulting in a mostly unusable desktop for me. I found, and commented upon, bug 138277, but no replies have been made. I started a thread on the Ubuntu forums, but it's seen no action yet. I readily accept that I may have done a poor job describing my problem in a way that folks can understand.
One troubleshooting step would be to perform a complete re-installation of Ubuntu 8.04. I had originally installed 6.10, and then upgraded to 7.04 and then 7.10 before finally upgrading to the latest 8.04. I'm not entirely keen on this, but it would help identify whether the problem is a glitch introduced during my upgrade, or whether it's a substantive problem with Ubuntu 8.04.
As I said previously, though, I think it's important for IT folks to walk the walk. In our computer labs, we won't be running Ubuntu. We'll be running Red Hat Enterprise Linux Desktop. Many of the scientific and engineering applications our students use are only available for Red Hat or SuSE. I suppose I could try CentOS, but our college has brokered a deal with Red Hat. We have plenty of available licenses for their offering, so that's what we'll use. I am strongly considering taking this opportunity to configure my workstation in an identical fashion as all the lab computers. This would be good practice, and would help me to provide better support to the labs because I'd be clued in to the particular nuances of the distribution. This has its own set of problems, as you might expect.
I admit that I've been spoiled by Ubuntu with fresh new versions of most software. Red Hat Enterprise Linux does not offer the same new versions of all software. For example, Red Hat still ships Firefox 1.5, whereas Ubuntu is now shipping Firefox 3 beta 5! This might be a non-issue, though: many of the servers and devices we have in our network (fiber channel switches, Ethernet switches, security cameras, IP KVM, etc) use Java applets served through a web page. Java applets do not run on 64-bit GNU/Linux systems. My system is a 64-bit system. I found it extremely annoying using Ubuntu to have to make a Remote Desktop connection to a Windows computer just to launch Microsoft Internet Explorer in order to execute a Java applet. So, if I install Red Hat, I could install the 32-bit version of a newer Firefox and enjoy native Java applets (and native Flash to boot! YouTube, I've missed you!).
The purpose of this post has been, primarily, to get myself to think about the pros and cons of using Ubuntu and Red Hat. Each has definite strengths and weaknesses, and neither is demonstrably superior for this situation. Switching back to Red Hat will invoke a bit of a learning curve, but I think it's probably the best choice for my work computer. Besides, if I take the time to re-install Ubuntu and the problems with gnome-settings-daemon persist I'll be installing Red Hat anyway!
Small Daemons
My home network consists of two Linksys WRT54G wireless routers, a Linksys NSLU2 network storage device, a Mac Mini running MythTV, and laptops for each member of the house. All but one of these devices use 802.11 wireless networking.
One of the WRT54G routers lives in my bedroom, connected to the DSL modem there. This router runs the wonderful OpenWRT firmware, providing me a good old fashioned Linux command line with which to administer the router. I use iptables rules to enact network address translation, allowing all the computers in my house to have access to the internet.
The NSLU2 is the only device in my network that lacks built-in wireless networking. I could purchase a USB wireless adapter, but these aren't as cheap as I'd like, and the NSLU2 only has two USB ports, both of which I would prefer to use to connect to USB hard drives (though currently only one is in use). The NSLU2 instead connects to my other WRT54G, which in turn is running the dd-wrt firmware. This router acts solely as a wireless bridge, allowing wired-only devices to access my network and the internet, and provides no other services. I run Debian on the NSLU2, giving me a fully featured operating system on an itty bitty platform.
All of these Linksys products run Linux, and can be classified as "embedded systems" because they have very specific limitations with respect to storage and memory. As such, certain tradeoffs need to be made. The WRT54G routers have 16 and 8 megabytes of RAM, respectively, and they run the entire system in memory so there's no room left for extraneous services or wasted space. The routers, for example, all use Busybox to provide basic UNIX utilities without using a lot of space. The default installation of OpenWRT provides the Dropbear SSH daemon, which is a substantially smaller package than the more traditional OpenSSH. Dropbear works great, though, and provides everything I need to connect to and administer the routers.
The NSLU2 isn't as limited when it comes to storage, since I can (and do) use a USB hard drive to store an entire Debian installation; and it has (by comparison) a whopping 32 megabytes of RAM. Still, I need to be careful about memory usage so as not to cause the system to thrash swap space or have the kernel OOM killer forcibly terminate services. Taking a cue from the OpenWRT installation, I replaced the standard OpenSSH server on the NSLU2 with Dropbear, in order to free up more RAM. I also installed dash instead of bash as my primary shell, in order to eek out a little extra memory. dash lacks all of the handy features I like from bash, but I use the NSLU2 for pretty specific backup purposes so I don't miss the features all that much. I disabled all the unnecessary (for my use) services, like nfs-common, portmap, openbsd-inetd, etc. I replaced Exim4 with SSMTP. Finally, I installed thttpd. My intent with this is to use the NSLU2 to store large media files I might like to link from my blog without having to worry about bandwidth usage on my blog's server: serving the files from my home DSL line has no bandwidth cap, whereas the VPS hosting my blog does have a bandwidth cap.
For the past little while I've been contemplating OpenVPN on one or more device in my network. I find myself growing more and more uncomfortable using unencrypted wireless networks at coffee shops and hotels, and would like to be able to tunnel my connections through a secured channel to a host under my control. I've had tremendous success with OpenVPN at my previous job, and I advocate it all the time to people looking for VPN solutions. Its set up, while not hard, is non-trivial, and truthfully I worried about the resource drain the OpenVPN daemon might put on my limited resource Linksys devices.
During a conversation with Matt in #habari, I provided the link to using SSH as a SOCKS proxy. Duh! There was the answer I was looking for! So last night, I installed the full-blown OpenSSH daemon onto one of my WRT54G routers. I configured it to listen on TCP port 443, so that it wouldn't interfere with the currently running dropbear (should something have gone wrong, I still wanted to be able to access the system!) and because the proxied traffic will largely look like requests to an HTTPS website to the casual eye (and most firewalls). The two applications I most frequently use (Firefox and XChat) both support SOCKS proxies, so I was quickly in business. I defined the SOCKS proxy in XChat, established an ssh connection to the router, and watched as XChat reported
* Looking up irc.freenode.net
* Looking up localhost
* Connecting to localhost (127.0.0.1) port 2600...
* Connected. Now logging in...
I installed the FoxyProxy Firefox extension, and added my localhost proxy to its configuration. It was hard to test with certainty from home, but this morning at work there was no doubt: after selecting the localhost proxy from the FoxyProxy menu, I visited WhatIsMyIP and saw my home IP address displayed! Success!
Not every application I'll ever use supports SOCKS, so this might not be as robust a long-term solution as OpenVPN would have been, but it allows me to minimize the number of running services while re-using familiar applications.
Microsoft Windows Unified Data Storage Server 2003
Last summer, my employer purchased a Hewlett Packard DL585 server running Microsoft Windows Unified Data Storage Server 2003. This server was selected and purchased to provide unified home directories to all our users across Windows and GNU/Linux machines. Windows users would connect via CIFS, and GNU/Linux users would connect via NFS. When a user logs in to a GNU/Linux machine, they have the exact same home directory as when they log in from a Windows XP workstation.
I followed these instructions for integrating our GNU/Linux server into the Active Directory domain. The server is a computation server, to which our users connect via ssh. We had some trouble initially getting Active Directory authentication working. The VAR from whom we purchased the file server sent out a technician who spent two days on-site with us, one of which was spent almost entirely (on hold) on the phone with Microsoft support. At long last, we finally got all the pieces of the puzzle assembled, and users could authenticate to the GNU/Linux server using their Active Directory credentials.
After a few weeks, I had reports that a user lost some of their files while using the GNU/Linux server. It took me a couple days of investigation to finally figure out what the problem was. When I did, I was horrified. You see, all of our users have a 20GB disk quota, meaning that they can save only 20GB of data into their home directory. The file server enforces this quota, and we had no problems with this configuration for our Windows workstations. Remember, Windows workstations communicate with the file server via the CIFS protocol. What I discovered was that the file server did not seem to be enforcing the quota for GNU/Linux machines connecting via the NFS protocol. At first, it looked like a user could exceed their quota -- and indeed, they could for a short period of time, provided they stayed logged in. If the user logged out, or after a few minutes of inactivity, the file server would truncate to zero bytes those files that had exceed the quota. What was worse, a file opened for writing before the quota was reached would also be truncated if the size of that file grew to cause the user to reach their quota. What we had was silent data loss. The purpose of this server is for long-running batch computations, some of which generate enormous amounts of data: the possibility that someone's research job running for days or weeks could silently lose its dataset was catastrophically bad.
We had a few problems getting HP support engaged properly, mostly due to the front-line support folks not really understanding my problem report, and dispatching me to the wrong group. After that was cleared up, we finally connected with a couple of level 3 support engineers who took complete ownership of the problem. They issued a few hotfixes for us (one to resolve bluescreens when you enable logging for NFS on the file server -- yeah, that was a fun day), and walked us through a number of diagnostic steps. In the end, we collected several gigs worth of packet traces and memory dumps. Along the way, we identified a few more problems, for which additional hotfixes were issued. After a few weeks, the HP engineer confirmed for me that they were able to reproduce the quota problem for which I had originally called: the Microsoft NFS server code did not enforce quotas properly, resulting in silent data loss.
The issue was escalated upstream to Microsoft on November 6, 2007. As of today, Microsoft has confirmed that they can reproduce the problem; but they're telling HP that they will not commit to a specific date by which the problem will be fixed. Microsoft suggests that we work around the problem by using the "sync" mount option for our NFS clients. Yes, that works, but imposes a non-trivial performance penalty, which can be a real problem for the intended use of this server: lots of grad students crunching numbers and spooling data sets to disk for analysis.
I've spent much of the last 24 hours in meetings with my coworkers and on conference calls with our VAR, HP's escalation support manager, the level 3 HP engineer who owns this issue, HP pre-sales engineers, and HP product engineers trying to figure out how Hewlett Packard can resolve this situation for us. It's clear they sold us something that doesn't do what we all thought it would -- and should -- do. I'm relieved that HP is involved to this level to make things right. It's a shame, though, that the real problem can't be fixed upstream and pushed out to us. Instead, we're looking at a complete overhaul of our storage solution, and a substantial new investment of time and energy.
We have two options on the table: an HP MSA or EVA series SAN with clustered GNU/Linux servers running Polyserve clustered file system for "Enterprise File System Clustered Gateway", or one of the SAN backends with two independent servers running Windows and GNU/Linux for CIFS and NFS shares, respectively. The former option preserves our unified home directory configuration, while the latter unambiguously connects the server operating system with the same client system. The drawback to the separate server solution, though, is that users would have two separate home directories, and double the quota we had originally intended to give them (we're ruling out the notion that GNU/Linux users split their quota capacity between servers, or that only folks who ask for it get a Linux account, or other such management nightmares). We don't yet have final pricing on either option, because we're looking at a buy-back situation for our current hardware, plus hopefully some modest discount to make up for the time and energy we've spent fighting this problem for so long. Price may well be the deciding factor.
What would you do, if you had to support 1,000+ students and about 100 faculty and staff?
Ubuntu 7.10 on Acer Aspire 3680
After giving up on the notion of the Eee PC for the twins, I purchased a pair of Acer Aspire 3680 laptops for them. A quick search revealed that these were fairly well supported, with a couple of odd quirks, so I felt reasonably comfortable making the purchase. I confirmed last night that they would run Ubuntu by taking a Live CD into the store with me, just to make sure.
From the store, these laptops came with some version of Windows Vista (I didn't even inspect the stickers to see which flavor of Windows Vista, specifically). When I told the sales clerk that I wanted to buy a pair of them, he immediately suggested a RAM upgrade. I said "Thanks, but no thanks, I'll be running Linux on these." The clerk must not have heard me, because he said "Huh?" I calmly explained "I'll be running Ubuntu GNU/Linux on these laptops, so 512MB RAM is more than sufficient for right now." (Carina claims I was being harsh in my tone of voice, but I think she's making that up.) Once I had said this, the clerk walked off to get the laptops for me, and didn't offer a single other upgrade or add-on, which I found rather telling: these guys live for the extra commission earned by add-on sales.
As mentioned on this post about Linux on the Aspire 3680, the default audio device is seen as surround, which means you need to make a few adjustments in order to get sound working correctly:
- Right-click the speaker icon
- Click "Open Volume Control"
- Click the "Edit" menu
- Select "Preferences"
- Enable Surround from the list of tracks to make visible
- Click "Close"
- Close Volume Control
- Right-click the speaker icon again
- Click "Preferences"
- Select Surround as the track to control
- Click "Close"
Acer must have refreshed the hardware in these laptops for the specific sub-model of 3680 I purchased, because everywhere I've seen online so far suggests that these laptops come with Atheros wireless cards, whereas ours claim to use Broadcom BCM94311MCG mini-PCI cards. If you enable the Ubuntu Universe repository, you can use the restricted drivers with the bcm43xx-fwcutter package to have fully-functional wireless networking.
- Click the System menu at the top
- Click Administration
- Select "Synaptic Package Manager"
- Click the "Settings" menu
- Click "Repositories"
- Select "Community-maintained Open Source sofware (universe)"
- Click "Close"
- Click the "Reload" button at the top-left of the Synaptic screen
- Close Synaptic
- Click The System menu at the top again
- Click Administration
- Click "Restricted Drivers Manager
- Click to enable "Firmware for Broadcom 43xx chipset family"
- Agree to all the prompts
- When prompted for the firmware location, select "Internet" to have the firmware automatically downloaded
I must admit that I share Theodore Ts'o's enthusiasm for when things just work: once the Broadcom driver was activated, wireless networking worked straight away. To make things even better, I was able to install the Adobe Flash plugin and the Sun Java plugin all through the browser, without ever using a command-line. I wouldn't have minded had I been required to drop to a shell -- after all, I'm setting these laptops up so that the kids won't have to -- but I was extremely pleased that I was able to do it all in the way in which you would expect plugins to be installed: through the browser!
My initial reaction is that this is a decent little low-cost laptop. I don't expect we'll get superb battery life, and I know it's not a workhorse machine; but for the way the kids will use it (playing Club Penguin and Runescape, watching YouTube videos, email, and school work) it looks to be a fine choice.
I can't wait for the kids to come home from school so that I can see their reaction!


