- We design and build extraordinary applications for companies looking to make the next great idea a reality.
- learn more
ZK 3.5 Released with Comet Support
ZK 3.5, the latest version of the server-side Ajax framework, is out with a raft of new features. Three of those features really stand out for me:
- Comet server push
- Customization of look and feel
- Performance monitoring
Server push via polling has been available in ZK for a while, and Comet in the ZK "Enterprise Edition," but now it is available to everyone. And it is pretty easy to use: "The implementation of server push is transparent to developers. ZK chooses which implementation to use according to the edition of ZK automatically, but it is configurable."
Customization of look and feel has gotten much easier. ZK has followed the example of a number of other frameworks in styling its widgets with predictably named CSS styles. Changing the look and feel of an application is now as easy as changing the ZK widget style sheet. Styles can further be overridden on a widget instance-by-instance basis.
Performance monitoring is perhaps the most exciting new feature. Client-side tools such as YSlow can guide optimization efforts and give you point in time performance snapshots. But critical applications need to be monitored and tracked end to end over their lifespan. With ZK 3.5, you now have the plumbing to instrument your application to capture five data points for each request:
- T1, the time browser sends a request to server
- T2, the time server receives a request
- T3, the time server sends a request to browser
- T4, the time browser receives a request from server
- T5, the time the browser finishes processing a request
ZKStudio 0.8.2
There's also a new version of ZKStudio for Eclipse out. The major change is that it now supports auto update via http://studioupdate.zkoss.org/studio/update
Topics: Ajax Frameworks, Announcement, ZK
“Ajax Overhaul, Part 3: Retrofit existing sites with jQuery, Ajax tabs, and photo carousels” Up on IBM Developerworks
Part 3 of my colleague Brian Dillard's series on retrofitting your web site with Ajax is now up on the IBM Developerworks site.
In this installment, you'll tame unmanageable product-details pages by placing content inside a tabbed interface. You'll also keep product images under control by displaying them in an image carousel. You'll learn how to employ both techniques using simple Dynamic HTML (DHTML) or more complex Ajax code. Either way, you'll again use the principle of progressive enhancement to keep your pages accessible even when JavaScript isn't enabled. To accomplish all this, you'll use two additional jQuery plug-ins: jCarousel for image slideshows and jQuery UI Tabs for tabs.
You'll also want to look at parts 1 and 2.
Topics: Ajax Development, Announcement, jQuery
jQuery Release 1.2.6: Performance Improvements and Dimensions Plugin Added to Core
A new release of jQuery is out -- 1.2.6, skipping directly from 1.2.3. Most noteworthy are the performance improvements (you can check out the detailed performance data via this Google Spreadsheet). The headlines on improvements:
- Event handling: 103%
- CSS selectors: 13%
- .offset: 21%
- .css: 25%
Lots of other fixes, but the most important, IMHO, is the inclusion of Brandon Aaron's Dimension's plugin -- cross browser support for find element dimensions, offsets and positioning -- in the jQuery core. Check out the release notes here.
Topics: Ajax Frameworks, Announcement, jQuery
Upcoming Conference: FITC Chicago 2008, June 22-23
Another Chicago area conference coming up: FITC Chicago 2008, from June 22-23 at the Chicago City Centre Hotel & Sports Club, 300 E. Ohio. We're even supporters.
So what is it beyond the platitudinous "design and technology" event?
Obviously there's going to be lots of talk about how to develop Flex and Flash applications. Also how to develop online/offline apps with Adobe Air. Heck you'd think Adobe was a sponsor.
If designing RIA's with Flash/Flex/Air is your thing, you want to be here. It's not free, but based on last year's event, well worth the $125-$250 (depending on which sessions you go to).
Update: If you sign up here with our special ninja supporter code of PATH15, you get 15% off.
Topics: Adobe, Adobe AIR, Announcement, Conference, Design, Flash, Flex, Web/Tech
The Blogs Have Moved
After laboring away on Typepad because it was easy and, frankly, we had more important things to do, we have finally made the move to our own in-house blog. It now sits under the web site at http://www.pathf.com/blogs/ and combines our various blogs -- Agile Ajax, UXD, Business Rules and Techdev. You can still access all of the sub-blogs individually through their feeds and category pages.
If you run into any issues (which I'm sure you will, given the contortions we had to go through to deal with Typepad's funky url's), drop us a line at info@pathf.com.
Topics: Announcement
Upcoming Talk at RIApalooza: Fast. Smart. Agile. User Experience Driven Agile Development

Look Ma, no Powerpoint! My colleague Matt Nolker will be giving a talk entitled Fast. Smart. Agile. User Experience Driven Agile Development at the upcoming RIApalooza to be held at the Illinois Technology Association (ITA), 200 S. Wacker Dirve, 15th Floor, Chicago, on Saturday, May 31st.
The event has an interesting restriction: no Powerpoint. So no snooze fest sales presentations with endless bullet points. Since UXD (User Experience Design) has some visual aspect to it (you can only wave your hands and speak to a point for so long), we will be making due with "more primitive visual aids" as Tom Lehrer put it.
See you at the networking even on Friday.
Upcoming Talk at AjaxWorld East - Saving Your Investment: Transforming J2EE Applications into Web 2.0 Using GWT
For those of you interested, I'll be speaking at the AjaxWorld East 2008 conference in New York. I'll be looking at the messy underbelly of converting an old Web 1.0 application into a Web 2.0 powerhouse using GWT. From the conference blurb
The pressure is on to keep pace with Web 2.0 entrants into the marketplace. Rewriting is expensive; adding AJAX widgets results in a complex, unmaintainable application. Both require you to hire scarce JavaScript developers. Google Web Toolkit - the SDK that allows you to write AJAX interfaces in Java - enables your Java developers to layer a desktop-like interface on top of your web app. Learn to analyze the service profile of your application, to change HTML views into XML or JSON services, and to resist opening security holes by putting state and control flow logic into the client.
That's right, I've got 45 minutes to describe GWT, run through the steps for analyzing an existing webapp, give a quick demo, then talk about security and other concerns. No sweat.
Technorati Tags: ajax, conference, gwt
Topics: Announcement, GWT, Java
IE8 Beta 1
Unless you've been stuck under a rock for the last week, you've probably heard about the IE8 Beta 1 release. My colleague Brian will have a post or two next week to dig under the surface and tell you what IE8 means to Ajax developers.
Topics: Announcement, Browsers, IE8
My IBM developerWorks series makes it debut

The first installment in my tutorial series "Ajax Overhaul" is now live at IBM developerWorks. The full title, and it's a mouthful, is "Ajax overhaul, Part 1: Retrofit existing sites with Ajax and jQuery: Improve your user experience and simplify your navigation with modal dialogs." Targeted at Ajax beginners, the piece walks through the steps of progressively enhancing a Web 1.0 shopping site with Ajax and DHTML using nothing but client-side code.
The hook for the entire series is this: "The user experience of most
web sites suffers from some common, fundamental flaws. Don't compound
those mistakes by layering Ajax on top of them. Instead, use Ajax to
fix those existing problems - and do so in a way that degrades
flawlessly."
This first installment focuses on modal dialogs. The forthcoming second installment will tackle tooltips and lightboxes, while the third installment will delve into navigational tabs and image slideshows. I'm hard at work on the fourth installment, which will cover Ajax-powered forms.
As a whole, the series is about 40% user-experience stuff and 60%
step-by-step technical instruction; for this first installment, that
those proportions are probably flipped.
My goal with this series was to show an introductory-level audience not just how to plug cool new technologies into existing web applications, but when and why to do so. A lot of technology tutorials teach developers how to play with shiny new technologies for their own sake. Instead, I wanted to show them how to meet user needs with whatever technology gets the job done. I'm looking forward to feedback from the IBM developerWorks audience so I can see how well my message comes across. There's a feedback form at the bottom of the article.
Topics: Ajax Development, Announcement
Google Summer of Code 2008
Got an Open Source or Free software project? Want some young, eager college developers to give you a boost? Then you should check out the Google Summer of Code. The details:
Over the coming months we'll be working with open source and free software groups to select hundreds of student projects from thousands of applications. Then, during the summer, we'll distribute millions of dollars in stipends to the students cranking out the code. Our goal is to increase the world's supply of open source software while providing young programmers inspiring, meaningful summer jobs.
Since the first Google Summer of Code in 2005, the program has had remarkable success. Last year we connected 900 students with more than 130 open source mentoring groups, including such prominent organizations as Dojo, Python, Samba and Ubuntu. Several past students are still contributing to their projects and many are serving as mentors in this year's program. Meanwhile, similar programs are springing up all over, including the Finnish Summer Code Program, the GNOME Women's Summer Outreach Program, the Season of Usability, and game publisher NCSoft's Winter of Code.
This year's Google Summer of Code promises to be the most successful we've ever held. We've extended the program timeline to allow students and mentors to discuss applications before settling in to write them, and we're continuing last year's tradition of announcing accepted applicants early to allow students more time to bond with their project communities.
We look forward to applications from organizations and students eager to participate. Applications for organizations open March 3 and close March 12; for students, applications open March 24 and close March 31. Coding will run from May 26 through August 18.
Note the appropriate use of the semicolon in the second-to-last sentence.
We're thinking of gettin us one of them thar summer of code students for one of our own Open Source projects: RSH.
Technorati Tags: announcement, google, summer of code
Topics: Announcement, Google, Open Source
ZK 3.0 Released
It's been a bit over a month and a half since ZK 3.0 RC was released and the ZK team has sure been busy. The list of new features is long, but has a surprisingly large number of them are new from RC1 to final:
- The performance of ZK is much improved - four ~ five times faster.
- Server push (really polling) is enabled which allows you to update client’s information actively and the usage is simple and intuitive.
- The ZK Layout component which simplifies the job of UI designer.
- Customize layout of ZK components using CSS definitions.
- Add forward and apply properties to realize MVC approach more easily.
- SimpleListModelSharer - integrates server push and ListModel allows you to update data of clients based on the same data automatically.
- New expression of annotation is ease of use, and easy-to-read.
- TreeModel is introduced which simplifies the job of Tree rendering.
- Flash components allow you to play audio and video files. (including youtube clip)
- Native namespace is implemented to speed up the performance while integration with HTML.
- To speed up the performance of ZK, EL evaluator is pluggable, and a new way to render ZK components is introduced.
- More integration with other frameworks, ZK has integrated with JSF, JSP, and Ext-JS.
I find the addition of the layout component interesting. It seems that everyone from GWT, Tibco GI, Ext JS, etc., is moving toward the programmatic model of layout, i.e. DockPanel and so on. In fact, several of the Web 1.0 frameworks have been doing this for a while now, and of course the desktop GUI frameworks have been doing that since the stone age, so the wheel does seem to get reinvented again and again.
I do think that CSS, while giving you fine-grained control, can be a bit unwieldy for day-to-day use. Being able to stuff widgets into containers and have them handle layout is very tempting and convenient. But note the presence of fine-grained layout managers (GridBag anyone?). In my many years of developing applications, I've seen projects sink under the weight of getting everything within a pixel of perfect. Under those circumstances, fighting with CSS through the damp blanket of a layout manager is torture indeed.
P.S. ZK Mobile 0.8.7 was also released and is now compatible with ZK 3.0.
Topics: Ajax Frameworks, Announcement, ZK
Aptana 1.0 Released
Since Aptana, the slick IDE/Eclipse plugin came on the scene in 2006, it has been making steady progress, adding new features on an almost weekly basis. Now they have finally released 1.0. What's new in 1.0?
- CSS Preview
- HTML, CSS, and JavaScript Formatting
- Code drag and drop
- Visual ScriptDoc Explorer
- Enhanced Dynamic Help System
Two of the major changes? First, they have changed the name to Aptana Studio. Second, they have done that all too familiar split between "Community" and "Professional" editions. Right now it looks like your $99 intro price ($199 later) buys you a few more things beyond the free community edition:
- JSON Editor
- Internet Explorer Debugging
- Remote Project Creation
- FTPS and SFTP Support
- Reporting Engine
You also get priority support and access to prerelease and nightly builds. These dual edition splits have worked in the past, as long as the "free" edition was not too far behind the "pro" one. It is a delicate balance, making the pro edition tempting enough without giving the free edition's users the feeling that they are getting screwed.
Technorati Tags: ajax, ide, aptana
Topics: Announcement, IDE
Echo3 Update: SVN, Wiki, Forms, Builds
Echo3 is showing a few more signs of life. Since my update last month on some early details of Echo3, the pace has picked up. No alpha release, but already there are two forums, one especially for folks looking to contribute to Echo3 development. Also, a few other things worth mentioning about Echo3:
- The SVN repository can be found at svn://svn.nextapp.com/echo3/trunk (Echo3Extras are at svn://svn.nextapp.com/echo3extras/trunk).
- If you just want the binaries (or binaries with source), the Echo3Go project is handy.
- Initial performance numbers of Echo2 vs Echo3 show a more than 2x improvement in performance.
Further, a more detailed description of the new features, design principles and ideas behind Echo3 can be found on the wiki. Two items that are especially interesting for those looking to write their own components:
- Automatic Serialization: Data objects sent between client and server can be automatically serialized between Java, XML, and JavaScript. The serialization architecture is extensible--serialization code for new object types may be added by the developer.
- Simplified Client/Server Synchronization Peers: Serializing components and commands between client and server is performed automatically using the built-in serialization architecture. The component developer only need specify which properties should be sent (for components, all local style properties are automatically sent).
Serializing and deserializing data between client and server can be one of the more timeconsuming and error prone parts of developing Ajax apps. Packaging this into the framework with improve productivity at the very least.
Technorati Tags: ajax, echo3, echo2
Topics: Ajax Frameworks, Announcement, Echo2, Echo3
ZK 3.0 RC Released
One of the enduring criticisms of ZK, the server-side Ajax framework, has been against its perceived slow performance. Critics have observed, and supporters have conceded, that applications written with ZK seem a touch slow. So it's no surprise that a major focus of the latest major release has been improved performance. The ZK team found two major bottlenecks in performance testing:
After a series of stress test and reviewing the kernel code, we found out 2 bottlenecks on ZK 2.4.1 and fixed them in ZK 3.0 RC.
- The executing time is too expensive when rendering components. ZK uses templates to render components, and the EL is generally used in templates to simplify the variable access and templete maintenance. However, when the concurrent access rises to a large number, the overhead on rendering component with EL is too heavy.
- Threads spend too much time on waiting the synchronization when many threads access to the same cache under current cache mechanism.
ZK 3.0 RC solves these 2 bottlenecks by using the renderer class and new cache mechanism. The test result shows ZK 3.0 RC is four ~ five times faster than ZK 2.4.1.
I haven't validated these performance figures myself, but an initial comparison between some demo applications confirms a much more responsive user experience.
ZK 3.0 RC has also added a number of other new features:
- Server push is enabled which allows you to update client’s information actively and the usage is simple and intuitive.
- Add forward property of components to forward event without programming.
- New expression of annotation is ease of use, and easy-to-read.
- TreeModel is introduced which simplifies the job of Tree rendering.
- Flash components allow you to play audio and video files. (including youtube clip)
- Native namespace is implemented to speed up the performance while integration with HTML.
- To speed up the performance of ZK, EL evaluator is pluggable, and a new way to render ZK components is introduced.
- More integration with other frameworks, ZK has integrated with JSF, JSP, and Ext-JS.
Server push was already supported in ZK through use of the timer component, but the enhancements make it even easier (note: we're not talking comet, but rather client polling). Even more exciting for me is the dynamic loading of ZUML (the XML-based markup language for specifying ZK interfaces) pages dynamically from sources such as a database. That's very helpful if you want to allow non-developers to deploy interface changes without having to spit out ear or war files.
As usual, the ZK folks have done a good job documenting the changes and additions. It's too early to tell if 3.0 will solve all of ZK's previous shortcomings, but ZK is well on it's way to becoming my favorite server-side framework.
Technorati Tags: ajax, zk, announcement
Topics: Ajax Frameworks, Announcement, Server Side, ZK
TIBCO GI Mashup Contest
Just thought I'd pass along that TIBCO is holding a mashup contest. There are a few simple rules:
- You've got to create it as a project in the latest version of GI, natch, though you can include other Ajax libraries.
- You've got to use PageBus, their open source Ajax message bus. Good for mashups, dontcha know.
- You've got to subscribe stock or geotagging messages from TIBCO. Hmmm. So only geotagging and stock apps are cool?
Anyway, you can check out the details here.
FWIW, they need to work on the prizes. Plasma TV? IPod? All of the really good developers I know already have an iPod. And most of them don't want to watch more TV (though some do play video games). Those prizes don't motivate me at all.
What prizes should they have to tempt developers? How about a hydrodynamic building set, a dual WAN router or an ATA over Ethernet drive? At least consider and iPhone instead of an iPod.
Note: for those looking for Xmas gift ideas (Mama, Papa, Mucki, Karen), the etherdrive is way cool.
Technorati Tags: ajax, contest, tibco gi
Topics: Announcement
About Pathfinder
Recent
- A Look Back At Past Posts
- Flash Player on iPhone gossip
- Microsoft to Jump on Board EC2
- TAE Boston 2008: The Unsexy Presentations
- The Ajax Experience 2008: Hope to see you in Beantown
- TankEngine: New plugin for Rails iPhone Development
- Simphony of Ruby on Rails and Flex through RubyAMF
- “Build half a product, not a half-assed product” - tips on clarity and focus from Jason Fried of 37Signals
- Rails Performance, Code Metrics, and Locking Down your Application: Tips & Tricks from Windy City Rails 2008
- Betting Your Business on the iPhone
Archives
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006

