Lars Wirzenius: January, 2007


Wednesday, January 24, 2007

Debian: Project Ummikko: Final report

Last July, I started an experiment, called Project Ummikko, with a friend of mine to see how well Linux is suited for a new user who has used Windows for many years, but is not a techie. I installed Debian, with GNOME, for her, and she went cold turkey: she started using Linux only, unless there was something she had to do, but could not achieve under Linux.

It has been half a year, and it's time to report on the results. Translating and abbreviating her own words:

The good part of using Linux is that I don't need to worry about viruses or defragmenting the hard disk and so on. I would be happy to remain a Linux users for things like that. In basic everyday use I'm happy.

The things that make me want to return to Windows are gaming, flash and other multimedia, and a feeling of helplessness. I want to play Alpha Centauri and adventure games I can borrow from friends. Flash doesn't work, and installing software from Debian via Synaptic is difficult, I'm not comfortable with it.

With Windows, I'm used to being able to go online to find a program to solve some problem I have, or some plugin I'm missing, or some toy program I want, and after a few mouse clicks, I have it installed.

There's many things that just don't work with Linux, like Second Life, or when my ISP would give two free movie downloads this month and next, but it only works on Windows and Mac. I have a feeling of being left out.

I could manage with Linux, with the assumption that I have someone like Lasu to do installation and tweaking.

The best thing about this experience? It was interesting to be able to make the experiement, the meta level has been the best thing. The best thing about Linux is the kind of maintenance things like no viruses or defragging, Linux doesn't rot like Windows does.

After we had the above interview, I upgraded her Debian, and this fixed at least most of the problems related to flash. Synaptic remains uncomfortable, and there's not much that can be done about Windows-only software.

I was pleasantly surprised by the results. I had expected much worse problems, but I'm happy to report now that Linux really does seem ready for the average Windows user.

The uncomfortability of Synaptic may be partly due to the fact that it is a different model from Windows: you get all your programs from one place, instead of anywhere on the Internet, partly due to just not using Synaptic much at all, and partly due to Synaptic not being perhaps as easy to understand as possible. I personally find Synaptic to be very nice, and use it regularly, but I am biased by having used Debian package managers for over a decade.

Even if she had learned to use Synaptic, it would, of course, not have been enough: there's lots of Linux software that hasn't been included in Debian. My friend therefore feels that it would be nicer, more liberating, to be able to just download any old Linux software from a web page and install it easily.

My conclusions: package management for Debian based systems could do with some work targetted towards neophytes. I am sure there are things that could be done to make package installation easier, less daunting, without dumbing down the system.

Tuesday, January 16, 2007

Random thought: Honya budo

Honya budo is the martial arts skill of visiting a bookstore without buying a book. It is an arcane art, practiced by secret masters in obscure parts of the world for several centuries. During the 20th century, when literacy went up in the western world, and people from every social strata started frequenting shops selling books, this venerable art has begun to rise in popularity.

The first level of honya budo is the "Way of the In-Out". It consists of going into a bookstore, looking around to see that they do indeed have many books for sale, inhaling the intoxicating smell of new books, and then immediately leaving the premises. This way, a novice learns to use the door and gains the right to use a plain white bookmark.

The second level of honya budo is the "The Feeling of the Touch". This consists of the novice doing the "Way of the In-Out", but before leaving, actually taking a book off a shelf, opening it, caressing it with gentle hands, feeling the texture of the spine, and enjoying the exquisite sensual smoothness of the paper. When the novice can do this, and put the book back on the shelf and leave the store without buying anything, the novice has achieved enlightenment of the second level and becomes an apprentice, and gains the right to use a colored paper bookmark.

The third level of honya budo is the "Path of the Randomly Hopping Rabbit". The apprentice enters the book selling establishment, visits every department therein, and looks for a book they have previously shown a special desire to have, which may not have been published. When they can't find it, they then speak to a salesperson, inquiring about the book. When the apprentice can do this and leave the establishment, without making the salesperson annoyed, and without buying anything, they have achieved enlightment of the third level and become an adept, and gain the right to use a leather bookmark.

The fourth level of honya budo is the "Stretched Leg of the Giraffe". The adept visits a bookstore with another adept, and spends an afternoon there, wandering from book case to book case, taking out books and discussing them with each other, commenting on their good and bad points, and recommending especially good books to each other. When an adept can recommend a book that the other will happily buy, but they themselves do not buy anything, then they achieve enlightenment of the fourth level and become a master, and gain the right to use a bookmark signed by the author of a book.

The fifth level of honya budo is the "Flight of the Serpent". When the master can visit a bookstore, and get given books for free, they have achieved enlightenment of the fifth level and become a supreme grand master, and can use any kind of bookmark they wish.

Saturday, January 13, 2007

Random hacks: Unperish

I've been thinking lately about how to improve my process for making a release of one of the projects I work on. Actually, calling it a process is to glorify it. Each of my projects basically does things differently, but they do share some common steps:

That's a lot of tedious manual steps. I would like to automate everything so that I only need a single command, possibly excluding the upload to Debian. I have the beginnings of script that does most of this, but it is not very flexible. Actually, that's not true: I have several scripts that overlap, and together they most of the above. It's a bother to have to remember which script does what, and is suitable for which project. They're all horrible to improve upon.

I use Bazaar (bzr) for version control in all of my own projects. A couple of days ago, I looked at the builddeb plugin for bzr, which creates a Debian package (source and binary) from within a bzr branch. It doesn't do more than that, however, and I'd like to do much more.

While thinking about this some more, I realized that something tied to bzr isn't very appropriate. While I currently favor bzr, I'd really like to not tie my development processes too closely to it. If nothing else, one of the projects I'm involved in is piuparts, which is currently maintained in Subversion, and I'd like to use my automation for that as well.

Further, sometimes I package other people's software for Debian. While most of the work is similar to when I package my own software, there are some subtle differences, and again, it'd be nice to use the same automation for this as well.

And, finally, sometimes I work on fixing bugs in other people's Debian packages, and most of the automation is relevant to that work as well.

I've decided that a single, atomic command is not acceptable. What I need is a suite of commands for each of the small tasks, plus one or more scripts to combine them together. The flexibility of combining small commands should make it easy to adapt things for different workflows and scenarios.

After some hacking, I came up with Unperish. It's currently in its early stages, but I intend to keep using it and improving it, until it takes all the pain away from making a release. At least for me, but hopefully it will be of some use for other people.

Wednesday, January 10, 2007

Random hacks: Notetak, revisited

My Notetak application is slowly maturing. Some day in the relatively near future I expect it to get so mature that I need to start refactoring the code so that it isn't utter crap.

So far I've developed Notetak by doing random quick hacks, as they have occurred to me, without caring much about maintainability, unit tests, or such. This is fine for the crude prototype phase Notetak is currently going through, but it's getting to the point where making changes meets with internal resistance, since I first need to figure out a way to avoid breaking unrelated things.

Now that I have some idea of how the application should behave, refactoring it to be nicely coded is easier. Heck, it's still only 374 lines of Python, plus a .glade file, so rewriting it from scratch should only be an evening's work.

Anyway, I'm pretty happy with it now. It fits fairly well into my simple GTD workflow, it's pretty quick to work with, and generally doesn't get in my way. I miss undo/redo, and the UI is ugly, and there's no pretty icon, but the core functionality is there, and is satisfactory.

(374 lines of Python to build a useful GNOME application is pretty good, I think. The combination of GTK+, PyGTK, Python, Glade-2, and libglade, is a very powerful combination indeed.)

Wednesday, January 03, 2007

Random thought: "You write free software, therefore you..."

In a discussion on a mailing list, on a topic that isn't relevant to this log entry, someone wrote: "I just have expectations that if there is going to be progress in the [civil liberties/equality issue], that the 'Free' software world would be at the forefront of that effort". This is a common mistake.

The thing that unites the free software developers, and the only thing that unites us, is that we make free software. Even though many of the us are liberal, or libertarian, or "leftist", or "green", or whatever you perceive as the common trait, it is wrong to assume all of us are.

Some free software developers are very much "leftist", to the extent of being members of the communist party. Some are stout, Bush-voting Republicans. A couple are neo-Nazis. Some are worried about global warming; others are working full time to prove it isn't happening. ESR has a gun fetish, I'm nervous even of policemen carrying guns.

All free software developers aren't even united in their opinions on matters that affect free software development directly. Some organize campaigns against software patents, others (although admittedly very few) apply for them.

I'm a free software developer and the only thing about me you can deduce from that is that I develop free software.

Random thought: A touch of neophilia

I'm not going to make any New Year's resolutions this year. I will, however, use the New Year as an excuse to re-think many things in my life. To start with, I have re-subscribed to several Debian mailing lists, even debian-private.

A second new thing is that I have a new toy, an iRobot Roomba GR. In other words, an automatic vacuum cleaner. I used it for the first time today, and it was hilariously funny. Not excessively expensive, either.

A third new thing is that I re-installed my laptop, with the Debian-Installer daily build from 2006-12-31. It worked like a charm. The old installation on this laptop had deteriorated over several months, as I did unspeakably evil things to it, so starting from fresh was a bit of a relief. Now I have an encrypted hard disk, and a working suspend and hibernation (suspend-to-ram and suspend-to-disk), apart from the backlight not coming back on automatically after resume. Yay! Etch is going to totally rock.

A fourth new thing is that I switched over my web log from CVS to Bazaar (bzr). It was the last vestige of my youth. When I was a child, I used RCS. When I was young, I used CVS. Now in my old age, I use Bazaar, because it is comfortable.

Incidentally, Notetak is up to version 0.4, and I'm getting comfortable with it, too. I'm going to experiment with adding tags to notes. I don't yet have an idea what would be a good UI design for that, but it will come to me eventually.

New things are good, even for neophobic luddites like myself.