Back in 2004 I drafted a content management system based on PHP and AJAX, featuring ideas borrowed from everywhere and that, all in all, formed a rather coherent set. I wrote the system in a couple of days, in my daily commuting between Lausanne and Geneva, and it was called Propano.
The trigger was an article about the XMLHttpRequest object that appeared in the Apple Developer Connection site. During my work at SoftPlumbers in 2002 I had used it in our flagship application (which could only work on Explorer 5.5 and above, using this component), and I remember being so impressed about having a web page updating itself without a whole reloading, that when I saw that you could do the same on Safari and Firefox I thought, this is really big. And it was. A couple of months later this way of doing things got the name AJAX and the rest is history.
I should have published this code before, but heck, better late than never :)
I wanted to write an enhanced version of my original “tribute to NeXT” page, that I had as a homepage from 2000 to 2004; as far as I can remember, I had the only “DHTML” windowing application that you could use in Netscape 4 (!); it used the dreadful <LAYER> tag, and it used the famous <IFRAME> trick to get information from the server without reloading the page.Ahhh, that was hacking, really. Now all of this is oh so much standardized, it makes me see those days with nostalgy. Well, almost :)
With Propano you can’t do much (it’s just a draft, remember) but you can go to the menu “Archivo / Abrir” (“File / Open”) and you’ll make an AJAX call to the server. Big deal, huh? You can select “Ventanas / Crear Muchas” (“Window / Create Many”) and open lots of windows. You can resize windows using the status bar. You can close, minimize and maximize windows (you’ll need to double-click when clicking icons!) . Finally, you can drag the menu around, open items, etc. However, I’ve never used the NeXT system, and this is the closer I could get by reading the design documents that I found here and there.
The web was created on a NeXT workstation. This is a humble way to close the circle, if you want. It works on Safari, Firefox and it should work fine but it does not work with Opera 9; actually it should also work on Internet Explorer 6, but I haven’t tested it in that browser for years… The NeXTClock Applet comes from here and I was using it in my previous <LAYER> + <IFRAME> attempt.
Anyway, for those interested, here’s the code. Feel free to play with it!