Wednesday, July 22, 2009

Special offer for Visual Ajax Members from Partner The Ajaxian

Ajaxian.com's The Ajax Experience returns to Boston, September 14-16. The Ajax Experience (TAE) is the industry's premier conference for developers who seek to learn more about Ajax and advancements in rich Web development. Don’t miss 40+ experts present sessions on the future of Ajax and Web applications, including tracks devoted to frameworks, JavaScript, architecture, user experience, performance and scalability, cutting-edge Ajax and cross-browser issues.


SPECIAL OFFER!

We’ve partnered up with Ajaxian to save VisualAjax members an extra $100 off the registration fee! Simply register here with the code VISUALAJAX. Plus, register before July 31st to lock in $300 early bird savings.

Want to register, but can't make the July 31 deadline? Contact Tracie Berardi (tberardi@techtarget.com) and she'll reserve a spot for you at this great rate.

Thursday, April 9, 2009

Opening Up Platform as a Service

Platform as a Service (PaaS) offers a way to build and deploy applications entirely in the cloud. This market was pioneered by SalesForce and their Force.com PaaS offering.

PaaS offers the potential to democratize web development by enabling anyone who can use a browser to assemble and extend web-based applications. Yet early PaaS players, including Force.com, Bungee Labs, Google AppEngine and Microsoft's Azure, have introduced PaaS solutions that are remarkably proprietary.

A proprietary PaaS solution introduces high switching costs to move data or logic from one PaaS provider to another. For example, moving an application from the recently deceased Coghead to AppEngine would require a wholesale rewrite of an application written on one proprietary framework to another.

In short, customers adopting PaaS gain access to powerful new technical capabilities but at the cost of stepping back to the proprietary business models of 20 years ago. Surely the same market forces that have driven greater transparency in the enterprise software world will also prevail in the brave new world of cloud computing!


In talking with customers and analysts, WaveMaker has introduced the term Open PaaS to describe what the next generation of cloud development tools should look like. In our definition, Open PaaS solutions have four characteristics:
  1. Portable - customers must be able to run applications built using PaaS tools on multiple cloud offerings. PaaS offerings based on proprietary languages (e.g., SalesForce, Bungee, Coghead) lock customers into a single cloud provider.
  2. Based on open standards - customers must be able to leverage existing skills such as Java and Javascript to build applications using a PaaS tool. Offerings that are based on proprietary software stacks (e.g., Google AppEngine, Microsoft Azure) lock customers into a single cloud infrastructure.
  3. Available as open source - customers must be able to run applications created with PaaS in their own data center in an open source environment . SugarCRM pioneered the attractive concept of letting the customer "take their ball and go home." For PaaS vendors, it is even more important that customers be able to move a cloud app from the cloud to behind their firewall.
  4. Mobile-aware - increasingly, web enablement reaches beyond the desktop browser to smartphones from companies like Apple, RIM and Palm. Customers need PaaS tools that can deliver device-appropriate content and functionality. Effectively, this is an update of the old Java "write once run anywhere" mantra.
As the cloud evolves, it is inevitable that customers will demand more flexibility. With that in mind, WaveMaker recently became a supporter of the Open Cloud Manifesto, a very timely effort spearheaded by Reuven Cohen, CTO of Enomaly.

You can read the Open Cloud Manifesto here, but here is my take on the 6 principles of the Open Cloud Manifesto (the bold titles and italic comments are mine):
  1. Commit to cloud interoperability: Cloud providers should collaborate to solve standard problems (e.g., security, interoperability) in a standard way. At a minimum, this requires publishing the APIs needed to build interoperable security and other services across cloud providers.
  2. Eschew vendor lockin: Cloud providers must not use their market position to lock customers into their particular platforms. This goes to the heart of the problem. If you are at the head of the pack, why slow down and let others catch you? The answer can only be because doing so gives you access to a much bigger market, of which you are still at the head of the pack but with a smaller lead!
  3. Adopt existing standards aggressively: Cloud providers must use and adopt existing standards wherever appropriate. This will be much easier for new cloud vendors, who are starting from scratch, than existing cloud vendors, who built out their infrastructure before many of these standards existed.
  4. Minimize proliferation of new standards: When new standards are needed, Cloud vendors must be judicious to avoid creating too many standards. We must ensure that standards promote innovation and do not inhibit it. This shows great wisdom in the ways of the world. What are most standards bodies anyway but the effect to gain or preserve market share by non-market driven means?
  5. Focus new standards on actual customer needs: Any community effort around the open cloud should be driven by customer needs. This is another swipe at the self-serving approaches of many standards bodies. From a cynical perspective, we will know cloud computing is successful when its standards bodies become just as opaque and non-customer focused as other entrenched standards like Java ;-)
  6. Cooperate between standards groups: Cloud computing standards organizations, advocacy groups, and communities should work together and stay coordinated, making sure that efforts do not conflict or overlap. This is well-intentioned, but also seems to be saying "thou shalt have no cloud advocacy groups before me" (shouldn't that be commandment I?)
Just like that large collection of tubes called the Internet, this notion of Open Cloud and Open Platforms is here to stay!

Wednesday, December 10, 2008

The Cloud Is Angry and Other Lessons From Gartner

I attended the Gartner Application Development Conference this week and drank from the proverbial firehouse as Gartner analysts presented their vision for cloud computing

Anthony Bradley, the Web 2.0 analyst for Gartner, beat the drum for front end tools (mashup builders) to complement back end SOA systems. His take was "mashups take the benefits of SOA and make them visible to users - mashups are the face of SOA."

Mark Driver, the open source software analyst for Gartner, said that cloud computing is early in its maturity cycle. He said, "if the cloud were a child, it would be an angry two year old. The challenge for the industry now is how to make it through the terrible twos."

Mark also pointed out some big benefits for IT with cloud computing. "The cloud enables rapid application maintenance - iterating application functionality on a daily basis." The apps can change as quickly as the business situation changes, making IT much more of a real partner in business change rather than an impediment to business change.

Mark introduced the idea of a cloud development platform or platform as a service (PaaS), noting that in PaaS, the developer should never encounter the concept of a server. Instead, the platform abstracts all deployment complexity from the developer, making it ideal for business unit developers who don't have deployment resources readily at hand.

According to Gartner, the important criteria for a cloud development platform include:
  • Interoperability: how well does the platform integrate with other web assets like open id and google maps?
  • Collaboration: how well does the platform support source code control and social programming (Facebook meets SVN)
  • RIA & mobile clients: cross browser and cross smart-phone support. According to Mark, reach wins over richness - supporting more browsers is more important than supporting more widgets.
  • Legacy: ability to integrate with enterprise data, security and web services
  • Performance: ability to scale significantly with no additional effort/programming
  • Longevity: the market momentum of the platform vendor - will they be around in 3 years? The winner will be less about the raw technology and more about the quality of partners and customers the vendor has attracted.
This is a particularly interesting list for us at WaveMaker, as we just released the WaveMaker cloud development platform that does quite well against Gartner's list. In particular, WaveMaker scores highly interoperability, both of component and of applications. WaveMaker is the first cloud development platform to offer portability between the cloud and the data center.

Gartner believes that the market for cloud development tools is very similar to the 4GL market of the early 90s. They see many innovative vendors today offering unique/proprietary solutions, thinning out over the next three years to a handful of winners. Naturally we are doing everything we can to make sure that WaveMaker is one of those winners!

Thursday, October 9, 2008

Learn About Ext From The Master - Hands On Ext, Oct 16 @ 12PST

The next Visual Ajax User Group Meeting is entitled "Hands-On Ext" featuring Aaron Conran, Senior Software Architect and Ext Services Team Leader. Hands-On Ext is a fast-paced session in which we will explore how to build an Ext application in less than an hour. This session demonstrates how to get started using Ext JS and how quickly you can put together a simple application from scratch. Learn how to utilize Ext's high-level UI widgets like GridPanel, TabPanel and FormPanel instead of re-inventing the wheel. REGISTER HERE

Thursday, September 18, 2008

Kevin Hakman Presenting today, 9/18 at 12PST

Kevin Hakman, Director of Product Marketing, Aptana, will be presenting at the monthly Visual Ajax user group meeting on The End-to-End Open Web: Combining Cloud Computing and Open Source App Engines. Aptana has been a leader in making serious JavaScript development possible both on the client and on the server with their Jaxer product. This should be a great session!

If you want to join via webinar or in person, please send an email to: info@visualajax.org

As always, a write-up of the presentation will be available on visualajax.org afterwards.

Wednesday, September 10, 2008

Ajax Experience Conference in Boston 9/29 - 10/1

The Ajax Experience (TAE) will be in Boston, Massachusetts from September 29 - October 1. The conference agenda includes 40+ breakout sessions, keynotes, tutorials, tech demos, lightening rounds and excellent networking opportunities. TAE was created by Ajaxian.com in 2006 as the ultimate learning destination for Ajax/RIA developers.

  • Evaluate open source and vendor solutions in an unbiased community environment
  • Dive deep into frameworks and testing tools that make development easier
  • Get developers and designers working together and producing useable ideas
  • Balance Web 2.0 design and features with the need for speed and scalability
  • See how to make JSON, Mashups and SOA work for you
  • Make the case for Ajax and RIAs in your enterprise

View the conference agenda at-a-glance here. As a member of VisualAjax.org, use the code 'VisualAjax' to save an extra $100 off the registration fee. Reserve your spot by clicking here.

Thursday, August 21, 2008

WaveMaker in Top 10 Apple Downloads

WaveMaker was selected as a Staff Pick for the Apple download site, and broke into the top 10 Apple downloads today, edging out Google Earth for the tenth slot!

WaveMaker 4 features a Mac installer and the WaveMaker Ajax Studio runs best in the Safari browser (of course, to be fair, almost everything that runs in a browser runs best in Safari). 

WaveMaker's visual studio lowers the learning curve for building Ajax apps and greatly increases productivity over traditional hand-coded Javascript web clients.

WaveMaker uses a Model-View-Controller approach to building Ajax web applications, making it an ideal tool for developers who are familiar with Apple's xCode development tools (or any other visual development tool for that matter).

WaveMaker was also written up on the MacNN web site as a one stop shop for developing web applications. MacNN also particularly taken by how WaveMaker democratizes the development of web applications:
The folks at WaveMaker think big, calling their Visual Ajax Studio 4.0 web app development tool "a fundamental breakthrough" -- and they may just be right. In a demonstration for MacNN it took about three minutes to build a simple database web app -- something that traditionally takes a team of developers to manage the complex weaving of web and server functions. This could be especially good news for the growing number of Mac Developers, since WaveMaker is browser-based.

Tuesday, August 12, 2008

RIA is MIA

I recently read a good article on how Apple is fighting the drumbeat of proprietary browser plugins like Flash and Silverlight. Daniel Eran Dilger wrote a good article on how Apple's Sproutcore toolkit for JavaScript provides an alternative to flash for building rich internet applications. You can find out more about Sproutcore here. Daniel says:

Over the last year, I’ve outlined Apple’s efforts to starve Adobe’s Flash and AIR (and by extension, Microsoft’s me-too Flash plugin called Silverlight), at a time when pundits have insisted that Flash was a vital missing element on the iPhone and that Apple could/should/would be scrambling to port Flash to it. It might be a surprise to find that Apple’s air supply attack on Flash and its interest in dusting Windows with Cocoa are actually related.

Wednesday, August 6, 2008

What Google Can Teach Ajax Developers

With Google Gadgets, Google has arguably pushed Ajax scalability and testing harder than any other single vendor. But that was only the beginning. Adam Sah, architect of Google Gadgets, has been experimenting with using Gadgets to display ads. In June, 2008, he gave a talk on this work for the Visual Ajax User Group.

Google Gadgets are XML files that run inside an iframe on your web page, complete with embedded Javascript. The XML file itself is divided into 3 parts: module preferences, user preferences and content (html with inline css and javascript). SEOish has a good Google Gadgets tutorial for Ajax Developers.

The next logical step for Google is inserting gadgets into Google's ad infrastructure - introducing rich content ads, such as ads that show pictures of things for sale. Rich media also allows advertisers to combine branding with lead generation, giving them the best of banner ads and click-through ads.

Google gadgets themselves represent an interesting proving ground for Ajax technology. Incorporating Google Gadgets into adsense takes Ajax to a whole new level. Adam described "unpausing" an Ajax ad without the proper infrastructure in place as "a very fast way to do a denial of service attack on yourself."

Here are some of the lessons learned from working in the high volume world of Google Gadget ads:

  1. Relevancy trumps latency. Rich ad widgets can make multiple Ajax calls and take ten times longer to load (sometimes several seconds), but get a much higher click through rate. In a nutshell, this is why Web 2.0/Rich Internet Apps/Ajax are taking over from the old internet - people are willing to wait for content that is more relevant and interactive.
  2. Context is difficult. Because syndicated ads live in their own isolated iframes, it is hard to create context-aware ads. Of course, having a good WYSIWYG Ajax tool to build iframe applications could help!
  3. Scalability is a challenge. Every ad impression hits a database, so going live with an Ajax ad on a high volume site creates a huge amount of database traffic. This is even worse for ads which have a number of images. On the other hand, the size limit for a Google Gadget is 50K, which at least sets an upper limit on the damage you can do.
  4. Testing is difficult. When ads are created on the fly, it is literally impossible to test all combinations of content, browsers and interaction.

With Google Gadgets, a developer can create a Google ad that includes images and interactivity. The ad publisher gets to define what a "click" means within their gadget. Their incentive to cheat is low because if they don't have a way to measure clicks, they will never win a bid!

Adam also gave a good perspective on how Google fights the proprietary web (what Alex Russell calls the unweb) - with Gadgets and standards! People choose proprietary solutions when good open alternatives are not available. Google is trying to make it so easy and cheap to work with open standards that proprietary standards lose their appeal.

Thursday, July 24, 2008

Visualizing Web Services: WaveMaker and Xignite

Seth Godin, the marketing guru, defines a mashup as a distinct way of spreading ideas. In particular, Web 2.0 mashups allow developers to combine interesting data and then visualize that data through a web application. In practice, a mashup requires a data source and a web visualization platform.

WaveMaker and Xignite announced their own bit of mashup magic today.

Xignite provides financial data as a web service. Real-time financial data that would otherwise cost a minimum of $50K to access through Reuters or Bloomberg is available at a fraction of that cost through Xignite. These services can include foreign exchange pricing, commodities pricing and real time stock quotes.

The problem is that it takes a web application platform to call the Xignite web service, marshall the resulting data and display it in a web page. That's where WaveMaker comes in. With Wavemaker, a web developer can create a ticker widget that calls Xignite services in less than 5 minutes.

Click here to see the Exignite/WaveMaker ticker example. Click here for more Web 2.0 definitions.

Wednesday, July 16, 2008

Ajax Master Class Webinar Series

While there are many entry level tutorials on Ajax (and even more definitions of Ajax), there are relatively few advanced training classes for Ajax in general and Dojo in particular. Over the next 3 months, WaveMaker will offer a series of advanced courses on Dojo development.

Ajax File Upload/Download Master Tutorial
29 July 2008, 11am PT
Matt Small, Senior Software Engineer, WaveMaker

File Upload and Download in Ajax applications can be tricky. This tutorial provides introduction to upload and download widget configuration and their backing Java services. Advanced topics include writing uploaded files to a database and serving files directly from database content.

Debugging Ajax Applications With Firebug Master Tutorial
26 August 2008, 11am PT
Ed Callahan, Director of Technical Services, WaveMaker

Where there is development, there is debugging. In this session, we will discuss techniques for debugging issues commonly encountered while developing Ajax web-apps. We will use the Firebug add-on to Firefox to debug client side errors. We will also discuss the logging features available in the WaveMaker framework to diagnose server side issues.

Dojo Data Grid Master Tutorial23 September 2008, 11am PT
Steve Orvell, Senior Architect, WaveMaker
A grid is a fantastic way to view complex data at a glance. Whether it's data from a database, web service, or java service, WaveMaker provides a simple way to produce complex grids quickly. We'll review how to setup a basic grid and then dive into some advanced ways to manipulate the grid widget in WaveMaker.

Dojo Getting Greater Grids

The Ajaxian has a good posting on the new Dojo Grid Widget. The Ajaxian post points to a very detailed Dojo Grid tutorial from the SitePen Blog that goes into gory detail about how to work with the new grid widget in code.

At WaveMaker, we have found that creating a drag and drop interface for the grid widget is by far the most difficult task in building a visual tool for web application development. Having a more powerful grid widget makes our task easier!

Friday, July 11, 2008

Buzzwords 2.0: What is Web 2.0? What is RIA? What is Ajax?

The much-hyped but poorly defined terms Web 2.0, Rich Internet Application (RIA) and Ajax are best understood when they are defined together.

Buzzwords represent job security for entrepreneurs like me who would be practically unemployable were it not for our secret knowledge of the true meaning of words like Web 2.0. However, even I must admit that these Buzzwords 2.0 get in the way of clear communication.

In addition, while there are many standalone definitions of terms like Web 2.0, it is much easier to understand these buzzwords mean by considering them together. With that in mind, here are my definitions of Web 2.0, Rich Internet Application and Ajax, complete with helpful graphics:
  • Web 2.0 represents a market shift in consumer attention from expert-generated content (Yahoo) to user-generated content (Google)
  • Rich Internet Applications represents a requirements shift for more interactive, PC-like web sites to simplify consumer creation of content (Blogger, MySpace)
  • Ajax is an architectural shift to support RIA requirements
What is Web 2.0, What is RIA, What is Ajax

Definition of Web 2.0 - Shift In Consumer Attention

Consumer eyeballs still rule the web. The huge power shift over the last 5 years has been from expert-driven content (which could be created using expert tools like Adobe Dreamweaver) to user-driven content (which requires web based tools that are easy to use). The shift in consumer attention is also driving a shift in business focus as corporations look at ways to engage more effectively with their customers and employees.

Definition of Rich Internet Application - Shift in Web Requirements

In order for more people to participate in creating content for the Internet, the content creation tools have to be both simpler and more interactive. Rich Internet Applications seek to erase the difference in user experience between browser-based applications (Gmail) and traditional client/server applications (Outlook). A quick comparison of Gmail versus Outlook shows that RIAs have a big usability gap, but the Internet brings the offsetting benefit of dramatically simpler application distribution.

Definition of Ajax - Shift in Web Architecture

Ajax is an architecture which makes the browser smarter and more interactive by running Javascript programs on the client. Don't tell anyone, but the old name for putting logic on the client was fat client programming. Everything old is new again and it turns out the only way to make an interactive client is to do more processing in the browser.

The following diagram shows the fundamental changes between the Web 1.0 architecture (circa 2000) and the Ajax architecture.

What is Web 2.0, What is RIA, What is Ajax

Where is all of this leading?

Web 2.0 is driving new application requirements and in turn creating a demand for new development tools that can meet those application requirements. Building increasingly visual and interactive web applications requires a WYSIWYG Ajax tool - something like a Microsoft Access for the Web. Flex and Silverlight, Adobe and Microsoft are providing proprietary tools for building RIA applications.

For an example of an open-source tool for building RIA applications based on Spring, Hibernate and Dojo, check out WaveMaker . Download Wavemaker to see what a visual Ajax tool looks like! Wikipedia also lists a number of other Ajax frameworks for building RIA applications.

References
A number of others have gone before me in defining these terms individually. Jonathan Schwartz recently pointed out that Java has always had RIA capabilities (but he also admits they didn't work very well until recently). Here are my personal favorites definitions:

Tuesday, June 17, 2008

Cool PHP code generator for Ajax

AjaxCRUD is an open-source PHP API created by Sean Dempsey which allows you to connect to a mySQL database and easily perform the necessary CRUD operations (create, read, update, & delete rows). The web site doesn't say what Ajax library they are using, but looks like an interesting approach.

Monday, June 16, 2008

Webinar - Google Gadgets for Fun and Profit - 6/19 at 12PST

Want to know where Google is going with their popular Gadgets project? Join the Visual Ajax User Group webinar Thursday, June 19 at 12 PST.

This month's meeting will feature Adam Sah, Architect, Google Gadgets, on Ajax-enabled Widgets/Gadgets and Ads. Adam has been the founder and technical visionary behind 4 successful startups.

Adam will give you the inside scoop on how to develop new Google gadgets, use gadgets in your Ajax applications and demystify Google ads via gadgets.

Register for this webinar!

If you are in San Francisco, you can also register to attend in person by emailing rsvp@visualajax.org

If you missed our past meetings, here are write-ups:

Tuesday, June 10, 2008

Aptana Enters The Cloud

Ajaxian has a good first look at the Aptana Cloud product. The nifty feature here is the ability to deploy an application into a cloud computing environment as easily as publishing it locally. From Ajaxian:
When you click on the project under the cloud menu you are taken through a (very easy to use) wizard for configuration. This runs your through a few steps, setting up a site name, picking a payment plan (the beta is free), payment details and so on.
With some luck, we may be able to lure Kevin Hakman to present the Aptana Cloud to the Visual Ajax user group!

[UPDATE: Kevin will be talking to the Visual Ajax User Group on September 18!]

Friday, May 2, 2008

The dangers of the proprietary web

ZDNet has a good article describing a talk by Tristan Nitot of Mozilla, warning that:
companies building websites should beware of proprietary rich-media technologies like Adobe's Flash and Microsoft's Silverlight.

According to Tristan

the upcoming revision of the HTML specification would make it unnecessary to use proprietary technology. Nitot was speaking on the subject of "the dangers of the proprietary web". He described the nature of the web at the moment as open, but suggested that "proprietary solutions running on top of the web are trying to take over". Referring specifically to Flash and Silverlight, he said that "people depend on the vendor to provide them with the runtime.

This all may be true, but as long as Flash is the only way to get multi-media into my web app, the proprietary web will continue to gain ground over the laudable but less capable "Ajax" web.

Tuesday, April 29, 2008

The Case For WYSIWYG Ajax Tools

[This article is based on a talk by Scott Miles, WaveMaker architect and module owner for Dojo Grid, and Steve Orvell, WaveMaker engineer and core committer for Dojo, that they gave at the Visual Ajax User Group]

Ajax developers expect too little of their tools! Why do we put up with endless code/debug cycles with our favorite Ajax library just because there is no way to visualize a UI while you are developing it?

Imagine life without Firebug. Now estimate the amount of time you spend in Firebug just trying to figure out why a particular widget didn’t render the way you wanted it too. A WYSIWYG Ajax editor takes away a great deal of needless widget layout pain.



Just as importantly, a WYSIWYG Ajax editor provides a much easier on-ramp to learning Ajax programming, opening up a much larger market opportunity. Today, the perceived difficulty of learning Ajax can drive developers often choose proprietary solutions by default.

Until it is easy to build Ajax user interfaces, the ability to build rich internet applications will be restricted to only the most skilled developers. Broad adoption of Ajax requires easy-to-use, WYSIWYG Ajax tools.

Why Visualize Your UI?

Why do you want to visualize your UI while you are building it? As the client gets thicker, the interactions get more complex. As interactions get richer, the potential for wasting a lot of time coding grows. To torture a metaphor: in Ajax, a picture of your UI can save a thousand lines of code.

Alex Russell of Sitepen talked about saving ourselves from the unweb at the Visual Ajax User Group on the value of Semantic HTML for building Ajax apps. From our perspective, the semantic web may be coming, but it ain’t here yet (look here for more on the open web). In particular, HTML parsing and rendering can be slow. While other visual design tools may take different paths, the particular approach that WaveMaker chose was to use JSON (Javascript Object Notation) instead HTML/XML.

How a WYSYWYG Ajax editor works

A WYSYWYG Ajax editor is meant to make Ajax widget layout easy, without hamstringing the developer. The general things that any visual Ajax editor needs to be able to do include:

  1. Ajax page designer: the page designer includes palettes of widgets, a WYSIWYS page editor, and property inspectors to change widget properties.

  2. Drag and drop: developers can move widgets from the palette onto the page designer.

  3. Visual feedback loop: developers can see how their page will look and change widgets on the fly to see the effect on the design (e.g., sizing, positioning).

  4. Generate Ajax code: the Ajax editor generates the appropriate css, html and JavaScript to implement the design at runtime.

  5. Import/export widgets: there is a straightforward way to create new widgets and import them into the Ajax editor to create a robust ecosystem of 3rd party widgets.

Rules for making WYSYWYG-able Widgets

Ideally, a WYSYWYG editor should be widget agnostic – it should be able to support several different Ajax widget libraries. More importantly, people who build widgets should design the widgets up front for visual tool-ability. Good widget design can reduce or even eliminate the back-end coding needed to bring a widget into a visual Ajax tool.

WaveMaker is a visual Ajax designer that can host a variety of toolkits and widgets. Our experience developing WaveMaker has enabled us to crystallize seven widget design principles that simplify the task of hosting the widgets in a visual design tool:

  • Portability is critical: no matter how good a tool is, developers need the flexibility to switch tools. If the output of a WYSIWYG Ajax editor can’t be edited in vi, then the proprietary lock-in may outweigh the tool’s short-term benefits. Similarly, a widget that introduces its own markup language will require its own proprietary tools (think Silverlight).

  • Performance counts: an Ajax editor needs to produce Ajax apps that have acceptable load times and responsiveness, making it easy, for example, to produce minified JavaScript.

  • Well defined dependencies: make it easy for the tool to discover and incorporate images, css and other libraries required by a widget.

  • Limit create only functionality: a WYSIWYG tool need to be able to change properties like sizing and positioning dynamically, not just at the time of widget creation. Having to recreate the object every time a property changes is inefficient.

  • Straightforward APIs: widgets should follow an API naming convention (e.g., for getting and setting attributes) that simplifies exposing properties through a visual tool.

  • Automatic re-rendering: Widgets should also be responsible for updating their visual representation when their properties change. One good way to do this is via property setter methods.

  • Make it easy to expose events: a naming convention where all event methods start with onFoo makes it easier for a tool to be smart about what events a widget can respond to and then expose them in a straightforward way.

A good example of a WYSYWYG-able Widget is FCKEdit. This is a heavy-weight widget that is completely self-contained and comes with an Ajax-friendly JavaScript integration technique. On the other hand, FCKEditor does not expose resizing hooks (we had to figure that part out on our own).

Dojo Dijits contains a whole library of WYSYWYG-able Widgets. A visual Ajax tool like Wavemaker can easily wrap Dojo widgets with Javascript “meta-data” descriptors that allows the studio to create generalized property editors. The same process can be used to make other Ajax widget libraries available within studio, such as Google Gadgets and Ext.

Tooling the Dojo grid

The trick in tooling a complex widget is to determine what behaviors to tool. The goal is to provide the right subset of features through the tool without preventing the developer from going in afterwards and creating what they need.

For example, the Dojo grid is tremendously capable. Not all these capabilities are accessible through WaveMaker, such as fixed columns, combined cells and subrows. Think about all the things you can do with Excel and how long it took for Excel to get it’s grid tooling right. In the same way, WaveMaker is exposing a subset of Dojo grid features today, and will increase the richness of those capabilities over time.

Options for representing the Dojo grid data included raw javascript, table markup and json.

An equally difficult challenge is deciding what code to generate to implement a given Dojo grid definition. In general, there are three options:

  1. Semantic HTML: generate HTML that includes rich Dojo grid semantics

  2. Raw Javascript: chuck HTML and define the grid in Javascript

  3. JSON: uses an object notation instead of semantic HTML to speed parsing

The following three sections give examples of these different approaches

Semantic HTML Markup definition for a Dojo grid

The following example comes from the Dojo Nightly builds grid tests. It shows a way to use “enriched” HTML to define a Dojo Grid (a la Alex Russell). The really cool thing is that this code runs even if JavaScrip is turned off in the browser.

If you already know how to code html tables, this is an elegant approach. However, its elegance and readability is offset by the performance hit the application takes in parsing the HTML.

<table dojoType="dojox.grid.Grid"
store="csvStore"
query="{ Title: '*' }"
clientSort="true"
style="width: 800px; height: 300px;">
<thead>
<tr>
<th width="300px" field="Title">Title</th>
<th width="5em">Year</th>
</tr>
<tr>
<th colspan="2">Producer</th>
</tr>
</thead>
</table>

Raw Javascript definition for a Dojo grid

The following example shows setting up a Dojo grid using raw JavaScript. Although JavaScript is powerful and expressive, this essentially junks sSemantic HTML concept in favor of just getting ‘er done. is, however, confusing and difficult to read.

<script type="text/javascript">
// a grid view is a group of columns
var view1 = {
cells: [[
{name: 'Column 0'}, {name: 'Column 1', width: "150px"},
],[
{name: 'Column 8', field: 3, colSpan: 2}
]]
};
</script>

Json definition for a Dojo grid:

Json (JavaScript Object Notation) represents a third way to represent grids. To see this in action, look at the widget source tab in the WaveMaker page designer. The main benefit is that it is readable and plugs easily into a visual Ajax tool JSON provides a highly readable, name/value pair approach to defining widget parameters. Best of all, it provides a format for widgets that parses and renders quickly and enables easy data interchange between the visual studio, the browser and the application server.

dataGrid1: ["turbo.DataGrid", {}, {}, {
column: ["turbo.DataGridColumn",
{caption: "Name", columnWidth: "50px"}, {},
column1: ["turbo.DataGridColumn",
{caption: "Addr", columnWidth: "100px", index: 1}, {},
}]

Summary

Until there are visual tools that simplify the task of building Ajax user interfaces, the ability to create rich internet applications will be restricted to only the most skilled developers. Broad adoption of Ajax requires easy-to-use, WYSIWYG Ajax tools. WaveMaker is an example of an open source development platform that includes a WYSIWYG Ajax editor. Try it out and let us know what you think at http://www.wavemaker.com/downloads

Monday, April 14, 2008

Visual Ajax Webinar Thursday, April 17 at 12 PST

The next Visual Ajax User Group webinar and meeting will be next Thursday, April 17 at 12 PST. The speakers will be Scott Miles and Steve Orvell. Scott is the module owner for the Dojo Grid and Steve is a core contributor for the Dojo Grid. They will be talking about "Ajax Grids - Taming and Tooling The Widget Beast."

To attend the webinar, send an email to rsvp@visualajax.org

Our last meeting was a lively discussion led by Alex Russell on how to overcome the structural challenges of Ajax entitled, Saving Ourselves from the Unweb.

If you wish to attend in person, the meeting will be at the offices of WaveMaker Software, 301 Howard Street, 22nd Floor

Our next two meeting will feature Ajax experts from two ends of the mashup spectrum:
Please let us know if there is a topic or speaker you would like to see in an upcoming meeting by sending email to info@visualajax.org. For more information on the Visual Ajax User Group, click here.

Thursday, April 3, 2008

Web 2.0 Rock Star Competition At MySQL Conference

MySQL Conference & Expo 2008 If you are planning on attending the MySQL conference in Santa Clara next week, you should definitely check out the BoF session Tuesday night 4/15 @ 8:30 Ballroom E, titled "Be a Web 2.0 Rock Star"

Anand Pandey of MySQL will be conducting a hands-on training session on the open source WaveMaker visual Ajax studio.

For added excitement, there will also be a speed Web 2.0 code-a-thon with judging by Jay Pipes and cool prizes (not to mention free beer and roving Elvis impersonators)

Release your inner geek at this festive Web 2.0 code-athon!
  • For newbies, get an up-close look at the latest Ajax and Web 2.0 technologies.
  • For rock stars, prove that you've got what it takes to be a Web 2.0 rock star!
This BoF mixes hands on tutorials for Ajax and Web 2.0 newbies with the action and excitement of a white knuckle coding competition.

Rules for the Web 2.0 Rock Star competition:
  1. Start with a blank screen and your favorite Web 2.0 tools
  2. Build a cool Web 2.0/MySQL app in 30 minutes or less
  3. There is no rule 3
Wanna Be Elvis for an Evening? Here's How
Our panel of distinguished gearheads will award prizes in 5 categories:
  1. Fastest Web 2.0 in the West - most functionality in the shortest time
  2. Coolest Web 2.0 app - most likely to appear on TechCrunch
  3. Funkiest Ajax widget - most strangely fascinating UI
  4. Gnarliest database call - unleash the beast inside of every MySQL server!
  5. Geekiest Ajax app - most Knuth-worthy implementation

 
ss_blog_claim=3447bca5887ddff6d0ca4a390cd980a4