I retired from personal blogging in July 2008 but you can find me over at blog.xero.com
Follow @roddrury
Do you think we should phase out IE6 support?
Our reasoning for why we should is here.
Apple are allowing developers to really push the envelope with Web apps.
Check out http://developer.apple.com/webapps
I hadn’t noticed that Safari 4 has some great debugging tools. You can even see the latency of your resources being loaded into the browser.

The faded blue is latency. Very cool.
You enable the tools here …

Lots of new toys to play with.
If you were blown away by the MobileMe interface, then this link is very, very interesting on a number of levels.
Cocoa for Windows + Flash Killer = SproutCore
Google needs an open web because it can’t compete and sell ads if Adobe or Microsoft infect the open web with proprietary Flash or Silverlight plugins and subsequently convert web content into opaque binaries instead of open HTML.
I remember Pink, Taligent and Copeland. Man that goes back a while.
SproutCore not only makes it easy to build real applications for the web using menus, toolbars, drag and drop support, and foreign language localization, but it also provides a full Model View Controller application stack like Rails (and Cocoa), with bindings, key value observing, and view controls. It also exposes the latent features of JavaScript, including late binding, closures, and lambda functions. Developers will also appreciate tools for code documentation generation, fixtures, and unit testing.
A key component of its clean MVC philosophy that roots SproutCore into Cocoa goodness is bindings, which allows developers to write JavaScript that automatically runs any time a property value changes. With bindings, very complex applications with highly consistent behavior can be created with very little “glue” code.
and
That makes SproutCore a light Cocoa alternative for deploying web apps that look and feel like Mac OS X desktop apps. At WWDC, Dr. Michael B Johnson of Pixar gave a lunchtime presentation where he pointed out that if you don’t need 64-bit addressing, multithreading, or other desktop-only features, it makes a lot of sense to deploy apps using the web.
But aren’t web apps awful? They historically have been, particularly in the days when every server response required a page load. The development of Ajax technologies, which allow the current page to draw new data from the server asynchronously in the background, has helped. Modern Ajax websites such as Flickr offer drag and drop features, and Google’s use of Ajax in its web apps has made them more desktop-like, but web apps are often well behind those designed for the desktop in terms of a usable interface.
SproutCore helps push things forward; it keeps rich interaction local within the user’s browser and supports offline functionality, making web apps behave more like desktop apps and less like the constantly reloading HTML pages that users dislike. They also look like desktop apps, and in particular can look like Mac OS X desktop apps.
The SproutCore framework also solves a lot of problems for web developers. It takes care of browser incompatibility issues to run cross-platform in Safari, Firefox, or Internet Explorer 6/7. It also makes it easy to leverage the fancy CSS features of modern browsers.
On Apple SaaS …
Apple already has a silent lead in the consumer “Software as a Service” market with .Mac; While Google, Yahoo, and MSN have built models around pushing ads to fund their online mail, photos, and other applications, Apple has been quite unique in being actually able to sell its .Mac service to subscribers. Everybody wants to do what Apple is actually doing.
Fascinating. Another few bites of the Apple strategy revealed.
We really believe in design for competitive advantage. So its great seeing examples of the design process.
Cultured Code who do ‘Things’ are working on their iPhone version and blogged a great snapshot of the design process. Click through for the full picture.
One of the enduring data modeling scenario’s that seems to come up for me every few years (even going back to the old Glazier days and the PerOrg debates Pat) is modeling the relationship between people and the organisations they belong to.
Seems simple when you start but you end up balancing a series of trade offs.
The most basic model is the vCard one. The organisation is not modeled. In Outlook there is a copy & paste new contact from same organisation feature which saves you retyping common organisation information on each contact - but the organisation is not modeled.

You would think that people and organisations is a simple structure.

But as you start to test the model you run into a few issues.
- Are you sending something to a person or the organisation they belong to?
- If someone changes organisation do you still want to track the person?
- How do you address a role within the organisation where the person is unknown?
So you quickly get into a complex meta modeled structure like one below.

While you can now store the natural data relationships, the problem with this model is that UI to manage it quickly becomes complex.
I haven’t looked at this problem for a while but interested to hear how other people have modeled people and organisations.
Over the last few months we’ve seen a number of significant computing opportunities arrive that provide access to massive markets for new ideas.
Developing applications inside FaceBook was a good first start.
The iPhone SDK is a big game changer. Reports are coming in that the iPhone is the biggest mobile computing browser already. Whatever you think the iPhone is huge and a number of companies are seizing the opportunity.
Today we heard about Google App Engine. This allows you to deploy your application into Google’s server cloud. Just write your code, load it up and promote. This reduces barriers to entry significantly. Amazon has been doing this for a while but what is different about Google App Engine is the that it allows you to link into Google Accounts.
Check out this simple list management program … http://to-done.appspot.com/
You login using your google credentials. So imagine all the little useful applications you can write that leverage that simple logon mechanism.
But looking a bit further out this post from David Recordon nails what gets me excited.
Imagine if Google Accounts added support for the (upcoming) OpenSocial REST APIs. All of a sudden, each of these App Engine sites could start injecting activity and querying for activity across each other.
and
If done right, this really could be the first shipping glimpse of the distributed social web that there is to come.
Winer has some strong thoughts as well - Early notes on GoogleApps
I’m really pissed at Microsoft. Why? They wasted billions on Vista when they should have been virtualizing Windows and making their developers’ investments apply to the net. I know it sounds outlandish, but it really isn’t. Amazon doesn’t offer EC2 for Windows, just Linux. And I’m stuck with two Windows boxes at my hosting company, hosting a dead fucking end. My bet on Microsoft in the late 90s just ran out of gas.
Microsoft is investing big on virtualization, and data centers, so while not at the party yet there will be a big push from them in this space in the next year. There is a lot of .Net code out there waiting for this and .Net developers will demand it. They’re invested and don’t really want to learn a new languages like Ruby, Cocoa or Python.
Regardless, computing is moving away from the traditional ‘build an application over an operating system’ model of past at frightening speed. There is so much opportunity opening up right now as the technology world shifts into this new ‘application in the cloud’ model and incumbents don’t get how big a shift this is.

