Archive | Web 2.0

Webinar: Java Studio Creator & eBusiness Applications’ Grid Ajax Component

Learn how to use this Ajax-powered component to give your web applications the ability to display and edit tabular data in various web browsers so your users get responsive, interactive data editing in an spreadsheet like user-interface. After the session, post any webinar-related questions you have on the Ask the Experts page and get answers from the webinar presenters.

Posted in Web 2.00 Comments

AJAXWorld Conference & Expo – October 2-4, 2006 Santa Clara, CA

Developers and IT managers can learn about enterprise Ajax, mobile Ajax, Ajax with Java, Ajax and web services, security issues, and more.

Posted in Web 2.01 Comment

NetBeans IDE 6.0!

Let the new NetBeans IDE make you a smarter, faster coder. Get it and take advantage of new and improved features you asked for, like visual web development, visual game design, enterprise development, data binding, integrated profiling, Ruby, Swing, and lots more.
Download Now
Learn More
Free DVD

Posted in Web 2.01 Comment

Dec 18: 2nd Life Intro to Web App Development

Join Dana Nourie December 18th, Tues 9 AM PST and 7 PM PST, in Second Life at the Sun Microsystems Developer Playground to discover how easy it is to create web pages and apps in Java. Learn about NetBeans, JSPs, beans, database binding, the cool JMaki widgets and gadgets and gizmos. Watch a demo and get your questions answered.

Posted in Web 2.00 Comments

Reviews Interactive – NetBeans 6.5 Beta Reviews

NetBeans 6.5 Beta Reviews 1. NetBeans 6.5 beta - Useful Productivity Enhancements for Java EE, Missing Some Features As Well -- Adam Bien's Weblog, 8/20 Adam Bien posted some feedback on 6.5 Beta after working with ...

Posted in Development, Web 2.01 Comment

Page Test: Run AOL’s tool in the cloud, then sit back and wait

Patrick Meenan has setup an IE7 instance in Virginia that we can poke to do an AOL Page Test.

You give it a URL and some options such as the number of runs, whether to see the first and repeat views, and off it runs.

When finished you get to see the results which give you high level data on load times, waterfall graphs, an optimization check list, and a screenshot of what the browser saw.

If the waterfall is hard to read, send it to Steve Souders. He reads them like Neo reads the Matrix :)

Posted in Web 2.02 Comments

Ajax Head Pattern; Unobtrusive Rails Apps

Ken Collins has rewritten his Homemarks application, a Rails app that "allows you to dynamically create and sort Columns, Boxes, and Bookmarks into your own custom start page."

What is interesting about the rewrite is the new approach that Ken took; the Ajax Head Pattern as he described it:

HomeMarks was built using the Ruby on Rails framework with a heavy emphasis on object oriented JavaScript to make AJAX requests to a RESTful back-end. Unlike most Rails applications it does not use any inline JavaScript helpers nor does it rely on RJS (Remote JavaScript) for dynamic page updates. Instead it is nearly 100% unobtrusive JavaScript which uses simple HEAD or JSON responses to communicate to the objects on the page. This has yielded very slim controller code which is decoupled from the views and easily testable in isolation at a functional level.

You end up with a lot of code that deals with HEAD:

RUBY:
    class UsersController <ApplicationController
      # ...
      def create
        User.create!(params[:user])
        head :ok
      end
      # ...
    end

Posted in Web 2.02 Comments

querySelectorAll is coming fast

We have all been talking about querySelectAll for awhile, but John Resig gives us a wrap-up that covers the state of play.

He talks about the browsers, and the libraries that wrap them and clean up shop via code like:

JAVASCRIPT:
  1.  
  2.  
  3. function querySelectorAll(selector){
  4.   try {
  5.     return Array.prototype.slice.call(
  6.       document.querySelectorAll( selector ) );
  7.   } catch(e){}
  8.  
  9.   return myOtherLibrary( selector );
  10. }
  11.  

Less code. More speed.

Posted in Web 2.01 Comment

Chain.js: jQuery Data Binding Service

Rizqi Ahmad has created a data binding service for jQuery called Chain.js.

A simple example shows you where to start. When given HTML like:

HTML:
  1.  
  2. <div id="quickdemo">
  3.     <div class="item"><span class="library">Library Name</span></div>
  4. </div>
  5.  

The following JavaScript will add data as items to the list:

JAVASCRIPT:
  1.  
  2. $('#quickdemo')
  3.     .items([
  4.         {library:'Prototype'},
  5.         {library:'jQuery'},
  6.         {library:'Dojo'},
  7.         {library:'MooTools'}
  8.     ])
  9.     .chain();
  10.  

Check out the demos for more detailed examples.

Posted in Web 2.02 Comments

Making creating DOM-based applications less of a hassle

Creating a lot of HTML using DOM methods can be a real pain. This is what students of the Juku training course that I held two weeks ago found out quite quickly and complained about the verbosity of it all. I listened to their concerns and came up with a framework for JavaScript applications called
ViewsHandler.

One of the tasks I had given the class is to create a thumbnail show with image information from a link pointing to Flickr using the JSON API. The following is a solution using and showing the options of ViewsHandler:

A flickr show created with ViewsHandler

A flickr show created with ViewsHandler

ViewsHandler is not another JavaScript templating solution but works on the assumption that in most cases you'll have to create a lot of HTML initially but you'll only have to change the content of some elements dynamically as new information gets loaded or users interact with the app. So instead of creating a lot of HTML over and over again all I wanted to provide is a way to create all the needed HTML upfront and then have easy access to the parts of the HTML that need updating.

The first thing you'll need to do to define your application is to create an object with the different views and pointers to the methods that populate the views:

JAVASCRIPT:
  1.  
  2. var views = {
  3.     index:{
  4.       create:createIndex
  5.     },
  6.     detail:{
  7.       create:createDetail
  8.     },
  9.    info:{
  10.     create:createInfo
  11.   }
  12. };
  13.  

ViewsHandler then creates DIV elements for each of these views and hides them for you. In your methods you create all the HTML the different views need to have and apply it with an add() method. You then define the parts of the HTML that should change later on as fields using the define() method and you can use the set() method to change the content of these fields and the view() method to change between views.

The benefit is that for setting the data you don't need to access the DOM any longer or use innerHTML or nodeValue. ViewsHandler created a pointer to the element all of this is cached. The set() method also allows you to either add a new node as the value or a string. In the latter case it'll create a text node for you.

One convenience method is linkto() which creates links pointing to the different views for you. None of this is rocket science, but it helped the class to create large applications with complex views without losing track of what they are doing. Maybe it can help you, too.

Posted in Web 2.00 Comments