Favourite blogs for Hannah's handbag

My favourites » All entries

November 04, 2009

Educause '09: Jim Collins keynote

The first keynote session of the conference was, as is often the case, not about a specific technology or even really specifically about the sector. Jim Collins is an author and consultant who has worked on the question of what distinguishes great companies from merely good ones, and he spoke entertainingly (with a hint of Al Pacino; he likes to speak very quietly and then suddenly SHOUT and then go quiet again) on some of his thoughts and observations.

There isn’t really a narrative thread to be pulled out of what he said, so I’ll just jot down a few interesting points:-

I liked his five stages in the life of a company:-

  1. Hubris borne of success
  2. Undisciplined pursuit of more
  3. Denial of risk and peril
  4. Grasping for salvation
  5. Capitulation to irrelevance or death

A bit like the Gartner hype cycle, I guess, if slightly more doom-focussed. Other nuggets:-

  • Leadership is like a plug variable for companies; when we don’t really understand why a company is succeeding or failing, we ascribe it to leadership. But we don’t know what that is. Leadership exists in both succeeding and failing companies, so what’s the difference?
  • A leader who has concentrated power is different from one who doesn’t; we might call the latter “legislative” leaders; their role is to manage things so that the right decisions can be taken, rather than simply taking the decisions.
  • The exercise of power is not really leading; real leadership is getting people to do what you want even though they don’t have to.
  • Packard’s law states that if you allow growth to exceed your ability to execute on your plans for growth, you will fail. And key to execution is having the right people. A classic failure mode is to grow faster than you can put the right people in place to manage the growth.
  • Motivation is an internal characteristic. You can’t supply motivation to other people as if it were a commodity, and it’s insulting and pointless to try. You can destroy it and take it away, but you can’t manufacture it.
  • The signature of mediocrity is chronic inconsistency.
  • What is brand / reputation? A non-quantifiable sense of the trustworthiness of an institution; that it does the things that it says it does, well.
  • It’s a good strategy for both individuals and the organisations they work within to build “pockets of greatness”. Competence is powerful and attracts people, because it’s so rare. So someone who builds a pocket of greatness is likely to progress.
  • In the context of how power is distributed within different types of organisations, I was tickled by Jim’s description of academics within universities: a thousand points of no.

His advice for concrete things to go away and do? Cherry picking my favourites, we have:-

  1. Decide what not to do. Have a stop-doing list as well as a to-do list, though then, of course, you face the tricky dilemma of whether the stop-doing list belongs on your to-do list.
  2. Review your questions to statements ratio and see if you can double it in the next year. Knowing the right questions to ask is more important than knowing the answers.
  3. Turn off your gadgets; put whitespace in your calendar. You cannot enage in disciplined thought while checking your email/Twitter/Facebook or if your phone is ringing.

Educause 2009

Writing about web page http://www.educause.edu/E2009

I’m in Denver for the Educause conference. It’s probably the biggest IT-in-HE conference in the world, and whatever you’re interested in – e-learning, cloud computing, weathering the downturn – it’s a safe bet that there’ll be a session on it here.

I was last at the conference five years ago (also in Denver, coincidentally), and that time, one of my main interests was in helpdesk software, and I hoped to use the conference as a lever to try and persuade my colleagues that we should switch away from HEAT, which I thought then (and still think) was a bit of a dog’s breakfast. It’s taken five years for that particular plan to come to fruition, so I guess I should be cautious about what I might accomplish this time around. But if nothing else, there’s a bunch of people talking about things that Warwick is very much interested in right now, and, for as long as my laptop battery lasts, I’ll be taking notes which hopefully might prove useful to us in the future.

Some of the sessions I have my eye on include:-

Cloud Computing: Hype or Hope? Does this paradigm offer great promise or extreme peril to the core mission of the academy? Two academic IT leaders will debate the pros and cons of moving mission-critical services to the cloud.

Revisiting Your IT Governance Model. Four years after adopting an inclusive IT governance and prioritization process, we’ve completed 188 projects, spending $8.4 million and expending 250,000 hours. We will describe the history of our governance, our recent governance process review, and how the process has evolved to create a collegial and transparent method for prioritization.

Blackboard, Moodle, and Sakai. A discussion of the pros and cons of adopting proprietary versus open-source solutions. Issues addressed will include total cost of ownership, licensing, options for application hosting and technical support, and how new features find their way into a product.

Virtual Desktops: 60 Percent Cheaper, but Are They Worth It? Pepperdine University is conducting a 12-month study to assess the costs and feasibility of replacing desktop computers with virtual machines that allow multiple people to share a single PC. Results from a pilot implementation will be shared, revealing costs, power usage, user satisfaction, ease of administration, and recommendations for installation.

Project Management and IT Governance Through Agile Methods. Decision making within IT governance and project management is commonly driven by hierarchical, centralized, and formal planning. Agile Methods, adopted at SUNY Delhi, focusing on openness, transparency, self-organizing groups, collaboration and incremental development, deliver continuous innovation, reduced costs, and delivery times, as well as more reliable results.

IT Metrics. This session focuses on developing, collecting, and reporting IT metrics, leveraging peer efforts, and identifying benchmarks to improve the overall performance of IT departments. Frequently used metrics are customers’ feedback on IT services, balanced with internally recorded metrics of actual customer IT services usage. A constant goal of this group is to assist others in implementing metrics in a more rigorous, meaningful, and timely manner.

What Happened to the Computer Lab? Over 80 percent of respondents to the annual ECAR study of undergraduate students reported owning laptops; nevertheless, usage of expensive public computer labs remains high. Panelists from three institutions will lead a provocative discussion on updating existing computer labs.

The Heat Is On: Taming the Data Center. Power and cooling continue to be “hot” topics in the data center. Many vendors offer green solutions and products. Should an organization retrofit or build a new data center to meet increasing demands? This session will focus on some strategies to manage data centers more effectively.

Building a Research IT Division from the Ground Up
The nature of the research enterprise is changing rapidly. Large-scale computing, storage, and collaboration needs are now common. We describe how we scoped and funded a central IT division focused on research IT support to address these needs, and the successes and challenges we encountered along the way.

Ignorance Isn’t Bliss: How to Find Out What Your Clients Really Need
Providing IT tools and resources that meet client expectations requires persistent and creative efforts to understand their needs. Six presenters in this session will describe surveys, face-to-face discussions, and other means of learning about client needs and how to effectively follow up on those expressed needs.

According to my scribbled notes, I’m aiming to attend 16 sessions in two days, so I expect to get progressively less coherent as time progresses. Let the Powerpoint begin!

September 21, 2009

Trail riding in Wiltshire and Northamptonshire – R100GS and R1100GS

BMW R100GS PD at Barbury Castle, south of Swindon. A long section of the Ridgeway byway, legally accessible by motorcycles in the summer, starts here.

At the start of the Ridgeway

In Wiltshire the Ridgeway mostly consists of well drained gravel tracks.


The Ridgeway has some of the best wide open views to be found on an English byway. However, in some areas, deep tractor ruts require more concentrated riding.

Ridgeway views

Once that we had reached the end of the southernmost ridable section of the Ridgeway at Overton Hill, we took another byway to connect with a second stretch of Ridgeway further north. Wiltshire has many excellent byways open to bikes. This great track leads through a beech forest, with gentle hills and glades.

Forest ride

In Northamptonshire, the Banbury Track and Oxford Track are a little more challenging. This stretch, open only to motorcycles, is overgrown and rutted. On a grassier stretch, we both fell off at the same time, struggling through the thick vegetation.

Banbury track

Some of the tracks are barely used. Martin found much less grip on the grass with his Avon Distanzia dual-purpose tyres. My Continental TKC80 off-road tyres were better. We met the farmer (on a quad with his dog). He was friendly and chatted about bikes and the local routes.


August 16, 2009

Walking with Attenboroughs

Yesterday: Walking with Dinosaurs on stage at the NIA, in the front row, face to face with the deadliest predator of all time.

Today: Lawrence's birthday at Brandon Marsh, pond dipping with lots of friends, and wallking in the footsteps of David Attenborough....


August 11, 2009

Child sentenced to Robben Island style hard labour

Follow-up to Robert gets his head smashed in Dorset from Transversality - Robert O'Toole

For his part in the brutal murder of Robert the Crab, Lawrence O'Toole (almost 4) was sentenced to a life of hard labour smashing rocks in the West Dorset ammonite mines. Lawrence was heard to comment: "this is well cool, just like Nelson Mandela, crime really rocks".


The campus police man was not amused at having to fruitlessly patrol an entirely harmless gathering of motorcylists in the Warwickshire countryside, while such outlaws roamed the land, perpetrating acts of unspeakable cruelty on defenceless crustacea.


May 28, 2009

FlashCamp Birmingham, June 16th

Here’s some news of what promises to be a great (and completely free) conference coming up in June for Flash Platform developers. FlashCamp Birmingham is being held on June 16, arranged by the Midlands Flash Platform User Group, and will consist of a range of presentations and talks for novices and experts alike. Events like this are a great opportunity to network with other novices, experts and developers and will also be an opportunity to see the new Flash Builder 4 in action. Some of the most knowledgable people in the Flash/Flex/AIR community will be there speaking, including Stefan Richter and Simon Bailey, while Adobe will be providing the keynote.

Whether you’re a novice or a seasoned pro, everyone will learn something at Flash Camp in Birmingham. We’ll explore existing Flash Platform technologies like Flash, Flex and AIR , before looking ahead at Flash Catalyst and beyond. Our keynote will be from Adobe Systems, who will also be running an hour-long session later in the day. We have a group of sessions dedicated to the creation and customisation of Flex components, and to add some creative inspiration, there will be presentations on real-time 3D in Flash, and how to take your Flash application architecture to a new level.

More information at http://www.flashcamp.co.uk/ and hopefully see you there!

April 12, 2009

Back to writing about Flex, AIR and Wowza

It’s been a busy few months since my last blog entry about anything related to Flex and AIR development. I blame a Twitter addiction, but there are still some things you can’t write about in 140chars and I do have a few development-related things to blog about, so expect some hopefully interesting entries over the coming weeks. Since November I’ve been working on two projects: an AIR-based media conversion client and a new chat application in Flex and Wowza Media Server. Some things I plan to write about: AIR file upload, more on using the local filesystem APIs in AIR, using Remote Shared Objects for communications, and lots of tips and tricks. I’ve also been playing with Gumbo, AFCS and PureMVC recently, so I hope to post some of my experiences with those as I go.

Anyway, good to be back. :)

February 09, 2009

Mobile phone UIs are rubbish

A colleague just contacted me to ask “How do I see more of the emails in my in-box on my phone?”. The answer? Do this:-

Mail -> Options -> Settings -> Email -> Mail for Exchange -> Options -> Edit Profile -> Email -> Sync messages back

and then change that value to be something bigger. And that’s with a UI which is supposed to be good (Nokia S60), for heaven’s sake. It’s no wonder Apple cleaned up with the iPhone when this is the state of the competition.

February 02, 2009

Work resolutions 2009

Follow-up to Work resolutions 2008 from Autology: John Dale's blog

Stupidly late, here’s my annual follow-up to my work predictions from Jan 2008, and going further back, 2007, 2006 and 2005.

A year ago, in January 2008, I predicted that we would:-

  • Do more to integrate with email.
  • Develop fewer new applications, looking instead to extend our existing tools and make them more task based.
  • Work on desktop synchronisation tools.

I’d give myself a solid two out of three. We didn’t do anything on email integration, and while I think it’s still a good idea in principle, we haven’t really found a specific example of where we could introduce it as a feature.

We certainly developed fewer new applications; none, to be precise (unless I’m forgetting something), though we substantially reworked some applications such as Search and Files.Warwick. We continue to think about the task-based approach to using our tools, especially in the context of teaching and learning, and module web spaces. And we introduced two (nearly three) desktop tools; a Files.Warwick sync tool, a video converter, and, soon, drive letter mapping into Files.Warwick so you can treat your Files.Warwick space like any other Windows Explorer or Mac Finder location, and open, save, copy and move files into and out of it.

For 2009, I’m broadening my predictions out. I predict that:-

  • Discoverability will be important; there are things you can do with our tools which are great if you know about them, but there’s nothing on our toolbars or in our UI which tells you that these features exist, or what they do, or why they might be useful. We need to work more on exposing things that people can do with our systems, and I think this applies to lots of systems and at lots of levels – in the UI, in the documentation, through the helpdesk, through our training and support, through our marketing.
  • 2009 will be the first year in which Warwick out-sources a major IT application.
  • And also the year in which the question of our VLE provision through SiteBuilder and other tools, and its strengths and weaknesses against other VLE systems, comes to the fore.

And thanks to my tardiness, there’s now only eleven months to see whether I’m right or not.

December 04, 2008

Tablet talk

My recipe for the perfect tablet computer: take the nine or ten inch, 1024×600 screen that you generally see on netbooks these days, make it into a touch-screen, then glue the innards of an iPod Touch to the back of it. That’s it. The iPhone / iPod Touch UI is so incomparably good compared with any other touch-screen device – Tablet PC, UMPC, Windows Mobile device, Palm OS – that, for me, at least, a somewhat scaled-up version would hit the perfect sweet spot of being exactly what I need to cart around with me all day at work, and to slump on the sofa with at night. It’d be big enough to comfortably read the PDF and Word documents that make up the agendas and reports that fill my working day, and high enough resolution to make reading almost any web site easy, without requiring so much zooming and/or rotating to get the text to a workable size.

For bonus points:-

  1. Include some sort of note-taking app which syncs between the desktop, the device and the web. But if Apple don’t want to include this, it wouldn’t matter because Evernote already ticks this box, with desktop, web and iPhone clients available. And on a 1024×600 screen, the virtual keyboard is going to be big enough for even the clumsiest and least skilled user (that’s me) to type short notes and emails without difficulty.
  2. Give me an easy way to transfer PDF and other document files to and from the device without needing to email them to myself or use a third party app such as File Magnet or AirShare. But I could live without this.
  3. Include a SIM card socket so I can get at my stuff when I’m out of wifi coverage. Again, useful from time to time, but I’d buy with or without this built in.

It’s hard to find a tablet device that’s larger than a PDA which has been hugely successful, partly at least because the user experience always falters when the underlying OS – Windows, mostly – bleeds through the touch layer. But a device built on Mobile OS X wouldn’t have that problem, and I’d buy one in a heartbeat. Go on, Apple; build one for me.

December 03, 2008

Amazon MP3 store comes to the UK

Follow-up to Amazon MP3 downloads from Autology: John Dale's blog

In September ‘07, I wrote about the US Amazon MP3 store, and noted that it was – for a very short time, as it turned out – available to UK customers.

Now there’s a UK Amazon MP3 store and it looks very promising; millions of tracks, high bit-rate MP3 files with no DRM, and perhaps most surprisingly of all, very reasonable prices, which don’t induce the usual US-UK comparison rage. The new Take That album, for example, is £3, and a random browsing of tracks suggests that a pretty substantial proportion of them come in at 59p, and the majority of the rest at 69p.

Kudos to Amazon: this looks like the best place for UK buyers to shop for legal, unprotected music, beating the iTunes store and other, less high profile competitors such as 7Digital (who are charging £5 for the Take That album, incidentally) by delivering the usual Amazon one-two punch of ease of use (I already have an account there, and my debit and credit cards are already set up ready for me to buy), a huge product range, and competitive pricing.

Simpson & Jobs: Together at last!

Writing about web page http://www.youtube.com/watch?v=CZGIn9bpALo

November 04, 2008

AIR FileReference and scope

I ran into a small problem recently in my AIR application when using FileReference to initiate and monitor a download operation; no events from a FileReference object created within a method were being fired. After a quick check of the Livedoc entry I found the issue:

if the FileReference object goes out of scope, any upload or download that is not yet completed on that object is canceled upon leaving the scope. Be sure that your FileReference object remains in scope for as long as the upload or download is expected to continue.

So basically a FileReference object needs to be created in such a way that it stays in scope for the duration of your operation; if you instantiate it within a method it there’s a good chance it will go out of scope and any events you were waiting for from it will never fire. The easiest solution is to declare it outside of the method, so instead of:

private function download(event:MouseEvent):void 
    var fileRef:FileReference = new FileReference();
    fileRef.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
    fileRef.addEventListener(Event.COMPLETE, onComplete);
you need to do something like this:

private var fileRef:FileReference();
private function download(event:MouseEvent):void 
    fileRef = new FileReference();
    fileRef.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
    fileRef.addEventListener(Event.COMPLETE, onComplete);

Sorted. Afterwards I also found more info about this via a couple of useful blog articles here and here.

October 31, 2008

Trainers surprise

Mizuno trainers I was pleased but slightly disconcerted the other day, when I was contacted via this blog and asked if I’d like to review a pair of trainers, which I’d then get to keep. (I guess there’s no alternative to that plan, really; you can’t sell trainers that somebody else has walked around in for a week.)

I’ve touched on the topic of trainers once or twice before but it would be a gross exaggeration to say that I’m any kind of expert, or that this blog is any kind of go-to place for trainer aficionados. So although I said that I’d be happy to review a pair of trainers in exchange for keeping them (finally! this whole blogging lark pays off!), I was a bit puzzled about why. It’s not even as if there’s much that I can say about trainers that might influence anyone else; being comfy on my feet and pleasing to my eye is almost completely irrelevant to anyone who isn’t me. But on reflection, of course, it’s not the shoes that I’m being encouraged to talk about so much as the place that sells them; talking about them and linking to them is good for them.

And that’s fair enough, because both the shoes I’ve been sent and the place that sent them to me have been great. The shoes are these ones, if anyone’s interested, and the web site, which is called fitnessfootwear.com sells lots of other running shoes too. The guy who contacted me couldn’t have been nicer, and when I said that I’d want to explain that I was writing about the shoes because I’d been given them, not completely spontaneously, they were fine with that. The web site is easy to use in an Amazon-ish way, and the shoes arrived the very next day after I’d chosen a pair. So there we go: discount my opinion by as much as you think is appropriate for someone who’s gained a pair of trainers, but I’d be happy to use the site again and pay my own money, and I’d recommend them as a good and more focussed choice than a general purpose web retailer such as Amazon.

October 30, 2008

Get out and vote

Writing about web page http://www.youtube.com/watch?v=fX40RsSLwF4

Cute. I wonder if Spielberg actually directed, or is just playing the director? It’s very well edited.

October 28, 2008

Finally, a prediction comes true

Writing about web page http://www.guardian.co.uk/help/insideguardian/2008/oct/22/full-fat-rss-feed-upgrade

I’m constantly disappointed by the way in which exciting predictions about the future fail to come true. I don’t fly to work with a jet pack, or holiday on the moon, and although I get many, many adverts for pills of one sort or another in my in-box, I don’t believe that there are really IQ-boosting, anti-aging, hair restoring, cancer curing tablets (not all in the same pill necessarily) available yet.

But one prediction which has been floating around for a while genuinely did come true today. It’s the one about personalised newspapers being delivered to your portable electronic reader. The prediction, which I’ve come across literally more than once, is that having a printed newspaper containing stuff you may or may not want to read delivered to you every morning is inefficient and wasteful. Better to define your preferences for the type of news you’re interested in and/or the columnists you like to read (that is, whose biases accord agreeably with your own) and then have a personalised, digital paper sent to you in the morning, to read on your Read-o-tron on the train (monorail) to work.

And now, the combination of the NetNewsWire RSS reader on my iPod Touch and the Guardian’s recent announcement that their RSS feeds now contain the full text of articles (as reported by Chris Doidge earlier today) means that this is exactly what I have. I’ve chosen RSS feeds for top stories, tech, music and HE, and every morning my iPod wakes itself up and downloads all those articles to its memory using my home wifi. Then at convenient moments in the day – and I don’t need to be connected, since the articles are all cached – I can read whatever catches my eye. No paper, complete personalisation. Finally, the future!

October 08, 2008

The title of the song

Writing about web page http://www.youtube.com/watch?v=281ax7Ovlsg

October 03, 2008

FOTE 2008 notes

My live notes from the Future of Technology in Education event at Imperial College…

Google lady (from the sales corps)
Talking about the cloud, storage vectors, 60% 3G phones by 2010
Asserting that edu is still catching up with this
Google says it ‘can help’ – by innovating for us(!)
Google apps for education – usual stack; Gmail, Apps, Gears
‘The Big Switch’, book by Nicholas Carr – moving to the cloud
Saying we should concentrate on our ‘core business’ and let Google do everything else.
Q. Why use Google apps? A. Because students already use these apps and expect to be able to use them – I’m not convinced by this, many students I’ve asked don’t know anything about Google apps, and what would we be providing over and above? Why not just let them keep using those things as individuals and promote their use? Provides continuity…
Q. What protection does Google offer regarding data, service models? A. Google guarantees via contract, 5-year rule. Google apps should attract users because its good. Response – what about the erosion of internal expertise over time? Argues that email isn’t core.

Mobile technologies
Saying that mobile has been with us for years, showing pictures saying its just got smaller/more convenient/ubiquitous
Mobile allows new ways of learning? Push content, TV etc.
Concept of centrality via device
(aside – looking round here, there are more Linux ultra-portables and Macs than PCs about)

Why portability matters – BBC Backstage
Users is now back in control?
Multiple accounts, identity management is hard, OpenID
Thin clients, EEE etc. cloud has propretiary pitfalls, Second Life
Mentions GetSatisfaction.com, Yammer, using Basecamp, saying that the info is being collated/stored by another party, has issues. Basecamp lets you export your data for instance when you close an account, Flickr suggests alternative/rival services when closing your account with migration tools
Downtime scheduling clashes with UK, is Twitterdown.com etc.
Shows how Flickr will ‘enhance’ your content with other stuff, tags, comments.
Some good stuff here in general about being careful about reliance on the cloud.

James Broad, Yahoo, Opening up the web
Works on finance.yahoo.com
Open standards driving adoption/innovation, esp. auth mechanisms
Mentions customisable pages, BBC, Facebook apps, integration of Facebook into Yahoo homepage, Read and Write web, microformats, YQL, WAI ARIA.
Says that Flash is the future (just checking you’re reading this)

Personalisation of Learning, Philip Butler, ULCC
‘Harnessing Technology Review 2007’, BECTA report
‘Technology motivates learning’ – going back to Google’s earlier message, does that suggest that the alternative is that technology integration actually is core business for HE? It’s easy to twist that argument both ways
Cultural shifts – networking, community, personalisation, immediacy, interactive, asynchrony, technologies in your pocket
VLE, Personal Learning Plans within VLE, progression, ownership
Taken screen from LearnZone (BBC), showing personal gateway, updates, timetable etc.

Tim Marshall, JANET
IPTV, trends, demo of HDTV stream, 1100kbps
Student-produced content, needs leadership, some kind of community of student producers?
IPTV briefing 6 Nov – better streaming technologies are inevitable, the key is ubiquity and standards. If this (quite cool) streaming platform requires students to install another plugin, it isn’t going to catch on unless it’s adopted as a standard

Miles Metcalf, Ravensbourne
User-owned technology, using commodity computing, no longer need to supply laptops, hardware
Opportunities for integrating with user-owned computing
Software as a service, user choice now matters, can’t dictate so much
Role of IT Services – arbiter of fair use, defender of scarce resource, agent of transformation, or just plain service provider?
Control is being lost, network access via 3G for instance
Extra-institutional practice into institutional learning
Personal Learning Environments – allows external and internal integration of material
Ad-hoc comms mean different social behaviours
Thinks the VLE should still be part of the stack, but still a bounded system
OpenID far from perfect, but says better than Shibboleth because it would cross boundaries (education/commercial)
Talking about why we shouldn’t be on Facebook as an institution

Building 21st Century LEs, John Hickey, Apple
Students creating new fields of study
Guidance, scaffolding
Different models of engagement, media-rich, producers of content
Going into a classroom almost like ‘taking a flight’, turning off devices, disconnecting
Widening gap between the outside world and education – perception of outside world being more advanced
‘Shift in power’, consumerisation of IT
Example – don’t provide generous email quota, students just move to Gmail – easy to do
Catch-up mode
Context/Core analogy; Core being the things you do yourself as an institution, Context is everything else – flip the 80/20 rule so that 20% is context – suspicious about the driver here, enterprise would say that, but Apple do have a track-record (e.g. iTunesU).
Showing iTunesU promo video, targets student/public – shows how to navigate, get to institutional homepages, how the feeds work, iPod use etc.

Tom Abbott, Warwick University
Explosion in HE – creativity, student as producers
Moving from extraordinary to ‘core’, sustainable output
Students are digitally-literate, but faculty generally less so
Lectures possibly outmoded (although still relevant)
Fail again, but fail better
Talking about Warwick’s toolset – CMS, blogs, easy publishing, video and audio
Recording applications demoed and worked!

Alastair Mitchell, Huddle
Good choice of Dilbert cartoons – ‘Everything is a platform’
I quite like Huddle – vastly different from the early betas, with doc workflow management and more collaborative features than most other platforms I’ve seen (that aren’t Sharepoint).

September 26, 2008

AIR: Rendering native system icons, Pt.1

I was asked how I got AIR to display native file icons in a component – it’s pretty easy to do, although my method is a little convoluted to explain without posting reams of code, partly because it’s buried in a sequence of Cairngorm events/commands but also because there a couple of important issues to watch for and handle (see bottom of this entry for those). Here’s an overview:

AIR has support for retrieving the native system icons in whatever supported sizes exist. The icons are stored as a property of each File object as BitmapData, in an array, File.icon.bitmaps. Each element in the array is the same icon at different sizes, e.g. 32×32, 16×16 etc.

In order to get at an icon at a given size, you can’t rely on what sizes are available at a given element position, so you need to create a new (empty) BitmapData object at your target dimension, then iterate through File.icon.bitmaps until you hit the matching-sized BitmapData object. Once you have a match, you can put the matching data into your own BitmapData object. Here’s a brief example:

public function get32Icon():BitmapData {
            var myFile:File = new File("C:/foo.txt");
            var bmpData:BitmapData = new BitmapData(32, 32);
            for (var i:uint = 0; i < myFile.icon.bitmaps.length; i++) {
                if (myFile.icon.bitmaps[i].height == bmpData.height) {
                       bmpData = myFile.icon.bitmaps[i];
               return bmpData;

Obviously you need more than the code above to handle situations where the 32×32 icon isn’t available, but that’s a basic way to grab the icon as BitmapData. At this point you could create a new Bitmap object and give it the captured data, but for my application I set the icon data back onto an Object that represents the File object (I actually used an ObjectProxy because I wanted to bind this data to an ItemRenderer later) – again this becomes important later on.

Okay, so now I have my icon data, in an object that also contains other information about the file, like its name etc. To display it in a TileList, or other component, I just use a custom ItemRenderer. I set up an image tag for the icon within the renderer:

<mx:Image width="32" height="32" source="{getIcon(data)}" />

...and then create a method in the renderer to return the icon data to the image component:

private function getIcon(data:Object):Bitmap {
        var bmpData:BitmapData = new BitmapData(32, 32);
        bmpData = data.icon;
        var iconBmp:Bitmap = new Bitmap(bmpData);
        return iconBmp;

Now each time the ItemRenderer has to render an item, it gets the relevant icon, the filename etc. and displays them within the TileList – easy! Here’s the result, showing the app running in XP and OSX:
Files part screen grab

But there are caveats; AIR does not behave consistently on all platforms with icon data. Here are couple of the problems I encountered:

  • Performance. There seem to be some differences in execution time for file system queries in AIR. Originally I had an ArrayCollection of File objects as the DataProvider for the TileList, retrieving icon data for each one in the ItemRenderer as required. On Windows this seemed fine, but on Mac OSX it proved to be very slow, to the point where my app was unusable. I overcame this by using the Flex Profiler to see what was causing the problem, finding that the underlying get icon() execution time was very long on OSX. By grabbing the icon data once, then caching it and other key File properties into an ObjectProxy, I was able to get OSX performance almost on a par with Windows, and this also sped things up elsewhere because I was calling get icon() once, rather than per-item in the renderer. It also improves scrolling performance of the TileList because that component renders items dynamically as they are displayed. In fact you could go one step further than I did and extend UIComponent to improve render performance even more.
  • Missing icons. AIR on Windows won’t retrieve some icons, in particular for .EXE, .TMP and .INI files. These are stored in shell32.dll on XP, but for some reason AIR can’t get to them. I also found one or two similar issues in OSX. AIR on Linux using the most recent AIR beta just returns a null value for File.icon.bitmaps, so rendering native icons is currently impossible. You need to add some way of checking for a missing icon in these cases, and swop it out for an embedded one if you can; I created a temporary workaround where I parse the BitmapData for null pixel values.

The next part of this article will deal with how I got native icons to render for remote files, but I bet you can already guess how that’s done…

September 25, 2008

AIR: Creating a custom status bar

It’s easy to create your own customised status bar for AIR applications. For my example, I wanted to be able to display a network status icon that indicates whether the application is connected – this is bound to a state set by AIR’s network service monitor, via Cairngorm.

First of all, in your application MXML file, make sure showStatusBar is set to true, add the statusBarFactory parameter and point it to your custom component:

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
    statusBarFactory="{new ClassFactory(CustomStatusBar)}">

Then just make a new MXML component called CustomStatusBar and add any elements you want to display in your new status bar. There are a couple of things AIR will be expecting from a StatusBar, most importantly the status setter and getter methods required to display status text:

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox width="100%" 
            import mx.events.FlexEvent;
            import uk.ac.warwick.filesclient.model.AppModel;
            [Bindable] private var modelLocator:AppModel = AppModel.getInstance();

            [Bindable] public function get status():String
                return this.statusText.text;

            public function set status(value:String):void
                this.statusText.text = value;

            private function showNetworkStatusIcon():void
                var path:String = "";
                    statusIcon.source = "greenlight.png";
                } else {
                    statusIcon.source = "greylight.png";
    <mx:Label id="statusText" paddingLeft="7" fontAntiAliasType="advanced"/>
    <mx:Image id="statusIcon" 
    toolTip="Network status"  
You can add almost anything you like in there with this technique; animations, custom text etc. Here’s a quick screen grab of my basic custom status bar with its status light on green after a bit more tweaking of the layout and styling – nothing amazing, but its useful to be able to add your own elements when required (click to enlarge);

Status bar

September 19, 2008

If… you're drinking Bacardi

Between about 1985 and 1995 or so, I went to the cinema a lot. Like, every week, and twice a week as often as not. After ‘95, my circumstances and those of my friends started to change, and my enthusiasm waned. But one thing I remember as clearly as any one of the hundreds of films I saw is this:-

It had an extraordinarily long run, and while I started out indifferent to its charms, the endless repetition eventually seared it into my consciousness, and, more weirdly, my affections. It’s presumably intended to be aspirational, to tantalise its audience with the possibility that one day it might be them on a tropical island sitting in a bar with the sleeves of their white jacket rolled up, prior to leaping into their speedboat back to their, er, other tropical island.

That’s Nicholas “Hazell” Ball doing the voiceover, and even before I eventually tracked down the video, I could recite it word for word:-

Peckham, on a wet Saturday afternoon…
Next door’s budgie…
Auntie Beryl…
The Dog and Duck, down the high street… (or more accurately, “dahn the ‘igh street”)
Catching the last bus home…
If… you’re drinking Bacardi.

September 18, 2008

Flex unit testing and continuous integration with FlexUnit, Ant and Selenium

Here’s a couple of really useful guides to setting up a continuous Flex testing and integration framework using FlexUnit, Ant and Selenium, written by my friend and ex-colleague Kieran at Black Pepper, and his colleague Julia. The articles cover setting up FlexUnit and Ant and then creating acceptance tests using FlashSelenium:

September 10, 2008

Flex IoC frameworks: which?

I need some Flex framework advice; I’m about to start a couple of new AIR projects, and decided that instead of using Cairngorm again it would be a good idea to try a different framework. There’s no particular reason to move away from Cairngorm – I’ve become reasonably comfortable with how it works and what it does, and I like it, but I’d also like to explore other approaches to Flex development. Last time I looked around there were a few alternatives, but in the few months since I posted that entry a number of new frameworks have appeared, and the amount of choice has increased considerably.

At first I thought I’d go for PureMVC – it seems like a popular framework in general, but around here our Java development is based on Spring, and I’d quite like to explore the dependency injection/IoC concepts at the core of Spring in a Flex app, to learn for myself how to apply such patterns in a context I’m familar with.

As far as I can tell, there are three IoC frameworks – Prana is a lightweight IoC container for PureMVC, Mate, which looks really well-thought out, with good documentation, and finally Swiz, which also looks interesting. I’m just not sure which will help me get into IoC as quickly as possible, coming from Cairngorm. I suspect I’ll go for PureMVC with Prana, but if anyone has any advice/insight it would be useful!

September 09, 2008

Silverlight to support H.264, AAC

Follow-up to <video> and Flash from [Ux]

Microsoft has announced that Silverlight will be supporting AAC audio and H.264 video. With regard to my previous entry about the video tag, this will make it even harder for Theora and can only consolidate H.264 as the current codec of choice. The announcement comes as no surprise to industry experts, but this move proves that MS is aggressively going after online video in a big way, but I’m not sure anyone really wins – based on browser/OS install base Silverlight may become more of a threat than the video tag would have been.

I’ve also been thinking a little more about Chrome – given that YouTube is part of Google it’s likely that when Chrome supports the video tag, the embedded codec(s) Google chooses could have a huge impact. Considering that H.264 is already being used on YouTube, perhaps that would be the default choice?

September 08, 2008

<video> and Flash

The availability of a Firefox 3.1 alpha (and Safari 3.1) with video tag support has prompted a few people to proclaim that Flash will soon be replaced as the primary medium for playing video on the web. I think predictions of Flash’s demise are both premature and inaccurate, and also think there’s a possibility that the introduction of the new tag could cause more problems than it was intended to solve. Why? – codecs…

Firefox (and Opera) will support one embedded codec in the first instance, Theora. Theora is completely open-source but based on an older-generation codec, On2 VP3. Flash currently uses VP6 and H.264, Quicktime Player supports H.264 and Silverlight adds support for VC-1, one of the newest kids on the video block. All are newer, higher-quality formats than Theora (typical comparison here). That’s not to say Theora is a bad codec, far from it, but in the world of video codecs it is at least a generation old, maybe more, and as such doesn’t represent the current best of breed in terms of video quality/performance.

Secondly, in order to take over from Flash, Theora needs to be on all or enough browsers to work as a standard. The HTML5 specification doesn’t advocate or recommend any codecs, and as the specification notes, this is problematic:

It would be helpful for interoperability if all browsers could support the same codecs. However, there are no known codecs that satisfy all the current players: we need a codec that is known to not require per-unit or per-distributor licensing, that is compatible with the open source development model, that is of sufficient quality as to be usable, and that is not an additional submarine patent risk for large companies. This is an ongoing issue and this section will be updated once more information is available.

So, if one browser advocates Theora, will every other browser follow? After all it’s a fairly trivial (and zero-licencing cost) thing to include support for it. Firefox and Opera combined currently have around 25-30% share of the browser market; while 30% (and growing) is an excellent starting point to build from, IE’s and Flash’s dominance in terms of installed base will make it difficult forTheora to overtake the current popular formats unless they support it too.

We’re not starting with a blank sheet of paper here either; many video services and sites that use video have spent a considerable amount of time and investment in encoding to a specific platform, one that is currently supported by enough browsers/platforms to make it worthwhile. At best a move to Theora would have to be transitional, and likely to take several years, as people migrate content over to the new format. IE is the most common browser by a considerable margin, and Microsoft has its own favoured formats; WMV via Windows Media Player and/or VC-1 via Silverlight, plus the formats supported by Flash Player. It’s hard to see these not being with us for a while yet, unless IE starts supporting Theora at the expense of Windows Media formats (unlikely); if Theora isn’t included in IE, it simply isn’t going to get traction as quickly as it needs to to become the standard. Similarly unless Webkit (as the core engine of Chrome and Safari) or YouTube also add native support for it (AFAIU latest Safari builds that support the video tag currently support Quicktime’s supported formats, which doesn’t include Theora as standard), it’s hard to see it taking over. While users will be able to add new codecs manually, assuming they will do so in order to view a new video format could be risky. Then there’s streaming support via RTSP/RTMP, etc.

My point is we are going to have to live with multiple formats whether we like it or not, and that Theora is a technically a backward step; it will only take one browser vendor to ignore Theora and it will become void as a standard, yet HTML5 isn’t forcing or even recommending a standard to follow. At this point video on the web will be in danger of becoming a mess as people find they don’t have the required codec and have to install support for it. I wouldn’t go as far as to suggest the video tag is going to create chaos where relative calm currently exists, but it might. I can’t see a good technical reason why the current model of using Flash as a wrapper for video and codec support is broken, or why it needs to be replaced with what may become a mess of format support where we move from two or three dominant formats to five, six or maybe more competing ones, plus multiple downloads for users. In my experience proprietary formats tend to be better, that’s why they cost, and neither do I buy into the ‘everything has to be open-source’ argument, especially considering that the dominant audio format is MP3, which isn’t an open-source format at all (even AAC codecs require patent licence).

Most importantly though, while all this takes place a solution already exists; Flash Player. It supports H.264, VP6 and Sorenson, most people already have it and it works on all the browsers mentioned above, across Windows, Linux and Mac. “But Flash is a terrible resource hog!” I hear you say, but when you consider that Flash is decoding and rendering video, in software, it’s worth noting that this takes CPU cycles and is a processor/memory intensive task. Even if you could run fully-hardware accelerated video (which Flash is moving towards), video is still relatively intensive work for the average desktop/laptop. In the first instance, Theora decoding in Firefox is going to run in software, just like Flash, and presumably consume CPU cycles in a similar way.

With all this in mind it would seem to me that the only reason for wanting to take Flash off its video pedestal is that it is owned by a commercial entity, ignoring the fact that Flash Player has been a key enabler and driver of the dramatic increase in use of video on the web, without any of the ‘payback’ people seem to fear. Without advocacy from W3C, the reality is that browsers are going to be free to implement their own choice of favoured codecs, but those choices are likely to be driven by different criteria, not necessarily whether they are open-source. It could be about to get messy.

Alternatively, we could all start using Mike Chambers’ workaround for getting Flash to display video wherever the video tag is used, and everyone could just carry on. ;-)