Wednesday, November 30, 2005

BlueJ version 2.1.0 is out

The BlueJ IDE is a learning tool designed to assist with the learning of Java.

Thursday, November 24, 2005


It's all the rage. Even while a laptop makes much more sense, I have a perverse urge to build a PC into my fourby. I made a wiki page for it.

Wednesday, November 23, 2005

IE tab

This is both useful, and quite amusing...

Tuesday, November 22, 2005

Essential Web Developer extensions for FireFox 1.5

Here is a good article that summarises some really good FF extensions for us types.

Monday, November 21, 2005

Yet another(?) web shell

I found another web-based command shell project. It's called PHPsh and as the name suggests, it's a command shell which communicated with a PHP server to run SHell commands using the HTTPDs credentials on the server. The interface has some interesting layout concepts.

WebCLI seems to differ in that it is more general in it's aims. A function such as shell command pass through would be an optional implementation of a server-side component. The onus for security being totally on the implementor.


Microformats seems to be the formalisation of a commone sense idea. That idea is to promote existing nomencletures that are common in order to ubiquitise information formats. It discourages ad-hoc schema invention - whether for internal pipelines or external publishing. This article on it is short and sweet - worth a read.

Friday, November 18, 2005

Venkman for FireFox 1.5


I have been sooooo waiting for this. All my JS development has been going on in FF 1.5 - but with no debug environment.

If you do ANY web-based JavaScript (ECMAScript) development, you have rocks in your head if you don't use venkman.

Notepad++ tiny, fast, awesome

Notepad++ has to be the coolest code editor for Windows that I have seen. It's written in C++ so it is miniscule. It has boatloads of features/functionality/plugins/languages-support, yet it is lightning fast and has a tiny footprint on your memory.

Because there is no "project management" guff, it's perfect for file associations. It launches quickly for instant double click gratification.

I only just found it, and I'm lovin it.

If you use Unix, you can use Scintilla which N++ was based on.

Thursday, November 17, 2005

Ambient Findability

This looks like one of those books which would be really really interesting to read - if I didn't have all this other crap to do :/

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.

test if array contains...

JavaScript has no built in way to test if an item exists (as a value) in an Array/Object. Here's a handy prototype I whipped up.

Array.prototype.Contains = function(mxd,strict) {
for(i in this) {
if(this[i] == mxd && !strict) return true;
else if(this[i] === mxd) return true;
return false;

// i.e.
if(arrMy.Contains("it")) alert("We have it!");

This could be useful to see if someone has priverlages or whatever...

Monday, November 14, 2005

More AJAX than you can poke an XMLHttpRequest at

Thursday, November 10, 2005

...and our word for today is "Closure" (JavaScript)

"A closure is an expression (typically a function) that can have free variables together with an environment that binds those variables (that "closes" the expression)."

A very enlightening use and abuse article on the topic by Richard Cornford. March 2004.
It's enlightening because it involves key concepts in JavaScript related to object orientation, scope, and identifier resolution. These things are almost always not understood by casual JavaScript hackers (speaking from past experience).

bit bash it instead

I must confess, I don't really use bit bashing in my code. I just never bothered. Sure, I've come accross it before and understood it, but I could never be bothered applying it. That is, until I read the bitwise operator section of the Mozilla JavaScript 1.5 reference. I have to say, this little wiki page is the shortest, most useful article on the topic and is very very easy to understand and the examples at the bottom are a great little reference.
If you don't bit bash, then maybe you should. It would be a shame to be missing out on one of the most useful/fundamental techniques in programming just because you never got round to checking it out properly like me. It's also the most efficient way to do many things that people often burden SQL databases with (eg. user priverlages).

PostgreSQL 8.1.0 (stable)

It's official. The PostgreSQL project is unstopable.

Wednesday, November 09, 2005

Bosom buddies

Testify brother!

Regex Buddy is MY bosom buddy. I can't, in good conscience, keep using this program without spreading the word about how good it is - it really is that compelling. I found out about it while trolling the web for good information on regular expressions. After checking the price, I promptly had 5 licences ordered for our developer team at work. I've had a few months with it now and it has never let me down.

There have been tonnes of times where I needed to process/mine ASCII text in some way and I know that a regex will do the job handily. Only problem is that I never quite got the hang of regexes despite repeated attempts at reading material on them. It seems there was always some important subtlty that elluded me. The times between needing to use RegExes where also just long enough for me to forget the important details resulting in the need for "revision study" every single time I wanted to use a RegEx. It was really starting to piss me off!

Since I got Regex Buddy, my life changed forever and now I am a multi-billionare with lots of money and a perfect life. OK, maybe that is a slight exaduration, but it has cirtainly made all my programming a hell of a lot easier and also a hell of a lot more functional. Things that I would have balked at, I now tackle with confidence.

My most favourite feature s the token-based regex builder which uses a menu (with user-freindly terms) to build up and/or modify a regex. The other thing I love is the test window which allows you to quickly prove your regexes. There's also an amazing debugger but I haven't gotten 'round to using that yet. I love the task-oriented code generator that supports about 10 different languages. There's also a tonne of ready-made regexes in the built-in library and you can add/save your own. The library is a great solution to managing/re-using your regexes. But, my most favourite part of this package, is the tightly linked help. It's awesome. It's comprehensive, and well written. And you can broach a topic without needing a whole pile of prerequisite knowledge (in most cases). You can right click on a token (in the regex builder) and choose "explain" to read more about. This, my friends, is the ONLY way to learn regexes.

Burn your books. They are wasting your valuable time.
Regex Buddy is cheaper than any of them anyway.

I use Regex buddy almost daily for my PHP/JavaScript/Java/C# development.
Note, all modern relational database management systems (such as PostgreSQL) support regexes in the where clause now days.

pick the lint out of your javascript

With this online application.

The World's Most Misunderstood Programming Language

Douglas Crockford has written a short but interesting piece on how JavaScript is misunderstood. It goes beyond being, what looks at first glance like, an opinionated article written by a grumpy old man. His areguments are sound and well constructed. There are ample code examples to illustrate his points. This was educational for me in at least one profound way, and I reckon every developer (and I don't just mean WEB developer) would do well to read it. It should change the way you approach tasks with this technology, and in the process, greatly empower you. Javascript, and spinoffs like actionscript, are used everywhere nowadays, from office suites, to Application Server Frameworks (ie. Cocoon's Flow), to GUI frameworks (XUL) to video editing packages (ie. Sony Vegas scripting kit). If you are a developer, you may as well master the language so you can command propper control of JavaScript when you inevitabally encounter it.

Thursday, November 03, 2005


I got bit by the beta bug.

I've been spending the last couple of weeks developing a XUL application. I got stuck on this bug where this widget would simply refuse to bind to my remote RDF/XML datasource which was generated by a PHP script. Eventually, after some agressive debugging, I figured out that file encoding might be an issue. Then I spent a lot of time trying to sort that. Still, things would not work.

Then I finally got around to upgrading my platform (web browser) from 1.5beta2 to 1.5RC1.

The problem went away.

The moral of the story? Be careful with beta software!
I got burnt because my development platform and my most-used software tool are one and the same. I like to participate in beta testing for but as a developer, it cost me dearly this time.

Wednesday, November 02, 2005

spooky spam detection

Hey look, I know I'm starting to sound like an ad for Google , but their spam protection is so good, it's spooky. I think this may have a lot to do with the fact that they can detect a msg which is sent to a high number of their users.

Unfortunately, I haven't always practiced safe surfing with web forms and email addresses, which hasn't helped me much in making myself a small target for spammers. However, since I switch to gmail, I have not yet had one piece of spam hit my inbox. AND, I haven't had any legitimate email show up in my spam box. Amazing. They must of a sweat shop somehwere of speed readers busy sorting the stuff (obviously jonking, as that would be contrary to their own privacy statement).

Once every couple of weeks a gloss over my spam box and then empty it.

I've ditched my desktop email clients.

Oracle Database 10g Express Edition

"Taking steps to guard itself against the growing popularity of cheaper open-source databases, as well as making lower-end application developers and students more familiar with its technology, Oracle Corp. on Monday announced the beta release of its new Oracle Database 10g Express Edition."
"Bowing to growing pressure from these startups, IBM has already released a free version of its DB2 database, while Microsoft will ship Express, a free version of its SQL Server 2005, in November."

Read the full article

This is all good news and all, this talk about being "developer friendly" is dandy, but I wish oracle would release a decent developer tool. At the moment, Quest software have a stranglehold manopoly in this area with their TOAD tool. Not only is the tool priced out of the realm of the type of developers refered to in this article, but it's almost impossible to get your hands on a copy of the demo. There used to be a free(?) tool called Tora, but quest bought the dude out to eliminate it (their only competition). I'm not talking about some feature integrated into an IDE (like J Developer), I mean a stand-alone tool which doesn't interfere with your existing development setup.

Developers are supposed to make do with SQL Plus?
Oh please... As Chris Rock puts it:
"Sure, you can do it. But that don't mean it's to be done. You could steer a car with your feet if you want to, but that don't make it a good fukin idea."

I'm not gonna waste my time with any express edition until Oracle fixes this accessibility issue.

Tuesday, November 01, 2005

"Whoops! There it is..."

I just watched this screen video of some guy presenting Ruby on Rails. Man it was funny. The dude is like a comic with the voice and all. You just gotta see it yourself.

BTW. RoR looks very interesting indeed. When I get the time...

The way of the Google

It's google's way to build things simple and useful. And that's just the way I would describe their personal portal thingy. I use it as my homepage. You can plonk portlets of your choice all over the place. I find the RSS feed portlet the most useful. For instance, you could add as an RSS portlet.

Well worth the 2 seconds it takes to register.

the web: "you're soaking in it"

If you are experiencing the web with anything less than the best browser in the world, you need to trot on down to to this here link and rectify the problem. Version 1.5 Release Candidate 1 was released yesterday. See what all the fuss is about.

Postgres 8.1 release notes

The venerable open-source PostgreSQL RDBMS takes another leap forward with version 8.1

When I get a chance, I might enumerate some of the highlights. In the mean time, there is a rather large changelog to peruse.
My status