Lars Wirzenius: February, 2004
- February 26: Laptop screen acting up
- February 25: Web sites resist link checkers
- February 24: No command line = no security problems
- February 22: Atom feed, RSS hopefully fixed
- February 19: RSS1, not RSS2, La Fiamma di Danza
- February 17: IE and Opera don't like ', Helmut Newton's photographs, firstname.lastname@example.org re-enabled, figlet saves the day, I hate computer hardware, New headphones for work
- February 14: Black corset
- February 13: Clueless, Leanware or only using 1/10000 of your memory, Teaching Lisp, I'm still stupid
- February 12: Musical revelations, Stupid people shouldn't write programs
- February 11: Freaky Friday
- February 10: Programming language wishlist
- February 09: On being exact
- February 08: Debian sauna, tar, Debconf3 pictures
- February 07: Teaching binary searches and recursion, Under siege, Bourne identity, convmv uploaded, Almere, the Netherlands
- February 02: Old man, young lady, Vera doesn't like it, Firefly, Fatal instinct
- February 01: Things used to be better when I was young, Perfect hacking furniture, debian-installer beta 2 works for me, URLs in my RSS should work now, I'm an artist!, Choosing names is difficult
Thursday, February 26, 2004
The screen on my laptop is developing a habit of occasionally having irregular vertical stripes. Then, after an hour or a few, they disappear. They aren't visible in white or black areas and most of my windows have white backgrounds. Thus, I can't be sure exactly how often this happens.
I guess I'll have to take the laptop in for repairs. Warranty hasn't expired yet, and hopefully covers this. It's likely to take a week at least, however, and I don't know what I'll do without a computer in the mean time.
Wednesday, February 25, 2004
I run checkbot on my web site automatically every Monday morning. It takes a while to run and then mails me a report of the links that are broken, moved, or otherwise require attetion. This is quite helpful: checking links manually is tedious in the extreme. Not checking links is an invitation to bit rot.
Lately, an increasing number of web sites seem to forbid
such link checkers, using
robots.txt or other
means. While I can understand the general desire for web
site operators to not have their sites bombarded by spiders
and such, this does make link checking less effective.
I hope it is not going to be popular in the future to do
this. Broken links on the web are not good for anyone.
Tuesday, February 24, 2004
The University of Helsinki page for Macintosh security says in part:
Mac OS 9 ja aiemmat ovat täysin suojattuina tietoturvaongelmilta, koska niissä ei ole komentoriviä UNIX-järjestelmien tavoin.
My translation to English:
Mac OS 9 and earlier are completely secured against computer security problems, since they do not have a command line, like UNIX systems do.
I'm sure they don't really mean that.
Sunday, February 22, 2004
My log now has an Atom feed as well. It might be as broken as my RSS feed, but hopefully I fixed that as well, at least as far as Planet Debian is concerned. My XML element attributes were delimited by apotrophes ('), which is valid, but the Planet code seems to not like them, so now I use quotation marks (") instead. Let's try a link: debian. Earlier, this wouldn't work.
It seems I also need to use absolute URLs (at least for images), but I can live with that, at least for now.
My RSS file is again version 2. To avoid the earlier mishap of lots of old entries becoming new ones, my RSS file now only contains the latest entry. I'm probably going to do away with it once I'm pretty sure the Atom file works.
Thursday, February 19, 2004
The renaissance dance group La Fiamma di Danza performed yesterday and had asked me to take some pictures of them. Unfortunately, few of them were any good: I suck at shooting action. I prefer whatever I'm taking pictures of to be perfectly still for extended periods of time (at least a second).
The show was nice, anyway.
Tuesday, February 17, 2004
I changed my log generating program from using
" to using
fix a bug. This was nice, and the page even validated. Today
people with IE or Opera started telling me that their browsers
don't understand that named entity, so I have changed it to
I visited an exhibition of photographs by Helmut Newton. There were two series of photographs: Sex & Landscapes and Yellow Press. I wasn't particularly happy with either. I guess I still just don't understand art.
The first series had lots of nude women, many of them famous models, and that is of course an attraction. Few of the nude pictures were particularly interesting as photographs, however. On the whole, I found them to be messy, and apart from the nudity, pointless. The photographs with landscapes in them were mostly out of focus and boring. (This definitely means that I don't understand art, of course.)
Partly the photographs might have been unsharp because they were enlarged to something like one or two square meters. Perhaps I should have viewed them from further away, but then people would have gotten in my way more easily.
The other series was even less interesting. In it, Newton played a paparazzi or news photographer, and the results were, I think, typical for both styles. In other words, technically adequate, but not brilliant, and mostly uninteresting unless you have a special reason in the subject of the photograph.
I've seen pictures by Newton elsewhere and they have been much more pleasing to me. Not just technically better, but more interesting as well. (It must be the art thing that made these ones unpleasing to me.)
Due to a comment by Daniel Silverstone, I have re-enabled the
email@example.com mailing list. It is still
moderated to avoid spam.
The embedded software I write at work logs to a serial port. When the platform software (i.e., Hedgehog) starts, it prints out a number of lines that report hardware capabilities and such, which is useful for debugging. After the application software (the one written in Lisp) starts running, it writes its own debugging log lines. To make it easier to notice when the application starts running, and which application, I now use figlet to create a few lines of ASCII graphics to make a logo of sorts:
__ __ | \/ |_ _ __ _ _ __ _ __ | |\/| | || | / _` | '_ \ '_ \ |_| |_|\_, | \__,_| .__/ .__/ |__/ |_| |_|
This is the kind of thing that makes a programmer's life worthwhile, of course. Forget about implementing your own programming languages, ASCII graphics is the True Way!
I really, really hate computer hardware. This weekend I bought and installed a new IDE hard disk. IDE disks are an old, well-established and well-understood technology, I thought, and installing a new hard disk should be pretty much plug and play. In reality, I knew better, but I let my hopes guide me.
Every time I buy a new IDE hard disk I run into some kind of limit that makes the new disk not work with an old PC. In this case, the 120 gigabyte disk was too big for one of my servers at home. The BIOS would not boot with the disk installed and no amount of fiddling with BIOS settings helped. (I'm sure I'm just stupid.)
Installing the disk on my desktop computer, which is of a
newer vintage though still a few years old, worked the first
try. Except for some read errors while doing
-c -c. But I seem to have gotten those sorted out
as well: they're rare and hopefully only indicate a problem
with the kernel device driver.
I'm pretty sure, however, that hard disk installations shouldn't be this difficult. Perhaps things would be easier if the hard disks were all connected over USB2 or Firewire. I assume this because they are connected simply by connecting a cable to a socket. When I install my headphones, I plug in a cable in a socket, and then they work. Surely that means external hard disks would work equally well?
After I had such fun listening to music with headphones at home, I decided to buy a second pair to use at work, and they are already working their magic. I had the most productive work day in months yesterday. I still have quite far to go until I at the level I was four years ago, but I'm working on it.
Of course, four years ago I wrote at best 1500 lines of C code per day and did 90 hour work weeks and hurt my back and psyche pretty badly. I'm not trying to recreate that situation, but it would be nice to not feel like a sloth all the time.
Saturday, February 14, 2004
A black dress and a light skin color, such as Meira has in these pictures, is difficult to manage for the photographer. I'm not sure I did very well, but at least the important part works: you can see details of the dress, which is the point of these photographs.
Friday, February 13, 2004
I have a developed an acute desire to watch more comedies and romantic comedies are the best kind of comedies. Clueless can be classified in that category. It is also a bit of a parody, but I ignored that, since I didn't understand the thing they were making a parody of. Even so, it is a delightful movie. Unfortunately, since most comedies are merely fun, with no serious elements or reflection on life, I can't seem to find anything intelligent to say about them. They're good for when you're feeling down, though, and should not be ignored.
Embedded programming has many interesting challenges and the most obvious one is that embedded computers tend to be slow and their memories small. They become faster and bigger, though, just like big computers, they just lag behind by over a decade. Those who programmed microcomputers in the 1980's will feel right at home with modern embedded computers.
My friend Kenneth "Cessu" Oksanen is writing an interesting article on leanware. He talks about not being able to use mainstream software and protocols in embedded devices and the way desktop software tends to bloat.
Whining about bloat is, of course, a common thing. As desktop hardware becomes faster and more capable, it is of course acceptable that software uses, say, memory less carefully in order to, say, increase speed of development. Cessu isn't saying that desktop software shouldn't become bigger, but that in order for embedded devices to be interoperable with the rest of the world protocols and file formats and such must be designed with them in mind. And that is a very good point.
This week and last week I've taught Hedgehog Lisp programming to a few clients, each time I had a few hours of time. This has been pretty exciting. Even though we only had time for the very basics, I think it was possibly to give them enough knowledge that they can do things on their own. It also seemed to me that the general theme was that our desire to keep Hedgehog simple has paid off: a large language would have required much more time for teaching, which in both cases would probably have made things impossible. For example, there are no threads at the Lisp level, so the application programmers don't need to worry about locking issues, and entire worlds of pain disappear.
As it happens, I suspect also that the functional approach makes things easier to teach in a short time, even if the people already know other kinds of programming. Functional languages seem, to me at least, much simpler and cleaner, and this speeds up the learning process.
I wrote a small Python program to convert the master
XML file for this log into XHTML and RSS. A part of that
code is a function to escape certain characters using
HTML entities. One of the characters to be escaped is
the apostrophe (
'). My code converted it to
" and this made me happy, until it was
pointed out to me today that it is quite wrong. I fixed it
So here's a test of the problem entities: the entity
& should give the ampersand character
< should give less
> should give
greater than (
' should give an apostrophe (
" should give
double quotes (
There. I think these now work for both XHTML and RSS output. If not, I'm sure I'll get to hear about it.
Thursday, February 12, 2004
The day before yesterday I realized that my laptop actually has a decent sound card. At least it feels that way now: I plugged my headphones in my laptop for the first time in several months and they definitely sound better than the itty bitty speakers the laptop has, especially since the speakers are located under my arms when I'm typing.
The biggest difference is that now I can hear bass. I had almost forgotten that Metallica isn't a teenage girl band.
Music doesn't just sound better this way, it sounds so much better that it is an almost religious experience. It makes listening to music fun, rather than just something to drown background noise in. Since I can now tell the difference between Heather Alexander's March of Cambreadth and Dinah Washinton's Mad about the boy I have started to actually care about what song is playing. As a result, I've started no less than two playlists today.
The first playlist has "coding music": music that I like to have playing when I'm in a coding frenzy and trying to create the greatest amount of functionality in the shortest period of time. I can't say I'm actually listening to the music then, since I'm concentrating so fully on the actual programming (I am in hack mode or flow). I find, however, that certain kinds of music improves my productivity in this mode: it needs to be fast and heavy and what I can describe as grand. For example, Manowar's Number 1 and Alice Cooper's Poison work well. It doesn't have to be rock or heavy music, the Finnish version of The Internationale by KOM-teatteri works also.
The second playlist has "almostveryperfect" music: songs that I like to listen to when I'm feeling depressed and unsure whether existence is really worth it. Really good music helps then, just like a really good book or movie.
Stupid people shouldn't be allowed to write programs. I offer myself as an example: I spent today an entire work day trying to figure out why Bluetooth communication wouldn't work in one of the programs at work. I finally figured out that the program didn't open the serial port to the Bluetooth device. I added one line to open it and after that everything worked perfectly.
If I weren't so damn stupid, I would have made it an logged error to write a serial port that isn't open.
Wednesday, February 11, 2004
Freaky Friday is the first movie I've seen in a theater this year. It is quite funny, I laughed out loud several times. Not at all surprising, as far as the general plot is concerned, but executed with excellent taste.
I admit that I like my comedies simple and obvious. Those who prefer theirs intelligent probably don't like Freaky Friday as well as I did.
Tuesday, February 10, 2004
I'd like to find a new programming language for general purpose programming. Currently I use Python and I like it quite a lot, but I'm not entirely happy about its performance, and I'd also like static typing. It is good for your mind to experiment with other languages, even if you don't adopt them into your permanent toolbox. Each new language brings with it new ways of thinking about programming and that alone makes learning them worthwhile, and except for Hedgehog Lisp I haven't learned any in quite a long time.
To make the search more concrete, I thought I'd write down a wishlist. Some wishes for the language itself:
- Static typing with type inference (if inference is the word I'm looking for). I don't want to declare the type of local variables, since the compiler should easily be able to figure those out by itself. Declaring types of functions or methods should be enough. Preferably even those should be optional, since small quick-and-dirty programs do fine without any declarations at all.
- Small, simple, beautiful, orthogonal. Few special cases in syntax or semantics.
- Powerful, meaning that it is possible to express complicated processing with fairly little code. A very high level language, in other words: more like Lisp than like C.
- Low level detail available on request. When I do want to manipulate single bits in memory, I want to be able to do it.
- Functional or object oriented. I currently prefer the functional paradigm, but I could live with the object oriented one.
- A module system that scales up to very large programs and also easily allows huge number of third party libraries. Python has this, with its configurable search paths for modules and hierarchical module name space. C has a flat name space and doesn't scale up anywhere near as well.
Some wishes for the implementation:
- Must support a fast edit-test cycle and fast execution, though not necessarily at the same time. Traditionally this has been achieved by having two implementations: an interpreter and a compiler. I don't care how it is done, however, as long as the fast version is at most on the order of 500% of the speed of a corresponding program written in C.
- Easy to link with existing libraries written in C and maybe other languages. This is necessary for GTK+ bindings, if nothing else.
- Packaged for Debian in main. This implies freedom license and a sufficient quality and user community.
- Portable among the computer architectures that Debian supports, even if only in, say, a bytecode interpreter form and not native compiler form.
- Portable among Unix-like operating systems. I don't really care about, say, Windows in this regard, but I don't mind if there is a Windows version as well.
Finding a language that fits all these criteria is not going to be easy. Note that this is obviously not a complete list. I reserve the right to reject any language on whatever grounds I want.
There are of course many languages to choose from, even if you restrict yourself to those that are already packaged for Debian. I'm thinking I should learn a few of them superficially and write some benchmarks to see if they're fast enough. If I choose the benchmarks wisely, the results might be useful for other people as well. We'll see.
Monday, February 09, 2004
I was looking at the scripts I use to produce this log and noticed a bug in the part that generates timestamps for entries. Here is the code:
year=`date -u +%Y` month=`date -u +%m` day=`date -u +%d` hour=`date -u +%H` minute=`date -u +%M`
This is a part of a shell script. It uses arguments to
date command to store the current year,
month, day, hour, and minute to the corresponding variables.
Unfortunately, it can be wrong by a year.
The problem happens when all commands are not run within the same calendar second. If the date is December 31, 2003, and the time is 23:59:59 for the first command, but moves to the next second for the second command, the timestamp will be "2003-01-01 00:00" instead of "2003-31-12 23:59" or "2004-01-01 00:00".
None of this is very likely, of course. It's just a web log. It pays to keep an eye for race conditions, however, if you are a programmer. They do happen in important stuff, and then you might be in trouble if you're not correct. As this example shows, they can also happen even if you aren't doing several things concurrently.
Incidentally, here's the code as I corrected it:
now=`date -uR` year=`date -u --date="$now" +%Y` month=`date -u --date="$now" +%m` day=`date -u --date="$now" +%d` hour=`date -u --date="$now" +%H` minute=`date -u --date="$now" +%M`
We first catch the current date and time, and then extract the interesting fields using that timestamp. Easy, though it may require the GNU version of date.
Sunday, February 08, 2004
There has been a little bit of interest in a Debian sauna in Helsinki, Finland, which I sort of proposed in a previous log entry. My plans are now more concrete. I propose the weekend of July 2-4. This is the weekend after GUADEC 2004, which is in southern Norway. The proximity might make it possible for some people to visit both.
Thus, the plan is for people to arrive on Friday or Saturday and hang around until Sunday. There will be at least one visit to a sauna (nudity is not required, whatever Wikipedia says), probably on Saturday. You can sleep on my living room floor, if you don't want to pay for a hotel; I only have an extra mattress. I have ADSL. We can make food ourselves, or go eat out. If the weather is favorable, a picnic at Suomenlinna would probably be nice. Helsinki has other sightseeing opportunities as well.
This is meant as a social occasion, but hacking is of course allowed.
If you're interested, let me know. Since arranging this doesn't require much from me, there is no real deadline.
$ tar cf foo.tar
tar: Cowardly refusing to create an empty archive
Better late than never. I finally managed to put a gallery of pictures from Debconf3. Sometimes things would go smoother and faster if I didn't insist on writing the tools first.
Saturday, February 07, 2004
Many years ago, when I a teacher at the University of Helsinki, I found that a good way to teach binary searching and recursion is by teaching people to debug their programs.
I had a couple of students who had trouble with their assignments. These were their first non-trivial programs, a few hundred lines of code. They each had a bug and some trouble finding it, and I taught them how to search: insert a print statement in the middle of the program and then run the program again. If the error occurred before the print statement, it was in the first part of the program, and otherwise it was in the second part. Then they would insert a new print statement in the middle of the remaining part, and so on.
This is a natural and effective way of finding the location of a bug, and also made them also understand recursion and binary searching immediately. That was, after all, what they were doing themselves.
I first saw Under siege in the early 1990's in a movie theater, and have seen it a couple of times on television since. It is a very weird movie, since it seems to be the only movie starring Steven Seagal I can stand watching multiple times.
I'm not saying Under siege is a good movie on an absolute scale, but in its genre of brainless, simplistic, action movies with unnecessarily graphic violence and some unnecessary nudity it is a competent, though not extraordinary contender. And that's as much as I have to say about it.
One of the joys of having a nice laptop is that you can watch DVD movies in hotel rooms. When we went to Almere in the Netherlands this week, our hotel was in the middle of nowhere and no chance to go anywhere for recreation. I had brought with me a DVD with Bourne identity, the 2002 filmatization of a spy novel by Robert Ludlum. I spent a nice evening watching the movie.
The main character is played well by Matt Damon, and the supporting cast are also up to their job. I also like the story, even if I don't think it is all that realistic: I really doubt the CIA assassins are anywhere near that well trained. That, however, is one of the assumptions one makes when watching spy movies, or reading spy books. It is similar to the assumption that, say, faster-than-light travel works in science fiction stories.
I quite liked the film and can't find anything wrong with it. It did, however, leave me somehow unsatisfied. I was expecting something more, something better, perhaps something that was actually relevant to the human condition. That is a bit too much to ask from a piece of entertainment, I guess.
After over three weeks of slacking, I've finally sponsored an upload of convmv 1.07 to Debian, written by Bjoern Jacke and packaged for Debian by Raphael Zimmerer. I expect this tool to become useful for myself, as soon as I start switching to using UTF-8 for everything. It converts filenames from one encoding to another.
Last night, I returned from a four day work trip to Almere in the Netherlands. Almere is, I think, a fairly large area, but I'm afraid I don't have a more exact location. I just sat in a taxi and my boss, with whom I went there, handled all travel details.
On Tuesday, our arrival day, it was very warm, about fifteen degrees Celsius, or about twenty degrees warmer than in Helsinki. Very nice. Unfortunately, we spent all four days pretty much completely inside. The room I was in did not even have any windows. No working heating either, until the last day. But it was nice enough anyway. We got lots of things done.
On Thursday evening our hosts took us to Amsterdam for dinner, and we spent a little while walking around the city as well. Again, I've no idea which part, but I know there were canals. Apart from that, it was pretty much all work, so we didn't get to partake in any of the things the Netherlands is famous for these days: prostituion, drugs, or euthanasia. (Actually, I think I'm happier this way.)
Monday, February 02, 2004
Picture this: Sicily, er, no, Helsinki, about 1992. My student club is giving a boozing party disguised as a masquerade All the guys are to be dressed up as old men. I go and rent a false beard and buy a walking stick. I take the train to the party, and in the train I practise old man manners. I limp as I walk. I sit as if my back and limbs hurt. My hands shake randomly as I hold my stick when I'm sitting. You know how old people can be.
The train arrives at the final station and it's time to get out. I stand up, slowly, groaning, and start limping towards the exit. A young woman of about my own age comes up and asks if she can help. She opens the door for me. She helps me down the stairs out of the train by holding my arm. She even asks if I'm going to be all right.
I'm quite looking forward to old age.
I see Vera, one of my co-workers, complains about my marvelous variant of Lisp in her log. Actually, she complains about all functional languages. I admit this is not news, I knew about her dislike of them even before we'd implemented Hedgehog Lisp the first time. Still, I had hoped she'd come around, but I guess you can't win them all. Luckily, I know she'll do her job well anyway.
I still think that making Hedgehog Lisp be a functional language was the right decision. It helps me, if not Vera, to make correct programs. Correctness is, of course, rather important in embedded development. I also find that it tends to make my programs simpler in general.
I suspect Vera's biggest problem is that functional programming requires adopting a new paradigm for thinking about programs. Most people tend to find paradigms hard to adopt (it is not a matter of high or low intelligence), and this is something that works against functional programming in general. On the other hand, despite the difficult paradigm shift, it can be worthwhile, if the paradigm offers significant benefits. I think it does.
One day I'll have to write down my thoughts on why they do. Tonight I don't have the time.
I borrowed Firefly TV series as a DVD box from a friend and watched it over the weekend. The disks were Region 1, but luckily my DVD player can handle those. DVD regions are such a pain.
The pain is well worth it, though, in the case of Firefly. Firefly is a Wild West space opera set into the future, when space travel is commonplace and humanity has spread throughout the galaxy. The main characters are the captain and crew of the old space ship Serenity, and in each episode they have an adventure of one kind of or another. The series was created by Joss Whedon style, of Buffy the vampire slayer fame. True to his style, he evolves the characters and their relationships by subjecting them to the worst thing his sadistic mind can conjure. This, of course, made the series quite enjoyable right from the beginning. It helped, of course, that the pretty much the entire crew was good looking, in addition to being good actors.
The TV company ended the series suddenly, in the middle of the first season, after fifteen episodes had been made. As far as I can see, they had no good reason to do so. They obviously don't understand anything about anything. It could have become a new Star Trek. Too bad.
I bought Fatal instinct cheaply on a DVD since I recognized the name Carl Reiner. He's the director of Dead men don't wear plaid, an ingenious parody of film nour detective films. Also, incidentally, the film from which the name of my mailing list manager is borrowed.
My expectations were therefore fairly high. Unfortunately, they were not met. Fatal instinct is not a disaster, but it's nowhere near what I was expecting. Still, it was funny, in a early teens sort of way. Plenty of giggling at sexual innuendo and the like.
Sunday, February 01, 2004
Mike Johnston's column Sunday Morning Photographer for today talks about old technology being better than new technology. This touched a bitter chord inside me. I've adapted the mail I sent to him to this rant, if only because it's been too long since I ranted properly. Gotta give them rant muscles exercise.
I first used a computer, and started learning programming, at the age of fourteen, twenty years ago. Back then, computers were pitifully slow, with puny memories, but people did wonderful, amazing, mindblowing things with them. Partly these things were thrilling because they were done at all, of course. No-one had ever made a computer do this or that thing before and seeing it done at all was the amazing part, it didn't have to be all that good.
On the other hand, the pressure applied on the programmers by the limitations of the hardware sometimes brought out the very best in them, and the results were truly beautiful. Beautiful to another programmer, that is, users mostly saw weird command line interfaces and, just possibly, a few blobs of color.
Today, the programming profession is mostly not limited by the hardware anymore, or not to any significant degree. Computers are so fast, memories so large, bands so wide, that it doesn't really matter what you do, the program is going to be more than fast anyway. Also, a prevalent attitude is that it doesn't pay to use programmers' work time to make programs faster, since computers are cheaper to buy. Programs now bloat like never before. It's still possible to make beautiful programs (make programs that are also art, if only to another programmer), but fewer people bother, they're in it just for the money.
I see a trend in computer books as well. Twenty years ago I practically lived in the public library. I must have read through every computer book in the various libraries in the city of Kotka, Finland, where I grew up. That's not quite as impressive as it sounds, there weren't all that many of them. The books were not all new, some of them were from the early 1970s. Many of them were pretty good and had been written by experts in the respective field. Even a newbie could see a lot of effort and love had gone into them.
Typical computer books of today, however, are quite different. Many of them are written by people who are good at writing books, and who write books on any topic that is expected to sell. They're often competent enough, but the books are lacking that something that makes a book written by a true expert worth ever so much more than one that is merely competent.
They are also thick. There seems to be a marketing assumption that books will sell better the more pages they have. It might even be correct. Thus, books are written with lots of fluff in them, and typeset with every trick to increase the page count. Result: I haven't seen more than a handful of new computer books that were beautiful in recent years.
There is something in my subconscious that associates superb finishing with extreme quality. I cannot remember a single computer book that was beautiful that wasn't also very well written. When I need a new book on a topic (not necessarily about computers) I don't already know well, I may need to choose one of several alternatives. Usually I choose the book that is most beautiful: the one with most class, the most understated and elegant typography, the best paper, the highest quality binding, the nicest smell. (I smell books, don't you?)
I wonder why O'Reilly won't make beautiful books.
After twenty years of programming computers, I've come to the conclusion that the best place for me to hack is sitting in my armchair, with a laptop on a lap tray. It is more comfortable than even expensive office chairs, even if they are adjusted for me by a physiotherapist. It also seems to be better for my back, which I've hurt too many times already.
The only time this chair is not a good place to hack is when I need to refer to paper documentation. Or if I need to use the embedded computers at work (particularly since the chair is at home).
I tried out the beta 2 version of debian-installer, the up and coming Debian installation program. It worked pretty well: I was able to install the base system from the CD with the minimum of questions. All the hardware was automatically detected. It isn't pretty, but that's not as important as working.
One of the nice touches is that the CD-ROM image contains an md5sum.txt file in its root, which makes it easy to check that the CD-R was burned correctly and works. Every image should do that. I've been doing it for a while now for my own disks, and it really helps when you want to check that your backups and archive files are intact.
Scott James Remnant pointed out to me that
' doesn't seem to work in the code that
runs Planet Debian.
This made the URLs in my RSS feed not
work. I've changed into using
instead, as this should work better.
At at friend's birthday party on Friday, I claimed, for probably the first time in my life, that I'm a photographic artist. I don't know if it was pure hubris or not. I don't think I have any real artistic ambitions, I just like to make pretty pictures of people. On the other hand, what little I know of the history of art, that's not uncommon among artists. I guess being called an artist is similar to being called a hacker: it's better if someone else does it to you, rather than you claiming the honor for yourself.
The current Internet toy seems to be orkut.com. I've no idea what the name is supposed to mean, but I know what it means in Finnish. In Finnish orkut is the plural of a slang word for orgasm. I guess it is somewhat appropriate for a service that lets you keep track of the people you know.