Activate your free membership today | Log-in

Wednesday, August 27th, 2008

Internet Explorer 8 Beta 2 and Web Standards

Category: Announcements, Browsers, IE

Internet Explorer 8 Beta 2 was released today. There are several cool UI enhancements that this beta brings to the table that I won't cover in this post, but you can learn more about them on the IEBlog. Instead, I want to talk about how beta 2 affects IE's relationship to web standards.

First, CSS Expressions are no longer supported in Standards Mode:

Also known as 'Dynamic Properties', CSS expressions are a proprietary extension to CSS with a high performance cost. As of Internet Explorer 8 Beta 2, CSS expressions are not supported in IE8 standards mode. They are still supported in IE7 Strict mode and Quirks mode for backward compatibility.

In case you don't know, CSS expressions were actual bits of JavaScript that you could run from CSS rules; this was commonly used to simulate the CSS max-width property for IE:

CSS:
  1.  
  2. div.someClass {
  3. /* Internet Explorer */
  4. width: expression(document.body.clientWidth> 600) ? "600px" : "auto";
  5. /* Standards-compliant browsers */
  6. max-width: 600px;
  7. }
  8.  

IE 8 beta 2 also now supports alternate style sheets:

Internet Explorer 8 now supports alternative style sheets as specified by HTML4 and CSS2.1. The alternative styles that are defined by the Web page author is available through the Style menu under the Page menu. The styles are also available through the Style menu under the View menu. The No Style option on either menu can be used to disable all authors styling.

In terms of the Known Issues with IE 8 Beta 2, the first is related to Ajax bookmarking and back button support and using window.location.hash to do cross-domain communication:

Internet Explorer 8 create entries in the travel log and back button for each instance of window.location.hash that is set. This is part of the behavior for Internet Explorer 8 AJAX Navigation. If you use this technique to communicate between documents, we recommend that you switch to the Internet Explorer 8 Cross Document Messaging feature that is based on Section 6.4 of the HTML 5.0 specification.

Finally, there are some issues with the onload event for IE's XDomainRequest object that helps with cross-domain communication:

The onload event may not fire reliably. We recommend you use the onprogress events which continues to fire as the data is received.

Unfortunately this is it for this release. You can see the full Beta 2 release notes, or download it yourself.

On a related note, IE 8 Beta 2 includes cross-site scripting attack (XSS) protection:

The XSS Filter operates as an IE8 component with visibility into all requests / responses flowing through the browser. When the filter discovers likely XSS in a cross-site request, it identifies and neuters the attack if it is replayed in the server’s response. Users are not presented with questions they are unable to answer – IE simply blocks the malicious script from executing.

Finally, PPK has also published a post on IE 8 Beta 2 and its changes.

Posted by Brad Neuberg at 5:59 pm
3 Comments

+++++
5 rating from 1 votes

Friday, August 22nd, 2008

Gears 0.4 + Mashup of Gears and Google App Engine

Category: Announcements, Gears, Screencast

Hi folks, this is my first guest blog post here on Ajaxian. It's great to join the team.

Gears, the open source browser plugin that teaches web browsers new tricks, has pushed out a new 0.4 release

Andrei Popescu from the Gears team lets us in on some of the nifty new features:

We have added a new Geolocation API, which allows you to build applications that can do new and exciting things based on your users' location. You can query Gears for the user's current location using the getCurrentPosition() method or you can ask Gears to notify you every time the location changes, using the watchPosition() method. Of course, we take privacy issues very seriously, which is why we have a special permission dialog that allows users to decide which Web sites should have access to their location information. If you want to learn more about how the Geolocation API works, please see the Google Code blog post.

In addition, Gears now makes uploading large and multiple files on the web much easier, giving you the primitives to roll a resumable uploader, which means hopefully we can see custom desktop uploaders go away soon. In addition, Gears 0.4 introduces a new thing called Blobs:

Another cool new feature is the Blob API. Unlike strings, blobs let you reference arbitrary binary data — a first for JavaScript! Therefore, blobs can more naturally represent things like files and images, and they can be passed around efficiently. We have updated several existing APIs to work with blobs, such as WorkerPool sendMessage() and HttpRequest send(). And that's not all! We have also extended the Desktop API with a new method, openFiles(), which allows users to select multiple files of a particular content type, and then returns them as blobs for easy uploading or worker processing.

As a final note, Gears is continuing to push new features and experiments like the Geolocation API into the standards process:

Finally, an update on how we are doing on Web standards: in line with our earlier promises, the Geolocation API is a W3C Editor's draft and its current design is a result of open collaboration with many other people and organizations. We plan to continue to drive this standardization effort, as well as work with the community on new Web standards.

I decided to give the new Gears 0.4 APIs a roll to illustrate how powerful they are when put together, mashing them up to create a sample application. In addition, I needed a server-side implementation, so I created a Python server-side that runs on Google App Engine. This mashup is named Upload Movie Tool (not the most creative name, I know ;)

This demo allows you to select multiple movies, and then upload them in a resumable way with feedback using the Gears Blob and File System API. We also use the Geolocation API to figure out what your location is for tagging the video, and the Google App Engine to store everything on the back-end.

Give the demo a try yourself, or check out its source code (see the client JavaScript and the Google App Engine Python). This code is open source so you can feel free to use it as the basis of your own Gears-based resumable uploader/geolocation app.

I put together a screencast where I run through the application. There is a bonus if you make it all the way to the end, with videos showing Dion and I using the new slide that was installed last week in the Google San Francisco office!


 
Disclosure: I work for Google

Posted by Brad Neuberg at 9:50 am
Comment here

++++-
4.4 rating from 14 votes

Friday, May 9th, 2008

oEmbed makes embedding third party videos and images a breeze

Category: Announcements, Standards

Flickr, Viddler, Qik, Pownce and Revision3 are the first services to support oEmbed, an easy way to allow embeding media from a certain URL in a third party site.

From the oEmbed site:

oEmbed is a format for allowing an embedded representation of a URL on third party sites. The simple API allows a website to display embedded content (such as photos or videos) when a user posts a link to that resource, without having to parse the resource directly.

This means that if you for example find a nice photo on flickr, you can take the URL and easily turn it into embed-able data:

Original URL: http://flickr.com/photos/codepo8/2475016321/

oEmbed URL: http://flickr.com/services/oembed?url=http://flickr.com/photos/codepo8/2475016321/

Result:

XML:
  1. <oembed>
  2.   <version>1.0</version>
  3.   <type>photo</type>
  4.   <title>? too much myspace error</title>
  5.   <author_name>codepo8</author_name>
  6.   <author_url>http://www.flickr.com/photos/codepo8/</author_url>
  7.   <cache_age>3600</cache_age>
  8.   <provider_name>Flickr</provider_name>
  9.   <provider_url>http://www.flickr.com/</provider_url>
  10.   <width>500</width>
  11.   <height>375</height>
  12.   <url>
  13.     http://farm4.static.flickr.com/3128/2475016321_982666ec95.jpg
  14.   </url>
  15. </oembed>

You can define the output format and the maximum width and height with URL parameters:

oEmbed URL:

http://flickr.com/services/oembed?url=http://flickr.com/photos/codepo8/2475016321/&format=json&maxwidth=200

Result:

JAVASCRIPT:
  1. {
  2.   version: '1.0',
  3.   type: 'photo',
  4.   title: '? too much myspace error',
  5.   author_name: 'codepo8',
  6.   author_url: 'http://www.flickr.com/photos/codepo8/',
  7.   cache_age: '3600',
  8.   provider_name: 'Flickr',
  9.   provider_url: 'http://www.flickr.com/',
  10.   width: '100',
  11.   height: '75',
  12.   url: 'http://farm4.static.flickr.com/3128/2475016321_982666ec95_t.jpg'
  13. }

Supported formats for responses so far are photo, video, link and rich.

Posted by Chris Heilmann at 6:33 am
11 Comments

++++-
4.6 rating from 7 votes

Thursday, May 1st, 2008

Adobe lifts SWF/FLV restrictions and creates Open Screen Project

Category: Adobe, Announcements

I start with an aside; This must be the most un-Adobe website I have ever seen. Below is the entire website for the Open Screen Project:

Open Screen Project

As the site says, the details are in the press release which says:

The Open Screen Project is working to enable a consistent runtime environment -- taking advantage of Adobe Flash Player and, in the future, Adobe AIR -- that will remove barriers for developers and designers as they publish content and applications across desktops and devices, including phones, mobile Internet devices (MIDs), and set top boxes. The Open Screen Project will address potential technology fragmentation by enabling the runtime technology to be updated seamlessly over the air on mobile devices. The consistent runtime environment is intended to provide optimal performance across a variety of operating systems and devices, and ultimately provide the best experience to consumers.

The cool part of all of this, is the fact that the old restrictions on the SWF and FLV specifications are now in the past. The restrictions used to say that if you read the SWF spec, you couldn't build something that would run SWF files. So, could build an editor, a tool, but not a runtime in anyway.

This has just changed by:

  • Removing restrictions on use of the SWF and FLV/F4V specifications
  • Publishing the device porting layer APIs for Adobe Flash Player
  • Publishing the Adobe Flash Cast protocol and the AMF protocol for robust data services
  • Removing licensing fees - making next major releases of Adobe Flash Player and Adobe AIR for devices free

With news of OpenJDK coming at JavaOne next week, we will see changes with the most deployed runtimes out there. Just the beginning of the path towards an open source Flash.

I keep thinking of the JVM playing FLV/SWF, and the Flash player grokking .class files!

Posted by Dion Almaer at 1:10 am
4 Comments

++++-
4.9 rating from 33 votes

Friday, March 28th, 2008

Dojo 1.1 Released

Category: Announcements, Dojo

The Dojo team has released version 1.1 which includes from over 800 improvements:

  • An easy to use and significantly improved Dojo API Viewer with some seriously great features, including the ability to easily find the original definition of a method that is “mixed-in”
  • A growing collection of demos, tutorials, and articles
  • A new BorderContainer Dijit, which is a much better way to handle layout-based widgets than SplitContainer and LayoutContainer
  • Significant performance improvements to dojo.query and dojo.fx
  • Support for Adobe AIR and Jaxer, and updated dojox.flash and dojox.offline APIs
  • Major improvements to Dijit infrastructure and widgets
  • All around Dijit theme improvements including the CSS structure for themes, refinements to the Tundra theme, re-introduction of the Soria theme, and the newly added Nihilo theme
  • DTL, the Django Template Language, is now available for use in widgets with dojox.dtl
  • Vector graphics animations
  • Additions to DojoX including an analytics package
  • Improvements to Dojo Data and RPC, and support for JSONPath
  • Many improvements to the build system including CSS optimization, multiple-versions of the Dojo Toolkit co-existing in the same document, and other great tools for optimizing performance

What is next for Dojo 1.2?

On to 1.2, where the focus will be on continuing to refine Dijit, the Dojo Grid, Dojo Charting, a better approach to DojoX, and much much more.

Posted by Dion Almaer at 9:33 am
13 Comments

++++-
4.4 rating from 70 votes

Thursday, March 20th, 2008

Ajax on Embedded Devices such as the BarracudaDrive

Category: Announcements

There is something cool about being able to write an Ajax app on an embedable device.

The people behind BarracudaDrive have released a free version of the BarracudaDrive Ajax application server for the Linksys NSLU2 and the Unslung Linux firmware.

Developers can customize and write their own applications by using the integrated scripting language Lua Server Pages, which is based on the super fast scripting language Lua. The server includes its own integrated database engine, thus making it possible to create configuration less database powered applications such as the CMS. The server also includes the Bindows Ajax framework.

The integrated scripting language Lua Server Pages (LSP) is similar to how ASP and PHP works. BarracudaDrive LSP applications are deployed as standard ZIP files. The ZIP files, which are in the "applications" sub directory are loaded and mounted as read only file systems by the web server. The server can also load "non deployed" applications. The "non deployed" Lua Server Pages (LSP) are compiled on demand just like PHP and ASP pages are compiled.

Posted by Dion Almaer at 6:59 am
Comment here

+++++
5 rating from 10 votes

Wednesday, March 12th, 2008

RadRails 1.0 Released

Category: Announcements, Aptana, Rails, Screencast

Aptana took over the RadRails open source project a few months back, and now have fully integrated it with Aptana Studio with the RadRails 1.0 release.

RadRails 1.0 runs as a plug-in to Aptana Studio. So in addition to all the Ruby on Rails IDE goodies and the integrated Rails shell command-line console, developers get the great HTML, CSS, DOM, JavaScript and Ajax features in Aptana Studio, which can run stand alone or within Eclipse to that all your other Eclipse tools can be right there as well.

The new version has a slew of new and enhanced functionality such as:

  • Rails 2.0 support
  • JRuby support
  • Bundled auto-installing gems for rails development
  • A Ruby profiler for Pro users
  • An RDoc preview view
  • Extended RHTML/ERb color preferences
  • Code completion for ActiveRecord model fields and finders
  • Code completion suggesting method call arguments
  • Significant expansion of code warnings and analysis, including syntax changes from Ruby 1.8 to 1.9
  • An improved look and feel

You can watch a screencast of the product at work or a full feature list.

Aptana continues to add new functionality to its products as it tries to hit the "best tools for Web development with scripting languages" vision.

Posted by Dion Almaer at 10:07 am
Comment here

++++-
4.5 rating from 13 votes

Tuesday, March 11th, 2008

Sitepoint releases HTML reference as a beta

Category: Announcements, Browsers, Microformat

While this is not strictly Ajax or JavaScript related, it is noteworthy to point out that Sitepoint just released a HTML reference that is quite handy to have around if you wonder if what you are building is really HTML or just tagsoup.

Good HTML references are really hard to come by, either they are just listings, like W3schools.com or terribly outdated. Sitepoint have done quite a good job in listing all the HTML elements and categorizing them into different use cases. There is also a list of deprecated elements and attributes to avoid (which could be considered dangerous to still bring up as some of them are too handy to simply add to solve an issue) and a Microformats primer.

We know for a fact that other portals/article sites are working on similar projects and consider it a really good way of flushing old and outdated tutorials on things as simple but important as markup out of the search engine result pages.

The reference also gives a legend of browser support, something that so so far was only available on the German SelfHTML reference.

Posted by Chris Heilmann at 4:33 pm
5 Comments

+++--
3.7 rating from 21 votes

Wednesday, March 5th, 2008

The FireEagle has landed - personal location information for your applications

Category: Announcements, Conferences, Toolkit, Yahoo!

Yahoo's Tom Coates today finally released FireEagle at ETech 2008. Seeing Tom in the office for quite a while getting everything ready makes me very happy to announce that it is out and invite you to come along and sign up for the beta to start testing and - even more importantly - developing applications for it. This is FireEagle:

Fire Eagle is an open location services platform offering web, mobile, and desktop developers a simple way to build new location-based applications while also ensuring that consumers have complete control over their data, including how, when and where their location is made available. Want to easily make your site responsive to a user's location? Or, maybe you've found a way to capture someone's location and you want to find cool apps to plug it into? By doing the heavy lifting and connecting you to a community of geo-developers, Fire Eagle makes it easier to build location-aware services.

Once you got in you'll be able to download development kits in several languages including PHP, Python, Ruby and of course JavaScript. All the API calls are REST and the API authentication is handled via OAuth. The output format is either XML or JSON. The code is licensed with BSD and you can even contribute to the FireEagle source at a code repository.

The available API calls are:

user
Returns the location of a specific user in a location hierarchy format.
recent
Returns a list of users of the application who have updated their location within the given amount of time.
within
Takes a Place ID or a WoE ID and returns a list of users using your application who are within the bounding box of that location.
update
Sets a user's current location using using a Place ID hash or a set of location parameters. If the user provides a location unconfirmed with lookup method then Fire Eagle makes a best guess as to the user's location and updates.
lookup
Disambiguates potential values for update. Results from lookup can be passed to update to ensure that Fire Eagle will understand how to parse the location parameter.

You can learn more by watching the video of Tom explaining FireEagle at ETech.

The uses for a service like this are endless. From sensible search applications that show you places of interest nearby your current location up to real-life games of high-tech hide and seek everything is possible.

Posted by Chris Heilmann at 6:33 pm
1 Comment

+++--
3.8 rating from 5 votes

Tuesday, March 4th, 2008

Snook Live Chat Tomorrow (3/5/08)

Category: Announcements, JavaScript

Jonathan Snook will be conducting a live chat tomorrow (3/5/08) at 10:00am EST (15:00 GMT) via UStream. Here are the details:

  • Location: http://www.ustream.tv/channel/snookca
  • Date/Time: 3/5/08 at 10:00am EST (15:00 GMT)
  • Topic: Q&A relating to Jonathan's development work with Adobe AIR, and questions regarding JavaScript, frameworks (PHP or JavaScript), or about freelancing.

This is definitely a good opportunity to pick the brain of one of the top professionals around.

Posted by Rey Bango at 11:50 am
Comment here

+++--
3.4 rating from 13 votes

Friday, February 29th, 2008

Snoto Photo: Snook, Flickr and AIR

Category: Adobe, Ajax, Announcements, MooTools

After recently installing Snitter, I have to say I've become a bit of a fanboy of Jonathan Snook. The guy just produces some good stuff. So when I saw that he announced a new AIR application, I had to get it installed and checked out.

While Snoto (ya know, Snook, Snitter, Snoto) isn't as polished as Snitter, it's not meant to be. Jonathan has released this as a foundation for those that want to understand how to build AIR applications.

The goal of this is not to create a Flickr client that "does it all". It was put together as a reference application for anybody interested in learning more about Adobe AIR. Snoto has been released under a Creative Commons license, so it's available for you to take and extend how you wish. The link to the source code is included at the bottom of the Snoto page.

This is a great help to many developers as interest in Adobe AIR has skyrocketed since the release of AIR v1.0. MooTools developers should be especially pleased with the fact that Snoto was built using the MooTools JavaScript library, specifically because of the ease with which AIR applications can be developed without jumping through hoops. While other JS libs are now updated to work with AIR's security model, MooTools was the first to be compatible even during the beta process.

Again, the biggest benefit is to those that want to learn about working with the AIR API:

From the AIR API, I haven't gone hogwild but rather kept it simple. You can see use of nativeWindow, context menu and EncryptedLocalStore.

Having access to Webkit made styling the interface very straightforward. Like Snitter, it's a combination of background images, PNG images, and some CSS3/border-radius to round things out.

The Snoto page has been setup with an AIR install badge which should make it easy to check it out.

Posted by Rey Bango at 12:33 pm
7 Comments

++++-
4.3 rating from 29 votes

Pownce API v2.0 Released

Category: Announcements, Toolkit

The Pownce team has been working hard to get their API up to speed and have gotten the API to a point where some cool applications can be built from it. Yesterday, they announced v2.0 of the Pownce API:

We’re sorry it took so long for us to release a complete API. We’ve taken great care to provide the best experience for developers and we hope the wait was worth it. Going forward, we’ll be working hard to keep Pownce the best social messaging application out there.

Well worth the wait, new features include:

  • Ability to post notes
  • Ability to post messages, links, files, events and replies
  • Ability to fetch lists of private and friends-only notes.
  • Integration of OAuth token-based web authentication.

This should open the doors for building new custom Pownce clients and applications similar to what's been done with Twitter.

In addition, the Pownce team has created a new application directory to showcase applications built by developers.

Documentation for Pownce API v2.0 can be found here: http://pownce.pbwiki.com/API+Documentation2-0

Posted by Rey Bango at 12:09 pm
1 Comment

+----
1.8 rating from 13 votes

Friday, February 8th, 2008

jQuery 1.2.3: Support for AIR, Namespacing

Category: Announcements, jQuery

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 now compatible with Adobe AIR, will be included in Drupal 6, and will be the base for jQuery UI 1.5. Additionally, a couple minor features, for plugin developers, were included in this release.

Another notable feature is the enhancement of the namespaced event methods, specifically unbind(), which now allows you to remove all bound events that match a particular namespace.:

LANGUAGE:
    $("div").bind("click.plugin", function(){});
    $("div").bind("mouseover.plugin", function(){});
    $("div").unbind(".plugin"); // All handlers removed

You can download this new jQuery release via the following links:

jQuery 1.2.3:

If you wish to checkout the full release from the Subversion repository, you can do so by following the instructions and checking out the source from the following location:

svn co http://jqueryjs.googlecode.com/svn/tags/1.2.3

Posted by Rey Bango at 9:48 am
30 Comments

+++--
3 rating from 66 votes

Friday, January 25th, 2008

YUI ready to celebrate 2nd Birthday

Category: Announcements, Fun, Yahoo!

The Yahoo User Interface library is now almost 2 years old and the team is getting ready to celebrate with a party on the Yahoo! campus in Sunnyvale, California.

If you're around on 26th of February, why not drop by for the celebrations, meeting the people behind and get some inside information about what the future holds for the YUI. Apart from that, there'll be the obligatory food and beers and of course some schwag to take away. Space is currently limited to 150 people, so be quick if you want to come.

You can find out more about the party on the YUI blog and sign up for the party on upcoming.

Posted by Chris Heilmann at 5:46 am
Comment here

+++--
3.8 rating from 12 votes

Tuesday, January 15th, 2008

jQuery 1.2.2 Released

Category: Announcements, Library, jQuery

jQuery has a new release, 1.2.2, which is a bug fix release and more. This release comes on the 2nd birthday of jQuery:

I remember doing the first release at BarCamp NYC (combined with the mention of two other projects of mine that fizzled: Feed Pile and Idea Shrub). While I had released a bunch of open source code in the past, this was the first one that I put some serious effort into getting publicity. Luckily it made it onto del.icio.us/popular, digg - and the rest is history.

Amusingly, the entire chain of popularity was due to the fact that I made a troll-y comment on a Prototype blog post (when they announced their new selector feature) and it was discovered and re-blogged by Ben Nolan (creator of the Behaviour library for Prototype). From there it hit the Rails community and was launched onto del.icio.us, digg, etc.

The major changes are:

  • 300% Speed Improvements to $(DOMElement)
  • .ready() Overhaul: Uses Diego Perini's non-document.write() technique, now wait for CSS to be ready, can now watch for the document ready event via the traditional .bind()
  • .bind("mouseenter") / .bind("mouseleave")
  • Complex :not()
  • Accepts Headers
  • Event API: jQuery.event.special setup teardown handler

You can download the latest release (minified).

Posted by Dion Almaer at 12: