August 31, 2007


I was reading various articles linked to from last night, and posted a comment which people liked. Someone else submitted my comment as a link, which turned out to be somewhat popular.

Yay me!

August 21, 2007

How much do I actually read?

The last time I kept track of how many books I read was Feb.-Aug. 1994, a seven month period during which I read 83 books, an average of 2.73/week. I was 15 at the time, and during university the amount I read went down, so for a while now I've used 2 books per week as my estimate of how much I read.

When I put that factoid in my profile, something in the back of my brain insisted I get more recent data. After all, I'm 29 now, and I read more articles on the internet than I used to, and I'm less interested in fiction than I used to be. (The real universe is much more detailed and interesting than any fictional universe, after all.) So, while I was getting this week's books at the library, I asked if they keep a record of how many I've checked out. It turns out they do, and in the time I've had a library card with the Toronto Public Library (Sep.'05 - Aug.'07), I've checked out 153 books, 1.5/week.

That's lower than 2/week, but not by too much. I get some books as gifts these days, and I've read about a dozen books available for free on the internet this year. All together, I figure I've read ~1.9 books/week so far this year. Guess I'll have to pick up the pace a little!

I figure I've read an average of 2 books/week since the time I was old enough to go to the local public library on my own. (When I was about 10 years old.) If true, then I've read about 1,976 ±100 books.

Update: it turns out my Mom has written down the title of every book she's read since she was 16! I hope to find out how many that is soon. (My Dad reads less than we do. "I only read good books.")

Update 2: Since 1961, my mother has read an average of 3 books a month. What really impresses me is that she wrote down the title of every single one.

August 17, 2007


Video of a talk given by Simon Peyton-Jones (one of the Haskell language designers) at OSCON 2007 has been making the rounds, and I finally got around to viewing it.
  • Part 1 (Flash video, the basics)
  • Part 2 (Flash video, the interesting stuff)
  • Slides (7.1MB PDF)
I had a "Holy shit!" moment on slide 54, regarding Haskell's type system. (Sorry, you'll just have to see for yourself. I haven't internalized it well enough to explain it in English yet.) Plus, I finally understand what monads are, and why they're so important.

Basically, Haskell's version of monads are a way of labelling all the bits of your program where order of execution is important. Since Haskell enforces this labelling, through its type system, Haskell compilers can optimize the hell out of the purely functional parts of the program (taking advantage of lazy evaluation, referential transparency, and all kinds of other fun(ctional) stuff), while guaranteeing that the bits of your program that have to execute in a particular order will, in fact, do so. The language is set up in a way that subtly encourages you to keep the imperative parts of your programs to a minimum.

I didn't understand this clearly before because Haskell monads are so intertwingled with Haskell's type system that you must first have a good understanding of the type system before you can understand any monad examples.

August 12, 2007

Configurations and Portability

I've begun to worry about my browser. I've configured Firefox so much that using a fresh install is painful. The lack of my shortcut bookmarks (which, I've discovered, don't import properly) is just the beginning. I've set lots of options. I've customized my toolbars. I've installed a couple of plugins. I've installed Adblock and customized its filter list. I've used about:config to set dozens of options that aren't accessible through the Options dialog. I've installed Greasemonkey and even written my own user scripts.

In short, I couldn't recreate my configuration of Firefox if my machine died. I could recreate most of it, but something would be guaranteed to misbehave when I least expected it.

I've found a partial solution in Portable Firefox, a variant that keeps all settings, plugins, extensions, passwords, etc., in the application directory, instead of spreading them around the file system. It's designed to run on USB drives, so I can run it on a different computer without hosing my host's Firefox configuration.

Portable Apps has a whole list of applications which they've made portable. In my opinion, many of them aren't needed. Where are you going to find a computer these days that can't unzip, view images and PDFs, or play audio and video? The rarer applications, like image, audio, and video editing, or SSH and FTP clients, can always be downloaded and installed on the system you're visiting.

The portable applications I might use are Firefox (so I don't have to repeat the configuration), GAIM or Miranda (so I don't have to enter the details for accounts on several IM services) (then again, I could use meebo), and possibly a text editor (configuration again).

Some people advocate installing an OS on your USB drive, which makes portability a non-issue, since you can install all the applications you need on the OS's file system. However, until USB disk access becomes much, much faster, this will significantly slow anything you do. For now, I'm going to stick with a minimal set that I can copy onto my host's computer.

August 09, 2007

Bad Design, part 2

I edited the Rounders 3 template to use available space a little better. After saving my changes, I discovered the actual page was different from the preview given by the editor. That's bad design.

The rounded corners were messed up (though they worked in the preview), so I decided that unfixed-width columns are more important than round corners.

Now, if I can just figure out a Greasemonkey script to unfix the columns on everybody else's websites...

Update: Round corners are back again. Now I'm the one in danger of doing bad design: I haven't tested this in IE, and I can't be bothered to.

Bad Design

I recently switched my monitor's resolution from 1280x1024 to 1600x1200. Overall it's been an improvement, but there have been some problems. Windows XP doesn't take hints about minimum font-size seriously. Setting the "Display -> Appearance -> Font Size" control to "Extra Large Fonts" (one of only three choices) improves some things, but not others. Try resizing this image until the text on the tabs is 2mm high on your screen:

Hard to read, isn't it?

Firefox, thankfully, has a minimum font size setting which overrides the idiots who are still setting fixed font sizes on their web pages. (12px? What were you thinking, Jimmy?) Unfortunately, there are a ton of websites using fixed-width columns. Most are designed for 1024x768, and look very narrow on 1600x1200. The increased font size (so I don't have to squint) reduces the readability of fixed-width columns by wraping every sentence across several lines. This is particularly annoying when a website puts a single article into two columns, together less than half the width of my screen, forcing me to scroll down frequently as I read and to scroll way back up to the top of the page halfway through the article.

Whatever happened to using percentages and relative sizes to achieve a layout that matches itself to the viewer's hardware?

Unfortunately, practically every default blog template uses a fixed width column, including Automated Imagination's (Rounders 3, for now), which uses background images to make rounded corners in a way that's impossible to adapt to a resizable layout:

And yes, your blog uses a fixed-width column too. (No, not you Fraxas. No, not you Atlas.)