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!

Sneak preview on scripty2 UI controls

December 3rd, 2009

So how’s scripty2 progressing? To give you some more insight than just “Very well, thank you”, here’s a status update.

Next to the big chunks for the effects engine which has been stable for quite a while now, and the support for multi-touch input (hat tip to Nokia), several additions are queued up, the most important being the “UI behaviours”/”controls” part.

A big Thank You! to Andrew Dupont for adding the first batch of controls goodness to scripty2, including buttons, dialogs, overlays, sliders, autocompleters, and yes, an accordion.

s2ui

Try the scripty2 UI demos! (alpha version, so there are some kinks!)

Those controls are written with the super-nice Prototype class system and custom events, so they’re super-tweakable and make it a snap to create extensions and customized versions. More controls are in the works, and there should be a beta release this year (or grab the code from github).

They support full keyboard navigation and provide accessibility hooks through WAI-ARIA.

The best thing is that they’re compatible with Themeroller (from jQuery UI) themes! So you can just reuse/tweak existing themes very easily, plus scripty2 comes with a special scriptaculous theme, thanks to Samo Korošec.

Bonus– here are two new sightings of scripty2 in the wild:

Enjoy, and hope you’ll build something cool with scripty2, too!

scripty2: for a more delicious web

June 26th, 2009

The script.aculo.us 2 alpha is out! Check it out now at scripty2.com. As you would expect, it brings a lot of change and new features.

scripty2: for a more delicious web

scripty2-screenshot

As the effects framework forms the base for all the eye candy in any UI elements, it’s the logical first step towards a complete scripty2. But what’s in that, and how will the complete thing look like?

scripty2 will consist of three parts:

  • scripty2 fx: the framework for DOM/CSS-based visual effects
  • scripty2 ui: user interface behaviours (not in right now)
  • scripty2 core: helpers for a more delicious developer experience

Alpha!

In this release, the focus has been on the effects engine, with the UI parts still pending a rewrite (there will be a lot of really cool stuff coming for the UI part, but more about that later).

Even in alpha, the effects engine can now do so much more, with less code to write. Check out the source code to the cards demo to see what a mere screenful or two of code can do now!

And we’re actually using it in our own live projects, like twistori and freckle time tracking, so it’s pretty damn stable already.

Docs, Docs, Docs

If there’s one thing I’ve learned over the years of maintaining an open source software project, than it’s that Wikis just don’t work (except if you’ve millions of users). It’s too much of a hassle to keep the spam out, not synchronized to the software version cycle, full of comments by well-meaning people that sadly don’t understand open source communities or the spirit behind free software, and numerous other problems.

scripty2 docs: "mirror" transition

That’s why scripty2’s documentation is made with PDoc, a system where the documentation is written directly in the source code using specially formatted comments, augmented by interactive examples— why not use the web what it’s good for and look beyond just descriptions? After all, this is a JavaScript effects framework!

As a bonus, there’s up-to-date offline documentation always at your fingertips, so regardless if you’re on a plane or train you can always browse the docs.

A rewrite?!

Yes, it’s all new. The old code was just to crufted and packed with workarounds for browsers no one uses any more, so I’ve decided to start anew and write the effects engine from scratch. With all the knowledge gained from years of using the effects
on various projects, it’s now ready for the future (and it looks bright!).

Also applied are the results of Amy and my research for our ebook on JavaScript performance (please buy it to support scripty2 development, get $5 off the beta release with the “GOSCRIPTY2” discount code, but hurry as we’re pushing the final version soon!).

As a bonus, the minified and gzipped version of scripty2 is a mere 5k in size. That’s a lot of animation features in a very, very small package.

The scripty2 download comes with minified versions of Prototype and itself.

Here’s the reasoning behind the rewrite:

  • Start from a clean base: remove cruft and have a smaller codebase.
  • Features and extensibility: have a more open and flexible code model to allow for some real interesting features (for example, you can swap the whole timing engine with your own).
  • It’s fun to do something new: maybe the main reason is that I like to hack. So.

Keep in mind that the old code still works great on thousands of sites all across the web, including some of the biggest and most frequented.

Rename to scripty2

I like the script.aculo.us name and will use it in the future too, but it was time to update the name to make it easier to spell it and lead to less confusion about the domain name (others agree). I’d love to hear feedback on the new name!

Development resources

scripty2’s development is proudly hosted on Github, there’s a bugtracker at Lighthouse and last but not least, a developer mailing list on Google Groups.

I’d like to invite everyone that’s interested in joining the development efforts by reporting bugs, submitting patches, maintainig tests and writing documentation and demos (if you come up with a really cool demo, I’d like to include it on the scripty2 demo pages).

Have fun building a more delicious web!

scripty2 docs sneak peak

June 19th, 2009

While you can download scripty2 and generate the docs yourself, here’s a sneak preview on how they’re going to look. A very valid criticism concerning the script.aculo.us documentation always was that it was wiki-based and incomplete. While I had a lot of helping hands, wiki vandalism (by either spammers or by folks who wanted to help but didn’t have a clue to the library) was too much to handle.

scripty2 docs: "mirror" transition

We’re now using PDoc, an awesome code-comment based JavaScript documentation system, which allows for a lot of customization (like the interactive transition demos above).

More soon!

New book on using scripty with PHP

June 9th, 2009

A new book on using PHP and script.aculo.us together was released by Packt Publishing. Once I get my hands on it, I’ll post a review, but meanwhile here’s a sample chapter (PDF) on using the slider control.

If you like it, go ahead and buy PHP and script.aculo.us Web 2.0 Application Interfaces!

script.aculo.us 1.8.2 service release

November 18th, 2008

I’ve just pushed script.aculo.us 1.8.2, which most importantly contains the latest and greatest Prototype 1.6.0.3 bugfix release.

If you’d like to know more about this update, please see the CHANGELOG.

Get it through Github or download a convenient package at the scriptaculous site.

Practical Prototype and script.aculo.us book hot off the presses

July 21st, 2008

Practical Prototype and script.aculo.usPrototype Core team member Andrew Dupont’s new book Practical Prototype and script.aculo.us is now available, and it’s a super no-nonsense guide to getting up to speed with the libraries, fast.

Andrew, being a UI developer by heart, doesn’t mess around and gives you hands-on examples for just about everything you can do with the “fraternal twins” Prototype and script.aculo.us.

You’ll learn how to really use all those fancy Prototype collection helpers (like each, detect, select, reject, partition, etc.), master the cool new custom events system, and seriously mess with the DOM; and how’ll see how Prototype can help you with everyday programming tasks with its extensions to functional programming and OOP. Plus of course how to make the most of Ajax and JSON. Last but not least, visual effects are explained, and also how they work by taking advantage of the DOM and how web browsers render websites.

The very interesting closing chapter shows you why things are as they are in Prototype, and will help you read the source code—and write JavaScript, Prototype-style.

New Prototype and script.aculo.us support mailing list

July 14th, 2008

Subscribers to the Rails Spinoffs mailing list should switch to our new, better-named list: Prototype & script.aculo.us.

While these two venerable libraries are, in truth, spinoffs of the Rails project, we’ve come to realize it’s far more user-friendly to have the libraries’ names in the name of the mailing list. This should help guide users to the right spot and reduce the amount of support traffic on the Prototype Core mailing list — which is for discussion of Prototype’s development process, not support.

Because list spam is a sad reality, your first post to the list will be held for moderation. Once it’s approved, though, you’ll be able to post with impunity.

(Original article at Prototype blog)

script.aculo.us switches to git(hub) and Lighthouse

May 9th, 2008

script.aculo.us is from now on developed using Git (hosted at github) for source code management and revision control, and Lighthouse for bug tracking.

Why git instead of Subversion? Well, it simply rules supreme, and makes working with many distributed developers with lots of branches a snap. You can find a good intro book on Git on Peepcode.

script.aculo.us 1.xx development will focus on bug fixes only, while I’m working on the next version of scripty (post on that coming up soon!).

Bug tracker
http://prototype.lighthouseapp.com/projects/8887-script-aculo-us

Repository for script.aculo.us 1.xx
http://github.com/madrobby/scriptaculous

Note that if you’re just using the library, this change won’t really affect you.

If you have open bugs on the old Trac please port them over to lighthouse yourself!

I’m also working on a replacement for the documentation wiki (which, quite honestly, sucks); so stay tuned for some updates in the near future. If you want to help out with the documentation effort, please contact me. 🙂