JSON.stringify and JSON.parse

Just realized that Douglas Crockford has added a fresh implementation of the JSON Javascript Object Notation code to the json.org site. I updated Mochascript to include this new implementation.
var JSON = {

    org: 'http://www.JSON.org',

    copyright: '(c)2005 JSON.org',

    license: 'http://www.crockford.com/JSON/license.html',

    stringify: function stringify(arg) {

        var c, i, l, s = '', v;



        switch (typeof arg) {

        case 'object':

            if (arg) {

                if (arg.constructor == Array) {

                    for (i = 0; i < arg.length; ++i) {

                        v = stringify(arg[i]);

                        if (s) {

                            s += ',';

                        }

                        s += v;

                    }

                    return '[' + s + ']';

                } else if (typeof arg.toString != 'undefined') {

                    for (i in arg) {

                        v = stringify(arg[i]);

                        if (typeof v != 'function') {

                            if (s) {

                                s += ',';

                            }

                            s += stringify(i) + ':' + v;

                        }

                    }

                    return '{' + s + '}';

                }

            }

            return 'null';

        case 'number':

            return isFinite(arg) ? String(arg) : 'null';

        case 'string':

            l = arg.length;

            s = '"';

            for (i = 0; i < l; i += 1) {

                c = arg.charAt(i);

                if (c >= ' ') {

                    if (c == '\\' || c == '"') {

                        s += '\\';

                    }

                    s += c;

                } else {

                    switch (c) {

                        case '\b':

                            s += '\\b';

                            break;

                        case '\f':

                            s += '\\f';

                            break;

                        case '\n':

                            s += '\\n';

                            break;

                        case '\r':

                            s += '\\r';

                            break;

                        case '\t':

                            s += '\\t';

                            break;

                        default:

                            c = c.charCodeAt();

                            s += '\\u00' + Math.floor(c / 16).toString(16) +

                                (c % 16).toString(16);

                    }

                }

            }

            return s + '"';

        case 'boolean':

            return String(arg);

        default:

            return 'null';

        }

    },

    parse: function (text) {

        var at = 0;

        var ch = ' ';



        function error(m) {

            throw {

                name: 'JSONError',

                message: m,

                at: at - 1,

                text: text

            };

        }



        function next() {

            ch = text.charAt(at);

            at += 1;

            return ch;

        }



        function white() {

            while (ch) {

                if (ch <= ' ') {

                    next();

                } else if (ch == '/') {

                    switch (next()) {

                        case '/':

                            while (next() && ch != '\n' && ch != '\r') {}

                            break;

                        case '*':

                            next();

                            for (;;) {

                                if (ch) {

                                    if (ch == '*') {

                                        if (next() == '/') {

                                            next();

                                            break;

                                        }

                                    } else {

                                        next();

                                    }

                                } else {

                                    error("Unterminated comment");

                                }

                            }

                            break;

                        default:

                            error("Syntax error");

                    }

                } else {

                    break;

                }

            }

        }



        function string() {

            var i, s = '', t, u;



            if (ch == '"') {

outer:          while (next()) {

                    if (ch == '"') {

                        next();

                        return s;

                    } else if (ch == '\\') {

                        switch (next()) {

                        case 'b':

                            s += '\b';

                            break;

                        case 'f':

                            s += '\f';

                            break;

                        case 'n':

                            s += '\n';

                            break;

                        case 'r':

                            s += '\r';

                            break;

                        case 't':

                            s += '\t';

                            break;

                        case 'u':

                            u = 0;

                            for (i = 0; i < 4; i += 1) {

                                t = parseInt(next(), 16);

                                if (!isFinite(t)) {

                                    break outer;

                                }

                                u = u * 16 + t;

                            }

                            s += String.fromCharCode(u);

                            break;

                        default:

                            s += ch;

                        }

                    } else {

                        s += ch;

                    }

                }

            }

            error("Bad string");

        }



        function array() {

            var a = [];



            if (ch == '[') {

                next();

                white();

                if (ch == ']') {

                    next();

                    return a;

                }

                while (ch) {

                    a.push(value());

                    white();

                    if (ch == ']') {

                        next();

                        return a;

                    } else if (ch != ',') {

                        break;

                    }

                    next();

                    white();

                }

            }

            error("Bad array");

        }



        function object() {

            var k, o = {};



            if (ch == '{') {

                next();

                white();

                if (ch == '}') {

                    next();

                    return o;

                }

                while (ch) {

                    k = string();

                    white();

                    if (ch != ':') {

                        break;

                    }

                    next();

                    o[k] = value();

                    white();

                    if (ch == '}') {

                        next();

                        return o;

                    } else if (ch != ',') {

                        break;

                    }

                    next();

                    white();

                }

            }

            error("Bad object");

        }



        function number() {

            var n = '', v;



            if (ch == '-') {

                n = '-';

                next();

            }

            while (ch >= '0' && ch <= '9') {

                n += ch;

                next();

            }

            if (ch == '.') {

                n += '.';

                while (next() && ch >= '0' && ch <= '9') {

                    n += ch;

                }

            }

            v = +n;

            if (!isFinite(v)) {

                error("Bad number");

            } else {

                return v;

            }

        }



        function word() {

            switch (ch) {

                case 't':

                    if (next() == 'r' && next() == 'u' && next() == 'e') {

                        next();

                        return true;

                    }

                    break;

                case 'f':

                    if (next() == 'a' && next() == 'l' && next() == 's' &&

                            next() == 'e') {

                        next();

                        return false;

                    }

                    break;

                case 'n':

                    if (next() == 'u' && next() == 'l' && next() == 'l') {

                        next();

                        return null;

                    }

                    break;

            }

            error("Syntax error");

        }



        function value() {

            white();

            switch (ch) {

                case '{':

                    return object();

                case '[':

                    return array();

                case '"':

                    return string();

                case '-':

                    return number();

                default:

                    return ch >= '0' && ch <= '9' ? number() : word();

            }

        }



        return value();

    }

};
05.05.2005, 02:57

Ajax for Java

http://www.getahead.ltd.uk/dwr/

04.05.2005, 02:00

The launching of launchd

Apple's Tiger brings a replacement for init, rc, the init.d and rc.d scripts, SystemStarter, inetd and xinetd, atd, crond, and watchdog to the Unix world. As slahdotted by JQuick, the new launchd "[...] the launchd plist files (short for property lists) contain a set of key/value pairs describing what to run, and when to run it. Beyond this, launchd defines keys which tailor how the program is run, all of which are optional. These include specifying: user and group by either name or uig/gid; working directory, chroot directory, a dictionary of environment variables, CPU niceness, umask. Do you want to limit how much memory or stack it uses, prevent it from wiring system memory? Do you want limit the number of children it can spawn, or treat its IO requests as low priority as urgent? Keys are available for that."

02.05.2005, 10:27

Timeless RSS

Dave Winer says: "We have another format that's great for stuff that doesn't change often, timeless stuff. You'll be hearing more about that sooon ."

01.05.2005, 8:54

Kupu

Cleaner code, maybe?

http://www.onlamp.com/pub/a/onlamp/2005/04/28/kupu.html

29.04.2005, 10:18

SNIFE goes Victorinox

The larger manufacturer of Swiss Army knives, Victorinox, has taken over its much smaller competitor and only rival, Wenger.

"The two official makers of Swiss Army knives, which will keep their identities separate under the deal, have been struggling to make headway since the September 2001 terrorist attacks in the United States. After 9-11, the companies lost between 15% and 20% of turnover as business at duty-free outlets slumped. Although airline passengers can buy the knives in duty free stores, they are not allowed to take them on aircraft as hand luggage because of security concerns."

So, Victorinox now owns SNIFE .

26.04.2005, 20:15


AJAX is everywhere

In a remarkably short time, AJAX has become the most talked about topic in Java circles.

"The problem with AJAX is that it doesn't address the fundamental difficulty in developing web applications--the unbridgable client-server divide. You still have to use a completely different set of languages and tools for writing the GUI on one hand, and the server components on the other, with no possibility of sharing code in between."

"A truly revolutionary web paradigm would allow developers to use the SAME language and object model in developing both the client- and the server-side. The server would retrieve an objects from the datastore, serialize it, and pass it off to the client for editing. The client would be able to modify these same objects (defined in the same class libraries) and pass it back to the server, which re-validates them and persists them back into the datastore."

Welcome to Mocha!

25.04.2005, 14:06

Papa Ratzi

In slight contrast... Papa Ratzi:

Headline in the German newspaper " Bild ":


British media:



20.04.2005, 15:01

>>> How Software Patents Work

> Ten good practices for writing Javascript
> Free-trade accord with japan edges closer
> Mocha at a glance
> Adobe acquires Macromedia
> Safari 1.3
> View complexity is usually higher than model complexity
> Free Trade Neutrality
> SQL for Java Objects
> Security Bypass
> Exactly 1111111111 seconds
> Kurt goes Chopper
> Choosing a Java scripting language
> Spamalot's will get spammed a lot
> The visual Rhino debugger
> The Unix wars
> EU-Council adopts software patent directive
> FreeBSD baby step "1j"
> Never trust a man who can count to 1024 on his fingers
> Visiting the world's smallest city
> Finally some non-MS, non-nonsense SPF news
> Swiss cows banned from eating grass
> Ludivines, the "Green Fairy" of absinthe
> First Look At Solaris 10
> EU Commission Declines Patent Debate Restart
> Alan Kay's wisdom guiding the OpenLaszlo roadmap towards Mocha?
> 1 Kilo
> Re: FreeBSD logo design competition
> Schweizer Sagen
> Europas Eidgenossen
> Art Nouveau La Chaux-de-Fonds 2005-2006
> XMLHttpRequest glory
> The Beastie Silhouette
> The Number One Nightmare
> Safe and Idempotent Methods such as HEAD and TRACE
> Sorry, you have been verizoned.
> Daemons and Pixies and Fairies, Oh My!
> Sentient life forms as MIME-attachments: RFC 1437
> Anno 2004: CZV
> Web Developer Extension for Firefox
> Refactoring until nothing is left
> Brendan, never tired of providing Javascript support
> Catching XP in just 20 Minutes
> Designing the Star User Interface
> Rhino, Mono, IKVM. Or: JavaScript the hard way
> Re: SCO
> Judo
> Convergence on abstraction and on browser-based Console evaluation
> Today found out that inifinite uptimes are still an oxymoron
> New aspects of woven apps
> Original Contribution License (OCL) 1.0
> Unified SPF: a grand unified theory of MARID
> BSD is designed. Linux is grown.
> 5 vor 12 bei 10 vor 10
> Mocha vs Helma?
> Schattenwahrheit: Coup d'etat underway against the Cheney Circle?
> Abschluss Bilaterale II Schweiz-EU
> From Adam Smith to Open Source
> Linux - the desktop for the rest of them
> Big Bang
> Leaky Hop Objects
> Return Path Rewriting (RPR) - Mail Forwarding in the Spam Age
> Microsoft Discloses Huge Number Of Windows Vulnerabilties
> Steuerungsabgabe statt Steuern
> Anno 2003: deployZone
> The war against terror
> The war against terror (continued)
> The relativity of Apple's market share
> Are humans animals?
> Server-side Javascript
> Democracy Now!
> The Cluetrain Manifesto
> Anno 1999: Der Oberhasler
> Anno 1998: volksrat.ch
> Fan traces "lost" singer Rodriguez
> Anno 1998: crossnet
> Think different
> The right time to buy Apple stock
> Geschwindigkeit vs Umdrehungszahl
> Anno 1997: Xmedia
> "The meaning of life is to improve the quality of all life"
> Cute Barristas at Peet's Coffee
> Anno 1996: CZV
> Alternative 1995
> BZ Internet Cafe
> Xjournal
> How do I set a DEFAULT HTML-DOCUMENT?
> Searching Gopherspace
> Crossnet - der kollektive Intellekt der Schweiz
> Global Screen Design Services
> NEW-LIST digests
> ACTIV-L Digest
> Eternal September
> AOL expanding Internet services
> Anno 1993: Macro-micro navigator
> Freude herrscht!
> Anno 1992: Intouch i-station
> You register me in 50 states
> Anno 1991: mediacube
> Friedrich Dürrenmatt - Die Schweiz als Gefängnis
> Anno 1990: RasterOps
> Enable the Creative
> Photoshop Startup Memories and First Demo
> Anno 1989: Lambada by Kaoma
> Anno 1988: Perfect by Fairground Attraction
> Bürgerbrief
> Morgana - Selling Digital-Font based Sign-writing
> Macworld Expo 1988 Amsterdam
> Acorn Archimedes RISC Technology
> Anno 1987: Knowledge Navigator
> Anno 1986: Max Headroom in the News
> FidoNet
> Anno 1985: Amiga 1000
> Hello World on C128 in CP/M Mode
> Analog Desktop Publishing in 1984
> Anno 1982: Vic-20
> Gamchi
> Postel's Law
> The Future Is Unwritten
> Earth Mother and Fortieth Floor by Lesley Duncan
> La Linea by Osvaldo Cavandoli
> California by Joni Mitchell
> Supplement to the Whole Earth Catalog
> Neil Young
> Whole Earth Catalog
> Anno 1968: Mony Mony and People Got to Be Free
> August 28th 1968: William Buckley Vs Gore Vidal




sovereignty, subsidiarity,
solidarity and sustainability

server-side javascript

Subscribe to my newsletter:

Your email address:
The "Decentralize" Newsletter
Exchanging ideas for building a
decentralized fabric of society.
Making true democracy work on a larger
scale while decentralizing "everything",
benefiting from local diversity and
global synergies at the same time.
http://tinyletter.com/zumbrunn

Chris Zumbrunn's Mochazone
> La Décentrale Mont-Soleil
> Culture of Collaboration
> Les idées principales de l'anarchisme et la critique de l'Union Européenne
> Polymoney Workshop
> Zukunftsforum im Lorraine Quartier
> The Cryptosphere: decentralised, secure and open Web platform
> Rolling Stone: In the Belly Of The Beast
> Trends in Civic Tech
> Changelog for RingoJS 0.10
> Invitation to the 2013 "Beau-Sejour" gathering, October 25-27 in St-Imier, Switzerland
> Virtual roundtable on governance
> E-Voting: gesunde Skepsis und OpenSource ist nötig
> in-vitra Kulturen- und Kunstplattform in Biel-Bienne
> Es gibt kein Recht auf unethisches Verhalten.
> Open Air Filmvorführung in Bern am 11.8.: In Transition 2.0
> Sommerfest von Transition Bern
> Surfing Democracy November 25-26 2013
> Green Phoenix Congress, September 25-29 2013, Schweibenalp, Switzerland
> Leitideen des Anarchismus und EU-Kritik
> Nourrir la ville - Tagung für lokale und nachhaltige Strategien
> Installing Democracy
> Edward Snowden, NSA PRISM wistleblower
> Grüne NetzpolitikerInnen gegen BÜPF und NDG
> Collaborate locally, collaborate globally
> Dare to imagine: The grid that is us
> Original Black Bloc exhibited
> The means are the way
> Because *somebody* has to stand up for the people of the Internet
> Reserve Ratio, Inter-Bank Lending and Equity Ratio
> Social Capital World Forum 2013
> Art of Participatory Leadership 2013
> Zukunft säen – Vielfalt ernten
> Overview & Continuum by Planetary Collective
> Occupy Love by Velcrow Ripper
> More than Honey by Markus Imhoof
> Transition Town Bern am 25. April
> Simone Rebmann als Regierungsstatthalterin!
> Governance Futures Lab for ReConstitutional Convention
> Taste the Waste - about the worldwide destruction of food
> La Vélokaravane à Courtelary le 13.4.2013 au Toit des Saltimbanques
> Paddock cahier des charges choice creating session
> Ad-hoc Choice Creating
> Gründungsversammlung Swiss Foodcoop Genossenschaft
> Jim Rough enjoying Hiltl...
> RingoJS hits 0.9
> Souper et débat politique - Round Three
> Weltformatplakat GPB-DA, Stadtratswahlen 2012
> NEIN zum Tierseuchengesetz am 25.11.2012 - NON à la loi révisée sur les épizooties
> Participate.ch brings Dynamic Facilitation Training to Zurich, March 4-6, 2013
> Souper - Débat politique à Espace Noir
> Du 8 au 12 août, les Imériens accueilleront les anarchistes du monde entier
> St-Imier 2012 Anarchism Gathering Program
> The Transformation Project
> Empowering Public Wisdom - The Manifesto
> The Story of Change
> A Guidebook of Alternative Nows
> Albert Streichs Mittnächtler
> Declaration of Interdependence, Occupy Café and Occupy National Gathering
> Confirmation of the Higgs Boson and the Standard Model
> Plonk & Replonk
> Radical Openness
> Surfing Democracy - Dynamic Facilitation and Wisdom Councils
> From Consumers to Citizens
> Deepening Democracy Days, June 2-12, 2012
> Sophie's Choice in Bovine
> TerreVision - agriculture contractuelle
> The axis of evil runs through our dining tables
> Guggenheim by The Ting Tings
> Consensus is not something you either have or not. It is something you always have more or less of.
> Self-organisation as a powerful change agent
> Sixteen Saltines by Jack White
> Participate.ch macht Deliberative Demokratie mit Konsensforum
> International Anarchism Gathering, St-Imier 2012
> If what you are doing is not helpful, please stop doing it. Seriously.
> Out of Print: The 20th Century
> Jacob Appelbaum and National Security Agency whistleblower William Binne on growing state surveillance
> The Adobe Creative Cloud is coming!
> Working on true, bottom up subsidiarity
> Beim Denken sind Tiere auch nur Menschen
> Light Table - a new IDE concept
> Saturn Return by She Keeps Bees
> Lea & story-209 by michelo-ud
> Tim Anderson and Matthew Slater on Community Forge
> Journée: Coopératives & énergies renouvelables
> Summer 2012 will be the Woodstock of Anarchism
> Late in the Night by Heartless Bastards
> House Rules
> Everyone is an exception. Let's try and catch each other.
> Finish your Beer
> Zweites Eichhorn 2011 by michelo-ud
> I believe I know what is true, but I know I don't know what is real.
> O Freedom by Billy Bragg
> Hochdemokratie
> Bradley Manning by Cass McCombs
> The Foundation of Democracy
> The Three Pillars of Democracy
> Will Not Follow by Gringo Star
> Hydrogen production from inexhaustible supplies of fresh and salt water using microbial reverse-electrodialysis electrolysis cells
> Fortschritt statt schildbürgerliches Wachstum
> Consensus & Direct Democracy @ Occupy Everything
> Libertär, EU-kritisch, ökologisch, sozial
> The Creative Cloud, Elasticity, Touch and Context
> Privacy is only needed to the extent that society is malfunctioning.
> Antwort auf offenen Brief von Tobias Sennhauser
> Evolution is not about the survival of the fittest, it is about the optimization of the synergies.
> New GPB-DA Poster (and Logo) for the Federal Elections 2011
> Here's to the crazy ones!
> How To Design A Good API and Why it Matters
> Die Grünen sind die liberalsten
> Ralph Nader, Dennis Kucinich, Ron Paul
> 25th Fête de la Lune Noire
> Switzerland is Not a Nation - it is a Philosophy
> Damn Love Song by Amy LaVere
> Re: parteifrei.ch
> RingoJS 0.8.0 is out!
> Strength in Numbers by Colin Scallan
> This Painting is Not Available in Your Country
> Adobe Digital Enterprise Platform
> Customer Experience Management
> Not becoming part of the problem when trying to be part of the solution
> What's Next California
> The Data Liberation Front
> The Definition of Love
> Paradise with Side Effects
> Permaculture - A Quiet Revolution
> Storm Song by Smoke Fairies
> bumblebee
> Best Music, News, and More is Back!
> Christiana Bike gone missing in Basel
> Newark Peace Education Panel
> Wishful thinking is the mother of all progress
> AIR is to apps as PDF is to docs
> Everything is either simple or flawed
> Canada, please evolve
> Piledriver Waltz by Alex Turner
> Blue Tip by The Cars
> Re: Administrivia
> Madame Trudeaux by KT Tunstall
> Powerful stroke of insight
> How to Save the World, Fast and Easy
> Think before teaching young dogs old tricks
> It Hurts Me Too by First Aid Kit
> Asmaa Mahfouz starting a revolution
> No more White Stripes
> Could uprisings in Egypt and the Arab world produce a 'Muslim Gandhi'?
> The decision to store data in a database is usually a case of premature optimization
> Cablecom baffled by service interruptions
> Fixing the Future
> Please Take by Wire
> Software Engineering
> So Long, Larry King Live
> WikiLeaks moves to Switzerland
> Making Antimatter where the Web was born
> Which system setting, Mr. Citrix?
> Daniel Ellsberg on Wikileaks
> Unconditional Responsibility meets Total Compassion
> Peaceful Valley Boulevard and Rumblin
> Order is an addictive illusion
> Ringo Release 0.6
> Predictions of an ugly IPv4-to-IPv6 transition
> Link Love for Javascript
> Bungee jumps for all congressman, free!, no strings attached
> Restrepo
> Open source Facebook replacement Diaspora drops first alpha
> Angry World by Neil Young
> Faked web browsing
> Nice comparison of Ringo and Node
> Erbix CommonJS soft-coding engine
> The Paul Allen Suit
> Web services should be both federated and extensible
> Reality is an onion, and depending on how deep you think, it may seem to contradict itself
> Oh No! by Marina And The Diamonds
> If there is anything supernatural, it is humanity itself
> Lila Luftschloss
> We have the world we want
> CoffeeScript, underscore.coffee and underscore.js
> Brendan Eich on Proxies, Modules and other Proposals and Strawman
> confederate?
> Good for Adobe, Good for Day, Good for the Ecosystem
> Will Adobe see the light (of Day)?
> What's Up Doc? by Carbon/Silicon
> How creativity occurs
> RingoJS vs NodeJS
> Sweet People by Alyosha
> RingoJS 0.5 released
> Your Personal Religion by Sophie Hunger
> Lost and Found by Steve Mason
> RhinoJS
> Server-Side Javascript since... way back: RingoJS!
> Modules, Proxies, and Ephemeron Tables
> Helma 1.7.0 has escaped its stealth existence
> The Moon And The Sky by Sade
> Written In Reverse by Spoon
> Keep Cool My Babies!
> Module system strawpersons
> You find what you google for.
> Move your money - It's a Wonderful Life
> ServerJS - Brewing The Perfect Storm
> While society must do things the right way, its people must find ways to do the right thing
> CommonJS effort sets JavaScript on path for world domination
> ServerJS - putting Javascript to work on the *other* side
> Eating healthier would safe the planet
> JVM Web Framework Smackdown
> Before implementing a solution to a problem, always search for a workaround, because the workaround is often better than the original solution
> If they are not ready for what they need, give them the backbone for their future baby steps
> Been there, but haven't done that
> Unus Pro Omnibus - Omnes Pro Uno
> Hang You From the Heavens by The Dead Weather
> Web-based editing of sandboxed server-side javascript apps
> PubSubHub against spam and walled gardens
> CometD at a glance
> Be part of the solution, not part of the problem
> Get Around by Neil Young
> Surrender by Cheap Trick
> A car has nothing to do with a carpet
> ES5 Candidate Specification
> ReverseHttp and RelayHttp
> The best solution is that one isn't needed
> New Eclipse Helma plugin project
> Is the Bespin web-based code editor the ideal future ServerJS IDE?
> Server-Side Javascript Standard Library
> First Soleil on Mont-Soleil
> Rhinola 0.8 - Server JS reduced to the minimum
> Helma turns 1.6.3
> Helma 1.6.3-rc3 ready for testing
> Helma 1.6.3 Release Candidate 2
> Release Candidate 1 of Helma 1.6.3
> Helma at the 2008 OpenExpo in Zurich
> Large Hadron Collider
> Ecmascript Harmony
> The A-Z of Programming Languages jumps to Javascript
> Fresh Javascript IDE in Ganymede Eclipse release
> Helma at the Linuxwochen in Linz
> Brendan on the state of Javascript evolution
> Stuff by George Carlin
> Is AppleScript done?
> ES4 Draft 1 and ES3.1 Draft 1
> Want ES4 in Helma today?
> SquirrelFish!
> Permaculture 101
> ES4 comes to IE via Screaming Monkey
> Apple's position on ECMAScript 4 proposals
> Helma Meeting Spring 2008
> Attila Szegedi about Rhino, Helma and Server-Side Javascript, and scripting on the JVM in general
> Helma 1.6.2 ready to download
> Larry Lessig's case for creative freedom
> Earthlings - Can you face the truth?
> The Story of Stuff
> A Quick Start to Hello World
> The Overlooked Power of Javascript
> Adobe's position on ES4 features, plus the Flex 3 SDK source code is now available under the MPL
> Solar cell directly splits water for hydrogen
> Asynchronous Beer and Geeking and other opportunities to talk about Helma, Rhino and Javascript on the server-side
> Openmocha and Jhino updated to 0.8
> Even more Server-side Javascript with Jaxer
> e4xd and jhino - javascript server-side soft-coding
> Additional Filename Conventions
> Update to Helma 1.6.1
> Netscape, the browser, to live one more month
> Heavyweight Champion of the World by Reverend and the Makers
> SimpleDB vs CouchDB
> Nuclear plants in Switzerland are modern Orgetorixism
> Helma powered AppJet - Takeoff!
> CouchDB for Helma
> Bubble bursting friendship bracelets
> Evolving ES4 as the universal scripting language
> Helmablog and an article in Linux Pro Magazine
> More praise for Helma
> Javascript as Universal Scripting Language
> So, what's up with World Radio Switzerland?
> Helma Conspiracy Theory
> JSONPath and CouchDB
> Hold the whole program in your head, and you can manipulate it at will
> Keeping track of localhost:8080
> Rhino 1.6R6 with E4X fix and patches for Helma
> Helma 1.6 is ready!
> Junction brings Rhino on Rails to Helma
> Javascript for Java programmers
> The server-side advantage
> John Resig on Javascript as a language
> Rhino on Rails
> Release Candidate 3 of Helma 1.6.0
> ECMAScript 4 Reference Implementation
> Antville Summer Of Code 2007
> Helma 1.6.0-rc2
> Using H2 with Helma
> Helma warped around existing db schemas
> Rocket the Super Rabbit
> Bootstrap is out of the bag
> The last mention of Microsoft
> Helma 1.6.0-rc1
> Introducing Planet Helma
> Helma ante portas
> Fixing Javascript inheritance
> Shutdown-Day the Helma way
> Upcoming Helma 1.6, new reference docs and IRC channel
> Making Higgs where the Web was born
> Jala for Helma
> See you at Lift'07
> More on Javascript Inheritance
> Mocha Inheritance
> Helma 1.5.3
> Fresh Rhino on Safari
> Truly Hooverphonic!
> Helma 1.5.2
> RFC 4329 application-ecmascript
> Helma 1.5.1 ready to download
> Aptana - Eclipse reincarnated as a Javascript IDE
> Building the Conversational Web
> Drosera steps in to debug Safari
> Helma 1.5.0 has been released!
> Helma 1.5 RC2 is ready
> Helma 1.5.0 Release Candidate 1 available for download
> FreeBSD Jails the brand new easy way
> Javascript 2 and the Future of the Web
> Frodo takes on chapter 3
> No Rough Cut :-(
> Welcome to Helma!
> 40th Montreux Jazz Festival
> trackAllComments
> Rails' greatest contribution
> Consensus vs Direct Democracy
> A candidate for CSCSJS or a Mocha Fetchlet
> A (Re)-Introduction to JavaScript
> coComment Roundup
> Track your comments
> Sketching image queries and reinventing email
> ECMAScript - The Switzerland of development environments
> I love E4X
> Tutorial D, Industrial D and the relational model
> Stop bashing Java
> E4X Mocha Objects
> Logging and other antimatters
> Stronger types in Javascript 2
> Javascript Diagnosis & Testing
> Homo Oxymora
> Yeah, why not Javascript?
> Moving beyond Java
> Spidermonkey Javascript 1.5 finally final
> Helma Trivia
> Finding Java Packages
> JSEclipse Javascript plug-in for Eclipse
> Catching up to Continuations
> Mighty and Beastie Licenses
> Tasting the OpenMocha Console
> "Who am I?", asks Helma
> Savety vs Freedom and other recent ramblings
> Mont-Soleil Open Air Lineup
> Rhinola - Mocha reduced to the minimum
> OpenMocha 0.6 available for download
> E4X presentation by Brendan Eich
> What is Mocha?
> Do you remember Gopher?
> The current.tv disappointment
> OpenMocha Project Roadmap
> MochiKit Javascript Library
> Getting your feet wet with OpenMocha
> People flocking to see global warming
> Rails vs Struts vs Mocha
> The JavaScript Manifesto
> OpenMocha is ready for a spin
> The limits of harmonization
> Le Conseil fédéral au Mont-Soleil
> Amiga History Guide
> The people must lead the executive, control the legislature and be the military
> Copyback License
> Looking at FreeBSD 6 and Beyond
> Qualified Minority Veto
> The Doom of Representative Democracy
> Violence in a real democracy
> Concordance and Subsidiarity
> Wrapping Aspects around Mocha Objects?
> Future of Javascript Roadmap
> Baby steps towards Javascript heaven
> Mac OS X spreading like wildfire
> Trois petits filous à Faoug
> Jackrabbit JSR 170
> Rich components for HTML 5
> More Java Harmony
> Mac goes Intel
> Google goes Rumantsch
> Oxymoronic Swiss-EU relations
> Rico and Prototype Javascript libraries
> Paul Klee - An intangible man and artist
> Incrementalism in the Mozilla roadmap
> Mocha multi-threading
> Moving towards OpenMocha
> Google goes Portal
> What Bush doesn't get
> Unique and limited window of opportunity
> Persisting Client-side Errors to your Server
> Dive Into Greasemonkey
> Brown bears knock on Switzerland's door
> The experience to make what people want
> "Just" use HTTP
> Yes, what is gather?
> A Free Song for Every Swiss Citizen
> Java in Harmony
> Jan getting carried away
> Evil Google Web Accelerator?
> JSON.stringify and JSON.parse
> Ajax for Java
> The launching of launchd
> Timeless RSS
> Kupu
> SNIFE goes Victorinox
> AJAX is everywhere
> Papa Ratzi
> More >>>