Economy Size Geek - A Desktop for Our Little Penguin
The theme for this month's issue is the desktop, and when I sat down to write this article, I was going to focus on bringing the cloud to your desktop. A number of services exist, and I figured one of them would help me solve a problem that has gotten more troublesome of late—keeping all my workstations in sync. But, in the process of doing my research, a more pressing desktop problem came up. His name is Max.
Max is my son. He is only 15 months old, but he already has become a technology-seeking missile. No remote is safe. Any keyboard or mouse within reach is explored. This probably is a combination of mimicry, since I spend a lot of time with a mouse or remote in my hand, and his excitement over cause and effect. As the IT person in the house, I would prefer it that my users not bang on the keyboards until something bad happens. As a parent and Linux fan, I am happy for him to explore technology in whatever way he chooses—especially because I am in the golden time before I have to worry about what he is searching for on Google.
What started as a “crazy” idea came together pretty quickly. A quick scan of the inventory in my office turned up an old file server that was no longer being used. It is not very powerful, but Max did not need more than a “computer”. I found a CD-ROM drive and installed it. The computer already had a network card (yes, it is so old, there was no onboard NIC) and integrated sound. I pulled out an old 17" monitor and some speakers. That just left a mouse, keyboard and desk.
My wife already had gotten Max a keyboard. It was supposed to be for Christmas, but in the name of turning in my article in time, I opened it a few months early. It is a Crayola keyboard. The keys are big and brightly colored. It has no function keys (which means Max cannot get to the terminals). For a mouse, I picked up a Colby T-Rex mouse, which claims to be specially designed for the way little kids click. Originally, I was a little worried Max constantly would pick up the mouse to stare at the red light, but that did not seem to interest him.
The last piece of the puzzle was the desk. I measured Max and found that he needed a desk at about 22" tall if he was standing when he used the computer. I use a standing desk from GeekDesk. So, it seemed to make sense to have him stand as well—both because it is better for you and also because it means I won't be tripping over a tiny chair in my office. A quick trip to Wal-Mart turned up a computer stand. It was built out of particle wood and plastic tubes—not the best piece of furniture in the world, but I was able to find a combination of plastic tubes that gave it exactly the right height. As a bonus, I have tubes left over, so we can raise the desk as he grows.
Now that his workstation was assembled, it was time to get to the installing portion of the show. After some quick research on Google, I turned up three possibilities for his OS.
The Sugar Learning Platform was the system originally developed for the One Laptop per Child Netbook. I was interested in this one because it is specifically designed for learning. The developers spent a lot of time rethinking how everything works so that it would reinforce that goal. Besides, like most people, I had seen only screenshots. It seemed like this was my best opportunity to use it for an actual purpose. Sugar is now based on Fedora as its base OS. You even can download a version to run off a USB thumbdrive. I downloaded and installed the Strawberry release onto a thumbdrive.
Edubuntu is a branch of Ubuntu. This version is focused on building an “educational” operating system, and it seems to have two different goals. The first is to group software in age-appropriate bundles. The second is to make it easy to administer computer labs running Ubuntu. I was more interested in the bundles than the administration. Originally, Edubuntu provided a full ISO for you to download and install. Recently, it offers another option. You simply can add on Edubuntu bundles to an existing Ubuntu install, which meant I could just use one of the Ubuntu CDs I already had lying around.
Qimo (as in esQIMO) is a kid-specific distribution, also based on Ubuntu. It seemed to be more focused on the desktop portion than Edubuntu. For example, during the install process, you create a user account. That user is given full administration rights (aka access to sudo). Another user, qimo, also is created. qimo does not have a password and does not have sudo—meaning that when you boot up the machine, the user account the child is using can run applications but cannot make any modifications to the system. Qimo uses the Xfce desktop environment, so it should be less resource-hungry (which is important as I am putting it on old equipment). Qimo also has a very cute kid-style Eskimo theme.
I already had the Sugar thumbdrive, so I moved on to getting the other two installed. My goal was to have a run-off. I would install all three and play with them. Once I got comfortable, I would unleash Max on each and see which one was the winner.
I installed Jaunty (9.04) onto the computer. I also partitioned the drive into three different parts. That way, I could install each OS on its own partition. Once the install was complete, Ubuntu reminded me that Karmic (9.10) had been released. I decided to upgrade to Karmic, as the Edubuntu site said it supported it. After a long wait, everything was installed. Then, I added on the Edubuntu package:
sudo apt-get install ubuntu-edu-preschool
It installed without any problems. The only issue was it did not change anything about the look and feel of the system. Max does well, but I think it will be a little while before I have him navigate to different menus to find Tux Paint.
Undeterred, I went through the install process for Qimo. Again, things were very straightforward, but I made two mistakes in this portion. I did not install a bootloader. I figured I'd let the GRUB2 installed in Karmic handle the booting. (It turns out I should have installed it just to have easy GRUB menu files to crib from.) Second, I filled out the information about an account on the system. I clicked Auto login, because I assumed it was silly to make Max log in. That turned out to be a mistake. Because the system was set to log in as me, it would not log in as the qimo user.
Now I had all three ready for testing. As they say in the UK, things went pear-shaped. I have only two USB ports on the workstation, and they are used up by the keyboard and mouse. That left me nowhere to plug in the Sugar thumbdrive. I booted up Karmic, and in the process of trying to add Qimo as a boot option, I went down the path of upgrading to GRUB2. In the process, I blew up my ability to boot anything.
That basically wasted an entire afternoon. This was all meant to be a project to introduce my son to the wonderful world of Linux—not an exercise in hair pulling. I took a step back and looked at the Sugar Web site to see if there was another way to run it. Then, everything clicked into place. Sure, these are different “products”, but they still are open-source software. Everything I was working on was a package at some point. So, rather than thinking of it as “here are three choices, pick one”, I decided to install Qimo as the base, and then put Edubuntu and Sugar on top. That meant I could play with all of it.
I installed Qimo again. This time, I had it take over the entire drive. I also left the Auto login box unchecked. As I started poking around, I found that Qimo actually is based on Intrepid (8.10). I decided to use the onboard Ubuntu tools to upgrade it to Jaunty, so that it would be easier to bring in Edubuntu and Sugar, which was a very straightforward process. The only issue I ran into was with the custom GDM configuration file. I ended up hand-merging the original version from Qimo with the new one.
Once it was up and running, I added the Edubuntu package. Because it is available as a single package, it didn't take very long. So, that just left Sugar.
There are some known issues with Sugar and Jaunty. The Sugar Wiki pointed me to a PPA (personal package archive). I added https://launchpad.net/~alsroot/+archive/ppa to my sources.list. Then, I authorized the archive by adding its signing key:
sudo apt-key adv --keyserver keyserver.ubuntu.com ↪--recv-keys F265806A9BFFF0F4
I had to remove a package that caused a conflict and then was able to install Sugar:
apt-get remove etoys-doc apt-get install sugar-platform
To run Sugar, you run sugar-emulator. I played with it briefly. There were two problems. One, the version I installed seemed to need other things installed to get it to do anything. The second issue was even bigger than the first. The Sugar environment expects to be the desktop. That means it would like to take over the mouse and the display. It seems like it has potential, but it adds too much complexity for what I was trying to do for Max.
Next up, I added an MP3 player (Max loves to play music) and the Flash plugin. It turns out every kid Web site I could find requires Flash to see or do anything. I added links to his favorite Web sites to the desktop. I modified the display a little. I doubled the size of the mouse cursor and expanded the space between launchers on the main panel. Just to make things a little more solid, I zip-tied the mouse and keyboard so they can move, but not be removed. I contemplated setting up an auto off/on using Wake on LAN, but decided Max needs some more time before he can use his workstation unsupervised.
Once all that was done, I turned it over to Max. He played with Tux Paint for a little while. I turned on Proton Radio in the background for him, which he really likes. After a short time of moving the mouse, he anchored himself to the keyboard. Much like his father, he seems to prefer the keyboard as his input device of choice.
There is a lot of software out there for kids—serious typing tutors, counting and shapes helpers, and even a Mr Potato Head simulator (KTuberling). The craziest thing I saw was eToys, which is a Smalltalk environment for teaching kids programming. It is way beyond what I learned in Logo as a kid.
Max's first “computer” was my Chumby. He spent a lot of time looking at LOLcats on there. Plus, because the Chumby has a built-in slideshow for all of the content, Max constantly would get new stuff, even if he was just looking at the Chumby. That kind of interface really works well with Max's level of attention span. I was unable to find an application to duplicate that experience for Max. Spending some time searching, I have found some Flash-based games that come close. I will keep introducing new things to Max and see what sticks.
This actually brings me to my primary lesson from all of this. When I started, I was not sure if Max was ready for a computer. To be honest, there was not a clear consensus among my friends as to when that would be. Having played with Max and his computer for a week now, I can say this: Max is ready to explore anything as long as it is on his terms. That is the real value of this desktop. Now I have a place to show Max new things. I can let him try out new software or Web sites, and he can do it at his pace, because it is his computer. Before, as soon as playtime was done, I switched my computer back to work mode. Now Max wanders into my office does a little paint or controls the volume on some music. I look forward to the day when he asks for help debugging his eToys programs. I am not sure when that will be, but I am pretty sure it will come a little sooner with this project.
Dirk Elmendorf is cofounder of Rackspace, some-time home-brewer, longtime Linux advocate and even longer-time programmer.