Day 2 was easily the most information packed and exciting of the 3 days.

IE8 was a Sponsor this year, yet their involvement was still quite small in the conference. They did have several speakers, but you can tell the conference is still being driven by the Sitepen (Dojo), Google (GWT, Chrome) and Mozilla (jQuery, etc) groups.

Faster then Light JavaScript

The opening talk was from Brendan Eich. Brendan is in a strange situation where is his the master and overlord of JavaScript, yet you can tell he’s a bit more intellectual then the typical JavaScript guru. He focuses a lot about lower language constructs and less about closures and the like, which is just kind of weird.

 

  • Tracemonkey
    • Incrementally Rewritten to be much faster
    • Now fast as almost anything.
  • V8, SpiderMonkey
    • Both are very fast and really good codebases.
    • Getting Close to C Speed
  • IE
    • Seaworthy (Showed picture of a beaten down houseboat)
    • Kind of missing in the JavaScript performance arena. 
  • Whats it all mean?
    • Browsers get near native JS Performance
    • Mobile browsers too, without sucking massive amounts of power
    • IE being guilted/pressured into getting better
    • Developers make your voices heard!
  • Canvas
    • Actual image processing capable
    • Ray Tracking Possible now, will be 3-4 times faster in 1 year
    • HTML5 Web Worker threads
  • On the Horizon
    • CSS Transformations
    • CSS3 Selectors
    • Border image
  • Trying to put SVG Back into the web (Though John Resig already voiced his doubts that without a hail mary miracle that SVG is pretty much a goner)
Analyzing Ajax Perf with IE8
I was very suprised that this was a Microsoft IE8 talk. It focused mainly on the new IE8 tools and how to use them to profile Ajax Applications.
  • Javascript Profiler in IE8! (Bet ya didn’t know that was coming)
    • Has an IE7 and IE8 Mode
    • Has an API with documentation on MSDN.
  • Native JSON Support
    • Global JSON object with methods to serialize and deserialize objects to and from JSON.
    • Great gains in performance with this object, 10x gain in Serialization, 3x gain in Parsing.
  • IE also has a good Script debugger with the profiler, which of course is 8 years late.
  • Check out more at the IEBlog
The Lightning Rounds
They had this new session setup this year where they have 10 different speakers with 5 minutes each. This was wonderfull, I wish they could do this for all of the sessions of the day so you can get a quick peek on whats going on.
  • Smushit.com – This tool will use different algorithims to shrink all the images on your site and tell you how much you could be saving with its version of your images instead. Awesome tool.
  • Dreamweaver – CS4 presentation, now has some serious JS abilities including native intellisense as well as third party library intellisense. 
  • Hacking Netflix – Bill Scott announced a new API for Netflix. He also showed off the Netflix blog which I’ve always been curious if they had one.
  • Interviewing JS Guru’s – He shows them code and asks them whats wrong with it. Really loves when the people see the XSS issue. Says finding developers with the never good enough Attitute is crucial. Also would like people to know about DNS, Page Caching, how CGI Works.
JSON SOA-Based Client/Server Application Development (slides)
A class based on Dojo communicating with the server REST style.
  • Dojo now has SMD’s (Simple Method Description – WSDL in JSON kinda) for Popular API’s. Allows you to instantiate an object with a supplied SMD and call methods on that remote service all from within Dojo. 
  • Full Rest Capabilities in Dojo for contacting these services
  • Dojo Secure
    • Framework for bringing together different services in a mashup
    • Adsafe
    • Not done yet, lots of work being put into this area of dojo.
  • No Premature Standardization
    • They don’t want innovation to be slowed by standards at this point.
This was a really content filled talk with many different areas being focused on, I ended up paying a lot of attention, understanding only half and getting notes on a quarter. 
State of the Browsers (slides available here)
PPK gave a talk about where we are with the browsers that was 70% relaxing, 30% informative. He started off going into the history of the browser wars, and then the maturation of the browsers through the years. 
  • NN4 and IE4 led to the browser wars of 96-99.
    • Divided the world, basicly you choose a browser and that was what you used. Now adays you choose a browser based mostly on the User Experience, but back then you choose it based on the features.
    • Deliberately incompatible. They wanted you to choose their browser because it had feature X and the other browser didn’t.
      • PPK said this didn’t work, I think he was refering to the fact that it didn’t work for us web developers, but it certainly worked for IE. 
  • These incompatibilities really hurt because if a site didn’t work, then it was the site owners fault. Even though the browsers made it so hard for site owners to get them to work in all browsers.
  • Ideology
    • MIcrosoft is EVIL!
      • Why? Just because. They built the better browser, they deserved to win.
    • Worst part of the browser wars.
  • IE Did deserve to win
    • IE 5 was a great browser, it had XMLHTTP.
    • Says nobody was using it at the time, though he wasn’t aware of the project I was on in 2000. 🙂
    • IE5 Mac did for CSS what IE5 Win did for Ajax, it really brought it to the forefront and showed it as a viable technology.
  • Browser Peace
    • Microsoft became complacent.
      • Quiet for 6 years!
    • Allowed other browsers to catch up
      • Firefox now 20-25%!
Here we got into some areas of the browsers  that are still really painfull.
  • Adding rules to Stylesheets
    • insertRule() for all but IE
    • add() for IE
  • Event Model
    • I’m sure you know about this already.
  • Ranges
    • Start / End container works in all but IE
    • Not possible in IE
  • Extensions
    • 99% of the extensions out there really suck
    • 1% are brilliant
      • :hover
      • innerHTML
  • Empty text nodes
    • We don’t need to iterate over empty text notes. Sucko!
    • Yet IE will sometimes display white space in the browser, so…
  • mouseenter/mouseleave
    • IE only extension
    • Great extension. The fact that all the JS libraries are including an implementation of it should tell the other browser manufacturers that we need this.
    • Not part of the standard, so not implemented.

I’m trying to get this out the door, so here’s some notes from the rest of the conference, very much abbreviated.

 

  • YUI Test was showcased. Check out more here.
    • Still looks a little more complicated then it should be.
    • I think John Resig mentioned a testing framework as a Firebug plugin. That sees like the way it should be.
  • Someone was using the tool Programmers Notepad, which seemed cool so I made a note of it.
  • UX Design for Ajax Apps
    • Design is how things work.
    • The Design of Everyday Things (Recommended Book)
    • Instructions don’t make things usable. 
    • Must do Research to determine usability.
      • Don’t ask customers what they want, find out what they do.
    • Universal Principles of Design (Another Highly Recommended Book)
    • Tool: Kuler – Generates color palletes
    • Don’t Pretend
      • Pretending to be the user means your pretending to be stupid, which just isn’t possible. Clients aren’t stupid in general, just when dealing with whatever you happen to develop/design.
      • Pretend instead to be the application.
  • Performance from Yahoo
    • Amazon did a test and added a 100ms delay to the loading of their site. They experienced a 1% drop in sales as a result.
    • Yahoo did another test, adding 400ms to their load time, they recieved 5-9% drop in full page traffic.
    • Google, same thing, +500ms to their load time, 20% fewer searches.
    • Get YSLOW! It was an overarching theme of the session.
    • Flush the buffer early if you can, gets the browser working while the server does the rest of its work.
    • Use GET for Ajax requests.
      • Only 1 TCP packet is sent with GET
      • Post sends a headers, and posts body seperately and has a lot more content.
    • Post-load components
      • Whats absolutely necessary to render the page?
      • User percieves site is loaded after site looks visiually loaded. 
      • JS can load in after site looks visually complete.
    • Pre-load components (3 Different types)
      • Unconditional: Google preloads its results images on the google search page.
      • Conditional: On search typing, start preload of images.
      • Anticipated: Anticipating new release? Start pushing out those images for the next release early so the users cache isn’t completely empty.
    • Avoid Filters (AlphaImageLoader)
      • Blocks Rendering of the page.
      • Increases memory consumption
      • New filter per usage, not per page.
      • Avoid completely if you can.
      • Use PNG8, works just fine, no grey background, but boolean transparency only.
    • PNG8 Does support alphatransparency, and in IE8 the alpha-transparent bits will show as completely transparent. Didn’t understand how to get this to work though, they were vague on it.
    • IPhone
      • Total Cache 1024k
      • 25kb limit on a single file no longer exists.
    • Look out for your users (Don’t hurt your users speed)
    • Harvest low hanging fruit
    • Balance features with speed
      • They explained this as, balance the perf budget.
    • Verify Assumptions!
    • Make Perf part of your process.
    • Measure and track results
      • Firebug
      • IBM Page Detailer
      • YSLOW
      • Gomez
      • Smushit.com
    • Ask Questions and Challenge answers
And thats the end.
I had so little time this year during the conference to get all this typed up that it just ended up dragging on. Hopefully I can fix that next year.
2 comments

2 Responses to “The Ajax Experience: The Rest”

  1. John Taylor Says:

    I found your blog on Google. I’ve bookmarked it and will watch out for your next blog post.

  2. Kris Gray Says:

    Ahh man, your gonna make me start posting again!

    Okay, since your following me, I guess I should whip something up for you to read.

Leave a Reply