Archive for the ‘Flash’ Category

360 Flex Europe over

Saturday, April 12th, 2008

Okay so I’m a couple of days late on this one, however taking 3 days out of work takes it’s toll on the remaining 2 days of the week when you get back.

We got to the hotel on Sunday morning with the best intentions of spending the day doing touristy things, unfortunately because of our flight timings we basically traveled throughout the night and just got the hotel and crashed for a few hours. First thing I did after I’d caught up on sleep was sort out wifi access, not good. Best part of £70 for 3 days wifi is ridiculous… and it was slooooow. This was definitely an issue for a hotel full of geeks and would suggest anyone organising a conference takes internet access into serious consideration when finding a venue.

We later went down to the speaker dinner which was a relatively quiet affair but was great to meet new people and the dinner was pretty decent. At this point to be honest I didn’t have particularly high hopes for the conference because of the low number of attendees. Fortunately however my initial concerns were not upheld.

The first day of the conference for me went something like this:

Keynote: nothing new for me here but good to see Adobe having a presence.

Michael Labriola: Dense and Hot - An Introduction to Your Application’s Start Up
Michael has a great presentation style, he was relaxed and managed to get through quite a lot of very useful information in a relatively short space of time. I think conferences could do with more of these sorts of sessions as many seem to have a lot more introductory level sessions. I learnt a lot from Michael in the session and throughout the rest of the conference. He’s also a very smart and funny guy.

Marco Cassario: Better Flex and AIR Applications Using AJAX
Marco gave an interesting presentation on using AJAX in AIR but he also covered some general good practices for Flex development. I learned a few things AJAX related that I didn’t already know but I think generally AJAX just doesn’t get Flex developers very excited. Marco presented his session well and got through a lot of material but I would definitely like to see him present on some more advanced Flex stuff in the future.

Luca Mezzalira: Flex Bitmap Effects!
Luca gave a fun presentation on Bitmap effects and had some good samples to share. I’ve not really done anything with bitmap effects before and definitely now have the required knowledge to do so.

Piergiorgio Niero: 3D Render Engines in the Flash Platform
Piergiorgio gave a great presentation starting with some of the basics of 3D in flash then running through to demonstrate the build up of some very impressive Papervision3D demonstrations and Papervision in Flex. He wasn’t too confident in his English but certainly got everything he needed to across and the examples and sample code provided are great.

Sakri Rosenstrom:Invalidation Routines, Pounded into Your Cranium Once and for All!
Unfortunately I had to deal with some work issues during Sakri’s presentation which was really annoying as I wasn’t able to concentrate on it fully and it was a pretty technical session. What I did manage to keep up with was very useful and well presented and Sakri managed to deal with some unexpected technical issues very well. I hope to catch his session again some time.

Neil Webb: Cairngorm for Beginners
Neil’s a good friend of mine and I’d seen parts of his presentation beforehand but was looking forward to seeing the whole show. He was a little nervous at first and perhaps spoke a little quietly to begin with considering he wasn’t using a mic. However, once he settled into things the presentation went very well. He has some VERY funny slides and if you’re going to scotch on the rocks and/or 360 Flex San Jose definitely check out his session. Even if you know Cairngorm go see it for the Phat controller, Sexed up Flex Frameworks and Sexyometer! If you aren’t familiar with Cairngorm then Neil breaks it down into a very digestible manner and uses great metaphors to explain what’s going on.

Borre Wessel: Cairngorm Deepdive
Borre presented a good session on Cairngorm and other useful good development practices. He covered some topics that I’ve been looking into lately such as view patterns and did a good job of explaining the Presentation Model pattern which is a very nice approach. He seems a pretty laid back guy which made him approachable for questions but perhaps could do with a little more enthusiasm and volume to maintain the audiences interest. Nevertheless another useful session for me :).

Finally it was my turn to do my presentation on Developer Best Practices. I was a little worried as I hadn’t prepared quite as much as I’d have hoped to (being ‘dragged’ out for pizza and 1 litre beers the night before didn’t help :P). I was more concerned however by the fact that almost everyone I’d met was a very talented and skilled Flex developer who more than likely didn’t need to be told the best practices I was there to present.
This concern was re-affirmed as I kicked things off by asking the group “Who uses source control?” as the preamble to my 10 minutes I’d planned explaining source control… to which all but one of the attendees already did! After struggling preaching to the choir for a few minutes, I decided to scrap that and adopt my reserve tactic of opening the topics in the session up for debate.

This was also a concern of mine as in many of the sessions the audience tended to stay pretty much silent. Fortunately for me I had Michael, Sam, Neil, Robin, Sakri and various others in the session who really came into their own and spoke out. We discussed various OOP practices, design patterns, unit testing and a great debate on pair programming (always a good one to throw in if you want some audience participation!).

I enjoyed the session in the end and definitely would like to try the discussion approach in the future as I managed to learn a few things from the guys I was supposed to be presenting to and I’ve had some good feedback about it (despite the ropey start).

Overall, despite initial concerns 360 Flex Europe turned out to be a great conference and I’ve very glad to have attended. Thanks to the 360 guys for arranging it and thanks to everyone I met there.

Attention to Detail in Rich Internet Applications

Wednesday, February 6th, 2008

Adobe’s Ethan, Ted and Ryan recently gave a big thumbs up to Firebrand an RIA for watching adverts.

Niels Bruin responded with what I think is a very good wake-up call to the starry eyed approach to reviewing web apps with lots of transitions, reflections and other shiny bits. Niels highlights some real basic usability faux pas that Firebrand made such as mystery meat navigation, red punishing looking confirmation messages and inconsistent design touches.

To be honest, I read all the commotion and Niels put down before I looked at the site and to be fair to Firebrand I probably wouldn’t have picked up on those points myself. But then I’m not and would not claim to be a UX hotshot of any kind. The key point for me is that the points raised by Niels do not require a magical usability eye and could very easily be a printed checklist and implemented as part of a quality control assessment before final delivery of a product. To be fair I do also agree with the points Ryan makes in his followup and I’m also all too familiar with things such as expectation and deadlines which can all to easily prevent this much-needed attention to detail. However, if we keep reminding ourselves of it then hopefully it will become second nature and not needed as a time consuming afterthought.

If you’re responsible for the creation, delivery or quality of a customer facing project, take 20 minutes, open up your word-processor of choice (perhaps use it as an opportunity to try out Buzzword) and hack together a simple list of quality control checks.

Here’s a handful of checks plagerised from Niels post and an old post I remembered by Aral to get you started, copy the below and paste into a document, print out 10 copies, run through your current project and tick each one off and you’re well on your way to becoming a quality control engineer!

Niels’ Firebrand wrist-slap:

  • Make sure any icons/metaphors are extremely obvious or explained with tooltips or other indicators
  • Make confirmation messages look positive and warnings look like warnings (I.e. don’t positively confirm an action in red)
  • Is everything laid out consistently? How much effort would it really be to tweak that button a few pixels to line up properly?
  • Can familiar controls be used in a familiar manner? E.g. can I scroll a scrollbar using my mousewheel, drag it and click up/down arrows?
  • Have you tested on all likely platforms/browsers? At least WinXP, Vista, Linux, OSX with IE6 & 7, Firefox, Safari, Opera

Aral’s old post on UI principles (interpretation by moi for checklisting purposes):

  • I can use it but am I a ‘typical user’? Even better: can I get an intended user (or several) to use it?
  • Does validation “prevent not scold”? Does the user get scolded “YOU IDIOT, WHY DIDN’T YOU SELECT A GENDER BEFORE CLICKING THAT BUTTON?!” or do we just make the button un-clickable until the gender has been selected with some unobtrusive instruction to do so?
  • Does the user receive sufficient feedback? If the user makes an interaction, is it obvious that interaction has been acknowledged by the app and the expected result has happened? (see Niels point on adding to faves).

There’s a load of other things that can be added to this list, for generic testing and I’m sure for specific audiences/companies/application types etc. I’m going to do some digging on other principles people have come up with as I know there are a ton out there but whilst this is topical I thought I’d add my opinion and throw in a call to action to anyone reading.

Adobe AIR: Is breaking out of the browser the right next step?

Sunday, November 18th, 2007

If you read my blog regularly, you’ll know I was quick to jump on the AIR trip. I do still very much like AIR, have seen some good AIR apps and believe it has some good potential. I’ve played with a couple of AIR apps, have seen several AIR presentations (even presented one) and made numerous blog posts about it. So I feel I’m justified in my opinion that I’m not completely convinced that this is the best next step for RIAs, or at least not the best place we can end up.

I mentioned “played with a couple of AIR apps”, why only two? To be honest it’s probably slightly more, but still only very few. I’ve downloaded and installed the Pownce AIR app, now uninstalled as I didn’t use it. I downloaded and installed the Finetune AIR app, now uninstalled as I don’t keep much music on my computer and so it didn’t offer me much more than the in-browser version. I’ve also downloaded a couple of other apps out of interest but only was looking out of my interest in AIR and not so much because of the usefulness of the app. All gone, I currently have zero AIR apps installed.

The fact I uninstalled them isn’t really the point i’m trying to make, for me, those apps just didn’t add much value so I removed them, that could be the same as on any platform. The thing that bothers me about AIR apps is how few I can be bothered to try. I generally am not that inclined to download and install the applications in the first place. This is because breaking out of the browser breaks up my user experience. I love RIAs, I love the ease in which I can access, use and share them. These things just aren’t as good when I have to download and install the application I want to use, I just want to use it.

Okay, so the features that AIR offers aren’t available to the Flash player and I do think those features are hugely valuable. I just don’t think running an RIA as a completely separate entity to the browser works too well. A large draw for an RIA is simplicity and availability, both of which out-of-browser RIAs restrict.

Take Buzzword, which is a truely remarkable RIA and in my opinion is superior to any other online AND offline wordprocessing tool. I’ve not seen the AIR version of it which I believe is on it’s way and I can already see that what AIR offers will be a great addition to it. But wouldn’t it be even better if all the connectivity detection, local file storage, drag and drop etc were available to the in-browser version? If installing AIR gave me all those capabilities as an in-browser resource as well as a stand-alone runtime? Okay so no custom chrome for in-browser. Big deal! Apps like Buzzword already stamp such an impression with their branding and interface you really easily forget you have some boring browser buttons up there. We now have full-screen in Flash Player, let’s work out those secrity issues and make more use of that.

I know it’s not so easy with all the security sandbox constraints of running in browser but is there really that much difference to me saying “yes let this application i’m installing have access to the nether regions of my PC” vs “Oh, I tried to do something in this online app that wants access to my PC? Oh go on then let it”.

Security gurus can tell me that what i’m asking for isn’t possible and why it shouldn’t be, but I feel as long as I ultimately make the decision on what does and doesn’t have access then it shouldn’t matter whether this is in or out of browser. Am I alone in thinking this? Is this something that will be possible in the not-too-distant? I’ve not done enough homework to answer that but it certainly makes more sense to me as in some ways AIR feels like we’re taking a step backwards.

SWX RSS reader in 3 minutes

Saturday, November 10th, 2007

I just read Aral’s post about Florian’s SWXml (an xml parser for SWX). I finished reading that post at 18:22 and by 18:25 I’d loaded my blog’s 10 most recent posts into flash!

That’s incredible on the easy scale. All i’ve ever done with SWX before now was the moo-card tutorial (which is about 4 lines of code) since my FOTB pledge to myself.

I even struggled with some basic AS syntax (array.length not .count as i was trying), so if I used Flash regularly I think that would have taken me around one minute to do. I had to do this for a project I worked on some months back and it took me best part of a day to get everything in place, setting up a php to xml parser loading the xml into flash, xmlObj-ing the xml when loaded!

+10 kudos points to Aral
+10 kudos points to Florian

My SWX RSS reader:


and just so you know how easy: here is the source

Okay it’s not brilliant, but less than 3 minutes!

FOTB 07 round up

Friday, November 9th, 2007

I got back late Wednesday night from Flash On The Beach and want to share my experiences before it’s old news. Firstly, it was an awesome conference (okay so that probably is old news), definitely a huge improvement on last year which was already a great conference. Thanks alot to John Davey and the team for putting the conference together and will definitely be there next year. Thanks also to Aral for letting us stay with him and also happy birthday to him.

Anyway, thought rather than just say how great the speakers, sessions, crowd etc it all was I thought I’d list the sessions I attended and my intended actions as a result of those sessions. It’s proven that you’re far more likely to go through with something if you write it down so I figure i’ll do that here and I can get publicly ridiculed for anything I don’t get round to doing before FOTB 08:

Day One
Keynote
I intend to find out more about Thermo as info is available and I also must poke fun next time I see Holmes & Homes :D.

Grant Skinner - 50 Reasons AS3 Kicks Ass
I’ve played around with AS3 but haven’t yet done very much with it, Grant’s session was a great whistle stop tour for a refresher and highlighting some new stuff to me. I will be grabbing his slides as they become available and will be doing some AS3.

Mike Chambers - Understanding Adobe AIR
Anyone that’s read my blog frequently knows I was a bit of an Apollo fanboy when it first came about. I’ve actually not had too much chance to actually develop anything with it yet. I also have some reservations about AIR. As a result of Mike’s session I am going to give AIR a fair go and develop something and I’m also going to ‘air’ (barf) my opinions and concerns with it on this blog.

Keith Peters - Make Flash Games. Retire Early
Great session where Keith shared his game developing experiences. Very much has triggered my desire to create a game and release it to the world. I do now have a much better appreciation for what will be involved and hope to at least have a bare-bones game of some-sort by this time next year.

Hoss Gifford - The rest of the iceberg
Hoss’s presentation was brilliant and made alot of people feel better about their own trials and tribulations of delivering projects. Knowing that he has gone through the mill and how he’s come out of it stinking of roses puts me at ease. He also planted a seed that’s inspired me to give 3D a go as what he acheived with limited experience was very impressive.

Ted Patrick - Flex and Actionscript 3 worst practices
Ted’s session was a very useful tech session and as I’ve been planning some Flex learning material for my team gave me some great notes and advice. I’ll be using his slides and advice he shared with me after in the training docs I’m putting together.

Aral Balkan - Let’s talk about SWX baby
Despite a couple of technical issues which he handled well and more than made up for in his impromtu session with Mario and Branden, Aral’s presentation has totally motivated me to open Flash and slap some code on the timeline and create something using SWX. Even if it’s just enough code “to fit on a moo-card” :P. I’m also very keen to get involved in the .Net port of SWX.

Carlos Ulloa - Next Generation Websites with Papervision 3D
This stuff is simply insane. I will be giving PV3D a try, end of.

Tink - Flashing Flex
Tink has a great conversational presentation style and his presentation was massively useful on creating custom-looking Flex applications. Even if you didn’t attend his session I highly recommend checking out his slides and source code when he makes them available (hint hint tink ;)) (I think he actually posted it before i’d finished this, thanks Tink!) .Andre-Michelle - Klangfabrik
Whilst I don’t think I’ll actually use any of this in the near future, this was one of my favourite sessions of the conference. Andre is a top bloke and oozed fun and friendliness throughout his presentation. He is also very intelligent and his work with sound in Flash has to be seen/heard to be believed. His session overran into lunchtime and I don’t think a single person gave a damn, sooo much fun and energy, thanks Andre! He was also very funny check out the best quote of the conference here :P.

Brandan hall - The Nooks and Crannies of ActionScript 3
Brandon is one hell of an Actionscript geek, to the point of pretty much reading the docs start to finish! However he also highlighted some great tips and I will definitely be getting hold of his slides and putting his tips into practice.

Joshua Davies, Brendan Dawes, Craig Swann, Robert Hodgin, Erik Natzke, Jared Tarbell
All of these guys have totally inspired me to give up, down tools and just watch the incredible stuff they come up with! If you ever get to see any of the above present then I highly recommend it. Specifically Robert Hodgin’s experiments with Processing have to be seen to be believed. Despite not planning on achiving anything like what these guys can come up with, they have inspired me to occaisionally stop fretting over RIAs, best practices and “proper” programming and just come up with some fun stuff.

Overall, well worth the visit to Flash On The Beach and I highly recommend going next year.

Flash On The Beach 2007 and Poker

Tuesday, October 23rd, 2007

So today was the last day to get tickets for Flash On The Beach 2007 I was signed up to the newsletter, got sent an email about how ticket sales are coming to an end, read through the site, got sucked in and now have tickets! Looks like the hype and website worked on me! Only problem now is having to decide which of the many sessions to attend in such a short space of time!

I also happened across this coder’s poker tournament in london sponsored by Adobe and organised by flash coder which I’ve signed up myself and the team for which looks like it could be a great laugh so hopefully we’ll be there.

If anyone else is attending either of these events let me know and see you there! :D

Flash on the Beach banner

The Silverlight Problem

Sunday, September 30th, 2007

As anyone who regularly reads this blog will know, I’ve been looking into Silverlight of late. Nothing commercial as yet, just to fulfill my own geeky interests (if anyone is looking for Silverlight development get in touch). Throughout this experimentation and research I’ve also discussed Silverlight with other developers and designers from various small and large agencies particularly at a recent MS web agencies dinner in London.

Through all this investigation and chatter, I’ve drawn a conclusion of a problem that MS still have to solve:

There are still no way near enough “creatives/designers” willing to to experiment with the tools available for creating Silverlight applications.

Maybe this is obvious and I’m sure MS are well aware of this but I’m not sure enough is being done. The reason being, I myself and others are getting frustrated by not having anyone available to work with in order to create good-looking Silverlight applications and experiments.

.Net developers are excited by Silverlight, MS partners are excited by Silverlight, MS is excited by Silverlight… Designers couldn’t give two hoots about Silverlight.

This is pretty frustrating because there are a lot of very skillful .Net coders waiting to work with someone using this amazing workflow that is available between Visual Studio and Blend but there’s no-one there on the Blend end! Blend is a good tool, I’ve played around with it and realised what could be done if I could work with someone who, unlike myself has even the slightest bit of artistic flair. Unfortunately this person doesn’t exist yet, or at least is very hard to come by.

Microsoft,

Get the Expression tools available for Mac ASAP.
Do whatever’s needed to get designers comfortable and happy with using Expression Design and Expression Blend.
Throw more resources and free training at creative decision makers.
Make integration with Photoshop and other design tools as seemless as possible.

The devs are sold on Silverlight, the appeal of being able to use CLR languages in a rich environment is huge. But it’s fruitless without designers. We need more designers picking up these tools if you want your massive .net community to do some amazing things with Silverlight.

Until then, Flash and Flex are here, available on both platforms and have a passionate and loyal user-base. I appreciate Silverlight and the tools are only at version 1, but if you’re out to compete (and let’s not kid ourselves, you are), you can’t measure success on version numbers.

What is an AIR database?

Saturday, June 23rd, 2007

As mentioned in my last post I want to explain to the un-database-initiated what a database in AIR is and how it differs to other databases you might have heard of or experienced.

Database Support In AIR
Adobe have recently added support for databases in AIR through support of SQLite. From the SQLite website:

SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.

What this means is that SQLite enables database functionality within a single system file without the need for a running database server or complex database applications. The real merit to this is that it is highly deployable and as such is a great addition to AIR. To better understand this it might pay dividend to see how this is different to traditional databases.

Other Common Databases
If you work in web development the liklihood is you will have worked with or at least heard of SQL Server and/or MySQL. These are the most commonly used databases in web development so we’ll start here to help understand SQLite.

SQL Server and MySQL are Database Management Systems (DBMS), in that they work on a schema of tables of data and identifying relationships between those tables. This is very much the same in SQLite, you store your data in tables (think spreadsheets) and you can link (”relate”) those tables to each other through the use of “keys” (more on this in a later article).
However, SQL Server and MySQL are Database Servers - they are hosted on a network accessible resource (I.e a server), requests are sent to the database server and information is returned. SQLite differs here because an SQLite database resides on the client machine in a single file and all database operations are carried out on that specific file.

Interactions between a MS SQL Server/MySQL database and an SQLite database are much the same in format (the surprisingly titled ‘Structured Query Language’) but SQLite interactions are carried out on a file whereas SQL Server/MySQL are carried out on the server. Understanding this difference will be key in assessing when to make use of the built in support for SQLite and when to use traditional DBMSs which will still require the use of a server-side language (e.g. php, .net or java).

When to use SQLite
So database server databases reside on servers (woah :P) and SQLite databases are files on the local filesystem. So are they viable alternatives or are there use-cases for one and use-cases for the other? There absolutely are different use cases for each approach:

Database Servers
Where all users need to share the same information - E.g. Forums and community sites
Users aren’t necessarily going to be accessing from the same machine - E.g. Remote vs office working
High volume of data transactions - single file local databases aren’t going to cut it with millions of data transactions. Modern database servers can handle much higher loads.
Concurrency Requirements- On a local database file with SQLite your database is either being accessed and therefore locked (I.e. one transaction at a time). database servers have much more advanced complex record locking and update mechanisms which are useful again for high volumes of data requests and updates.

SQLite
Disconnected Working - E.g. For applications when offline working is required
User preferences - Where the user audience need not know each others details E.g. layout settings
Local Processing - If alot of work is being done at the database that doesn’t need to be publicly shared E.g. summary reporting, calulations etc.

Best of both worlds
SQLite in AIR allows you to take your data driven applications and make use of local resources and avoid unecessary remote server calls. SQLite will not completely eliminate the need for remote code and databases but it will certainly help to enhance the desktop application experience. Database servers allow for shared access to data and distribution of data, combine this with SQLite for local, disconnected data access and you can really add value to your rich internet desktop applications.

AIR Databases 101 - Flash/Flex developers haven’t had this database stuff before!

Sunday, June 17th, 2007

In a recent conversation with Neil the significance of database access in ActionScript dawned on me. Whilst this feature has undoubtedly been driven by requests from those with previous experience of databases, there must be a huge amount of Flash/Flex devs who’ve never had to worry themselves with the wonderful world of DBMS’s (”Database Management Systems” or “databases” for the non anal). So I thought I’d put together a number of introductory posts on the essentials of databases.

Adobe AIR

A couple of things to note first: I have not touched databases in AIR before now, in fact despite the number of posts on Apollo, i’ve not touched Apollo/AIR in any decent capacity before now (purely due to the rare commodity of time). However, I am pretty well versed in other common databases namely MS SQL Server, MySQL, Oracle and of course, Access (barf).

Another thing to note is: to all you guys who spend all day every day creating amazing, interactive, fun and flashy things in Flash and Flex… databases might seem a bit dry. In fact sod that, they are dull as dishwater, paint drying and grass growth in comparison. However, if you’re planning on making some kick-ass AIR applications and don’t want to rely on webservers, server-side scripting and hard to setup and manage database servers and/or want to make use of the nice offlineyness in AIR, bear with it because it will be a very useful string to your AIR RIA (gotta love these acronyms) bow.

So what are these essentials of which I speak?
The below is a rough list of topics I’m going to cover. I’m starting from a real “assume no knowledge” level so please feel free to wait for the later articles if you’ve already some exposure to databases. I’m hoping to get these out over the next few days but if you have any comments, questions or suggestions please fire away and i’ll try to include as much as i can. I’m going to be creating plenty of simple examples using Flex3 (although this is already proving troublesome as my poor old laptop can’t hack it - but i’ll sort something out). Anyway, on with the planned topic list.

  • What is a database? - duh! Okay to put it a better way, how do databases in AIR compare to other databases that I’ve heard of?
  • What’s in a database (an AIR database) - Tables, Views, Triggers, Indexes
  • SQL - The mother tongue of nearly any database you’re likely to use.
  • Normalisation - ugh! initially this wont seem important and certainly not interesting. As soon as you want to start doing more advanced databasey stuff - you have to get this.
  • Database best practice - this is yet to be defined in the AIR world, however there are many databases in application best practices we can draw from other languages and databases to get us started.

As mentioned, if you think there’s anything unclear or you think I’ve missed let me know and I’ll try to cover it. First topic coming up shortly…

Neil’s pulled his finger out - AS3/Flex2 Blog

Saturday, June 9th, 2007

My good friend Neil Webb has recently re-vamped his blog and has been posting some excellent Flex2 and AS3 thoughts, examples and tutorials. Check him out at nwebb.co.uk, he’s written many articles for Actionscript.org, helped loads out on their and other forums and contributed to the Adobe Developer Centre an excellent article on TDD for flex. Neil has a great, relaxed and humorous writing style and is definitely worth adding to your aggregator of choice.

Well done Neil, about time nwebb had a facelift :).