Monday, December 3

Sunday, November 4

Most Disrupting Leopard Change (for me)

It’s not the ugly, mis-shadowed new Dock. It’s not the light green menubar. It’s not even the folders that I can no longer tell apart. It’s this:

The Command-Tab pop-up now respects my Dvorak keyboard layout.

Let me tell you, friends: this is taking a lot of getting used to.

Monday, October 29

ARRR!!! Parents Weekend show videos

If you’ve ever wondered what this ARRR!!! thing is all about, take a look at these videos from last weekend’s show. I was happily in the audience, surprised that the joke is still going on, and gets better every year.

SFW, btw, as long as you keep your headphones on. They have the censorship banner, after all.

Part One
“Bully in the Alley,” “Tobacco Island,” “Whiskey”

Part Two
“Whiskey,” “Bell-Bottom Trousers,” “Fields of Athenry*”

Part Three
“Roll Your Leg Over,” “All For Me Grog”

* Make sure you catch the end. Blackheart is my hero.

Sunday, October 28 "to_read" on iGoogle

This may seem to be a pretty obvious tip, but I just realized that I could add my “to_read” bookmarks as a feed to iGoogle. Now they will not be forgotten by me.

Though, what I really need is a way to remove the “to_read” tag from the bookmarks from iGoogle once I’ve done the reading…

Wednesday, October 24

Trying out Stikkit and writing a Stikkit Google Gadget

I’ve started playing around with Stikkit a little bit. I’m not entirely sure what I want to use it for, but it has the advantage of a pretty good API, which means that, whatever I do with it, I can do it from the Dashboard, Quicksilver, and anywhere I can run my own code.

James Adam, who wrote a Dashboard widget for Stikkit, wrote:
Instead of using Stikkit as my online information repository, I've found that I used Stikkit as a kind of online-short-term memory.
I think that’s a good direction to take, since, with the Quicksilver tool, I can quickly post to Stikkit from home and work, and I can access my Stikkits from anywhere with a browser.

Right now I’m trying out Stikkit for personal todo items (I love OmniFocus at work, but it’s too heavyweight and on-one-machine for home use) and I’m thinking of also using it for tickler file things, since it’s easy to tie dates to things. (Formal events I’m keeping on Google Calendar, sometimes fed in from Upcoming.)

Since I’ve also been recently taken with writing gadgets for iGoogle (mmm… scroll-y) I took a few evenings and wrote a Google Gadget for Stikkit.

Add to Google

The gadget will show a few days’ of upcoming events and also all of your undone todos (except those that appear as events). Clicking on the “-” next to a Stikkit will mark it as done.

You’ll need your Stikkit API key to get this to work. It’s available from your Stikkit account settings page (click on your username).

Driving the Stikkit API from a Google Gadget is slightly tricky. Google provides the _IG_FetchContent function to get around same-domain policy and grab the JSON as text. A simple eval call then turns it into a data structure.

POSTing and PUTing is trickier. I ended up using a <form> element that is targeted at a hidden <iframe>, specifying the “text” format for the result. Stikkit supports a _method parameter to override the POST into a PUT for the todo toggling. This works when it works, but due to cross-domain limitations the gadget code can’t tell when it doesn’t work.

Anyway, if you’re using Stikkit and give this Google Gadget a try, leave me a comment here or drop an e-mail. I’m open to feature requests as well as suggestions into how to get the most out of Stikkit.

Also, if anyone can poke Rael and the gang and get SMS reminders to AT&T working, I would be much obliged.

Monday, October 8

Response to Ev’s posting form question

evhead: "Wow, the Blogger posting form sends down 30 Javascript files to your browser and 17 .gifs. Curious why they don't turn those 47 http requests into two or three. It would make a huge difference in responsiveness. Pete?"

Really? 47? I ran LiveHttpHeaders while loading the posting form, and here’s what I saw:

GET /post-create.g?blogID=16425656 HTTP/1.1

GET /__utm.gif?utmwv=1&utmn=602865791&… HTTP/1.1

How is it that Ev got 47 and I got 2? If you use curl on Blogger’s image and JavaScript files, you’ll notice that they’re sent back with rather generous cache headers. So, chances are the files are already in your browser:

> GET /img/ HTTP/1.1

< HTTP/1.1 200 OK
< Cache-control: public
< Expires: Thu, 08 Nov 2007 02:14:31 GMT

Obviously, if the files are not in your cache, Blogger’s post editor will load more slowly, because it does have 47 or so files to download. If Blogger had the same code in fewer files, the initial loading would likely be somewhat snappier in non-cache situations. So it would have some effect, but, in practice, not always a “huge difference.”

Friday, September 14

Blogger Play is live!

I spent a fair bit of the last few weeks working on the UI for Blogger’s latest gizmo-distraction: Blogger Play!
Play is a rocked-up version of the old Blogger photoscroller, which has been kicking around in various public and not-quite-as-public places ever since there were Blogger photos. I wrote a bit more about that over at the Blogger Buzz.

This is an interesting example of doing something in HTML and JavaScript that could probably be much better done in Flash, but hey: it works on the iPhone. I actually felt a bit Apple-y getting the polish done on the UI. The fade timing and speed slider settings took hours to get right. I hope you like them.

Joseph did the visual design, so give him all the credit for that. I worked from his mocks. And of course Pong, who wrote the original scroller and several since, and did all the backend coding and plugging together for this version. Katie made this launchable by cleaning out very nearly almost all of the images that aren’t good to show to people.

Enjoy! Remember to stop watching and do productive things.

Saturday, June 23

iPhone Tour thoughts

I just finished watching Apple’s iPhone guided tour. Two things stood out:
  • There seems to be some inconsistency in how to zoom: When viewing photos, you pinch to zoom in and can double-tap to zoom all the way out; in the Maps application, however, a double-tap zooms in, while a two-finger touch zooms out.
  • Where is the option to set an iTunes song as a ringtone? I smell meddling corporate interests.
Nevertheless, DO WANT!

Tuesday, June 12

"These are the gears..."

I just noticed the description of the Google Gears plug-in in Firefox:

“These are the gears that power the tubes!”

Interestingly, this is one case where the “big truck” metaphor actually seems to make a bit more sense…

Monday, June 11

Safari 3 beta for Windows

I'm typing this with Safari 3 for Windows, which is showing the Blogger rich text editor. This is not supported and kinda not supposed to happen.

Image upload and autosave appear to be broken. :-P

Update: If you're following along at home, Safari 3 does not implicitly create a <head> element when you programmatically (e.g. with document.write(...)) set the contents of an IFrame. This causes an initialization error in the Blogger post editor because there's no place to stash the <style> tag for spellchecking, which throws off the autosave initialization.

Without autosave, image upload to draft posts doesn't work, since Blogger autosaves before showing the upload dialog.

Another update: Damn Safari 3 is speedy-quick. It is now a contender for browser-of-choice.

Thursday, June 7

Blogger Dashboard Widget 1.0.1 now available

From the “about fracking time” department…

If you’ve still have the Blogger Mac OS X Dashboard widget running, you may have noticed it pop up a little message this evening.

Version 1.0.1 of the widget is finally available, featuring the following improvements:
  • Copyright date updated to 2007
  • “Publish Post” and “Save as Draft” buttons flipped to match the Blogger web interface
  • Logging in and posting works
Apologies to everyone who was left waiting for me to update the widget to work with the new Blogger’s Google Accounts and Atom 1.0. Now that the dropped ball has been picked up, happy Dashboard-blogging!

Saturday, June 2

Challenge me at Rock Paper Scissors

Through the many magicks of the Internet and Facebook’s new application platform, I am available for Rock Paper Scissors challenges.

Thursday, May 31

I made an internet thing

To coincide with my switch from FTP to Blogger’s domain hosting, I’ve changed up this blog’s template (now a simple variant on Darren’s Denim) and unveiled a new homepage at

This new design is more groggish — and therefore more representative — than the last one, which is something I’ve been wanting for a while now.

The “internet things i found” section is a compilation of my shared items, from, Google Reader, and Facebook. I made a pipe with Yahoo! Pipes to combine and normalize the three feeds, which I then pull in via JSON. It ends up getting the job done, though the implementation is a bit sketch. Still, it’s better than having to handle the fetching and parsing on my own server.

I also pull in the last three posts from this very blog via Blogger’s GData JSON support. MochiKit is used to make HTML generation sane, and to parse the date format that GData outputs.

I based the overall structure on the Holy Grail CSS layout, which does three columns (though I’m not using the left-most) in an ideal source order. I still have to stick some stuff in the footer, perhaps a copyleft/right-type statement.

Still to come are better links to and integration with the other websites I’ve scattered by online identity to. I’d really like to work in a chart, but it’s a real pain to get the look and size right.

Oh, and as a last bit, this new design actually works in IE6, since I can test on my own machine with Parallels.

If you can read this…

…then the DNS changes went through. Thanks to the new “Missing Files Host” feature, I can move from FTP to domain hosting without any (significant) problem!

Friday, March 23

Ponturo: More Obsessable Than Sudoku

I was up late last night blasting through 100 Ponturo puzzles from Mind Candy (this was half obsessive puzzle trance and half me thinking that they would at some point end). There’s numbers and logic and something about Japan, so the obvious comparison must be made to Sudoku:

Ponturo is like Sudoku crossed with NP-complete*

I’m drawn to Ponturo because it’s quick and fresh, and there’s a boardgameish appeal to its archipelago presentation. Also it requires less focused concentration than Sudoku, so it pairs well with television watching.

Play puzzles for free on the Ponturo page of We Love Puzzles. There are also instructions. And the tempting allure of many more Japanese puzzle games.

* = Though Ponturo itself is, I believe, solvable in polynomial time. It just has an NP feel.

Thursday, March 22

Adium Installation Instructions

How to install Adium, the open source chat client for Mac OS X:

The feathers are a nice touch.

Tuesday, March 20

Official Google Blog: Personality goes a long way

Official Google Blog: Personality goes a long way: "Today we're releasing six themes for the personalized homepage that try to solve these challenges: a city, a teahouse (super cute -- this one is my favorite), a winter scene, a sky, a beach and a bus stop. All of our themes are dynamic: they change with your own local time of day, current weather conditions or season."
I'm all about the teahouse. Happy watercolorish animals drinking tea and eating sushi. It's also refreshing to see warmth and friendly aesthetics on a Google page.

Thursday, February 1

Fixing Fotos For Flickr

I heart Connected Flow’s FlickrExport plugin for iPhoto, but one thing it does not handle well is the ICC color profiles that iPhoto adds to photos. The problem is that a photo that goes through this workflow only looks good if the app that displays it (i.e. the browser) understands the embedded color profile.

Firefox does not.

Safari does.

Internet Explorer does not.

There may be hope for Firefox eventually, but until then, things work better if you use ColorSync to convert the image to the Generic RGB profile, then upload to Flickr.

This is fairly straightforward:
  1. Run ColorSync Utility (in Applications > Utilities)
  2. Open the relevant image
  3. In the menus down at the bottom, select “Match to Profile” and “Display > Generic RGB Profile”
  4. Click “Apply”
  5. Save
I went and made an Automator plug-in for the Finder’s contextual menu. It’s really easy, just two steps:
  1. Finder > Get Selected Finder Items
  2. Preview > Apply ColorSync Profile to Images
Though now I need to replace the seven images that I recently uploaded directly from iPhoto. Blah.

Friday, January 26

Gingerbread Carcassonne

Originally uploaded by zendonut.
In the grand tradition of Cupcake Catan, here is a Carcassonne game made from gingerbread.

Thursday, January 18

Grogmobile Now on Grogmaster

My mobile blog is now off of Blog*Spot and available at, thanks to new Blogger’s latest feature, custom domains (and the resolution of a certain known issue).

Not much there, but some of it is good for a laugh.

Obligatory promo: Send an MMS to to instantly make your own mobile blog! It’s easy/free/has its own theme song. Learn more.

Friday, January 5

Bookworm Adventures on Intel Mac with Parallels

Cait and I had an enjoyable evening with Bookworm Adventures. Penny Arcade’s endorsement and related comic sum up our reactions pretty well (from Tycho’s point of view, of course). Top words so far have been “malevolent,” “whitehead,” and “battening.” The Mastermind-like minigame is great fun on its own; I hope I can find it or some variant separately, because you can only play it once per life in story mode.

PopCap doesn’t have a Mac version, but Bookworm Adventures runs just fine under Parallels (sans hardware acceleration), especially with the Coherence mode from the latest beta.