Showing posts with label Computers. Show all posts
Showing posts with label Computers. Show all posts

They don't build them like they used to

So my notebook computer died.  It was only 2.5 years old and it had almost never been used as a portable computer; it spent most of its time tethered to the A/C adapter and the mouse.

It was a not bad computer, feature-wise, but I did have to buy a notebook cooler because it would overheat when I played games.  The battery stopped working one day, but that wasn't a big deal because I never moved the notebook.  I only bought a notebook because I needed to be able to put it away back when I lived in a condo.

Anyway, when your computer dies it's hard to write infrequent blog posts and do all those other important things I like to do with my computer.  So I had to buy a new one.  Problem was, I didn't know what to buy since I normally research my computer purchases on my computer before I buy them.  I was in a situation I've never been in before: needing to buy a new computer and being without a current one.  Ever since my parents first bought the XT back in '87 there's been a PC in the house.  I started feeling twitchy after about 6 hours.  I had to do something, and fast.

The problem with replacing a notebook is that your choices are A) another notebook (yech) or B) a whole new PC.  I opted for a desktop PC because I like desktops better.  But that meant I had to buy EVERYTHING, since I didn't have an old Desktop that would contribute a few parts here and there.  Actually I had to make a second trip to the store, because I planned to re-use my old DVD burner from my barely-working HTPC, but it turns out that burner is IDE and "modern" motherboards don't have IDE anymore, not even one port.  I don't really miss it but it is annoying.

I ended up getting
  • Asus P6X58D-E motherboard
  • Intel i7 950
  • 6GB DDR3 RAM
  • 1TB SATA3 HDD
  • ATI Radeon HD 5850
  • CoolerMaster case
  • Samsung BX2335 23" HD LED display
  • Windows 7 64-bit
 The display is nice and the increased speed of this PC is nice too.  Widows 7 is an improvement over Vista and XP.  So overall I'm pleased.  One thing that struck me is how long it took to put all this together.  Some things have not changed since 1995 when I used to assemble PCs for a living, but one notable change is that almost everything is integrated on the motherboard now.  That saves some time.  Installing CPUs (the first time, anyway) is as easy as it's ever been; put it in the socket, close the lever, snap the fan down, done.  The video cards are huge these days, and there's lots of power connectors everywhere, but what seemed to take the longest for me was getting all the extra crap plugged into the motherboard.  Every fan, button, external SATA connecter, etc, needs to be plugged into the right spot.  My case has a bunch of external features on it (hard drive dock, USB, eSATA, audio, etc) and those all need to be hooked up.  Once it's done, though, it's a nice case with easy-to-access features.  If only the SATA dock was hot-pluggable (maybe it can be, but it didn't work for me).

The annoying thing is that I didn't want to buy a computer right now, I was hoping to keep the notebook a bit longer.  Maybe I erred when I named it "Ephemeron".  I won't repeat that mistake again.  The new PC's name is "Eternia".

Fedora 12 ongoing saga

My HTPC was recently "upgraded" to Fedora 12. The Fedora 10 and 11 installs on that box were almost completely broken and so I opted for a clean install. What I forgot was that Fedora's text mode install leaves you with a system that has
  1. No network connection
  2. No Wi-Fi
  3. In fact, NetworkManager is not installed or is not working
  4. No GUI
  5. No easy way to install software from the CD-ROM media
Sigh.

I wanted to be able to connect this system to my network so that I could install the missing software, but this meant moving the computer to the other room, where the hub is.  This meant that I can't see what I'm typing, because this computer's monitor is my TV, which is a CRT weighing a million trillion pounds*.  So I plug the computer into the hub and turn it on.  But the network isn't starting, for some reason, or it's not connecting properly.  This means I have to log into the computer and try to type random commands blindly until the network card finally connects.

Once the computer is on the network I have to try to figure out WHERE on the network it is so that I can log into it from my notebook.  I wrote a little script to ping various addresses until I found it.  Once I had it I was able to log into the computer using SSH and then (gasp!) actually see what I was typing.  From that point on it was relatively easy to use yum to install whatever software I need, and the copious updates that Fedora had waiting for me.

Once the software was installed it was easy to get livna hooked up and the binary nVidia driver installed, which lets me use the TV as a monitor.  Now if only I could remember the incantation which tells it that my TV is not HD..... stay tuned.

--
*I'd secretly hoped that something bad would have "accidentally" happened to the TV when we moved, thus giving me an excuse to get a modern TV, but sadly, it arrived without incident.

Fedora 12

I am a glutton for punishment. This is the only conclusion I can come to because I keep trying to install newer versions of Fedora on my various computers.  Recently I tried Fedora 12 on my LG R500, which was relatively happily running Fedora 10.

I ran into a problem right off the bat: the installer wouldn't boot.  The kernel just got stuck partway along and froze. It turns out there is a bug with the TPM driver on certain hardware, which causes a timeout error:

tpm_tis 00:0a: tpm_transmit: tpm_send: error -62
tpm_tis 00:0a: tpm_transmit: tpm_send: error -62
tpm_tis 00:0a: tpm_transmit: tpm_send: error -62

This error can be worked around by disabling timeouts in the tpm module.  Unfortunately, even though this issue was known before Fedora 12 was released, it wasn't fixed, nor was it even mentioned in the release notes.  Sigh.


The touchpad also wasn't working properly.  After install, you can't tap it to click on things.  The simulated 3rd button when you click in the top right corner is broken. I googled and found that the touchpad needs to be configured in the Gnome control panel, however I'm running KDE and it didn't seem to have a touchpad applet.  Turns out it wasn't installed; yum install kcm_synaptics fixed that and I was able to enable the functionality that should be on by default.

Fedora 10 introduced a new graphical boot for systems which have appropriate video drivers; in Fedora 12 nVidia hardware is included using the nouveau driver.  The nouveau driver, however, is unfinished and it corrupts the display often (but the graphical boot is nice).  In the end I had to install the binary nvidia driver because flash video was freezing the machine. 

Speaking of boot, on boot Fedora starts the GDM Gnome login manager.  Annoyingly, KDE's switch user feature is still broken unless started from KDM; you try to switch users and instead the screen locks and that's all that happens.  No error, no warning, just a broken feature.  Switching to KDM requires editing a config file.

Installing software through kpackagekit is needlessly difficult.  Finding the right package to enable mp3 playback in amarok is an exercise in futility.  Amarok itself provides no indication of what is wrong; it just tries to play a song and fails, skipping the song and going to the next, with no error message or anything.  If all your music is mp3s amarok will just keep chewing through the playlist, happily not playing anything.

Also, for the first time in about 4 years, my printer doesn't work out of the box.  Drivers for every possible bizarre input type or video card or sound card or network card or HPC IO controller or satellite launcher are installed, but my printer's drivers were not.

Finally, because I wasn't feeling punished enough, I also tried upgrading my HTPC to Fedora 12 from Fedora 11.  I have no idea how badly things are broken because, to be honest, the Fedora 11 installation was pretty fuzzed to begin with.  But at least the upgrade installed and nothing seriously broke.

On the HTPC the KDE installation is missing some pieces because I can't log in using KDE as my desktop; instead I get no error message but am booted back to the login screen.  Some KDE apps don't work properly.  Also annoying is the fact that I can adjust my fonts to make things readable on the TV but only one of GNOME or KDE sees those settings, the other doesn't, but my menu contains either KDE apps or GNOME apps but not both.  An average user would be pretty annoyed that they want large fonts, and 90% of their desktop uses the right fonts, but there is a hidden, mysterious control panel that asks you the same exact questions you already answered in some other program, but you have to answer again or else 10% of your apps will look wrong.  Now, this is a Gnome vs KDE issue, but the fact remains that Fedora 11, installed fresh, and then 12 installed as an upgrade overtop, left me with a hybrid Gnome/KDE system, where the only graphical software installer uses tiny fonts because it's a KDE app and I'm stuck in Gnome.

If I get the HTPC working properly again using MythTV I am going to never upgrade it again.

I hate notebooks

The LG R500 notebook I bought last year started crashing recently. It seems that it's overheating. It happened more while playing a game or watching a video. I blame the video card.

My usual approach with a PC would be to take the video card out and replace it with another one, but with a notebook that's out of warranty your options are severely limited. So I decided to go another route and try to fix the cooling.

The first thing I did was take out every external screw so that I could get the notebook apart. Then I had to pry the outer shell open. Turns out I didn't need to do all that; the video card is directly under the keyboard and could be accessed by removing 3 screws. Sigh.

In any case, after taking the video card off I cleaned off the thermal paste and put the video card back. It doesn't have a fan; instead the video card and CPU are both attached to a huge heatsink that is cooled by a fan in the corner. I cleaned the fan too but it wasn't very dirty.

After replacing the thermal paste I found that the notebook was more reliable, though not fully perfect. But this emboldened me to buy a notebook cooler. For those of you who don't know, a notebook cooler is a ridiculous device that you put under the notebook, which provides additional cooling by blowing air onto the underside of the notebook. Think of the sidewalk grate blowing up Marylin Monroe's skirt, only instead of a skirt it's a notebook computer that's overheated.

Now the notebook works much better when playing games, but I'm annoyed that the notebook didn't work properly without these workarounds. Taking apart a notebook is not easy; even in this case where there was an easy way to get to the video card, it still cost me to learn this: One of the screws holding the two halves of the case together broke, and I stripped a screwdriver taking out all those screws. At least I basically know what I'm doing here. Someone who doesn't know what they're doing could find that they took it apart, put it back together, and it doesn't work at all anymore. The reason: thermal paste has to be re-applied when you take the heatsink off the chip. Raise your hand if you have thermal paste at home. I thought so.

Then to top things off, I had to buy a frickin' external cooling system for this. When was the last time you bought something and found that it didn't work at all without an external device to compensate for its shortcomings? It's like buying a phone, only finding out that you can't hear the person on the other end without an amplifier that you strap onto the handset. Or buying pants but finding out that you can't do up the zipper without a $100 velcro kit sold separately by a third party.

I should have had to buy a cooling system for this computer. It should cool itself.

Well, anyway, it works mow. I'm a little behind the leading edge of gameplay these days, but I've just discovered that the cake is a lie.

Fedora 11 Installation

I recently installed Fedora 10 on my media PC. That was the hardest Linux installation I've ever done... until now. Just when I thought Fedora's installer couldn't get worse, it did.

The problems begin when Fedora's installer doesn't know how to start graphical mode on my media PC. You'd think that by now a computer connected to a TV would be one of the things that just works, but sadly, it doesn't. Even the basic VESA driver doesn't work for me. My TV output works fine with the nVidia binary driver, but I don't think there's a way to install the nVidia binary driver during installation, and thus I have to use the text-mode driver.

Well, Fedora is well on its way to having the industry's most useless text-mode installer. The Fedora 10 installer stupidly broke my system when it upgraded Fedora 8, and so I wasn't going to take chances and upgrade again; I wanted to do a fresh install. The installer provided me three options:
  • Install using the whole disk
  • Upgrade Fedora 10
  • Install in the "Free Space"
Well, using the whole disk is out, and using the Free Space is out because I have no free space, and upgrading is out because I want to keep 10 working until I am sure 11 is ready for me to use. Where is the option to repartition?

It was at this point that I should have turned back, but I decided to tough it out. I switched to the second virtual terminal and manually deleted my unused Fedora 7 partition using fdisk. "That should do it," I thought. WRONG. 28GB wasn't enough space to install, according to the installer. So I grudgingly deleted my Windows XP partition, which was unused on that computer. This freed up an additional 120GB and then the installer was happy to continue.

The installer asked me one more question: "What is your root password"? After typing that in, it said "Making filesystem... done. Installing software... done. You may reboot."

Wait, what?

Where did my network setup go? Where did package selection go?

Ok, well... maybe the installer is two-stage and a second installer will start after I reboot?

Nope. Turns out that's all there is: The installer installed the base packages and nothing else. Well, I guess I can set up my wireless network card now... nope, wireless networking packages were not installed. Ok, let me start the X gui: nope, X isn't installed. Hm, let me install software: nope, the yum command-line tool doesn't know how to install from the DVD.

What is going on here?

Fedora's installer
  • didn't know how to install on my hard disk because I didn't want to use the whole disk and there were no empty partitions
  • needed more than 28GB to install nothing
  • left me with a system that had no network and no way to install software from the DVD.
And even though the installer knows I have a Fedora 10 installation that I didn't overwrite, that I took great pains to protect, it didn't set up a grub entry for it, so the system only boots into Fedora 11 and doesn't offer any other choices.
Maybe the graphical installer would work, but the only monitor I have for this computer is a TV (my other computer is a notebook). Maybe I could use the VNC install, but the wired network is in a different room from the TV, so I can't see what I need to type to set up the vnc install. And the worst part: The text-mode installer doesn't explain, at any point, what it is doing or what other options you have. A single help screen, saying what the text-mode installer was capable of, and notifying me of the fact that I am out of luck using this installer, would have saved hours of aggravation.

So far I've managed to get things working bit by bit by moving the computer to the room with the wired network, typing blind to log in and active the network card (why isn't it on-boot? sigh), and then ssh'ing from my notebook into the computer. At that point I can at least install packages from the network and see what I am doing. But it should not be this difficult! I've been using Linux for 12 years and it seems things have started getting harder, not easier.

Fedora 10 update

I recently posted about my installation of Fedora 10 and my thoughts about the distribution. Recently a couple of things happened that gave me new experiences to discuss.

First, I bought a PCI-Express WiFi card for my server. I used WiFi because it's not convenient for me to use wired networking anymore and the server has been down since we moved, awaiting its wireless capabilities. I carefully selected a D-Link card that is Linux compatible, and installed it. Guess what? Fedora 8 didn't recognize the card. This meant I needed a new kernel, because the kernel developers make it impossible to install new drivers without replacing the whole kernel. And when you run something like Fedora a new kernel means a new Fedora.

I'd previously told my friend not to install Fedora 10 because of the problems I'd had. Well, I disregarded my own advice and proceeded to install 10 on my server (mainly because I wanted to do an upgrade to make sure stuff still worked). Let me state this loud and clear: DO NOT ATTEMPT TO UPGRADE FEDORA TO FEDORA 10. This was the worst installation procedure I've ever dealt with in my 12 years of running Linux. I expected stuff to install and work but instead I got nothing but trouble.

First, the installer doesn't tell you how to activate text mode. And the graphical mode doesn't work on my server, which is hooked up to a TV instead of a monitor. This is because the free nVidia driver is crap and I am stuck with the proprietary driver (the lesser of two evils). Since I couldn't get the installer to work I decided to try using the package updater, yum, to do the upgrade. This failed miserably: yum complained that the new packages conflicted with the old. I tried removing the old packages but yum, in its infinite wisdom, decided that since I wanted to get rid of package X, it would get rid of Y, and since I was getting rid of Y, it would get rid of ABCDEFGHIJKLMNOPQRSTUVWZ. I didn't look at the list closely enough and in the end yum got rid of itself. Yup, yum uninstalled itself, and that left me with no package management tool at all.

This meant I had to get the installer working or else there'd be no way to repair my system. It turns out that the fedora text mode is easily activated by editing the command line for the kernel and adding the word 'text'. Simple, right? Of course, they couldn't include a menu option nor could they document this like they used to on previous versions. Sigh. Well, at least I was onto something and I could get the installer working.

The installer, however, didn't do a very good job upgrading my system. After it was done running I was left with a pile of old Fedora 8 packages (and one Fedora 9 package? weird). I had expected these to be upgraded, but they weren't. Well, no problem... except that these packages conflicted with the 1.3 GB of updates I was trying to download. (I got the network card working, btw... that's another story but mainly nothing went wrong.). So I had to remove all the fc8 packages and some other things and then the update finally worked. Oh, and then I had to go and manually fix the SELinux contexts because for some reason some things weren't right. Sure, Fedora 10 has improvements in SELinux contexts, but I guess they don't test the upgrade path well, because it'd seem to me that a filesystem wtih default labels should be relabelled accordingly so that you can, for example, use SSH properly. Just saying.

Anyway, one of the other problems I had was that, for some reason, my kernel wasn't updated properly. The updated kernel was only partly installed. I tried uninstalling it and re-updating, but then when I rebooted my screen just said 'GRUB'. Grub is the "Grand Unified Boot Loader", which means it's the program that starts the computer. Unfortunately Grub was never meant to be installed by humans, and it seems even the computer gets it wrong; I had to try a bunch of things to get the darned thing working and it took several tries. Luckily I am a programmer and an experienced Linux user, and also luckily the Fedora 10 installer is also a rescue CD. Otherwise my server would have been dead. Finally I got things "working", though because I had to remove so much stuff before my server is really only half working. So much for a simple upgrade.

Anyway, my conclusion is that Fedora 10's installer needs a lot of work. I've never had so much difficulty getting an OS installed. But once Fedora 10 is installed, isn't it worth the pain?

Well, I've been very annoyed with it. This is mainly KDE 4.1's fault, becasue 4.1 had lots of problems (including being so slow I could barely stand to use it). Who is to blame for KDE 4.1 being on my computer? The KDE team, for misleading people about how good 4.1 would be, or the Fedora team, for shipping "beta" software and not shipping the good ol' 3.5? Well, that's neither here nor there anymore: I just installed the update that brings KDE 4.2 to Fedora 10. And WOW! what a difference.

First off, my desktop icons are back. Some people don't like desktop icons, but when I've been using files on my desktop for 19 years, I get a little cranky when you take them away. The KDE devs listened and brought this feature back to KDE in a non-sucky way. Also, I was able to find the option for disabling one-click activation. It's not where you'd expect; instead of being in the file manager settings, where it should be, it's in the mouse settings. So maybe this option was in 4.1? but anyway it's here and my #3 annoyance with KDE 4.1 is gone. So now my computer is fast again, my icons are back, and my clicks do what I want. If only there weren't any new bugs... but I've already found my notebook doesn't suspend properly when I close the lid. Sigh. At least that's minor and can be easily worked around.

So, to the KDE team, I say good work on 4.2; it's about time. To the Fedora team, what's with the installer? Yeesh. Messed up upgrades, broken kernel updates, screwed up SELinux contexts.... normal people would not be able to get this working. Hope Fedora 11 is better....

Fedora 10

I recently installed Fedora 10. I had to because Fedora 8 stopped working for me: the Fedora 8 kernel stopped working with my network card and then a recent update broke something to do with permissions, so I could no longer use my soundcard or cdrom using a normal user account, I had to use the root superuser account. This was extremely annoying. Since Fedora 8 was end-of-life, I decided to upgrade to the latest shiny toy.

Fedora 10 supposedly has a lot of improvements, including flicker free boot (the boot process normally switches video modes a lot and blanks the screen a handful of times), faster performance, more up-to-date software, and lots of systematic improvements. Many of these improvements are true improvements but I have run into some issues.

Installation


Installing Fedora 10 was rather annoying. For some reason the installer kept crashing just before it finished putting the packages on the disk. I suspect the notebook was overheating, which I blame on insufficient power management software during the install. It could be related to the graphics driver used by the installer, but I couldn't verify this since you can't install a graphics driver for the installer and I couldn't figure out how to enable text mode. I was able to complete the install by selecting fewer packages and by propping the notebook up so that there was more airflow underneath it. Not a good first impression.

Hardware support


It seems that my hardware works better now with Fedora 10 than it did before. In Fedora 8 I had endless problems with the Wireless networking, but it seems to be working reliably now. It still crashes (just the wifi driver) but the system recovers fairly quickly and reconnects to the network. Better than Fedora 8, for which 90% of kernels wouldn't even CONNECT to my WAP.

The free nVidia driver that ships with Fedora works too, which is also better than F8's, which didn't work and caused the notebook to hang. But I use the binary driver anyway, so that's not a problem.

Software Installation


Fedora 10 comes with a new software management tool, PackageKit, which replaces whatever was there before. If only it worked! The KDE version, kpackagekit, is completely broken. I can't get it to do anything, it just hangs and (if running from a terminal) prints garbage on the screen. So I had to use the gnome version, which isn't fun in KDE because there's no icon, and you have to just know that the magic incantation isn't gpackagekit but rather gpk-application. Naturally! Anyway, the Gnome version works... sorta. When you are installing packages, you click a checkbox to say "I choose this to install", but if you search for more packages you can't tell what packages are queued for install. For example, let's say you search for "mp3" to find the mp3 codecs, and pick a package to install. Then you search for "media", to find a media player. If your codec package is in the media player list, it appears unchecked even though you have selected it already. There doesn't seem to be a way to see what you have selected to install. This isn't a big deal until you want to deselect something... I had hundreds of packages selected to install when it told me "oh, this package conflicts with another one you already have..." and there was nothing for me to do but start over.

One improvement in the software update area is the taskbar notification. Now you are notified about what updates are available and you can choose to install security updates or all updates. Only after choosing which updates to install are you prompted for the root password.

Synaptics Touchpad annoyances


I had a heck of a time dealing with the touchpad. For those of you who don't have a notebook, you can't understand what an irritating thing a touchpad is. It's like a trap waiting for the slightest touch of your finger to wreak havoc on your careful typing. In Windows the touchpad driver usually disables the touchpad while you type. Such functionality is available in Linux too, but for some reason doesn't seem to be enabled by default.

In days of yore I used ksynaptics to control the touchpad. It's a nice graphical tool which lets you customize the touchpad's behaviour, and it can also turn the touchpad off while you type. For one reason or another it doesn't work in Fedora 10 (even though it's part of the distribution, it's completely broken). I followed these instructions to enable ksynaptics but then was stymied by some version mismatch between ksynaptics and the synaptics driver. Doubly broken! Luckily, there was another web site which explained an alternate method of disabling the touchpad: run a program in the background. I had to set up this program twice, once for me and once for my wife's login session.... sigh. This should be default behaviour! It should be configurable! Tools which ship with the distro should work! But given KDE's second-class-citizen status in Fedora, I guess I'm not surprised.

KDE


Fedora 10 ships with KDE 4.1.3. This is the latest bleeding edge KDE release, with all the cool new stuff. Unfortunately, KDE 4 is in my opinion a major regression from KDE 3. There are lots of new things and I'm sure lots of imnprovements somewhere, but sweet ginger chicken are there ever a lot of problems.
First, the Desktop has been totally neutered. Ever since the days of Windows 95 normal humans have stored files on their desktop. All kinds of files, from icons for starting programs, to downloaded files, arranged in any way you like. KDE 4 has no such feature. For some reason they decided that the desktop wasn't a place for files. But because people complained they made an applet (called a widget) which shows you the contents of any folder. Guess what? I have a folder called, gee, Deskop? and I want it shown on my Desktop? except this looks like crap and did I mention it's SLOOOOOOOOOOOOOOWWWWWWWWWWWWWWWWW? Clicking on an icon in this file-viewer widget brings my dual-core, 2.2 gHz, 2GB RAM machine to its knees, where it promptly faints. What the heck is wrong with these widgets? And why CAN'T I just have files on the desktop? Ok, the concept of widgets is cool, and I like how KDE does it better than Vista, but PLEASE! I want to put files there!

There are several other major problems with KDE4. Some of these are, I'm sure, integration problems because KDE is always an afterthought for the Fedora developers. They just cram it in next to Gnome, spit on it, then wipe it with a snotty handkerchief to shine it up a bit. Gnome is Red Hat's precious child, a relic of the days when KDE had licensing problems, and thus always gets preferential treatment from the Fedora devs. But I digress: I was ranting about KDE.

The main problem is that the file management widget was completely changed and is now very hard for me to use. It used to be you clicked on a file to select it, and double-clicked to activate it. Not anymore: now you click on it to activate it, and... well, I'm not sure how to just select it. I guess nobody needs to do that? Oh wait... I do. And there doesn't seem to be any option to customize this behaviour. KDE 1.0 had single-click activation, back when MS did the same in Windows 95 + IE 4.0, but there was an option to turn it off and the default became double-click not long after. I find that I need to activate files in the file manager far less often than I need to select them. Thus the KDE file manager went from being awesome, in KDE 3, to useless, in KDE 4. Plus they replaced Konqueror with Dolphin, which I'm not sure is an improvement, but anyway Konq has the same stupid file manager component, so even it has the dumb single-click "feature".

Finally, overall it seems that lots of KDE bits have lots a lot of features. The panel used to be very customizable, now it isn't. For one thing, I used to be able to specify how wide the task-manager applet was, now I can't. There are other examples I can't think of at this time. I used to be able to set a wallpaper to fill the screen according to its maximum dimension; now that feature is gone. I used to be able to configure a bunch of things, but now the configuration options are missing. I used to be able to store files on my desktop, but I've already discussed that. Still bugs me though.

Chinese input


At last it becomes relatively easy to set up Chinese input for all programs. The SCIM tool finally works reliably in KDE and GTK apps. You can install SCIM and the SCIM-QT bridge, log out and log back in, and you can enter your Chinese characters. It doesn't work as well as the Windows Vista Chinese IME (which is awesome) but it works fairly well. This is one thing I am really pleased to see. I have typed a couple of documents in Chinese using OpenOffice and there have been no issues with the input. For some reason, though, OpenOffice printed my Chinese document as a nice page of little boxes. Hm.

Conclusion


Fedora 10 (KDE mode) is clearly a beta-quality release. Much of the blame here has to be laid at the feet of the KDE devs, who have released an immature product as if it were ready for prime-time. It is not. But there are so many other glitchy problems with this Fedora release that I wonder how I'd fare in Gnome-land. Is this solely due to the difficulty in packaging KDE 4 for Fedora? Some of the problems, like the synaptics driver and the package-kit problems are clearly infrastructure related, and KDE is not to blame here. Overall I am disappointed with Fedora 10's quality but I am pleased with its goals and feature set. I hope the quality issues can be resolved with some updates and maybe Fedora 11 will fully meet the expectations everyone had for this one.

The importance of transparency

An Arizona defendant was recently awarded the right to examine the source code of the breathalyser used to provide evidence against him. I discussed this a few months ago with some family when the same issue arose in Florida. I think it's critical that Arizona force this issue on the makers of the breathalyser and the police forces that use it, because to date the company that makes the breathalyser in question has never provided the source code and consequently racked up $1.2 million in contempt of court charges.

This is a serious problem in the court system.

The courts need to know that the evidence they collect is accurate. This is the most important thing is a fair court because inaccurate evidence leads to bad results. Guilty people can go free and innocent people can be jailed. These are not desirable consequences. In the case of a breathalyser, especially this one, which is reputed to give odd results from time to time, a person's freedom and life are at stake if the machine doesn't work properly. Thus the court needs proof of the accuracy of the breathalyser, and the only way to know that is to examine the device and its code.

Now, as I've discussed in previous posts, I hate drunk drivers and have no respect for them. I wish the courts were harder on drunk drivers, especially repeat offenders. I'm thinking first time means 5 years in jail, second time means 10 years and lifetime driving ban, third time means we amputate your legs and hands so you can never drive again. But I can't condone sentencing people when there's a chance that the breathalyser isn't working properly, especially if that is the only hard evidence for a DUI.

Every jurisdiction should require this of the breathalyser manufacturers: the design of the device must be fully documented; the source code must be available; there must be a way to determine which exact version of the source code is on which devices; and there should be QA of randomly sampled devices as selected by the state/province/etc. Manufacturers who refuse to comply will simply have their devices returned to them or the devices won't be purchased at all.

It's telling that CMI, the producer of the Intoxilyzer 8000, has never given over their source code even when their clients demanded it; they also refuse to sell the device to anyone but police forces, and the machine also failed to meet precision and accuracy testing in Tennessee, so law-enforcement agencies there are prohibited from using it. The only solution is to allow the defense attorneys to examine the devices and argue before the courts about any defects found. This is the only way we can ensure that the drunk drivers do go to jail, and those who weren't drunk don't.

Comment usability

Here's something that many blog readers know about: comments. Most blogs allow comments to be posted and now even newspapers like The Toronto Star allow comments on articles. But so many blogs and other sites fail when it comes to usability in this regard.

One big drawback that most sites have is they don't allow replying to comments where the reply is shown with the comment. This means you have to read through all the comments to find replies to the interesting comments. But some blogs are even worse: they post all the comments in descending order by date. This means you read the replies before you read the comments themselves. The Dilbert Blog is one such blog where I stopped reading the comments, since I have to read the page from top to bottom. This, combined with Scott Adam's philosophy of moderating all the comments at once makes it hard to follow conversations as they develop.

The Star's commenting system is even dumber. For one, comments can be voted on but the votes appear to be useless except to indicate that someone, somewhere, agrees or disagrees with the content of a post. Posts are moderated so you can't tell if a reply to a post is pending before posting your own reply. Posts are in reverse chronological order so you either read them backwards or go to the end and work your way back to the beginning. Finally, the posts are PAGED, so you can't actually see them all on one page. You have to click on links to go from page to page, but when you click the link it replaces the content of the current page with the comments from the previous page, but doesn't move you to the top of the list. Try reading the comments on an article with several pages, such as this one, and you'll see that it's basically impossible to navigate these comments without losing your mind. Plus The Star's policy about comments is even worse, because sometimes comments get deleted and comments are shut off for certain articles very quickly, which prevents real discussion.

The commenting system on Blogger, which I use, is primitive but at least it shows all the comments and in their proper order. It's such a simple thing but so many sites get it wrong.

Tira2 and Lirc

I converted my old workstation into a media pc. What is a media pc? Also known as a home-theater pc (HTPC) it's basically a computer hooked up to a TV. This lets me play my MP3s over my stereo system as well as watch digital videos on my tv. I can also theoretically play games on my TV but I don't do that (yet). There was nothing to this setup as my video card automatically supported the TV-out. All that remained was to add remote-control support, so that I could skip to the next MP3 using my trusty all-in-one remote.

My remote is the Pioneer AXD7381, which is a learning remote that came with my VSX-1015TX system. In order for this remote to send signals to the computer, however, I needed an infra-red receiver. Since I don't believe in classic serial ports, I opted to buy a USB IR device called the Tira, from a Toronto-based company. Lirc (the Linux infrared program) claimed to support it and so I figured I'd spring for the $50.

I'd hoped it would be trivial to get this thing going, but I severely underestimated the Lirc documentation. I don't know if I've ever tried to read a less helpful doc. The documentation assumed that you already knew how to set up Lirc, that you were using a serial device (is anyone still using serial devices?), and that you were installing lirc from source. None of those things were true for me, but I managed to get things working after much weeping and gnashing of teeth.

In the end, all I needed to do to get the Tira working was tell Lirc to use the Tira driver. On Fedora 8 you edit the /etc/sysconfig/lirc file and specify the -H Tira command line parameter:

LIRCD_OPTIONS="-H tira"

Easy enough, but the lirc documentation doesn't mention Tira other than to say it supports it. Specifically it doesn't tell you that Lirc won't need any of its usual device nodes, which means you don't need to waste time writing udev rules like I did. I wasted a lot of time because for some reason the Tira would sometimes be recognized as USB device 1, and Lirc refuses to work unless it's device 0 (/dev/ttyUSB1 vs /dev/ttyUSB0 for those of you who understand what I'm talking about). Once I unplugged/re-plugged the Tira a few times things magically started working.

Then I ensured that Lirc started with

/sbin/chkconfig lirc on
/sbin/service lirc restart


Anyway, the executive summary of Tira is thus:

1. It's a USB device that shows up in the kernel as a serial device.
2. Lirc supports usb serial devices but the documentation doesn't seem to want to admit it.
3. Once Lirc starts talking to your tira you need to set up some kind of action to take place. I did this using KDE's IRKicker, a niceadequate gui tool which lets you do things when you press a button on the remote. Unfortunately the tool is more complex than it should be. I've been thinking about this for a few days and I think making the tool easier to use would be a lot of work, but it's still pretty important work. But it's an acceptable compromise, for now.

Now I have another problem, which is that a universal remote control and a universal device (such as Lirc) don't really get along; the remote doesn't know what to say and Lirc doesn't know what to do. Since both devices speak any language, they need to be made to agree as to which language they should be speaking to each other. My remote was originally programmed to control (among other things) a CD Changer, which I no longer use, so I told Lirc to answer to the CD Changer's remote. But that makes it annoying to control things because, among other things, the CD remote doesn't have separate play and pause buttons. At least now it's just a matter of making the right thing happen when you press a button.

What would make this whole process a lot easier is if there were 1. A better installer/auto-detection for IR devices; 2. A standard way of mapping remote buttons, so that if the remote has a "play" button it "plays" the current application, such as a movie player or music player; Also it would be really nice if the Lirc mouse/keyboard control mode was better integrated with standard lirc and programs like IRKicker. But now I can play my mp3s and skip to the next song without getting up and pressing a key. And my music sounds GOOD on my stereo... I never knew how bad my computer speakers were.

PayPal sucks

PayPal are supposed to be the be-all and end-all of payment systems, at least they'd like you to think so. And their feature set is fairly compelling and relatively easy to use... until you decide to integrate an ecommerce application into their system.

PayPal's biggest value is that they make it easy for any random person to implement a basic web store without needing a merchant account for credit-card processing. This, plus the fact that they are the "trusted third party" makes them attractive to every Mom-and-Pop Internet T-Shirt shop out there.

However when you try to use PayPal's system to do any real ecommerce work using your own pre-existing ecommerce solution, you find the limitations in their system fast.

First, they have a multitude of slightly different products and offerings, each with slightly different features and slightly different names. Then they have lots of different ways to accomplish things: for one thing they have two different ways to make your ecom system talk to theirs: SOAP and NVP (name value pair) API. Why two? Who knows!

Then they pay lip-service to important things like testing: they have a "Sandbox" where you can create fake merchants and clients and process fake transactions, but the Sandbox is broken as often as it is working, and lots of things about it are dumb. For one thing it requires a valid-looking phone number for the merchant account setup, and other valid-looking data, even though the data is useless and doesn't factor into the testing at all. But on the other hand, important things like chargebacks can't be simulated through the Sandbox because... well, nobody knows why not.

Then there are lots of other weird glitches; parts of their system accept all character sets and other parts don't, leading to problems when dealing with foreign languages. In this day and age they should be able to use the character-set that the other end of the connection reports, but for some reason they can't. Luckily there is a workaround: you configure your PayPal account to ALWAYS use one character set (the user-interface for this is terrible) and then it works, as long as you never need any OTHER character set. If you don't know what a character set is, you're either lucky or you've never dealt with anything other than English/Spanish/French and you get away with the "Default" character set.

Another problem I had was that, when my code wasn't including the flag to indicate "partial" or "full" refund their system told me the amount was wrong. Well, the amount was right but it turns out something else was wrong... as a programmer I can guarantee you that it's trivial to get these kinds of error messages right, yet somehow they manage to screw it up; this cost me several hours of time trying to figure out what was wrong.

Also I found that there is a bug in their software (exposed through their mis-handling of character sets). I am using the PayPal SDK (software development kit) to interface my system with theirs; but when THEIR server crashes, THEIR sdk ignores the error and does something nonsensical. So I filed a bug, and their response was "use the SDK". I replied that I WAS using it, and eventually they admitted that their system was dumb and that the SDK was broken, but they didn't fix the SDK nor did they fix their system. In the end I had to fix the SDK myself. Not much point in using and SDK if it can't even get these simple basic things right.

Most vexingly is their inability to grasp that other development teams have processes and standards to maintain. My team, for example, works on an isolated test environment that isn't reachable from the outside. One of PayPal's features is that their system will contact your system whenever you have a transaction (this is called Instant Payment Notification or IPN). However for this to work (in testing) I have to have my IT guy open the firewall so that their system can reach my test system. PayPal doesn't seem to understand this and they are reluctant to publish the addresses that their test servers use; we need these addresses so that the firwall can allow them through. PayPal says "use the DNS to find the address". A better solution is to use DNS and reverse-DNS so that you can validate that the address and name match, however, PayPal fails on both of these. Their documentation states that the Sandbox IPN server uses one address (something .110), and their DNS also says this, however in reality it's something.33. And the reverse-DNS for something.33 fails, so there's no way to verify that this is the Sandbox IPN server. When my IT guy opened the firewall for something.110 the IPN failed, naturally, because it was blocked. I didn't know what address it should be so I contacted PayPal. They gave me the run-around, saying, essentially, "your system is wrong" and "don't use a firewall". They refused to admit that they had a problem and wouldn't tell me the true address of their server. I eventually discovered it through another means, then TOLD them their own address, and asked why the documentation didn't match. Their response was to close my support ticket, because now that I had the real address everything worked. Thanks for nothing, PayPal!

Anyway, it's frightening that such a poorly run company is in charge of so much money. Yet people (regular customers) trust them, so vendors need to support them to make sales. I guess in the end it's irrelevant because banks are no better.

Bad programming

The Toronto Star has an article about how some computer systems are programmed so badly, they choke on some people's last names. The article is about people with apostrophes, spaces, or hyphens in their names, and how some incredibly bad computer systems don't allow these characters. The article mentions that some systems interpret apostrophes and spaces as commands when storing them in the database. If it sounds incredibly dumb to you that a computer would interpret your last name as a command, you're right, it is incredibly dumb. But the Star is right on in this regard: there are a large number of systems that are vulnerable to this and it's a major problem, called SQL Injection.

Basically what happens is an apostrophe in the data is treated as the marker which indicates where the data ends and the commands begin. The problem is worse than mangled last names, though, because the stuff after the apostrophe is (as the article said) interpreted as a command and executed as such. Imagine writing a cheque for two hundred dollars. If you didn't write "Two Hundred Dollars" but instead wrote "Two Hundred", the recipient of the cheque can insert "Thousand Dollars" on the cheque. This would be bad for your bank account. Similarly if a person were to were to type into the last-name field of a website "Shiny'erase all data", the computer will think the last name is "Shiny" and treat the rest as instructions to erase all data (the SQL is paraphrased). Anyone could attack the system and manipulate the database in ways they wouldn't normally be allowed. The XKCD comic strip has a good comic illustrating this issue: little Bobby Tables. The comic is a little nerdy but it's completely accurate.

Frankly there is no excuse for such bad programming. Frankly there is no excuse in 2008 for most of the common computer flaws we see, but companies don't want to spend money doing proper development, QA, or usability testing. The problem with apostrophes, however, is worse than customer inconvenience. It's often a sign of a major problem with the system.

Gift Registries done wrong

Someone I know has a gift registry at Sears, a major Canadian retailer. Now a gift registry is an idea of marketing genius: convince your customer to make a list of everything they want, all in one place, to ensure that their friends/relatives buy everything from you. Wonderful! It works because it is convenient for the customers too, and it's a totally one-sided affair for the business.

However, in this day and age a gift registry must be as easy to use as possible. The stores already use technology to their advantage; if you are in the store you can add items to your registry by walking around the store with a barcode scanner and scanning barcodes. You can edit the quantity or scan an item multiple times if you want two or more. Easy as pie.

However, Sears makes three major blunders with its registry. First, their website, catalogue and retail stores don't all have the same inventory, and what they do have may not always have the same price. This is confusing to the consumer. Howerver the gift registry compounds the problem because it doesn't show the up-to-date price for anything! The price shown is the normal price when the item was added. There is no excuse, in this day and age, for the price being out of date. At the very least it should be accurate as of 24 hours ago. But even worse, as a result of the separate inventories, some things are not available except when you buy by a certain method. I can understand that the catalogue doesn't contain the entire store's inventory, or that the stores don't stock certain items, but you should be able to walk into a store and order a special order item, and the website should contain every product, and should allow delivery of any product. Anything less is simply bad service.

Second, the gift registry doesn't give you the most up-to-date website price when you click "buy now" (I should also note that the registry pages look so bad I couldn't find the buy now link at first). Instead, if you find the item at a lower price on the website, say because of a sale, you have to add it to your cart on the product's page, not on the registry page. WTF? The registry has a big scary warning "explaining" this:

Please note: Prices shown below were in effect at the time of registration. Our current selling prices may be higher or lower at the time you purchase. For retail store purchases, you will be charged the price currently in effect in our retail stores on the day you make your purchase. For catalogue orders and orders placed online from this Gift Registry, you will be charged the lowest current price in Sears printed catalogues on the day you place your order. Items that can be ordered online are indicated with 'Buy Now'. IMPORTANT: Some of these items may be offered at lower prices elsewhere on this website, but you must ‘Add To Basket’ directly from the website item page in order to receive the website price. Sears cannot guarantee that all items in this registry will be available at the time you shop.
It's simply bad customer service in 2008 to offer a product at one price but only if the user clicks a certain link, because your other link doesn't support the current price. Basically the warning message is saying "don't use the registry to buy items".

The third blunder is that the registry page itself is a fossilized relic from 1994; we're talking a plain, ugly HTML table, in monospace font, without a colour or graphic to be seen, but worst of all, without any links to a product description or picture or anything. Sometimes even the name of the product has been truncated so you can't tell what the item is unless you already know what it is. Great design, Sears.

Sears, do yourselves a favour, update your registry system. Maybe more people will use it, and you'll make more money?

I don't want iTunes

For some reason Apple seems to really really want me to install iTunes. I don't have an iPod and I've never installed iTunes, but I did make the mistake of installing QuickTime. When you install QuickTime it installs Apple Software Update, which is good because there have been serious security bugs in QuickTime, but Apple uses the software update to try to force-feed you iTunes, so that they can maybe con you into buying their DRM'd products.
Please, Apple, stop trying to force me to install iTunes! Installing unneeded software on a computer is bad; it can make the computer slower or less stable, it can be a security risk (what if Apple Update stops working? now I have an insecure QuickTime AND and insecure iTunes), it can confuse users by changing their settings (gee, WinAmp used to load when I clicked on an MP3, now it's iTunes?), and it wastes disk space and clutters the Start Menu.

Equally annoying is that all the benefits iTunes supposedly bring me are tied to other Apple products: the iPod (don't have one), the iPhone (not available in my country), Apple TV (don't think it's available here), the iTunes store (music locked to your account, can't be easily backed up or sold or played on a non-iPod device)... iTunes doesn't really bring anything good to the table; it's more of a necessary evil if you use one of those other things. Which I don't, which is obvious to Apple because I don't have iTunes installed. If I needed iTunes, it would be there already.

What's worse about this situation is that Apple does two sneaky things to try to con you into installing iTunes: first, it calls the package "iTunes + QuickTime", which is maybe confusing because people think "Oh, I do have QuickTime, maybe I need this update", and also they prompt you to install it even if you've already declined before.

Apple lets you "ignore" updates, which makes them disappear from the list, but irritatingly they pop back into the list whenever the updates are updated. This means that even though you repeatedly tell Apple to screw off, they still insist that you install iTunes.
I've searched on Google and haven't found a way to stop this spamming short of shutting off automatic updates of QuickTime (and any other Apple software I might have, like Safari). I guess I'm stuck denying them again and again. Or maybe I'll just uninstall QuickTime and Safari and banish Apple from this computer entirely.

LG R500 Notebook

I bought my first notebook computer, an LG R500. Previously I'd resisted getting a notebook because they are very expensive compared to desktops; I'd rather spend the equivalent on a desktop and get twice the machine. But this time I needed the portability so I had no choice.

I chose the R500 because
A) It had a 1680x1050 screen
B) It was fast enough, otherwise, and
C) It was on sale for a reasonable price.

This last point may seem silly but it's important because most notebooks are woefully under-spec'ed when it comes to display resolution, unless you're willing to go for the ultra-high-end. In Toronto this means spending over $2000 for a notebook. I'm past the days of spending over $2000 for any computer, so I had few choices in the under $2k range. Almost all notebooks have pitiful resolutions, with only 900 or 800 lines. Maybe I'm a snob but those notebooks just don't cut it.

After getting the LG home my first task was to verify that all the hardware is working, because there's only a 14-day money-back guarantee (there's a warranty, but that's not the same thing). Once I was certain that everything worked (I tested WiFi by connecting to the various unsecured access points in my building... tsk tsk, people, lock down your WiFi!), it was time to re-install the OSes according to MY requirements.
My most important requirement is Linux. Unfortunately this notebook came with the OS pre-installed, and more unfortunately it's Windows Vista (Home Premium). I've heard nothing good about Vista, bug after giving Vista a look I decided that I like the UI changes, even though they'll take some getting-used-to, and we'll have to see how the performance is.

Thankfully for me, LG provides a "restore CD" which installs the OS for you. Unfortunately it erases the whole hard drive first (not a problem as this is a fresh system), but at least the CD is available out of the box (Some notebooks don't ship with a CD, you have to burn it yourself - ridiculous, if you ask me). More fortunately the restore CD lets you specify how many partitions you want to use. This means I won't have to mess around with disk-resizing tools and risk corrupting the file-system; it can be "right" from the get-go. The other downside about the rescue CD is that it installs some rescue files in a separate partition on the hard disk, which eats up one of the primary partitions. Luckily I can make-do with just 3 partitions: one for Windows, one for Linux, and one for data.

In the old days my data partition was FAT-32 because that was the common-denominator between Windows and Linux. Back when I started messing around with Linux I even had to compile my own kernel because the kernel that came with RedHat 5.0 didn't support FAT-32. Ah, the olden days, when you had to compile the kernel... that takes me back. Anyway, more recently I stored all my data on a remote server, and thus didn't have to worry about the filesystem, because Samba took care of it. But with a notebook you can't rely on a network share and so your two OSes will need to play nicely together on the same disk. I will have to investigate the various NTFS drivers for Linux to see what I can do.

Windows Configuration
It's been a while since I installed a Windows OS so I was interested to see what would be required for Vista on this notebook. It seems that LG has opted to provide a separate driver disk for installing the custom software that ships with this notebook. The basic installation when ok, no questions were asked (after setting up the partitions) other than simple date/time questions. After windows rebooted and appeared to be started, a program started that said "Setting to System Recovery Environment". The installer had originally told me to wait until user registration started, but it's still odd that we have to wait for this program to run, and odder that it starts up AFTER the windows welcome screen shows up. Once this mystery program finished it rebooted the computer. Then I was informed that Windows was checking my system performance, and then the system rebooted again. This was a pointless exercise since there were important drivers not yet installed, so my system's performance was 1.0.

Booting seemed to take a long time and the system came up in 800x600 resolution. This is silly because Windows should know the monitor's resolution and I don't think it's too much to ask that windows know this is an LCD, and thus deduce that it should automatically use the highest resolution. At least the highest resolution was available without needing the nVidia driver installed.

Once the system was up and running, I had a nice clean Vista install with zero third-party drivers. This is both good and bad. On one hand, it means I also don't have the third party demo software or other undesirable software that I might not want. On the other hand it means there are no drivers at all. I think it would have been more professional of LG to slipstream the drivers for the camera, video card, flash-memory accelerator, card reader, and all the other devices that are built-in. This is not what happens and instead you have to resort to the "LG Intelligent Update" CD that comes with the notebook. This CD lets you install all the missing stuff, in one fell-swoop.

Unfortunately, the CD doesn't let you do a custom install, so I had to do that manually, but skipping the auto-run and running a bunch of setup utilities directly from the CD. This isn't very convenient but to LG's credit at least they make this possible. When I used to sell computers (mainly Compaq, AST (that dates me!), HP, IBMs, and Packard-Bells) it was common for a "restore CD" to auto-install everything, including tons of junk you didn't want or need. LG's approach makes life relatively simple for the novice user but not hellish for the advanced user.

That being said, here are all the software packages I had to install to get the system working in the way I wanted it to work:
  • Cardbus driver
  • Fingerprint sensor driver
  • Intel Chipset driver
  • Intel Turbomemory driver (what is this?)
  • Wireless adapter driver
  • nVidia driver (not available from the nVidia site
  • On-screen display (for volume control, etc)
  • Webcam driver
  • Touchpad driver
  • Plus run Windows update
Finally, some comments on Windows Vista. First, they've changed the Explorer address-bar/location drop-down box. This is good and bad. I like the bread-crumb navigation, which lets you quickly jump back up the folder tree. Some of the new behaviour is a little odd, though: when you click on the far-left bit of the address-bar it becomes a text input, but if you click on other places it navigates to what you clicked on. I'm not used to the behaviour and I don't know if a novice would like this or not. Then there's everyone's favourite feature, the authorization prompts. When you're a normal user it's handy that Windows lets you easily elevate your privileges to get work done, like installing software. For me, this is what I'm used-to from Linux and it's ok. But when I'm LOGGED-IN as the admin it's really, really annoying to be prompted every time I try to do anything admin-ish. I can appreciate Microsoft's predicament, and understand why they did this, but I wish they'd sacrificed more backwards compatibility in order to improve the user-experience for the new security. Oh well, they had to try something.

Linux Configuration
Linux has a disadvantage over Windows because LG took the time to support Windows but didn't do so for Linux (that I know of). Consequently there is no equivalent to the LG Intelligent Update disk which contains any third-party drivers, there is no one-stop install disk, and no guarantee that Linux will even work. But Linux usually works out-of-the-box on any modern system and I'd googled this system before so I was confident it should work.

First I had to download Fedora 8 and burn it to a DVD. Then I put it into the drive and rebooted the notebook. The system booted right away from the DVD, but the DVD drive was noisy, like an old Commodore 64's floppy disk. Since I don't use the drive much that's not a big deal. I was greeted with the Linux install prompt, which asks me to choose between graphical and text-mode installation. Unfortunately, the graphical installer just hung the machine so I had to use the text-mode installer. I haven't had that kind of problem in years, and was quite disappointed. First impressions were not good.

Things weren't better after the install was finished. I was left with a text-mode console, with no indication of what might be wrong with the graphical mode. Luckily I know my way around Linux so I was able to try starting graphical mode (it's called X, for you non-Linux users) by using the 'startx' command. This hung the machine... no wait! turns out it only hung the keyboard and display. I was able to ssh into this machine from my other computer and fix things. Amusing anecdote: years ago I told my manager about how I restarted X by telnetting into a crashed computer, thus fixing the computer. He said I'd been born in the wrong decade. Back on topic: since the console seemed to be the only thing broken when I started X, I hoped that installing the nVidia driver would fix my problems. I configured the livna repository and sure enough, installing the nVidia driver did fix everything. I even had a graphical boot screen, which was also missing earlier.

The first order of business when installing a new OS is to get the patches. I did this in Windows using Windows Update and tried runing "Pup" to do the same in Linux. Pup told me there were hundreds of updates, and asked if I wanted to install them. I clicked yes and waited. That's when the Pup window went away and wouldn't come back. Well, it didn't go away, but it became blank and unresponsive. I ended up killing Pup and running the command-line tool, yum. Yum revealed (indirectly) what was wrong with Pup (besides an unresponsive GUI): the updates were 625 MB in size! This meant I was practically downloading the whole distribution again. Not fun, but at least I have high-speed internet.

Once everything was up to date I had to get my hardware working. Almost everything worked out of the box except the WiFi, webcam, card reader, and fingerprint scanner. WiFi was actually easy to set up; for some reason the NetworkManager service wasn't running. As soon as that was on the rest worked fine. I don't know why it wasn't on, and I hate to think of what a non-expert would do to resolve this situation, but for me decades of computer nerdiness made this problem easy to solve.

More tricky was the webcam. It is supported by the uvcvideo driver, which (for some reason) isn't part of the main Linux kernel and also isn't shipped in Fedora. So I had to install this driver manually, which I did according to the instructions here. With that driver installed the webcam works fine.

I haven't installed the fingerprint reader driver in Linux (nor Windows) because I don't need it, but I should note that Fedora 8 appears to completely lack support for it.

I didn't get the card reader working. It seems Texas Instruments hasn't released information about this device and it doesn't present itself as a standard block device; each memory stick type needs a custom driver. Work is under-way to reverse engineer this so I'll hold out some hope.

The LG R500 Itself
Overall I am pretty happy with the notebook. There is one major problem, in my opinion, though: the keyboard is very odd. Now, notebook keyboards are notorious for having strange layouts and compromises, and this keyboard has its share of cramped keys. But the problem I'm referring to is the placement of the key with the pipe symbol and the backslash. Most keyboards have this key on the second row between the back-space and the enter key. Some keyboards have a huge, backwards-L-shaped enter key, and they place the backslash beside the backspace key, and compromise by making backspace smaller. Back when keyboards didn't have Windows keys you might find backslash between control and alt. All of these make sense, and my favourite is the big, two-key-wide backspace and enter, with 1.5 wide backslash in the row between them.

Why am I going on and on about this? Because the LG R500 does not follow any of these norms. It has the enter key as a weird upside-down L with the backslash key nestled-in between the apostrophe and the enter key. This means that the spot where I usually find the enter key (right next to the apostrophe) is now a backslash, and the spot where I usually find the backslash is now the enter key. To make it worse, there's a SPARE backslash key next to the shrunken left shift key, also in the spot where I'd normally hit the left-shift key. This means I have difficulty typing things because my shifted characters and newlines are littered with backslashes. I suppose I will get used to this but this is a major crime for people who touch-type. It'd be less irritating if the whole layout was different, say, Dvorak, because then EVERYTHING I typed would be wrong, instead of just my passwords (I end up typing a password as ******\) or my capital Ms (they become \m).

Aside from the keyboard, my only other problem is the card reader. Besides its total lack of Linux support, It's placed underneath the keyboard and it's very tricky to reach. But at least it's there, and it accommodates my SD cards and Memory Sticks with no trouble, so that would save me from using my USB card reader, if it worked in Linux. The rest of the notebook is good: the keyboard feels nice, I can type most things perfectly, the touch-pad works well, and all the other features I've tried have worked exactly as you'd expect. Performance on this notebook is good but I've yet to play any games to really put it through its paces.
Conclusion

The most important conclusion is that I will be keeping this notebook, and not exercising my 14-day money-back guarantee. As to which OS worked better; the Vista installation was definitely easier than Fedora 8, but if the installer had supported the video card out of the box I'd call it close. Fedora loses points on the lack of webcam support and the inexplicable failure to launch NetworkManager by default. I don't blame Fedora for the lack of card-reader support, however, because it's not their fault Texas Instruments are living in the wrong century with regards to supporting Free Software. Anyway, once installed the two OSes have behaved pretty much as you'd expect, and all is looking good.

The Battle for Wesnoth

I've discovered a new drug: The Battle for Wesnoth. This is a Free Software game which is available for Windows, Linux, Mac, and many other platforms. It's a turn-based strategy game with both single-player and multi-player modes.
The gameplay is very simple: you have a bunch of soldier units which can move along the hexagonal grid. Your units have various characteristics, such as different kinds of attack and defense, magic, flight, speed, or other traits, and you must use these traits to defeat an enemy or capture a position on the map. There are other nuances, such as characters who work better in the day or in the night, and most importantly, characters who work better on different kinds of terrain. As your characters defeat enemies they acquire experience and advance to new ranks. You can recruit more units by getting gold, which you get when you occupy a village.

With these simple rules the gameplay is easy to pick up, even for a novice such as myself, but the games are quite entertaining. There are a number of single-player campaigns and there is also a multi-player mode.

What's most interesting about this is that this game is completely Free. You can download the code, artwork, and music, and modify or re-use it in other Free programs. This is rare in the world of games, especially for such a high-quality game.

The other day I was playing the game when I realized it was almost time to get up and go to work. That sort of thing hasn't happened to me in a long time and is a testament to the addictiveness of this game.

Signs you've been online too long

Some people don't know when to quit. As an avid computer user, I've had my share of long online games. A few times in university I recall playing online games until the sun came up. But this guy in China takes the cake. Apparently he played so long he died of exhaustion. I wasn't aware the problem was so serious, so I've put together a handy checklist which you can use to determine if you've been online too long:
  1. The Internet Cafe technician comes by to upgrade Windows on the computer you're using and you don't recognize the year in the version number
  2. You have to change your mailing address to the Internet Cafe's location so that you can continue to receive your credit-card statements
  3. You don't have time to shower but you've had to clean the mouse and keyboard several times since you started playing
  4. Your family stops visiting you or phoning you and only contacts you through MSN Messenger because that's the only way they can reach you
  5. You can't discuss geography or politics with anyone because all your knowledge is out of date due to continental drift.
If you have any of the above symptoms, you've been playing online too long and should take a break immediately. And probably you need a shower.

Times and Dates

Today a coworker and I grappled with a weighty issue: Time.

The thing is, time is one of the most complicated concepts humans have invented for themselves, but we've managed to hide the complexity behind artificial facades. For example, all business record the time and date when transactions occur. Businesses want to know how much money was made when, and this information is summarized on a daily, monthly or quarterly basis, but in the computer realm we deal with seconds or milliseconds.

How many milliseconds are there in a month?

It's a trick question, because the length of a month depends on which month it is, and whether this is a leap year or not. People expect to be able to calculate the time between two dates, and also to be able to determine what the date some number of seconds from now. Both of these tasks are extremely annoying because dates and times use convoluted units of measure.
1000 milliseconds in a second->60 seconds in a minute->60 minutes in an hour->24 hours in a day->7 days in a week->28, 29, 30, 31 days in a month->12 months in a year->365 days in a year->almost 52 weeks in a year->almost 4 weeks in a month

Computers typically represent time in milliseconds since some arbitrary point. Linux, Unix and Java use Jan 01 00:00:00 UTC as the reference time. Thus the number 378113400000 represents Fri, 25 Dec 1981 07:30:00 GMT, while the number 378563400000 represents Wed, 30 Dec 1981 12:30:00 GMT. This is useful for determining how much time has passed from one instant to another but makes it difficult to determine what the date is at a particular instance. This difficulty is compounded by the fact that the calendar isn't continuous: during the Gregorian switchover (when most Christian nations switched from the Julian Calendar to the Gregorian Calendar) the date went from Thursday October 4, 1582 to Friday October 15, 1582. Except in countries that didn't switch calendars, including the United Kingdom, which rejected everything the Pope said, and thus they held on to the Julian Calendar until 1752, when Wednesday, September 2, 1752 was followed by Thursday, September 14, 1752 (an 11 day jump, because in the intervening years the Julian Calendar had become further incorrect). It is difficult to accurately represent times in this era, mainly because not everyone agrees on what a specific time should be called.

Then there's time-zones: there's dozens of them and they cause havoc with time. In local terms some days are 25 hours long or 23 hours long when the time changes from or to Daylight Saving Time. Luckily most computer software uses UTC, which doesn't have time-zones. Internally computers represent time in UTC and only convert to local time for display purposes. But there are still issues, because the computer still needs to know the rules for how to convert to local time and sometimes the rules change, necessitating a software update. In some jurisdictions the rules for Daylight Saving Time change every year.

Which brings me to the problem we are facing at my office: for better or worse we have a system where dates and times are recorded in a non-UTC format, which is to say, in the local timezone. This arrangement makes it difficult to examine data and compare it to other systems because the other systems use UTC. Except for the ones that don't, because they use some other timezone. This makes it problematic to look at logs and discuss the order of events because the timestamps all mean different things. It's like England in the 18th century: When an Englishman spoke of the date September 1st 1752, any Frenchmen nearby would have to mentally translate to Sept 13th 1752. However fixing the clocks and time-zone settings on the various systems won't solve the problem of systems that don't speak UTC and can't be made to. For those there is nothing to be done. But as a lesson to future system designers: do everyone a favour and
  1. Synchronize the clocks of your computer gear, and
  2. Always store dates/times in UTC
The maintainers of your system will thank you.

Convict whines that he can't use Linux while on Probation

TorrentFreak has the story of a man (alias Sk0t who was convicted of copyright infringement, and who is now serving probation, who claims the Department of Justice is making him switch from Linux to Windows. The terms of his probation are that he can't use the Internet without special DOJ monitoring software, and this software only runs on Windows. "Why should I conform to them when I am consenting to the software… they should have software that conforms to me." Sk0t says. As expected, the knee-jerk reaction from the TorrentFreak website and many other sites is condemnation of this criminal and... no wait, it's the other way around. Many people seem to think the convict is right when he expects the government to have monitoring software that works on every single computer. Frankly that's ridiculous. I can name, without googling, over two dozen operating systems off the top of my head, and that's by compressing similar OSes together:
Windows NT/2000/XP/Visa
Windows 64-bit
Windows 95/98/ME
Windows 3.1
Dos
Windows NT for Aplha, PPC, MIPS
Linux (hundreds of variants)
OS/2
Mac OS classic
Mac OS X
NextStep
BeOS
Atheos
QNX
FreeBSD
NetBSD
OpenBSD
Solaris
Aix
HP-UX
Irix
Sco OpenUnix
Sco Xenix
Sco Unixware
System/390
CP/M

Most of these OSes are real commercial products with lots of users world-wide. Is it reasonable for the government to have convict-monitoring software for each of these? Never mind that Linux itself is available in dozens of versions, for dozens of platforms, and with countless variations of distributions. Heck, just supporting the Windows family would be a big enough task, and some commercial software companies can't keep up with them all, nevermind every OS out there.

The dumb thing about this is that the convict is crying that the government is infringing on his freedom of choice. Guess what Sk0t? YOU'RE A CONVICT! Your rights were abridged when the sentence was passed. And you can't tell me that being convicted of this crime is a complete surprise: you uploaded a major motion picture (Star Wars III) to the Internet before the theatrical release! That's bound to attract attention from Hollywood, and in this day and age people are getting caught, and sued or tried for copyright infringement, and everyone knows it. Yet Sk0t went ahead and uploaded it anyway, knowing full well the wrath he'd incur if caught. And now he's allowed to walk free, with certain conditions, but he's still not satisfied. Well, tough. STFU and next time don't commit a crime.

Strange bugs

Sometimes, as a software developer, you have to debug very odd problems. One strange one that I worked on recently was that, after deploying a new version of a website, logins spiked to crazy volumes. It was as if every user was logging into the site again and again. Clearly they weren't doing that, but there didn't seem to be anything wrong with the site.

We tracked down the issue by logging all URLs visited and found that, when Internet Explorer visited certain pages, a request for "/" was made. For you non-technical people, this is the home, or landing, page of the site, the page you get when you visit http://www.google.com/ as opposed to a specific page at Google, such as http://www.google.ca/intl/en/about.html. On the website in question, requesting the main landing page will log the user in if they selected "remember me" the first time they logged in.

But why was IE requesting the landing page? The real page we wanted was showing up fine, but you could see that IE was, in the background, requesting the landing page. It turned out to be an empty image tag:

<img src="">

This tag, which on Firefox does nothing, causes IE to request / as the source of the image. Seems pretty odd since I've never come across a website that uses images as a landing page, but what can you do? We changed the page and removed this empty tag and the problem went away.

For those of you wondering what we wanted an empty tag for, rest assured, we had a reason: JavaScript on the page was dynamically setting the src for that image under certain conditions. The full solution to the problem was to remove the img tag entirely and dynamically create it using JavaScript.