jerakeen.org

by Tom Insam

notes☴

code☷

links☲

photos☵

jQTouch

jQTouch

created 08 July 2009 in links tagged iphone, javascript, jquery and mobile.

File under ‘things to look at in my week off’, it’s another IUI-like library for doing iPhone web applications

http://jqtouch.com/

The Small Stuff

created 11 June 2009 in talks tagged hate, javascript, perl, programming, python and ruby and is geotagged

A talk I gave at the BCS Evening of Dynamic Languages event, on some of the small, trivial, and therefore really annoying differences between the four programming languages I spend the most time using.

node

node

created 03 June 2009 in links tagged hosting, javascript and server.

Wow. Batshit V8-based server-side JavaScript environment. Can be used to write web servers, but also just about anything else. Also, has a totally hardcode ‘nothing blocks, ever’ philosophy that means that just about everything happens in closure-based callbacks, letting you write a single-threaded web server that can deal with many incoming connections at once.

http://tinyclouds.org/node

EXIF GPS info, Google Maps - Nihilogic

EXIF GPS info, Google Maps - Nihilogic

created 24 April 2009 in links tagged exif, gps and javascript.

Using Javascript to extract GPS information from the EXIF tags of jpegs. Awesomely evil.

http://blog.nihilogic.dk/2008/06/exif-gps-info-google-map...

Unobtrusive Table Sort Script

Unobtrusive Table Sort Script

created 10 February 2009 in links tagged html, javascript, sort and table.

Another Javascript html table sorter.

http://www.frequency-decoder.com/2006/09/16/unobtrusive-t...

Track outbound clicks with Google Analytics and jQuery

Track outbound clicks with Google Analytics and jQuery

created 29 January 2009 in links tagged analytics, google, javascript and jquery.

Using jQuery to automatically mark up all outgoing links on a site so that Google Analytics can track them.

http://blog.rebeccamurphey.com/2008/01/06/track-outbound-...

mod_v8 for apache

mod_v8 for apache

created 26 January 2009 in links tagged hosting, javascript, mod_js, mod_v8 and server.

So, mod_js wasn’t insane enough. Now there’s mod_v8, using the new Google JavaScript engine.

https://svn.i-want-a-pony.com/repos/mod_v8/trunk/

EtherPad: Realtime Collaborative Text Editing

EtherPad: Realtime Collaborative Text Editing

created 19 November 2008 in links tagged appjet, collaborative, editor and javascript.

It’s SubEthaEdit, on the web, and it’s astonishingly good. AppJet clearly does something comet-like as well.

http://etherpad.com/

Sparklines.js

Sparklines.js

created 20 August 2008 in links tagged javascript, processing and sparklines.

Javascript sparklines library. Looks pretty.

http://www.willarson.com/code/sparklines/sparklines.html

280slides.com

280slides.com

created 06 June 2008 in links tagged javascript, presentation, software and web.

An astonishingly good implementation of web-based presentation software. Very hard to believe it’s written in JavaScript.

http://280slides.com/Editor/

Trivial iPhone / iPod Touch delicious front end

created 23 January 2008 in blog tagged ajax, delicious, iphone, ipod, javascript, software and touch.

I’ve been looking for an excuse to play with IUI for a while now, and finally I found one. I wanted a way of getting at things that I and my friends have saved in del.icio.us, and the native web interface isn’t very usable on the iPod touch. So let’s implement a delicious client using IUI! Also, let’s implement it in pure client-side JavaScript, so I don’t have to run a server anywhere!

So, here’s a trivial implementation. It’s hard-coded to look at my links and friends, but that’s not hard to fix, I just don’t care. The thing I’m happiest with is the way it’s entirely client-side, and pulls in things from the delicious JSON api as it needs them. And it’s pretty small, too..

jRails - jQuery on Rails

jRails - jQuery on Rails

created 21 November 2007 in links tagged javascript, jquery and rails.

Makes all the Rails JS helpers work with jQuery, rather than prototype

http://ennerchi.com/projects/jrails

IEBlog : Scripting Debugging in Internet Explorer

IEBlog : Scripting Debugging in Internet Explorer

created 22 October 2007 in links tagged debug, internetexplorer and javascript.

Tools for debugging JS in internet explorer. They make it less unbearable.

http://blogs.msdn.com/ie/archive/2004/10/26/247912.aspx

RussellBeattie.com - Server Side JavaScript and the Universal Scripting Language

RussellBeattie.com  - Server Side JavaScript and the Universal Scripting Language

created 08 October 2007 in links tagged javascript and server.

REALLY GETTING ANNOYING NOW

http://www.russellbeattie.com/blog/server-side-javascript...

as days pass by » Blog Archive » DOMContentLoaded for IE, Safari, everything, without document.write

as days pass by  » Blog Archive   » DOMContentLoaded for IE, Safari, everything, without document.write

created 26 September 2007 in links tagged ajax, embed, html and javascript.

Useful snipped to fire an event once the DOM is loaded. Cross-browser and doesn’t need a large library.

http://www.kryogenix.org/days/2007/09/26/shortloaded

New in Rhino 1.6R6 - MDC

New in Rhino 1.6R6 - MDC

created 01 August 2007 in links tagged javascript, release, rhino and strict.

oooh, strict mode for JavaScript. And Rhino is catching up with all the nifty SpiderMonkey stuff I like. Still no deconstructed assignment, though.

http://developer.mozilla.org/en/docs/New_in_Rhino_1.6R6

Optional catch in JavaScript

created 26 July 2007 in blog tagged exceptions, javascript, programming, rhino and spidermonkey.

One of the things that’s been annoying me about JavaScript recently is the inability to only catch certain classes of exception, as in Java or Python, for instance. The try {..} catch(e) {..} block has always seemed too inclusive. But recently Ash found a crazy syntax in SpiderMonkey that lets us only catch certain exceptions.

try {
  // something that can throw
} catch(e if e.bar == 'foo') {
  // an error is only caught here if it has a 'bar' property of 'foo'
} catch(e if e.bar == 'baz') {
  // there can be different catches for different conditions
} catch (e) {
  // otherwise it's caught here. Without this block, the error would fall
  // through the 'try' and be re-thrown.
}

I haven’t bothered testing this in Internet Explorer (or any other web browser for that matter), because I’m only interested in server-side JavaScript execution at the moment. It works in at least recent SpiderMonkey CVS and Rhino 1.6r6, not sure about earlier versions.

helma.org » wiki » JavaScript Template Engine

helma.org » wiki » JavaScript Template Engine

created 26 July 2007 in links tagged helma, javascript and template.

Replacement templating engine for Helma - supports loops, assignment, various other logic constructs that the built-in system doesn’t. Not that trimpath doesn’t work too, of course.

http://dev.helma.org/wiki/JavaScript+Template+Engine/

[Helma-user] Rail-like URL Routing Script

[Helma-user] Rail-like URL Routing Script

created 26 July 2007 in links tagged helma, javascript and rails.

Rails-style routing for Helma. I find the default Helma URL dispatching very annoying - this is far better.

http://grazia.helma.at/pipermail/helma-user/2005-November...

del.icio.us/url/4f0ca933571745672c08c129c7d6e83e

del.icio.us/url/4f0ca933571745672c08c129c7d6e83e

created 26 July 2007 in links tagged javascript and server.

I guess I should delicious this, since I’m playing with it.

http://del.icio.us/url/4f0ca933571745672c08c129c7d6e83e

Implementing a syntax-higlighting JavaScript editor in JavaScript

Implementing a syntax-higlighting JavaScript editor in JavaScript

created 14 July 2007 in links tagged editor, javascript and syntaxhilighting.

http://marijn.haverbeke.nl/highlight/story.html

mod_js - Lightwieght server-side JavaScript for Apache

mod_js - Lightwieght server-side JavaScript for Apache

created 09 July 2007 in links tagged javascript and mod_js.

the ‘official’ mod_js page. Yay.

http://www.modjs.org/

mod_js - a JavaScript Apache module

created 09 July 2007 in code tagged apache, javascript, programming and spidermonkey.

mod_js is an Apache module written by Ash Berlin and I that embeds the SpiderMonkey JavaScript engine and lets you run JavaScript code on the server as CGI scripts. As you’d expect, it’s very early, but is good enough to compile scripts, run the JavaScript, and print the output to the client. mod_js is licensed under the GPL3.

Server-side JavaScript under Apache

created 09 July 2007 in blog tagged apache, javascript, programming and spidermonkey.

Ash Berlin and I recently hacked together an Apache module that embeds the SpiderMonkey JavaScript engine and lets you run JavaScript code on the server as CGI scripts. We called it mod_js.

BernieCode » How to debug JavaScript with Visual Web Developer Express

BernieCode » How to debug JavaScript with Visual Web Developer Express

created 02 May 2007 in links tagged debug, explorer, internet and javascript.

http://www.berniecode.com/blog/2007/03/08/how-to-debug-ja...

JavaScript UUID Class

JavaScript UUID Class

created 30 March 2007 in links tagged javascript and uuid.

Generating UUIDs in pure javascript.

http://www.af-design.com/services/javascript/uuid/

solutoire.com | Plotr

solutoire.com | Plotr

created 29 March 2007 in links tagged chart, graph and javascript.

javascript charting framework. Shiny.

http://www.solutoire.com/plotr

Showdown - Markdown in Javascript

Showdown - Markdown in Javascript

created 01 March 2007 in links tagged javascript and markdown.

ooooh, markdown in JavaScript. It works in Zimki, too, on the server side. Nifty.

http://www.attacklab.net/showdown-gui.html

Yet more E4X irritations

created 30 January 2007 in blog tagged javascript and programming.

I’m finding E4X to be one of those weird technologies that is alternately utterly wonderful and incredibly irritating. The ability to treat XML data as any other JavaScript data structure allows very fast app development and messing around, but every so often I find myself amazed at how awful the syntax is.

Today’s irritation is about E4X attributes.

// a perfectly normal E4X object.
var myXML = <xml foo="bar">content</xml>;

// the attribute with value 'bar'
var myAttribute = myXML.@foo;

Easy. I love this stuff. Unfortunately, Zimki, my company’s product, uses uneval to store complex objects, and the myAttribute variable there would count. uneval won’t produce JSON but it does produce a string that, when run through eval, will probably produce the original data structure, and we store that string in a database to store object.

Not so for E4X nodes. Playing in the SpiderMonkey JS console,

js> uneval( myXML );
<xml foo="bar">content</xml>

js> uneval( myAttribute );
bar

The first one is fine. That string will eval nicely back to the original E4X object. But the ‘bar’ there isn’t valid JavaScript - eval won’t restore the original object. In fact, had the original XML been something like:

<xml foo="delete_all_zimki_data()">bar</xml>

and we’d tried to use eval/uneval to store this XML, we’d have executed the attribute as JavaScript. Ick.

Unusually, Rhino handles this much better (normally I find Rhino lags in features..):

js> uneval( myAttribute );
<>bar</>

Not really an attribute node any more, but at least it’s valid JavaScript and won’t destroy my server.

I don’t even have a good solution for this. Right now I’m fudging E4X nodes in the storage engine, but I really feel that attribute nodes should uneval to something a little more sensible. Perhaps I’ll be able to produce a patch to SpiderMonkey, if I have time..

Vitamin Features » Create cross browser vector graphics

Vitamin Features  » Create cross browser vector graphics

created 20 December 2006 in links tagged chart, graphics and javascript.

http://www.thinkvitamin.com/features/design/create-cross-...

danwebb.net - A Low-down, Dirty Goblin Of A Hack

danwebb.net - A Low-down, Dirty Goblin Of A Hack

created 21 November 2006 in links tagged clever, evil and javascript.

ooooh, I like this. Steal methods from the array namespace and use them on the arguments object..

http://www.danwebb.net/2006/11/7/a-low-down-dirty-goblin-...

BookIntroduction - JotSpot Wiki (dojomanual)

BookIntroduction - JotSpot Wiki (dojomanual)

created 06 October 2006 in links tagged ajax, dojo and javascript.

the Dojo book. I should look at it.

http://manual.dojotoolkit.org/WikiHome/DojoDotBook/BookIn...

DTrace meets JavaScript

DTrace meets JavaScript

created 21 September 2006 in links tagged debugging, dtrace and javascript.

Utterly nifty - DTrace embedded in JavaScript. Via dwilson

http://blogs.sun.com/brendan/entry/dtrace_meets_javascript

JavaScript Lint

JavaScript Lint

created 20 September 2006 in links tagged javascript, lint and programming.

Check JS code for silly errors - missing trailing semicolons, etc, etc. A nice idea.

http://www.javascriptlint.com/

Burning Chrome: Design-By-Contract, Object Constructors, and Error Stacks in JavaScript

Burning Chrome: Design-By-Contract, Object Constructors, and Error Stacks in JavaScript

created 19 September 2006 in links tagged javascript and stack.

JavaScript Error object stack manipluation

http://weblogs.mozillazine.org/weirdal/archives/005505.html

Google Groups: mozilla.dev.tech.js-engine

Google Groups: mozilla.dev.tech.js-engine

created 07 August 2006 in links tagged javascript, rhino and spidermonkey.

This is, apparently, where the real mozilla spidermonkey/rhino mailing list lives, as opposed to merely the one linked from the ‘help’ page as being the official one. Nice.

http://groups.google.com/group/mozilla.dev.tech.js-engine...

The Latest Trend: Javascript Frameworks on the Server Side - Manageability

The Latest Trend: Javascript Frameworks on the Server Side - Manageability

created 04 August 2006 in links tagged javascript and server.

http://www.manageability.org/blog/stuff/javascript-in-the...

RFC4627

RFC4627

created 30 July 2006 in links tagged javascript, json and rfc.

Horay! JSON is an RFC. I consider it a pity that they don’t require the escaping of non-ascii, given how useless people (and browsers) are at getting character sets right. But at least it talks about character sets at all.

http://www.rfc-editor.org/rfc/rfc4627.txt

Bluish Coder: Javascript continuation based webserver

Bluish Coder: Javascript continuation based webserver

created 20 July 2006 in links tagged development, java and javascript.

Utterly lovely. Java/Rhino based JavaScript-using server

http://www.bluishcoder.co.nz/2006/07/javascript-continuat...

Wiky: A Bidirectional Markup Converter

Wiky: A Bidirectional Markup Converter

created 27 June 2006 in links tagged javascript, markup and wiki.

Recently I’m very interested in pure-javascript libraries for doing things. (especially those that don’t use the DOM). This one does wiki-like markup.

http://goessner.net/articles/wiky/

E4X - A native XML datatype for JavaScript

E4X - A native XML datatype for JavaScript

created 30 May 2006 in blog tagged javascript.

I gave a talk on E4X. In a Just and Decent world, I wouldn’t have to write a blog entry on this, because there would be a nice front page to jerakeen.org that listed all the recent things I’ve done, with the option to subscribe to RSS (or whatever) feeds of various subsets. But I’ve been too lazy to write this so far, so I’ll just link to it here until I get django to do what I want.

E4X is a lovely extension to JS (well, compared to messing with the DOM, and it’s in core, so embedded users get it too), despite its crazy inconsistent syntax and annoying brokeness in Firefox. Fortunately, I don’t have to care about web browser-based JS implementations, so I get to use it, and you don’t..

http://jerakeen.org/talks/e4x/

E4X

created 30 May 2006 in talks tagged javascript.

A talk I gave at the london javascript night in May 2006, on E4X, the native XML datatype for the JavaScript language.

phobos: Project Phobos

phobos: Project Phobos

created 26 May 2006 in links tagged java, javascript and platform.

server-side javascript, running on a Java server

https://phobos.dev.java.net/

Ajaxian » Javascript Associative Arrays considered harmful

Ajaxian » Javascript Associative Arrays considered harmful

created 19 May 2006 in links tagged javascript.

On prototype, Arrays, and extending the prototypes of built-in objects.

http://ajaxian.com/archives/javascript-associative-arrays...

JavaScript strings - a followup

created 12 May 2006 in blog tagged javascript and programming.

Having played around with the JavaScript string type some more, I think I understand why it acts as it does. I’m a Perl monkey normally, so I’m not used to the concept of immutable strings, but JavaScript strings are immutable. Playing with the === operator (approximately, ‘is this the same object’) gives:

js> "a" === "a";
true
js> "a" + "b" === "ab";
true
js> "ab".replace(/./, "c") === "cb";
true

but

js> new String("a") === new String("a");
false

If strings were to magically upgrade themselves to objects, they’d change behaviour - previously equivalent strings would suddenly not be equivalent. Likewise, suppose this worked:

var a = "string";
var b = "string";
a === b; # true
a.foo = 1;

Shoud a still be equivalent to b? If not, a clearly isn’t immutable, as we’ve changed it. But if it is, then we’ve chanaged b at a distance - it’s grown a foo attribute.

Still all very annoying, of course, but I understand why now.

PlotKit - Javascript Chart Plotting | liquidx

PlotKit - Javascript Chart Plotting | liquidx

created 02 May 2006 in links tagged charting and javascript.

Graphs. Pretty graphs, in fact. And client-side. Perfect.

http://www.liquidx.net/plotkit/

JavaScript string weirdness

created 29 April 2006 in blog tagged javascript and programming.

Recently, I mentioned a peculiar difference between uneval and toSource. Specifically (using the SpiderMonkey JS console):

js> uneval("");
""
js> "".toSource();
(new String(""))

"" and new String("") are different types of objects. The first is the basic string type, and only really has a value. The second is a full Object, that happens to have a value. However, it turns out that if you treat a basic string type as an Object, say by putting ‘.’ after it in an expression, the SpiderMonkey runtime will implicitly promote the string to a String. Hence, "".toSource() promotes the string object, then calls toSource on the new String object.

Annoyingly, the String Object doesn’t hang around, it’ll get thrown away as soon as you’re done with it. This leads to the weird case that you can set attributes on a basic string type (because it’ll get promoted to an Object, and Objects have attributes) but they don’t stay set (because the Object you’ve set them on gets thrown away as soon as the set call finishes).

By the way, all of this applies very specifically to the current CVS trunk SpiderMonkey. I don’t know what most web browser engines do with strings, so don’t assume this applies in, say, Internet Explorer. But I’d be interested if someone wants to find out and tell me…

uneval() does not produce JSON

created 22 April 2006 in blog tagged javascript and programming.

More playing with JSON and Spidermonkey has revealed yet another incredibly annoying fact (I hate those guys). Spidermonkey provides a lovely uneval() function, that does the exact opposite of eval() - turns JS objects into strings. It works on almost everything, and make life very very nice. There’s also Object.toSource() which does something similar (but not the same - try uneval("") vs "".toSource()).

But the strings that uneval produce are not valid JSON, as I have been assuming. I’ve been getting steadily more worked up at all the JSON parsers in the world, refusing to parse things that are clearly valid JavaScript, and eventually I go look at the spec, which fails to list ' as a valid string delimiter. And guess what delimiter uneval produces? Yay. So all the parsers are fine, and it’s just SpiderMonkey that’s broken.

Fortunately, Mochikit provides a nice serializeJSON() function.

BadgerFish

BadgerFish

created 12 April 2006 in links tagged javascript and xml.

http://badgerfish.ning.com/

Simon Willison: Escaping regular expression characters in JavaScript

Simon Willison: Escaping regular expression characters in JavaScript

created 12 March 2006 in links tagged escape, expression, fishtodo, javascript and regular.

http://simon.incutio.com/archive/2006/01/20/escape

Regular Expressions: Methods - Doc JavaScript

Regular Expressions: Methods - Doc JavaScript

created 06 March 2006 in links tagged expression, javascript and regular.

how to use javascript regular expressions. The bit I always have to look up

http://www.webreference.com/js/column5/methods.html

The Idiot’s Guide to moo.fx

The Idiot's Guide to moo.fx

created 24 February 2006 in links tagged javascript and moofx.

http://www.avinashv.net/tutorials/moofx/

Prototype in scriptaculous wiki

Prototype in scriptaculous wiki

created 21 February 2006 in links tagged documentation, javascript and prototype.

http://wiki.script.aculo.us/scriptaculous/show/Prototype

Google Desktop Sidebar Plug-In Creation Using Scripts

Google Desktop Sidebar Plug-In Creation Using Scripts

created 15 January 2006 in links tagged desktop, google, javascript and plugin.

http://desktop.google.com/script.html

from __future__ import * » Remote JSON - JSONP

from __future__ import * » Remote JSON - JSONP

created 06 December 2005 in links tagged javascript and security.

http://bob.pythonmac.org/archives/2005/12/05/remote-json-...

Particletree · Quick Guide to Prototype

Particletree · Quick Guide to Prototype

created 30 November 2005 in links tagged development, javascript, programming, reference and web.

http://particletree.com/features/quick-guide-to-prototype/

/IE7/overview/

/IE7/overview/

created 30 November 2005 in links tagged browser, hack, internetexplorer and javascript.

http://dean.edwards.name/IE7/overview/

TrimPath Forum / TrimPath Templates, a faster implementation.

TrimPath Forum / TrimPath Templates, a faster implementation.

created 23 November 2005 in links tagged javascript, template and trimpath.

Faster implementation of the trimpath templating engine.

http://trimpath.com/forum/viewtopic.php?id=155

TrimPath JavaScript Templates Demo

TrimPath JavaScript Templates Demo

created 23 November 2005 in links tagged javascript, programming, template and web.

Javascript templating language. Completely insane.

http://trimpath.com/demos/test1/trimpath/template_demo.html

Using prototype.js v1.3.1

Using prototype.js v1.3.1

created 06 November 2005 in links tagged developer, javascript and prototype.

http://www.sergiopereira.com/articles/prototype.js.html

A P R E S S . C O M : Foundations of Ajax

A P R E S S . C O M : Foundations of Ajax

created 29 October 2005 in links tagged book, javascript and personal.

Rui liked this a lot

http://www.apress.com/book/bookDisplay.html?bID=10042

script.aculo.us documentation script.aculo.us Wiki

script.aculo.us documentation            script.aculo.us Wiki

created 28 October 2005 in links tagged javascript and prototype.

a ⊘GUI efffects toolkit built on prototype.js

http://wiki.script.aculo.us/scriptaculous/show/HomePage

Really Simple History

Really Simple History

created 23 October 2005 in links tagged back, browser and javascript.

magic AJAX browser history / working back button

http://codinginparadise.org/projects/dhtml_history/README...

«« Endoflow »»

«« Endoflow »»

created 19 October 2005 in links tagged browser, file and javascript.

Holy cow, this is gorgeous. I especially like the trick for permalinking

http://www.endoflow.com/ibrowser

JavaScript Core Guide 1.5

JavaScript Core Guide 1.5

created 18 October 2005 in links tagged javascript and reference.

http://www.webreference.com/javascript/reference/core_ref/

SpiderMonkey

SpiderMonkey

created 18 October 2005 in links tagged embed, javascript and mozilla.

The Mozilla Spidermonkey javascript engine

http://www.mozilla.org/js/spidermonkey/

further notes on JSON

created 16 October 2005 in blog tagged javascript and programming.

Off I go, making random unsubstantiated claims about the danger of using JSON with non-ASCII characters. This called for a Test. So I wrote one. Visit my JavaScript unicode test page and see how your browser interprets external JavaScript files - I serve an ‘é’ using JavaScript to the page via 3 methods and 2 character set encodings, and try to render them all.

My conclusions from some limited testing? Owch. You can’t include a JavaScript file and expect the client to interpret it properly, unless you control both the server serving the JavaScript and the HTML page requesting it, and can make sure that they’re both in the same character set. Alternatively, you can escape all non-ascii characters in your JavaScript files using the \xXX or \uXXXX notations, which seems to work everywhere I’ve tried, but also seems like a pathetic work-around. Anyway, needing a work-around for only the non-obvious case means that no-one will actually do it, because no-one ever seems to bother testing with non-ASCII (see any on the JSON examples page, for instance?).

However, requesting JSON using XMLHTTPRequest seems to do the Right Thing in every browser I’ve tested, including those that include JavaScript wrongly. So if you’re using JSON as an RPC transport, instead of XML, for instance, it looks safe. From a character-set point of view.

JSON Examples

JSON Examples

created 16 October 2005 in links tagged javascript and unicode.

..and not a single non-ascii character on the page.

http://www.crockford.com/JSON/example.html

JSON

created 12 October 2005 in blog tagged javascript and programming.

In the bad old days of web 1.7ish, the cool thing to do for dynamic web applications was to generate HTML snippets on the server-side, pull them into your app using XMLHTTPRequest, and shove them bodily into a DIV on the page somewhere. “generating DOMs is hard” was the excuse, “the server already has a nice templating language”, etc, etc. And this was Good.

Nowadays, of course, this is Evil. Pulling HTML across the wire? It’s inefficient! Even worse, we want to send XHTML to the client, because it’s cool, but then you can’t treat your HTML like a string, you really do have to mess with DOMs. Fortunately, cute tools like MochiKit make it really easy to create DOM nodes, and provide really nice tools for making ajax requests. We see the rise of JSON - serializing your raw data on the server into a JavaScript-evaluatable string and sending that across the network, then building the DOM on the client side based on that data. And this is Good.

Soon, I expect, people will run up against annoyances in JSON. For instance, I bet there are lurking character set issues. It’s also not very portable - if I go to all the trouble of writing and exposing interesting functions of my web application in machine-readable ways, I’d like to be able to access this data using things other than javascript. Sure, there are modules like JSON that will both create and parse these things, but throwing actual XML around seems much neater to me.

We have a strange mix of XML and JSON APIs at the moment, some toolkits even making it easy to ask for either. But I consider XML far superior for this sort of thing, if only because the character set issues (my personal bugbear) are properly solved with XML. It’s disadvantage is that the JavaScript tools for dealing with the DOM are very annoying, but when we have something like XML::Simple or xmltramp for JS, and reading incoming XML is almost as easy as reading JSON, we can get rid of it and use nice sensible RPC mechanisms. JSB is a lovely example of this, for instance. And this will be Good.

Main Page - Ajax Patterns

Main Page - Ajax Patterns

created 11 October 2005 in links tagged javascript.

http://ajaxpatterns.org/

Open bugs in JavaScript

Open bugs in JavaScript

created 09 October 2005 in links tagged javascript and perl.

http://rt.cpan.org/NoAuth/Bugs.html?Dist=JavaScript

from __future__ import * » MochiKit 0.90 released

from __future__ import * » MochiKit 0.90 released

created 08 October 2005 in links tagged javascript, mochikit and python.

http://bob.pythonmac.org/archives/2005/10/08/mochikit-090...

RoundCube Webmail Project

RoundCube Webmail Project

created 03 October 2005 in links tagged cool, email, imap and javascript.

http://www.roundcube.net/

SQL Designer

SQL Designer

created 03 October 2005 in links tagged javascript and sql.

http://ondras.praha12.net/sql/demo/

StickBlog » Blog Archive » Upload multiple files with a single file element

StickBlog » Blog Archive » Upload multiple files with a single file element

created 30 September 2005 in links tagged file, javascript and upload.

Very nifty multiple-files upload with javascript to hide and create the elements.

http://the-stickman.com/web-development/javascript/upload...

javascript bindings

javascript bindings

created 20 September 2005 in links tagged james, javascript, jsb, whoot and xpath.

http://www.whoot.org/jsb/

Nevow - a python web application toolkit

Nevow - a python web application toolkit

created 15 September 2005 in links tagged application, javascript, python, toolkit and web.

http://nevow.com/

Dmitry’s Work Page ···

Dmitry’s Work Page ···

created 12 August 2005 in links tagged javascript.

http://siter.com.au/dmitry/

XMLHTTPRequest

created 27 February 2005 in blog tagged javascript.

The more I play with XMLHTTPRequest, the more I’m convinced it’ll be one of the biggest things to happen to the web in 10 years. The possiblities for utterly changing the way web interfaces work is astounding. It’s aquiring the name Ajax, which annoys me, but it is easier to say than ‘XMLHTTPRequest’. It’s also hard to code using it - because everything has to be asyncronous, you’re playing with some fairly different ways of programming. It feels similar to the change you get going from simple command-line or server apps to GUI apps with their callbacks, except moreso - you’re getting callbacks from the user interacting with the web page, and callbacks from the requests you’ve made to the server side in the past. When someone comes up with a decent toolkit for writing this nicely, I’ll be a happy person.

I now have a mostly-written framework in JS for making calls to a server in a known RESTian format, and getting XML back in another expected format, so I can hide lots of the details and treat it almost like async XMLRPC, but I’d forgotten how annoying JS is to program in. It’s not a matter of ‘develop on firefox, and it mostly works on other things’, like CSS, you virtually have to develop simultaneously on three platforms to stand a chance. I’ve lent a friend my rhino, so I have to use the web to look everything up, and there are no decent web resources for this stuff. The best thing I’ve found so far is the Gecko DOM reference, but there’s nothing on the language proper - when you’re routinely playing in perl, python and php, remembering what todays syntax for iterating over the keys of a hash is is hard. I tend to just try things at random till it works, or crib from random downloaded snippets that seem to work. This doesn’t make the cross-platform thing any easier, either.. :-)