The long awaited first versions of Narwhal and Jack have been finally released! From the release notes:
Narwhal:
Narwhal is a cross-platform, multi-interpreter, general purpose JavaScript platform. It aims to provide a solid foundation for building JavaScript applications, primarily outside the web browser. Narwhal includes a package manager, module system, and standard library for multiple JavaScript interpreters. Currently Narwhal's Rhino (http://www.mozilla.org/rhino/) support is the most complete, but other platforms (http://narwhaljs.org/platforms.html) are available too.
Narwhal's standard library conforms to the ServerJS standard (https://wiki.mozilla.org/ServerJS). It is designed to work with multiple JavaScript interpreters, and to be easy to add support for new interpreters. Wherever possible, it is implemented in pure JavaScript to maximize reuse of code among
platforms.
Jack & JSGI:
JSGI is a web server interface specification for JavaScript, inspired
by Ruby's Rack (http://rack.rubyforge.org/) and Python's WSGI (http://www.wsgi.org/). It provides a common API for connecting JavaScript frameworks and applications to webservers.
Jack is a collection of JSGI compatible handlers (connect web servers to JavaScript web application/frameworks), middleware (intercept and manipulate requests to add functionality), and other utilities (to help build middleware, frameworks, and applications).
Congratulations to the team for a high quality first release!
Thursday, July 30, 2009
Thursday, July 23, 2009
The Open Fund
I had the pleasure of attending the first Open Coffee meeting, two years ago. From the humble beginning (10 geeks in a small cafe) the project went from strength to strength. Typically, around 300 people participate in the monthly event where aspiring entrepreneurs present their ideas.
I always thought that Open Coffee was just one part of the equation: surely, networking opportunities are important for bootstrapping an ecosystem of entrepreneurs. But a great idea doesn't guarantee a successful business. Neither does technical savvy.
A business needs funding, legal consulting, prudent accounting and strong management to flourish. The OpenFund is Open Coffee's long awaited take on this problem. Borrowing the concept of YCombinator and similar funds, OpenFund will hopefully spark a number of successful start-ups in the region.
The management team kindly accepted me as an adviser to the fund. I am fond of the idea of helping young people avoid the many mistakes I made in the last decade.
I always thought that Open Coffee was just one part of the equation: surely, networking opportunities are important for bootstrapping an ecosystem of entrepreneurs. But a great idea doesn't guarantee a successful business. Neither does technical savvy.
A business needs funding, legal consulting, prudent accounting and strong management to flourish. The OpenFund is Open Coffee's long awaited take on this problem. Borrowing the concept of YCombinator and similar funds, OpenFund will hopefully spark a number of successful start-ups in the region.
The management team kindly accepted me as an adviser to the fund. I am fond of the idea of helping young people avoid the many mistakes I made in the last decade.
Monday, July 13, 2009
Yet another JavaScript template
There are many JavaScript templating solutions, yet I couldn't find one that suited my needs. Well, json-template came pretty close, but the JavaScript source code was hard to read and extend, so I decided to implement a simplified version for use in Nitro. There are some minor differences but the spirit is the same.
Some days ago I decided to extract the template into a separate Narwhal package:
http://github.com/gmosx/template/tree/master
You can now use the Template without requiring the whole Nitro stack.
Some days ago I decided to extract the template into a separate Narwhal package:
http://github.com/gmosx/template/tree/master
You can now use the Template without requiring the whole Nitro stack.
Wednesday, July 8, 2009
Nasty JavaScript catch
JavaScript definitely has some rough edges. Consider this:
This is a great reason for a 20 minutes long debugging session :(
parseInt("07") // => 7
parseInt("08") // => NaN
This is a great reason for a 20 minutes long debugging session :(
Saturday, July 4, 2009
A conversion of the Python GAE Datastore API to JavaScript.
Initially, I wasn't impressed by Google's cloud offering. It seemed restrictive compared to EC2 and I didn't feel like wasting time to convert my code to a new programming language. The engineering team behind GAE continued to improve the service and eventually, with the release of the Java early preview, I was sold. In fact I am considering using GAE exclusively for my future projects.
Nitro, my lightweight JSGI Web Application Framework runs great on App Engine, thanks to Rhino. Moreover, I am working on appengine, a ServerJS package that exposes the GAE Java APIs to JavaScript. The project is in its infancy but I just added the beginnings of a port of the Python ext.db API. I think it is more intuitive than the JDO/JPA APIs. You can find an early version here. Hopefully, this code will attract some contributors to help with implementing more advanced features like GqlQuery.
Update: The name of the project was changed to 'appengine'.
Nitro, my lightweight JSGI Web Application Framework runs great on App Engine, thanks to Rhino. Moreover, I am working on appengine, a ServerJS package that exposes the GAE Java APIs to JavaScript. The project is in its infancy but I just added the beginnings of a port of the Python ext.db API. I think it is more intuitive than the JDO/JPA APIs. You can find an early version here. Hopefully, this code will attract some contributors to help with implementing more advanced features like GqlQuery.
Update: The name of the project was changed to 'appengine'.
Labels:
cloud,
database,
google,
JavaScript,
nitro,
programming,
web
Subscribe to:
Posts (Atom)