As I'm compiling the concept and contents for a brand new gobi
based
helma.org
site, I have repeatedly noticed the same
dividing line going down straight through the middle of Helma
and the entire industry.
Is Helma a Java Application Server or a Javascript Application
Server? No, it is a Javascript-able Java Application Server.
Java is a strictly-typed language, Javascript a dynamically typed
one, and Helma is kind of sitting on a fence between the two
worlds.
Freedom Languages vs Safety Languages
Cant we all just get along?
http://www.journalhome.com/codecraft/9003/
This same divide continues through many other topics such as
the embedded database vs the object/relational mapping, the
extent to which coding conventions for Helma apps should be
established and encouraged vs the creative freedom of scripting
with all its pitfalls, etc.
Of course, we do not want to sit on a fence, but getting off the
fence in either direction means not using the full power Helma
has to offer on both sides - and turning away potential users
that might find Helma to be an ideal environment for their
personally preferred coding and development style.
Instead of being split by this divide, Helma could just get rid of it.
So, I'm working on describing Helma in a way that eliminates this
tension. If you recently have come across some articles that you
think I should read,
please let me know
.
Also, what do you expect from a fresh helma.org site? Any
suggestions regarding the structure and content are of course
very appreciated. I'm hoping to time the new site with the
release of Helma 1.5 or soon thereafter, therefore it will be put in
place rather quickly and then grown from there.
In the future, helma.org will have two sites, one for the
development of Helma itself and one for the users developing
with Helma, just like we now have the
helma-user
and
helma-dev
mailing lists.
30.08.2005, 13:24
|
A taste of working with the OpenMocha Console...
makeDigestEncoder = function(kind) {
return function(str) {
if (methodOf(this)) str = this;
var algorithm = java.security.MessageDigest.getInstance(kind);
var digest = algorithm.digest(new java.lang.String(str).getBytes());
var hexdigest = '';
for (var i = 0; i < digest.length; i++) {
var b = digest[i] & 0xff;
if (b < 0x10) hexdigest += "0";
hexdigest += java.lang.Integer.toHexString(b);
}
return hexdigest;
}
}
makeDigestEncoder('SHA-512')('hello world');
If you dig this screenshot, you'll get a glimpse of OpenMocha under the hood. If you have not discovered the OpenMocha Console yet then this might inspire you to
explore it
.
04.09.2005, 11:59
|
One understandably might think that proposing alternatives to
the MIT and BSD licenses with just drafting differences would
be the exact opposite of a license non-proliferation effort.
However, it could be the best place to start raising the bar for
what is considered a "reusable license" that also optimizes the
feasibility of "reusable code".
What do you do if you want to merge code from several projects
with MIT and BSD-ish licenses. Currently the only proper way is
to include the entire bunch of licenses, since they will differ ever
so slightly even if just due to the name of the projects and the
intermingling of copyright notices with the license text. Strictly,
you can for example not relicense the entire code base under
a single BSD-ish license. You can only sublicense. Only the
copyright holder can relicense under a different license.
In a perfect world, I think open source software would just
contain the copyright notices in the source code, specifying the
license that applies to that code, but the license itself would not
contain any direct references to that project, copyright holder or
contributor. Instead, the license would refer back to the
copyright notice that referenced the license.
If in addition to the different conditions, licenses also have
different grants and different warranty disclaimers, the troubles
starts to develop to the scope that has been identified as a
concern regarding license proliferation.
The
GPL
already fulfills these requirements for projects that want
to choose a strong-copyleft license. With the
AFL
and
OSL
there would also be such alternatives for projects that prefer a
BSD-ish or a copyleft license, but most projects continue to use
the less verbose MIT and BSD-esque licenses. Why?
The problem is likely one of "marketing" and one of a preference
for the non-verboseness of the traditional licenses. The best way
to overcome the marketing problem would be to rename the AFL
to BSD 3.0 or even "Beastie License 3.0". This might have a
surprising effect in the developer community and could trigger
a much wider adaption of the new licenses.
But the verbosity of the licenses is also a factor that makes dealing
with license proliferation more difficult. More verbose licenses
tend to increase the likelihood of jurisdictional incompatibilities
and I think it would be fair to say that non-verbose licenses have
been a good thing for open source and have not caused trouble
in the courts.
Here is what a redrafted BSD license that
takes the above into account could look like:
***
Beastie License
Redistribution, use, public performance, sublicencing and
selling with or without modification (the "Deployment") of
works (the "Work") referencing this license in their copyright
notices (the "Copyright Notice"), are permitted provided that
the following conditions are met:
1. Deployment must retain any Copyright Notice, the above
grant, this list of conditions and the following disclaimer.
2. The name of the Work must not be used to endorse, promote
or name works derived from the Work without prior written
permission, which may be obtained by contacting the contact
address provided in the Copyright Notice (the "Project").
The Work is provided "as is" and without warranty of any
kind, expressed or implied, to the maximum extent permitted by
applicable law, but with the warranty of being written without
malicious intent or gross negligence; in no event shall the
Project, a distributor, author or contributor be held liable
for any damage, direct, indirect or other, however caused,
arising in any way out of the Deployment of the Work, even if
advised of the possibility of such damage.
***
To optimize code reusability for projects combining source code
that is subject to different conditions, these conditions could be
added or removed and the license name changed so that the
copyright notices can refer to the appropriate version.
By removing clause 2) from the "Beastie License" you get a
"Mighty License", similar to the MIT license.
By adding the following clause 3) instead, you get the "Copyback
License":
3. Reasonable efforts to support the Work must be made by
contributing any modifications and additions, enabling the
Project to easily obtain such contributions and granting
the Project rights for Deployment of such contributions.
By adding the following clause 3) you get the "Copyleft License":
3. Recipients of the Deployment must be enabled to easily and
at no additional charge obtain the deployed work in its
editable form, including any modifications and additions
as well as the permission for their Deployment.
Source code that references the "Copyleft License" in its copyright
notices would still be combinable in a larger work licensed under
any of the previously mentioned licenses.
By adding the following clause 3) you get the "Snowball License":
3. Any work that in whole or in part contains or is derived
from the Work or any part thereof, must be licensed as a
whole at no charge to all third parties under the terms of
this license.
The "Snowball License" of course would be a pointless exercise,
since by definition it and the GPL would be two-way incompatible
with each other. So, in reality the GPL would take that slot.
Having licenses that are so similar and non-verbose also has the
advantage of making it possible for a novice to understand the
concepts of Open Source licensing in 3 Minutes.
Note that these are experimental licenses that are not currently OSI-certified.
12.09.2005, 11:05
|
Need to do some catching up...
...and then there is this...
26.09.2005, 17:22
|
JSEclipse
is a freeware
Javascript plug-in for the Eclipse environment
. Designed
to help web developers edit JavaScript files with ease, it has built
in support for:
-
Code completion for
JavaScript
function and classes.
-
Code completion for
JavaDoc
.
-
Function and class names are displayed in the
Outline
panel for the currently open file.
- Open declaration
- Error reporting
- Warning reporting
-
Code wrap
12.10.2005, 15:54
|
|
|
> Helma Trivia
|
|
> Spidermonkey Javascript 1.5 finally final
|
|
> Moving beyond Java
|
|
> Yeah, why not Javascript?
|
|
> Homo Oxymora
|
|
> Javascript Diagnosis & Testing
|
|
> Stronger types in Javascript 2
|
|
> Logging and other antimatters
|
|
> E4X Mocha Objects
|
|
> Stop bashing Java
|
|
> Tutorial D, Industrial D and the relational model
|
|
> I love E4X
|
|
> ECMAScript - The Switzerland of development environments
|
|
> Sketching image queries and reinventing email
|
|
> Track your comments
|
|
> coComment Roundup
|
|
> A (Re)-Introduction to JavaScript
|
|
> A candidate for CSCSJS or a Mocha Fetchlet
|
|
> Consensus vs Direct Democracy
|
|
> Rails' greatest contribution
|
|
> trackAllComments
|
|
> Anno 2003: deployZone
|
|
> Anno 1998: crossnet
|
|
> Anno 1999: Der Oberhasler
|
|
> No Rough Cut :-(
|
|
> 40th Montreux Jazz Festival
|
|
> Welcome to Helma!
|
|
> Frodo takes on chapter 3
|
|
> Javascript 2 and the Future of the Web
|
|
> FreeBSD Jails the brand new easy way
|
|
> Helma 1.5.0 Release Candidate 1 available for download
|
|
> Helma 1.5 RC2 is ready
|
|
> Helma 1.5.0 has been released!
|
|
> Drosera steps in to debug Safari
|
|
> Building the Conversational Web
|
|
> Aptana - Eclipse reincarnated as a Javascript IDE
|
|
> Helma 1.5.1 ready to download
|
|
> RFC 4329 application-ecmascript
|
|
> Helma 1.5.2
|
|
> Truly Hooverphonic!
|
|
> Fresh Rhino on Safari
|
|
> "The meaning of life is to improve the quality of all life"
|
|
> Mocha Inheritance
|
|
> Helma 1.5.3
|
|
> More on Javascript Inheritance
|
|
> See you at Lift'07
|
|
> The war against terror
|
|
> The war against terror (continued)
|
|
> Jala for Helma
|
|
> Making Higgs where the Web was born
|
|
> Upcoming Helma 1.6, new reference docs and IRC channel
|
|
> Shutdown-Day the Helma way
|
|
> Fixing Javascript inheritance
|
|
> Helma ante portas
|
|
> Introducing Planet Helma
|
|
> Helma 1.6.0-rc1
|
|
> The last mention of Microsoft
|
|
> Bootstrap is out of the bag
|
|
> Rocket the Super Rabbit
|
|
> Helma warped around existing db schemas
|
|
> Using H2 with Helma
|
|
> Helma 1.6.0-rc2
|
|
> Antville Summer Of Code 2007
|
|
> ECMAScript 4 Reference Implementation
|
|
> Release Candidate 3 of Helma 1.6.0
|
|
> Rhino on Rails
|
|
> John Resig on Javascript as a language
|
|
> The server-side advantage
|
|
> Javascript for Java programmers
|
|
> Junction brings Rhino on Rails to Helma
|
|
> Helma 1.6 is ready!
|
|
> Rhino 1.6R6 with E4X fix and patches for Helma
|
|
> Keeping track of localhost:8080
|
|
> Hold the whole program in your head, and you can manipulate it at will
|
|
> JSONPath and CouchDB
|
|
> Helma Conspiracy Theory
|
|
> So, what's up with World Radio Switzerland?
|
|
> Javascript as Universal Scripting Language
|
|
> More praise for Helma
|
|
> Helmablog and an article in Linux Pro Magazine
|
|
> Evolving ES4 as the universal scripting language
|
|
> Bubble bursting friendship bracelets
|
|
> CouchDB for Helma
|
|
> Helma powered AppJet - Takeoff!
|
|
> SimpleDB vs CouchDB
|
|
> Netscape, the browser, to live one more month
|
|
> Update to Helma 1.6.1
|
|
> Additional Filename Conventions
|
|
> e4xd and jhino - javascript server-side soft-coding
|
|
> Even more Server-side Javascript with Jaxer
|
|
> Openmocha and Jhino updated to 0.8
|
|
> Asynchronous Beer and Geeking and other opportunities to talk about Helma, Rhino and Javascript on the server-side
|
|
> Solar cell directly splits water for hydrogen
|
|
> Adobe's position on ES4 features, plus the Flex 3 SDK source code is now available under the MPL
|
|
> The Overlooked Power of Javascript
|
|
> A Quick Start to Hello World
|
|
> The Story of Stuff
|
|
> Earthlings - Can you face the truth?
|
|
> Larry Lessig's case for creative freedom
|
|
> Helma 1.6.2 ready to download
|
|
> Attila Szegedi about Rhino, Helma and Server-Side Javascript, and scripting on the JVM in general
|
|
> Helma Meeting Spring 2008
|
|
> Apple's position on ECMAScript 4 proposals
|
|
> ES4 comes to IE via Screaming Monkey
|
|
> SquirrelFish!
|
|
> Want ES4 in Helma today?
|
|
> ES4 Draft 1 and ES3.1 Draft 1
|
|
> Is AppleScript done?
|
|
> Brendan on the state of Javascript evolution
|
|
> Helma at the Linuxwochen in Linz
|
|
> Fresh Javascript IDE in Ganymede Eclipse release
|
|
> The A-Z of Programming Languages jumps to Javascript
|
|
> Ecmascript Harmony
|
|
> Large Hadron Collider
|
|
> Helma at the 2008 OpenExpo in Zurich
|
|
> Release Candidate 1 of Helma 1.6.3
|
|
> Helma 1.6.3 Release Candidate 2
|
|
> Helma 1.6.3-rc3 ready for testing
|
|
> Helma turns 1.6.3
|
|
> First Soleil on Mont-Soleil
|
|
> Anno 2004: CZV
|
|
> Server-Side Javascript Standard Library
|
|
> Is the Bespin web-based code editor the ideal future ServerJS IDE?
|
|
> New Eclipse Helma plugin project
|
|
> The best solution is that one isn't needed
|
|
> ReverseHttp and RelayHttp
|
|
> ES5 Candidate Specification
|
|
> A car has nothing to do with a carpet
|
|
> Think different
|
|
> Crossnet - der kollektive Intellekt der Schweiz
|
|
> Anno 1992: Intouch i-station
|
|
> Anno 1990: RasterOps
|
|
> Anno 1991: mediacube
|
|
> Anno 1993: Macro-micro navigator
|
|
> Server-side Javascript
|
|
> Surrender by Cheap Trick
|
|
> Permaculture 101
|
|
> Be part of the solution, not part of the problem
|
|
> CometD at a glance
|
|
> PubSubHub against spam and walled gardens
|
|
> Web-based editing of sandboxed server-side javascript apps
|
|
> Hang You From the Heavens by The Dead Weather
|
|
> Anno 1988: Perfect by Fairground Attraction
|
|
> August 28th 1968: William Buckley Vs Gore Vidal
|
|
> Anno 1968: Mony Mony and People Got to Be Free
|
|
> Unus Pro Omnibus - Omnes Pro Uno
|
|
> Been there, but haven't done that
|
|
> If they are not ready for what they need, give them the backbone for their future baby steps
|
|
> Before implementing a solution to a problem, always search for a workaround, because the workaround is often better than the original solution
|
|
> JVM Web Framework Smackdown
|
|
> Eating healthier would safe the planet
|
|
> ServerJS - putting Javascript to work on the *other* side
|
|
> CommonJS effort sets JavaScript on path for world domination
|
|
> While society must do things the right way, its people must find ways to do the right thing
|
|
> ServerJS - Brewing The Perfect Storm
|
|
> Move your money - It's a Wonderful Life
|
|
> You find what you google for.
|
|
> Module system strawpersons
|
|
> Keep Cool My Babies!
|
|
> Written In Reverse by Spoon
|
|
> The Moon And The Sky by Sade
|
|
> Helma 1.7.0 has escaped its stealth existence
|
|
> Modules, Proxies, and Ephemeron Tables
|
|
> Server-Side Javascript since... way back: RingoJS!
|
|
> Anno 1989: Lambada by Kaoma
|
|
> Eternal September
|
|
> AOL expanding Internet services
|
|
> Searching Gopherspace
|
|
> NEW-LIST digests
|
|
> ACTIV-L Digest
|
|
> Acorn Archimedes RISC Technology
|
|
> Hello World on C128 in CP/M Mode
|
|
> Anno 1986: Max Headroom in the News
|
|
> Anno 1985: Amiga 1000
|
|
> Anno 1982: Vic-20
|
|
> RhinoJS
|
|
> Lost and Found by Steve Mason
|
|
> Your Personal Religion by Sophie Hunger
|
|
> RingoJS 0.5 released
|
|
> Sweet People by Alyosha
|
|
> RingoJS vs NodeJS
|
|
> Get Around by Neil Young
|
|
> How creativity occurs
|
|
> The Future Is Unwritten
|
|
> What's Up Doc? by Carbon/Silicon
|
|
> Will Adobe see the light (of Day)?
|
|
> Good for Adobe, Good for Day, Good for the Ecosystem
|
|
> confederate?
|
|
> Brendan Eich on Proxies, Modules and other Proposals and Strawman
|
|
> CoffeeScript, underscore.coffee and underscore.js
|
|
> We have the world we want
|
|
> Lila Luftschloss
|
|
> If there is anything supernatural, it is humanity itself
|
|
> Oh No! by Marina And The Diamonds
|
|
> Reality is an onion, and depending on how deep you think, it may seem to contradict itself
|
|
> Web services should be both federated and extensible
|
|
> Freude herrscht!
|
|
> The Cluetrain Manifesto
|
|
> The Paul Allen Suit
|
|
> Erbix CommonJS soft-coding engine
|
|
> Nice comparison of Ringo and Node
|
|
> Faked web browsing
|
|
> Angry World by Neil Young
|
|
> Anno 1987: Knowledge Navigator
|
|
> Open source Facebook replacement Diaspora drops first alpha
|
|
> Restrepo
|
|
> Bungee jumps for all congressman, free!, no strings attached
|
|
> Link Love for Javascript
|
|
> Predictions of an ugly IPv4-to-IPv6 transition
|
|
> Ringo Release 0.6
|
|
> Order is an addictive illusion
|
|
> Peaceful Valley Boulevard and Rumblin
|
|
> Rhinola 0.8 - Server JS reduced to the minimum
|
|
> Unconditional Responsibility meets Total Compassion
|
|
> Which system setting, Mr. Citrix?
|
|
> Making Antimatter where the Web was born
|
|
> WikiLeaks moves to Switzerland
|
|
> Democracy Now!
|
|
> So Long, Larry King Live
|
|
> You register me in 50 states
|
|
> Daniel Ellsberg on Wikileaks
|
|
> Software Engineering
|
|
> California by Joni Mitchell
|
|
> Friedrich Dürrenmatt - Die Schweiz als Gefängnis
|
|
> Please Take by Wire
|
|
> Fixing the Future
|
|
> Cablecom baffled by service interruptions
|
|
> The decision to store data in a database is usually a case of premature optimization
|
|
> Could uprisings in Egypt and the Arab world produce a 'Muslim Gandhi'?
|
|
> No more White Stripes
|
|
> It Hurts Me Too by First Aid Kit
|
|
> Asmaa Mahfouz starting a revolution
|
|
> Think before teaching young dogs old tricks
|
|
> How to Save the World, Fast and Easy
|
|
> Powerful stroke of insight
|
|
> Madame Trudeaux by KT Tunstall
|
|
> Re: Administrivia
|
|
> Blue Tip by The Cars
|
|
> Piledriver Waltz by Alex Turner
|
|
> Canada, please evolve
|
|
> Heavyweight Champion of the World by Reverend and the Makers
|
|
> Everything is either simple or flawed
|
|
> AIR is to apps as PDF is to docs
|
|
> Wishful thinking is the mother of all progress
|
|
> Nuclear plants in Switzerland are modern Orgetorixism
|
|
> Newark Peace Education Panel
|
|
> Photoshop Startup Memories and First Demo
|
|
> BZ Internet Cafe
|
|
> Xjournal
|
|
> Morgana - Selling Digital-Font based Sign-writing
|
|
> Macworld Expo 1988 Amsterdam
|
|
> The right time to buy Apple stock
|
|
> Bürgerbrief
|
|
> Analog Desktop Publishing in 1984
|
|
> Enable the Creative
|
|
> Christiana Bike gone missing in Basel
|
|
> Postel's Law
|
|
> Best Music, News, and More is Back!
|
|
> bumblebee
|
|
> FidoNet
|
|
> Cute Barristas at Peet's Coffee
|
|
> Storm Song by Smoke Fairies
|
|
> Earth Mother and Fortieth Floor by Lesley Duncan
|
|
> Permaculture - A Quiet Revolution
|
|
> Paradise with Side Effects
|
|
> The Data Liberation Front
|
|
> What's Next California
|