The last in my little series on design matters.
Category Archives: software development
Adobe AIR runs on Linux
An email from Adobe alerts me to the release of AIR 1.1 for Linux beta, which I installed on my laptop which runs Ubuntu.
Installation is not quite so smooth as on Windows; you have to set execute permissions on the download before running it. It took only a moment though, and I soon had twhirl up and running, which is the only AIR application I use with any regularity.
The release notes say that all features are available except DRM. If you want transparency support, you must have a compositing manager like Beryl, Compiz or Compiz-fusion installed. You can also download a Linux SDK.
I realise that most of the world only cares about Mac and Windows clients, but I like today’s Linux desktop and kudos to Adobe for supporting it with AIR.
The new power in computing: design-centric development
I’ve been mulling over the insights from Microsoft’s Remix 08 conference in Brighton, and in particular Bill Buxton’s contention that it was a focus on design that saved Apple, and that a focus on design is the only thing that can save Microsoft.
It is all very well to nod heads and agree that design is a critical matter; but we are generally not good at integrating design into the software development process. One of the problems is that most development methodologies that I have seen do not address this matter well. In fact, one of the problems is that we do not know how to talk about design or even what it is. When Martin Fowler wrote Is Design Dead he meant something different from what Buxton is talking about. Design is fuzzy and hard to measure.
The best I can come up with at the moment is that design is about user interaction. If software is about input –> processing –> output, then design is about how you do the input and get the output. Design is not about appearance; but it includes appearance. Design is not engineering; but design problems can sometimes be solved by engineering and vice versa. Design is not functionality; but doing the right thing at the right time is within the scope of design.
One of Buxton’s themes is the importance of transitions. How you get there is as important as what you get. This could mean visual effects, or what you have to press or click or move to get from one place to another. Think of the way Vista users get annoyed by having to go via a Network and Sharing Center to get to what they want, the Network Connections dialog; that is a design failure. Or all that discussion around Vista’s shutdown options provoked by Joel Spolsky’s somewhat unfair article. Design issues, of which there are many other examples
Design is ascendant for several reasons. One is that increased computing performance has given designers more freedom, though that also means there are more ways to get it wrong. Another aspect is that falling prices have made adequately powerful personal computers (or for that matter MP3 players) a commodity, and design is now key to differentiation. Third, the Web has focused minds on the minutiae of design, as sites compete for user attention. Macromedia’s (now Adobe’s) work with Flash has been a big influence, especially after the company joined the dots back in 2002, and started to promote Flash as a means of improving the user experience in applications.
If I reflect for a moment on the last 30 years or so of software development, it is easy to pick out ideas that have really made a difference. Object orientation. The graphical user interface. Test-driven development, and another big insight of the Agile movement, participation between all stake holders.
I suggest we should add design-centric development to that list, even though at this stage we are not sure how to do it. There’s been a lot of discussion about designer/developer workflow, and a few tools and ideas from Adobe and Microsoft that help to enable it, but this is only scratching the surface. Further, with their focus on graphics and graphical effects, they make it hard to distinguish between design and decoration.
So how do we do design-centric development? Learn from Apple and Google is one answer. Have developers and designers in the same room, or appoint more designers to the board, could be another. I think this topic is one that deserves, and will get, lots of attention in the next few years.
Microsoft’s design crisis: Interview from Remix Brighton
The Reg has posted my interview with Bill Buxton, in which he talks about the challenge of getting Microsoft to put design at the core of its products. It has a great quote where Ballmer apparently told the company conference “Change or we die”. Can Microsoft change? That’s the big question; and one commenter has already given his opinion. I have more to say on this issue; but for now do read the interview; I find it a fascinating topic.
Bill Buxton at Remix Brighton
Bill Buxton has made a considerable impression here at Remix. His theme is the critical importance of design, and he has a broad understanding of what design is that goes beyond what some developers may imagine: “here’s my app, now make it look good” would be the caricature. I Twittered his session – you can read it online here. He talks a lot about Apple and about how Jobs rescued it by creating a culture of industrial design; the unspoken question here is whether anyone can do the same thing for Microsoft.
Now in the ADO.NET Data Services session (Astoria).
microsoft,bill buxton,apple,design
Zend PHP Framework adds support for Adobe Flex, AMF
The PHP company Zend has announced a collaboration with Adobe to integrate AMF (Action Message Format) into the Zend Framework. AMF is an efficient binary format which is more efficient for transmitting data than text-based formats like XML or JSON. Zend and Adobe are also collaborating to improve their tools for work with applications that use PHP on the server and Flex or AIR on the client.
More info here.
Google’s plans for Gears
I attended Aaron Boodman’s session on Google Gears, here at Developer Day in London. Boodman is an engineer on the Gears team. He gave us a quick tour of the main features, most of which was already familiar to me, but I picked up a couple of interesting things. He told us that Google hopes Gears will eventually become a standard part of HTML, implemented by every browser. Some parts of Gears just implement things that browsers should do already, such as the ability to upload multiple files in one operation. Boodman would also like to see Gears enabled by default for all sites, rather than being enabled per-site as it is at the moment.
Or is it? What I had not realised is most of the Gears API is already accessible to any site, even if it is not in your “Gears enabled” list. It is only certain features, such as the ability to create a local database, which require specific consent.
That raises the question of security. I asked about risks like sites creating malicious desktop shortcuts disguised as good ones. Boodman says that creating a shortcut always raises a dialog so the user should spot this. What about reputable sites infected with malicious code? Boodman figures that if you are browsing such a site you are in trouble anyway.
Gears is built into Chrome and part of a consistent Google theme: upgrading the browser to make it a better platform for applications.
Why Google doesn’t use Flash (much)
Here at Developer Day, I couldn’t decide between the sessions on Android and App Engine, so ended up hearing Ajaxian Dion Almaer talking on the state of Ajax. Almaer also works for Google on its developer programs.
The talk was a bit fuzzy and high-level for my taste, though I enjoyed his tour of JavaScript libraries.
Following the talk I asked him why Google makes little use of Adobe Flash (which he hardly mentioned). He said it would like to, but did not regard it as an open platform. I asked him what Adobe would need to do to change that, and he said that the key things would be to open source the Flash player, and to give the community more influence over future Flash development.
Might this happen? Almaer said that it is a subject of ongoing discussion with Adobe. The implication is that if Adobe makes these changes Google will start supporting and using it more actively.
It will be an interesting subject to take up with Adobe when I next have that opportunity.
Actual Android device spotted at Google Developer Day London
During the keynote at Google Developer Day London, Android evangelist Mike Jennings gave us what he says is the first showing of an actual device – prototype, of course – in Europe. I took a few blurry pics.
Perhaps inevitably, it seems reminiscent of Apple’s iPhone. It even has an accelerometer so you can code it to respond to tilts and turns.
The web browser is based on WebKit, of course.
We were shown a spinning cube created in Java using an OpenGL library. The Android SDK is based on JDK 1.5.
Another thing that was mentions is Gears for Mobile. Now that Gears has a geolocation API it will be particularly useful in this context.
A smile at Google Developer Day London
I’m at Wembley Stadium for Google Developer Day. No, Google is not filling the entire stadium (yet); but it is a decent venue. On arrival we were given the usual USB stick though this one is distinctive:
Made me smile after reading nothing but gloomy economic news on the journey over.
I’m not expecting news announcements today; just a bit more detail on initiatives like App Engine and Gears. The agenda was put together before the Chrome announcement; but I’m hoping Google’s new browser will make an appearance as well.
If you are here and would like to chat please come and say hello – tell me what you think of Google’s developer activities.