Archive for the 'Conferences' Category

Welcome to The Cloud at Flash on the Beach

Fotb 2008

The session I'm presenting at this year's Flash on the Beach is titled Welcome to The Cloud.

It's on building web applications and RIAs with Google App Engine.

I'm going to cover real-world development with Google App Engine, based on my (ongoing) experiences in developing the web site and conference application for the Singularity web conference.

Technologies covered include the Google App Engine SDK, Python, Flash, Flex, Flash Remoting, ActionScript, JavaScript, HTML, and CSS.

Check out Flash on the Beach.

Smells like Singularity

Godin Needs Singularity

I can't believe I missed this when it first came out (it was probably because I'd just started on the my crazy two-month trip to simultaneously learn Google App Engine, brush up my Python, and build the new Singularity web site):

Brooks Andrus from Techsmith, whom I always end up having a lovely conversation with whenever I'm at a geek conference, wrote about the Singularity web conference a few months back in response to a post by Seth Godin titled The new standard for meetings and conferences. (Brooks, I hope you don't mind that I stole your excellent graphic for the post.)

In his post, Seth states:

If oil is $130 a barrel and if security adds two or three hours to a trip and if people are doing more and more business with those far afield...

and if we need to bring together more people from more places when we get together...

and if the alternatives, like video conferencing or threaded online conversations continue to get better and better, then...

I think the standard for a great meeting or a terrific conference has changed.

In other words, "I flew all the way here for this?" is going to be far more common than it used to be.

I love Brooks's reply:

Seth Godin meet Aral Balkan and welcome to Singularity.

Looking at the comments for the post, I did see a common misconception voiced by several people that Singularity is an online conference. I can see how this came to be, as early on, I was calling it that too. But, as it has begun to take shape, I realize now that it's not an online conference, Singularity is a global web conference.

What's the difference? Here's a quote from the comment I left on Brooks's post:

I just have to clarify that Singularity is not an online conference, it’s a _global_ conference. The big difference here is that we have local conference hubs around the world, some being organized by venue sponsors like Yahoo! and the BBC and others — community hubs — being organized by community groups. People meet up _locally_ as part of a global event.

We definitely use the Internet but it’s our communication medium. It’s what ties all the local groups together. Sure there will be people experiencing and interacting with the conference from the comfort of their own rooms — and some speakers will even be presenting from whichever hotel room they happen to be at the moment — but we are concentrating heavily on having a good speaker and audience presence at the various local hubs. I feel this is essential to the character of the conference.

I truly feel that we are traversing some uncharted terrain here, building the first Conference 2.0, as it were. And I hope that other conferences follow suit because the type of conference we’re creating is environmentally friendly.

Thank you, Brooks, for writing up such a cool post on Singularity.

Ticket sales for the Singularity web conference started yesterday with the launch of our new site on Google App Engine. Tickets during the early bird discount are just $99 (inc. VAT). You can also micro-sponsor the conference for just $199 (inc. VAT). So what are you waiting for? Join us in making history with the world's first global web conference.

Singularity Web Conference ticket sales and micro-sponsorships kick off!

New Singularity Web Conference web site

Tickets and micro-sponsorships for the Singularity Web Conference have started!

Reserve your ticket today!

Details

Tickets cost just $99 (inc. VAT) during the early bird discount. Micro-sponsorships cost $199 (inc. VAT) and include one ticket to attend singularity. You can purchase a micro-sponsorship as an add-on on the tickets page.

This also marks the launch of our new web site on Google App Engine, which I'll be writing more about both here and on O'Reilly InsideRIA in the coming days. I can't wait to share what I've been learning about developing on Google App Engine with you.

A special note for the initial (pre-announcement) Singularity badge-holders

When I first announced Singularity, I didn't tell anyone what it was. Instead, if you put a badge on your web site before it was revealed, I promised that we would have a little "thank you" for you. About two hundred of you put the badges up. It was an overwhelming response. You guys were there from the beginning and I appreciate your support more than you can know. And I want to take extra special care of you.

Update: If you're in this group, please see this post for instructions on how to claim the thank-you present I promised you in February.

To infinity, and beyond!

Yay! The launch of ticket sales is just the beginning. Our focus this year with Singularity is in delivering a solid experience. As such our attention is squarely on creating infrastructure and our guiding design mantra is "form follows function". I feel that the site has strong foundations and I look forward to revealing a couple of simple social features in the coming days. From here on, the site will be evolving constantly.

We are also working with Ayo Binitie and John Dalziel to create the conference application and the conference schedule. Expect updates on those fronts in the coming days also.

New speakers

We have a wonderful line-up of confirmed speakers that we haven't announced yet -- expect announcements in the coming days. And don't forget to check out our excellent group of announced speakers.

Up and running!

I want to say a special thank-you to those of you who have already signed up for tickets and our first micro-sponsors (I announced ticket sales on Twitter and on the Singularity RSS feed an hour ago and I'm so happy that we're having such a strong response from the very beginning.) If you haven't already signed up, I hope you will join us in making history as we launch the world's first global web conference.

Check out the new Singularity web site and reserve your ticket today!

Singularity ticket sales starting this Monday

To give ourselves a bit more time to test things, we're pushing tickets sales for the Singularity web conference to Monday, July 7th.

I also have an exciting announcement to make but that requires it's own post...

SHOCK, HORROR as Aral changes session description for Multi-Mania (or: “Ruling the web: 12 things you must know as a Flash developer in the next 10 years.”)

OK, I couldn't help it. There's so much tabloid journalism going on in our industry these days that it's probably not long before we actually start seeing such titles. I'm waiting for: JEREMY KEITH IN ALIEN BABY CONSPIRACY!!! (all caps and three exclamation marks and all).

So what was I saying again? Oh yes, I've just sent an updated session description to Koen for my talk at Multi-Mania. Don't worry, the Google App Engine stuff is still in there (ooh, Google App Engine, yummm!) But there's more... :)

Here's the updated session info:

Ruling the web: 12 things you must know as a Flash developer in the next 10 years.

Flash has been evolving at a breakneck speed in the last decade but the rest of the web has not been sitting idly by either. Quite on the contrary, there is a revolution underway in how web developers are building applications for the World Wide Web that is redefining the limits of traditional web development and hurtling it on a glorious collision course with Flash. So much so that I predict that in the next ten years we will see a merging of these worlds. Are you ready for this brave new web?

Join Aral for a whirlwind tour of 12 things that you must know as a Flash developer if you want to understand, survive, participate in, and help shape the future of the web.

Topics covered include HTML, CSS, web standards, progressive enhancement, accessibility, HTTP, RESTful interfaces and beautiful URIs, APIs, Python (the new BASIC), scalability (entering the cloud), the rise of the commodity web and Google App Engine, and best practices for Flash and Flex development with The GAE SWF Project.

Warning: Expect a flying pig.

I'm psyched to hear that over 300 of you have already signed up to attend. Multi-Mania is always such a wonderful experience -- I can't wait -- it's going to be a blast!

Singularity web conference speaker spotlight: Tim O’Reilly

Tim o Reilly speakering at the Singularity Web Conference

I'm honored and humbled every time I look through the list of stellar speakers we have confirmed to present at the Singularity web conference. As such, I want to take a moment every week to highlight a new speaker, starting this week with Tim O'Reilly.

I had the honor of meeting Tim several years ago during a talk he was giving in London on the Open Source Paradigm Shift. In his talk, Tim predicted the mainstream commoditization of the web. Four years later, we stand as witnesses to the birth of the Commodity Web with Google's release of Google App Engine. (Simon Wardley, recently chronicled this very subject with great eloquence at his keynote speech at XTech.)

Several years later, I was in an elevator at the Venetian hotel in Las Vegas, heading to watch the keynote. There was one other person in the lift with me and I turned to ask him if he knew where the keynote was (the Venetian is huge). He told me that he was heading over there too and that I could follow him. Looking closer, I recognized Tim (he had a beard that hadn't been there in London) and re-introduced myself. Only later did I realize that Tim's conversation with Bill Gates was to be the highlight of the keynote. I guess it made sense that he knew where the keynote was after all.

Tim O'Reilly truly doesn't need any introduction. He is, of course, the founder and CEO of O'Reilly -- the most highly-regarded computer book publisher in the world. He is a true visionary who has both predicted and helped craft the state of the art on the world wide web -- not least by coining the term Web 2.0 to describe the social web of open data and applications that the World Wide Web has evolved into. (Few memes have had such lasting mindshare on the web today as Web 2.0 has.)

Find out more about Tim and our entire line-up of stellar speakers on the web site for the Singularity web conference and read Tim's thoughts on his blog.

The Singularity web conference is everywhere October 24-26, 2008. Tickets are scheduled to go on sale this month at $99 to coincide with the launch of the new web site on Google App Engine.

XTech, Singularity, and AMEE

In the last few years, I've been making a very conscious effort to attend and speak at a variety of conferences both within the Flash world and in the greater world of web development, web standards, and open source. This has meant that in the last year or so alone, I got to opportunity to present to plethora of different audiences at conferences as diverse as MacWorld, Wizards of OS, Flash on the Beach, and d.construct. XTech, however, was very different to any of my previous conference experiences and I have to thank Jeremy for suggesting that I speak at it. (Jeremy also live-blogged several of the sessions from the conference and you can find several of the session slides online at SlideShare.)

XTech, at its birth, was a conference about XML. Although, as I understand it, the focus of the conference has shifted somewhat in recent years to embrace other web technologies and the crazy/sexy world of Web 2.0. Shifts in focus notwithstanding, I still had the pleasure of meeting and conversing with delegates from a variety of interest areas that I hadn't had the chance to at previous conferences, from people who make dictionaries to government representatives.

XTech was an intimate, and very geeky. After several days, I had learned heaps simply by conversing with the wonderful people I met and my brain was aching. Needless to say, I'm very happy to have taken part and I want to take this opportunity to thank Edd Dumbill of expectnation for organizing it and having me as a speaker.

During the conference, I attending a series of excellent sessions, starting on the workshop day with Simon's excellent tutorial on JQuery. Simon is one of the brightest minds I know and, as is sometimes rare in such cases, he is also an excellent and engaging presenter. To summarize what I got out of the session, if you're doing JavaScript, you could do far worse than to use JQuery! I know which JS library I'll be using from now on. (It has a very simple and consistent programming model, is hugely practical, extensible via plugins, and it handles all sorts of browser incompatibility issues for you behind the scenes. It's also lightweight and I'd urge ActionScript developers to look into the code for inspiration in taking advantage of the dynamic nature of ActionScript.)

The first day of the conference kicked off splendidly with Simon Wardley's amazing keynote presentation. Wow! I was in awe of Simon's presentation and I'm not too often in awe (for a list of other speakers that have blown me away with their presentations and their unique presentation styles in the past, see the speakers list for Singularity. I kid you not, first-hand experience is my main criterion when selecting speakers). Presenting is part performance, part teaching, part stand-up comedy and Simon masterfully blended all three. And, I'm honored that he has kindly accepted to present a session at Singularity. Don't miss it! :)

I also finally got the chance to meet one of my heros, Douglas Crockford, in person. Douglas is, of course, the creator of JSON, the native data format for JavaScript which, among other things, inspired me to create SWX last year.

He is also one of the best JavaScripters I know. Douglas groks JavaScript. He really does.

I've been programming ActionScript for close to a decade now and, during his talk, I learned several _fundamental_ concepts that I hadn't even thought of. Needless to say, I feel that every ActionScript developer needs to hear Douglas talk. And, I've been immutably excited ever since he graciously agreed to present his session at the Singularity web conference.

(Expect more speaker announcements for Singularity in the coming days. We've actually got more confirmed speakers than I've had the chance to announce on the conference web site.)

I'm also very happy to announce that AMEE, the world's energy meter, will be supporting Singularity as a technology partner and we will be using their carbon data and calculation technology to visualize exactly how much carbon Singularity will be saving by not having thousands of people fly out to a single location to attend the conference.

I was psyched to meet AMEE's founder, Gavin Starks. We share the same concerns about the environment and what AMEE is doing is of fundamental importance to the future of humanity. Gavin gave a riveting and informative talk at XTech and I'm delighted that he will be presenting at Singularity also. His call to action is probably the most important there has been in the history of mankind: We only have one planet and we need to start treating it better if we want it to continue being habitable.

I am happy that Singularity, in its own small way, will help to lead by example to prove that online conferences (global conferences?) are a successful model. And I hope that others will emulate our success in the future. The carbon savings alone in a shift towards global/online conferences will be phenomenal when you consider the number of conferences across the globe that take place annually. I envision a future where global conferences like Singularity will be the norm rather than the exception.

I'm heading back to the UK in a few hours and I can't wait to throw myself back into developing the new Singularity web site which I will be launching this month on Google App Engine, along with ticket sales. We are also going to be announcing our stellar line-up of sponsors in the next few days. Needless to say that I am exceptionally excited and humbled by the magnitude of support we are getting from everyone. Words can't express my gratitude or how blessed I feel to have such amazing friends and colleagues around me.

The GAE SWF Project

The GAE SWF Project: Knowledge and tools to help you build Flash and Flex apps on Google App Engine

Today I'm releasing The GAE SWF Project, a resource of Flash and Flex-related knowledge specifically aimed at getting you up and running quickly with Google App Engine. If you want to skip all the details and start playing with it, skip to the Getting Started section.

Everyone else, read on!

When Google announced Google App Engine last week, I couldn't believe what I was hearing. It was as if someone had said, "Hey, Aral, tell us what your perfect development environment is and we'll build it for you."

In recent weeks, I had started playing with Python and Django and experimenting to see whether I could use it to build the web application for the Singularity web conference that I'm organizing at the end of October. Turns out that I could not have picked a better time to invest in learning Django and brushing up my Python as Google App Engine is heavily influenced by (and supports) Django and is written in Python.

A framework for the Singularity Conference

Singularity is shaping up to be a really great conference. I'm honored to have a constantly-expanding stellar line-up of speakers and yet the sessions are just one very important aspect of the conference. I find that you get as much out of your social interactions with speakers and other attendees at conferences as you do from the sessions. And Singularity is no exception.

The Singularity conference application is not something you will login to on October 24th and never visit again beyond October 26th. On the contrary, I plan to launching the application as early as possible and add features as we go so that we can start building the community around the conference. This is essential for the organization of the local conference hubs, for building friendships months in advance of the conference, and so that you can influence what the conference ultimately becomes (you do not have to attend the conference to join the online community.)

When I initially announced the Singularity conference two months ago, I stated in the About page that Singularity would have a "focus on open source, the community, and on giving back."

Today, I'm taking the first step towards delivering on that promise by releasing the initial underpinnings of a framework that will eventually power the Singularity conference web application. I present to you The GAE SWF Project.

The GAE SWF Project

The GAE SWF Project (hey, Google chose the name, I only provide the juvenile attempts at humor) is a resource of Flash and Flex-related knowledge specifically aimed at getting you up and running quickly with Google App Engine. The initial release contains a proof-of-concept Flash 9 client showcasing a pre-alpha version of The GAE SWF Framework. The framework is a very light-weight combination of Python and ActionScript 3 that uses some of the best open source components available today on the Flash Platform and Python ecosystem. It is inspired at its core by best practices and a pragmatic approach to application development.

The proof of concept (and, indeed, the whole project) specifically targets Google App Engine. This is by design. The framework is not a generic one (although, by all means, feel free to get inspired and port it if you wish). The dedicated focus is part of the appeal. It means that we can make things simpler.

There will be no abstraction for the sake of abstraction and no premature abstraction; the framework will evolve by encountering real-world problems and solving them.

Finally, keep in mind that you are viewing the fruits of three days of work at the moment (this, in itself, should be testament enough to how easy -- and fun -- Google App Engine makes development). It is early days but I feel that we've made a good start. I hope to hear your thoughts and feedback in the comments.

The Proof of Concept

The proof of concept is built on Google App Engine using Google's webapp framework.

It showcases several fundamental architectural considerations, the most important of which I've outlined for you below.

HTML and Flash in a tree...

You use handlers in app.yaml to host a mix of Flash and HTML content, including the Flash Remoting gateway, in a single Google App Engine app.

Embed Flash content using SWFObject

SWFObject is the way to embed Flash and Flex applications in your HTML. Use it. 'Nuff said.

Deep links

You implement deep linking using a combination of server-side Python and SWFAddress so that both SWFAddress-style and regular URLs are supported. Regular URLs are translated to SWFAddress-style hash/anchor URLs on the server.

Thus, both of the following URLs are valid ways to reach your profile page on the proof of concept Flash 9 client:

Regular URL:

http://gaeswf.appspot.com/examples/initial/profile

SWFAddress-style URL:

http://gaeswf.appspot.com/examples/initial/#/profile

Flash content that obeys browser text-size changes

Users with poor eyesight or in environments with reduced-visibility (such as bright sunshine outdoors) may want to increase the size of the text displayed in the browser. By default, Flash and Flex content does not react to these text-size changes. However, it is possible to make Flash content obey browser text-size changes and the proof of concept implements one such method that does not involve any alterations to the Flash app.

(You can read more about similar issues -- and see some juicy Flash myths debunked -- in my review of the talk I gave at Highland Fling this month titled Bare-naked Flash: Dispelling myths and building bridges.)

PyAMF

PyAMF is a Flash Remoting implementation for Python. It has a dedicated and responsive group of passionate developers working on it, led by Thijs Triemstra, Nick Joyce, and Arnar Birgisson. On Tuesday, the team released PyAMF 0.3 with support for Google App Engine.

The GAE SWF Framework uses PyAMF as a core component to communicate with the server and the various Google App Engine APIs. It is currently running PyAMF 0.3.

The PyAMF gateway is setup as a regular mapping, and mapped to /gateway in app.yaml.

Users API

You use the Google App Engine Users API to login and out of the Flash application. The current Flash 9 proof of concept implements one of three possible ways of handling logins (see the note in my earlier blog post about the other two ways.)

Intelligent forwarding after login

When you hit a deep link in the application without logging in, you are automatically forwarded to the link after you login. This is a behavior that you are accustomed to seeing (and expect) in HTML-based applications but I have rarely seen it implemented in Flash and Flex applications.

DataStore API

The Google App Engine DataStore is a massively scalable database based on Google's Bigtable (the same distributed database that powers their search and services like Google Earth).

The proof of concept has a profile section where you can fill in your name and a URL (the Users API currently does not provide your GAE app with the user's name, just their email address). This data is saved via PyAMF and the DataStore API.

(All server-side services are in the /services package.)

Client-side and server-side validation

The Profile Screen shows you how to implement two different types of validation: simple client-side validation and server-side validation.

The Name field performs simple client-side validation that stops the user from submitting the form without entering a name.

The URL field, on the other hand, actually hits the server and asks the DataStore to verify that the URL is valid. When you think about it, it makes sense to use server-side validation code to validate more complex data types using the exact same code that the DataStore API uses.

The user experience is managed via visual cues that are carefully scripted using the excellent KitchenSync AS3 sequencing library by Mims Wright. (Mims just added me as a project member so I can contribute a small update I blogged about earlier.)

(I'm still working on tweaking the timing of the type wait duration for firing the server-side validation code to make it as seamless as possible.)

As the framework develops, I know that the KitchenSync library is going to be an essential, core element, and I look forward to contributing back as much as I can to the project.

Mail API

The proof of concept also makes use of the Google App Engine Mail API to send email confirmations to your Google Accounts email address after you update your profile.

When initially working with this, I was searching for a simple way to monitor the mail that was being sent from the app. Although the Development Web Server allows you to specify an SMTP server when you start it, I couldn't get it to work with either GMail or my web host's mail server. And setting up sendmail or postfix was a pile of worms I didn't want to sample.

Instead, I found a simple, open source SMTP server written in Python that's perfect when developing locally with the Development Web Server. It's in The GAE SWF Project app that you can download. To start it, simply change to your The GAE SWF Project folder and type:

./monitor_mail

You will see all email sent from your application in the Terminal window. (Note: I run on a Mac and all the commands in this article are meant to be run in Terminal on OS X. You may need to tweak them slightly for your operating system of choice.)

CSS, etc.

I may introduce myself as a Flash Developer but that doesn't mean that I don't care about the rest of the web. With good friends like Andy Budd, Richard Rutter, Paul Annette, and Jeremy Keith living almost a baseball-bat-wave away from me, I'd be scared silly implementing a new site with anything less than pristine markup. So that's what I've strived for here and I hope I've at least come close. (I did use one <br/> tag, for which I feel very dirty indeed!)

Nearly all of the credit for the CSS goes to the excellent YUI Grids CSS library that Rob Knight clued me into via Twitter last week when I was battling with altering the K2 theme on Singularity to make it into a cross-browser three-column fluid layout.

(The scale9-esque fluid download cell is courtesy of the even more rounded corners with CSS technique.)

The HTML content is structured using several Django templates, which are supported by Google's webapp framework.

Finally, the Flash client uses the TabBar component from the open source Yahoo Astra Flash components and Uza's AS3 Global Object to implement several global convenience properties (like the current SWF's URL).

Getting Started

Getting started with The GAE SWF Project couldn't be easier.

1. Download and unzip

First off, download the Google App Engine SDK (includes the local Development Web Server and webapp framework.)

Next, download the latest release of the The GAE SWF Project and unzip it.

(Or, you can check out the unstable, bleeding-edge version from The GAE SWF Project Subversion repository's trunk on OSFlash.)

2. Start the server

Open up Terminal and navigate to the folder you unzipped The GAE SWF Project to. To start the Development Web Server type:

./start

This is a convenience script that I made that starts the Development Web Server and sets the mail server as localhost:5000. You can change these in the script of just use dev_appserver.py . to start it up without mail support.

If you want to monitor the email that gets sent, open up a separate Terminal window and, in The GAE SWF Project folder, type:

./monitor_mail

3. View the app and start hacking!

Now that the app is running, view it in the browser by hitting http://localhost:8080.

You can now open up the source folder and start exploring!

Trace you, trace me, trace it for always...

Wow, did I just paraphrase Lionel Richie?

Anyway, I find it useful to tail the Flash trace log (especially to see trace results in the browser and online). Here's how you do it:

Before you start, you need to enable logging by creating a file called mm.cfg in /Library/Application Support/Macromedia.

In it, enter:

ErrorReportingEnable=1
TraceOutputFileEnable=1

You only need to do this once. After that, whenever you want to tail the log, open up a new Terminal window and type the following, replacing USER with your home folder:

tail -f /Users/USER/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt

Play, enjoy, share, have fun!

As I state on The GAE SWF Project site, I hope that this open source effort will help you to get started quickly with building Flash and Flex application on Google App Engine. In the past few days, I have had more fun developing this than I can remember in a long while. I love Python, I love Django, I love Google App Engine, and I love Flash and Flex. To have them all together... well, that's a dream toolset, right there!

And, there's something to be said about writing your app and then letting Google handle the rest. Personally, I can live with that.

(Oh yes, and I do desperately need to talk to someone at Google about hosting the Singularity conference web application on Google App Engine with regards to the quotas -- if you know whom I should contact, please either let me know directly at aral {at} aralbalkan(.)com or leave a comment below -- thanks!)

The GAE SWF Project is currently a proof-of-concept; it's a three-day old baby that I hope will blossom into a useful resource.

I hope you you enjoy it and I hope that it makes your life a little easier or at least gives you food for thought.

Play with it and let me know what you think in the comments.

Bare-naked Flash: Dispelling myths and building bridges

Bare Naked Flash Splash

As I mentioned previously, I gave a new talk titled Bare-naked Flash: Dispelling myths and building bridges at Highland Fling this week. What follows is a comprehensive live-blog style commentary of the session with slide highlights.
Continue reading 'Bare-naked Flash: Dispelling myths and building bridges'

Bare-naked Flash at Highland Fling

I presented a new session, Bare-naked Flash: Dispelling myths and building bridges, to a roomful of Scottish web designers and developers in Edinburgh today at the Highland Fling conference.

I love this city; the architecture, the vibe. It's my second time in Edinburgh and I wish Stephanie and I could stay a few more days but Singularity beckons.

Alan White, Highland Fling creator and Very Cool Person™, has been taking wonderful care of us and a lovely time was had by all at the conference today. Paul Boag did an admirable job as master of ceremonies and the conference format worked wonderfully (each session was followed by a 10-15 minute relaxed interview and Q&A).

We're flying back to Brighton tomorrow evening and then it's back to work on Singularity for me. I have quite a few Singularity-related announcements to make this month and things are really kicking off!






Bad Behavior has blocked 0 access attempts in the last 7 days.