Archive for the 'User Interfaces' Category

What should be fixed in Firebird 0.8

Saturday, January 10th, 2004

Update Jan 30: see also What's new in Firebird 0.8.

alanjstr listed 11 bugs he thinks should be fixed before Firebird 0.8 is released. I agree with him on 3 bugs:

  • 229600 - Installing 2 extensions without restarting re-launches extension-installer for previous installed extensions. (regression)
  • 228988 - XPInstall - "Installation complete / restart" message always shown. (regression)
  • 230271 - Form autocomplete only works in the first tab. (regression)

I have 2 more bugs that I think should be fixed before 0.8:

  • 217410 - bump skin version. (This would prevent "no scrollbars after upgrade" problem.)
  • 228672 - Installer deletes unrelated folders. (Dataloss. New because Firebird 0.7 didn't have an installer.)

The installer bug is particularly scary because of the potential PR impact. The Firebird installer deletes all files in the installation directory if you check the "Safe Upgrade" box. A few users who installed nightlies into "C:\Program Files" lost that entire directory. I don't know if any users have lost data since the Dec 23 change to make the "Safe Upgrade" box unchecked by default, but if Firebird 0.8 is released with the bug, I'd expect at least a few users who install to weird directories to check the box.

A bug in the iTunes installer that wiped hard disks earned a Slashdot story. If Firebird 0.8 is released with this bug, I would expect it to lead to an even bigger backlash on Slashdot because:

  • The iTunes installer tried to delete (a specific application folder), while the Firebird installer tries to delete whatever directory you were installing to. "Nuke from orbit" upgrades are inherently dangerous, but they're even more dangerous when the user gets to choose the target directory.
  • The iTunes installer deleted more than it intended because of what is arguably a misfeature of the Bash shell: if you don't use quotes carefully, a script's behavior can change unexpectedly when a parameter contains a space. The Firebird installer deletes more than it intends because its developers didn't anticipate users installing Firebird directly to "C:\Program Files". Firebird has nobody else to share the blame.
  • Firebird's development process is open enough that anyone can see that we knew about the problem since at least December 30.
  • "Safe Upgrade" is the worst possible name for a misbehaving nuke-from-orbit feature.

My preferred solution for 0.8 is to relabel the checkbox from "Safe Upgrade" to "Delete all files in [installation directory]". (cf bug 197274, which changed "Enable Automatic Image Resizing" to "Resize large images to fit in the browser window".) I looked at some code but couldn't tell how hard it would be to change the checkbox label to include the installation directory.

I'm not sure what the installer "should" do. It would be nice if installing on top of an old build didn't cause random-seeming problems. Then nuking the installation directory from orbit would not be necessary. If fixing those problems is not feasible, maybe the installer should have a list of files or subfolders to delete, and only delete those.

Flag queries: blocking0.8+ (blocking), blocking0.8? (nominated), blocking0.8- (not blocking). Anyone may nominate bugs, but only a few people may plus or minus. Bugs that are plussed are usually recent regressions or newly discovered security holes. Don't renominate a minused bug unless you're sure you've added something the minuser didn't know.

Yahoo! Maps becomes printerless-friendly

Sunday, September 7th, 2003

In the middle of August, Yahoo! Maps made several changes to the way it displays directions:

  • The first step, "Start on [street]", became "Start at [address], [city]".
  • A last step was added: "Arrive at [address], [city]".
  • "Left" and "Right" were replaced by black circles containing "L" and "R", and the column on the right side of the table with arrows was removed.
  • Distances and turns used to be separate columns, but now the main column contains lines like "Turn R on MIRALESTE DR - go 0.8 miles".

All of these changes slightly improve the printed directions. But one change can vastly improve directions copied by hand: adding the destination address as the last step.

When I had a small party at my house early in August (before the changes), everyone used Yahoo! Maps for directions because I included a Get directions to my house URL in the invitation. One friend called just before arriving to ask what my address was. Another friend asked a neighbor which house was mine. They both forgot to copy down the address, which appeared in the invitation e-mail and at the top of the Yahoo! Maps page but not in directions themselves.

Yahoo! Maps joins Mappoint in including the destination address as the last step in the directions. Mapquest and Expedia Maps still do not. Expedia's last step is "End: Arrive End".

Sign anywhere

Wednesday, September 3rd, 2003

Financial Registration cards don't have a spot for a signature. Most students behind the tables say "Sign your name anywhere". This semester, Michael Vrable was behind one of the tables, and he said "Sign your name at the bottom" or "Sign your name anywhere at the bottom" instead. Michael's instructions would have saved me a second of looking for the best place to sign (important when there's a line) but wouldn't have been as much fun. There wasn't a line when I was there.

Suggestions for Google Calculator

Tuesday, August 19th, 2003

General suggestions

  • Stay within unit systems. If I search for rod= or acre, give the answer in feet or square feet, not meters or square meters. If I search for 1 acre / 1 mile, say 8.25 feet instead of 2.5146 meters.
  • Output in km/h rather than m/s if the inputs are in terms of kilometers and hours or days. 800 km / 8 hours should be 100 km/h (rather than 27.77777778 m/s), but 3/5 c and 10 m / 3 s should be in m/s.
  • Parse 8 h as "8 hours", not "8 times Planck's constant". Not everyone knows what Planck's constant is or that it is represented by "h". I noticed this problem while searching for 800 km / 8 h. Strangely, 800 km / 100 km/h works as I would expect.
  • Never round aggressively. Round without explanation once (one baker's dozen in dozens), and you lose my trust whenever you output an integer (1 acre in square feet) unless I figure out your rule for when to round.


  • Floating-point arithmetic errors (1 / 0, 2 ^ 2000) should be displayed by default. Currently, they cause the calculator line to not appear, as if the calculator hadn't feature been triggered at all.
  • Unit errors should be displayed by default. Examples: 1 acre in feet, 1 meter + 2 seconds, cube root of a square mile.
  • There should be a way to see syntax errors so I'm not left in the dark when I make an error in my input and only get search results. It would make sense to use = at the end of a search for this, since = already causes questionable calculations like 1 feet= or 8 mile= and useless calculations like 6 cm= to be displayed.

New features

This is my second post about Google Calculator. My first was Units in Google Calculator.

Five things not to do at the command line

Thursday, August 7th, 2003
rm blah *
This user meant to type "rm blah*", but accidentally hit space between 'h' and '*'. As a result, rm deleted blah, then deleted everything.
tar czf *.cpp *.h
The first filename after 'f' is tar's output file. "Well, all but the first one got backed up at least..."
grep --context=100 "foo" * > found.txt
This user was trying to search a directory of IRC logs for some text. Since the output file (found.txt) was in the same directory, grep kept finding new matches in found.txt and adding them to the end of found.txt. Found.txt was 900MB by the time he noticed the error.
rm -rf $2Applications/ 2
The lack of quotes around "$2Applications/" caused this line in the iTunes installer to only work as intended when $2 contained no spaces. If $2 was "Disk 1", a disk called "Disk" could be deleted.
rm -rf *
gunzip -c $FILE | tar x
This user had not mounted the memory stick $DESTDIR was on before running the script. The cd failed to move to $DESTDIR, but the script continued, deleting everything in the directory the script was running in.

Three of these examples come from a thread on the East Dorm chat list.