Web Info & Tutorials

December 4th, 2006

COMPRESSION, CACHING, FOR FASTER LOAD TIMES

Jesse Kuhnert, Tapestry/Dojo team member, spent time on caching and compression mechanisms in the effort to give the best experience “for free” with Tapestry.

The result was:

  • Browser Caching: Previous versions of the framework weren’t aggressive enough in the way that all of the bundled assets (images/javascript/css/etc) were managed with http headers. Though the Expires and If-Modified-Since headers were being used it wasn’t really the complete solution. All of these resources now have realistic / appropriate headers set depending on the type of content and browser being delivered to. (Etag / Cache-Control / Expires / etc) Things will probably still be undergoing more and more change as this section is refined but anyone currently serving this content from the core Tapestry jars (or their own) - with no other configuration - should see a significant performance boost with the added caching support.
  • Gzip Compression: The biggest (and scariest) change has been the addition of intelligently gzip’ing content where appropriate. Now all javascript/css/html content that is typically managed by Tapestry gets a good once over with some gzip compression to help make those responses as snappy as possible.
  • Much Faster load time: The overall load time for pages should be much better now. The bundled version of dojo with tapestry is now served at a size of roughly 50k - down from the default size of 200k.

I would love to see some benchmarks on the gzip compression side. I used to read that for smallish file sizes, and certain machines, and certain networks, the overhead wasn’t worth it.

Have anyone in the community done good work on when to gzip versus when not too?

December 4th, 2006

APPLICATION DEVELOPMENT WITH ECHO2 PLUS SOA

Mathew Brooks of RDF Group has published a summary of his experiences in developing mform — an Ajax-enabled mortgage application — using the Echo2 platform. Although fairly high level, the post is thought provoking and doesn’t just focus just on Ajax. With regard to best practices in using Echo2, he writes:

Whilst using echo 2 we discovered that whilst it was the most advanced tool for the job (at least when we started, which was before GWTcame out) we did find that we had to undertake the following:

  • Adjust some of the java script in widget peers where it was not quite performing as we expected
  • Subclass the echo 2 servlet to ensure that:
    • We can trap non java script type clients and present a “non javascript” type version of the page
    • We can present a more polished start up page rather than the ||| presented as default by echo 2
  • Some post back functionality does not work well with IE either under load or restricted bandwidth. Due to the way that IE polls for the post back other events on the browser were being missed.
  • Develop our own widgets where necessary if there was no suitable one available from echo or echopointNG

mform.pngBeyond Echo2, the application makes use of ServiceMix (the Open Source ESB), Spring, Hibernate and EJB3. It also integrates with a CMS — Hippo — for conetent management. I haven’t used ServiceMix myself, but I have used the Mule ESB myself (it has much better docs and tutorials, IMHO), and beyond the SOA help it provides, I’ve found it’s support for FutureTask very helpful for some of the asynchronous processing you see more of in Ajax apps.

Mathew’s analysis goes well beyond just Ajax, of course, with some thoughts on how to avoid the Anaemic Data Model antipattern, among other things.

December 4th, 2006

AUDIBLE AJAX EPISODE 19: THE TIBCO GI TEAM

Dion and I have long been impressed with the nifty, robust and very ajaxian UI magic that TIBCO brought to the Web with their GI tool… but we weren’t so excited about the nifty, robust price tag nor it being IE-only. As we covered a while back, TIBCO recently open-sourced their product — and not with one of those “pointless-entry-level-version free, useful version spendy” schemes, either. Given this news, and the recent port to Firefox, we thought it was high time to sit down with the TIBCO guys once again.

In Episode 19 (~28MB, MP3 format), we discuss:

  • What happens to the price of your product now that its open source?
  • Why are you open sourcing TIBCO GI now? Did you fail in the marketplace?
  • Just to be clear, can I use TIBCO GI to create something like Flickr, put it on-line, and never pay you anything?
  • What’s in the new 3.2 release?
  • What motivated your port to Firefox?
  • How hard was it?
  • What other browsers do you support?
  • How well did the VML code port to SVG?
  • How does the performance of TIBCO GI apps differ on Firefox versus IE?
  • What were some of the key shortcomings preventing Safari support?
  • How much of an impact will Firefox’s upcoming JIT make on your product’s performance?
  • You used SVG instead of Canvas to render your charts in Firefox; why?
  • TIBCO GI’s IDE environment is in the browser itself; why did you make that decision?
  • How does GI fit into the Ajax ecosystem? Why use it instead of one of the other Ajax frameworks?
  • How easy could I add Scriptaculous or Dojo to a GI app today?
  • How many different UI widgets do you have? What are some of the funnest widgets you’ve done?
  • What is the architecture of TIBCO GI app like What
    server-side platforms easily integrate with a TIBCO GI view?
  • Is GI meant to build desktop apps that happen to run in a browser, or
    to build web apps?
  • Do you support Comet-style architectures?
  • How extensible is TIBCO GI? Can I start creating my own widgets and incorporating them into the IDE?
  • How is the open source project being run? Who are the committers? To whom would I submit patches?
  • How good is your project’s documentation?
  • You mentioned “pixel-perfect” fidelity between IE and Firefox with TIBCO GI apps; does GI give you full pixel-level control?

We recorded the podcast at the same time we did the screencast that we released earlier.

December 4th, 2006

FIREBUG 1.0: PUBLIC BETA, STILL FREE, AND A LITE VERSION FOR OTHER BROWSERS

Joe Hewitt has been busy. We hit idolized the clannish builds of Firebug 1.0 beta, and he just prefabricated a clump of announcements:

  • Firebug is to rest free: Very big indeed. If you would same to hold development, ease analyse discover the donate button. Joe wants to be healthy to lease someone to ready the burner substantially and genuinely reddened as he focuses on Parakey.
  • Firebug 1.0 beta acquirable to all: I crapper not vexer grouping in the drink class some individual as I check them using 0.x and then exhibit them 1.0 beta.
  • Firebug Lite: The fatless edition is for IE, Safari, and every non-Fire-y browsers. If you poverty to hit the another browsers endeavor bright with console.log() then use:
    <script language=“javascript” type=“text/javascript” src=“/path/to/firebug/firebug.js”></script>

    and to unstoppered the housing by default:

    <html debug=“true”>
     

This is genuinely strange news. Download the plugin today and hit recreation with it!