11
Oct 07

So You

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: So You


09
Oct 07

Google Billion Dollar Line of Javascript

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Google Billion Dollar Line of Javascript
Date: Tue, 09 Oct 07 22:39:21 GMT

With a single line of Javascript, Google takes in close to
a billion dollars worth of revenue:

http://www.blogstorm.co.uk/blog/billion-dollar-javascript/

Now here’s an idea for Google that all the Big Brother
conspirationists wont like (hopefully Google will take 3 or 4
years to do it, like some of my other suggestions): Google should
take Firefox and create its own version where the address bar
would be replaced by the Google searchbox. No more need to type
www.amazon.com, you’d just type “amazon” and get the “I’m feeling
lucky” result (the number 1 search result) or the 10 results
search list.

Instant takeover of IANA and the DNS system and immediate
revenue by selling this new addressing system (ie. keywords).
Immediate destruction of domain registers, domain squatters
and other similar parasites and instant redirection of “microsoft”,
“microsoft.com” or similar addresses/searches to linux.com, gnu.org
or whatever your favorite faction website is.

It has been tried before and failed. But before Microsoft and
MSN were involved, a sure sign for failure.
The world has changed in the last 5 years…

http://en.wikipedia.org/wiki/RealNames
http://searchenginewatch.com/showPage.html?page=2162611
http://searchenginewatch.com/showPage.html?page=2164841

— MV


08
Oct 07

Architecture Options for Next Generation Web Applications

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Architecture Options for Next Generation Web Applications
Date: Mon, 08 Oct 07 22:47:21 GMT

Recommended reading:

http://www.sda-india.com/conferences/jax-india/sessions/Craig_McClanahan/web_2_0_architecture.pdf

Very much inline with my thinking about a future web development
framework.

Also related:

http://webdeveloper.econsultant.com/ajax-frameworks

— MV


08
Oct 07

The Cat That Walked by Himself

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: The Cat That Walked by Himself
Date: Mon, 08 Oct 07 00:47:21 GMT

“EAR and attend and listen; for this befell and behappened
and became and was, O my Best Beloved, when the Tame animals
were wild.
But the wildest of all the wild animals was the Cat. He walked
by himself, and all places were alike to him.”

http://www.amazon.co.uk/Just-Stories-Twentieth-Century-Classics/dp/0140183515/

http://www.boop.org/jan/justso/cat.htm

“But the Cat keeps his side of the bargain too. He will kill mice and he will
be kind to Babies when he is in the house, just as long as they do not pull
his tail too hard. But when he has done that, and between times, and when the
moon gets up and night comes, he is the Cat that walks by himself, and all places
are alike to him. Then he goes out to the Wet Wild Woods or up the Wet Wild Trees
or on the Wet Wild Roofs, waving his wild tail and walking by his wild lone.”

— MV


07
Oct 07

A Future Web Development Framework – Application Logic

Path: mv.asterisco.pt!mvalente
From: mvale…@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: A Future Web Development Framework – Application Logic
Date: Sun, 07 Oct 07 21:21:21 GMT

There really isnt much to say about the middle component for
a 3-tier architecture (the business logic). You can of course
get into religious wars about which language it should use. This
is the component that usually generates all the talk precisely
because of the language issues. When discussing Django, Rails,
.NET, etc, people arent really arguing about what the application
(logic) server should do or what its architecture should be: they’re
just arguing on whether Python is better than Ruby is better than
Rails is better than PHP…

Me, although I currently favour Python, I am more of a syncretic
integrator: whatever solves the problem faster without spending
too much of my brain processing time (this immediately eliminates
Java.. LOL :-). Thats why I like some of the more recent options
available like Virtuoso or ActiveGrid that allow you to program
the business logic in a variety of languages (either choose one or
use all at the same time).

http://www.activegrid.com/
http://www.openlinksw.com/virtuoso/

Virtuoso, for example, by including the VM runtime for several
languages, is able to run code in Java, .NET, Python, Perl or PHP.

http://www.openlinksw.com/virtuoso/architect/vtechnical.htm

(nice graph there, maps some of my ideas nicely)

Nonetheless there are two points worth exploring about the logic
layer, whatever the language of your choice: how the logic layer
interfaces to the storage layer and how the logic layer interfaces
to the presentation layer.

The first problem I have already referred to in my previous post
about storage. Even though the usual interface is the SQL language
(due to the fact that 99% of the times the storage layer is implemented
using a relational database), nowadays most programming is being done
using an object-oriented language. Hence the object-relational impedance
problem and the proliferation of object-relational mappers (ORM), which
have become especially popular due to its use in Ruby-on-Rails ( more
precisely ActiveRecord).

As I stated in my previous post I dont think that this is the way of
the future. The indiscriminate use of the relational/SQL database is
way past due in an object/document/unstructured/hierarchical oriented
world and object-oriented databases should become the norm. On the other
hand I do have to admit that having my data closed down in some format
which is proprietary really bothers me a lot. Since I wrote my post about
storage, CouchDB has entered the radar of many people and it seems to
contain the basis for what is needed: a OO database that stores its
objects in a simple text format (JSON) with a REST interface.

http://couchdb.org/

The second problem (logic-to-presentation interface) actually mimics
the logic-to-data interface and it also has something to do with a later
issue (templating or view/controller). As in the logic-to-data interface
problem, where the logic level (ex: Perl or Python) currently embeds a
lot of data stuff (ie. SQL), the logic-to-presentation interface also
suffers from a lot of confusion, especially when you have templating systems
that allow you to mix code and presentation. PHP is a particularly bad
example of this problem.

This could be solved by explicitly denying the logic level to output
any kind of presentation code. Presentation level stuff (ie. templates
or view/controller) would be in charge of doing any presentation stuff,
getting all the data/logic from the applicatin server (through REST calls,
with data in JSON, XML, SOAP, whatever), with the application server being
explicitly prohibited from outputing any kind of HTML markup code (it just
wouldnt be taken into account or rendered).

What comes to mind as an example is an application server, using whatever
language, that would behave exclusively like TurboGears/CherryPy with the
jsonify decorator: you could call any URL in AJAX form and you would receive
results in JSON (or any other format), no HTML allowed.

http://docs.turbogears.org/1.0/JsonifyDecorator

Although I see no problem with the same server delivering both page
templates (ie. view/controllers) and logic (they are both HTTP after all),
that implies some discipline. An actual separation of concerns would
imply separate servers: one would only serve static pages (ie. templates)
and could be a standard HTTP server (Apache, etc) and the other would
only serve the processing results for received requests.

Event though I’m a bit agnostic regarding the choice of language for
your application server, I do have to state my opinion regarding current
trends and what I see as being the future endgame and the best choice.

Everyhing points towards a Javascript future.

http://steve-yegge.blogspot.com/2007/02/next-big-language.html

This is probably unpopular to say and there will be several voices
talking about Javascript’s speed. But the fact is that it doesnt make
much sense to use a language at logic/application level and then to
use another at presentation/template/view/controller level. Especially
when you take into account the current AJAX and JSON trends. You just
create aditional impedance when your doing stuff in Javascript at
presentation level (lets say field validation for example) and then
you’re encoding form fields into XML or POST fields, requesting some
processing from the application server which has to unmarshall the data
into whatever its format is, process it and remarshall the data back
into XML or JSON for delivery to the presentation layer.

In the last couple of years Javascript, which was available server
side back in the Netscape days (it was called LiveWire), is making
its comeback in the application server layer with a bunch of new
developments like OpenMocha, Phobos or Helma.

http://helma.org/
http://openmocha.org/
https://phobos.dev.java.net/

So, to sum it up: a future web development framework would include
an application server that exclusively served webservice requests
preferably in a REST way and in JSON format, explicitly barring any
output of presentation/HTML code. Although it could work in any
language, Javascript would probably be the best option given current
trends.

— MV