I think Jakob Nielsen has this one wrong. Masking password fields may make it harder for the user, but having seen people log in to applications in live demos – i.e. with a whole bunch of bystanders – tells me that there is a place for this technique.

## A note on INNER JOIN and sqlite

Compare
``` robert@forkel02:~/projects/lwt/trunk/lwt 14:11:15\$ time sqlite3 devdata.sqlite "select distinct l.name from source_word_donor_language as swdl inner join source_word as sw inner join word_source_word as wsw inner join word as w inner join language as l on swdl.source_word_id = sw.id and sw.id = wsw.source_word_id and wsw.word_id = w.id and w.language_name = l.name where swdl.donor_language_id = 873046508145964;" Imbabura Quechua (Quichua) Yaqui Otomi Tzotzil of Zinacantan Mapudungun Q'eqchi' Kali'na Wichí [Matacoan] Berber Dutch English Ceq Wong Indonesian Japanese Romanian Seychelles Creole Hawaiian```

``` ```

```real 4m34.178s user 3m59.379s sys 0m32.766s ```
with
``` robert@forkel02:~/projects/lwt/trunk/lwt 14:10:43\$ time sqlite3 devdata.sqlite "select distinct l.name from source_word_donor_language as swdl, source_word as sw, word_source_word as wsw, word as w, language as l where swdl.source_word_id = sw.id and sw.id = wsw.source_word_id and wsw.word_id = w.id and w.language_name = l.name and swdl.donor_language_id = 873046508145964;" Imbabura Quechua (Quichua) Yaqui Otomi Tzotzil of Zinacantan Mapudungun Q'eqchi' Kali'na Wichí [Matacoan] Berber Dutch English Ceq Wong Indonesian Japanese Romanian Seychelles Creole Hawaiian```

``` ```

```real 0m12.060s user 0m12.017s sys 0m0.048s ```

Wikipedia says the above SQL statements are equivalent. But that doesn’t mean an SQL engine will treat them equivalently.

Andy powell has an interesting hands-on post on the topic of claiming your online persona:
define:digital identity. What I especially like: he even gives recommendations!

## wlan with WPA on ThinkPad T61p with Ubuntu 7.10

For some reason, i never got wlan with WPA to work right seamlessly on my ThinkPad T61p with ubuntu 7.10. So here’s a short writeup of what it takes.

1. Stop the network
2. Put the WPA network information in /etc/wpa_supplicant.conf (see `man wpa_supplicant.conf` for examples)
3. Start the wpa supplicant running `wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf`
4. Start the DHCP client running `dhclient wlan0`

## Creating portable picture galleries from flickr photos

Having been a flickr user for a couple of years now, my infrastructure for creating backups of the data stored at flickr grew more and more sophisticated. So finally I decided to polish it so that it can be used by others as well and put on google code.

## LaTeX, eh?

$\LaTeX$

## Fun with Alternative Names in Certificates

Yesterday we eventually got around to putting new certificates on our servers at work. And we tried to do it right. In particular we wanted the certificates to be valid for all DNS names, the server can be accessed with.

Easy! Use Alternative Names! So in addition to the Common Name we’ve had before, we put in all the other DNS names as alternative names. Bummer!

The result with Firefox 2.0.0.11 (on various platforms):

When trying the Common Name: The familiar popup

You have attempted to establish a connection with “<Common Name>”. However, the security certificate presented belongs to “<Common Name>”…

Note the funny twist with mentioning twice the same name.

When trying one of the alternative names, it worked well.

So the lesson we learnt: Add the Common Name as Alternative Name, too, and you’ll be happy.