Posts Tagged ‘flash’

New city, new blog post!

Thursday, April 10th, 2008

I do feel like I have been neglecting this blog a bit over the past few months, but unfortunately moving from one country to another tends to take up a fair amount of time.

I’m now nicely settled in New York City, and have furniture in my apartment! All in all, the transition has been quite smooth, and I’ve found everyone to be friendly - obviously, I’m sure my charm and English accent has also played a part!

Last Wednesday I went along to Flash Coders New York, which was great fun, with an excellent presentation by Seb on the Arduino board, which allows you to do a bit of home electronics hackery, controlled by Flash.

In other news my book, Creating Mashups with Adobe AIR and Flex 3.0, has gone off to the printers and should be on the shelves come April 28th. More on that over the coming weeks, but in the meanwhile, I would heartily recommend that you go and check out Adobe AIR.

More soon…

Looking Backwards and Forwards

Tuesday, January 1st, 2008

As another year draws to a close, its perhaps time to take a look back at what has been happening and of course, expectations for the coming year. Plus, now that I’ve finished my last big social engagement before new years, it seems as though I have some time on my hands!

2007, a look back

One of the big things that has happened this year was of course the announcement and launch of the iPhone. If you have managed to miss that one, then I can only imagine the amount of beer you must have been drinking to dull the outside world!

The iPhone

I have one, its a sexy phone, and in many ways I think has got people thinking about different ways we can interact with our technology, rather than relying on old conventions. The iPhone has also, I think, started to really drive a shift in how network operators look at data. In the US it has let to mobile operators taking the first steps towards embracing the concept of ‘unlimited’ data; whilst in more advanced European markets we are seeing greater competition between operators and also a push towards creating ubiquitous wifi access plans for customers.Its not the best phone in the world, with no support for things I have been used to, such as MMS. Plus, it has a really rubbish camera compared to my previous Sony Ericsson Cybershot, but its sheer usability would make me hard to take that step back.Hopefully, this will be the catalyst for more cool and innovative devices over the next year.

Operating System Wars

February marked the release of Windows Vista, which no-one seemed to notice.With many early adopters going back to XP, it seems as though Microsoft tried to bite off a bit too much with this one, ending up delivering an operating system which sucks resources and alienates existing users with its new features.October marked the release of OS X Leopard from Apple, which a few more people seemed to notice.With many early adopters going back to Tiger, it seems as though Apple perhaps let this cat out of the page a bit too early, delivering an operating system that adds many fantastic incremental enhancements but at the sometime has managed to alienate existing users with a slew of annoying bugs.

The Social Geek

One of my personal highlights has been the explosion of geek events over the past year - from the usual skillswaps and networking sessions to wine and cider tastings. I’m not sure if this has just been a Brighton thing, but it is fantastic to be working in an industry with so many diverse, skilled and interesting people.

Another Bubble?

Its been like the late nineties all over again, with massive investments in technology and innovative web applications springing up left right and center. Too be honest, I think its a serious problem as soon there will be no domain names left! We already have web applications dropping vowels ll vr th plc, Shakespr would turn in his grave!One thing I’ve noticed is that innovation still seems to be in place, but this time around many of the business models seem to be a lot more conservative. Hopefully because of this, we are not on the brink of another crash.

Micro-whats?

Last year, one of my predictions was that microformats would be one of the next big things to hit us this year. Looking back, I seem to have got that one a bit wrong. Whilst many sites have implemented them into their markup, I think various community issues and the lack of any decent applications which consume them; has really hit hard.Although they serve a worthy purpose, putting a semantic structure around complex data types and this making them easier to parse and detect, I don’t think they are going to be the next big thing. For a start there is very little consensus around many of the specifications in development, hindering their adoption and leaving developers to go and mark up their data in their own way. Instead, the next big thing I think is going to be data detection at the OS level.One of the cool things about Leopard is how you can hover over an e-mail signature and automatically import a person into your address book, with excellent accuracy. No strings or hCards involved! Rather than relying of developers to standardize on a markup sub-format, lets put more energy into recognizing data. I would expect Apple’s data detection technology to work its way into Safari and other applications soon enough.

2008, the year ahead

So what about 2008, lets have a look.

Browser Wars

The recent legal challenge to Microsoft, by Opera Software, over Internet Explorer’s poor standards compliance is an interesting one. I think ultimately it is a bit pointless, but we should also realize that Microsoft are in a position to do something substantial with their browser.For a start, IE8 has a new rendering engine which passes the Acid2 test - that in itself is an big win for web developers everywhere. What could really be game changing is if that engine was in fact Webkit - lets stop it with proprietary rendering engines each with their own quirks and embrace common platforms, giving web developers of the future a few less things to worry about!

AIR Heads

Q1 will see the release of Adobe Integrated Runtime (AIR), which I have been excited about for a while. Mainly because it offers a viable and straightforward route for web developers to create widgets and applications for the desktop. With the ubiquity of the Flash player, and the many exciting developments this year and on the board for the Flash Platform, I can see AIR doing well.What makes me so positive about this is the open relationship Adobe are forging with the development community. Proactively seeking input and critique of their software and strategies, and at the same time releasing things such as Flex and AMF as open source. Things have definitely changed for the better.

Personal Stuff

On a personal note, 2008 should be interested for two reasons. The first being that I have recently accepted a new role, one which should open the door for some interesting projects and technology work. Sadly, it does also mean I will be leaving Brighton (I’ll be back!) for the shiny lights and hustle of New York City - a nice adventure!The second item has been on the cards for most of the past year, I have a book coming out later in the year dedicated to Creating Mashups with Adobe Flex and AIR which I have been writing with my good friends David and John. Quite exciting, though Amazon continually seem to be discounting it, which may not be a good sign! Get your pre-orders in today!Also on the drawing board is a blog redesign, which I have been working on for a while… watch this space! (more…)

Performance Tips for RIA

Sunday, August 26th, 2007

One of the tools I have been appreciated over the past week or so is something called YSlow, a validator for Steve Sounders Rules for High Performance Websites, built as a plug-in for Firebug. It has got me thinking, thats all very well and good when we talk about mostly static web experiences, but how do they apply to rich internet applications, built using the likes of Flash or Flex.

Many of the performance rules such as consolidating CSS and JavaScript, moving CSS to the top of your document etc. are not really applicable in this case. Whereas some rules such as reducing the number of HTTP requests will always be relevant.

Lets have a look and see if we can produce our own set of performance tips specifically for RIA developers. All comments appreciated!

Performance Tips for Flash/Flex Rich Internet Applications

  1. Make fewer HTTP requests in your containing HTML page.
    As the average browser can only make up to 6 concurrent HTTP requests out-of-the-box, it is important that your HTML page is optimized for this. As you will likely be using a JavaScript library such as SWFObject in order to embed your RIA, this functionality will not be executed until the page is loaded, meaning that the SWF file will likely be towards the end of the download queue. Thats fine, unless the browser is tied up with downloading other items… For the end user this means they will spend longer looking at an empty page, which is not a good experience.
    In order to solve for this, one should refer to the wisdom of YSlow.
  2. Manage User Expectations.
    The likelihood is that your SWF file is going to be fairly heavy, and take a not-insignificant amount of time to download. This is especially true if you are using the Flex framework within your application. If this is the case, it is absolutely essential that you consider giving the user feedback that something is loading, and how long it is going to take. It prevents abandonment and makes the whole experience seem more responsive.
    Similarly, if at any point an application is required to go off and load more data, similar user feedback should be employed if the response is going to take more than a second.Some would argue that the use of preloaders is indicative of a slow application, that may be true, but a longer perceived load time and unresponsive UI are probably more indicative of a slow application!
  3. Prioritize Dynamic Content.
    Its easy to get carried away when building applications, externally loading XML files, CSS files and background images so that pretty much every aspect of your application is configurable by external files, rather than a recompilation. Fantastic, except when we consider that all of these files need to be loaded before the application can even thing about rendering.
    Its worthwhile to make a list of all the data files and graphical assets which your application needs to load pre-render. Prioritize these based on how often each particular item is likely to be updated. Consider relocating some of these assets inside your SWF.Its nice to specify text styles using CSS or XML, but if no-one is likely to change it, then do you need it, especially since this could be relocated to an ActionScript class and potential shave a second or two off load time.
  4. Consolidate External Data.
    Calls to external services are expensive, often with a round-trip response time of a second or so, and usually coupled with a second call to a crossdomain.xml file. These are a bottleneck, and there is nothing that can be done here. However, if you are making multiple calls, consider consolidating them by developing a server side component which can make both calls, merge the data and return the result. This reduces the client-side overhead, and lets you manipulate the results on the server side if necessary, making your application feel more responsive.
  5. Load Cross Domain files up front.
    If a service call is inevitable, consider loading the crossdomain.xml file up front to avoid delaying your initial service requests.
  6. Don’t be afraid to cache data.
    If data is unlikely to go out of date, or if you want your UI to appear responsive, pre-populated with data, then why not cache data on the client? Data can be stored in a local shared object, and retrieved on the next load of the application. This creates the impression of a responsive UI and can save on HTTP requests.
    In the background, its important to set an expires property so that you can manage data refreshes, based on the lifetime of the data in question. Weather information may have a lifetime of an hour or so, whereas a user’s profile information often has a lifetime of at least a few days.If data is secure then this method should not be used, unless in conjunction with encryption, as the shared object is accessible on the user’s filesystem.

(more…)