From one of the
very early experiments in "Weblogs"
in 1998 and the
open sourcing of the "HOP"
in the year 2000 to the widely deployed and mature
as we know it, plus the first experimental attempts at a Helma-rewrite as a
lean and mean js runtime, initially called "Rhinola"
and running on top of mod_gcj, which evolved into a candidate for
and later was codenamed
, the project
now known as RingoJS
RingoJS is a thin wrapper around Rhino providing
a CommonJS conformant module library and web application framework. If
you are using Rhino and/or are interested in CommonJS and ServerJS in general, the brand new RingoJS 0.4 release might be worth checking out.
The most notable new features:
updated CommonJS compliance
improved web application modules
optimizations regarding code caching and resource loading
unittest module; we are now shipping with 235 tests
jsdoc module using Rhino's AST feature and powering the
API docs web app
POSIX support; using JRuby's jnr-posix libraries
admin script for creating web app scaffolding
simplified Google App Engine deployment
new logging module based on log4j/SLF4J
lots of new JSGI middleware; gzip, etag, transaction, profiler, ...
new CLI arguments parser in pure JS
Pre-built downloads for Linux, Mac and Windows can be found on github:
And, of course, our new
site is now powered by RingoJS.
So you can see how easy it is to take RingoJS for a spin on Google App Engine, Hannes has produced the
Deploying RingoJS on Google App Engine
screencast for your viewing pleasure :-)
Kris Kowal and Mark Miller presented a synopsis of
topics covered at the January 2010 ECMA TC-39 meeting:
Helma 1.7.0 release
contains some bug fixes and
programmable HopObject collections
Apache Commons Daemon support, a
profiler for measuring function runtime and invocation frequency
, and skin/macro introspection, to mention just a few. It also contains an updated version of Rhino and is the first Helma release that has
enabled by default. The Helma 1.7.0 Changelog below has the nitty gritty details. Better
get it now, before there is an even better one.
Really, it's that good!
Our bugzilla has a
list of bugs fixed in Helma 1.7.0
Added ability to create HopObject collections programmatically and on the fly, without having to define them in the prototype's type.properties file.
Prototype mappings can now be defined programmatically as well using the newly added global function definePrototype().
Added Apache Commons Daemon support, making it possible to run the embedded Jetty server on port 80 for ordinary users on Unix and running Helma as service on Unix and Windows systems.
Property names in HopObjects are now case sensitive.
Added support for lazy collection loading, setting collection.lazyloading = true changes HopObject.list() to no longer fetch all contained objects, amongst other aspects.
HopObject.href() now takes an optional second argument, an object which will be encoded to a query string and added to the generated URL.
Added a profiler for measuring function runtime and invocation frequency.
Added generic header manipulation methods getHeader(), addHeader(), setHeader(), removeHeader() to the helma.Mail object.
Backported improved helma.file module from Helma NG, which takes an options object as argument and allows to specify the default charset to use.
Changed Object.prototype.dontEnum to be overridable and not read-only.
Added support for __defineGetter__ and __defineSetter__ to HopObjects.
Write locks for non-persistable properties on HopObjects are no longer checked.
A Rendering bug involving case in skin name has disappeared.
Fixed strictvars mode to produce the appropriate errors.
Fixed a bug where debug logging level wasn't unset if the debug property was set to false during runtime.
Network ports are now checked at startup by opening a ServerSocket on the port in question and seeing if it works.
Fixed a regression where dynamic relations were broken when the parent wasn't explicitely set.
Replaced encumbered code base of helma.util.Diff with an alternative implementation.
Fixed a comparison bug in loop macro in HopObject.js.
Fixed a slowdown when using getDBConnection() and oracle db that was due to running connection tests to often.
Fixed an error when retrieving HopObjects by accessname on a programmatic collection.
Fixed a problem where the return value of a HopObject's size() method did not change when removing children of a collection.
Fixed a problem with limit and offset on normal collections not working properly.
Adding an object to a grouped collection right after removing an object from that collection, which was in the same group and was added in the same request, now works.
Changed sessions for requests that do not already have one to be only created when actually needed.
Fixed a bug that caused helma.Html.isSelected() method to fail when the last argument was an array.
Added Skin.getMacros() to offer start and end properties, and getName, getHandlerType, getNamedParams, getPositionalParams and hasNestedMacros methods for skin/macro introspection.
Fixed a problem with persist() and collections using accessName.
Calling list() method with min and/or max arguments on HopObjects that are transient now works.
Changed String.URLPATTERN to use a regular expression instead of java.net.URL.
download it here.
How? *Seven Month*? And what then? The chance of him being shown somewhere we can see him over here in Europe are slim :-(
Oh, well, I'm looking forward to watching his last shows this weekend, when they will be shown on CNBC Europe. On Conan's last show, apparently Neil Young is the musical guest! Enjoy it while it lasts, as they say!
final "Tonight Show" aired Friday,
and while much of it was funny and
some was expensive,
the show ended with heartfelt words from the long-time NBC host:
"Before we end this rodeo, a few things need to be said. There has been a lot of speculation in the press about what I legally can and can't say about NBC. To set the record straight, tonight I am allowed to say anything I want. And what I want to say is this: between my time at Saturday Night Live, The Late Night Show, and my brief run here on The Tonight Show, I have worked with NBC for over twenty years. Yes, we have our differences right now and yes, we're going to go our separate ways. But this company has been my home for most of my adult life. I am enormously proud of the work we have done together, and I want to thank NBC for making it all possible.
Walking away from The Tonight Show is the hardest thing I have ever had to do. Making this choice has been enormously difficult. This is the best job in the world, I absolutely love doing it, and I have the best staff and crew in the history of the medium. But despite this sense of loss, I really feel this should be a happy moment. Every comedian dreams of hosting The Tonight Show and, for seven months, I got to. I did it my way, with people I love, and I do not regret a second. I've had more good fortune than anyone I know and if our next gig is doing a show in a 7-11 parking lot, we'll find a way to make it fun.
And finally, I have to say something to our fans. The massive outpouring of support and passion from so many people has been overwhelming. The rallies, the signs, all the goofy, outrageous creativity on the internet, and the fact that people have traveled long distances and camped out all night in the pouring rain to be in our audience, made a sad situation joyous and inspirational.
To all the people watching, I can never thank you enough for your kindness to me and I'll think about it for the rest of my life. All I ask of you is one thing: please don't be cynical. I hate cynicism -- it's my least favorite quality and it doesn't lead anywhere.
Nobody in life gets exactly what they thought they were going to get. But if you work really hard and you're kind, amazing things will happen."
has the video
ihab.awad at gmail.com wrote
on Thu Jan 14 13:06:39 PST 2010:
Kris Kowal and I have written up our proposals for a module system, to
be discussed during the Jan 28-29 meeting. The proposals are as
Module proposal, by Kris, focusing on management of primordials.
Module proposal, by Ihab, focusing on EMaker-style invocation semantics.
Packages proposal, by Ihab, focusing on how code may be
identified and distributed.
> ServerJS - Brewing The Perfect Storm
> While society must do things the right way, its people must find ways to do the right thing
> 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
> 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?
> 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
> Helma at the Linuxwochen in Linz
> Stuff by George Carlin
> Is AppleScript done?
> ES4 Draft 1 and ES3.1 Draft 1
> Want ES4 in Helma today?
> Permaculture 101
> ES4 comes to IE via Screaming Monkey
> Apple's position on ECMAScript 4 proposals
> Helma Meeting Spring 2008
> 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
> 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
> Openmocha and Jhino updated to 0.8
> 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
> 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
> The server-side advantage
> 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
> 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
> 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
> 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
> Frodo takes on chapter 3
> No Rough Cut :-(
> Welcome to Helma!
> 40th Montreux Jazz Festival
> Rails' greatest contribution
> Consensus vs Direct Democracy
> A candidate for CSCSJS or a Mocha Fetchlet
> 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
> Homo Oxymora
> Moving beyond Java
> Helma Trivia
> Finding Java Packages
> 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
> Getting your feet wet with OpenMocha
> People flocking to see global warming
> Rails vs Struts vs Mocha
> 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?
> 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
> 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
> SNIFE goes Victorinox
> AJAX is everywhere
> Papa Ratzi
> How Software Patents Work
> 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
> Catching XP in just 20 Minutes
> Designing the Star User Interface
> Re: SCO
> 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?
> 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
> 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
> 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
> Anno 1985: Amiga 1000
> Hello World on C128 in CP/M Mode
> Analog Desktop Publishing in 1984
> Anno 1982: Vic-20
> 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