Thursday, November 17, 2005

New Sourceforge project: WebCLI

I started a new sourceforge project today (under the MPL) and there is a wiki for it too. It's Called "Web Command-Line Interface". The official homepage is At this stage, the project is a bit whimsical as it pokes fun at website development and design. It's ironic on purpose.

WebCLI is a console application written in JavaScript. My intention is to provide it with commands that will allow someone to browse and search for information - just like a "regular" website. Although, you'll be able to pop up windows where necesary (if content is not authored in plain text). Some commands will send HTTP requests in the background so as to execute scripts on some server (like PHP or ASP or whatever).

I've actually thought of a great many features which take the project beyond whimsical, but I'm not going to enumerate them in this log. What I will do now is focus on the core features so that I can implement the project's official homepage using WebCLI. Then you will be able to go there and type "show features" ;)

I actually thought of this exact concept a few years back (for my personal homepage) but I just never got around to coding anything - until I stumbled across a sitepoint tutorial which was supposed to be demonstrating an AJAX application. The tutorial only has the adea of passing through commands to and from the web server's command shell (ie. runing ls -l and seeing the results pour into your web browser). This was an idea I had already considdered in my original conception of WebCLI but it is a very minor (and potentially dangerous) feature.

One thing that is emerging is that it is very simple to add new commands. All you have to do is declare a (global) function (with no params, command-line params are available via a global var) whose name is prefixed with "CMD__". I've also written a SimpleHttpFetcher.js class which should make writing server-side enabled commands quite trivial.

If you want an super sneaky peek of the app, you can get it from the CVS. I haven't implemented any server-side stuff yet, so it's pretty much download and double click to see what's going on. If you want to be notified of happenings with it, ou can try the project's RSS feed.

This project has the potential to mutate into a multi-headed monster. And I mean that in the nicest possible way. The idea itself is somewhat of an abomination to begin with. If it gets a few giggle, then it might make someone happy. If it makes people happy, then it's a good piece of software :D
In all seriousness though, I see a few decent practical applications for the prject - particularly in the context of being an "accessory" to a web application such as a portal. WebCLI could be implemented as a portlet. I will most probably use it to augment my XUL applications. It will allow "power users" to "get under the covers" of an application and access facilities that would otherwise clutter up a conventional web app UI. It could be a really quick/easy way to implment an admin user interface for a big app.


Anonymous Ted said...

Terence.. I have to say: You have more projects than we all know what to do with. Keep up the good work!

(ps: i dont even have the hang of your xao-php framework yet!!!)

Thursday, November 17, 2005 4:29:00 AM  
Blogger Terence said...

The XAO stuff will get some decent doco/tutorials when I get a chance to put out an official beta release.

I'm gonna include WebCLI into the test harness that is shipped with XAO.

Thursday, November 17, 2005 3:02:00 PM  

Post a Comment

<< Home

My status