Thomas Fuchs
Hi, I'm Thomas Fuchs. I'm the author of Zepto.js, of script.aculo.us, 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 Retinafy.me.
   Want me to speak at your conference? Contact me!

fluxiom frequently asked questions

December 13th, 2005

Now available over at fluxiom.com.

Prototype Enumerables

December 11th, 2005

Justin Palmer has a great article on how to use the Prototype Enumerable extensions in JavaScript. Be sure to check it out if you want to up your Prototype skills.

Ajax Workshop in New York

December 6th, 2005

I’m doing another Ajax Workshop on January 26, 2006, and this time it’s in New York City. So, all who couldn’t attend to the Workshop in London two days from now, here’s your chance.

More info over at the Carson Workshops site.

OCG Rails Presentation

December 1st, 2005

The presentation on Ruby on Rails that I did last Tuesday, is now available for download at the site of the Austrian Computer Society

It’s just a few overview slides on Rails, nothing special. But I got a few oohs and aahs from the folks there, which were mainly Java developers.

Update: Some nice guy Ichigo (who is a nice guy), who attended the whole thing recorded audio (while the presentation itself is in English, the audio is in German). 🙂

RailsConf

November 28th, 2005

Well, RailsConf it is.

Some fun in the snow with Quartz Composer

November 23rd, 2005

What I really like about Mac OS X is that it comes with all sort of cool stuff, like the Quartz Composer.

If you’re on Mac OS X Tiger, click here to see some snowy Quicktime action!

Oh, yes and here’s a variation, just stick the file in your ~/Library/Screen Savers folder, and enjoy… Ruby on Rails Mac OS X Screen Saver 🙂

Update: Sorry for the inconvenience with the unavailable downloads, all should be fine now!

Ruby on Madrobby

November 20th, 2005

script.aculo.us 1.5 hits rc5

November 19th, 2005

I’ve just released script.aculo.us 1.5_rc5 which is mostly about refactoring and fixing bugs for the soon-to-be 1.5 final release, but also adds quite a few new features:

  • Drag and Drop now has the ability to snap to a grid (which can also be controlled through a callback for advanced uses)
  • The new Form.Element.DelayedObserver lets you easily build those realtime search boxes (it sends off the AJAX call only after a specific delay has occured since the last keypress in the observed INPUT element)
  • Horizontal ghostable sortables
  • Some additional features for the slider control

As always, there where loads of fixes. See the CHANGELOG for details!

Thanks to all bug hunters and patch submitters!

Vienna OSS web development frameworks action day

November 15th, 2005

The Austrian Computer Society holds a one-afternoon presentation on Open source web development frameworks on November 29 here in Vienna, Austria.

All presentations will be in German (but the presentation slides will probably be available in English).

Participation is free (registration is required!). I’ll do a talk on Ruby on Rails which will “compete” with some Java-based frameworks (Cocoon/JSF/Struts). Hopefully I can lure some Java developers to Rails 🙂

More information and registration info (German)

AJAX Activity indicators with Rails 0.14.3

November 14th, 2005

Step 1:

Create an element on the page that should be displayed while AJAX Requests are active. I mostly use an IMG element displaying an animated GIF file. Give this element an id="busy" attribute.

Step 2:

Create a file application.js in your public/javascripts folder (if you don’t already have one!), and be sure to use <%= javascript_include_tag :defaults %> in the HEAD section of your layout or view template to include the Rails-provided JavaScripts.

Insert the following code into the application.js file:


Ajax.Responders.register({
  onCreate: function() {
    if($('busy') && Ajax.activeRequestCount>0)
      Effect.Appear('busy',{duration:0.5,queue:'end'});
  },
  onComplete: function() {
    if($('busy') && Ajax.activeRequestCount==0)
      Effect.Fade('busy',{duration:0.5,queue:'end'});
  }
});

Step 3:

Enjoy!