People want to make websites – they just don’t know how (honestly, it’s not that hard). The last time anyone made an attempt at website development for the masses was FrontPage. It was a disaster, we had thousands of cookie-cutter websites springing up all over the place. I will bring such calamity to the web again; although it will be more artful cookies this time round.
I like to think I am pretty familiar with website development; and I have used a wide variety of platforms (from ASP.Net to PHP to RoR). That’s what it comes down to – I know what works and what doesn’t.
Data
Ah yes, the nuts and bolts of any website (even your Wordpress blog uses it). Unfortunately you qualify as a DBA alone (and nothing else) for a reason – databases are as hard as hell to get right. If you think for one minute that you know exactly what you are doing – you are doing it wrong. How do we present this to users in an easy fashion? Something that they are familiar with? Spreadsheets! Everyone knows (or at least should know) Excel. Instead of confusing users with data relationships and so forth give it to them in the following format (more or less):
| Title | Date | Content |
| My first post | 18 January 2009 | This is my first post, I am really excited about blogging. YOU ALL SUCK!!!1!!ONE |
| Fish | 18 January 2009 | I like fish – do you. |
Granted, those are pretty short and are probably a poor example. It would work like an RDBMS (think Excel but more constrained) with the following exceptions:
- We don’t call them tables, we call them sheets.
- Types are more user friendly. For example: short text, long text, formatted text, date, image etc.
- Columns can have formulas; but they apply to the entire column (aggregated columns or excel formulas).
- Users can willy-nilly alter the schema as they see fit. No constraints like RDBMS (read no-RDBMS).
Now that we have given the user data we need to give them a way to shoot themselves in the foot with it.
Design
ASP.Net has one of these fantastic features: master pages. That’s a confusing term – Word terminology will save the day ‘Templates’. Essentially you design a web page but leave bits of it as ‘todos’. If you really wanted to use tables it might look a bit like the following:
| My Cool Websites | |
| (Body placeholder) | (Repeating widget) |
The placeholder is where you would put the body content. For example, the body post out of the ‘Content’ column. These are fully nest-able; so you could define a template for your entire website – and then have child templates for the blog area, the product area, the home page and so forth.
Widgets? ASP.Net controls in a nutshell. The repeating widget would allow you to create something that repeats (the obvious one here would be posts). Everything would be driven by widgets – there would be no HTML (unless within the HTML widget) editing available.
Let me re-iterate that, NO HTML.
Next, any good website would use CSS. The idea here is to kindly steer users toward using (Word again) ‘Styles’. These define how things look (as CSS is supposed to), obviously the true noobies could just ignore them.
Wizards
My friend recently bought himself a printer that could print onto CDs or DVDs. It has one unique feature: down to earth wizards. The main wizard actually has an option called “I’m in a rush – just make me a label.” That’s the kind of stuff I am going to head for.
- What type of website do you want? [Blog] [Products] [Brochure]
- Blog
- [Just make me a blog, I will finish it up later] [Answer some questions about how it want it to work]
I’m sure you get the idea. After working at K2 for so long I am partially poisoned – wizards will be rife.
Doing Something with Data
Once you have a design and data you need to render that. The obvious choice here would be to have special folders, for instance we could allow the user to construct an address by defining a simple format, for example:
<Date>/<Title>
Any field used in that would obviously be made ‘web safe’ by the engine. These folders would then have a single webpage that would allow the user to define how to use that data. The obvious thing here would be to drag the content into the Body placeholder.
Publish It
Why is every website today ASP/PHP/RoR/etc. based? They don’t need to be, for crying out loud. The publishing wizard will compile the entire website down to static web pages (html) and blast them to the server (or to a folder); no fuss, no expensive hosting.
Widgets
Are the most important feature. They will probably take me the longest – I would obviously need a good coverage of them. The obvious thing to do would also allow third parties to author widgets.
Well that about sums it up. Oh yes, it will have all that Office 2007 look goodness.


It Works on My Virtual Machine
Origin
After reading Joseph Cooney’s post on “Works on My Machine” I was inspired to integrate this prestigious certification program into my company’s typical workflow.
Introduction
The program applies only to developers and QA specialists who use virtual environments (VMWare, VPC, VirtualBox, etc.) for primary development and/or quality assurance. If the application meets the strict requirements stipulated below it may be branded with the “It Works on My Virtual Machine” logo.
Click for a high-res version.
Compatibility with other Certification Programs
This certification is compatible with “It Works on My Machine”. It will not qualify and application under “It Works on My Machine” automatically, nor will “It Works on My Machine” automatically qualify an application under “It Works on My Virtual Machine”. Each certification program needs to be met independently.
Technical Certification Requirements
Notification Requirements
Customer and partners need not be informed of the branding; however, it is a preferable to place this logo in a clear location to indicate the quality of the software. Typical examples include: