Wednesday, February 28th 2007

JavaScript

The ECMA262 Standard, ratified after Netscape and Microsoft (mostly) agreed to make JavaScript and JScript interoperable.

Resources:

Most of these are library-independent. Check my jQuery page for more, since I’ve adopted that for my own uses and have therefore focused on gathering more resources for it…

Category Date Link Notes
Server-side May 16’10 node.js An event-oriented framework for doing I/O using Google’s V8 engine.
Canvas and Graphing Apr 21’10 Akibahara A wonderful set of small libraries to clone 8-bit era arcade games,
Jan 19’10 Highcharts A very comprehensive charting library.
Jan 1’10 Raphael An amazing vector library, with a charting companion that will knock your socks off.
Dec 3’09 Parcycle: A Particle System with HTML5 canvas Pretty damn amazing.
Nov 6’08 JavaScript Information Visualization Toolkit A pretty comprehensive set of resources
Dec 16’07 Safari Programming Topics
Firefox 1.1 Canvas Support
Timeline a draggable DHTML timeline widget
UI Frameworks Apr 10’10 UKI A simple UI kit for complex web apps that was used to do a complete Mail.app mock-up
Nov 7’09 Cappuccino Utterly amazing, and used by very complex web apps like 280 Slides and Mockingbird
Text Formatting Jan 1’10 google-code-prettify A source code prettifier with support for multiple programming languages.
jsMath: A Method of Including Mathematics in Web Pages An amazing (re)interpretation of TeX
Oct 21’09 JavaScript Prettifier Simple to use and effective
Sep 17’09 To Title Case A port of Gruber’s title case script
Dec 16’07 Showdown a Markdown port
Highlight.js two interesting syntax highlighters
Syntax Highlighter
Diff Algorithm
Search Engine Keyword Highlight yes, I know it’s cheating – but it works fine when you don’t want to hack your back-end.
Toolkits Nov 7’09 Closure A compiler, library and toolchain by Google.
Dec 16’07 Taffy DB an interesting “database” library.
Prototype heavily driven by Rails
Cross-Browser
dojo Toolkit a UI toolkit for dynamic website implementation
Moo.fx very lightweight (3KB)
JQuery arguably the best for structured programming.
UI elements Sep 17 Roar Two Growl-like components done with MooTools
Window.Growl 2.0
Timeframe Amazing calendar widget with support for date range selection.
Media Dec 16’07 Smooth SlideShow Library
OpenLayers a map navigation UI
Ken Burns Slideshows
iPhoto-like image resizing using Javascript
GreyBox a Mac OS X like popup.
fadomatic cross-browser DIV fader
Walter Zorn vector drawing, graphing, and other amazing stuff
image cross fader
Development Apr 17’10 Learning Advanced Javascript An interactive tutorial.
Dec 16’07 Jash: JavaScript Shell
Escaping regular expression characters
JSLint an interesting lint adaptation for JavaScript
Lumberjack a set of logging utilities
JSAN CPAN for JavaScript, of a sort
Mouse Input Dec 16’07 Drag-and-Drop Sortable Lists
Drag-and-Drop Library
Mouse Wheel Programming
Pie Menus a nice Pie Menus Menus implementation.
Forms and Input Dec 16’07 Auto-Tab
JavaScript Calendar
HTML Tabbed Dialog Widget
XLoadTree dynamically loading tree control
Tables Dec 16’07 ActiveScripts Grid an impressive grid control
Sortable Table
Standartista Table Sorting
Sortable and Groupable Table
Ajax related Dec 16’07 LiveSearch the stuff I used on this site’s search box for a while
Everything about the XML HTTP Request intrinsic object that which is now being dubbed Ajax. I wonder how far we are from Tide.
JPSPAN a server-to- JavaScript bridge using the XML HTTP object and some very clever data conversion.
SAJAX a similar effort geared towards PHP

Snippets:

Associative Arrays in JavaScript

// Taken from:
// http://philikon.wordpress.com/2010/04/20/associative-arrays-in-javascript/

function dict () {
    var keys = [];
    var values = [];

    return {
        get: function (key) {
            return values[keys.indexOf(key)]
        },

        set: function (key, value) {
            var i = keys.indexOf(key);
            if (i === -1) {
                i = keys.length;
            }
            keys[i] = key;
            values[i] = value;
        },

        del: function (key) {
            var i = keys.indexOf(key);
            keys.splice(i, 1);
            values.splice(i, 1);
        },

        keys: function () {
            return keys.slice();
        },

        values: function () {
            return values.slice();
        },
    };
}

See Also

Dropping TextjQuery MobileSerial NumbersiPhone and iPad Development
VisualizationSo FarTextileArs reviews Android 2.2 on the Nexus One
The JavaScript InfoVis Toolkit 2.0 is out!Safari 5 tested: Chrome, Opera still have JavaScript edgeSmokescreenJavaScript
jQuerySite DesignsHTML5 presentationBookmarklets
MicrosoftGordon, a Flash runtime written in pure JavaScriptXMPPOtherWikis
Another World ported to JavaScript and the canvas tagMarkdownSunburst Visualization at OverfloaterOpacity
GrowlJavaScript InfoVis Toolkit Version 1.1.3Google Reader supportCSS Techniques
JSONFontJazz - Embed fonts on web pagesAdSweep - An ad blocker for your favorite web browser (like Adblock)Tackling The Stupidity Of The DiggBar
XUL Extensions and Add-OnsTime MachineSpectrumLong Missive From The Trenches Of Parenting
htmlAreaBespin: Code in the CloudGraphvizDoing Stuff, When I Can
Pre-lude2008 in Review, 2009 HazyTwitter ChartsMobile Safari
Bridging the iPhone GAPjQuery, Microsoft, and NokiaHTTPAnnouncing Cappuccino
Google Chrome, Google's Browser ProjectThe birth of a faster monkeySqueeze me, Citrix...Hashi
iTW - a TiddlyWiki for iPhoneActions Speak Louder Than WordsDelicious 2.0jgrowl
Five things that are still broken in browsers, ten years lateroursignal.comSproutCorejQuery UI 1.5
SquirrelFishProcessing.jsvimjsvi
I, for one, welcome our new diapered overlordsTweetWheelURL TriggerSafari 3.1
iCopy - Copy and Paste for your iPhone and iPod TouchThe Joy of WebpadsRegarding iPods, Developers and Attention SpansGoogle
Archives again, at lastSniff browser history for improved user experienceFancyZoom 1.0Tabulate
Kindling MobilityHOWTO: Write iSync Phone PluginsMail.appHumanized Messages for jQuery
PhotoShop-like JavaScript Color PickerJavaScript Tune UpsCoverFlowA Bank That "Gets" Online
The nPhonejQuery for JavaScript programmersWhat about Sun embracing JavaScript?Apple is not native to the web
The Wii Remote APIExt 1.1 ReleasedjQuery Chart Plugin DemoOnline Game: BrickShooter
iUI Music DemoYahoo! Pipes for Real MenPrototypeiPhone's AJAX SDK: No, thank you.
iMusings - the iPhone, Standards, and jQueryWiki Migration Notes - Platform SelectionThe Bug In FirebugGTD
ActionScriptFresh NewsWeekend CodingTIBCO General Interface
Halibuts and ShrimpsPrototype EpiphaniesTag, You're ItAjax
John GruberMac OS XWeb DesignLagging
Building The Anti-WikiRails (Ruby on Rails)MochiKitResources:
XMLAn Oddly Good Monday(Very) Odds and EndsThe Citrix Dashboard Widget
Placeless GTDMorning News BreakMiscellaneous HacktivityPlayStation Portable
Mobile Comparison ShoppingA Quiet Day...Foundations of AjaxNews Flush
Referrer Spam Prediction: Heavy DownpourNews Station Portable?XSLTBack To Work
Relax, Me?PHPLink ModeLink Mode
GISHalf a Day10.3.9 - Safari in Uncharted LandsCatching Up
Miss Congenial AllergyP2P.icio.usThe Bayesian Thing, AgainHatching Snakes
Five Things That Keep Annoying Me About TVPaging all Bloglines SubscribersPredictions for 2005Holiday Lull
UnwindingWelcome to KubrickNokia 9500I Hope Kelkoo Gets A Clue
Vertical ForeshorteningThe Ugliest Phones In The World, and Then SomeCoralizing Your SiteThe Trackback Game
The Bloglines MysterySimon Says: Use Purple NumbersThe Eleventh CommandmentDumb Ideas
Surface TensionAmid The MidletsJavaScript/overLIBJavaScript/jsFind
The Long WeekCutting CornersTungsten T3 SD WoesMicrosoft vs Eolas Update
Microsoft to change IE - Web standards at last?New Photo AlbumHacking Firebird using XULThe Box Model Hack, CSS, and my Vanishing Tolerance For IE Bugs
iSync me up, baby!CPANRAQ550/Packages