Ringo is a CommonJS-based JavaScript runtime written in Java and based on the Mozilla Rhino JavaScript engine. It takes a pragmatical and non-dogmatic stance on things like I/O paradigms. Blocking
and
asynchronous I/O both have their strengths and weaknesses in different areas.
Its aim is to provide an off-browser JavaScript platform that has the right mix of features and simplicity to be pleasant to work with and easy to deploy. The primary goal is to build a stable, high-performance runtime for server-side use. The following code is all you need to create a simple web app:
exports.app = function(req) {
return {
status: 200,
headers: {"Content-Type": "text/plain"},
body: ["Hello World!"]
};
};
if (require.main == module)
require("ringo/httpserver").main(module.id);
Simply save the code above as "server.js" and run it by executing
ringo server.js
. Like most Ringo apps, this app will automatically reload, picking up any changes you make without requiring a restart.
But Ringo lets you do more than write web applications. It allows you to seamlessly use any Java class or library simply by dropping it into the classpath. This makes it easy to integrate Ringo into existing Java environments and reusing existing Java code works without lots of effort or porting issues.
Get the RingoJS 0.9 release here: ringojs.org/download
Get Started
or the
documentation page
to learn more about Ringo.
Changelog for RingoJS 0.9
Release date: 2 January 2013
New features and major changes
Other changes and bugfixes
-
system
module is no longer preloaded
- remove obsolete and/or obscure global functions: doctest, loadClass, readFile, readUrl, runCommand, toint32, trycatch, enterAsyncTask, exitAsyncTask
-
setTimeout()
/
setInterval()
are now global; ringo/scheduler removed
-
Semaphore
moved into new module
ringo/concurrent
-
return absolute path in
module.resolve()
if resource is a file
-
ringo/promise
callbacks return a promises chain (as they're supposed to)
-
renamed
ringo/promise
exports
defer
to
Deferred
and
promises
to
PromiseList
-
ringo_config
property renamed to
app
in JSGI request
-
fs.touch()
now creates an empty file if no directory or file at the given path exists
-
fs.listDirectoryTree()
,
fs.listTree()
,
fs.Path.listPaths()
return sorted results
-
force String return values for
fs.owner()
and
fs.group()
-
avoid unwanted reconfiguration in
ringo/logger
-
global
works now with sealed globals
- updated mustache.js to support dot notation
- ringo-admin could not remove downloaded files on Windows
- -m/--modules option accepts multiple paths seperated with path.seperator
Contributors
- Andreas Bolka
- Jim Cook
- Robert Gaggl
- Philipp Naderer
- Simon Oberhammer
- Tim Schaub
- Hannes Wallnöfer
2.1.2013, 16:57
|
...the
quintessential vegetarian restaurant,
during
Participate.ch's 1st DF training
in Zurich, Switzerland.
6.3.2013, 13:27
|
Wie schon oft steckt die globalisierte Konsumgesellschaft wieder mal in einem Nahrungsmitteldebakel. Dass die Grossverteiler von Migros über Coop bis Aldi & Co wacker mit profitieren ist nicht neu.
Weil es Alternativen dazu gibt, gründen wir die Swiss Foodcoop Genossenschaft. Swiss Foodcoop
www.sfcoop.ch
Wenn wir in genügend InteressentInnen finden, können wir lokale Vertriebstellen aufbauen. Kurz zusammengefasst die Vorteile: Produkte aus lokaler Produktion direkt von den Produzenten (nicht nur Nahrungsmittel); Ausschalten des Zwischenhandels und daher markant günstigere Preise; Selbstbestimmung der Produkteauswahl.
Die Aufbauarbeit von der Swiss Foodcoop wurde von einem eigens dazu gebildeten Verein, der als Einkaufsgemeinschaft in Zürich Wiedikon aktiv ist, geleistet.
Montag, 11. März 2013, 19:00
Quartiertreff Enge, Gablerstrasse 20, 8002 Zürich
9.3.2013, 10:16
|
...at the dinner table - and online using Adobe Connect...
adobeconnect.com
17.3.2013, 16:16
|
Last week we facilitated a meeting of the
Association de quartier Paddock-Morgarten
in La Chaux-de-Fonds, experimenting in the spirit of
Participate.ch,
using the choice creating process in the context of consultation procedures in Switzerland. In this case, concerning the feedback on the public presentation of the project specifications for the Paddock terrain, a currently unused green area in the city that should become the site of various leisure activities and neighbourhood projects, including a shared community garden.
Laurence, who was a participant in the previous week's seminar in Zurich, was able to practice her new learned skills for the first time and facilitated the session. The participants really appreciated the process and felt they were heard and able to contribute to a much greater extent than they are used to!
17.3.2013, 17:05
|
|
|
> Taste the Waste - about the worldwide destruction of food
|
|
> Governance Futures Lab for ReConstitutional Convention
|
|
> Simone Rebmann als Regierungsstatthalterin!
|
|
> Transition Town Bern am 25. April
|
|
> More than Honey by Markus Imhoof
|
|
> Occupy Love by Velcrow Ripper
|
|
> Overview & Continuum by Planetary Collective
|
|
> Zukunft säen Vielfalt ernten
|
|
> Everyone is an exception. Let's try and catch each other.
|
|
> Art of Participatory Leadership 2013
|
|
> Social Capital World Forum 2013
|
|
> Reserve Ratio, Inter-Bank Lending and Equity Ratio
|
|
> Because *somebody* has to stand up for the people of the Internet
|
|
> The means are the way
|
|
> Original Black Bloc exhibited
|
|
> Dare to imagine: The grid that is us
|
|
> Collaborate locally, collaborate globally
|
|
> Edward Snowden, NSA PRISM wistleblower
|
|
> Installing Democracy
|
|
> Grüne NetzpolitikerInnen gegen BÜPF und NDG
|
|
> Nourrir la ville - Tagung für lokale und nachhaltige Strategien
|
|
> Leitideen des Anarchismus und EU-Kritik
|
|
> Green Phoenix Congress, September 25-29 2013, Schweibenalp, Switzerland
|
|
> Surfing Democracy November 25-26 2013
|
|
> Sommerfest von Transition Bern
|
|
> Open Air Filmvorführung in Bern am 11.8.: In Transition 2.0
|
|
> Es gibt kein Recht auf unethisches Verhalten.
|
|
> in-vitra Kulturen- und Kunstplattform in Biel-Bienne
|
|
> E-Voting: gesunde Skepsis und OpenSource ist nötig
|
|
> Virtual roundtable on governance
|
|
> Invitation to the 2013 "Beau-Sejour" gathering, October 25-27 in St-Imier, Switzerland
|
|
> Changelog for RingoJS 0.10
|
|
> Trends in Civic Tech
|
|
> Rolling Stone: In the Belly Of The Beast
|
|
> The Cryptosphere: decentralised, secure and open Web platform
|
|
> Zukunftsforum im Lorraine Quartier
|
|
> Polymoney Workshop
|
|
> Les idées principales de l'anarchisme et la critique de l'Union Européenne
|
|
> Culture of Collaboration
|
|
> La Décentrale Mont-Soleil
|
|
> Join the 2014 Beau-Sejour Gatherings, November 14-30
|
|
> RingoJS 0.11 is out!
|
|
> The New Decentralized Internet - MaidSafe
|
|
> Own The Change: Building Economic Democracy One Worker Co-op at a Time
|
|
> Stage dinitiation aux plantes sauvages comestibles et médicinales
|
|
> Decentralise Now Gathering for the 99%
|
|
> Outcomes of the Decentralise Now Gathering
|
|
> RSS murderers, some must rebuild bridges you have willfully destroyed
|
|
> Decentralized Autonomous Popcorn Time
|
|
> Tesla: All Our Patent Are Belong To You
|
|
> Why Wikipedia might be the most important invention ever
|
|
> The numbers of the day: 62 vs 50% and 1% vs 99%
|
|
> Decentralised Jokes
|
|
> Verpasst: Eine grosse Chance für ein krisensicheres Geld
|
|
> Richard Moore on the Electric Universe and Climate Change
|
|
> CoinFest 2016, April 5-10, Mont-Soleil
|
|
> Participate in the solutions of tomorrow!
|
|
> St-Imier Gatherings 2017: July 30 - September 22
|
|
> The Summer Camps experience of St-Imier 2017
|
|
> Kurdistan-reve-de-Printemps
|
|
> The Mycelium Model of Glocal Governance
|
|
> Anarchy 2023 renversé
|