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: , ,

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.






Technorati Tags: ,

My IBM developerWorks series makes it debut

Ibm 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.

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: , ,

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.


Technorati Tags: ,

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: , ,

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: , ,

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.

  1. 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.

  2. 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: , ,

TIBCO GI Mashup Contest

Just thought I'd pass along that TIBCO is holding a mashup contest. There are a few simple rules:

  1. You've got to create it as a project in the latest version of GI, natch, though you can include other Ajax libraries.
  2. You've got to use PageBus, their open source Ajax message bus. Good for mashups, dontcha know.
  3. 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: , ,

Joe Walker/DWR Webinar

Joe Walker of DWR fame is giving a Tibco sponsored Webinar on July 19th entitled DWR "Reverse Ajax": Breaking the Web's Request-Response Barrier. For those of you who like to not just read about new technologies, but also hear, check it out. Requires registration.



Technorati Tags: ,

Plug: Integrating Agile and UXD

FYI, my company has just released a whitepaper on integrating Agile Development and UXD (User Experience Design), a subject of great interest to anyone developing Ajax/Web 2.0 apps. As the complexity and sophistication of our webapps increase, we have to rise to the challenge of making them easy to use. The whitepaper is an overview of some of the best practices and ideas from our own experiences of bringing our UXD and Agile Appdev practices together. Warning: the paper is free but requires registration (i.e. an email). So, if you are easily annoyed by this sort of thing, you probably don't want to click on the link above.

Technorati Tags: ,

GWT 1.4 RC Now Available

GWT 1.4 RC has been released. What's new? Just a sample:

  • Code generation is more efficient, maybe 10-20% smaller than in 1.3.
  • Improved loading code lowers load times by a third.
  • Lots of new widget enhancements, including the RichTextArea. Since a rich text editor seems to be a big requirement in lots of content managent apps, removing the need to drop in FCK or TinyMCE gets rid of a big debugging headache.
  • ImageBundle does the whole image concatenation thing for you. Basically, you glue all of your images into one image, and use CSS to clip just the image you want. That way you only have to do one image load instead of a few dozen for a image-rich app. Here's a post by one of the guys at Zimbra explaining what's involved in more detailed.

I'm especially excited by the new deployment options:

  • GWT RPC is no longer tied to exclusively to servlets. New modularized RPC server code makes it easy to connect GWT RPC to your choice of Java back-ends.
  • Adding GWT modules to an HTML page has been simplified: just add a <script> tag. You no longer need to use <meta name="'gwt:module'"> and <script src="gwt.js">. Just reference your module and go.
  • Cross-site script inclusion is now supported. The compiler produces a "-xs" (meaning "cross-site") version of your module's startup script that can be included without being restricted by the same-origin policy. Be careful, though. Including scripts from other sites that you don't fully trust is a big security risk.

All of those issues I've had with GWT just got solved. No more trying to plunk around trying to figure out why your module isn't loading in a different page on your site. or why it won't load on a third-party site. Also, integrating GWT with existing backend services was a bit of a hack; now replacing an existing interface with GWT becomes more feasible.

Here's hoping that all of the IDE folks, JetBrains, etc., update their GWT plugins soon to take advantage of the new features.


Technorati : , ,

JavaFX - Another Ajax Killer

Everyone is trying to kill Ajax. Apollo, Project Flair, Silverlight, on and on and on...but..Ajax...just...won't...die. Sun is giving it another try with it's JavaFX.

JavaFX Script takes advantage of the Java Runtime Environment's (JRE) ubiquity across devices and enables creative professionals to begin building applications based on their current knowledge base. It also uses Java technology's "write once, run anywhere" capability to help realize a future where consumers can access content whenever and wherever on any Java-powered device. JavaFX applications will run on JavaFX Mobile, Sun's software system for mobile devices also previewed at JavaOne, as well as desktop browsers (see separate announcement).

I think it must be something about Silicon Valley. I've been at enough events out there to know that people actually talk like this (as opposed to writing press releases like this). The doodoo gets especially deep around the time of JavaOne.

What is at the heart of JavaFX? A new scripting language "based on Java." Hmmmmm, dynamic languages good, statically typed languages bad. I guess when Richard Stallman embedded Lisp in GNU Emacs, he really started a trend.

Scripting is all the rage these days, with Groovy, BeanShell, Javascript and others filling an important niche. But I have to feel it's just a fad. There are good reasons to use statically typed languages, especially when developing large, complex systems over long periods of time. I just hope this doesn't mean we are going into a scripting craze ("We are so past Java and C#...") only to have the pendulum swing the other way ("We tried writing our system in Perl...never again. No scripting here.").

More on the bestiary of Ajax Killers later.


Technorati : , ,

Prototype 1.5.1 Out

Prototype 1.5.1 is now out. Looks like they put quite a bit more stuff in there than you would expect for a minor version number, in terms of bug fixes and new features. From their highlight list:

  • Incredible Selector speedup and full CSS3 support.
  • Full JSON encoding and decoding support and options for improved security.
  • Optimized Element#get/setStyle for cross-browser compatibility and speed.
  • Various String method enhancements and fixes.
  • The new Form#request method simplifies the common case of submitting a serialized form with XMLHttpRequest.
  • Many form serialization fixes-if you had troubles before, now they've been squashed.

It also looks like that whole JQuery/Prototype kerfuffle about a lack of good documentation has born fruit. Documentation is being written and updated on a far more regular basis.


Technorati : , ,

Echo2 Needs a Better Way for Third Party's to Contribute

There are two big dogs in the world of Echo2:

  1. NextApp (with Echo2 creator Tod Liebeck) which releases Echo2, Echo2Studio (Eclipse Plugin) and Echo2Extras (more components).
  2. EchopointNG (run by Brad Baker), a collection of more Echo2 components.

Aside from the fact that EchopointNG needs a real project web site of it's own instead of the Echo 1 stuff that's on there now, there is no easy way for developers to contribute components to Echo2. Right now you have to go crawling around the forums, looking for contributions in zip files. Someone should put together a contribution repository. I know that organizing and maintaining such a repository is no small thing, but components are the lifeblood of any component GUI. If Echo2 doesn't keep up with GWT, ZK, Tibco and all the rest, it won't matter how elegant its design, etc. Developers will go where the widgets are and two projects won't do the trick.

Maybe I need to step up to the plate. But I'd hate to have to drop it for lack of time. I need to think about this some more.

In the meantime, a new Beta 5 release of Echo2, Echo2Extras and Echo2Studio is out. A few fixes, many around IE6, and opacity-based fades for the TransitionPane component. The RC's for Echo2 are close.

Technorati : , , ,

GWT 1.2 Released (Is There a Roadmap?)

This past Thursday, Google released version 1.2 of the Google Web Toolkit (GWT). So what's in this release? Probably the most obvious change is the improved startup times and refreshes. Now the edit-compile-debug cycle is very speedy. Aside from this, what else is in 1.2? Well, lots of bug fixes. Lots and lots of bug fixes.

Even the enhancements look like bug fixes, e.g. Change the text of ListBox item: There is no method to change the text of a an item once it has already been
added, such as listbox.setText(index, newtext).

There are actually four major new features:

  • Full support for OS X development
  • Much faster hosted mode
  • New HTTP request module
  • Widgets in TreeItems

A speedier hosted mode is great, as I've already noted, as is support for the Mac and the ability to put anything at all into a Tree widget. The HTTP request module comes from users requests for some more control of the XMLHttpRequest object on the client side. This will make it easier to integrate GWT with existing applications.

I'm filled with curiosity with what is planned for GWT with upcoming releases. I guess that's a key word, "planned." I for one would like to see a nice roadmap for GWT rather than the current vague waffling about. For one, I'd like to see other transport mechanisms supported, such as JSONP. For another, I'd like to see better support for testing with tools such as Selenium.

Technorati : , , ,

JQuery Widgets and the Widget Challenge

JQuery is rapidly becoming my favorite Javascript library. With it's ability to pack a complex operations into a single line, it sometimes feels a little bit more like Perl than Javascript.

JQuery allows for plugins, so you can build widgets and extensions on top of it that will work with one another. As of right now, there are already quite a few widgets and extensions built on top of JQuery:

  • ThickBox - modal dialog widget built on top of JQuery.
  • jCarousel - plugin for horizontal or vertical scrolling of items.
  • jcarousel.jpg
  • Interface - large collection of plugin effects for jQuery, including draggable, dropabble, etc. A must visit site. Also includes a list of plugins developed by other developers (some of which you will also find in this post).
  • Date Picker - standard date picker.
  • JQuery Portlets - based on the above Interface plugins, a draggable portlet interface. Very slick.
  • jqueryportlets.jpg
  • Dylan Verheul's autocomplete, editable, autohelp and google maps plugins.
  • PanView - drag an image around in a little view port.
  • YShout - a shoutbox (allows users to chat on your site or page).

I haven't seen a rich text editor yet, or the FishEye widget. The main jQuery site has an extensive list of plugins, including the above and more.

Feeling the pressure from Dojo, the JQuery guys have issued a challenge to the developer community to come up with new widgets based on JQuery:

Dojo released a new widget today: a spreadsheet widget. and it ocurred to me that while we don't quite have anything like that yet, there are scattered widgets throughout the jQuerysphere. I figured it'd be nice for us to put together a jQuery widget package that, to the extent possible, mirrors the Dojo widget set.

The challenge is this: where there is no existing widget, create it. The holy grail, at this point, would be a replication of their spreadsheet widget or their rich text editor widget.

I'd like to put together the widget pack at some point in the next month, and I'll be featuring the widget pack in next month's Magazine. Theere's nothing requiring an exact mirror of the Dojo widgets, so feel free to submit widgets that are not present in Dojo.

A little friendly competition is a good thing. I look forward to more JQuery based widgets being developed and Dojo following suit. While you're at it, check out the powered by JQuery button challenge. Winners get Ajax books. Cool beans. You can never have too many Ajax books.

Technorati : , ,

Echo2 Creator to Speak at JAOO Conference

Echo2 creator Tod Liebeck will be speaking at the JAOO conference in Aarhus, Denmark on October 3rd, 2006. (See here for the time and abstract.)

The 45-minute presentation will offer a brief introduction to Echo2, and a discussion of the architecture and its capabilities.

For those of you not in the know (like me until this moment), JAOO is a non-commercial, non-academic annual conference in Europe for Java and Object Oriented developers. It looks pretty cool. I just wish I had known about it ahead of time.

Technorati : ,

Contact Us
ajax@pathf.com

Pathfinder Development Careers

Search


AgileAjax RSS Feed

AgileAjax Email Feed

  • email feed

    Enter your email address:

    Delivered by FeedBurner

Categories