Ajax Bestiary: A Javascript Field Guide
 
Ajax Bestiary: A Javascript Field Guide
 
 

Entries from December 2007

Helma, Server Side Javascript

Posted by Don Albrecht

Helma Logo Helma is an impressive server side environment for deploying javascript based applications.  Currently in version 1.6 it presents a powerful and useful way to construct web applications.

Key features:

  • Applications: Helma can serve multiple independent applications, each existing with its own global scope & code repository
  • Static Files: Helma can serve static files independently of applications.
  • Controller / Event Driven model
  • Powerful templating system
  • Hybrid Client / Server Object Model
  • Objects mapped to RDMS or stored in persistent XML object layer
  • Access to any Java package via addition of JAR to Classpath.

Although I haven’t played with it much yet, I’m excited to explore Helma as a way to build comprehensive web applications while focusing on my language of choice: Javascript.

Check out Helma at:

http://helma.org/ 

Proto.IPS A Fast and Easy Prototype Based Type In Place Combo Box

Posted by Don Albrecht

Prototype In Place Select

Meet Proto.IPS a fast and easy prototype based combo box modeled after the gMail Chat Widget.

Features:

  • Automatically saved when user clicks outside the widget (on blur)
  • Ability to select predefined or enter new value

You can find it at Perfection Kills

!! You’re True (or False)

Posted by Don Albrecht

Ok, so you probably know that Javascript like most other programming languages treats “0″ as false and any other numerical value as true in logic statements. Usually, this is sufficient, unfortunately, sometimes, you need a bit more consistent behavior. For example, ( 2 && 3 && true ) = 2.

Luckily there is a simple fix. Since, ! only operates on boolean data. !(0) is true and !( any other non-null value is false). Therefore, !! returns the boolean value of the original expression.

Another way of coding it, would be “Boolean ( expression );” and directly casting the expression to a Boolean. All things being equal, this would honestly be my preferred way of doing it. After all, legibility in code is one of the utmost considerations for most development, but since bandwidth is also a major consideration in javascript and !! is reasonably intuitive, I personally use it wherever necessary.

In The Trenches, Perspectives on Rich Web Development from Entrepreneurs Vol 1: Ian Lotinsky

Posted by Don Albrecht

Today I bring you the first in what I hope will be an entire series interviewing startup developers on the technical speedbumps they faced in bringing a web based software product from conception to production.  Today’s interview is with Ian Lotinksy, one of the two founders of SandwichBoard a web based CMS targeted at restaurants.

If you are interested in participating in an interview and getting some free publicity for your product, or know someone who might be, please use this form to let me know.

The interview is after the jump
Keep reading →

Meet Base2, A Javascript Reset from Dean Edwards

Posted by Don Albrecht

Base2 is exactly what the title says,  Unlike the major libraries that strive to enhance javascript with shiny new features, Base2 strives to achieve a clean, browser independent execution environment.  In many ways base2 does for javascript what Blueprint, Tripoli et al. do for CSS.

Key Features:

  • Inconsistent enumeration across platforms
  • instanceof doesn’t always work
  • typeof is inconsistent (RegExps identify as type “function” in Mozilla browsers)
  • Consistent object/platform detection
  • Other various bugs

And the sugar:

Playing with the library, it really is a breath of fresh air in many respects.  It’s lightweight (20kb compessed & 6kb) gziped and loaded with features that make day to day javascript development faster and easier.  Most importantly, it raises the bar for all browsers by providing Javascript 1.6 features to browsers other than Firefox.

You can get it online at

http://code.google.com/p/base2/ 

and there’s an excellent introduction at

http://dean.edwards.name/weblog/2007/12/base2-intro/ 

Meet Nicedit, A full featured, lightweight Rich Text Area without Library Dependencies

Posted by Don Albrecht

 Nice Edit Screen Shot

We’ve seen several of these lightweight alternatives to the traditional full featured text editors lately.  NicEdit is a fitting addition to the collection.

 Features:

  • No Library dependencies (Great when you only need a text area)
  • Flexible interface sizing
  • Under 10KB compressed
  • Only 2 files (JS & Icons)
  • Supports: IE 5.5+ / FF 2+ / Opera 9+ / Safari 3+
  • Inline editing with remote tool panel
  • Ajax Support
  • Highly configurable button set

All in all, this is a nice widget that has several features not found in other Rich Text Editors.  A worthy addition to the Ajax ecosystem.
You can find NicEdit at http://nicedit.com/index.php

Robert Nyman’s DomAssistant 2.5 A Lightweight JS Library Powerful Enough To Take On The Big Boys.

Posted by Don Albrecht

Robert Nyman has announced the release of version 2.5 of his Dom Assistant framework. A light in size (6 kb gziped) but fully featured tool for streamlining Javascript development. He states in his announcement that:

“With this release of DOMAssistant, I feel that it can seriously compete with the major JavaScript libraries on the market.”

Although Mochikit, Prototype, Mootools, jQuery, YUI, Spry et. al. seem to indicate that the market for Open Source JS frameworks is a bit saturated. I’ve found that different projects frequently call for a different toolkit. Sometimes, the rich widgets & CDN’s of frameworks like YUI & Dojo make all the difference in delivery & performance. Sometimes the Dreamweaver & Coldfusion integration of Spry makes it a no brainer. Sometimes you need Mootool’s Flash, jQuery’s progressive enhancement or Prototype’s Ruby on Rails integration & extensibility. Dom Assistant is definitely another toolkit that fits into this ecosystem.

Dom Assitant’s Strengths:

Small Size:

At only 21KB compressed for the entire library, it’s small enough for just about any bandwidth constraint.

Legible Code:

Unlike frameworks that make extensive use of $, $$ or chaining. Dom Assistant based code is highly legible and approachable. Even for someone new to JS development. It does use the $ operator for selector support, but doesn’t encourage the development of long chains.

Rich Features:

Dom Assistant is fully featured toolkit for Ajax, Dom, CSS & Event manipulation.

Great Performance:

Dom Assistant is engineered to avoid memory leaks and run fast.

Drawbacks:

Dom Assistant currently lacks any widget or animation support.

You can find Dom Assistant here:

http://www.robertnyman.com/domassistant/

Read More About Dom Assistant here:

Robert Nyman Blog Post

Introducing SilkSprite 2.0 Same Great Icons, 46% less Bandwidth

Posted by Don Albrecht

Today I’m pleased to announce the release of SilkSprite 2.0.  Everything about SilkSprite stays the same but the decompressed file size drops by an astounding 46%.

Key Improvements

  • 11% decrease in size for sprite.css
  • 50% decrease in size for sprites.png

My special thanks go out to Andrew France for achieving such amazing compression of the png file.

You can find the new version here:

http://www.ajaxbestiary.com/Labs/SilkSprite/ 

Meet AppJet, A complete, javascript based web app system.

Posted by Don Albrecht

AppJet is now in beta and it’s pretty awesome.  Combining a server side rhino execution environment, an excellent API and a web based IDE, AppJet lets you build and deploy complex applications using only javascript for both client and server tiers.

Check it out today at: appjet.com

Promote Your Project On Ajax Bestiary

Posted by Don Albrecht

Have you recently, or are you currently developing a web front end for a project? Want to talk about it? I’m looking for developers willing to discuss the design & technical challenges of their recent projects for a series of interviews on Ajax Bestiary. I’m asking for at most an hour of your time, In return you’ll get free publicity for yourself and your project and my gratitude.

Please use the form below to contact me if you are interested:

Contact Us
  1. (required)
  2. (valid email required)
  3. (required)
 

cforms contact form by delicious:days