I Miss Aqua: A Retro-Themed Maverick

Revisited Years Later

This project is one that barely worked, for a time. There was a time when it provided an Aqua-themed virtual machine with a live web browser. Since then updates have undone most Aqua theming. More problematically, the one (then) current browser I could find that would work under Maverick Meerkat was a developer’s build of Firefox, which didn’t have to pull in the web of newer dependencies that practically anything else would, and that newer browser became astonishingly unstable, much worse than Internet Exploder 6. The main reason I am keeping it around, besides the fact that I can’t foresee all of my visitors’ needs, is that it provides the least geeky way to access the programming project I cut my teeth on programming, an arcane game called The Minstrel’s Song.

Since then I have purchased one of (then) ten copies of Snow Leopard Server available on Amazon, the one OSX version where you are allowed to run on a virtual machine, and it has the Aqua look and feel. I’ve actually had to use some of the same skills; an older Chrome installs but will not update, and I had to do some juggling to get LibreOffice 4.3.3 installed. All the same, it’s nice to have that option now open. (And use the installed Terminal.app without Sierra’s epic instability in the built-in command line.)

I’ve been trying to find a way to get Aqua back on my Mac, and getting Aqua to display under any OS has been a trackless waste. But I’ve been able to stitch something together (nothing new) to offer a Linux old enough to display old Aqua themes and “look and feel” appropriately, while running a modern version of Firefox. And now it’s here.

Some people regard the Aqua theme as done and gone, and passé. It’s out of the Mac mainstream at any rate, and has been for the past couple of releases of Mac OSX.

But with a little help from VMware and a little open sourced Linux theming magic, it’s possible to get Aqua back:

This configurable and nostalgic blast from the past, made available through customizable themable Linux, provides a small treat for people who liked the good old days of Mac Aqua. And it is available on all of Windows, Linux, and Mac: search for the free VMware Player, VMware Workstation, or VMware Fusion from the VMware site.

Download the “I Miss Aqua” virtual machine and network appliance now!

Ajax without JavaScript or Client-Side Scripting

The Ajax application included in this page implements a legitimate, if not particularly useful or even usable, “proof of concept” with partial page updates based on server communication. It accepts a string, and then lets you click on one of a few buttons to see that string styled the way the button is styled, appending a link from the server. But it demonstrates one interesting feature:

It works just the same if you turn off JavaScript and any other client-side scripting completely.

How does it work?

Ajax partial page updates don’t need to manipulate a monolithic page’s DOM; the reason browser back buttons work in Gmail is an invisible, seamless use of iframes that create browser history. And not only can you do partial page updates via iframes without DOM manipulation, you can do it without client side scripting.

The source code to the server is available here, but it is simple, stateless, and doesn’t really hold any secrets; it could be fairly well reconstructed simply by observing what is going on in the demo app above. The basic insight is that a webpage that talks to a server and makes partial updates can be made by the usual Ajax tools, but at least a basic proof of concept can be made with old HTML features like frames and iframes, links and targets, forms, and meta refresh.

This Ajaxian use of old web technologies may or may not produce graceful alternatives to standard Ajax techniques, either alone or in a “progressive enhancement”/”graceful degradation” strategy, but it may allow graceful degradation to be just a little more graceful, and JAWS might at least know when something on the sceen has changed. But here is a proof of concept that it is possible to implement a webapp with partial page updates and server communications that works in a browser that has JavaScript and any other client-side scripting turned off.