Rhino on Rails

Steve Yegge has posted more details on his port of Rails to Rhino and his thoughts on Rhino.

"When you start digging into Rhino, you find unexpected depth. JavaScript (unlike Perl, Python and Ruby, at least today) actually has a real specification, and Rhino follows it rigorously, aiming for complete SpiderMonkey compatibility within the bounds allowed by the different language platforms. Rhino also offers rich configurability, has well-defined multi-threading semantics, has a full set of hooks for debugging and profiling, and much more besides. There's a lot under the hood."

About building on Rhino, he says... "keep in mind that this is server-side JavaScript we're talking about, and on the JVM to boot. So libraries aren't an issue; there are plenty. And browser incompatibilities aren't an issue either - there's only one Rhino, and it works as advertised. But we've been able to go a step further and make some fundamental extensions that have made it almost Ruby-esque."

Interestingly, the example he picks is regarding the enumeration of methods and properties extending the Object and Array prototypes... "in client-side JavaScript there's currently no way to define a property that's non-enumerable, which implies that you can't add new functions or properties to Object.prototype, since they'll suddenly start showing up in your object literals (which are JavaScript's hashes, more or less). But in Rhino you just create a Java method that calls into the Rhino runtime to define non-enumerable properties, and you can extend Object.prototype to your heart's content. So we went wild, and added pretty much every interesting Ruby (and Python) built-in method on the built-in classes (Object, String, Array and the like)."

Of course, with the dontEnum method the way it's implemented in Helma, you can additionally also do this in plain Javascript. (Did this feature make it back into Rhino with the Helma patches Norris Boyd recently committed ? Not sure.)

Steve Yegge says that quite a team inside of Google has gathered by now, investing their 20% time into future Rhino development. Very Cool! I think that's probably the best news about the whole story - because on the Rails port side of the story, it seems he didn't really address the most interesting part, ActiveRecord, and they are instead planning to go in the direction of Hibernate.

He makes it clear that the project is not at a stage where it could be open sourced, and that that won't change much for at least a year. It looks like they will keep their eyes open for Rails-ish web frameworks of the likes of Helma.

Hey Steve, you can find it here: http://helma.org/ :-)

So, I think this is great news for Rhino, and as a result great news for the Helma project.

27.6.2007, 16:45

Release Candidate 3 of Helma 1.6.0

Amongst many other improvements, this release includes the new parameter collections req.postParams, req.queryParams, req.params, and req.cookies in addition to req.data, and adds support for monitoring file upload progress.

Check out the updated change log for details and go download it now!

22.6.2007, 11:45

ECMAScript 4 Reference Implementation

ES4 is getting a reference implementation written in Standard ML . The Ecma TG1 group is providing pre-releases early and often to solicit continuous feedback from the ECMAScript community.

As an aside, the Ecmascript language now has its own home on the web:
http://www.ecmascript-lang.org/

12.6.2007, 18:13

Antville Summer Of Code 2007

Tobi dives in to update the Antville code base: "Thus, this summer 2007 shall be taking place under the sign of Antville, lest a sunny stream may enlighten ye good ole program code, and may warm the hearts of the Antville community. Welcome to Antville Summer Of Code 2007 ."

7.6.2007, 8:56

Helma 1.6.0-rc2

In case you missed it: The second release candidate for Helma 1.6 is out for your testing pleasure.

2.6.2007, 8:08

Using H2 with Helma

Maksim Lin shows how easy it is to use H2 together with Helma , even as an embedded database in the same JVM:

..."just drop the h2.jar into helmas lib/ext folder, restart helma, pop the connection details into my applications db.properties and hey presto!"

Then, just change the connection URL in your helma apps db.properties to...

jdbc:h2:/data/h2/col

..."and bam! your H2 db is now running in the same JVM process as helma"

17.5.2007, 19:57

Helma warped around existing db schemas

Generating auto-updating Helma prototypes that are mapped on-the-fly to an existing database schema:

" Warp repository is a repository providing virtual prototype directories and type.properties files based on existing database schemas. You need to have correct primary and foreign keys set in your database for this to work.

Put your database settings in db.properties as always, add a warp repository with the name of the db.properties's db source and there you go."

5.5.2007, 10:01

Rocket the Super Rabbit

Samuel Oey's effort to enhance Tobi's Rabbit code brings us Rocket the Super Rabbit , featuring...

  • Metadata for Hop Object prototypes
  • Automatic form/input generation
  • DB/Table generation (MySql)
  • Creation of the model from existing source
  • Creation of folders/type.properties from the model
  • Basic permission management/access control
  • Basic List / Object viewer
1.5.2007, 17:12

>>> 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
> 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
> XMLHttpRequest glory
> Art Nouveau La Chaux-de-Fonds 2005-2006
> 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
> Anno 1999: Der Oberhasler
> Anno 1998: crossnet
> Think different
> Geschwindigkeit vs Umdrehungszahl
> Anno 1997: Xmedia
> "The meaning of life is to improve the quality of all life"
> Anno 1996: CZV
> Searching Gopherspace
> How do I set a DEFAULT HTML-DOCUMENT?
> 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
> Anno 1992: Intouch i-station
> Anno 1991: mediacube
> Anno 1990: RasterOps
> Anno 1989: Lambada by Kaoma
> Anno 1988: Perfect by Fairground Attraction
> Acorn Archimedes RISC Technology
> Anno-1986:-Max-Headroom-in-the-News
> Anno 1985: Amiga 1000
> Hello World on C128 in CP/M Mode
> Anno 1982: Vic-20
> The Future Is Unwritten
> Anno 1968: Mony Mony and People Got to Be Free
> August 28th 1968: William Buckley Vs Gore Vidal



server-side javascript
sovereignty, subsidiarity,
solidarity and sustainability

Chris Zumbrunn's Mochazone
> 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
> 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
> 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
> SimpleDB vs CouchDB
> 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
> More >>>