Wednesday, 30 January 2008

What I would like in CSS3 - Save Restore State

Many years ago I was involved in creating Postscript systems, I even wrote my own postscript rendering system at one time (Postbox).

Now I work with websites and web developers, and one of the capabilities I miss from my postscript hacking days is the ability to save and reset the graphics state. 

Some background. 

I work for a large internet publisher, designing and recommending authoring and production systems for folks producing millions of pages of content a year. Increasingly we are moving towards component based page assembly, where pages are assembled from a library of modules that conform to common interfaces and common presentation standards.

A module may be standalone, or may have to interact or inherit design elements (colour pallets, fonts etc) from the overall page design. Trying to maintain a modular library is a nightmare because of the need to ensure that all variations of the modules on a page are supported by the active cascade running on the page.  

Module libraries are relatively easy to manage when you have 10's of modules to support, only a few production staff, and a limited set of design variations between pages. But extend that to 10's of thousands of modules, thousands of production staff, and hundreds of basic site designs and you soon discover that uniquley crafted CSS cascade descriptions are unmanageable. 

We have put a lot of research into designing suitable mechanisms for automatically building a pages CSS descriptions from the manifest of modules installed on the page, but this is itself a complex task. 

Sandboxing content

Sadly this could all be eliminated if there was a simple way to reset the cascade associated with an id back to the browser default, so that in-line CSS could be used to describe the behavior of the visual area enclosed by the div or span. Coupled with a simple mechanism for referencing particular cascade elements across the reset, to allow the sub-region to selectively pickup characteristics from the main layout, a simple and powerful mechanism would emerge that that would aid the portals in their quest to create dynamic content. 

This would also boost the adoption of personalization, allowing complete layouts to be individualy defined for users. 

I strongly feel that this should be a capability that is included in the CSS3 specification.

UPDATE: So here we are 8 years after this original post, and the capability i was looking for has finaly made an appearance, though not quite in the way i expected.  Checkout the ShadowDom initiative which provides the kind of presentation sandboxing i was seeking.  See below for more information.

Thursday, 24 January 2008

Nostalgia ain't what it used to be

A recent post on an internal Yahoo maillist, triggered a wave of nostalgia for the old old days of computing. 

I was a computer enthusiast during the halcyon days of the early microcomputer hobby scene here in the UK, in particular i was very active in the NatSemi SCMP and SCMP II circles, having built several SCMP based systems and published in Personal Computer World, designs for Memory extensions and Multiprocessor add-ons to the basic Sinclair MK14 microcomputer trainer kit. 

Reading though some of the sites that exist to document this era, brings misty tears to my eyes, I still remember the days and nights locked away in what was at that time an old coal storage space in my first flat, that i had converted to a workshop, soldering iron in hand, building more and more bizarre variations.

The most extreme was a system that could have its CPU switched between a SCMP II, a 6502 and a 8080, so that i could run programs published for any of those architectures, without the then high investment in dedicated RAM and IO peripherals for each architecture. 

I still remember my then wife, complaining bitterly about the tiny solder beads, and small lengths of wire wrap that insinuated themselves into the living room carpet, and the batik like stains on all my jeans, from the ferric chloride used to etch my own circuit boards. 

Ahh those where the days, happy times. 

see for more fun.

Friday, 11 January 2008

Fragile Intel Macs

In total I have 4 Macs, 2 G4's and Two intel machines, all of them have super-drives fitted, I recently discovered that the superdrives on both the Intel machines have become flakey.

I first noticed this when i was trying to install leopard (10.5) on these machines, Leopard weighs in at 7.8G with all options installed, and comes on a DL layer DVD. And was completely unreadable by both intel machines.

The solution turned out to be simple. Using a small external USB drive formated with a GUID partitions (this important people, pay attention, two types of partition, GUID or Apple Partition Map, use the former or it wont boot), I used Disk Utility to copy the DVD to the USB drive using one of the G4 machines by "restoring" it to the volume.

Then it was just a matter of plugging the drive in to the intel macs, and running OS X Install to get leopard installed on the fragile machines.

So whilst i recognize that I'm problaly just the victim of bad luck, but i really do wonder if Macs are as reliable now we have moved to the Intel world.

Wednesday, 9 January 2008

New Years Resolutions

As a follower of truly sad traditions here are my new years resolutions:

1. Stop smoking (again). 

2. Loose Weight (again).

3. Learn Ruby and Rails.

4. Become more organized.

Trying to be Witty

Recently I have been playing with Wt ( Witty - ) which is a fascinating C++ based framework for building web applications, based around the Tolltech QT programming model.  Witty does not require you to have QT installed, as it supplies its own frameworks.

The most interesting part of Witty, is the way it totally abstracts the browser interface, allowing you to write apps as though they where standard QT based desktop applications, but running instead on a server with a web browser as a client. 

Unless you have a fully supported OS (currently Windows and Linux), Witty is a bugger to install, but after a load of hassle I eventually managed to get it installed on my MacBookPro under OS X 10.4.11.

However Witty presents me with something of a personal dilemma ( My background is in C++ based serverside systems ), I had promised that 2008 was the year that I became an expert in Ruby and Rails, but now I am so tempted to postpone that. My heart says "Yeeeessssss" and is doing airpunches, but my Head says let it go, R&R is the way to go. 

Whats an aging technogeek to do? 

Spoke too soon - Tempting fate

Having just posted on the utility of the workplace for meeting new and exciting bugs and germs, I immediately succumbed to "the deadly something or other", which laid me out flatter than a garage forecourt.

Its a good job that sleep is the general cure for all these woes, so i have been indulging in a orgy of shuteye. 

Which is why i'm up, writing blog posts at 4AM in the morning :-) 

Monday, 7 January 2008

Work is sooooooooo bad for your health

Ok, i spend a load of time on the road, and for the last few months i have hardly been in the office or at home. And during that time i have been cough and sniffle free. But the moment i return to work and get to sit in the bullpen with all my germ magnet colleagues, then i immeadiatly collapse into a morass of cold and flu.
Going to work is bad for you, it is a dangerous place to be, its like being back at school and getting every bug and germ doing the rounds. 
Maybe we should take a leaf from the book of the hospitals who are trying to combat infection, and place alcohol gel dispensers in convenient places, so that people dont track every bug we come into contact with onto phones, keyboards, and table surfaces. 

Kicking and screaming

Ok, so i finally decided to get a blog up and running. I don't know why i resisted so long. pure laziness is the most probable cause. 

So my new years resolution for 2008 is to write and maintain a blog, so i can stave off all the snide remarks from my colleagues about not having one. 

So who am i?. Im Tim, i work for a big internet company (yahoo), as a solutions architect, i have my nose into everything that can be digitized, run on a computer, downloaded to a computer, burned, ripped, encoded, encrypted, played or created with a computer. 

I plan to share some of my adventures on the wire with others of my same ilk.