Thomas Fuchs
Hi, I'm Thomas Fuchs. I'm the author of Zepto.js, of, and I'm a Ruby on Rails core alumnus. With Amy Hoy I'm building cheerful software, like Noko Time Tracking and Every Time Zone and write books like
   Want me to speak at your conference? Contact me!

Parlez-vous Web 2.0?

November 20th, 2006

Book cover
For all you french-speaking developers out there, there’s a great new book available from Christophe Porteneuve, which basically walks you through all things Web 2.0, including huge chapters on Prototype and

The book, Bien développer pour le Web 2.0 is available right now, and really holds tons of stuff on the libraries we love, including not only describing the raw functionality, but also how to understand Prototypish code and write it yourself.

It doesn’t stop there however—you’ll also find info on RSS, REST, XHTML, CSS and other nice abbreviations.

Over the last months, Christophe has been very active in the Prototype/ community with tirelessly helping out on the Rails-Spinoffs Google Group, and submitting patches for Prototype.

Firebug reloaded

November 16th, 2006

Firebug, the DOM messin’ around and JavaScript debugging tool everyone loves, is nearing it’s 1.0 release.

New and improved features include:

  • Live HTML and CSS editing
  • CSS metrics
  • Network activity monitor
  • JavaScript profiling
  • Pimped error messages
  • Flexible layout (can run in its own window!)

It’s currently in closed beta, but will hopefully arrive soon.

Check out the all-new firebug site,

Two thumbs up for Mr. Hewitt and easing the pain the web development can be. Maybe it can be fun after all…? 🙂

JavaScript particle engine

November 10th, 2006

Jason Harwig provides for some fun for the weekend. Cheers! 1.6.5

November 8th, 2006

I’ve just pushed 1.6.5 for your download pleasure. It’s a maintenance release that adds a few tweaks here and there—read on!

  • Update to Prototype 1.5.0_rc1 revision [5462]
  • Support the HTML ‘for’ attribute in Builder by using ‘htmlFor’, fixes #6472 [gjones, tdd]

var node = Builder.node('label', { htmlFor: 'myinput' });
  • Add support to run a specific failing unit test by clicking on the corresponding test result, fixes #6290 [leeo]
  • Add modifier key support to Event.simulateMouse, fixes #6391 [savetheclocktower]
  • Add new ‘with-last’ queue position option to queue effects to occur in parallel with the last effect to start in the queue
  • Add new special core effect Effect.Event for one-shot events that follow timelines defined by effect queues
new Effect.Event({ afterFinish:function(){
  // do some code here
}, position: 'end' });
  • Fix an possible crash of IE on Effect.SlideUp, fixes #3192 [thx nel]
  • Add to create nodes from strings containing HTML, [DHH]

var node ="<p>this is <b>neat!</b></p>");
  • Add a pulses parameter to Effect.Pulsate to control the amount of pulses, fixes #6245 [leeo]

    For example, this will pulsate twice (if the option is not given, it defaults to five pulses):

Effect.Pulsate('d8', {pulses: 2});
  • Fix an issue with clicking on a slider span resulting in an exception, fixes #4707 [thx sergeykojin]
  • Fix an issue with Draggables when no options are supplied, fixes #6045 [thx tdd]

This should be the last release before Ruby on Rails 1.2 comes out—the next thing will be 1.7! Lots of good and cool patches are waiting for their addition, and should make it into the 1.7 release.

As always, kudos to the community for supplying patches, bug reports and tests—keep it coming!

Marvelous Mephisto Move

November 7th, 2006 now runs on the coolest blogging software ever. Expect a few rough edges here and there, but basically continues business as usual.

Kudos to technoweenie for the hard work on this beautiful piece of railsy goodness.

P.S. I didn’t migrate the comments as they where totally spam-ridden. Mephisto has spam protection built-in, so (hopefully) spam will be less of a problem.

P.P.S. The offical Mephisto 0.7 release was announced just moments ago, rock on!

Prototype documentation call

November 2nd, 2006

Prototype needs your documentation skills—a new super-cool documentation site is in the making, and it needs your help.

Get on board already!

Adventures in JavaScript testing

September 16th, 2006

As promised, here are the slides on unit testing JavaScript from my talk at RailsConf Europe:

Adventures in JavaScript testing (PDF, 11.7 MB)

I also hear that audio (and video?) might be forthcoming, but I can’t promise anything on that. Anyway, as soon as I get some rest, I’ll also post some photos from the conference. 🙂

Off to RailsConf Europe

September 12th, 2006

Tomorrow we’ll make a short trip over to London for RailsConf Europe where I’ll be talking about Adventures in JavaScript Testing.

Here’s a teaser:

I assure you, there is. Drop by my talk if you want to know more. I’ll also post the talk here on after the conference, of course.

Hope to see some of my humble readers at the conference! 1.6.4

September 6th, 2006 1.6.4, which marks the inclusion of the new release candidate of Prototype 1.5, is out now.

(For those of you missing the 1.6.3 version: that version was out yesterday but had a issue with IE that is now fixed in 1.6.4)

This release comes with the brand-new Prototype V1.5.0_rc1 version, adds several new features and options to drag and drop, features a whole new (experimental) way of doing testing, and adds some other goodies here and there. Also, thanks to the contributors for identifying and squishing bugs!

So—what’s new & cool?

  • Merge assertElementsMatch and assertElementMatches from Prototype’s
    [4986] unittest.js [Sam Stephenson]
  • Add assertRespondsTo and shouldRespondTo assertions

      // object
      var testObj = {
        isNice: function() { }

      // test
      assertRespondsTo('isNice', testObj);
  • Make Sortable.serialize handle DOM IDs like “some_element_1” correctly, fixes #5324
  • Add support for onStart, onDrag and onEnd events directly on Draggables (invoked from the Draggables.notify), fixes #4747 [thx scriptkitchen]

      new Draggable('some_id',{
        onStart:function(){ /* ... */ },
        onDrag:function(){ /* ... */ },
        onEnd:function(){ /* ... */ }
  • Add autoSelect option to Autocompleters to auto select an entry if only one is returned, fixes #5183 [thx cassiano dandrea]
  • Added delay option to Draggables and Sortables, see test/functional/dragdrop_delay_test.html for usage, implements #3325 [thx lsimon, tomg]
  • Add version and timestamp to indvidual library files for easier identification (the files are preprocessed by the Rake fresh_scriptaculous task), fixes #3015 [thx Tobie]
  • Add assertIndentical and assertNotIdentical unit test assertions, which test for equality and common type, fixes #5822 [thx glazedginger]
  • Add integration test for Ajax autocompleter for results with no linebreaks, #4149
  • Added a custom exception to all base effects when used on non-
    existing DOM elements, added a assertRaise method to unit tests
  • Add element shortcuts to Builder that can be activated by calling Builder.dump() (see the unit test), fixes #4260 [thx napalm]

      var element = DIV({id:'ghosttrain'},[
         DIV({style:'font-size: 11px; font-weight: bold;'},[
           H1('Ghost Train'),
           "testtext", 2, 3, 4,
             LI({onclick:'alert('test')'},'click me')

  • Make Effect.Puff work correctly for floating elements, fixes #3777
    [thx michael hartl]
  • Fix selection of correct option in SELECT element generated by
    InPlaceCollectionEditor for indexed option arrays, fixes #4789 [thx
  • Fix an issue with redrawing ghosted draggables that are inside a
    scrolled container, fixes #3860 [thx gkupps, tsukue]
  • Fix autoscrolling inside scrollable containers when window is
    scrolled too, fixes #5200 [thx wseitz]
  • Fix autoscrolling when dragging an element unto a scrollable
    container, fixes #5017 [thx tomg]
  • Fix a condition where overriding the endeffect on Draggables without
    overriding the starteffect too leads to a Javascript error [thx
    Javier Martinez]
  • Fix a possible error with the drag/drop logic (affects the solution
    to #4706)
  • Fix various issues with IE detection and Opera, and setOpacity, fixes
    #3886, #5973
  • Remove revert cache code obsoleted by #4706, fixes #3436 (again) [thx

As always, the required 1.5.0_rc1 version of Prototype is included with the download.

Big thanks to the contributors!

Prototype updates

August 29th, 2006

Justin Palmer on the recent updates to the Prototype trunk.