Archived Posts

Displaying posts 101 - 110 of 649

The Worst Journey in the World

Monday April 21, 2008 @ 10:34 PM (PDT)

The Worst Journey in the World (book cover) I recently devoured The Worst Journey in the World by Apsley Cherry-Garrard, a riveting account of the Terra Nova Expedition, which culminated in Robert Scott’s fatal journey to the south pole and (almost) back.

The polar journey itself didn’t actually occur until two years into the expedition and, while spectacular in its own right, is not really the focus of the book. The titular journey, in which the author and two others set out during the Antarctic winter of 1911 to retrieve eggs from what was then the only known accessible Emperor Penguin rookery, is an epic tale of suffering and perseverance, but it’s not the book’s focus either.

Interweaving his own recollections with the letters and journal entries of himself and his companions, Cherry-Garrard tells a story not about a single expedition to Antarctica, but about mankind’s inherent need to explore the unknown fringes of the world we inhabit and to expand our knowledge of it at any cost.

I strongly recommend this book.

Thoth 0.1.4 released

Tuesday April 15, 2008 @ 10:22 PM (PDT)

Thoth 0.1.4 has been released. The only change is a fix for a silly memory leak and caching bug introduced in 0.1.3.

Thoth 0.1.3 released

Sunday April 13, 2008 @ 03:23 PM (PDT)

Thoth 0.1.3 has been released. This version contains the following changes:

  • When creating or editing a blog post or page, the preview is displayed above the edit form rather than below it.
  • Spaces in blog post URLs are replaced with – rather than _ (this change will only affect new posts; existing post URLs will not be changed).
  • Blog posts provide Atom feeds for recent comments.
  • Tag pages provide Atom feeds for posts with that tag.
  • Blog posts are marked up using the hAtom microformat.
  • Thoth auto-generates an XML sitemap at http://yourblog.com/sitemap (set site.enable_sitemap to false to disable).
  • Comment URLs are built using the name of the post the comment is attached to rather than the id.
  • Fixed a bug that prevented Atom and RSS feeds from being cached when server-side caching was enabled.
  • Fixed entry titles in Atom feeds claiming to be type="html" when in fact they weren’t.
  • Fixed a bug that sometimes caused flash messages to be cached with the output of an action and re-displayed until the cached action expired.

To install Thoth for the first time, run:

sudo gem install thoth

Or, to upgrade an existing Thoth blog:

sudo gem update thoth
cd /path/to/blog
thoth -d restart

Evil Gmail quota

Wednesday April 09, 2008 @ 01:45 PM (PDT)

My Gmail quota stats are a wee bit sinister today:

Gmail quota stats showing 666MB used and 6606MB free

blink tag compatibility script

Tuesday April 01, 2008 @ 10:38 AM (PDT)

Update: Yeah, April Fools. For the sake of my own sanity, I’ve removed the actual blink tags from the post now that the fun has worn off. Please don’t actually use this code or I’ll hunt you down and throw angry kittens at your face.

While working on a new feature for Yahoo! Search today, I ran across an interesting problem. It seems that some A-grade browsers have a serious bug: they don’t support the HTML <blink> tag, which has been part of a w3c spec since 1999.

Since I absolutely wouldn’t have been able to implement this awesome new feature without the <blink> tag, I went ahead and wrote a JavaScript compatibility shim to add support for it to buggy browsers:

/**
 * blinktag.js v1.0.0 (2008-04-01)
 *
 * Compatibility shim to implement the <blink> element in browsers that don't
 * properly support the w3c spec (for spec details, see
 * http://www.w3.org/Style/HTML40-plus-blink.dtd).
 *
 * For a demo and usage examples, see
 * http://wonko.com/post/blink_tag_compatibility_script
 *
 * Copyright (c) 2008 by Ryan Grove <ryan@wonko.com>.
 * All rights reserved.
 */

setInterval(function () {
    var i, s, tags = document.getElementsByTagName('blink');

    for (i = 0; i < tags.length; ++i) {
        s = tags[i].style;
        s.visibility = s.visibility == 'hidden' ? 'visible' : 'hidden';
    }
}, 1000);

Feel free to use this script in your own projects until Microsoft and Apple fix this bug.

CrashPlan status report: still awesome

Monday March 31, 2008 @ 09:32 PM (PDT)

Early last year I wrote a positive review of the online backup tool Mozy. Like a fool, I neglected to test its restore functionality, and a few months later when I suffered a hard drive crash and tried to restore 20+ gigs of data from my Mozy backup, I learned that Mozy can’t restore for shit.

After extensive testing of both backup and restore functionality, I decided to switch to CrashPlan for my online backups. Back in September, after having used it for several months, I gave CrashPlan a glowing review.

So, seven months later, would I still recommend CrashPlan? Yes. Hell yes.

CrashPlan has backed up my data quietly, reliably, and without fail. It hasn’t ever crashed or frozen and it doesn’t hog my system resources. Most of the time I don’t even remember it’s there. But most importantly, CrashPlan has saved my ass several times, and each time it’s worked so well that it almost makes me want to do stupid shit more often just so I can experience the pleasure of having my ass saved again. It works that well.

When I migrated from a PC to a Mac last year, I copied all my important data off the PC’s hard drive, then wiped it clean. At least, I thought I had copied all my important data. Naturally, as soon as I finished nuking the drive, I realized I had only copied one of my two partitions. A few clicks later, CrashPlan was happily restoring the lost files to my new Mac from the PC’s most recent backup. I didn’t lose a thing.

That’s been the story every time I’ve needed to restore something. Whether it’s a single file of just a few kilobytes or a whole directory containing several gigabytes, CrashPlan begins restoring the files instantly and only seems to be limited by the download speed of my Internet connection. Mozy’s painful, slow, unreliable restore process is nothing but a distant nightmare now.

CrashPlan and Mozy both make lots of big promises about how safe and secure your data will be and how easy it’ll be to restore in the event of a disaster; the difference is that CrashPlan actually keeps its word.

Thoth 0.1.2 released

Saturday March 22, 2008 @ 06:08 PM (PDT)

Thoth 0.1.2 has been released. The only changes are Ramaze 0.3.9.1 compatibility and a new MinifyController that minifies Thoth’s CSS and JavaScript on the fly.

The minification is handled by two new Ruby libraries: CSSMin, which is a port of the YUI Compressor’s CSS minification routines to Ruby; and JSMin, a Ruby port of Douglas Crockford’s JSMin.

Feel free to use these libraries in your own projects. They’re available as individual gems for your convenience (named “cssmin” and “jsmin”, naturally).

More on the Safari 3.1 keypress change

Friday March 21, 2008 @ 02:22 PM (PDT)

I was (clearly) still a little frustrated when I posted about the Safari 3.1 keypress change the other day, and in my frustration I posted a rant when a reasoned discussion would have been more productive. As my coworker Julien said to me later that day, “Nobody died!”

After seeing my rant, John Resig posted a more in-depth discussion of the change and the reasons behind it. I don’t disagree with his conclusions. The reasons for the change are good, and it was something that needed to happen. I only have two complaints:

  1. The WebKit team should have communicated the change to web developers before Safari 3.1 was released. A blog post on the WebKit blog would have sufficed. The only pre-release notification I’ve been able to find about the change was a single email to the webkit-dev mailing list, a list that few web developers subscribe to since it focuses on internal WebKit development rather than on web development with WebKit.
  2. Even though the new behavior is more “correct”, it fragments the already-fragmented world of DOM keyboard events even further. In one camp you have IE and Safari 3.1, which now behave similarly but still have minor differences. In the other you have Firefox, Opera, and Safari 3.0.

The cross-browser inconsistencies are frustrating, but they’re nothing new, and they can be dealt with. The communication issue is the one that bothers me the most. It’s the reason I was so annoyed when I saw my code break in Safari 3.1. The fact is, I love Safari, almost to an unhealthy degree; it’s been my browser of choice for a few months now and I’ve come to expect the best from it. Seeing an incompatible change like this slip into a major release with no warning was a bit like having the first argument in a new relationship: it came out of nowhere and left me feeling like the world was ending when, in hindsight, it wasn’t really such a big deal.

To sum up: changes that break backwards-compatibility are okay when there’s a good reason, but give us some warning next time. I still love you, Safari.

Safari 3.1 breaks keypress events

Wednesday March 19, 2008 @ 10:23 AM (PDT)

In Safari 3.1, which was released yesterday, the keypress event is no longer fired for non-character keypresses other than enter.

I was sure this was just a bug, but it turns out the change was intentional, and was made in order to imitate the behavior of Internet Explorer.

In other words, the WebKit team looked at their keypress implementation, which had some quirks but at least worked more or less the same as in Firefox and Opera, and they said, “Hey, you know what this needs? More suck!” and changed it to work like IE instead, thereby causing even more confusion in the already-muddled clusterfuck of DOM keyboard events.

If you’re developing a web browser, here’s a helpful tip: when faced with the question of whether you should imitate the behavior of Internet Explorer or [insert other browser name], always imitate the other browser. I don’t care if the other browser is Mosaic 1.0; odds are it’s a safer choice than IE.

Thoth 0.1.1 released

Monday March 17, 2008 @ 11:01 AM (PDT)

Thoth has officially been released! You can install it with:

sudo gem install thoth

Once Thoth and its dependencies have been installed, create a new home directory for your Thoth blog:

thoth --create myblog
cd myblog

Edit thoth.conf to your liking, then start Thoth:

thoth

Take a look at your new Thoth blog at http://localhost:7000/ (or whatever port you configured). Once you’ve got everything working and are ready to run Thoth in production, you’ll probably want to start it as a daemon:

thoth -d start

Easy as pie, huh?

Copyright © 2002-2012 Ryan Grove. All rights reserved.
Powered by Thoth.