Web Info & Tutorials

September 5th, 2007

SNOOK GIVES ADOBE AIR A TRY

It looks like everyone wants to put out some form of Adobe AIR application and Twitter-based apps seem to be all of the rage, possibly because of the ease of integrating with Twitter’s API.

Apparently, Jonathan Snook didn’t want to be left out of the fun and created his new Twitter app appropriately called Snitter:

I built Snitter for a couple reasons. First off, I wanted to take AIR out for a spin and see what it could do. Secondly, I find using the Twitter web site frustrating at times because it doesn’t offer up features that I’ve always felt could be easily added. So, I’ve gone ahead and built an app with the features that I’ve always wanted.

Jonathan definitely has a flare for style and he’s brought that over to a really nice looking application:

You’ll need the following to run the app:

September 5th, 2007

FIRST MILESTONE OF NEXT GEN SPRING WEB FLOW RELEASED, NOW INCLUDES THE EXT FRAMEWORK

The Spring Framework continues to evolve releasing the first milestone of their next generation Spring Web Flow product:

The overall goal of Spring Web Flow 2.0 is to formally take the product from what it is today, a framework used primarily to implement linear wizards, to what it was always designed to become: a universal application controller engine for powering all types of client interactions. Such interactions include wizards, stateless “RESTful” interactions, and finer-grained, non-linear/asynchronous interactions often present in a “web 2.0″ application.

Of note is that fact that Jack Slocum’s Ext Framework has been adopted for the project’s Spring Faces module:

The Spring Faces module provides the Spring community a dedicated project for exploring additional JSF integration opportunities. The initial work in 2.0 M1 introduces integration with Ext, a popular Javascript GUI widget framework. Several lightweight JSF UI Components are provided that encapsulate the rendering of rich Ext widgets. The approach we took allows Ext widgets to decorate standard JSF components, adding a desktop-like look-and-feel and additional UI behaviors such as client-side validation. The following Ext component decorators are provided in 2.0 M1:

* A date validator component that performs rich client-side validation on a date text field, with a great-looking date chooser control.
* A text validator that performs rich client-side validation on a free-form text input field.
* A number validator that performs rich client-side validation on number text fields.

Ext controls look great, and because all UI behaviors execute client side the responsiveness of the UI is excellent. We will be adding further support in this area in future Web Flow release milestones, as part of the Spring Faces module.

The complete Spring Web Flow 2.0 roadmap can be found here.

September 5th, 2007

GEARS CASE STUDY: WHAT WE LEARNED FROM REMEMBER THE MILK

As I posted on the Google Gears Blog:

Omar Kilani of Remember The Milk took the time to write up his teams experience in Taking web applications offline with Google Gears.

The article moves past an introduction to delve into the design decisions around an offline-capable architecture, and user messaging and presentation of state. We learn why Omar decided to go with the explicit offline mode, and then the five steps to offline conversion:

  • Ensuring resources are available offline
  • Decoupling the application from the network
  • Persisting data on the client
  • Re-creating application state from persisted data
  • Developing a synchronization strategy.
  • There is a lot to learn here.

    From their architecture considerations:

    RTM was designed as a client-side application from inception. The server-side portion of RTM is mainly used as a “dumb” data store, and the application periodically synchronizes with the server. In this case, using Gears to provide offline access was a natural fit, and was relatively quick to implement as we had some prior experience with data synchronization protocols.

    There were some features of the online experience that could not be carried over to the offline mode. One of these was the Google Maps integration, in which users can geolocate their tasks and quickly visualize where their tasks are occurring in the real world. As Google Maps requires access to Google servers to fetch map tiles and data, and such a data set is quite large and thus hard to cache, this functionality is disabled once the user enters offline mode.

    The undo feature of RTM is also unavailable in the offline version as this is a complex server-side operation (due to the multi-user nature of RTM and the ability to share tasks and lists). Instead, the user is presented with a dialog box asking for confirmation if they execute a destructive action such as delete. Undo functionality in offline mode is on the RTM roadmap, however.

    To the decisions they made on showing the user information on whether they are online or offline:

    A fundamental design decision is whether to implement offline support as “modal” or “modeless.” Choosing which style to implement will, in most cases, be dictated by the type of data the application works with and how much of that data will be available offline. One style is not necessarily superior to the other, and, for example, it’s much easier to implement a modeless style for tasks (in RTM) than it is for feed items (in Google Reader) based on the size of data items and the total data set alone.

    Finally, we learn some tips and caveats from the RTM Gears implementation, including dealing with the LocalServer, the different types of offline, defensive coding, debugging, and coding with upgrades in mind.

    Omar Kilani wraps it up in his conclusion:

    By now, you should be itching to add offline support to your web application (we hope!). If you should take anything away from this article, it’s that taking your application offline isn’t as hard or complex as it may first seem, and that Gears is a joy to work with (and it’ll become even easier and more fun as the project matures and is used by more applications).

    As for us at RTM, we couldn’t be happier with Gears. The speed at which we were able to provide offline functionality (four days from reading the documentation to a launchable implementation) is a testament to the quality, ease of use, and production-readiness of Gears. Many thanks to the Google Gears engineers for their foresight and for making this an open source project to which members of the Internet community can contribute.

    Thanks to the Remember The Milk team for taking their application offline in record speed, and for taking the time to share their experience.

September 5th, 2007

UPDATE TO INTERNET EXPLORER’S COOKIE JAR

The IE aggroup has update d the cyberspace Explorer Cookie Jar by designate the cake bounds to 50 per domain, in distinction with Firefox.

This doesn’t stingy that we should go discover and move creating newborn cookies willy-nilly though, and in fact they strongly sugest that we “watch our weight”:

You strength be tempted to verify plus of the newborn higher cake bounds and add more cookies to your site. Unfortunately, cookies crapper dramatically effect the filler of protocol requests, speed downbound the user’s feeding undergo significantly. Many of today’s scheme users hit connections with lopsided bandwidth, having download speeds 2 to 5 nowadays faster than their upload speeds. This effectuation that in whatever cases, protocol letter filler is a more essential bourgeois than the filler of the server’s salutation in determining coverall designate time.

There are threesome strategies you crapper ingest to derogate the effect of cookies on your site’s place performance:

  1. Minimize the filler of your cookies
  2. Deliver noise noesis from a assorted domain
  3. Use the Path concept to beam cookies exclusive when necessary

Have you ever separate into the limit?