Archive for September, 2007

Dojo on the iPhone conference slides

Thursday, September 27th, 2007

I recently had the opportunity to speak about Dojo on the iPhone at AjaxWorld West. The session was a straightforward, if not colorful, review of the current state of app development for the iPhone.

In preparing for the presentation, I needed to install several native applications in order to create high quality screenshots for my slides. As a result, I presented the audience with an overview of this information because there are a variety of useful development tools that require installation.

Because Christopher Allen gave a talk just prior to mine with an iPhone and iPod Touch Ajax overview, I dove right into specifics about the current issues and problems with iPhone development for Dojo developers. I wrapped things up by walking through a few working examples of Dojo-based applications, some optimized for the iPhone and others not. At the end of the talk, I promised a forthcoming, iPhone-optimized Dojo build that removes features and code for items not supported on the iPhone. We hope to have that ready in time for the 1.0 release of Dojo on October 31.

The press seems to have enjoyed the session, with Network World running a fairly lengthy article titled Unauthorized iPhone Apps Market Flourishes. I should make it clear that my talk focused mainly on pitfalls and frustrations that developers face, but the iPhone is by far the best mobile, open web, development solution on the market today.

Dojo Workshop Updates and the Grails eXchange!

Wednesday, September 26th, 2007

With the recent launch of Dojo 0.9 and the planned launch of 1.0 in late October, the SitePen Dojo training courses have been revamped and now focus exclusively on the new code base.

SitePen’s partnership with UK-based Skills Matter is allowing us to offer our 3-day Dojo training workshop overseas, several times, in the upcoming months.

  • London, Oct. 15-17, 2007
  • London, Nov 14-16, 2007
  • London, July 9-11, 2007
  • Denmark, July 15-17, 2008

On another note, and speaking of Skills Matter, the Grails eXchange is taking place October 17-19 in London, and I will be giving a brief talk on Dojo there as well. Skills Matter puts on a number of great training sessions and evening seminars, and we have high expectations for their first major conference. The itinerary includes a number of excellent sessions on Ajax and Comet techniques to be presented by Joe Walker, Jonas Jacobi, Scott Davis, Dave Crane, and Sven Haiges. As an event sponsor, SitePen is pleased to offer a £100 discount to all of our friends and clients. Please contact us for the promotion code and then visit Grails eXchange to register!

A Fine Line Between Abstraction and Obfuscation

Monday, September 24th, 2007

Introduction to Part 1

By the time you have written your abstraction layer, you have essentially written your own framework. Chances are, you are not a good framework writer, and it’s going to suck, and you are going to realize that one or two versions down the road and re-write it. © RedMonk in Java’s Fear of Commitment.

While there is a lot written on how difficult it is to write a good abstraction layer, there is very little advice on how to avoid the worst evil of the abstraction layer: obfuscation. As I scoured the internet looking for any discussion on this topic, my search results were a lot more sparse than I was expecting. There is a very succinct blog entry by Rhett Maxwell that turned up in my results that summarizes some of what I’d like to say in a single sentence: Most of the books out there that teach OO design talk about Abstraction, but they do not warn about Obfuscation at all. Its a shame.

And to those of you wondering why this type of obfuscation is a problem, let me clear it up. Obfuscation at its most harmless simply confuses people. Obfuscation at its worst makes people stupid. When the most brilliant programmer can no longer figure out how to get from point A to B, even though they are right next to each other, all their genius is useless.

JavaScript is incredibly susceptible to becoming accidentally obfuscated. In the next month or so, I want to go over various common methods of abstraction that I have seen widely used in JavaScript and discuss how and why they can lead to obfuscation.
(more…)

Dojo 0.9 Power Tools: <script type=”dojo/method”>

Friday, September 21st, 2007

Dojo 0.9 is a different beast than any Dojo before it. It’s smaller, it’s (much) faster, and it “feels” different in many ways. As Jon Sykes noted, “everything is familiar yet strangely different”. I could go on for hours about why dojo.query() is completely indispensable or how having dojo.behavior as a part of Core changes everything, but there’s some fun stuff up the stack too. In particular, new parser bears mention, and a bit of explanation. In addition to now letting you build instances of any class (not just widgets), it also lets you configure their behavior as well as their properties.

For a long time systems like Flex and Laszlo have had a corner on naturally mixing behavior with markup. HTML’s native <script> tag doesn’t provide any context, and worse, can’t provide a way to be triggered by a particular event or action (outside of proprietary extensions). Several use-cases are important:

  • Scoped execution
  • Event-driven execution
  • Attachment vs. replacement

In Dojo 0.9 we took a hard look at them and devised <script type="dojo/method"> and <script type="dojo/connect">. Lets take a quick tour and show how it makes writing event handlers natural, building new widgets a snap, and over-riding built-in behavior trivial.

(more…)

SitePen, Mozilla Foundation, Nexaweb Technologies, Redfin, & SnapLogic Announce Open Source Contribution of TurboAjax Group’s High-Performance Grid Widget to Dojo Foundation.

Monday, September 17th, 2007

PALO ALTO, Sep 17, 2007: The open source Dojo Toolkit is receiving a new grid widget thanks to the generous support and collaboration of the Dojo Community. The Dojo Grid is a key component for Ajax and web application developers because it is able to handle large amounts of information efficiently and intuitively. The companies in this relationship are making a financial and/or engineering contribution to improve and update the grid in time for the Dojo 1.0 release in October.

“We determined that Dojo needed a new grid widget and rather than starting from scratch, we approached the TurboAjax Group about making its feature-rich grid open source and part of the Dojo Toolkit,” said Dylan Schiemann, CEO of SitePen, Inc. “This grid benefits SitePen’s clients and is a great way to advance the Open Web.”

TurboGrid is a high-performance grid widget that was originally created to work with the 0.4 version of the Dojo Toolkit. The grid is being updated to work with the latest Dojo features and will now be an official part of the Dojo Toolkit.

“We couldn’t be more thrilled about moving TurboGrid to the Dojo Foundation. This is a unique opportunity where a collection of companies have come together to open source a quality component that is the key to building data-rich applications,” said Scott Miles of the TurboAjax Group.

The Dojo Grid Widget features integration with Dojo’s flexible dojo.data infrastructure, which allows multiple widgets and visualization components to efficiently access large volumes of data. The donated grid supports advanced features such as virtual scrolling, row and column locking, complex cell and row formatting and custom cell editors. The Dojo Grid will also include full accessibility and internationalization support.

“We’re both users of the Dojo Toolkit and supporters of the Dojo Foundation. TurboGrid is a great opportunity for the community to work together in moving Dojo to the next level,” said Coach Wei, CTO and founder of Nexaweb. “Being a strong supporter as well as adopter of open source and open standards, Nexaweb is pleased to contribute to this effort in making Ajax development more efficient, structured, and maintainable for the web 2.0 community.”

“Mozilla and the Dojo Foundation share a commitment to advancing the Open Web,” said Mike Shaver, chief evangelist at the Mozilla Corporation. “We’re glad for the opportunity to join with other contributors to ensure that there are great tools for building accessible, robust applications for the web.”

“Redfin had been looking for a grid widget that worked with Dojo for the new version of our real estate web application,” said Sasha Aickin, engineering manager, Redfin. “The opportunity to contribute to an effort and share development risk across the community is a key benefit of building our application with open source technology including the Dojo Toolkit.”

“This new Grid, coupled with the underlying dojo.data AJAX infrastructure enables an entirely new class of Rich Information Applications,” said Chris Marino, CEO of SnapLogic. “Our users are looking for ways to build applications on top of their SnapLogic data services that can more easily access and present their data, and Dojo 1.0 is a giant step forward.”

“This is excellent code and an amazing show of generosity from the organizations who made it happen,” said Alex Russell, President of the Dojo Foundation. “This is the most capable Open Source web-based grid component available anywhere, and it will form the backbone of applications for years to come. We couldn’t be happier that this donation is happening in time to include the Grid in Dojo’s upcoming 1.0 release.”

The Dojo Grid will be available in October.

About the Contributors

SitePen, Inc., based in Silicon Valley, focuses on building rich, internet applications that push the limits of the web. Its rockstar development team works obsessively to define the user experience while developing clean, functional applications for companies throughout the consumer, enterprise, and open source spaces. Online at sitepen.com.

Mozilla is a global community dedicated to building free, open source products and technologies that improve the online experience for people everywhere. We work in the open with a highly disciplined, transparent and cooperative development process, under the umbrella of the non-profit Mozilla Foundation. As a wholly owned subsidiary, the Mozilla Corporation organizes the development and marketing of Mozilla products. This unique structure has enabled Mozilla to financially support and cultivate competitive, viable community innovation. For more information, visit www.mozilla.com.

Nexaweb’s Enterprise Web 2.0 Platform is an application development and deployment solution that increases developer productivity by eliminating painful coding, improves IT efficiency through the re-use of legacy and SOA assets, and creates a more agile business by delivering secure, mission-critical applications over the Web. And only Nexaweb’s EW2.0 Platform is proven by more than 5,000 successful global deployments. Founded in February 2000 and rooted in the MIT community, Nexaweb is based in Burlington, Massachusetts. The company is privately held and funded by institutional investors. For more information, visit www.nexaweb.com or call (781) 345-5500.

Redfin is the real estate industry’s first online brokerage, currently available in the Washington, D.C. area, Greater Boston, the San Francisco Bay Area, Greater Seattle and Southern California. By combining maps, listings, tax records and analytics, Redfin has become one of the most popular brokerage sites. Customers who use Redfin.com to buy or sell properties earn a refund of most of the commission traditionally due their broker, and get full support in paperwork, offer presentation, negotiations and closing. Redfin has one of the highest customer satisfaction rates in the industry, and is the only brokerage with a 100-percent-customer-satisfaction guarantee. To give the Redfin service a try, visit www.redfin.com; or read our blog at blog.redfin.com.

SnapLogic is an Open Source Internet data services platform that uses the universal standards and technologies of the Web and applies them to the problem of data integration. SnapLogic transforms data into data services that can then be easily mixed and matched to satisfy any integration requirement. Online at snaplogic.com

TurboAjax Group, now part of ActiveGrid, is an Enterprise Web 2.0 solution for application developers. We enable the visual development and CIO-compliant deployment of web applications. ActiveGrid has a vibrant community with thousands of users as well as investors who include Mitchell Kertzman, ex-CEO of PowerSoft and Jean-Louis Gassée, ex-CEO of Be. Visit www.activegrid.com

The Dojo Foundation is a 501(c)(6) non-profit organization, founded to help promote the adoption of Dojo and to provide a healthy environment for JavaScript engineering of every stripe. Online at dojotoolkit.org.

Contact: Carrie Sackett, VP Operations, +1-650-968-8787

The Dojo Grid

Sunday, September 16th, 2007

The single, most asked question with the Dojo 0.9 release has been, “Where’s the grid widget?” We’re finally able to address this request with today’s announcement that SitePen, Mozilla Foundation, Nexaweb Technologies, Redfin, & SnapLogic Announce Open Source Contribution of TurboAjax Group’s High-Performance Grid Widget to Dojo Foundation.

For those of you familiar with the existing TurboGrid widget, you’ll be happy to know that the same great performance and feature set are currently being ported to the 1.0 codebase, with support for Dijit and all of the great features Dijit offers (CSS theming, a11y, il8n, dojo.data, etc.).

(more…)

Extending Dojo 0.9: Multipart Transfers

Tuesday, September 11th, 2007

The release of Dojo 0.9 on August 20th marks a return to our roots: fast and lean. As Alex mentioned in a previous post, the surface area of the API has been reduced. With this API refactor, things were bound to be left out, and rightly so. The “core” of Dojo needed to be lean so we cut out the fat. But cutting out the fat sometimes removes some useful functions that people use. Fortunately, Dojo 0.9 makes it easy to add features on to it with little hassle.

One feature that wasn’t ported to 0.9’s AJAX IO was multipart transfers. I stumbled across this casualty of the refactor while working on a side-project: a port of Eugene Lazutkin’s webui for OpenWRT from Dojo 0.3 to 0.9. webui is a configuration interface for OpenWRT that takes the approach of trying to do most CPU and RAM intensive operations in the browser rather than use the limited CPU and RAM of the router. For example, when you edit the rules for the router’s firewall, the firewall rules file is downloaded to the browser and dissected in JavaScript. This makes it very easy to add rules in the right places and delete the correct rule without tasking the router with this work. After you’ve modified the firewall rules to suit your needs, the file is re-assembled and uploaded to the router using a multipart transfer. Because of this functionality, multipart transfers are vital to this application.

(more…)

Conference Slides

Sunday, September 9th, 2007

Slides from our recent talks at the Ajax Experience and the Rich Web Experience are now available. Newly added talks include:

  • Standards Heresy: Dojo and the Rise of Open Web Pragmatism
  • Dojo 0.9: Faster, Leaner, and Dijit?
  • Comet: Low Latency Data Transit or Really Bad Pun?

The iPhone Screenshot Quest

Tuesday, September 4th, 2007

I speak at a number of conferences and am giving a couple of talks later this year about Dojo on the iPhone. Of course, giving a talk without being able to show demos is frustrating, but giving a talk without having high-quality screenshots is silly. There wasn’t a solution known outside of Apple until recently, and it is still a bit of a process, or I daresay a bit of a quest. These instructions are for Mac users… I’m sure the steps are pretty similar for Windows users as well.

(more…)