Search Results for: flash media server

One of the key features of Beats Per Mile was the ability to listen to a ‘stream’ of Gemma’s iPod playlist, enabling you to hear exactly what she was listening to whenever you logged on.

We didn’t actually have a stream broadcasting from her iPod of course, rather a stream playing from the site that was synchronised with her start time.

We planned on using the SoundCloud API to do this and it was one of the last thing left to build before race day.

Part of the playlist was curated by friends, donated tracks with sentimental value or just old favourites for a personal touch and to provide an extra kick of motivation.

Asking a lot of people for contributions meant that the playlist wasn’t finalised and mixed until very late on — Saturday evening.

I created the player using the SoundCloud Player Widget in preparation for the tracks hoping that the player would be ready before they were uploaded.

It’s a Javascript-enhanced Flash Widget which uses Actionscript’s ExternalInterface to expose method handlers and control playback via a in-built API.

Unfortunately this meant it wouldn’t play on the iPhone. SoundCloud do offer a HTML5-based Custom Player (which falls back to Flash), but we didn’t have time to fully investigate wrangling together a player from scratch.

SoundCloud Content Identification

This would be shortly be rendered irrelevant when we discovered that it is now nearly impossible to upload any copyrighted songs, or tracks containing any samples of copyrighted songs, to SoundCloud. We also discovered that they’re very, very clever in how they go about detecting them.

Here’s what they wrote in January:

Starting in the last few weeks we’ve turned on an automatic content identification system, similar to those used on other major media sharing sites. The system is used primarily for identifying audio that rightsholders have requested to be taken off SoundCloud. This is good news because it makes it easier for artists, labels and other content owners to control how the content they’ve created is available. And when you upload your own audio to SoundCloud, we can find out more quickly if somebody is uploading a copy to their own page without your permission.

SoundCloud have always has the right to remove audio deemed in violation of rights as stipulated in their terms of use. They also host plenty of mixes and DJ sets as many other similar sites do.

When we tried to upload ours though, nothing would work. None of our mixes were authorised and the refusals would come after spending considerable (precious) time attempting to upload them.

SoundCloud are essentially performing some kind of wave form analysis, comparing uploads to audio already in their databases to detect duplicates.

Alternatives

There are a few ropey ways to (possibly) slip the net, such as adding a layer of low-level noise to distort the wave form or apply an amount of time-stretching (which was happening anyway, as songs were mixed together).

Too much of either would ruin the music. We were running out of time and didn’t want to risk any hacked attempt being found later and removed, perhaps mid-marathon in a worst case scenario.

So I began to an attempt to recreate the widget, from scratch after all.

I looked at the Yahoo! Media Player, which is actually suspiciously similar to SoundCloud’s Widget API. The methods are almost exactly the same, but I had trouble handling multiple files — it really wasn’t anywhere near as easy to implement.

After browsing for alteratives I eventually found JPlayer, a very simple and easily customisable JQuery plug-in. This would also mean we’d be iPhone-compatible.

It also meant that the files would need to be hosted ourselves, on a normal server, rather than letting SoundCloud handle the load — another reason for our initial choice. We actually ended up serving 7.68GB of streamed audio, fortunately my host is very stable and it didn’t end up being a problem.

When visitors landed on the page the player would calculate how long the run had been in progress and therefore where you should be in the playlist. The idea was to give no controls, other than mute, the playback would always be synchronised.

Rather than upload all the songs individually, the playlist was divded into five 30-60ish minute tracks and would be easier to navigate.

Once the player determined what track you should be on and where within that the playhead should be, it begins to buffer. Annoyingly, you could have been waiting some time. If the tracks were on SoundCloud’s giant servers then the audio would be properly streamed, but not from mine.

The wait entirely depended on when you happened to arrive, for some it wasn’t a problem. Say you luckily arrived at the page needing only to jump in five minutes on the current track, you’d have a small waiting time. If the jump was twenty-five minutes, then start twiddling your thumbs.

There wasn’t a wait when the player switched between tracks. If a track was paused, the player would record how long for and resume at a later point — where the playhead would otherwise be if you hadn’t paused, not where you left off.

This also took into account track changes if you paused toward the end of a track or paused for more than the duration of an entire part.

Back to the Cloud

SoundCloud have an obligation to artists and labels and choose to be very strict in authorising uploads that aren’t your own. I’ve wondered how copyright works for these sites, Mixcloud for example host countless mixed songs and sets.

Mixcloud in fact is where you’ll now find the mixes saved indefinitely, without complaint, on Gemma’s page.

Have a listen!

Marathon Mix – Part One
Marathon Mix – Part Two
Marathon Mix – Part Three
Marathon Mix – Part Four
Marathon Mix – Part Five

In July, Google announced their plan to develop a lightweight operating system based on their successful Chrome browser. Intending to be open source, speedy, secure and simple, this would be their attempt to re-think the operating system as Chrome previously ‘re-imagined’ the browser.

It was Google’s aim to get users from start-up and on to the Web in a matter of seconds.

The Chrome OS would be the kind of system targeted at Netbooks, catering for the modern generation of computer user for whom the majority (if not all) of interaction takes place on the Web.

The OS would pretty much just be a browser in fact. All the user’s applications and data would (and would have to) be stored in the cloud; as stateless data and Web-based apps.

With that in mind Google could completely go back to basics and redesign the underlying security architecture of an OS. Because it was their plan to run everything ‘in the browser’, the underlying system would no longer need the capabilities of a normal operating system, for example, the ability to install applications or the need for security precautions to handle them. There is also no file storage, so you wouldn’t even need any real kind of storage space or file system in the traditional sense.

This all results in the user never needing to deal with viruses, malware or updates for applications or their security system. It also means the OS will be up and running in seconds of booting up – and thus, ready almost immediately to get on to the Web.

A couple weeks ago, Google held a special event announcing the official release of the product and previewed some of the features on a live webcast (covered by TechCrunch and ReadWriteWeb).

They followed it up with a short introductory video explaining some of their decisions and what users can expect in the full version:

Their YouTube channel also has a recording of the announcement and the audio of the Webcast is archived here.

As part of that announcement Google publicly released the code to the open source community and called for contributors to engage with their developers and start working with the code.

If you’re interested in doing that, the Chromium wiki has a how-to on getting and building the source and TechCrunch wrote up a step-by-step guide to getting started.

This also meant that you could download and build the source to have a play, so I thought I’d give it a go.

Getting and Installing Chromium OS

TechCrunch’s coverage has a guide to running the Chromium OS on a virtual machine, essentially software that replicates the behaviour of a standalone physical machine. This means you don’t have to install this OS instead of your native system or worry about any operations performed by Chromium affecting your current platform, it’s running in a secure sandbox.

They link to two disk images, one built by GDGT (which requires a free registration) and a Pirate Bay hosted torrent file.

At the time of this writing, the torrent file and image is considered to be safe, though as Jason Kincaid writes, this could at some point be re-written to be unsafe.

Now although it’s obvious, I’ll point out (as the article does) that this is a very early release of Chromium, so isn’t as near fully featured as that we’ve seen demonstrated. That version too is itself unfinished. This build has also not been put together by Google.

Neither is this intended to run on a virtual machine, so you won’t get anywhere near the performance that you would for real. This is the usually the case for any system running on a VM, but because pretty much the whole deal with Chromium is the speed, what we’ll be seeing should not be considered ‘as is’, it just a method to give you a bit of a sneak preview instead.

Using VMWare

Usually, VMWare Player is my preferred choice for virtualisations. However the build comes as a VMDK file and VMWare Player runs from a VMX file. The VMDK file is the appliance, the VMX file is a descriptor (processing instructions that the Player relies on).

VMX files are easily written in a text editor and I found an example which I modified to run as part of my development environment, which follows below.

Simply save this file as VMX format and run it from VMWare Player:

.encoding = “UTF-8″
displayName = “Chrome OS”
guestOS = “other”
memsize = “1024″

ethernet0.present= “true”
ethernet0.startConnected = “true”
ethernet0.virtualDev = “e1000″
ethernet0.connectionType = “bridged”
ethernet0.addressType = “generated”
ethernet0.generatedAddress = “00:0c:29:cd:8d:e6″
ethernet0.generatedAddressOffset = “0″

usb.present = “true”

sound.present = “false”
sound.autodetect = “true”
sound.virtualDev = “es1371″
sound.fileName = “-1″
sound.startConnected = “true”

ide0:0.present = “true”
ide0:0.fileName=”chrome-os-0.4.22.8-gdgt.vmdk”
ide0:0.deviceType = “disk”
ide0:0.mode = “persistent”
ide0:0.redo = “”
ide0:0.writeThrough = “false”
ide0:0.startConnected = “false”

virtualHW.version = “3″

config.version = “8″

floppy0.present = “false”

Depending on your settings, you may have to change the ethernet0.connectionType to “nat” and the ide0:0.fileName to your VMDK filename – if you got the torrent version, that will be “chromeos-image-999.999.32309.211410-a1.vmdk“. I also gave it a little more memory.

Using VirtualBox

TechCrunch recommend using VirtualBox, a cross-platform virtualisation. VirtualBox can run straight from the VMDK so don’t worry about a VMX file – just follow the instructions.

First Impressions

Initially, everything is a bit sparse and you may wonder if you’ve done everything properly (have a look at the screenshots below), but this is just a reminder that what we’re playing with here isn’t ready at all – the video demo is a far more polished version than this and we’ll keep that in mind.

Chrome login screen Chrome boot screen

When it gets going though, we start to see some of those familiar features.

There’s the application menu, not a drop down menu in our version but a ‘pinned’ tab – the drop down must have been put in later.

I started to play with some of the apps, they’re exactly the same here as they are on any other platform – they work completely as they should – Google’s Calendar, Docs and Reader to name a few.

Chrome application menu Chrome Calendar

Saying that though, why wouldn’t they? These ‘apps’ are just the webpages we’re used to, actually you’ll see exactly the same as visiting ‘http://www.google.com/mail‘ and ‘http://www.google.com/reader‘. There is zero difference, just like visiting ‘Amazon.co.uk‘ works plenty fine too.

The fact they’re called ‘apps’ is just semantic thing, just a way of thinking about them as products launched from some kind of desktop-analogy, rather than destinations found at the end of a search engine. I’ll come back to this later.

Then I started to play with the apps that launch in ‘panels’ – the first hint of something that looks native to Chromium.

There’s appropriations of the Calendar again and Google Talk.

Chrome Calendar in panels Chrome Chat

But then the illusion was slightly shattered when I notice ‘View: Mobile’ link at the bottom of the calendar and chose to click ‘Desktop’, which just showed just the other Calendar view (the first one, above), all displayed in that little window with scrollbars – because, again, it’s just a Web page we’ve loaded here, but in a custom view.

The chat is pretty much the same as the Google Talk, and includes voice chat.

This was actually a bit disappointing, of course I know that the Chromium OS is pretty much just Chrome and that everything is a Web page really, but I expected these apps to have detected that I’m visiting on the Chromium OS and serve a more tailored interface. I wanted some kind of dedicated experience basec on the app knowing that I’d be seeing everything through one of these panels.

Having said that, the Chromium OS project site has a whole section dedicated to the User Experience, which describes the ‘motivations, assumptions, and directions’ behind the interface design. It shows much of their work in-progress.

On their screenshots of the latest version, these windows seem to be more developed, the chat doesn’t have the default controls and there’s a notification panel that looks like it nicely ties up the application in some kind of native Growl equivalent – see here.

By the looks of it something like that could be achieved as simply as combining RSS and Javascript (maybe it does – it’s all Web pages remember), but putting it in a custom panel, presented in custom ‘chrome’, would give it a lot more strength and me more confidence.

The majority of the links from this application menu, in fact, are just to Web pages, rather than apps in these custom windows.

One of them links to a straightforward enough Chess game, demonstrating Chromium’s support for Flash. It comes with Flash Player 10.0.32.18 installed (currently the latest stable release) and it runs just fine.

Chrome Flash support Chrome Chess

A new paradigm

On the idea of using only Web applications, looking at Web apps versus desktop apps, I think for a long time people have been wary of becoming completely dependant on them.

When I say ‘Web apps’ here, I don’t mean everything that you could consider to be an app or just any kind of RIA, arguably any ‘site’ is or could be ‘an application’. Instead I’m going to refer to the purely stateless apps, where the software, user settings and data are all stored somewhere in the cloud – on a server somewhere as opposed to the user’s local machine. Here I’m referring to the kinds of Web applications that are direct parallels of popular desktop apps, think the likes of the Google Docs suite.

For example, I know of a few people who dabble with Google Documents (Google’s word processor), but won’t use it exclusively over Microsoft Word, they use it for the odd document or quick note but not anything of length or real importance. Likewise with Google Spreadsheets as a possible choice over Microsoft Excel.

I think Spreadsheets is a different game, Excel is really quite powerful and has a lot more advanced features, though I’m no spreadsheet wizard. With Documents however, with the feature set far closer to that of Word or any enterprise desktop word processor, what’s the problem halting full adoption?

Is it a trust issue? Are people wary of Google or concerned about losing their data?

I’m a big fan of Documents, I use it for all my writing, I don’t own Microsoft Word and anyway, I like it. I’m writing this post using Documents because I prefer the environment over WordPress’ authoring tool, I’m confident that my data is safe and secure.

And then there’s email, I don’t use a desktop client at all for my personal email, I use Google Mail. But compared to the rest of the Google app suite, Google Mail is seen as something quite different.

For some reason, Google Mail is set apart from the rest of the Google Docs applications, not seen on par, even though your data there is equally as secure or insecure, and backed-up or prone to loss there as it is with the apps on Docs. They run alongside each other, they have the same authors, same security, the same look and feel even.

So why is this? Is it just the case that Google Mail has been around for longer, so we’ve just gotten used to it? It has had a longer development life, but those advances are duplicated across to other software.

I wonder how many of the people who choose not to use Documents for trust, security or want of having their documents saved locally, do use Google Mail but haven’t ever exported their mail and backed-up an archive on their computer?

I think two things set Google Mail apart. Firstly, it’s just better than most mail clients – it’s fast, responsive, it shows emails in threads (which was pretty new at the time) and since then we’ve gotten hooked and now can’t possibly drop it for any of those old clunky desktop clients.

Secondly, probably because of that first reason, it seems we’ve kind of ‘forgotten’ that it’s a Web app – that’s just a load of that temperamental HTML and Javascript substance writing data to the browser, but not only is it so powerful that it can trump the desktop software, it’s extremely reliable so we seem to think that it surely can’t just be a Web page like any other page in our browser.

Not only are we forgetting that actually there really is no difference between Google Mail and any other page (other than excellent engineering), but that there is a difference between it and one the desktop alternatives.

What I’m talking about here is that we should consider our way of thinking about these applications. It’s not a new observation that the gap between desktop applications and Web-based applications is closing, Google Mail is probably the best example of that – perhaps the killer app in that respect. It just seems surprising that the Chromium OS has zero file storage, you do not save anything –  but it really shouldn’t be.

I talked about suspending disbelief in convincing myself that some of the Web pages I was looking at were actually apps and not just normal HTML pages – but does it really matter?

Take the application menu, note it’s similarities to the application interface on the iPhone which also collates Web links and native ‘applications’ together. Both treat them as one and the same with an icon treatment that doesn’t distinguish between the two.

Ultimately, if we get the desired result – on the basis that trust and security is in place and what we want to get done, gets done – I don’t think it matters if the program is Web-based or ‘desktop’-based, as much as it doesn’t matter if the app is written in HTML, AJAX or Flash instead of C or VBA.

When Adobe first starting talking about AIR, describing it as something like a desktop runtime for Flash, I didn’t think anyone would consider any Flash app to stand on equal footing to traditionally written desktop software (again, from the likes of C or VBA). At that time no-one really took Flash anywhere near as seriously as they do now. But now look at all the Twitter clients we use, the BBC iPlayer.

I digress. What I’m saying is that everything on the Web is constantly evolving.

Google Mail is the application that proved that stateless computing ‘can be done’ and can be accepted as the norm. Chromium then, has the potential to be the software that proves true stateless computing ‘can be done’ and is a confident first step to introducing that as the norm.

Chromium loads some Web apps natively, others it loads as if they were native. With apps like these, if you were the kind of user that didn’t know or didn’t care that they only served online, you wouldn’t be any the wiser because of the way in which Chromium unblinkingly presents them.

I’m reminded of the ‘What is a browser?’ video and how initially I thought of the people as being quite naive, but in retrospect I don’t think it matters what a browser is, it’s what you do with it.

For a lot of people the search engine (Google or otherwise) is synonymous with the Web, or is the Web. Not removing choice, I don’t see a problem with these apps being synonymous with ‘mail’, or ‘chat’ or ‘calendar’ for users who wish to use them.

We’re pretty much always online now and Chromium is targeting the Netbook type system (also to note perhaps, the TechCrunch article says you cannot download and install Chrome on any machine – you will have to buy a new one), Chromium could really work. As I say, if it does it’ll enforce this new paradigm of how we think about these apps.

NB: There are fall backs for offline use – recently Google announced that they are dropping Gears for HTML5 APIs and offline storage, but I won’t go into that now and anyway, replacing normal computer usage isn’t what this is about.

In the end I couldn’t survive the whole day on Chromium because of the virtual machine’s performance, but I got to wondering whether I could sustain myself on completely stateless computing if I was handed the real Chromium to try out for a period of time.

With the help of Wakoopa, I looked at the most popular apps for various platforms and chose those I use the most, for each I came up with a currently cloud-based alternative – all of which I’ve used at least once when circumstance has called for it.

Here’s a sample of what’s available:

Desktop Web-based
Internet Browser N/A
Mail Google Mail, Google Wave, Hotmail, Yahoo! Mail etc
iTunes/Spotify Last.fm, Pandora
Instant Messaging Google Talk, Google Mail
Skype/Voip As above, GizmoCall, or any webcam supporting site
DVD/Video player Hulu, YouTube (Now supports TV and ‘films‘)
Word Processing Google Documents
Microsoft Excel Google Spreadsheets
Adobe Photoshop Splashup, Picnik
Twitter client Brizzly, Twitter ;)
RSS aggregator Google Reader
Code IDE CodeRun – can edit, run and compile various languages including PHP, ASP.NET and Silverlight

There are far more than I’ve listed here – what I’m saying is, this isn’t a phase this is just development.

So Chromium is looking promising, no doubt more official releases will be on the cards for next year. Until then, if anyone does happen to have a Chromium-ready Netbook they want me to Beta test.. I’m up for the challenge. :)

This Happened returned with their eighth London event as part of London Digital Week last month.

Shajay Bhooshan – Computer Generated Architecture

Shajay Bhooshan is an architectural researcher working at Zaha Hadid Architects and a course tutor at the AA School of Architecture.

Shajay talked about his research into alternative approaches to architectural design, namely his use of unconventional software and modelling techniques for some of his work at Zaha Hadid.

He spoke about using software traditionally used for developing videos games and designing motion graphics, showing us some of his experiments with Maya.

He explored the effects of using CGI over traditional methods, writing algorithmic and generative visualisations to create new original designs or influence his existing ‘traditional’ ideas.

Shajay showed us a lot of illustrations and motion captures from his research and project work, all of which can be found on his blog.

Shajay Bhooshan – Computer Generated Architecture video and slides.

Dotmancando – CoinFlipper

Dotmancando is Nitipak Samsen, an interaction designer and recent Royal College of Art graduate, who demonstrated his exhibition piece; the CoinFlipper.

His ideas revolved around the psychological aspect of control and his belief that contrary to our outward appearance, we don’t always want decisions left up to fate or randomness, such as that found in the event of a coin-toss.

Dot claims that we most likely always form a preference as to the outcome before flipping a coin and probably really only flip a coin anyway to feel less guilty about a choice, or to affirm that such an outcome is the right decision.

So he created a mechanism to take that decision out of the hands of fate and to perform a predictable coin toss by way of a impartial mechanical device, in turn, forcing ‘the flipper’ to reveal their true intention.

Dot was very entertaining in showcasing his many prototypes and the recordings of the experiments he carried out. We saw various incarnations constructed with wood, solenoid and Meccano and DIY-style gears attached to rulers until he ultimately achieved his final design.

His has all his work on his blog too, along with most of those prototypes), which can all be seen in this highlights video, on Vimeo:

Dotmancando – CoinFlipper video and slides.

Alexander Grünsteidl – Digital Wellbeing Labs

Alexander Grünsteidl is an ex-product designer who founded Digital Wellbeing Labs, a project set up to pilot a new kind of retail environment for digital lifestyle products.

Born out of distaste and ‘recognition of failure’ of the traditional mindset of consumer retail in selling electronic products, Digital Wellbeing Labs attempts to address the need for innovative consumer experiences in converging products with digital services and new media.

Alexander saw that his electronic products no longer sold successfully in ‘traditional’ shops, suggesting that the conventional retail model is a leftover process of the industrial age, a process that works for big brands but not for smaller.

He claims that now in our ‘society of information’ a different distribution model is required, that small brands don’t need innovation in their products – what’s needed is innovation in shopping.

His showroom attempted to challenge both the traditional and Internet retail economies, specifically the current trend of ‘the last click’ – and pointed out Dixon’s recent advertising campaign which recognises that.

His showrooms are intended to be places for companies to connect with customers and to demonstrate their products, not places to perform actual transactions, but social spaces to engage.

Alexander has written an interesting article, titled ‘Goodbye high-street?’, which explores the thinking behind Digital Wellbeing Labs.

Alexander Grünsteidl – Digital Wellbeing Labs video and slides.

Jenhui Liao – The Self-Portrait Machine

Jenhui Liao, another RCA graduate, showed us his exhibition piece; the Self-Portrait Machine.

Jenhui works on the connections of humankind and machine, exploring the relationship and cooperation between humans and machines in the manufacturing process and the apparent dependency and inseparability that the two share.

He created a machine that takes a snapshot of the ‘user’, a person whose hands are immovably strapped the machine, holding marker pens, and moved around a canvas by a set of motors and devices in order to create their portrait in a ‘cooperative’ process.

Jenhui was intrigued by the cooperative roles of humans in manufacturing, working around (and even inside) machines.

He claims that similarly human identity is not independent of the machine-like workings of our society. That consumer buying and what we consider to be individual characteristics of our personalities are determined by mechanics outside of our control, that we are extensions of that machine.

He went on to consider the notion of a portrait, a single representation of a person, a traditionally selected and contrived choice.

His conception subverts that idea, partially removing choice by enslaving the human locked into his machine (which he named Geppetto) and forcing the human to recreate (and experience) the machine’s point of view.

Whilst their influence is limited, the participant can affect the outcome of portrait in choosing to cooperate with the machine (or not) by allowing or constricting their movements.

Jenhui Liao – The Self-Portrait Machine video and slides.

It’s been two weeks now since Flash on the Beach so I thought I’d collect all the links, slides, source code and videos from the various talks and demonstrations here in one place for ease of reference for whoever might need them.

I’ll try and keep this updated as and when I see more appear online, likewise if you see something I’ve missed – give me a shout!

I also thought I’d show off Artillery‘s excellent FOTB titles:

Day 0: Sunday 20th Sep 2009 (Workshops day)

Day 1: Monday 21st Sep 2009

  • Hillman Curtis (site) – Telling Stories
  • Joel Gethin Lewis (site) – Epiphany
    Lights On! in action

Day 2: Tuesday 22nd Sep 2009

  • Jeremy Thorp (site) – Hacking the Newsroom
  • Jennifer Shiman (site) – Using Flash for Your Cartoon and Comic Projects
  • Richard Lord (site) – Frameworks: The good, the bad, and the ugly
    View slides
  • Joel Baumann (site) – Numbers in Art
  • Paul Burnett (site) – More than Bending Pixels
    Source code and examples
  • Karsten Schmidt (site) – We make our own tools, and then they shape us.

Day 3: Wednesday 23rd Sep 2009

  • Andre Michelle (site) – Kling Klang
  • Serge Jespers (site) – The Flash Platform in a multi-screen world
  • Mark Doherty (site) – Contextual Application Development
  • Koen de Weggheleire (site) – PLAY with Vectors!
  • James Jarvis (site) – Live Drawing with James Jarvis
  • Jared Ficklin (Twitter) – Seeing Sound: Visualization in Nature & Code
    Source files
  • Ralph Hauwert (site) – Research Realtime graphics with Flash 10

Note: this post is a continuation of my previous two articles on FOTB: The Beach and Day Two.

Here it is – the third and final day of Flash on the Beach!

Contextual Application Development

Mark Doherty

Mark Doherty started the day filling in for the absent Serge Jespers, who would have been presenting ‘The Flash Platform in a multi-screen world‘.

Mark, known at Adobe as ‘the mobile guy’ gave what sounded to be a very similar talk, focusing on the contextual practices of cross-platform application deployment, rather than (I think) the development of those applications and the devices now available to us.

He outlined Adobe’s three vectors of innovation; Rich Internet Applications, the Cloud and Devices – exploring for each the opportunity to create Flash applications and introduced their newly adopted paradigm and tag line, ‘Single experience, multiple devices’. It’s their wish to enable full engagement of RIA experiences across any device and platform.

He talked about Flash Lite and improvements gained over the previous six years of development. Flash Lite is fast becoming a very powerful tool and it’s Adobe’s intention that it should take leadership of mobile application development over the likes of Java.

But the talk covered more than just mobile devices, for example Mark spoke about Flash for the television. On that he made an interesting point that would run the length of the talk, about the importance of being aware of platform context.

He pointed out that devices like the television are never intended to be turned off, so, similar to Grant Skinner’s note on applications behaving as good system citizens yesterday, these kind of applications need to be aware of memory usage and simply cannot have any memory leaks.

We need to redefine our notion of ‘Flash applications’ and readdress our habits formed as a result of only developing browser-based and non-persistent applications.

Another assumption that cannot continue is that we can get away with deploying an application that can simply dynamically resize for different screen resolutions. This is Mark’s idea of ‘contextual applications’ comes in.

Applications should be platform-aware, true – detect it’s screen resolution, but also be aware of it’s computational capabilities, graphics and data support, it’s interface mechanic and tailor our applications specifically to those.

We saw Gamesplaza.mobi, which detected Mark’s touch-screen phone and served touch-screen games accordingly.

The New York Times have a collection of applications that think along the right kind of lines.

For the NYTimes, there’s the popular AIR desktop application, the Kindle version that serves the paper in PDF form, iPhone and Smart phones can browse the mobile website and there’s a version for the Chumby. Each platform offers a tailored experience and each has its own business model (some have paid subscriptions, some serve ads), but each is powered by the same service.

We saw UVLayer, a cloud-based virtual desktop and media sharing service funded by the Open Screen Project. UVLayer comes in two forms, visited in the browser or on a mobile device and the pair demonstrate this idea of contextual applications very well. The desktop is a place to administrate, manage an organise your media, but on the mobile the interface is remodelled and prioritise for the tasks you’d most likely want to carry out on a mobile – like watching and sharing those videos, photos and messages. It’s a different view of the same service.

The bottom line from Mark and Adobe now; don’t just scale or appropriate your application, recognise that platform, choose and serve content specifically for that platform and that context.

Connecting the Dots

Mario Klingemann

Mario Klingemann is a self-confessed ‘maths groupie’, likening his attraction to not being able to play the music, but loving the band.

His talk intended to reignite all of our lost love for maths, expelling all our bad feelings of the dry and boring maths taught in schools by delving into the beauty of geometry, the intricate patterns of computational design and the universal truth that only mathematics can behold.

He drew colourful metaphors of maths versus art, likewise of famous mathematicians and artists, before diving into number theory; his investigations into prime numbers with the Ulam spiral and Sacks spiral, before returning to geometric art with the tessellating and tiled designs of Islamic culture.

He offered some recommended reading on the various subjects, for example Daud Sutton’s Islamic Design: A Genius for Geometry, Robert Dixon’s Mathographics and Jay Kappraff’s Connections: The Geometric Bridge Between Art and Science.

Mario reunited us with cellular automata and algorithmic based systems to create some impressive visualisations. Making a connection with Flash, he plugged in Pixel Bender and created controls to alter system rules and introduced randomised variables to look for reoccurring natural visual phenomena, analogues of cellular or organic formations.

Another book recommendation – Stephen Wolfram’s A New Kind of Science.

Then he went on to talk about a bit of a game he had with Ralph Hauwert (UnitZeroOne) on Twitter, when he saw that he had sent out a Base64 encoded image message (explanation), where he tried to find if there were any other techniques he could employ to compress more complex images.

He applied a number of algorithms, encoding and compression techniques, then went on to exploit Twitter’s UTF-8 encoding and use Chinese characters, so it eventually ended up looking like this:

Mario Klingemann's encoded tweet

All very interesting, even though a lot went over most of our heads. He ran out of time eventually, but finished off the talk later in the day at the Jam Throwdown.

My colleague Adam Cousins joined me on this third day, he has written about Mario’s talk on his blog. He plans to write about rest in the coming week.

Union and MegaPhone

Colin Moock

Colin Moock‘s session looked at multi-user interactive activities and how he believes that multi-user activity is the future of all applications.

He questions how many of us would still be using computers if it were not for the Web, or an Internet connection. He thinks in the same way that the Internet adds value to computers, multi-user activity will add value to applications in the future, if not be the main use for those applications. In fact, that they’ll be pretty rubbish without it.

It’s something he’s felt for a while, he pointed to his Unified computing lecture of five years ago as an example as to how long he’s been thinking about it.

So Colin has developed the Union Platform. Currently in an alpha state, Union is a development platform, server architecture and protocol for creating such multi-user applications.

The Union platform breaks the complexity of multi-user application development down into a small group of digestible, familiar concepts; clients, the server, messages, rooms and attributes. It enables rapidly produced systems and supports Actionscript 3.0. Read more on the Platform Overview page.

We saw a demo created by Clockmaker, a 3D multi-user Tenori-on, deployed and ready to play with right now, and then he quickly coded a simple chat application which could send and receive real-time chat messages.

Writing it live, at one point Colin’s code had an error – of course with everyone watching there were plenty shouts from the crowd as to what was wrong. He said we just proved his point as to the value of introducing multiple users :) .

Then he talked about MegaPhone, a product that enables multi-player games and activities in public spaces by turning your mobile phone into a ‘universal controller’.

The idea comes from the assumption that pretty much everyone has a mobile phone nowadays (in the Western world, I guess), that we’re all ‘connected’ in the sense that we all have a device of this kind in our pocket – so why not enable us to converge with them and interact with each other, or with an interface in a public space.

MegaPhone enables any phone to work on any screen because it doesn’t require any kind of installation on the hardware, it uses the features that all phones share – dialling, voice and the keypad. It;s just a facilitator service, it’s not app that’s pushed onto the user – thus, it is the universal, and universally compatible, controller.

We saw the concept demos, a big screen Whack-a-mole that required lots of synchronised shouting and ‘Grabber’, likewise a relatively straightforward volume-controlled game where the user shouts in an attempt to get their character to grab various objects displayed on a big screen.

Colin is the core technologist at MegaPhone, so aptly he showed us some code. It is intentionally very straightforward, six or so listeners that refer to calling, hanging up, key presses and volume detection, all with custom event handling.

There’s contact details on the MegaPhone site to apply for a developer key now!

Jam Throwdown

Grant Skinner, Mario Klingemann, Julian Dolce, Andre Michelle, Jer Thorp, Joa Ebert

The Jam Throwdown premise is simple, six speakers have ten minutes each to do whatever they want – presumably to do the best they can to impress us. We were told to expect demonstrations of some of their best work or greatest failures, previews of as yet unseen apps or experiments, perhaps even some live coding – and undeniably every speaker succeeded in their task.

First up was Grant Skinner who demonstrated some physics and collision detection experiments he had been playing with, eventually combining them with the sound spectrum API to create a pretty cool dynamic audio visualiser.

Mario Klingemann continued showing the results of his image encoding techniques from his earlier Connecting the Dots session.

Julian Dolce demonstrated a handy tool to compile multiple FLA files, using Eclipse, by way of an ANT task.

I was probably the only one excited about this – generally I use a PC and I’ve heard you can write AppleScript to do this on a Mac, and Flex can do this anyway but Flash usually can’t. Good news is, it’s all available on his website and it can handle straightforward publishing, debugging, FLP files, intelligent error handling and is also available from the command line.

André Michelle extended his ‘Kling Klang’ talk on manipulating sound and run-time audio processing from earlier that day. He devised various algorithmic techniques for sound manipulation, creating delay effects and playing with feedback. There were some incidental sound experiments, a Tenori-on sequencer, more visualisations and a very cool graphical synthesizer tool.

View the slides on his site.

Jer Thorp showed us a piece of his work commissioned to design an accessible playground, but for which he employed very unconventional design techniques, largely by designing using Processing both in 2D and 3D.

Then came Joa Ebert, who had an incredible session on Tuesday which was already the talking point of the conference, anyone who hadn’t seen it had definitely heard about it.

Where everybody else had spent the full time talking and presenting their work, Joa just said “Hello,” queued some thumping dance music and immediately sat down to speed-code for the whole ten minutes, wowing us by creating a fully-realised 3D sound visualiser written in Processing.

Needless to say it was outstanding, not to mention that he afterwards revealed that he uses a keyboard without glyphs.

You can see the whole video on Vimeo:

Seeing Sound – Sound Visualization in Nature & Code

Jared Ficklin

With a DIY mindset, Jared Ficklin explored sound visualisation with and without code in a Maker Faire/Brainiac-style session.

Using smoke, fire, oscillators and costumes he worked through the physics of sound and waveforms and how they can be visualised.

We saw some of his work with the sound and sound spectrum APIs, visualisations he’s created in the past and a few by other artists such as Annika Hamann’s Fowl Owl and Robert Hodgin.

He offered tips and best practices on how to work with sound in Actionscript specifically.

Although the talk was very hands-on, he couldn’t do everything he wanted to do on stage. Especially set fire to things.

He had a enactment of a Rubens’ Tube, with a long hollow PVC tube filled with bean-bag polystyrene balls, passing a sound through the tube to watch the air pressure change the shape and form of the balls as it passed down the length, modelling the balls mimic the sound waves.

Do see the real thing in action, with fire, he showed us one he prepared earlier:

Space

Joshua Davis

Flash on the Beach closed with an exceptional talk from Joshua Davis who explored the notion of Space. Not so much space as Astronomy, although apparently 2009 is the International Year of Astronomy, but of course with regard to design.

He talked about design technology, his approach to computational design and his past pioneering work with Macromedia Flash.

He talked about his work with other artists such as Stefan Sagmeister (as did Hillman Curtis on Monday) and Branden Hall, with whom he created Hype – an Actionscript framework for creating visual and generative art.

To see Hype in action, there’s some nice examples here and you can watch Joshua and Branden’s discussion with Carlo Blatz on Powerflasher’s blog.

Joshua went on to consider the notion of the physical design space, showing some work from various exhibitions, some interactive installations and his work with printed art.

As with every of the inspirational talks of FOTB this year, I’m going to cop out and say you really had to be there. Joshua is a funny guy and had everyone hugely entertained, as I’m sure you can imagine if you’ve ever seen him speak.

His presentation is also online now on his site (in zip format), which shows some of his great work.

See you next year!

And that was the end of Flash on the Beach 2009!

Needless to say again, it was a great conference. Honestly I didn’t know what to expect before going, this being my first year, but if offered so much more than I would have imagined it could. I go to plenty of other conferences, groups and conventions and this beats the lot.

John Davey insists that Flash isn’t a product, it’s a mindset – and Flash on the Beach captures that.

As for the organisation, it was flawless, and there was a huge amount of freebies thrown in too.

Thoroughly recommended, I’ll definitely be going next year!

When it comes to luck you make your own.