I realize I haven't been blogging a lot about what I've been up to in the last few months so thought I'd better get a post out and share some of those things with you.

Cocoon P2P

The open source Cocoon P2P library has been released and got Dirk Eismann on board as a contributor after speaking at FFK11 in April. With his help we were able to take it from more of a proof of concept to a solid solution for doing local IP multicast with the Flash Player (no server required).

We have great support for device discovery, messaging and object-replication. Reworking the video streaming and fixing some bugs on the accelerometer support is still on my todo list for the very near future.

HTML5 Solutions

I've had the pleasure to work on a book called "HTML5 Solutions: Essential Techniques for HTML5 Developers" with fellow authors Marco Casario, Charles Brown, Nathalie Wormser and Cyril Hanquez.

My contribution to the book is on using the Geolocation API - which, if you haven't already tried it - is one of the most exciting features that is starting to become widely available with HTML5.

It turned out - in my humble opinion - to be a very good publication and should be shipping soon. I can't wait to get hold of my author copies and hear reader feedback when it hits the stores.

Mobile Development with Flash video training

Together with Joseph Labrecque I've recorded a video training title for Peachpit called "Mobile Development with Adobe Flash Professional CS5.5 and Flash Builder 4.5: Learn by Video" that is now available for pre-order.

We cover developing for Google Android and Apple iOS with Adobe AIR, ActionScript and the Flex framework from the very start of setting up your application, to using various APIs, debugging and finally submitting it to the marketplace and app store.

I had a great time recording this title in Graz, Austria with the nice folks at video2brain.

Mobile application development

I've been playing around with different mobile platforms - releasing a couple of applications for Window Phone 7, Google Android and Apple iOS as well as the BlackBerry PlayBook.

VAT validator on WP7 and Android

A while back I was giving the opportunity to do some development on Windows Phone 7 and have to admit it was a very nice experience and a solid development platform. Most of all the app submission and approval process was incredible, consistently taking only 2 days and getting detailed feedback on any problems they find - the best I've seen on any curated marketplace so far.

I decided to port the VAT validator app I had built some years back for iPhone in Objective-C in C#/Silverlight and did the same on Android through the Adobe AIR runtime. Also took the opportunity to test ad integration on mobile and made paid and free ad-supported versions to compare how well they do. I hope to share some statistics soon on how that goes and what model is most suitable for developers that do utility apps.

Sanskrit Clock iPad app

I thought it was high time to explore native development on Apple iOS again and see what the app store experience is like since I last tried it in 2008. Approval time has certainly improved and in less than a week after submitted, my Sanskrit Clock iPad app made it on the store.

Not sure how many people are interested in an app like this (aside from the handful of geeky Sanskrit enthusiasts like myself) but it includes optional romanized transliteration of the numerals, a couple of different color themes and a setting to disable the screen lock so you can use it as a clock on your desk or nightstand.

TWiT Live for PlayBook

TWiT Live is my second PlayBook app that lets you watch the live stream of Leo Laporte's TWiT network shows. I plan to add support for play/pause, volume control and switching between high and low quality streams some time soon.

It doesn't look like things are slowing down for me any time soon, end of next week I'm moving to London to start my new job at Google as a Rich Media Flash Developer. If I manage to find the time I'll be delving deeper into native Android development to do some experiments with widget development and other fun stuff.

Onwards and upwards!


Up until recently I wouldn't have bet on BlackBerry becoming one of the most developer friendly and innovative platforms around, but recent announcements around their upcoming PlayBook tablet are very promising indeed. It remains to be seen how things will work out but - based on the hardware specs and apparent renewed effort in terms of UI design and user interaction - there is every chance they will become a serious contender.

Those of us interested in Flash Platform development get full Flash Player 10.1 support and it appears most of the UI of the tablet is built on top of Adobe AIR, so we can expect some solid integration there.

In terms of specs, a 7" screen with a dual-core 1GHz processor, 1GB RAM, front and back facing camera and HDMI out weighing around 400 grams is impressive. What I'm hoping for is equally impressive battery life.

Developers interested can already start writing apps for the BlackBerry PlayBook and test it in their simulator. Even better, RIM has announced if you write an app that gets accepted to BlackBerry App World before the product launch you'll be given a free device. More information about this offer will soon be available.

There is also a weekly webcast series to help you get started, recordings of previous weeks are up on the site.

http://us.blackberry.com/developers/tablet/ http://us.blackberry.com/developers/tablet/devresources.jsp http://devblog.blackberry.com/2010/10/blackberry-playbook-developer-promotion-information/

Exciting times ahead for Flash Platform development on tablets!

2 CommentsPost a comment

It took me a long time to finally get round to it, but have updated the TWiT Live Desktop AIR application and released it as version 2.2. I've also gone ahead and made it open source under an MIT license, so feel free to check out the code and I'm open to having contributors to the project. For those that haven't tried it yet, TWiT Live Desktop lets you watch a live video stream of Leo Laporte's TWiT network shows as well as interact in the IRC chatroom and check out the twitter and other feeds.

A lot of people were having problems with the "black screen of death" in the previous version. Those issues luckily seem to be resolved and you now have the option of switching between the various video streams or even go for an audio-only version (just right-click for those options). You also have a feature to take image captures of the video stream.

Some minor improvements include saving your last video feed, window size and position when you relaunch the application. You can also double click the video to toggle between full screen and normal mode.

Since its an AIR application this runs on Windows, Mac and Linux -- if there is enough interest we can port it to support Android devices as well.

The old uservoice page will be faded out and I recommend people to use the issues page on the Google Code project to file any bugs or feature requests.

Note: the application loads in the default video players from the various streaming services and renders them in the background. This means the controls are not accessible to you. I'm working on having custom controls for the application that work across the different video streams.

I have plans for a 2.5 update in the next month and a 3.0 later on that will include the following features:

  • Controls for changing video feed, image capture etc.
  • Twitter stream widget
  • Volume control and mute button support
  • Production schedule interface (with timezone support)

There is built-in support to "check for updates" so when you have the application installed new version will get pushed to you as they become available.

[airbadge]TWiT Live Desktop,http://twitlivedesktop.googlecode.com/svn/trunk/releases/TWiTLiveDesktop_2_2.air, 2.2,http://www.peterelst.com/blog/wp-content/uploads/2010/09/twit-badge.jpg[/airbadge]

Thanks for everyone's patience waiting for this update, and Leo and the TWiT team for their support. Enjoy the application and look forward to hearing from users on how to improve it further!


Earlier this week I got inspired seeing this presentation on HTML5. I'm a strong advocate of moving towards this standard and with browsers increasingly supporting it, makes it very attractive to start to learn and implement where possible. Contrary to what I'm seeing various tech blogs claim, HTML5 is in my opinion not a replacement to Flash. It will no doubt take over some features for which we used to have to rely on the Flash Player to implement -- and that is a good thing -- but there are still a lot of uses cases where it makes sense to use Flash. Not just that, we can leverage both technologies for what they do best (just as we do now).

After Serge Jespers' blog post this morning and a brief discussion on Twitter I thought I'd blog what I think would be a good move for the Flash Player, adding HTML5 support through an embedded webkit engine.

Adobe AIR has this feature and allows rendered HTML to be integrated completely in the DisplayList and treated as any other visual element including filters, transformations etc. Script bridging allows Javascript to call ActionScript and vice versa.

Why would you do this?

  • Flash Player has limited HTML support
  • Certain popular and legacy browsers do not support HTML5
  • It would give a consistent set of HTML5 supported features across browsers
  • Deep integration of HTML5 content within the Flash DisplayList
  • Flash Player would become a catalyst for HTML5

What are the difficulties?

  • Flash Player filesize
    The Flash Player team is always very concious about download size of the player -- an embedded HTML engine would obviously add significant file size. To address this I'd propose an approach similar to the cross-domain Flex framework caching, where they would only download and cache when first needed.
  • Plugins shouldn't render HTML
    I certainly agree with that in principle and that would also be what you would typically do. In certain situations though it is a pragmatic solution and no different to what Google does with Google Chrome Frame. If you have an HTML5 capable browser and do not need to deep integration with Flash features this wouldn't be used.

Just to be clear, I'm not suggesting the Flash Player to become the standard delivery mechanism for HTML5 content. I see it used in one two situations:

  1. As a reliable fallback mechanism for browsers that don't support HTML5
  2. In situations where you want to integrate HTML5 content in the Flash DisplayList (visual effects etc.)

Taking this even further you could potentially even see Alchemy C/C++ code cross-compiled and applied to HTML5 content hosted through the Flash Player.
Whether or not this is technically feasible or likely to happen, I think it is something worth looking at.

20 CommentsPost a comment

Exciting times if you're working with Flash Platform technologies, the idea of deploying the same codebase to multiple screens is really taking shape and I for one couldn't be happier. AIR already allowed us to go cross platform with desktop apps (Windows, Mac and Linux), obviously the Flash Player allows the same across browsers and now with devices you can run your code on Palm webOS, Android devices and even package as apps for iPhone and the new iPad.

Christian Cantrell of the AIR team did an excellent demo on creating an application that automatically lays itself out based on the available screen real estate.

I'm pleasantly surprised about performance they've been able to achieve, that is one area I honestly had my doubts about but they seem to have pulled it off with flying colors (a testament to Flash Player 10.1 mobile optimization).

While we can argue all day long about Apple's decision not to have Flash Player support in their iPhone OS browser or how HTML5 is increasingly becoming an alternative to Flash -- this to me emphasizes the power of the Flash Platform tools and why it has a bright future ahead.

Thank you Adobe engineers for being lazy! ;)


In case you missed it -- AIR 2 beta 2 is now available on labs.adobe.com and among a bunch of other things there are now some really cool additional printing features that give you a lot more control than what we used to have. Be sure to check out the video interview Ryan Stewart did with Rick Rocheleau, one of the engineers on the core technologies group who made this possible.


CategoriesAIR, Video
2 CommentsPost a comment

There's another new conference coming this year and thats always exciting, but Flash and the City promises to be different. Not only is this the first major Flash conference in NYC in quite a while, its going to be an amazing opportunity to network and meet interesting people. Why so? Well rather than just sit inside and geek out listening to the various sessions, there's something called the "City track" that gets you exploring the "Big Apple" with speakers and fellow attendees. I think this concept could be a real winner, some of the activities you can join in with are:

Even if you don't want to miss any of the speakers and stay in to see all the sessions, there's a 3 hour cruise complete with dinner (and open bar) on Saturday evening included in your ticket.

There's also the Statue of Liberty awards on Sunday evening with a number of categories including "Most significant Open Source Project of the year", "Most influential Flash person of the year" etc. Make sure you get your nominations in before March 31st.

May 13th, the day before the conference there are four different workshops you can attend -- Mobile and Devices, Beginning ActionScript, Flex 4 and AIR 2.0. That last one is definitely one you'll want to attend, AIR 2.0 is some truly mind-blowing technology and you'll learn all about it and get some hands on experience.

I'm excited to be taking the lead for that AIR 2.0 workshop and getting some fantastic speakers on board to help cover all the new features. Don't worry if you're new to Adobe AIR, we'll start out with a basic introduction first and get you going.

So what are you waiting for? Get your tickets now! The way this conference is shaping up, Flash and the City is going to be an iconic event.

CategoriesAIR, Events

Earlier this week I headed to the Adobe DevSummit event in Chennai and was pleasantly surprised of how vibrant the community here is. No less than 600 people turned up and the rooms were absolutely packed. We had some great talks and hands-on sessions by the Indian Adobe evangelists and various people from the community (including Mrinal Wadhwa, Saurabh Narula, Yash Mody,...) presented in depth sessions on various technologies. I did two sessions on Adobe AIR, one of which covers various examples of AIR APIs and you can see some video excerpts of below.

2 CommentsPost a comment

I was very happy to be invited to speak again at this second edition of The ActionScript Conference in Singapore. This year they even made it a two day event at an amazing venue overlooking Marina Bay. I have some video recorded that I'll upload soon. Shunjie and the rest of the team do an amazing job getting this all set up and they're a great bunch to hang out with.

Some personal highlights of the conference were the talks by Alvin Zhang and Lionel Low. Alvin showed some great multi-touch demo's on a touch table he built himself using the Diffused Surface Illumination technique (involves among other things a projector, PlayStation 3 camera and a diffusor). Lionel talked about "Warpspeed Flash" and highlighted various ideas to work smarter rather than harder. Its really great to hear from these local guys and topics that you don't typically see at other conferences.

Was also particularly pleased to finally meet Himanshu Mody of Tekno Point and see my former colleague Arvind Singh again.

My session was called "Getting Creative with Adobe AIR", it was originally a little more targeted at designers but decided to go with some more interesting API examples since the audience this year seemed to be more of a developer crowd.

I was pleasantly surprised about the questions I got and people coming up to talk to me about their projects. I've uploaded my slides and example code for those interested.

I have a few more days in Singapore before flying back to London for Flash on the Beach, going to make the most of it. Thanks again for all the guys working so hard to make this conference happen, hope to be back for the next few editions!


Earlier today at the Flash at the Lake conference here in Zurich, Switzerland I presented my "Introduction to SQLite in Adobe AIR" session. I've done this one a couple of times before but have updated it to include more information on:

  • Database encryption
  • Synchronization strategies
  • Using Data Access Objects
  • SQLite wrapper classes


You can find my slides below, and the demo files are available for download here. Enjoy!


CategoriesAIR, Events
2 CommentsPost a comment

Sometimes I really wish I worked over in San Francisco -- now and again Adobe does these great meet ups, like recently happened with FlashCamp. They've put the video of the presentations online including a keynote by CTO Kevin Lynch and the following topics:

These are some really good in depth presentations that I can highly recommend you check out!

3 CommentsPost a comment

Lee Brimelow has a little teaser up of an interview he did with Dave August, senior developer at OOOii (a company previously known as BlackBox Digital) who worked on the graphics and animations you can see in the latest Star Trek movie. They actually used Flash Platform products like AIR and their own ActionScript 3.0 framework to accomplish this which must have been a great project to work on.

Star Trek movie using Flash Platform products

CategoriesAIR, Video

FFK09 For a moment it looked as though I was going to miss out on this years FFK in Cologne -- the largest German speaking conference covering web products and technologies organized by Marc Thiele and Sascha Wolter of Flashforum.de. This is already their 9th edition and not surprisingly it has completely sold out!

At the last minute I managed to secure a spot (thanks to Marc) in the "Discover the third dimension" workshop on Away3D that Jens Brynildsen is teaching on Monday. I've already experimented with Papervision3D quite a bit but was eager to look into what Away3D has to offer so this is the perfect opportunity.

I'll be sure to blog about to workshop and perhaps share some experiments after I've familiarized myself with the code.
Ganz toll! ;)


Flash at the lake - Swiss Flash User Group Conference.Flash at the Lake is a two day conference organized by the SFUG (Switzerland Flash User Group) taking place at the Rote Fabrik in Zurich, right by the lake side. Confirmed speakers include: Aral Balkan, Mario Klingemann, James Ward and many more.

I'll be doing a new presentation on using SQLite in Adobe AIR hopefully introducing the persistence framework I've been working on for a while now.
  Tickets are for sale now at very reasonable prices: two days of sessions and workshops including lunch will cost you 205 CHF or 135 Euro.



It took me quite a while to get this done but the TWiT Live Desktop 2.0 update is finally available! Here's a little summary of whats new in this version:

  • Live video stream now using BitGravity instead of Stickam
  • Double-click video to toggle between full screen and normal size
  • Right-click video to set it as "always on top"
  • Right-click video to get access to "TWiT interactive" features

TWiT interactive includes the IRC channel, TWiT Army, the Twitter and FriendFeed pages and the production schedule. In the settings tab you are able to set your local timezone, save your username for the IRC chat as well as set the application to launch at startup.

[gallery link="file"]

I'm particularly pleased with this update and hope you will too as soon as its been made available. Really appreciated all the feedback I got over the last few months so please keep it coming!

[airbadge]TWiT Live Desktop, http://twit.cachefly.net/twitlivedesktop.air,2.0,null[/airbadge]

For those wondering since this is an AIR application it will run cross-platform on PC, Mac and Linux. You can install the application through the install badge above or downloading the file directly (in which case you will need to have the AIR runtime installed). Enjoy!

35 CommentsPost a comment

Giacomo 'Peldi' Guilizzoni - photo © Matt Snow
I recently had the opportunity to talk to Giacomo 'Peldi' Guilizzoni -- ex-Macromedia/Adobe software engineer -- about his new company Balsamiq and the hugely popular Balsamiq Mockups application. I've started using Balsamiq Mockups on a number of projects myself and its proven to be a very useful application, definitely worth checking out!

How did you get the idea to create Balsamiq Mockups? Was it the type of application you were looking for yourself or noticed a market for?

First off, let me thank you Peter for the opportunity to answer your questions. I have been following your blog for years! :)

I think the idea for Balsamiq Mockups took shape over the years. As a developer, I had to write many feature specifications, and the more I wrote, the more I noticed that the process we followed had many gaps in it which could be improved. For instance, we would always design a feature on a dry-erase whiteboard first. While this had just the right amount of low-fidelity to encourage discussion and iteration, it was also a bit painful: first you had to go around the office stealing markers that worked, then if you needed to stretch a rectangle you had to erase an edge and redraw it further out, and sometimes the end result was so messy that you'd come back to a whiteboard the next day and were unable understand what the heck that mess of lines and squiggles really meant.

The next step in the process is to transform the whiteboard drawing into a digital form. The product manager on the team, who is ultimately responsible for the feature design, usually doesn't know Photoshop or Fireworks, so the job always ends up in the hands of the designer or the developer. The designer will go straight to Photoshop and spend hours and hours making the mockup pixel-perfect, with nice gradients and transparency everywhere. The developer will often code the feature (again, hours and hours) and take a screenshot when done.

Both approaches are bad news, as the initial whiteboard design is almost never the best one. Then the screenshot has to be embedded in the spec somehow (it used to be a painful ftp process until we started using a wiki as intranet).

So then feature review time comes around, and flaws in the design are uncovered. The designer or the developer (or both), having already spent many hours on the initial design, resist making changes. So you end up with a compromise, which in the end means software that's not as good or usable as it could have been. Everyone loses.

Clearly there was a need for a low-fidelity, fast, collaborative, digital wireframing tool. If it was integrated with the wiki, even better.

I didn't really do much market analysis before jumping in, other than a quick Google search for wireframing tools. The few that I found were either too complex or too crappy, and none integrated with wikis, so I saw a spot. I certainly did not expect Mockups to be such a hit, at all. I got lucky!

Was it immediately clear you wanted to use Flex and AIR for the application given your background or did you also look at other technologies?

I didn't even consider other technologies. Flex is what I know, and IMHO there's nothing better for writing applications such as Mockups (lots of graphics, not a lot of text). I had written the whiteboard for Macromedia Breeze years ago, so I knew I could write a simple image editor again. Plus I wanted my app to work in the browser (to integrate with our wiki), and Flash is clearly a no brainer in terms of penetration.

The choice to port Mockups to AIR came a bit later, during my private alpha/beta program. I thought of making a Mockups AIR app as the answer to the "what if I'm offline" problem, not as my main money-making application. But lo and behold, lots and lots of people still like to buy and install applications on their desktops...working in the cloud via the browser is still something only a few people do. Plus over time I am starting to think that hybrid, "fit client" applications might be the future...Microsoft's "software+services" mantra might actually be right in the end...we shall see.

Clearly Balsamiq Mockups is a great way to work on mockups, how would you compare it to prototyping with lets say Fireworks?

I have to admit that even though Fireworks is my favorite image editing tool, until a few months ago I had no idea you could use pre-made UI symbols to wireframe applications with it - which is bad because it would have saved me a lot of time, and good because I might not have built Mockups had I known... ;)

The problem with Visio, Fireworks and other such tools is that they are designed to let you create ANY kind of diagram or graphic, they are very generic. Mockups' strength comes from its incredibly narrow focus. Take adding a scrollbar to a DataGrid for instance. In Mockups it takes ONE click: the scrollbar is added in the right spot at the right size, and the DataGrid columns shrink a little to make room for it. Try doing that in a generic tool! :)

What do you have planned for the future with Balsamiq Mockups? Are you considering adding support for exporting the mockup to MXML or XHTML, collaboration features perhaps?

Let me talk about code generation first: in short, I'm staying as far as possible from it. I save mockups in XML, so theoretically someone could write scripts to transform my markup to MXML or XHTML or whatever, but it's not a problem I am interested in solving, for three reasons: first off, there are far too many languages and frameworks I could export to, and each is constantly evolving (maintaining the exporters would be a huge headache). Second, I think the "from image to code with one click" holy grail might not actually be attainable: do you know any developers who would happily start from automatically generated code? It's like admitting that the machine is better than you! What about dealing with the roundtrip from image to code and back while iterating on both? Ouch. It's a very, very hard problem, which I'll leave to people smarter than me to solve. Third, and most important: I don't think there's a big pain there. Recreating a UI from a low-fidelity mockup is not where the time is wasted. Coming up with the right design (structure), coming up with a beautiful visual design, and then coding it properly are the real time sinks...laying out controls based on a wireframe is easy enough (in Flex Builder, Interface Builder etc).

As for Balsamiq, I have enough work to keep me busy through 2009 at least. I have some client/editor features planned like the ability to link mockups together (help me design it!), adding support for 'Projects' (i.e. groups of related Mockups), and a host of little improvements here and there like the ability to double-click groups in order to edit their contents.

The bulk of the work though will be server-side. I am working on a hosted subscription-based version of Mockups with collaboration features built in. Then I am working on letting users load and save data to the cloud (think Google Docs, Basecamp) from the desktop app (the hybrid approach again), not to mention the 4 or 5 server-side ports of Mockups to other wikis / bug tracking and content management systems that I have in the pipeline.

Overall, 2009 is going to be so much fun, I'm so excited! I have recently hired my first employee (@balsamiqMarco on Twitter) and it's an awesome feeling, we are definitely still in the honeymoon phase and ready to take on the world! ;)

How did you experience going from Adobe to your own studio developing your own software? Are there things you learned from the old days as a software engineer, do you think you have a different perspective on software development now?

Everything I know about making software I owe to working at Macromedia and Adobe. Ok, maybe not everything everything, there might be a 10% that came from reading lots of business/software books, but you get the idea. I was so lucky to have so many great mentors there, from Jonathan Gay and Robert Tatsumi to Nigel Pegg, Dennis Griffin and many, many others. If you want to be surrounded by nice, well-rounded people who are smarter than you, go work at Adobe.

The transition from Adobe to Balsamiq was not easy. Macromedia was my first real job after school, and 6.5 years is a long time. Leaving was not easy, at all. I loved my job there and loved the people I was working with, we did great work and I was happy to go to work every day. A big part of the decision to leave was personal, wanting to move back to Italy with my family and our toddler. Starting my own company was my dream since college, so I thought it was a good time to give it a shot. So far, I'm having a blast, I'm loving every little aspect of it, from the coding to the customer support.

I recommend it! :)


CategoriesAIR, Interview

I'm happy to announce a new set of intensive one-day courses on Flex, ActionScript and AIR that I'll soon start delivering at Skills Matter in London. During that day you'll get a thorough overview of the technology and some good hands-on experience building various real world examples. Here are the next few teach dates you can register for:

30-03-09 Introduction to Adobe Flex 06-04-09 Adobe Flex for Flash Developers 14-04-09 Beginning Adobe AIR 11-05-09 Introduction to Adobe Flex

More information here: http://skillsmatter.com/go/flex-flash

If you've got any questions about these courses, feel free to get in touch!