2008 Oct 10
1 of 301 | IE8 and Standards - Anne van Kesteren of Opera Software has updated his post on IE 8 to cover beta 2:
XDomainRequest: Microsoft unfortunately continues with XDomainRequest rather than making changes to XMLHttpRequest as other browsers are doing and as is being standardized by the W3C Web Apps Working Group. (Disclaimer: I am the editor of XMLHttpRequest Level 2.)
Some agreement was made to at least support the same protocol on the server, namely using the Access-Control-Allow-Origin header as per Access Control for Cross-Site Requests. (Disclaimer: I am the editor of that draft too.) However, IE8 only supports * as value for that header, not an origin, e.g. http://annevankesteren.nl (test). Sunava pointe......
2008 Oct 08
2 of 301 | The myths and reality of XHTML -
Lack of support for XHTML is a fact of life on the web in 2008. Prior to the 3.0 series of Firefox the XHTML processor in Gecko was so poor that Mozilla’s own engineers recommended against it[27]; no version of Internet Explorer up to, and including, IE 8 support XHTML at all, and a number of other browsers such as Lynx were never written to handle XML in the first place.
The above quote comes from XHTML?—?myths and reality by Tina Holmboe, a member of the XHTML Working Group.
It is a nice piece that delves into:
Introduction
The Purpose of XHTML
XHTML and the Content Type
Strictly XHTML
Lack of support
Content–Negotiation
Recommendations
...
2008 Oct 07
3 of 301 | IE 8 beta 2 Ajax features - Sunava Dutta has detailed the enhancements made to IE 8 beta 2 for Ajax developers including XDR, XDM/postMessage, DOM Storage, offline detection, and more. A lot of great stuff!
XDomainRequest (XDR)
This is an object built from the ground up to make client-side cross-domain calls secure and easy. To reduce the chances of inadvertent cross domain access, this object requires an explicit acknowledgement for allowing cross domain calls from the client script and the server. Additionally, it reduces the need for sites having to resort to the dangerous practice of merge scripting from third parties directly into the mashup page. This practice is dangerous because it provides third parties ful......
4 of 301 | navigator.geolocation now available in Firefox via Geode -
When I posted about using navigator.geolocation now the only support that I had was via Gears and the ClientLocation API. I wrote the shim to try to get you the W3C API no matter what, and today we have the first implementation in a browser, via Geode.
Geode is the latest project in Mozilla Labs that gives you that API in Firefox. Aza Raskin has a nice Food Finder application that ties it together with local search and maps.
Differences between Geode and Geolocation in Firefox 3.1
Geode and the Geolocation Services in Firefox 3.1 will use the same W3C API for Geolocation, meaning that the same Javascript code will work in both. The still-in-developement Firefox 3.1 version will allow the ......
2008 Oct 06
5 of 301 | SMIL 3.0 Reaches Proposed Recommendation - Synchronized Multimedia Integration Language (or SMIL) 3.0 has now become a proposed recommendation at the W3C. SMIL hasn’t been widely used, but some of it is widely supported thanks to ACID tests that had the browser vendors put it in.
3.0 has the following goals:
Define an XML-based language that allows authors to write interactive
multimedia presentations. Using SMIL, an author may describe the temporal
behaviour of a multimedia presentation, associate hyperlinks with media
objects and describe the layout of the presentation on a screen.
Allow reusing of SMIL syntax and semantics in other XML-based
languages, in particular those who need to represent timing and
sync......
2008 Sep 25
6 of 301 | HTML Whitelist: Sanitize your markup - HTML Whitelist is the latest in the "cool little Python Web service thrown up on App Engine" by my good colleague DeWitt Clinton.
It does one thing, and it does it well. You can pass the service HTML and it will return a sanitized version.
For example:
PLAIN TEXT
HTML:
// original
The quick brown fox src="http://evil.com"> jumps over/kbd> the lazy dog.
// converted too
The quick brown fox <script src="http://evil.com"> jumps over/kbd> the lazy dog.
There are a bunch of options. You can pass in HTML, pass a URL to the content, using JSON and JSONP, and different encoding options.
...
7 of 301 | input type=camera to give us a simple way to integrate to Webcams - There are a substantial number of iPhone apps that tie into the builtin native components such as the camera.
Brad Lassey has been hacking on Fennec (the Mozilla mobile browser) as well as Firefox itself to integrate with camera phones and Webcams alike:
I wrapped a video tag, image and a few buttons in xbl and bound it to . When a user hits a website using this tag, he or she currently will see a live video preview and a “take photo” button. When the user clicks the button, the photo is grabbed from the camera and shown to the user in the image element. The image element and video element are in a deck element so only one is shown at a time. After the photo is taken, there is a button th......
8 of 301 | input type=camera to give us a simple way to integrate to Webcams - There are a substantial number of iPhone apps that tie into the builtin native components such as the camera.
Brad Lassey has been hacking on Fennec (the Mozilla mobile browser) as well as Firefox itself to integrate with camera phones and Webcams alike:
I wrapped a video tag, image and a few buttons in xbl and bound it to . When a user hits a website using this tag, he or she currently will see a live video preview and a “take photo” button. When the user clicks the button, the photo is grabbed from the camera and shown to the user in the image element. The image element and video element are in a deck element so only one is shown at a time. After the photo is taken, there is a button th......
2008 Sep 23
9 of 301 | Audible Ajax Episode 30: Interview with Kris Zyp - Dealing with data is one of those areas of software development that we haven’t quite gotten right yet; anyone who tells you otherwise is selling something (or has developed an open-source framework). Whether you embed SQL in your code, map objects to data via some kind of tool, mash it all up LINQ-style, or go all sci-fi with funky XML-all-the-way-down tools, each approach has a series of trade-offs and compromises that just don’t feel right.
Kris Zip, a researcher with SitePen, is throwing his hat into the ring with efforts he and others at SitePen are leading to provide Ajax developers with a fully coherent JSON stack. That is, frameworks and services that allow developers to deal entire......
2008 Sep 22
10 of 301 | PhoneGap: “AIR for the iPhone” - Dave Johnson calls PhoneGap "AIR for the iPhone" because this nice little hack, first created at an iPhone BarCamp, wraps the Web view with a container. This container gives the view access to APIs available on the device, that may not be available yet via WebKit alone. AIR provides a similar container for Flash and Ajax content on the desktop.
PhoneGap is a free open source development tool and framework that allows web developers to take advantage of the powerful features in the iPhone SDK from HTML and JavaScript. We're trying to make iPhone app development easy and open. For many applications a web application is the way to but in Safari you don't get access to the native iPhone APIs, ......
2008 Sep 19
11 of 301 | Dojo Toolkit 1.2 RC1 is Out! - The Dojo team has put out the much anticipated release candidate for the Dojo Toolkit 1.2. Lots of work has gone into this with new updates and features galore added to this release:
1000+ changes, improvements, and bug fixes since the 1.1.1 release
Huge improvements to Dijit include .attr() for getting and setting all attributes, and performance and polish improvements across all widgets
The new and greatly improved Dojo Grid, with full dojo.data integration
Enhancements to charting including tooltips, animations, events, legends, and several new chart types
doh.robot, providing unit testing integration with Selenium and Windmill
New features including but not limited to:
multi-file uplo......
2008 Sep 16
12 of 301 | Simon Willison, @Media Ajax - Simon Willison is talking about Ajax vulnerabilities at @media Ajax.
The main thing to worry about is users injecting Javascript - cross-site scripting (XSS). Other vulerabilities people used to talk about - trusting user input and checking for SQL injection attacks - are boring/easy.
If I have an XSS hole, I can steal your users’ cookies and log in as them, show a fake phishing page, embed malware, etc. And any service your site provides, I can perform it as if I was one of your users.
Reflected XSS - I embed my JS in a link to your site and trick your user to follow it.
Persistent XSS - I get my XSS onto your site’s database (e.g. by adding it to a forum).
Examples of XSS from facebook, ......
2008 Sep 04
13 of 301 | Zend Framework 1.6: Dojo, SOAP, Testing, Tooling, and more - Andi Gutmans announced Zend Framework 1.6 which includes the new Dojo support which they put to work on the site itself:
With this release we continue to provide enterprise-grade features with our new Zend_Soap component, which brings PHP-style simplicity to building and exposing SOAP web services. This component can operate in both WSDL and non-WSDL mode and makes creating or consuming a SOAP service a snap.
Preview of Tooling Project:
Zend_Tool is a component currently under development in the Zend Framework library. It provides services for generating and managing ZF-based projects. We are offering a preview release along with ZF 1.6 to collect feedback from users in a variety of env......
2008 Sep 01
14 of 301 | foreignObject: Hey, you’ve got HTML in my SVG! - The SVG foreignObject tag allows you to mix non-SVG content into your page. For example, you could drop some HTML in the middle of an SVG element.
Firefox 3 recently announced support for foreignObject; both Safari and Opera have supported this tag for awhile.
From Mark Finkle comes two examples (1, 2). The first embeds some HTML text into SVG shapes to take advantage of HTML's nice reflowing and text abilities:
Screenshot of HTML embedded in SVG
Here's the code that accomplishes this:
PLAIN TEXT
XML:
?xml version="1.0" standalone="yes"?>
xmlns = "http://www.w3.org/2000/svg">
x="10" y="10" width="100" height="150" fill="gray"/>
x="10" y="10" width="100" height="150">
......
2008 Aug 28
15 of 301 | The State of SVG Browser Support + Using Flash for SVG in Internet Explorer - As part of the Open Web Advocacy work I’ve started with Dion and others at Google, one of my goals right now is to help increase awareness and support around doing 2-D/vector graphics on the open web. This includes tools such as the Canvas tag, SVG (Scalable Vector Graphics, an XML markup language for vector graphics), and open source cross-browser drawing toolkits such as Dojo GFX, ExplorerCanvas, and Raphael.
One of the big reasons for this is that 2-D drawing/vector graphics is the top requested feature by double the amount of other feature requests in the recent Open Ajax Alliance Browser Feature Wish List vote-off. As part of this effort I’m doing a bootcamp right now to come up to spe......
2008 Aug 20
16 of 301 | WaveMaker 4: Point and Click Ajax - WaveMaker Studio 4.0 the Ajax based visual development platform for creating web applications has been released. Version 4.0 includes a new look and feel, usability improvements, and a host of new features.
Building applications has been made easier by a syntax highlighting code editor, improved widget drag and drop, undo, simplified data binding, more flexible css styling, and numerous usability tweaks.
Working with databases and web services has become a lot simpler. Forms are generated automatically, and applications can be setup to save data with just a few clicks. A new REST service importer expands WaveMaker's already stellar support for web services. Developers can also create Java ......
2008 Aug 15
17 of 301 | Custom events as API end points for key bindings and more - Inspired by the Gmail team and how they created well known Greasemonkey endpoints and the custom events work that I have been doing, I was lead to play with custom events as a way to tie into key bindings. This lead to the following post on my blog:
On the back of my example enjoying the Observer pattern with custom events I have started to play with a pet project also involving custom events.
I love keyboard shortcuts. I hate the mouse. I wish that Web applications would offer more keyboard shortcuts a la Gmail, and wondered if there could be a generic way to tie keys to actions in an app. There are things such as accessKey, but we need more.
If you start to follow the pattern of creating ......
2008 Aug 08
18 of 301 | Raphaël: Simple graphics wrapper on top of SVG and VML - Dmitry Baranovskiy of Atlassian has created Raphaël "a small JavaScript library that should simplify your work with vector graphics on the web. In case you want to create your own specific chart or image crop-n-rotate widget, you can simply achieve it with this library."
Raphaël uses SVG and VML as a base for graphics creation. Because of that every created object is a DOM object so you can attach JavScript event handlers or modify objects later. Raphaël’s goal is to provide an adapter that will make drawing cross-browser and easy. Currently library supports Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+.
The API looks like this:
PLAIN TEXT
JAVASCRIPT:
// Creates......
2008 Aug 06
19 of 301 | Ext 2.2: History, Selectors, FileUploader, and more - Ext 2.2 has been released, and it has features to complement the usual maintenance bug fixes and performance updates (Ext now works better in Firefox 3).
New features include:
CheckboxGroup / RadioGroup
Technically, while the individual Checkbox and Radio controls are not new, they may as well be, considering the overhaul they have had in this release. Gone are the ugly standard browser input controls, now replaced by attractive, visually-consistent Ext-ified versions (a long-overdue improvement).
In addition to that, we’ve added group controls for both that support complex layouts with just a config option or two. Previously in order to accomplish similar grouping layouts you would have h......
2008 Aug 01
20 of 301 | Another Jaxer 1.0 Release Candidate with new APIs - Greg Murray has blogged about a new release candidate for Aptana Jaxer that contains a lot of new features.
Kevin Hakman told us about the release:
We've had server-side JS database APIs all along, but now handing result sets is even easier. There's also now full fine grain control and access to the entire communication cycle with APIs for message headers, redirects, content and types. Speaking of types… for the first time with Jaxer, you can return content types other than HTML including JSON, XML, GIF, etc… Yes, even GIFs. Jaxer has a fresh new Image API that among other things can convert Canvas to static images and serve them up. Like, Greg, I too really like the idea of using Jax......
2008 Jul 29
21 of 301 | Ajax-Alexa-Thumbnails: API to get site thumbnails - Have you ever wanted to be able to easily grab a thumbnail image that represents a website?
Eric Ferraiuolo has created Ajax-Alexa-Thumbnails on Google Code, a library that builds on YUI to do just that.
The project consists of a server-side component written in PHP which makes the cross-domain request to Amazon's Alexa Site Thumbnail web service, and a JavaScript component which makes Ajax requests to configured server-side component and caches the results.
How do you call it?
PLAIN TEXT
JAVASCRIPT:
(function(){
YAHOO.util.Event.onDOMReady(function(){
var container = YAHOO.util.Dom.get("container");
YAHOO.EDF.Thumbn......
2008 Jul 23
22 of 301 | window.name meet dojox.io.windowName - We have written about using window.name as a transport and Kris Zyp has just posted about how Dojo has created a new dojox.io.windowName module.
The window.name transport is a new technique for secure cross-domain browser based data transfer, and can be utilized for creating secure mashups with untrusted sources. window.name is implemented in Dojo in the new dojox.io.windowName module, and it is very easy to make web services available through the window.name protocol. window.name works by loading a cross-domain HTML file in an iframe. The HTML file then sets its window.name to the string content that should be delivered to the requester. The requester can then retrieve the window.name val......
2008 Jul 18
23 of 301 | Lightweight Grid Control for jQuery - Developers are always looking for a great grid control that is easy to use, customizable and, of course, feature-rich. Paulo Mariñas has created just that for jQuery developers. Flexigrid is an extremely flexible grid control with provides many of the features highly-desired by developers. These include:
Resizable columns
Resizable height and width
Sortable column headers
Cool theme
Can convert an ordinary table
Ability to connect to an ajax data source (XML and JSON[new])
Paging
Show/hide columns
Toolbar
Search
Accessible API
Version 1.0b3, which was recently released provides:
Fixed paging problem on multiple instances
Mootools and Prototype noConflict() compatibility problems fixed
N......
2008 Jul 14
24 of 301 | HTML 5 data- elements to store private values - John Resig goes into more detail on the HTML 5 data- elements that gives developers a valid place to store metadata:
This allows you to write valid HTML markup (passing an HTML 5 validator) while, simultaneously, embedding data within your page. A quick example:
PLAIN TEXT
HTML:
class="user" data-name="John Resig" data-city="Boston"
data-lang="js" data-food="Bacon">
John says: Hello, how are you?
Which you can get at via some simple code:
PLAIN TEXT
JAVASCRIPT:
var user = document.getElementsByTagName("li")[0];
var pos = 0, span = user.getElementsByTagName("span")[0];
var phrases = [
{name: "city", prefix: "I am from "},
{name: "food"......
2008 Jul 11
25 of 301 | Verity Snob: How to be an instant Web me-2.0 developer - If you have time to step away from the iPhone, have a little giggle as "Verity Snob" has a piece on How to be an instant Web me-2.0 developer that includes the documented Web version numbers:
Web 1.0: Programming model equivalent to that of a slightly up-market 3270 terminal. Forms are filled in with the sequence: tab tab tab tab tab tab bonk.
Web 1.00001: The beginning of the rich web experience: the first ever, primitive Javascript code fragment is written. It generates an unwanted popup, and snaffles your credit card details.
Web 1.1: No visible difference from Web 1.0, apart from IE showing the text 'Javascript error' in its status bar.
Web 1.2: Standard buttons are upgraded with smart......
2008 Jun 10
26 of 301 | Silverlight 2 beta 2: cross domain connections, more controls, and animation -
Microsoft launched Silverlight 2 beta 2 last Friday (which seemed a bit strange….).
I saw this on the same day as some Adobe folks showed me an old thread that showed MLB.tv sneaking a context menu saying “About Silverlight” into the Flash version ;)
What is new in the latest beta? Danny Thorpe is looking forward to digging into the “new support for cross-domain connections using sockets, sibling to Silverlight’s existing cross-domain HTTP request.”
Full Feature List
Animation
Support for animating custom data points
Object Animation support (animating structs)
Deep Zoom
New XML-based file format
MultiScaleTileSource to wire up your own images and get the Deep Zoom......
2008 Jun 06
27 of 301 | Google Analytics after onLoad and document.write for XHTML - I saw two articles that were both looking at similar issues.
Firstly, Pete Higgins has looked at the fact that Google Analytics is normally loaded via serial script tags which cause the rest of the application to wait and created a simple wrapper that changes things.
We have all seen the tell tale: "waiting for google-analytics.com ... ".
This is usually before the body tag is closed, which causes [at least] Dojo's addOnLoad() function to wait until after ga.js has been loaded, and executed. I notice it most on the SitePen Dojo QuickStart guide. The whole guide is sent as valid HTML and CSS, then enhanced to break major sections into a custom tabbed view, with simple navigation. Unfor......
2008 Jun 05
28 of 301 | Javascript HTML Construction Benchmark - “innerHTML is 35 times faster than DOM.”
“DOM methods are just as fast!”
This is a constant argument, and statistics hardly help ;)
Laurens Holst of Backbase has taken a detailed look at the issue as he drew up his own benchmark.
People keep mentioning performance as an argument for using innerHTML, citing that article, so I thought I’d go and see what the reason was for the difference between his and my findings. It turns out that the benchmark has some flaws that skew the results very much in favour of innerHTML, which I’ll point out.
Content is never escaped
Selective HTML usage
XML is much faster than HTML
He re-ran the benchmarks on his system using the new browsers and ......
2008 Jun 04
29 of 301 | Mozilla Experiments with Applying SVG Effects to HTML - It seems so obvious once you think about it, but Rob O'Callahan from Mozilla took us by surprise in his blog post demonstrating his experimental branch of Gecko that allows you to apply SVG effects to HTML.
The code for applying the effects above follows:
PLAIN TEXT
XML:
xmlns="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg">
style="background:#ccc; font-size:30px;">
>
p { width:300px; border:1px solid black; display:inline-block; margin:1em; }
iframe { width:300px; height:300px; border:none; }
b { outline:1px dotted blue; }
>
class="target" style="background:lime;">
Lorem ipsum dolor sit amet, co......
30 of 301 | Nexaweb announces dojo.E markup and runtime - Nexaweb has released a new product that build on Dojo, dojo.E:
dojo.E provides developers with the ability to use an XML based markup language to add in their Ajax behaviors. Markup whether — XML, HTML or CSS — simplifies development by allow developers to convey in simple text format what they would otherwise need to convey in code. Markup also provides a great abstraction layer that separates the implementation from the usage.
This release, which is an Apache style open source project itself, consists of two pieces:
dojo.E Markup
dojo.E Markup allows developers to describe their dojo components using a simple markup language that translates directly into dojo classes. For example ......
2008 Jun 03
31 of 301 | crossdomain.xml, Java, and JNLP - Joshua Marinacci has detailed how Java SE 6 update 10 supports the same crossdomain.xml that Flash supports, and how you can marry it with JNLP to allow you to do Applet mashups without permission dialogs.
The applet security model, known as the sandbox, only lets applets connect to the webserver they were loaded from. They cannot connect to anywhere else unless they are signed. Signing is great when you need access to more than what is allowed inside the sandbox, but it has two problems: the user will receive an ugly warning dialog about the applet, and the applet will have full access to the user's computer. Full access is overkill when all you want to do is talk to a webservice on ano......
2008 Jun 02
32 of 301 | Yahoo! Design Stencil Kit 1.0 -
The folks at Y!DN have released Yahoo! Design Stencil Kit 1.0, which contains a full set of stencils that cover Web components in various states including:
Ad Units
Calendars
Carousels
Charts and Tables
UI Controls
Form Elements
Grids
Menus and Buttons
Mobile - General
Mobile - iPhone
Navigation and Pagination
OS Elements
Placeholder Text
Screen Resolutions
Tabs
Windows and Containers
Whip out Omnigraffle or your tool of choice and get going :)
You can download the artifacts in various formats: OmniGraffle,
Visio (XML),
PDF,
PNG,
SVG.
...
2008 May 27
33 of 301 | HTML 5 and a different kind of ruby support - Anne van Kesteren gave an XTech presentation on HTML 5 and boiled it down to this:
The Web’s language is HTML
The Web’s application language is HTML too
HTML is pretty broken
HTML5 to the rescue
Defines processing for all of HTML
Is for Web applications and documents
Is defined in as an abstract language
Can be written in both HTML (HTML5) and XML (XHTML5)
Is a multi-vendor effort
Worked on by overlapping groups: WHATWG and W3C HTML WG
HTML5 is (partially) implemented today
HTML5 can be used today
Great Community! (Wikis, tools, tests, reviewing)
, , , , …
, , …
Immediate mode graphics:
and
SQL storage, offline application cache, drag & drop, editing, …
Get involved:......
2008 May 15
34 of 301 | Ajaxian Featured Tutorial: Writing Your First YUI Application - Eric Miraglia has posted a great tutorial on how to build your first YUI application. He runs you through the steps of creating a simple application that leverages YUI’s AutoComplete Control to create a site-search form powered by the Yahoo!’s Search web service.
The tutorial is a great walkthrough of both how to build the application and also leverage YUI’s extensive documentation. It also touches on some great points such as:
How to configure a YUI implementation and put YUI on the page
How to set up the markup for a progressively-enhanced YUI widget
How to instantiate and configure a YUI widget
How to subscribe to and make use of the “custom evens” provided by a YUI widget
An......
2008 May 13
35 of 301 | Persevere: JSON Storage / Application Server -
Kris Zyp of Sitepen has released Persevere:
An open source set of tools for persistence and distributed computing using intuitive standards-based JSON interfaces of HTTP REST, JSON-RPC, JSONPath, and HTTP Channels. The core of the Persevere project is the Persevere Server. The Persevere server includes a Persevere JavaScript client, but the standards-based interface is intended to be used with any framework or client.
The Persevere Server is an object storage engine and application server
(running on Java/Rhino) that provides persistent data storage of dynamic
JSON data in an interactive server side JavaScript environment. It is
currently in beta, and boasts a very solid feature set t......
2008 May 12
36 of 301 | OpenKM: Open Source Document Management - OpenKM is a multi-platform application for document management based on GWT, JBoss, and Jackrabbit (the content repository API).
Version 2.0 has been released, which you can test drive to see the application-style interface. The new features in 2.0 include: the previsualization of multimedia elements as images and videos, an improved an rewritten administration interface, a centralized management of templates, an exclusive area to allow users to store their private documentation, a tool for massive import and output data from ZIP files, searches by date ranks as well as translations to more languages.
However, one of the more relevant functions to mention is the indexing of the most com......
2008 May 05
37 of 301 | HTML Parser in JavaScript - John must have had some downtime on Sunday afternoon, as he implemented an HTML parser in JavaScript. The library, that you can play with via this demo, lets you attack HTML in a few ways:
A SAX-style API
Handles tag, text, and comments with callbacks. For example, let's say you wanted to implement a simple HTML to XML serialization scheme - you could do so using the following:
PLAIN TEXT
JAVASCRIPT:
var results = " ";
HTMLParser("hello world", {
start: function( tag, attrs, unary ) {
results += " + tag;
for ( var i = 0; i length; i++ )
results += " " + attrs[i].name + '="' + attrs[i].escaped + '"';
results += (unary ? "/"......
2008 Apr 22
38 of 301 | Now your mobile phones get to take some Acid - Dominique Hazaël-Massieux, co-chair of the Mobile Web Test Suites Working Group at the W3C, has published a test in the spirit of the ACID tests: Web Compatibility Test for Mobile Browsers:
That test, in the same spirit as the ACID tests, combines in a single page tests for 12 Web technologies, ranging from well-deployed (but often poorly implemented on mobile devices) technologies such as HTTPS and PNG, to technologies we believe will matter in a year or two (like SVG animation and CSS Media Queries).
Tests are visualized by squares, sorted roughly in order of difficulty (first line, well-deployed technologies, second line, technologies increasingly used today, third line, technologies......
2008 Apr 21
39 of 301 | JSONVid: Pure JavaScript Video Player - Jacob Seidelin went on a ( crazy :) ) mission to create a pure JavaScript video player that didn't use Flash:
My first thought was to read binary video files using a technique like the Andy Na posted about here, figuring that there must be some really simple to parse video formats around, but I soon changed directions and decided to make up a whole new video format. Enter.. JSONVid. Using a player like mplayer, it is easy to export all frames in a movie clip to individual jpeg files, and using whichever language you prefer it is also fairly trivial to collect these files, base64 encode the bunch of them and throw them all together in a nice JSON file (I used this PHP script).
The forma......
2008 Apr 15
40 of 301 | Dojo XHR Plugins; How do you want your XHR today? - Neil Roberts goes into the XHR Plugins that Dojo uses and how you can extend the system to have your own.
If you look at dojo.xhrGet you will see "Acceptable values are: text (default), json, json-comment-optional, json-comment-filtered, javascript, xml", but:
What you may not know is that the handleAs parameter is merely a way of specifying what plugin to use. Knowing where these plugins are, how they work, and how they can be adapted to suit your project will allow you to make repetitive tasks easy and less error-prone.
He starts by piggybacking on the json style callback, and adds a hook so when you do a query, if there are updated objects out there, they come back in the JSON so y......
2008 Apr 11
41 of 301 | Mozilla Fennec: The mobile browser wars -
IE may be the dominant browser on the desktop, but the mobile wars are going strong. WebKit, Opera, and Pocket IE have a lot of users, but Mozilla has been a little weak in the past.
Now though, they have a new Fennec browser that takes the great performance gains in Firefox 3, and makes a mobile oriented version.
Sullivan explained that the Fennec project aims to bring the desktop Firefox user experience to handheld devices but will focus on meeting the unique requirements of mobile computing users. "Our goal on mobile is to embody the principles that have made Firefox so successful on the desktop, but with the recognition that mobile is different—not so much in that it presents some......
2008 Apr 08
42 of 301 | Web Archeology: Java Pluglet API - I started a new series of posts on Web Archeology where I look back at old Web tech to maybe divine some inspiration from the future. I am re-posting from my original blog
Even since Ben and I looked at the notes for the first version of Mozilla that supported XMLHttpRequest, which suddenly took the technology from “Some ActiveX for IE” to “Ajax”, I have been interested in hidden technologies that maybe never made it. In those notes for that release we saw no mention of XMLHttpRelease, but technology such as FIXptr was prominently mentioned.
Also, something interesting about Ajax is exactly the fact that the technology was available since 1997, but didn’t make it big until many more Di......
2008 Apr 07
43 of 301 | JavaScript SAX Based Parser - Gregory Reimer fancies SAX, and wished that a SAX parser was given to us by the JavaScript host environment. You can't blame him for not living DOM, but how about E4X? Or, StAX? Anyway, Gregory decided to build a SAX based parser in JavaScript itself, using simple search and replace:
After reading Search and Don't Replace over at John Resig's blog, it got me wondering if you could use that technique as the basis for a SAX parser in JavaScript. Of course there's nothing stopping you from building a SAX parser from scratch in JavaScript, but (methinks) the string tokenizer part of it would be a bit of a beast. However, by taking advantage of the optimization built into JavaScript's RegExp ......
44 of 301 | Spket IDE 1.6.11 Released - The team at Spket Studio continues to enhance their Eclipse-based Spket IDE announcing today the release of Spket IDE 1.6.11. The updates include:
A Theme Builder for the Ext JS framework (screenshot, tutorials)
Code assist for JavaScript improvements (references)
Code assist support JavaScript keywords and documention view for JavaScript editor (references)
Preferences for color of matching brackets (references)
Bugs: code assist for XML closing tag was fixed.
Bugs: Insert code snippets affect more than one editor was fixed.
Spket IDE 1.6.11 is immediately available for download.
...
2008 Apr 03
45 of 301 | qGallery: Prototype gallery application -
Sebastian Brink has developed a nice looking gallery application called qGallery
It is really simple to use you just have to upload your images in full resolution together with a simple xml file and include the script and a simple div into the webpage. Everything else is done automatically. The gallery is creating every used image on the fly with the help of some php scripts in the background.
It is developed on top of Prototype and a bunch of other libraries.
.