News

Microsoft and Nokia adopt jQuery

Announced on the jQuery blog, and by John Resig here at the Ajax Experience, jQuery is being adopted by Microsoft and Nokia as part of their official development platform. Microsoft will distribute the framework with Visual Studio and will build UI widgets to run on top of jQuery. Nokia is looking to use jQuery to develop applications for their WebKit-based Web Run-Time. To make this news even sweeter, Microsoft and Nokia aren’t looking to make any modifications to jQuery (both in the form of code or licensing) - they plan to use it as-is. This is some very exciting news and we'd like to congratulate the jQuery team on this milestone!

Read the full post.

Java API for RESTful Web Services Now Final

Tagged:  

The Java API for RESTful Web Services, JAX-RS (also known as JSR-311), has been approved by the final ballot of the SE/EE Executive Committee.

JAX-RS allows you to use @GET, @POST, @PUT, @DELETE, and other annotations to describe RESTful style web services in a manner similar to the way that JAX-WS does for SOAP and WSDL-based web services.

The java.net project page for JSR-311 is here. The reference implementation is called the Jersey project, but other implementations exist in the Restlet framework, JBoss RESTeasy project, and Apache CXF project.

Toward Better Concurrency

Tagged:  

We've all heard the same story: the "free lunch" for developers is over. The exponential rocket ride of single-processor performance is no longer feasible, and in order to sustain Moore's Law, scaling out with more processor cores is now the convention. Developers eager to give their software a performance boost can no longer simply wait for the next generation of hardware; instead they must write more concurrent code in order to maximize utilization of the available CPUs.

But concurrent programming (at least as it is practiced now) is complicated, and many developers cringe at the thought of race conditions, deadlocks, contention, and other problems that await them in the murky waters of multi-threading...In many ways they are in the same situation that they were with memory management back in the 1990's (before garbage collection became mainstream). Is there a "silver bullet" for concurrency waiting out there as well?

In this article I will cover some of the current and potentially near-future approaches to handling concurrency, and evaluate some of the potential "saviors-in-waiting".

Bluff - JavaScript Graphs

If you want to display data in a graph dynamically in a web page, you have a few options. You can create your own library to create the Graph or use an existing one. If you decide against using the Google Chart API you may want to look into Bluff. Bluff is a JavaScript library that uses canvas (Google’s ExCanvas is used to allow Internet Explorer support) to create a graph on a web page.

Below is an example of a graph and the code that is used to create it.

        <canvas id="example"></canvas>
        
        <script type="text/javascript">
          var g = new Bluff.Line('example', 400);
          g.theme_37signals();
          g.title = 'My Graph';
        
          g.data('Apples', [1, 2, 3, 4, 4, 3]);
          g.data('Oranges', [4, 8, 7, 9, 8, 9]);
          g.data('Watermelon', [2, 3, 1, 5, 6, 8]);
          g.data('Peaches', [9, 9, 10, 8, 7, 9]);
        
          g.labels = {0: '2003', 2: '2004', 4: '2005'};
        
          g.draw();
        </script>

You can download Bluff here.

You can read more about Bluff here.

b9j.uri : A JavaScript URI Object

Robert Krimen has created a JavaScript URI Object capable of parsing, manipulating, and generating URIs. It splits up a URI into three objects: the URI, the path, and the query. Changes to the path or query objects are reflected in their respective URI. Armed with a wide array of methods, the b9j.uri object is well equipped to handle even the toughest of URIs.

Here's a overview of b9j.uri.URI from Robert:

  • Parses using Steven Levithan's parseUri 1.2
  • Easy path traversal (ascend to parent, descend to a child)
  • Set or add to the URI query (with proper encoding), get/interrogate the query (with proper decoding)
  • Add arbitrary data (unencoded) to the end of the query string, for extra flexibility
  • Manipulate/interrogate the scheme, user information (username & password), host, port, fragment, and more in a piecewise fashion
  • Add, change or strip the extension (html, js, css, ...) from a given URI

The code is available at http://appengine.bravo9.com/b9j/b9j.uri.js (19kb compressed / 5kb gzipped)

TIBCO GI 3.6.1 - Now supports Firefox 3 and Safari 3

Tagged:  


Announced this morning, TIBCO has released a new version (3.6.1) of its General Interface Ajax Framework. This release adds support for Firefox 3 and Safari 3.1.2+.

For more information on GI, check out this flashy product overview.

Download TIBCO GI 3.6.1

Introducing Content Licenses on Google Code

Tagged:  

If you host or get code from Google Code then this will be of interest to you. Google code now has the availability of content licenses. This will help promote the best practice of licensing open source code.

The Google Code team is pleased to announce the availability of content licenses for projects hosted on code.google.com. Projects owners may now select from either the Creative Commons Attribution license or the Creative Commons Attribution-Share Alike license to indicate the terms under which their non-source code materials may be distributed.

You can read more about this here.

Ext GWT 1.0 Released

The Ext JS team has released version 1.0 of its SDK for developing GWT applications with the Ext JS library. Despite some controversy around Ext's licensing strategy (namely the switch from LGPL to GPL), Ext GWT is currently one of the better integrations between a Java web application framework and a JavaScript framework.

Ext GWT 1.0 has been compiled and tested against GWT 1.5 RC1. Downloads are located here.

FireFox 3 Released Today!

Tagged:  

Today is the official launch date for Mozilla's Firefox 3! The new version of the browser promises quite a few new features include performance improvements.

Below is an excerpt of a few new features.

Improved Platform for Developers

  • New graphics and font handling: new graphics and text rendering
    architectures in Gecko 1.9 provides rendering improvements in CSS, SVG as well
    as improved display of fonts with ligatures and complex scripts.
  • Color management: (set gfx.color_management.enabled on in
    about:config and restart the browser to enable.) Firefox can now adjust images
    with embedded color profiles.
  • Offline support: enables web applications to provide offline
    functionality (website authors must add support for offline browsing to their
    site for this feature to be available to users).
  • A more complete overview of href="http://developer.mozilla.org/en/docs/Firefox_3_for_developers">Firefox 3
    for developers is available for website and add-on developers.

Improved Performance

  • Speed: improvements to our JavaScript engine as well as profile guided
    optimizations have resulted in continued improvements in performance.
    Compared to Firefox 2, web applications like Google Mail and Zoho Office
    run twice as fast in Firefox 3, and the popular
    SunSpider test from Apple shows improvements over previous releases.
  • Memory usage: Several new technologies work together to reduce the amount
    of memory used by Firefox 3 over a web browsing session.
    Memory cycles are broken and collected by an automated cycle collector, a new
    memory allocator reduces fragmentation, hundreds of leaks have been fixed, and
    caching strategies have been tuned.
  • Reliability: A user's bookmarks, history, cookies, and preferences
    are now stored in a transactionally secure database format which will prevent
    data loss even if their system crashes.

You can read all about the new features here.

I am just waiting until I can download the software (should be any moment) and I'd love to hear if you plan on downloading Firefox 3 or if you prefer a different browser.

Is Digg Spy Broken?

Tagged:  

Digg Spy is the real time tracker that shows what is happening on the social network Digg as it happens. The tool is a great way to follow Digg in a different way than the normal view.

We at Ajaxonomy.com have written a tool called the Digg Bury Recorder that uses a feed from Digg Spy to capture all of the buries of stories that are recorded by Digg Spy. Recently it was brought to my attention that the Digg Bury Recorder does not seem to be recorder new buries. In looking into the issue I found that the feed is not returning any data.

Thinking that perhaps Digg changed the feed (they have done this before) I went over to Digg Spy to check if the feed that is being used and the feed that we are using is correct. However, after leaving Digg Spy up for a moment I quickly realized that the Ajax portion of Digg Spy does not appear to be working (go to the page and it will look like it is working, but once it gets past the pre-loaded information it no longer works).

Without the Ajax portion of Digg Spy the application is useless and I wonder if I wonder if Digg knows of the problem or if they purposely broke the application (perhaps in an attempt to stop applications like the Digg Bury Recorder, although this doesn't really make sense).

Syndicate content