Published on February 2nd, 2010 by DannyT. Filed under Best Practices, Development Tools, Flex | 1 Comment
So I was trying to get the latest files for a Flex project recently and I had an error about a missing stylesheet. I of course took the standard approach to fixing this and promptly bitched at the foolish developer who neglected to commit the crucial element… Alas turns out I was the fool and upon doing what I should have done in the first place and checking the logs and repository turns out the file was actually committed already.
So I check the file system, no dice. Do another update, nope. Try synchronizing with repository, nada. Try about 10 more updates on the off chance it will magically work one time, amazingly it doesn’t. WTF!?
Anyway turns out the solution is to do the following:
Right click project select “Update to version”

Choose HEAD, change Depth to “Fully recursive” and tick “Change working copy to specified depth”

Et voila, all files and folders get gotten again, no idea what causes this hiccup but this is much nicer than previous resolution of deleting entire project and checking out again
Published on June 17th, 2008 by DannyT. Filed under .Net, Best Practices, Flex | 2 Comments
I’m slowly getting my head around IoC containers and want to note a few useful links for future reference. As things tend to go in my geeky exploits I read about and learn these ideas from the .net world, who often have picked things up from the Java world, I then try to find out who’s doing similar stuff in the Flex world and am generally not disappointed, which is very cool. So these links below are a mashup of various technologies but should be useful to anyone who has been hearing about
IoC and wants to learn more regardless of language/platform.
The ‘Textbook definition’ by Martin Fowler
Very useful explanation with some basic sample code (.net) by Ayende
Castle Windsor step by step basic intro (.net)
Prana – a Spring-ish IoC Container for AS3 by Christophe Herreman (via jesterxl)
This stuff doesn’t come naturally to me to say the least so if anyone else has any links they want to share feel free to post them in the comments.
Published on April 13th, 2008 by DannyT. Filed under Best Practices, Flex | No Comments
I hope to find some time for a more thorough post on this but there is a new Code Coverage tool available for
Flex<, check out Flex Cover on Google Code:
http://code.google.com/p/flexcover/
Published on April 12th, 2008 by DannyT. Filed under Best Practices, Flash, Flex | 4 Comments
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
). 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.
Published on March 28th, 2008 by DannyT. Filed under Best Practices, Speaking | No Comments
Just to help spread the word, Day 1 of 360 Flex Europe is going to be absolutely free!
If you’re not already signed up go check it out now: Free 360Flex Conference day 1
(If you are already signed up, refunds for day 1 are being issued over the next couple of months).
via Peter Elst
Published on February 23rd, 2008 by DannyT. Filed under Best Practices | No Comments
Nirosh has posted a great introduction to OOP concepts and architecture that attempts to provide a stepping stone for developers towards systems architecture. This article is a great read if you’re interested in, but frustrated by all the OOP best practice terminology and procedures that are flung around in the elite’s blogs and forums.
Read the article over on code project.
I also agree with Nirosh’s comments about the void between the experienced and the interested which is why this is very much in alignment with my upcoming talk at 360Flex Europe where I’m hoping to demystify some of our industry’s latest buzz best practices.
Check out 360Flex Europe.
Published on February 9th, 2008 by DannyT. Filed under Best Practices, Interface Design, UI | 2 Comments
Tony MacDonell of Teknision has a great post over on InsideRIA about The supply and demand of user experience.
I left a comment there but whilst it’s in moderation but it’s raised some more thoughts for me so thought it deserved it’s own post.
Tony writes about how an investment in user experience is driven by supply and demand of said experience. In slow moving uncompetitive markets, this added value of a slick user experience isn’t necessary and therefore is unlikely to receive heavy recognition and investment. You only need to look at many banking systems, trading platforms and data entry software to believe this is the case (N.B. these being slow movers rather than uncompetitive).
Tony also mentions the example of router interfaces as something that blatantly receives little UX attention because it’s more appropriate for router manufacturers to compete on price rather than improving user experience.
The general cycle of things seems to be as follows:
1 – New product enters market, has no competition, focuses on functionality over form, it works, it does the job, reaches x% of market.
2 – Competition appears, attention on products grows, market grows, slice of pie desired grows, product’s prices reduced.
3 – Prices reach lowest reasonable point, value needs to be added, user experience rears its head, flash/flex guy gets a new contract.
This sucks. And in my view is stupid. At point 3 we’re still trying to generate more sales/users/whatever so we try to build desire through improving the product experience. Yet we’re now making less per unit than ever before.
Had we invested in a suitable UX in the first instance the costs of doing so would have been less (I.e. not having wasted time and money on the first iteration crappy implentation), we’d have a much better, more desirable product, we’d have benefited from the additional interest whilst we’re charging a premium and we’d be raising barriers to entry for any future competition.
You could argue the new interface extends the product lifecycle which would otherwise have dropped off sooner but in my opinion the advantages of doing it right first time far outweigh that.
Published on February 6th, 2008 by DannyT. Filed under Best Practices, Flash, Flex, Interface Design, UI, Usability | 1 Comment
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.
Published on January 13th, 2008 by DannyT. Filed under .Net, Best Practices | No Comments
Karl Seguin, a .net developer for Fuel Industries has written an excellent series of posts on modern development techniques. Examples are based on .net and associated open source and commercial tools and utilities but the theory is great reading for any developer.
A lot of what is covered I will be bringing into my talk at 360 Flex Europe and will be referencing and expanding upon in some upcoming blog posts with a Flex/ActionScript slant.
Published on January 13th, 2008 by DannyT. Filed under Best Practices, Flex, Speaking | 2 Comments
360 Flex Europe is going to be happening in Milan, Italy on April 7-9 2008.
I will be giving a talk on Development Best Practices – What are they and which to choose? Which basically, is an attempt to demystify a large number of ‘buzz’ best practices in our industry at the moment.
Like myself, I’m sure many people hear all the terms and have all the best intentions of looking into and following these great new ideals, techniques, tools and processes but realise weeks later they’ve been too busy doing real work and still haven’t gotten around to it. The talk is aimed at those who are not already following these practices but are keen to know what all the fuss is about. Obviously many already do but might wish to come along anyway and join in the discussion/correct me when I’m wrong
.
The overall aim of the talk is to take these concepts and ideals that are thrown around the community as “Must-dos” and firstly, impart an understanding of what each is and then explain their merits and drawbacks and when/when not to implement. Also I’d like to provide enough info for anyone to take their first-steps in the mentioned practices without feeling overwhelmed by everything there is to learn. Due to the time available it won’t be an in-depth hands-on/how-to although there will be code-samples and demonstrations. All of this will be with a Flex bias but there will be a smattering of other related technologies thrown in for good measure.
The talk is still being put together but the current line up of things I’m considering to cover are as follows:
OOP best practices
Design Patterns
Frameworks
Source control
Agile Development
Unit testing
Working with server-side technologies (Web services, Remoting etc)
OR Mapping
Code Gen
…Suggestions? Feel free to comment below if you think I’m missing something important.
There was a lot of good press about last years 360 Flex in the states and all looks good for this year’s in Atlanta at the end of February. Myself and some colleagues will be attending all of 360 Flex Europe so if you’re going drop me a note and join us for a drink. Looks to be a great conference that is great value at $360 so I suggest you go sign up now
360 Flex Europe.