Monday, March 31, 2008

Mobile Applications, RIP



Java JavaScript CSS HTML C# Ruby WebService


Michael Mace, a former Palm VP, says the business of native mobile apps is dying. He includes a quote from Palm veteran Elia Freedman summarizing why some of us have found mobile application development to be a deeply frustrating experience.

From the technical perspective, there are a couple of big issues. One is the proliferation of [...]

CSS Sprite Generator: Open Sourced and Adapted



Java JavaScript CSS HTML C# Ruby WebService


Ryan Breen

Ext Releases v2.0.2 with Adobe AIR Support



Java JavaScript CSS HTML C# Ruby WebService


To coincide with the release of Adobe's AIR v1.0, the Ext team released v2.0.2 of the Ext framework with enhanced support for the new AIR runtime. The Ext and Adobe teams collaborated during the AIR beta process to ensure that support for the updated AIR API and security sandbox would be available to Ext users [...]

How JavaScript Timers Work



Java JavaScript CSS HTML C# Ruby WebService


It is so great that John is blogging concepts from his upcoming book before it goes out. What a treat for us, and hopefully great marketing for his book!
In How JavaScript Timers Work, John takes us through the actual mechanics of setInterval and setTimeout:

This enables us to grok the difference between:
PLAIN TEXT
JAVASCRIPT:


  setTimeout(function(){
    /* [...]

Gaia Tranquility - Ajax Components for .Net



Java JavaScript CSS HTML C# Ruby WebService


Gaiaware, developers of Gaia .Net Ajax suite of components, have released a new version of their suite called Tranquility. The release focuses heavily on improving the overall quality and performance of the framework with much client-side refactoring done. They've also upgraded to the latest release of Prototype and Scipt.aculo.us.
We have refactored the client side JavaScript [...]

Adobe AIR v1.0 & Flex 3.0 Released; New Adobe Open Source Site Launched



Java JavaScript CSS HTML C# Ruby WebService



Continuing their march into the RIA space, Adobe announced today the official release of AIR v1.0 and Flex 3.0.
Adobe has taken the beta off of the wrapper as their have released both AIR 1.0 and Flex 3.0.
As Ajax developers, Adobe is trying hard to get us developing applications, not just Flash folks. They [...]

Sunday, March 30, 2008

IE8 Beta 1 is focused on the developer community



Java JavaScript CSS HTML C# Ruby WebService


“IE8 Beta 1 is focused on the developer community”. That is from an email on the private beta of IE 8 that some folk have been getting. This is meant to ramp up for a public beta, and something will be seen at MIX in a few weeks. The unveiling is coming.

Greetings from the Internet [...]

Ojay - a chaining wrapper for the YUI



Java JavaScript CSS HTML C# Ruby WebService


JavaScript is a language that can be approached from many angles. Historically it was UI-driven web developers that started playing with it, but lately and with the advent of large JS applications "the world's most misunderstood programming language" is also written by people that feel much more at home in higher programming languages. The nature [...]

Saturday, March 29, 2008

Gears PubTools: Offline Enable Content in Minutes



Java JavaScript CSS HTML C# Ruby WebService


Gears gives you all of the components that you need to take your application offline. If you have the type of application that for now wants to just take some of its content offline, that should be trivial to do right?
That was Brad Neuberg's position, so he created Gears PubTools as a way to make [...]

Hello World: yesterday, today and tomorrow



Java JavaScript CSS HTML C# Ruby WebService


Vlad Shamgin sent in this little history on "Hello World" on the Web.
1998
PLAIN TEXT
HTML:


<font><b>Hello World</b></font>
 


2000
PLAIN TEXT
JAVASCRIPT:


var myText = "Hello World";
var _textNodeParent;
var docNodes = document.childNodes[1].lastChild.childNodes;
for(var j=0; j<document .childNodes.length; j++){
  if(document.childNodes[j].lastChild){
    for(var i=0; i<docNodes.length; i++){
      if('div' == docNodes.item(i).nodeName.toLowerCase()){
        if('layer_main' == docNodes.item(i).id.toLowerCase()){
          if (null != document.getElementById('bparent')) {    [...]

Feature Detection and Cross-Browser Widgets



Java JavaScript CSS HTML C# Ruby WebService


Peter Michaux has done some very thorough work on feature detection in the browser and cross browser widgets.
In his feature detection article he walks through a myriad of approaches with pros and cons:

Feature testing is not easy and there is no one right answer. From a practical stand point, the more strict your tests are [...]

Motionbox EventHandler: Event Subscription and Delegation



Java JavaScript CSS HTML C# Ruby WebService



The developers of MotionBox have written a custom Prototype.js based library to handle event delegation and they decided to open source their work.
They told me:
As you know, the technique of listening to events high in the DOM adds a lot of benefits. The two most notable are:

The ability to bind to events before the elements [...]

DOMAssistant 2.6 Released



Java JavaScript CSS HTML C# Ruby WebService


DOMAssistant 2.6 has been released and the team focused on performance for this version.
They have their own version of slickspeed which includes their library.
The CSS changes include:

Where querySelectorAll and getElementsByClassName aren’t available, DOMAssistant resorts to XPath to select elements, which is an approach that also has very impressive performance results, not to mention native web [...]

Slickspeed Adds Dojo



Java JavaScript CSS HTML C# Ruby WebService


The MooTools folks have added Dojo 1.0.2 to the set of tests on their Slickspeed. It is actually quite cool of them to put up this test and compare other frameworks.
I just ran it on Firefox beta 3 on the Mac and the final results (for what it is worth) were:

Dojo 1.0.2: 145 ms
JQuery 1.2.3: [...]

YUI 2.5 released - Layout Manager, File Uploader and graphical JavaScript Profiler - and that is just the start



Java JavaScript CSS HTML C# Ruby WebService



Version 2.5 of the Yahoo User Interface Library (YUI) was released today. You can get all the details on the official blog post, but here’s the “change log”:

The new Layout Manager allows you to create multi-pane user interfaces that are collapsible and resizable.
The Flash-enhanced File Uploader control might be known to you from Flickr and [...]

Measuring the state of Mobile Ajax Performance



Java JavaScript CSS HTML C# Ruby WebService


Reposted from Thesis: A thorough study on the state of Mobile Ajax Performance on devphone
Mikko Pervilä has released a thesis for his MSci at the University of Helsinki titled Performance of Ajax Applications on Mobile Devices:

This thesis evaluates the presentational capability and measures the performance of five mobile browsers on the Apple iPhone and [...]

Gears 0.2 is in the wild, in production



Java JavaScript CSS HTML C# Ruby WebService


We have talked before about Google Gears 0.2. Now, it has been fully released and has been updated on users machines so you can rely on the APIs. The API changes include:

New modules: HttpRequest and Timer. The main reason for these modules was that developers told us they wanted to make HTTP requests and create [...]

Friday, March 28, 2008

Dojo rating widget with dojo.gfx



Java JavaScript CSS HTML C# Ruby WebService


Tobias von Klipstein has created a Dojo rating component that uses dojo.gfx:

This example should demonstrate a case, where geometric forms can be combined with other widgets and how simple it is to achieve a widget using vector graphics. dojox.gfx was a great help, because it prints the appropriate vector format for you (svg/vml/canvas) and the [...]

Air on Rails…. the Euro kind



Java JavaScript CSS HTML C# Ruby WebService



Mike and the Air team have announced that the Adobe Bus tour is moving to europe, just without the bus. Instead, they will be doing it like the europeans do, and jumping on the train. Far better for the environment :)

As you may have noticed, we have just updated the on AIR tour website, with [...]

Ajax-based social bookmark widget



Java JavaScript CSS HTML C# Ruby WebService


Sometimes the smallest and simplest widgets are the absolutely coolest. In this case, mooSocialize fits that description. Similar in concept to the social bookmarking toolbar from AddThis.com, mooSocialize allows you to consolidate submission links for various networks in a neat little slidedown/out panel:

mooSocialize uses the MooTools JavaScript library to generate the fluid effects and is [...]

Thursday, March 27, 2008

Shooting browsers: Threat or Menace?



Java JavaScript CSS HTML C# Ruby WebService


Two articles were shot onto A List Apart this morning. We have Jeffrey Zeldman on the threat or menace of version targeting. Then we have Jeremy Keith on browser shooting.
Both are opinions on the version targeting issue that has blown up on the Web recently.
Jeremy concludes:

Version targeting is not a bad idea. The choice [...]

Cursing with JavaScript: Three Random Tips



Java JavaScript CSS HTML C# Ruby WebService


I ran across a few posts in a row in my news reader that were each mini tips that involved Prototype, Firefox, and IE.
Prototype Custom Events
Howard Lewis Ship is making sure that Tapestry 5 will have 50% more Ajax, and has been playing with Prototype. He found a nagging bug to do with a ':':

Here's [...]

Create annotated walk-throughs with Step by Step



Java JavaScript CSS HTML C# Ruby WebService


Finding ways to help your users leverage your application's full potential can be a challenge and UX experts rack their brains daily trying to figure out new ways of improving this experience. One useful technique is the use of annotated walk-throughs which help guide users via detailed textual indicators (eg: popups). Chris Heilmann has created [...]

Lightview 2: Not just images, now on Prototype.Latest



Java JavaScript CSS HTML C# Ruby WebService


Nick Stakenburg has released Lightview 2, an update of his lightbox-esque library:

With the first released of Lightview I aimed to make overlaying images as elegant as possible, rethinking what we know as Lightbox. With Lightview 2.0 I'm going a step further, doing the same for
video (Quicktime), swf, Ajax, iframe and inline content.

You can do most [...]

Jack is back: Ext for Air and Vista



Java JavaScript CSS HTML C# Ruby WebService



Jack had posted a couple of entries back to back in the world of Ext.
First, he has been playing with Air again, and quickly wrapped the Ext 2.0 docs in Air, which would have been helpful when I was hacking the Ext toy on the plane:

Second, he has been playing with Vista gadgets and Ext [...]

.Net and Ext: Coolite has the Answer



Java JavaScript CSS HTML C# Ruby WebService


The Ext team has posted about a new community initiative that has been kicked off by Coolite, the same guys that brought you the cool ninja-inspired DateJS parsing library.
Coolite Studio, a suite of professional ASP.NET Web Controls built on the Ext JavaScript Framework, aims to make it easy for .Net developers to use Ext's UI [...]

Wednesday, March 26, 2008

Audible Ajax Episode 24: Aptana Jaxer Talk



Java JavaScript CSS HTML C# Ruby WebService


I had the opportunity to sit down with three fine gents from Aptana to discuss their recent launch of Jaxer, the “server side Ajax framework”.
Paul Colton, Uri Sarid, and Kevin Hakman all sat with me to chat about things. I have already played with Jaxer, and created the Google Gears wrapper which can be used [...]

Self Printing JavaScript Literals



Java JavaScript CSS HTML C# Ruby WebService


Are you ever sick of seeing Object get printed out when you try to output a variable to your console.
Oliver Steele talks about Self Printing JavaScript Literals where you can clean that up with a toString:
PLAIN TEXT
JAVASCRIPT:


function makeLiteral(name) {return {toString:function(){return name}}}
var L1 = makeLiteral("L1");
var L2 = makeLiteral("L2");
L1
//>>> L1
L2
//>>> L2
 


Kangax takes it further to support nesting:
PLAIN [...]

Liberator Comet Platform: Free Edition



Java JavaScript CSS HTML C# Ruby WebService


Caplin Systems, creator of the Liberator Comet platform have announced a free version which can be used for non-commercial applications and for evaluation.
Liberator includes a high-performance Comet server, a JavaScript client library, and a Java server integration library.
There are many examples such as the subscriptions sample which shows a page with realtime updating information for [...]

Facebook Style Input Box



Java JavaScript CSS HTML C# Ruby WebService


If you used Facebook on a regularly basis, you’ve probably come across their cool autocomplete method of adding multiple recipients to messages. For those that haven’t seen it, here’s a pic:

Guillermo Rauch set out to build something similar and he did a very good job of mimicking this behavior using MooTools v1.2:
While working on my [...]

Using setTimeout to Solve DOMContentLoaded?



Java JavaScript CSS HTML C# Ruby WebService


Stuart Colville was reading the following info on setTimeout() from JavaScript the Definitive Guide:

“In practice, setTimeout() tells the browser to invoke the function when it has finished running the event handlers for any currently pending events and has finished updated the current state of the document”

He then thought, does setTimeout solve the DOMContentLoaded problem?.
He tested [...]

newjs: JavaScript Project Creation



Java JavaScript CSS HTML C# Ruby WebService



When you start a new JavaScript library, how do you layout the source files, the tests, the distribution files? Do you have support scripts to generate distributions from source files? Run your JavaScript unit tests? Generators to create new unit test HTML files?

This is why Dr. Nic created newjs, a Ruby script that sets you [...]

Dual-Side Templating for 2010



Java JavaScript CSS HTML C# Ruby WebService


Michael Mahemoff is bullish on templating that runs all over the shop, and explained the progression in his Dual-Side Templating piece:

c. 1995: Server-Side Templating. This is the standard templating used in Java’s JSP, Perl’s Mason, PHP, ASP, etc. ie some html code with <?= “language” ?> code embedded in it.
c. 2005: Browser-Side Templating. This is [...]

Nextpoint: Taking Ajax to Court



Java JavaScript CSS HTML C# Ruby WebService


I used to work in the healthcare sector, and was always amazed to see the amount of paperwork that was required. Literally paper work that is. The industry was full of drawers overflowing with paper.
I imagine that the legal profession has its fair share of this too, but one company Nextpoint, is trying to [...]

Tuesday, March 25, 2008

Moo.rd: Extensions to MooTools



Java JavaScript CSS HTML C# Ruby WebService



Moo.rd is an extension library to MooTools that brings you more effects, and helpers for tables, lists, and lightboxes.
You can see examples of the new extensions including:

Custom Alert
Custom Confirm
Smooth Scrolling


The new Custom.Alert and Custom.Confirm classes are modal, fixed, and can be draggable, like the standards. But they are “Custom”, so we can give them our [...]

OnionML: Server Side JavaScript Layout Engine



Java JavaScript CSS HTML C# Ruby WebService


Marcello Bastéa-Forte has developed OnionML, a layout template language that uses server side JavaScript with Rhino and E4X on the back end.
The high-level goal of the template engine is to be something with utility not unlike CSS, but for intended layout and composition. The actual functionality is similar to XSLT, but with the design [...]

AjaxDataControls v1.0 Ajax Extensison for .Net



Java JavaScript CSS HTML C# Ruby WebService


We’ve been trying to get more .Net-related content on Ajaxian and luckily we were contacted by the AjaxDataControls team about their new v1.0 release.
The AjaxDataControls is a DotNetSlackers.com’s open source project built on top of Microsoft Asp.net Ajax Extension. Currently it contains GridView, DataList, Repeater and Pager controls. The main goal of this project is [...]

MooTools Swiff: Communicate with Flash



Java JavaScript CSS HTML C# Ruby WebService


MooTools core team member Michelle Steigerwalt has a writeup about the MooTools 1.2 Swiff object which allows communication between Flash movie (.swf) files and a page's JavaScript. The Swiff object makes it substantially easier to interact with ActionScript allowing you to pass values or manipulate the Flash movie using JavaScript and MooTools:
Unless you're a diehard [...]

Prototype Deprecation.js: 1.5 to 1.6 made easier



Java JavaScript CSS HTML C# Ruby WebService



Tobie Langel has developed a deprecation script to help you move from Prototype 1.5 to 1.6:

When your code calls a method that’s been deprecated, replaced, or modified, the script will log a warning or error to your Firebug console. Clicking its hyperlink will take you to the deprecation script itself, which isn’t all that [...]

Is easy implementation the same as good code?



Java JavaScript CSS HTML C# Ruby WebService


I've just come across a solution for badges on web sites that makes it terribly easy for implementers. The idea is that the implementer could add a badge wherever they want in an HTML document, choose the look and feel and add a message to be shown. The implementation code is the following:
PLAIN TEXT
HTML:


<script src="badge.js" [...]

Monday, March 24, 2008

Sun.com Behaviour Registration Library



Java JavaScript CSS HTML C# Ruby WebService


Greg Reimer has followed up and posted on the new event delegation library that he is using on Sun.com.
The library provides one object, reg which lets you hook behaviour via:
PLAIN TEXT
JAVASCRIPT:


reg.click('ul.foo> li> a.bar', myFunction);
 



What is happening
Once that bit of code runs, regardless of whether the entire DOM has finished loading into the browser, click events [...]


Java JavaScript CSS HTML C# Ruby WebService


Greg Reimer has followed up and posted on the new event delegation library that he is using on Sun.com.
The library provides one object, reg which lets you hook behaviour via:
PLAIN TEXT
JAVASCRIPT:


reg.click('ul.foo> li> a.bar', myFunction);
 



What is happening
Once that bit of code runs, regardless of whether the entire DOM has finished loading into the browser, click events [...]

Test



Java JavaScript CSS HTML C# Ruby WebService


Body

Crazy way to change third party scripts



Java JavaScript CSS HTML C# Ruby WebService


Paul Irish posted a crazy method for tweaking third party scripts. His problem was that he was using MultiMap (online Mapping API) and wanted to internationalize the information, but it was hard coded in the JavaScript.
To get around the problem he does this:
PLAIN TEXT
JAVASCRIPT:


// WARNING!!  This is such a massive hack. Oh-so-hackalicious
 
// Problem:     Multimap [...]

jQuery API Browser Update



Java JavaScript CSS HTML C# Ruby WebService


Remy Sharp has revived the jQuery API browser at a new location. The old API browser hadn't
been updated since 1.1.3 and most other API browsers were running from the old doc structure (e.g. gotapi.com/jquery).
Remy added live searching and direct linking.

Extending dojo.query()



Java JavaScript CSS HTML C# Ruby WebService


Alex Russell has taken some time to share the path you take when you go the Dojo Way and “build with, not on”. He posted an example of how to extend dojo.query() which walks through the steps:
Step 1: grok dojo.NodeList
dojo.NodeList is the Array subclass which all dojo.query() calls return an instance of. Therefore, to extend [...]

Book review: Advanced Ajax by Lauriat


Because Ajax moves so much application logic from the server to the client, it forces many developers to master a wider range of web technologies than ever before. To work effectively on Ajax projects, front-end developers have to concern themselves with database performance, business logic and other server-side concerns. Back-end and middleware developers, meanwhile, have [...]

Dojo Roundup: A/V, Animation, and a lot more

A lot of news came together at the Dojo Developer Days event.
Below is my meta-roundup based on Alex’s wrapup, and other news.
Animation
Eugene Lazutkin (SitePen) has been a busy man. His impressive work on dojox.gfx, dojox.gfx3d, and dojox.charting made Dojo 1.0 the best tool around for portably drawing vector graphics in a browser without plugins, and [...]

Sunday, March 23, 2008

LINQ to JSON

James Newton-King has posted a new bit of code called LINQ to JSON which is a .NET LINQ style API over JSON.
For example, here is how you could get out categories and how often they are used:
PLAIN TEXT
JAVASCRIPT:


var categories =
  from c in rss.PropertyValue<jobject>("channel")
              .PropertyValue<jarray>("item")
          [...]

Ajax Interceptor: Have someone clean for you


José Manuel Alarcón Aguín has written AJAXInterceptor, a JavaScript library that you add which takes over form submissions and makes them happen asynchronously with XHR.
You can also control progress indicators and request cancelation via code such as:
PLAIN TEXT
HTML:


<div id="progress">
  <img src="progressimgs/bigrotation2.gif" alt="Loading..." align="middle" hspace="10" /> Loading...
  <input type="button" value="Cancel" onclick="AI_CancelRequest();" />
</div>
<script language="javascript" type="text/javascript" src="AJAXInterceptor_r.js"></script>
<script language="javascript" [...]

The parseInt gotcha

Guyon Morée has posted the old chesnut parseInt gotcha, so I thought I should put it up here as a quick tip:

I was working on some stuff in javascript which involved some date/string parsing when one morning it failed. "That's weird, yesterday it worked fine!"
After some debugging with FireBug I found parseInt() was failing on [...]

GWT Ext 2.0 Released

When making ChartMaker on the plane, I was tempted to use GWT Ext, but it didn’t support Ext 2.0 yet so I held off. However, at JavaPolis I was told about the work being done by Sanjiv Jivan, and he has just released GWT Ext 2.0 which “is a powerful widget library that provides rich [...]

JSJaC: JavaScript Jabber Client Library

JSJaC is a JavaScript Jabber Client Library that was built "to ease implementation of web based jabber clients. For communication with a jabber server it needs to support either HTTP Polling or HTTP Binding."
To use the library you can check out examples to see how you can do things like send a message:
PLAIN TEXT
JAVASCRIPT:


function sendMsg(aForm) [...]

Native CSS selectors with querySelector

David Smith of WebKit posted about their native implementation of querySelector and querySelectorAll from the W3C Selectors API.
Native CSS selectors in the browsers is going to be a huge boon for us and the Ajax libraries that will be able to use them.
You can use the standard via:
PLAIN TEXT
JAVASCRIPT:


  /*
   * Get all the elements [...]

Cross Window Messaging with HTML 5 postMessage

John Resig has written a Cross-Window Messaging sample using Firefox 3, which implements the current postMessage API in HTML 5. Opera 9 implements a slightly older version, and a new release will fix that of course:

This particular API adds a new method to every window (including the current window, popups, iframes, and frames) that allows [...]

Saturday, March 22, 2008

Heroku: Web based Rails Hosting

Heroku is a new YCombinator startup that joins the growing number of “use your browser to build your apps” type of applications.
You can create new Rails applications, and they are magically hosted up in the cloud. You can import your own Rails application, or you can use the inline editor and tools to built the [...]

Interaction08: IxD’s in Savannah; Alan Cooper

I’m trying to masquerade as a hip and trendy designer-type today at IxDA’s Interaction08 conference, but I fear my geeky ways will betray my role on the implementation side of the aisle. We know that many Ajaxian readers are designers or interested in creating well-designed products. Indeed, Ajax has been about empowering us to create [...]

jQuery 1.2.3: Support for AIR, Namespacing

The jQuery team announced today the release of jQuery v1.2.3. Primarily a bug fix for v1.2.2, this new release also includes new features to make it compatible with the Adobe AIR runtime and SDK:
The primary purpose of this release was to fix a couple outstanding bugs from the jQuery 1.2.2 release. Specifically, this release is [...]

ArcLite: Arc for JavaScript

Jonathan Tang has fallen into the Arc fun and took some time to fully implement it in JavaScript.
It differs from Paul's implementation:

Supports Unicode, at least as well as JavaScript supports it.
There are very few I/O primitives - the ones that do exist write to the string "Eval.stdout", which can be tested and reset as necessary.
I [...]

Refactoring your JavaScript for fun and profit

Our newest Ajaxian Chris Heilmann - London Yahoo! - has written a piece on his blog covering five things to do to a script before handing it over to the next developer.
He walks through a refactoring experience:

Let’s say the job was to add small link to every DIV in a document with the class collapsible [...]

Hide an image in html?

Erik Kastner created something a little bizarre at 2am (beer involved?). He built an image hider using the CSS3 ::selection pseudo-element.
You mouse over the text and a hidden image reveals itself. Time for some silly hide and seek games!

Friday, March 21, 2008

Django Template Language in JavaScript

I am learning at lot at the Dojo Developers Day one. Whenever I met Dojo folks I get the impression that there are 55 gems in the library that I have no idea about!
One of them is Neil Roberts implementation of the Django template language in JavaScript.
His work lives in dojox.dtl and you can [...]

JavaScript Library Loading Speed

John Resig has analyzed JavaScript library loading speed by looking into the recent PbWiki testing results.
He delves into the fact that file size != speed and puts out the simple formula:

Total_Speed = Time_to_Download + Time_to_Evaluate

We also seem to obsess about packing and minification, where it often does give us that much since the act of [...]

jQuery UI and jQuery Enchant Alpha Versions Released Today

The jQuery UI team announced today the release of alpha versions of jQuery UI 1.5a and jQuery Enchant 1.0a! The projects aim to address the need for a strong set of UI controls and effects to complement the jQuery JavaScript library.
I'm very happy to announce the first alpha release of both jQuery UI 1.5 and [...]

Security Focus: JavaScript Global Namespace Pollution

Security should always be a concern when developing client-side applications as time and time again, sites have been compromised by a lack for forethought into how users, especially malicious ones, interact with your site. GNUCitizen.org is an excellent site for staying abreast of new security exploits and the team constantly pushes the boundaries of how [...]

iPhone Cachability: Watch your weight

Reposted from devphone.
Wayne Shea and Tenni Theurer have continued their performance series by delving into the iPhone and its poor little cache.
I always wonder why the cache is so small. It is typical Apple to not allow an expert mode where you can tweak it. I would rather have a few less songs and have [...]

OpenAjax Alliance Launches Its Second Wave

The 100+ members of OpenAjax Alliance recently approved the release of OpenAjax Hub 1.0, including the OpenAjax Hub 1.0 Specification, an open source reference implementation at SourceForge, and a complete test suite. OpenAjax Hub 1.0 is a small JavaScript library (<3K) that allows multiple Ajax toolkits to work together on the same browser frame. The [...]

Thursday, March 20, 2008

Server Side JavaScript Databases Access

Reposted from my personal blog

As soon as I started to play with Aptana Jaxer, I saw an interesting opportunity to port the Google Gears Database API (note the Gears in the logo!)
If I could use the same API for both client and server side database access, then I can be enabled to do things like:

Use [...]

Firebug 1.1 and getfirebug.com

John J Barton has been working hard on Firebug 1.1, but the work has been in the dark a little unless you are paying attention.
He has been putting releases up, and Kris Zyp has been kind enough to host
I have talked to a few people recently who keep Firefox 2 around just “because Firebug needs [...]

Kevin Lynch promoted to become Adobe CTO

I met this really nice bloke at the first Ajax get together, put on a few years back, by O’Reilly and Adaptive Path. Ben and I were arguing about something or other and this guy politely told us that we were totally wrong. It turned out to be Kevin. He is a really nice chap, [...]

Canvas Pie Chart from datatable

I love it when a plan comes together (removes cigar): After I played with Google charts and porting the idea of generating charts from accessible table data over to YUI charts Stoyan Stevanof had to use the same idea to generate his own, home-made Canvas-driven charts:

His solution shows in a few lines not only [...]

MySpace Announces Developer Platform

In an obvious move to counter FaceBook’s expanding developer platform, MySpace, the top trafficked social network announced today the availability of the MySpace Developer Platform. News of the imminent release had been circulating for weeks and MySpace finally gave developers the keys to its playground.
The MySpace Developer Platform (MDP) allows developers to create applications [...]

Collaborative Drawing with Sketch

Roberto Saccon has taken the Dojo example program sketch, which itself “fully implements the idea of pipelining the drawing process based on sequential commands for adding, modifying or deleting objects” and has Cometized it:

Very little additional code was necessary to combine the chat app and the drawing app into a collaborative example app. I [...]

Wednesday, March 19, 2008

Continous Integration for the Front End

Gareth Rushgrove has posted on continous integration for the front end.
He talks about a new site, inursite.com that does one thing:

The premise is simple; enter a few of your sites and inursite will visit them once a day and run a markup validation service over the page. You then get a feed of the pass [...]

Random thoughts from a Firefox

Robert O’Callahan has a nice recap of BaaCamp down under.
Robert talks about various talks that he went too, for example on AIR which touted:

features that can and should be provided by browsers too, possibly via extensions like Gears for the laggards, ideally via standard APIs like HTML5.

Robert feels like there is still a bit difference [...]

OpenSocial 0.7: Coming to prime time

The latest version of the OpenSocial spec has been released, 0.7:

The best news is that, based on numerous discussions with both app developers as well as container sites, we believe OpenSocial 0.7 has all the necessary pieces to launch OpenSocial apps to users at scale. In fact, both hi5 and orkut will be using OpenSocial [...]

Super Tuesday: Ajax Endorsements


TechCrunch got political and got into the endorsement business, apparently based on their tech policy.
So, surely Ajaxian needs to get in on this action. How better to do so than take a look at what toolkits are used by the top runners:
Barack Obama
Barack is trying to be inclusive by weilding Prototype, Scriptaculous, and jQuery [...]

Ext JS IDE Support Roundup

There’s been a lot of talk lately about the different IDEs and the support they offer for the various JavaScript libraries. Ext’s uber-coder, Jack Slocum, has put up a blog entry explaining which IDEs support the Ext JS framework:
The Ext 2.0 API is very extensive and remembering all of the functions, properties or configs available [...]

Adobe Tamarin Tracing JIT for JavaScript

Chris Double attended the Tamarin Tech summit, and gives us some information about Tamarin Tracing the new trace based JIT experiment:

‘Tamarin Tracing’ is an implementation that uses a ‘tracing jit’. This type of ‘just in time compiler’ traces code executing during hotspots and compiles it so when those hotspots are entered again the compiled code [...]

Tuesday, March 18, 2008

Functional Programming with JavaScript and Dojo

Eugene Lazutkin has written a piece on Functional fun in JavaScript with Dojo where he delves into the land of functional and how it is available in JavaScript.
Eugene maps out some of the helpful functions that JavaScript itself has added over time:

JS 1.6 (in Firefox 1.5) introduced
so-called Array extras:
special Array methods, which help to [...]

Low Pro for jQuery

Dan Webb has ported Low Pro to jQuery and along the way discusses differences between Prototype and jQuery:

The one big reason was that, while jQuery was super simple and concise when working on smaller projects, it offered no help in structuring larger applications. All you get in jQuery, aside from Ajax methods and a handful [...]

Namespaced made easy with Prototype

kangax keeps up his "Prototype by example"-ness by showing a use of Enumerable#inject.
He shows us namespacing made easy:
PLAIN TEXT
JAVASCRIPT:




 


String.prototype.namespace = function(separator) {


  this.split(separator ¦¦ '.').inject(window, function(parent, child) {


    return parent[child] = { };


  });


}


 





And then you can use it via:
PLAIN TEXT
JAVASCRIPT:




 


// Default separator is '.'


'foo.bar.baz.quux'.namespace();


 


foo.bar.baz.quux = 'Nothing special...'; // => "Nothing special..."


 


// Or using [...]

ErlyJS: JavaScript on Erlang


Roberto Saccon has written ErlyJS, a compiler that takes JavaScript and makes it run on the Erlang VM.
It is very early days, and supports:

Support of a tiny little Subset of Javascript
Compilation to Erlang beam files
Global Javascript variables are stored at runtime in the Erlang process dictionary (therefore: don't use global variables !)
Local Javascript variables are [...]

JavaScript Trim Optimizations

Simon found this gem. Steven Levithan wrote about optimizing a JavaScript trim.
As Simon nicely puts it: “it turns out that while regular expressions are great for removing leading whitespace you can do a lot better at trailing whitespace by manually looping backwards from the end of the string.”

Since the differences between the implementations cross-browser and [...]

Cartoon Comic Fun

I have been having a bit of fun with cartoons recently. There are a few good Ajax sites that help you do cartoons such as Toonlets, Toondoo (From AdventNet, the Indian company behind Zoho and others), and Pixton.



And a bunch more over here.
Got some fun ideas for Ajax related comics?

Monday, March 17, 2008

Ajaxian Roundup for January, 2008: JavaScript Turtles and IE 8

January has started the month out in some style. We are seeing a lot of news that shows the Web may actually be moving forward a little. One sign of that is the trickle of news that comes out of Redmond on IE 8. IE8 Compatibility with X-UA-Compatible sparked debate throughout the entire Web community, [...]

CSS sprite generator source code released

Want to use CSS sprites but you are too lazy to create them in Photoshop? Edward Eliot and Stuart Colville released a CSS Sprite generator quite a while ago that does the job for you.
Now they topped this by releasing the source code of the generator on launchpad (get the tar file), in case [...]

Google Social Graph API Released

Reposted from my blog
Would you like to be able to make a quick call to get a JSON response that ties together a social graph made up of resources available on the Web?

Brad Fitzpatrick, Kevin Marks, and others at Google have released a new Social Graph API that does just that:

The new Social Graph API [...]

jQuery UI Lead is hired by Liferay

Liferay, authors of a popular open source Java portal, have hired Paul Bakaus lead on jQuery UI to work on it full time.

Liferay’s plans are to standardize all their products to use jQuery and its plugins for the future (you’ll still be able to use other libraries at the same time) - it’s therefore in [...]

Seek or Show: Two Design Paradigms for Lots of Data

Bill Scott clued me in to this interesting first post from Theresa Neil on two design paradigms for handling large amounts of data:

The Seek Paradigm: Have the user ask for what they want.
The Show Paradigm: Display everything up front, and let the user explore and organize it.
“The first is usually more prevalent on the web. [...]

Yahoo! Released ASTRA Flash and Flex components


The Flash-y folks at Yahoo! have released a slew of Flash and Flex components in their ASTRA suite:

New Flash components:

AlertManager — a user interface component that creates alert windows and manages their queue.
AudioPlayback — a set of controls for audio playback.
MenuBar — a component that renders hierarchical data as a row of buttons with nested [...]

Sunday, March 16, 2008

Design issues from Aza Raskin

Aza Raskin has been chatting about a couple of things now that he is at Mozilla.
First, Enso 2.0 is on the horizon which will be nice and free. Aza just added his design thoughts for the new version.
I am interested in seeing how Enso could do more within the browser. You can already do things [...]

Book: Practical DWR 2


Frank Zammetti has authored the first book dedicated to DWR, Practical DWR 2 (Amazon).
Joe Walker wrote a foreward which he posted, and here is Frank’s personal message:

Ajax represents a brave, new(ish) world of web development where coding on the client is just as important as on the server side. Hundreds of libraries exist that [...]

Favicon access via JavaScript


Michael Mahemoff has released an update to his JavaScript library that gives you access to play with favicons from script.

The main point of this library is to update the favicon via Javascript, but at a higher level, its main objective is to provide some support for notifying the user of events in another tab. For [...]

Secure String Interpolation in JavaScript

Mike Samuel of the Google Caja team (and much more) has a fantastically detailed document on the choices for secure String interpolation in JavaScript.
He spends a lot of time discussing:

Cataloging the most common vulnerabilities
Various alternatives such as templating, DOM manipulation, and tainting
Goals and Non-Goals
Design and Implementation
Benchmarking the choices

There are a large number of examples a [...]

DomAPI 4.5: New, improved, and more free


DomAPI has been around for ever but the package has been updated:

DomAPI version 4.5 has a new lower price and a simplified licensing plan.
In a nutshell, there are now 2 license types, 'Free' and 'Pro'. Both types can be used on commercial sites, in any capacity, with no restrictions. The benefits of the pro [...]

Most Relevant Browsers of 2009

John has taken a shot at listing the most relevant browsers of 2009:

IE 7
IE 6
Firefox 3
Safari 3
Opera 9.5

I think that Firefox 3 and Safari 3 may end up tieing, and if you frame it as rendering engines, Webkit will probably beat Gecko as it is also being used by iPhone, AIR, Android, and Nokia (they [...]

Saturday, March 15, 2008

JSON 2.0: Libraries and browser support

John is at it again, writing a piece on recent news surrounding JSON.
He links to an updated library by Douglas Crockford,

jQuery Validation Plugin v1.2 Updated

Jörn Zaefferer went absolutely feature crazy when he decided to update his jQuery Validation plugin. Update is putting it mildly with "overhaul" coming immediately to mind.
Here are some of the cool new features added in:

AJAX-captcha validation example (based on http://psyrens.com/captcha/)
Support for "remote" ajax-validation. In other words: Remote validation is now possible and very easy [...]

jQuery Validation Plugin v1.2 Updated

Jörn Zaefferer went absolutely feature crazy when he decided to update his jQuery Validation plugin. Update is putting it mildly with "overhaul" coming immediately to mind.
Here are some of the cool new features added in:

AJAX-captcha validation example (based on http://psyrens.com/captcha/)
Support for "remote" ajax-validation. In other words: Remote validation is now possible and very easy [...]

Book Review: Ajax Security by Billy Hoffman

Brian Dillard of Agile Ajax has a review of Billy Hoffman's new book "Ajax Security". If you've not picked this book up, you really need to. It's received rave reviews and is quickly becoming the must-have security book for client-side development. As Brian can attest:
The book itself, of course, documents dozens more specific security vulnerabilities [...]

Lipsiadmin: Rails 2.0 Ext Admin


Lipsiadmin is a framework that generates Ext 2.0 views on top of your Rails 2.0 application, a compelling duo indeed.
You can strap into your migrations to add menus such as:
PLAIN TEXT
RUBY:



# I will create also my menu
menu = Menu.create(:name => "Articles", :admin => true, :position => 1)
# And my
menu.menuitems.create(:name => "New Article", :url => "/admin/articles/new",
  [...]

YUI Grid CSS and Grid Builder

Jeremy Zawodny of Yahoo! just found the YUI Grid Builder that does what you would imagine... gives you a tool to generate your CSS layout.
Will Duff took that and made YahooPages which adds even more WYSIWYG fun.


Friday, March 14, 2008

Adobe AIR is on Fire

Adobe AIR, the platform that lets you create desktop apps using web technologies, continues to garner attention. With Beta 3 just recently released and a host of companies coming out with new apps, AIR is building up a ton of steam just prior to it’s official v1.0 release.
First up, Adobe’s Kevion Hoyt gives us [...]

Prototype: new cheat sheet and in place editor

The maintainer of scripteka, the Prototype extensions library, has produced a new cheat sheet for the recent 1.6.0.2 release.
He also has his own widgets such as Proto.IPS an unobtrusive in-place-select widget that mimics the Gmail chat ability to drop down and select, or type in your own new content.


Thursday, March 13, 2008

Do you have a pretty date?

John Resig has created a little script to give you pretty dates that Web 2.0 know and love (thanks Rails):
PLAIN TEXT
JAVASCRIPT:




 


prettyDate("2008-01-28T20:24:17Z") // => "2 hours ago"


prettyDate("2008-01-27T22:24:17Z") // => "Yesterday"


prettyDate("2008-01-26T22:24:17Z") // => "2 days ago"


prettyDate("2008-01-14T22:24:17Z") // => "2 weeks ago"


 





The library is short and sweet:
PLAIN TEXT
JAVASCRIPT:




 


/*


* JavaScript Pretty Date


* Copyright (c) 2008 John Resig [...]

Less maintenance code tutorials with Ajax Code Display

One of my main annoyances with writing code tutorials is that you need to maintain code in several locations: the code itself and the examples in the tutorial document. This is not really a problem when you can use a scripting language or print out the tutorials from a CMS, but when you just want [...]

Audience Measurement Demo

Laurent Nicolas has created an analytics solution, using GWT, that tracks fine grain access from users on a page.
It tracks:

The time spent on the site in various areas
Visibility: what was visible when
Content: Know if an ad was seen

There is also a nifty widget that allows you to shrink and grow the div size of comments.


Graceful Degradation of Firebug Console Object

Paul Irish saw the following graceful degradation of Firebug code in the Yahoo! media player:
PLAIN TEXT
JAVASCRIPT:




 


// code yanked from the Yahoo media player. Thanks, Yahoo.


if (! ("console" in window) ¦¦ !("firebug" in console)) {


    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group"


                 , [...]

A Study of Ajax Performance Issues

Coach Wei, of Nexaweb and Apache, has published a study of Ajax performance issues in browsers, and they won't surprise you:

Obviously, we would like to see browser vendors take a serious look into the following issues and put them on their roadmap:

In all major browsers, performance with Array and HTML DOM needs improvement in general.
Browsers [...]

O’Reilly Maker

Kiichi Takeuchi has created a cheeky little site called O'Reilly Maker that let's you create silly O'Reilly book covers in a live preview style using jQuery and Django.
Surely, Tim will get these guys to rename (remember Web 2.0 conferences?).
I am sure you can come up with funnier ones that I can, so add them to [...]