All posts by Jeremy Gillick

April Fools Hack – The Singing Keyboard

This year I decided to go all out for April Fools and do something that could be duplicated across multiple computers without permanent damage — and so the singing keyboard hack was born.

Update

If you like this project, please vote for it on instructables.com.

Concept

Take the musical element from a musical greeting card and connect it to the caps lock LED on the user’s keyboard. Each time the victim presses caps lock the music plays (and quite loud too). This is a great sleeping prank…It might be found on the first day, or weeks from implementation. It’s the perfect prank.
Continue reading April Fools Hack – The Singing Keyboard

My second ‘Firefox’ at the Songbirder+Mozilla Party

Flaming Firefox

Last night I went to the Songbird+Mozilla party in SF and it was awesome. There were lots of people from various startup companies, good music, great food, drinks and the Flaming Firefox (pictured above) was most excellent. It almost felt like we were back in the ol’ “dot com” boom; oh sweet nostalgia.

I really like what they have going there. It’s the first real use of the XULRunner application that I’ve seen and has a lot of potential and a great executive team. I just hope that someday when they make millions they’ll remember I came to their party. ;o)

GO SONGBIRD! (versions for Apple and *NIX are coming soon. Hooray!)

Creating a Semantic Tab Box — Without AJAX

Recently I wanted to create a content box that would use tabs to organize a few sections of text. Here were my requirements:

  1. Tabs oriented vertically (you can easily customize my example to be horizontal)
  2. HTML be semantic, logical and gracefully degrade
  3. Be easily accessible to screen readers
  4. Easy to implement and portable
  5. Works in IE, Firefox & Safari

I started by looking on the web for pre-existing examples of this and found a lot of things that worked well, but when you looked under the hood they were a mess.
Continue reading Creating a Semantic Tab Box — Without AJAX