Tuesday, December 22, 2009
Friday, December 18, 2009
App Engine JavaScript SDK
App Engine JavaScript SDK: "Welcome to App Engine for JavaScript! With App Engine, you can build web applications using the JavaScript programming language"
Wednesday, December 16, 2009
Tuesday, December 15, 2009
JSON Hijacking
DO NOT use GET
or if you must, DO NOT return a JSON array.
return a JSON object.
The problem is that an array on its own is a valid javascript statement while an object is not (it needs to be assigned to something or passed to something). By returning valid javascript the request can accessed via a script tag instead of an XHR and executed. Excecuted arrays can be manipulated by malicious code.
I think this article should be renamed "JSON arrays considered harmful". Vulnerability currently only in "modern" e.g. Firefox, Chrome and Safari.
IE8 is too old fashioned.
Friday, December 11, 2009
sexybuttons - Project Hosting on Google Code
Sexy Buttons
Sexy Buttons is a HTML/CSS-based framework for creating beautiful web site buttons. These stylish, attention getting buttons can be used for calls to action wherever user interaction is desired. Compare Sexy Buttons with the standard browser buttons:
![]()
The framework is focused on being simple yet flexible and strives to be as easy to implement as possible.
Thursday, December 10, 2009
Monday, November 09, 2009
Firebug Lite
Firebug Lite: "Firebug is an extension for Firefox, but what happens when you need to test your pages in Internet Explorer, Opera, and Safari?
The solution is Firebug Lite, a JavaScript file you can insert into your pages to simulate some Firebug features in browsers that are not named 'Firefox'."
Fast by Default
66 slides: : Slides to Steve Souder's interesting talk about reducing page downloadtimes and increasing rendering speeds.
Friday, October 30, 2009
Underscore.js
Underscore.js: "Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It's the tie to go along with jQuery's tux."
Thursday, October 22, 2009
Case-Hardened Web Badges: the Live Version - kentbrewster.com
Case-Hardened Web Badges: the Live Version - kentbrewster.com
Today's Plan
Build a script that:
- uses modern DOM methods
- is firewalled from the rest of the page as much as possible
- requires nothing more than a single line of JavaScript
- creates structure, presentation, and behavior layers
- securely passes configuration variables from the page, if needed
- queries an outside Web service and displays the results
- allows further interaction with those results, without re-drawing the page
- works and plays nicely with other scripts, including multiple copies of itself
- runs right here, right now, on your laptop
Sunday, October 11, 2009
Modernizr
Modernizr: "What is Modernizr?
Have you ever wanted to do if-statements in your CSS for the availability of cool features like border-radius? Well, with Modernizr you can accomplish just that! The syntax is very intuitive, too:
.multiplebgs div p {
/* properties for browsers that
support multiple backgrounds */
}
.no-multiplebgs div p {
/* optional fallback properties
for browsers that don't */
}"
Tuesday, September 22, 2009
Google Code Blog: Gmail for Mobile HTML5 Series: Reducing Startup Latency
Google Code Blog: Gmail for Mobile HTML5 Series: Reducing Startup Latency: "To a user, the startup latency of an HTML 5 based application is critical. It is their first impression of the application's performance. If it's really slow, they might not even bother to wait for the app to load before navigating away. Even if your application is blazing fast after it loads, the user may never get the chance to experience it.
There are several aspects of an HTML 5 based application that contribute to startup latency:
1. Network time to fetch the application (JavaScript HTML)
2. JavaScript parse time
3. Code execution time to fetch the data and render the home page of your application"
Monday, September 07, 2009
Raphaël 1.0 RC; Get your graphics on
Raphaël 1.0 RC; Get your graphics on: "

Raphaël uses the SVG W3C Recommendation and VML as a base for creating graphics. This means every graphical object you create is also a DOM object, so you can attach JavaScript event handlers or modify them later. Raphaël’s goal is to provide an adapter that will make drawing vector art compatible cross-browser and easy.
Raphaël currently supports Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+.
Thursday, August 27, 2009
Timefire: On Reducing the Size of Compressed Javascript (by up to 20%)
Timefire: On Reducing the Size of Compressed Javascript (by up to 20%): "That leaves us with the built in GZIP compression that most web browsers include support for. The question is, can we improve compression while remaining compatible with the browser's decoder? There is an existing example of improving GZIP by injecting a reversible transform: bzip2 and the Burrows-Wheeler Transform.
Which brings up an interesting idea, can we do something like BWT's sort but for Javascript, in a way that doesn't require an extra pass to 'undo' the sorting?"
Friday, June 26, 2009
JavaScript InfoVis Toolkit - Interactive Data Visualizations for the Web
JavaScript InfoVis Toolkit - Interactive Data Visualizations for the Web: "The JavaScript InfoVis Toolkit provides tools for creating Interactive Data Visualizations for the Web."
Thursday, May 21, 2009
John Resig - ECMAScript 5 Objects and Properties
John Resig - ECMAScript 5 Objects and Properties: "ECMAScript 5 is on its way. Rising from the ashes of ECMAScript 4, which got scaled way back and became ECMAScript 3.1, which was then re-named ECMAScript 5 (more details)- comes a new layer of functionality built on top of our lovable ECMAScript 3.
There are a few new APIs included in the specification but the most interesting functionality comes into play in the Object/Property code. This new code gives you the ability to dramatically affect how users will be able to interact with your objects, allowing you to provide getters and setters, prevent enumeration, manipulation, or deletion, and even prevent the addition of new properties. In short: You will be able to replicate and expand upon the existing JavaScript-based APIs (such as the DOM) using nothing but JavaScript itself."
Wednesday, May 20, 2009
YouTube - Changes to JavaScript, Part 1: EcmaScript 5
YouTube - Changes to JavaScript, Part 1: EcmaScript 5: "In this first talk, we'll explain changes in EcmaScript 5, the problems they're meant to address, the de-facto standards they codify,
and how these changes are likely to affect web applications."