Learning the Yahoo! User Interface Library - Book

Tagged:  

I've been looking at a book from PACKT Publishing about Learning the Yahoo! User Interface Library. The book is one of the few good books available on the YUI. If you are like me you enjoy reading blogs for quicker reads, but for in-depth reads you find a traditional book better.

The book takes you from installing the YUI and and Code Placement through Ajax calls and Drag and Drop events. Learning the Yahoo! User Interface also takes you through debugging the YUI way and using content containers and tabs (just to name a few more topics).

Each chapter goes over a small example project about the topic of the chapter. For example Chapter 7 talks about navigation and AutoComplete with code for navigation options and a nice AutoComplete example. The book is well written and has an easy to follow format.

You can read the full table of contents here.

One thing that is really nice about books written by PACKT Publishing on an open source project is that they pay a royalty to the open source project. So, you not only get to learn about the open source project, but you also support it with the purchase of the book.

This book is a must for anybody that is interested in implementing a project with the YUI JavaScript library. I would recommend it for those of you that are new to YUI and even to those who have used it for a while.

You can purchase the book here (available in traditional and e-book formats).

If you want to see a fun application written with YUI check out World of Solitaire (watch out, you can spend quite a bit of time playing it!)

Day Two Summary @ The Ajax Experience

Tagged:  

The second day of The Ajax Experience is behind us and it was even better than the first. It all started off with a keynote by Brendan Eich as I described earlier. After that, I attended a session titled “Struts on Ajax: Retrofitting Struts with Ajax Taglibs” where my take-away was to not use Ajax Taglibs, ever. Then came the lightning rounds, which were a great way to get a wide variety of information in a short amount of time. After the lightning rounds, Microsoft had a keynote that covered Microsoft’s JavaScript developer tools, namely Visual Studio 2008 and Visual Web Developer 2008. There was also talk of the new IE8 developer toolbar, which is a great big step in the right direction for Microsoft. Strangely, the developer toolbar will be shipped with all instances of IE8. It includes features like:

  • DOM & CSS inspection
  • Live Editing
  • JavaScript debugger and profiler
  • Multiple Document Modes

I really enjoyed Joe Walker's "Advanced Web Application Security" session, where he covered a variety of security issues and complete solutions to help increase security. This is another great session to view once the videos are posted online.

Next up I attended back-to-back sessions by John Resig on Advanced jQuery and Visual Programming with JavaScript. These were two of the best sessions of the entire conference. Clear and concise lectures, chalk full of practical solutions and answers to complex problems.

The last session of the day was the "Ask the Experts Panel", moderated by Ajaxian.com co-founders, Ben Galbraith & Dion Almaer, featuring Brendan Eich, Douglas Crockford, John Resig, Joe Walker and Dylan Schiemann. There was some great discussion on JavaScript engines, Browsers, HTML5, ECMAScript, and more...

That's all for today! I'm looking forward to tomorrow for some more informative sessions.

Lightning Rounds at The Ajax Experience

Tagged:  

We had a great session today that was comprised of 10 “lightning rounds” each lasting about 5 minutes.

Topics included:

  1. Smushit.com – a web based tool that automates image optimization. You specify a URL, or batch upload images and smushit can greatly reduce the file size of your images without sacrificing any quality. A Firefox extension also exists to allow you to easily optimize the images on any page you visit.
  2. Adobe Dreamweaver CS4 – the latest web development tool from Adobe, which was just recently released. You can expect to see some great new features in this version, including:
    •    Workspace customization – coder, designer, compact preset workspaces
    •    JavaScript intellisense and validation, including advanced intellisense that works with any JavaScript library or custom JavaScript classes and objects.
    •    Live Code view – let’s you see changes to the document in real-time as you interact with it.
  3. Comet – discussed technique for Ajax push asynchronous message delivery from the server to the client
  4. Firebug. Enough said, if you don’t know what it is, go here.
  5. Making web apps faster – Steve Souders discussed manual vs. programmatic scripting to time web pages using Episodes, a proposed framework. Read more about Episodes.
  6. Hacking Netflix – Netflix API to be released soon (this week), more info will be available at:
  7. Interviewing JavaScript Gurus.
  8. 280 Slides / Objective-J , a strict superset of JavaScript
  9. shiftspace.org – client-side JS and interface
  10. milescript.org – new language that compiles to JavaScript, intended for large scale (enterprise) JavaScript solutions.

Day Two Begins at The Ajax Experience

Tagged:  

Tuesday morning here in Boston started off with a keynote by Brendan Eich, CTO of Mozilla and creator of JavaScript. The title of the session was “Faster than Light JavaScript”, where Brendan discussed JIT compilation of JavaScript in the browser and the performance gains we can expect to see in the future. In particular, a new JavaScript engine code-named “TraceMonkey”, based on the SpiderMonkey interpreter and the Tamarin-Tracing VM, is set to be released with an future version of Firefox.

Read more about TraceMonkey here

TraceMonkey is one of many current JavaScript engines, listed below:

  1. JavaScriptCore: The engine that powers Safari/WebKit (up until Safari 3.1).
  2. SquirrelFish: The engine used by Safari 4.0
  3. V8: The engine used by Google Chrome.
  4. SpiderMonkey: The engine that powers Firefox (up to, and including, Firefox 3.0).
  5. TraceMonkey: The engine that will power Firefox 3.1 and newer (currently in nightlies, but disabled by default).
  6. Futhark: The engine used in Opera 9.5 and newer.
  7. IE JScript: The engine that powers Internet Explorer.

John Resig wrote a good post earlier this month covering JavaScript performance in these engines, read it here.

Day One Summary @ The Ajax Experience

Tagged:  

As day one comes to an end, it's been a whirlwind of asynchronous requests, CSS Selectors, Chrome, performance and more as we flew through the Ajax Universe. We’ve seen some great comparisons between open source JavaScript frameworks, including the specific focus and goal of each framework that helps to differentiate them from the rest. We’ve also seen how frameworks are on a path of convergence, each with similar solutions to the same problems. However, the likelihood of a unification of the major frameworks is unlikely in the short term.

Of the three developer breakouts, I attended the jQuery sessions which were very insightful. I was surprised to see the growth jQuery has enjoyed over the last 4-6 months, but it’s not too surprising since it is an exceptional framework.

Another highlight of the day was Ben and Dion’s Ajax Universe session where they used created a script to sound a buzzer at random intervals so they would switch turns. This was hilarious and turned out to be a great idea. As they buzzed back and forth, they stepped through the progression of the web over the years, showing where we started and where we are today. Their slides and video should be posted online soon, just stay tuned to ajaxian.com.

Finally, we had a session titled “The Top 10 Cross-Browser Issues”. A panel of experts including Andrew Dupont (Prototype), Chris Heilmann (YUI), John Resig (jQuery), and Dylan Schiemann (Dojo) discussed how their respective frameworks handled browser issues. In particular, the discussion included the issue of browser user agent sniffing versus object/feature detection in order to create workarounds for browser issues. User agent sniffing has been the standard for all current libraries, but the next version of jQuery (1.3) will remove all browser sniffing and will rely solely on feature detection. John received some opposition from the other panelists about this approach, but was able to hold his ground and his vision of a more elegant approach for handling browser issues. John stressed that it is the responsibility of the JavaScript libraries to be good role models for coding practices and to encourage browser manufacturers to fix existing bugs instead of assuming that the developer community has already hacked around them.

The discussion continued around issues with the DOM API and the pain it can cause. Then we moved to a new topic: the influence JavaScript libraries have with the browser vendors (which seems to be getting better). The discussion was fast and insightful. I spoke with one of the staff here and was told that videos of the sessions will be posted online at some point. When they are posted, be sure to check out this session.

That’s all for today, it’s time to head to the Microsoft sponsored “Evening Event”!

Microsoft and Nokia adopt jQuery

Announced on the jQuery blog, and by John Resig here at the Ajax Experience, jQuery is being adopted by Microsoft and Nokia as part of their official development platform. Microsoft will distribute the framework with Visual Studio and will build UI widgets to run on top of jQuery. Nokia is looking to use jQuery to develop applications for their WebKit-based Web Run-Time. To make this news even sweeter, Microsoft and Nokia aren’t looking to make any modifications to jQuery (both in the form of code or licensing) - they plan to use it as-is. This is some very exciting news and we'd like to congratulate the jQuery team on this milestone!

Read the full post.

The Ajax Experience 2008 Begins

Tagged:  

The Ajax Experience 2008 is about to begin here in Boston. Developers from all over the world have gathered to hear about the latest and greatest from the land of client-side development. I'm attending the jQuery Developer Day session this morning where topics will include "Progressively Enhancing the User Experience Using jQuery" and "An In-Depth Look at jQuery UI". Conference presentations are available for download here.

WebKit Browser Passes Acid 3 Test

Tagged:  

The WebKit browser project, upon which the Google Chrome and Apple Safari browsers are based, has just announced that their browser has become the first browser to pass all of the Acid 3 tests.

The third revision of the Acid tests, promoted by the Web Standards Project as a way of ensuring browser compatbility with web standards, includes tests of the following standards:

DOM2: Core, Events, HTML, Range, Style, Traversal, Views
ECMAScript
HTML4
HTTP
Media Queries
Selectors (:lang, :nth-child(), combinators, dynamic changes, …)
XHTML 1.0
CSS2 (@font-face)
CSS2.1 (’inline-block’, ‘pre-wrap’, parsing…)
CSS3 Color (rgba(), hsla(), …), UI (’cursor’)
data: URIs
SVG

The Acid 3-passing version of WebKit is available as a download of the nightly build.

Java API for RESTful Web Services Now Final

Tagged:  

The Java API for RESTful Web Services, JAX-RS (also known as JSR-311), has been approved by the final ballot of the SE/EE Executive Committee.

JAX-RS allows you to use @GET, @POST, @PUT, @DELETE, and other annotations to describe RESTful style web services in a manner similar to the way that JAX-WS does for SOAP and WSDL-based web services.

The java.net project page for JSR-311 is here. The reference implementation is called the Jersey project, but other implementations exist in the Restlet framework, JBoss RESTeasy project, and Apache CXF project.

Toward Better Concurrency

Tagged:  

We've all heard the same story: the "free lunch" for developers is over. The exponential rocket ride of single-processor performance is no longer feasible, and in order to sustain Moore's Law, scaling out with more processor cores is now the convention. Developers eager to give their software a performance boost can no longer simply wait for the next generation of hardware; instead they must write more concurrent code in order to maximize utilization of the available CPUs.

But concurrent programming (at least as it is practiced now) is complicated, and many developers cringe at the thought of race conditions, deadlocks, contention, and other problems that await them in the murky waters of multi-threading...In many ways they are in the same situation that they were with memory management back in the 1990's (before garbage collection became mainstream). Is there a "silver bullet" for concurrency waiting out there as well?

In this article I will cover some of the current and potentially near-future approaches to handling concurrency, and evaluate some of the potential "saviors-in-waiting".

Syndicate content