Adobe joins forces with Mozilla

Christian Decker wrote this in the wee hours:
Adobe has just announced a huge donation to the Mozilla foundation: a high performance ECMAScript Edition 4 Virtual Machine. Don’t know what ECMAScript is? It’s the standard behind JavaScript. Off course this is great news for all Ajax developers because it allows us to rely on the most powerfull Virtual Machine ever for our applications.
Advertisement BadgeWhen you convert PDF to Word you may find that any free PDF conversion sites online don’t give you the power that true PDF to Word software can give you; if you end up converting PDF to Word often then dedicated software might be a good solution.
Mozilla will host a new open source project, called Tamarin, to accelerate the development of this standards-based approach for creating rich and engaging Web applications. The Tamarin project will implement the final version of the ECMAScript Edition 4 standard language, which Mozilla will use within the next generation of SpiderMonkey, the core JavaScript engine embedded in Firefox®, Mozilla’s free Web browser. As of today, developers working on SpiderMonkey will have access to the Tamarin code in the Mozilla CVS repository via the project page located at www.mozilla.org/projects/tamarin/ . Contributions to the code will be managed by a governing body of developers from both Adobe and Mozilla. “Adobe’s work on the new virtual machine is the largest contribution to the Mozilla Foundation since its inception,” said Brendan Eich, chief technology officer, Mozilla Corporation, and creator of JavaScript. “Now web developers have a high-performance, open source virtual machine for building and deploying interactive applications across both Adobe Flash Player and the Firefox web browser. We’re excited about joining the Adobe and Mozilla communities to advance ECMAScript.” “This is a major milestone in bringing together the broader HTML and Flash development communities around a common language, and empowering the creation of even more innovative applications in the Web 2.0 world,” said Kevin Lynch, senior vice president and chief software architect at Adobe. “By working with the open source community we are accelerating the adoption of a standard language for creating and delivering richer, more interactive experiences that work consistently across PCs and mobile devices.”
Hopefully this will have an influence on the other browsers too and push them towards powerfull and standard compliant JavaScript implementation. I just can’t wait to see it in action :)

Animation.js, keep it short, keep it simple!

Christian Decker wrote this late at night:
Programmers love inheritance, they name their children like inherited classes, they implement interfaces and do other nasty things involving parent relations :P Not all of them: Bernie Sumption hates inheritance.
I was putting together my new home page the other day, and decided that the chicken could use some lipstick in the form of one of those new-fangled animated accordion widgets. I checked several different libraries and found them all to be lacking. In particular, they don’t seem to realise that inheritance is evil, and must be destroyed. By providing base classes for an effect and requiring users to subclass it to make new effects, they create a proliferation of classes and make it too hard to create new effects that the library designer hasn’t thought of (scriptaculous gets round this by thinking of every effect you might want, which is why it is so large).
Being a developer that loves a good challenge he simply made his own animation library: Animation.js. The code you get is very minimalistic and … beautiful. Programmers love not having to write too much, they hate verbosity, so keep the code they have to write short and they’ll love you :D
 
ex2 = new Animator({
     duration: 1200,
     interval: 400,
     onComplete: function() {$('ex2Target').innerHTML += "Bing! ";}
 })
 ex2.addSubject(updateButton);
 function updateButton(value) {
     $('ex2Target').innerHTML += " Badda ";
 }
 
ex13 = Animator.apply($('ex13Button'), "background-color: #3F9"); // ta da!

Projax

Christian Decker wrote this around lunchtime:
The guys over at NGCoders have just released version 0.2 of Projax. It is basically a set of PHP Wrappers around Prototype and Script.aculo.us, ported directly from the Ruby on Rails helpers. It may speed up development significantly.
Check out the Demos:
I especially like the inplace editor which in my opinion is one of the most usefull features when developing Web 2.0 applications.

CSS hacks

Christian Decker wrote this in the late afternoon:
I know CSS hacks are just plain ugly and should be avoided at all costs, but sometimes its the best way to fix a problem with a certain browser. But will your hack affect other browsers too? If you ever wondered what other browsers will do with your hack there is a really nice reference: Will the browser apply the rule(s)?

Hands on DWR

Christian Decker wrote this mid-afternoon:
I’m so sad that I couldn’t see this speach:

Joe Walker (Getahead-DWR) and Bram Smeets (Interface 21-Spring) took a novel approach to their “Hands on DWR” talk at The Ajax Experience: Creating a game - “Multi Player Battleships” live in the session.

The concept was very well received - many smiles around the room when the idea was introduced. With Joe talking and Bram typing they took a pre-created boilerplate (configuration and some of the simpler tasks completed beforehand due to the time constraint) and turned it into a simple, but fully functional, multiplayer game.

I’m happy to report that I don’t have an awful lot to report regarding the complex inner workings of the application. Those familiar with DWR will find that the code contains few things unfamiliar or even ‘advanced’. As someone with only an intermediate DWR skillset - I had no trouble following the code Joe and Bram were creating. The final product was simple but functional - intentionally avoiding features that would improve the game but cloud the demo. Joe and Bram were able to hide from each other, fire, and even chat as they played. The code for the demo can be found here (near the bottom at the time of this post).

The most contested point was the use of “reverse ajax” to sync with the current server status at timed intervals. Reverse Ajax was introduced in v2.0 m1 (current stable release is v1.1.3) Concerns centered on potential security issues - Joe explained that they do as much as reasonably possible to stop malicious users, but in the end if you are a malicious user: there are many ways that you can bring the server down without DWR.

image stolen from this post on Joe’s blog where he also talks about the concept of developing the game live in a session

Especially because I’m currently using DWR for some minor projects and I just love it :)