Jan5th

Back in the Fusebox groove

The late half of 2008 was particularly busy time for me, and between all the conferences and awards programs, not to mention all the stuff happening in my own business, I didn’t end up having a lot of time for actual coding.

The last few days I’ve had a quiet sit down for the first time with Fusebox 5.5. It’s been an interesting experience and while there’s some things I like, there’s also some things I’m not so fond of. I’m going the No XML route - not because I thought the XML was in some way bad, but because writing ColdFusion code seems more natural when its, you know, in ColdFusion.

Helping me in my explorations were Jeff Peter’s book How to Drive Fusebox 5.5 and Sean Corfield’s Cat Club sample applications. Jeff’s book was handy for explaining all the six billion possible configurations for Fusebox apps these days, and where I had questions that the book didn’t answer, Sean’s sample apps jumped in and showed me things like how the different levels interact with the new CFC circuits and fuseactions.

It’s probably too early for me to be making an sweeping generalisations, but in short: what I like is the implicit circuits, use of Application.cfc, and assigning the results of model operations to variables within the controller (at least when using CFCs for circuits). I was never comfortable with the model layer simply creating variables available in the current request without passing them explicitly back to the controller. This may be a stylistic thing that was possible within FB4, in which case please discount this little gush.

What I don’t particularly like is that there are a number of things that seem rather repetitive and tedious. But I’m sure I’ll work out what’s required and what’s not soon enough.

I read today on Adam Haskell’s blog that he’d taken some time off but is now back working on Fusebox. Which is great news – it’s good to see forward progress, and I can’t wait to see how it will be improved even further.

Dec14th

Frameworks: the new black

It’s probably no surprise to those who read this blog from time to time (when I actually post, ahem) that I’m a big fan of the concept of coding frameworks (a system of common code elements and accepted practices to speed development and ease maintenance of applications). I use Fusebox myself, but there are a ton of great open source ColdFusion frameworks out there and I definitely encourage all ColdFusion developers to check them out and find one that suits their needs.

Consequently, I was very interested to read a recent article by Mark Mandel in the Adobe Developer Center, on the topic of frameworks. Mark has taken the approach of dividing his article into three classifications of frameworks:

  • Model-View-Controller frameworks used to manage application structure and execution (Fusebox, Model-Glue, ColdBox etc);
  • dependency injection frameworks to manage ColdFusion components (ColdSpring, Lightwire); and
  • persistence frameworks or object relational mappers (ORMs such as Mark’s own project Transfer, Reactor).

What’s interesting but maybe not immediately obvious to someone new to frameworks is that a single application can make use of one framework from each of these three classifications. Mark’s article does a great job of explaining the differences between them as well as briefly going over the most popular/well-known frameworks from each grouping.

The large number of frameworks that exist, have active communities, and are being constantly developed and expanded says a great deal about the maturity and growth of the ColdFusion language.

Check it out: An Introduction to ColdFusion Frameworks

Oct10th

What makes a great WebJam presentation?

Nick Cowie, WebJam September 2007

Nick Cowie presenting at a WebJam even in Sydney in September 2007 – thanks to Gary Barber for the photo

As previously hinted at on this blog, WebJam 9 will be held in Perth after the Edge of the Web conference, November 6, at the UWA Tavern.

This will be Perth’s second WebJam event, although a few of the Perth Port80 regulars have had the WebJam experience at other conferences and events on the East coast of Australia. In fact, it will be WebJam number four for Perth developer Nick Cowie, who was a runner-up at the previous Perth WebJam event with his now-infamous “WebSledge” presentation, which poked fun at many members of the audience.

Seeing as he’s such a veteran, I thought I’d ask Nick a few questions which may help those who are thinking of presenting but are unsure what will go down well with the audience.

Do you get nervous? Is it scary up there with everyone looking at you?

Not at all, with a bit of luck half the audience will be people I know, and most would have seen me do more stupid stuff than will happen on stage that night.

The WebJam audiences I have experienced have been very sympathetic, so unless you are doing a blatant sales pitch they will forgive for almost anything.

It is only 3 minutes, so even you have a complete disaster it is over quickly. You can get to the bar and drown your sorrows while the next presenter takes the audiences mind off what happened.

With close to 20 presenters, the worse thing that could happen is you do a very ordinary presentation that gets lost in the noise of the other presentations. A bad presentation is more likely to be memorable and will get your message across.

So give me the good stuff: what’s the secret of a great WebJam presentation?

I see a WebJam presentation as performance art, you have 3 minutes to entertain and inform the audience. So unless there is a real wow factor in what you are talking about/demonstrating, use humour, try to surprise the audience (e.g. add a stupid slide to your deck, use an embarrassing photo/video/audio of yourself, another presenter, well known audience member, celebrity in you demo etc), you could even try audience interaction. But remember it is only 3 minutes, so your presentation need to be fast, furious and punchy.

That certainly makes sense! Any other advice you want to offer?

You have only got 3 minutes, make the most of it. Script your presentation and practise it, get it down to about 2:30 to 2:45, just in case something goes wrong. Then practise it a few more times for good luck.

Be prepared, make sure that everything is preloaded on the computer that will used for the presentation and ready to roll the moment you step on stage. Your 3 minutes is precious, so don’t waste 20 or 30 seconds opening software, typing in URLs, or waiting for websites to load.

Working with live websites is as risky as working with animals or children, so have alternatives ready just in case something goes wrong.

Great content should win, but in the past great presentations with ordinary content have done very well. So polish your presentation.

And finally, have a go. If you have a good idea or work you want to show off, sign up to present at WebJam. Spend a couple of hours preparing and step out on stage that night. It is great fun and slightly addictive!

There’s some excellent advice in there – thanks a lot Nick! Personally, I can’t wait to see what he comes up with next.

I may have put my name down to present with my awesome pal Ben. If we can do it, anyone can do it!

Oct8th

WebStock – or, more great conferences than you can poke a stick at

I had the pleasure of meeting Mike Brown at Web Directions South the other week. Mike is part of the team that puts on WebStock, the New Zealand web conference. I’ve never been able to attend a WebStock event, although I’ve heard many rave reviews.

Mike has just written a post about some changes in the WebStock camp: essentially, Mike and Natasha Hall are “going pro” - they’ve quit their day jobs to concentrate on running WebStock full time. That’s really exciting for them, exciting for the people who get to attend, and exciting for the people who will be given an opportunity to travel to New Zealand to speak (I hear it’s lovely).

Mostly however, I think this development is exciting because it means that the “best practises” web industry is flourishing in a way we would never have imagined back in the early days of web standards. There’s enough space on the Australian/trans-Tasman calendar, and an ever-expanding audience of interested patrons, for Web Directions and its new spin-offs Web Directions User Experience and Web Directions Government, WebStock, the Local Government Web Network conference, and the newest kid on the block, Perth’s own Edge of the Web, of which I am on the organising comittee. That’s a lot of educatin’ going on there, and that’s just the general web audience events. You could also count conferences centered around Flash, Flex and ColdFusion like WebDU and it’s New Zealand sister conference, Web on the Piste.

It looks good worldwide too – Web Directions North has been held twice now in Canada with a third event planned for 2009, and Web Directions East will be happening in Japan at the same time as Edge of the Web.

Edge of the Web’s story is a little different from that of WebStock in that our conference is being put on as a partnership between AWIA (the Australian Web Industry Association) and our fabulous event management company, Red Horizon Events. So while it’s the energy and enthusiasm of volunteers that is planning the format and content of the event, seasoned event professionals are handling the logistics and making sure everything runs smoothly. I think that’s an ideal situation.

So far it’s turning out well – perhaps ask me again on November 8, when it’s all over.

At an rate, congratulations to Mike, Natasha and everyone else who is involved in WebStock, I hope to sample your fine conference experience myself one day soon and I look forward to meeting you again at The Edge.

Oct7th

Kai Koenig on AIR at the Edge of the Web

German ex-pat and current New Zealander Kai Koenig is best known for being a blogger, ColdFusion dude and Flex guru, but in fact, he also has another area of expertise: Adobe AIR.

He’s coming to speak and run a workshop at the Edge of the Web conference in Perth in November, so I thought I’d chat to him about his thoughts on AIR.

Hi Kai, thanks for your time! You’re doing a presentation and a half day workshop on a fairly new technology from Adobe called AIR. What exactly is it, and why is it interesting to web developers?

Hey Kay, thanks for taking the time to interview me *g*.

Ok, let’s maybe start with noting that AIR is not new anymore - it was released by Adobe in February 08 and was floating around in public alpha and beta releases under the code name Apollo for quite a while before that.

Basically AIR is a desktop runtime environment for applications. Think about concepts such as Java and their Java Runtime Environments (JRE) or Microsoft with the .NET runtime on Windows machines (or the Mono project on Linux/OSX) and you’ll come pretty close to the general idea of AIR - it allows you to execute platform-independent code in a runtime environment on your machine.

Ok, I got that - but what’s the point of having another runtime environment then? What does make AIR different and special?

AIR is different for a few reasons. The most important of all - it’s a runtime environment for the desktop that leverages web technology. That basically means that you as a web developer will be able to use your skills in building web applications to build applications that run on the desktop of your user, you can interact with the desktop and therefore bridge into a totally new environment that the typical web developer could hardly reach before. And you would neither have to learn Java nor any .NET platform language to do so - not that I would not encourage you to learn new languages!

AIR really consists of 2 built-in runtimes by having a Flash Player-based part and a Webkit-based part. Webkit is the core HTML rendering engine of Safari and widely used in other browsers, for instance in Nokia mobile phones. It’s actually cool because that means that it doesn’t matter if you’re a Flash, Flex or HTML/JS developer - you can pretty much right away build applications for the AIR runtime and re-use the skills you have.

The two runtimes can even interact with each other. So - it’s possible to build and deploy a Flex application in AIR that uses the HTML engine to render full-blown HTML or vice-verse built a HTML application with JS that uses Flash and Flex. And the best of all is probably that your AIR application will run and behave exactly the same on any platform that the runtime is supported on.

Typical scenarios of interaction with the external world - the user’s desktop - are access to the file system, a full network stack, system notifications, access to the chrome, copy&paste and clipboard data  conversion and imho best of all - a local SQLite database.

That sounds very interesting and it appears that it’s a great opportunity for web developers to bring their applications to the desktop by using AIR. But with all those ways to interact with the user’s machine - what about security? And how do you get AIR and an AIR application to your machine anyway?

There are a few things to be aware of when talking about the delivery of AIR applications and also about security. It’s important to think of an AIR application as any other application. It basically has all the access rights to your system that you provide it with - like any other application on your machine. I would strongly advise everyone to avoid using your machine with administrative or root privileges and install applications - doesn’t matter if those are Java, AIR, native Windows etc. - from a source you don’t know - or even worse - you’ve just downloaded from “somewhere” on the net.

AIR supports the developer in creating a level of trust by allowing to sign applications with a certificate from a trusted third party, such as Thawte. The user will therefore know who the developer of a particular application was and could decide if to trust that person or organization.

The AIR runtime is available from Adobe for free. It’s not open source though as the Flex SDK is. Having the AIR runtime on your machine, you’d be able to run and install any AIR application (they come as .air files).

Then there’s the AIR SDK. The SDK comprises a bunch of class libraries and command-line tools to actually build AIR applications. The SDK is available for free as well.

That sounds awesome, but in the real world, are people actually adopting all this cool stuff? Are there applications in the business, corporate and government arenas?

Yes, they are indeed. Obviously as with any new technology there’s an experimentation and adoption phase. For AIR that meant that I’ve probably seen 5 different Twitter desktop clients with the first few weeks after release, which becomes tiring after a while :)

One of the great benefits of AIR applications is that they seamlessly tie into the net as well as into your desktop. A large use case of AIR is therefore to bridge a gap between online services and the desktop and offline or occasionally connected client world. There are very stunning applications out there to integrate with services like Flickr, Digg and various blog systems.

Overseas banks and stockbrokers have started to provide their clients with AIR applications to provide a comfortable access to their portfolio data. I’ve heard about a large airline in the southern hemisphere going to release an AIR application for their frequent flyers for booking, visual trip planning etc from their desktop and there are also government organizations looking into leveraging AIR as a new way to deploy internal applications to the desktops of their employees.

So what are you going to cover in your workshop? Do attendees need any particular skills? Should they bring their laptops?

Well, the workshop is going to be a technical workshop after all. That doesn’t mean that attendees have to bring laptops, but it will comprise a bunch of hands-on tutorials and experiments that I’d say are just way more fun if people can actually plan with the files themselves and create a small application on their own.

Attendees do obviously not need to know much about AIR. What they need though would be an understanding of web technologies and programming concepts, but a developer who builds HTML-based sites and applications with AJAX would be as able to follow as a Flex- or Flash-developer would. It won’t even be a problem if you’ve never build a web application but you’re working on building desktop apps with Java, C#, C++ or Cocoa on the Mac instead.

After covering the basics, we’ll pretty much jump into some of the more interesting and “special” APIs such as File System access or the SQLite API. We’ll talk about various deployment options, security, certificates and also tooling - most people would prefer to work in some sort of an IDE instead of hacking along on the command line.

One important remark re the required software - I’ll have a few USB keys with the AIR SDK and runtime for the most common platforms and a few other things that attendees could use as a starter kit at the beginning of the workshop.

If you’re an existing Flex developer looking into getting into AIR, I’d recommend using and having Flex Builder 3 installed, people coming from the HTML/JS side of things could have a look into using Aptana as their IDE of choice.

Be aware that I’m an Apple fanboy running OS X, so there’s a good chance that I have installers for various IDEs for OS X with me, but I might not be able to support you with more than the basic starter kit on Windows or Linux :)

Great! Thanks again Kai… Look forward to seeing you at “The Edge” :)

Thanks Kay, look forward to seeing you again soon and meeting all the attendees over there in Perth!

Flickr Photos

ColdFusion Rocks! The T-ShirtLogitech SqueezeboxEl Salvadorian PupusaWOA 2008 wristbandsKatie and KayRachel and CharnyRapseyCharney and Shelley
WDS08

Adobe Ambassador

Full As A Goog

Adobe MXNA

Aussie Bloggers Forum

Web Development Blogs - Blog Catalog Blog Directory



View Kay Smoljak's profile on LinkedIn


About

I’m Kay Smoljak, a partner in Clever Starfish, a web design and development business based in sunny Perth, Western Australia.

I’ve been a ColdFusion developer since around 2000, when I started with CF version 4.01. I’m involved with my local Perth ColdFusion User Group as well as AWIA, the Australian Web Industry Assocation. I write for SitePoint on ColdFusion and am part of the Adobe Ambassador program.

This is my technical blog, where I rant and rave about ColdFusion, Fusebox, and occasionally about web standards, usability, accessibility and search engine friendliness. I also have a personal blog but I cannot vouch for the quality of content found there!

Want to ask something? Email me: kay@smoljak.com.

Categories