As noted in my previous entry, I spent some time sprucing up the look of this site. One of the things I spent the most time on was browsing the available typefaces available at Typekit. After a lot of trial and error, I settled on three which I think worked well together and set the right tone for the sort of website I run (a professional designer would undoubtedly disagree; said designer is welcome to give me some free suggestions).

I made a pretty terrible mistake, though. I did all of my dev work on my Mac. Oh, my glorious Mac! A system treasured by designers, publishers, and creative types for decades. A system whose guiding vision is that design isn’t how something looks, but how it works. A system which understands how to render type.

It turns out that Windows is not a system which knows how to render type: a fact I discovered upon loading my site design into my computer at work. I’ve provided screenshots below so that you can look upon the horror (they’re scaled down for display in this blog post; I suggest clicking each one to view the full-sized image). You can see that the type rendering ranges from merely bad to actually unreadable. At the bottom, I’ve included some images from Safari on Windows and iOS to show the difference (I’ve also tested things on the major Mac browsers and a friend’s Android phone, but I haven’t bothered getting screenshots for everywhere that it works correctly; that seems unexceptional to me).

The current state of things is completely unacceptable. Latest versions of Windows (Windows 7) using latest browsers (Chrome) can’t draw letters from a font file to the screen. How do any of these products, browsers or operating system, ship? They’re removing chunks of letters!

Look at the example from IE 8 on XP. In the first link (to the article “How to Actually Make Text Look Interesting”), there’s nothing connecting the cross on the top of the T to its body and the crossbar in the capital A is missing entirely! Chrome on Windows 7 is a little better if only because it tends to consistently remove pixels from the top of letters, so it’s a little easier to read. But only a little.

I think the thing that makes me the saddest (and, honestly, the entire situation is depressing) is that Safari for Windows actually ships with a sane text rendering engine. But, because of some weird Stockholm Syndrome thing from Windows users, Apple has it turned off by default. I’ve included a sample of what it looks like with Apple’s rendering method turned on and it’s night and day. The letters are crisp and clear and all is right with the world.

But Safari is a minority browser on Windows (I don’t use it on either platform) and users who deviate from the defaults are an even smaller minority. So I suspect that even with that small thimbleful of ice water for Windows users, most are seeing a broken web.

And don’t be mistaken about this: this poor excuse for font-rendering is breaking the web. As modern web standards improve to include things like loading font files from a URL and companies like Typekit and MyFonts figure out how to make it legal, typography is going to become a major factor in web design.

But as long as Windows is the dominant platform, web designers are going to have to stick to their list of “web-safe” fonts. This is no longer the list of fonts a site visitor can be expected to have installed; instead, it’s a list of fonts which Windows is no to render in a readable fashion.

It’s simply pathetic.

I understand the IE9 includes some better text rendering support. But I don’t have it installed on any of my systems to find out. But if it does, that really makes the situation worse. Why are the major competitive browsers like Firefox and Chrome shipping without a dedicated rendering engine? There are open source rendering engines: otherwise, Linux wouldn’t work. And yet, these browsers are letting the OS do it.

And the OS is doing it poorly.

And now, I have to figure out what to do about it on this site. I’m willing to let people using IE have a poor experience here: I think you should be using WebKit or Gecko, after all. I don’t think it’s reasonable to take the same approach to anyone using Windows, however. The platform is just too big.

So, I’m stuck with deciding if I should switch the text on my site to use some subset of the new web-safe fonts or set up a windows-only stylesheet for visitors from Microsoft land. Both options are pretty terrible.

But what other choice do I have? Microsoft has ruined something else.

Edit:Upon reflection, I’m being too harsh on Microsoft here. From all accounts, DirectWrite is a useful and modern text-layout technology. I don’t know if it’s as good as CoreText (or worse or better), but I think it’s comparable. But it’s 2011: it’s better late than never, but it’s REALLY late. They’re also not encouraging its use enough (by either making it a drop-in replacement for GDI+ or offering some other incentives for browsers to use it).

I suspect that text rendering on Windows will still be a problem in 2021. And that, I think, can be laid squarely at Microsoft’s feet.

Update (2011-06-30): Per the suggestion of my friend @trrobert, I upgraded my Windows 7 system to Firefox 5. At best, it’s a small improvement. I think the only reasonable way to see text on the web is to use Safari with Apple’s rendering setting or to use IE9. I still find both of these pretty unacceptable.

It should be clear that I am not a designer or an artist in any way. I have no talent, little taste, and I only know the names of sixteen colors. The best that can be said is that I know what I like; and what I like tends to involve minimalism, typography, and random bits of spot color. You could say that I have been heavily influenced by Ikea.

So, as I was reading this article, I started wondering: could I do it? Could I create a simple design that emphasizes the things that I like about white space, typography, and color? Or would it turn into a huge mess as if I told a ten year old to go crazy in a type foundry candy store?

I was pretty unhappy with my present theme, a WordPress built-in called Clean Home by MidMo Designs which I had customized a little bit to suit myself better (screenshot: clean_home_jun_2011.png). Since a weekend was coming up, it seemed like the perfect opportunity to take the things I like about Clean Home (I’d chosen it, after all…) and get rid of everything I didn’t like. And maybe explore typography a bit more than I usually do.

I figured the biggest challenge would be to show restraint. When choosing typefaces, I have a tendency to make it look like my fonts folder threw up all over the Internet. I think I mostly did okay in this regard, though I’m sure that any profession designers in my audience could find plenty of fault with my choices. My only defense is that I know it could be worse (*cough* MySpace *cough*).

Visually, I think this new design is certainly an improvement over the old one; but the biggest win is that I started with a blank php file and did everything from scratch. So the markup (and bits of PHP needed to make WordPress go) is as simple as the site itself is. I don’t use widgets, so my theme doesn’t include any support for them. I can hardcode the site title (which let me add that little bit of color to the .me) and don’t need to worry about pulling it from the database. I didn’t need to try to work around WordPress’s comments support; I could just put Disqus in where I needed it.

The markup is simple, so there are only about 20 CSS classes (and 11 # identifiers). Figuring out why any given element is styled is simple and I don’t need to turn to Firebug. My biggest problem with using off-the-shelf themes (especially the free ones) is that I can never figure out how to customize them. There’s random bits of PHP everywhere, hundreds of CSS selectors, and it’s always hit or miss if I can figure out where I need to make my changes. Usually, the best I can manage is to get my stuff somewhere close to where I actually want them.

That’s not really a problem with this theme. So I’m pleased about that.

I do have one confession to make, though: there are two places where I wanted things to be side-by-side but floats were driving me crazy and not doing what I wanted. After about half an hour, I just did those two pieces with tiny little tables. Given the amount of grief I saved myself, I don’t see any problem with that at all.

Coders at Work has received a great deal of press within the Internet circles where I travel. Hardly a week goes by where someone doesn’t post an except onto reddit or Hacker News or something. So I was already fairly familiar with it and some of the interviews in it. That sort of press made it almost inevitable that I’d eventually buy it to read in full.

It’s a collection of interviews with fifteen different luminaries of the programming world. Surprisingly, I knew fewer than half of the names on the front cover before reading it; but, it turns out that I use software written by most of them. So that’s neat.

It should not be terribly surprising that a book of interviews with a bunch of different people does not lend itself to a singular review. Some reviews are noticeably better than others (that said, Professor Knuth’s chapter is worth the price of the book). What is surprising is that there are some broad themes which flow throughout.

Most of these guys (sadly: only one female voice is present; more sadly: this reflects the industry at large far more than it does Mr. Seibel’s choice of subjects) started programming when their high school gave them access to some big piece of IBM iron. Punch cards and paper tape flowed like wine. Most of them don’t see any point to TDD (agreed!) and shun the debugger in favor of print statements (disagreed!). There also seems to be a trend where the best of us are starting to look towards functional languages as the future. It might finally be time for me to investigate Haskell and Erland beyond reading the occasional blog post.

Most of the older folks have given up programming in favor of sheep farming or club-owning. Those who are still in the industry are in more managerial roles and don’t do a lot of coding on a day-to-day basis (though they might try to sneak some in every once in a while). In this respect, Professor Knuth’s interview (being the last one in the book) is refreshing. He makes a point of how he’s compelled to program every day. He’s the only one I can remember (note: I read this over the course of two months, so my memory is hazy) who kept talking about the program he was working on the day before. Such passion is exciting, and it’s a little sad that it didn’t infect the other subjects much. If I may take the extreme liberty of putting words into the mouths of my betters, most of them seem to see programming as a rewarding intellectual career choice more than something to be truly excited about it.

I can only hope that my own life path follows that of Knuth more than the others.

As far as reviewing this book goes, I think it’s probably more worthwhile than not. I don’t expect it to actively help me in my career in the same way that a more technical tome might but I think it provides some valuable context to the programming environment I find myself in in 2011. It’s probably a book I’ll go back and re-read in a few years to let it my brain absorb it a bit more. That said, I don’t find it a must-read (for programmers or anyone else). I think it will end up being an interesting diversion more than a seminal work. But, it also feels like a work with the potential to age well. I’ll be curious to see if it’s still read in a decade.

One final note: I bought the 600+ page paperback because I wanted something nice to put on my shelf. I really wish I’d bought the Kindle edition instead. The book is massive which makes it physically difficult to read. I wonder if the publisher considered charging an extra $10 and making it a two-volume boxed set…well, we’ll just have to consider that an opportunity lost.

For fiction, my reading tastes tend towards SF (with the random Victorian classic thrown in for good measure). I like spaceships and dragons and I make no apology for that. Given that, it’s not much surprise that most of the popular and well-recognized fiction out there passes me by. So when I came across A Visit from the Goon Squad in a tor.com article about "Genre in the Mainstream", I took note. And, thanks to the wonders of selection bias, after reading that article, I started seeing this book in lots of other places. I decided it was worth a read.

In a very real sense, reading the tor.com article before reading the book itself "primed" me to look at the book as proto-SF. So when the chronology shifts from chapter to chapter, I picture it as something like the excellent Deep Space 9 episode "The Visitor". Perhaps not the author’s intention, but I think it works.

Ultimately, though, I think I find SF satisfying because I like a good plot. I like goals and obstacles and heros. The more literary fiction tends to eschew the standard plot for characters. I don’t find this sort of thing bad, per se. It can make for an enjoyable read (as it did here!). But it doesn’t satisfy. It’s like filling up on the bread at a steak house. The bread can be tasty: but I leave wishing I’d had more.

That said, this is an excellent book; and I’d be a fool to say otherwise. I devoured it in just a few days. I enjoyed reading it. Now, looking back, I enjoy having read it. Since I bought the Kindle version, I regret not having it on my shelf now.

If nothing else, I think I can safely say that this is an excellent non-genre book to give to the SF-fan in your life. It’s probably even better if you’re not as heavily steeped in SF as I am. So, you know: that would make it good all around.

As I understand it, Doyle was tired of Sherlock Holmes at this point in his career. That, I think, is the most common explanation for the rather sudden demise of the character in the final story.

When I started reading it, I didn’t know that this volume contained "The Final Problem"; but I could definitely tell that Doyle’s heart just wasn’t in it. While the writing is on the same level as the earlier works in the Holmes canon, the mysteries themselves are rather staid and pedestrian. You very rarely see modern adaptations of "The Greek Interpreter" or "The Adventure of the Yellow Face" (though I applaud this one for its Victorian celebration of racial equality; and the line "I am not a very good man, Effie, but I think that I am a better one than you have given me credit for being." was downright heartwarming).

It gets so bad that my spouse couldn’t tell the difference between "The Adventure of the Red-Headed League" and "The Adventure of the Stockbroker’s Clerk" when I was describing the latter: they’re roughly the same stories with the final twist swapped out.

The most egregious problem with this collection, though, is "The Final Problem". Here, Doyle was intending the great detective to make his curtain call: but, the entire story is just about Sherlock failing to run away. In dialog, he says that he’s done the finest work of his career over the past several months, but we don’t know what steps he took or what deductions he made. I don’t know if the aphorism "Show. Don’t tell." was around in 1894; but if not, it would’ve behooved Doyle’s editor (did they even have what we consider modern editors back then?) to coin it. There was absolutely no substance to this story. I, for one, am grateful that it turned out to not be Sherlock’s final problem: not because I want more of the detective (though I do), but because I think he deserves a better ending.

There are some gems, though. "The Naval Treaty" was fun, and "Silver Blaze" had a delightful solution. And ultimately, even the worst Doyle-penned Holmes story is pretty good. It just falls down in comparison to its siblings in the canon. I think we can all agree that that is pretty tough competition.