A journal that focuses on Flash Platform development, and a little bit about what I am up to on any given day.

Tuesday, November 21, 2006

No Hyperlinks on MySpace!!?

I have been tasked by Finetune to determine how to allow outgoing links from the Finetune Embeddable Player to work on MySpace.

When I first looked at this request, I was puzzled. The allowNetworking=internal security changes in the Flash Player 9 totally slipped my radar.

I examined this closely, as I couldn't believe that this security feature would actually be this stringent. After realizing that this is the case, and our player, while able to load content from Finetune, is crippled in terms of being able to drive traffic back to the Finetune service.

To be honest, I feel a bit embarrassed. I, being a huge advocate of the Flash Platform for quite some time now, and also a strong believer in the "web of services loosely coupled" web 2.0 mentality, am now forced to tell my client that there is no way to allow our embeddable music player to link back to the Finetune homepage.

I am forced to tell them that the most fundamental, and core feature that the world wide web is built upon will will not work when embedded on a MySpace page. That is a huge win (sarcasm) for the Flash Player. We are in a world where I can write a SWF in memory using actionscript 3 and load it on the fly, but I am being stopped from hyper linking out to another web page.

So, my frustration with this was at first directed at MySpace. At first I thought that for a company that claims to be at the center of the Web 2.0 revolution, blocking hyperlinks seems like a radical violation of the web 2.0 manifesto.

So, I start to try things to build my case. I create a JPG image and go to my MySpace profile. I embed it using an IMG tag, then put an A tag on it to link to Finetune.com.

BIG SUPRISE! It works!!

http://www.myspace.com/elevadertek


So, my anger turns away from MySpace and to Adobe. Why would they implement something as crippling as this? I realize people could abuse "javascript:" but wouldn't it make sense to filter that out as opposed to blocking getURL() completely?

Perhaps I haven't looked deep enough yet, but I have so far been unable to find an explanation of why the allowNetworking param is so extremely stringent.

If anyone could shed some light I would greatly appreciate it, as I need to explain it to my client.

Friday, November 10, 2006

Teknision : Gabor Vida blogging.

Our president Gabor Vida has begun blogging.

Gab's blog explores the 'Branded Application' and 'Branded Utility' space. As a strategist, much of his content is focused on the impact of Rich Internet Applications on the world of marketing as opposed to focusing on technical details.

Finetune Development Blog

Finetune Dev Blog.

We have some pretty awesome new additions to the Finetune service coming in the near future. Mykel from Finetune has launched a blog that will cover updates to the service, and the embeddable player. If you are a fan of the Finetune service, you may want to keep your eyes on it over the next week.

Monday, November 06, 2006

SpringWidgets: Early Review

The release of SpringWidgets and the SpringBox runtime caught my attention today. I have been working on widget like applications alot lately, the Finetune embedded player in particular.

JD from Adobe posted a little call out for reviews , so here I am answering that call.


First Impressions:

The UI is nice. It has a little dashboard that holds nice looking icons representing the widgets you have installed. The dashboard/runtime can be launched from the start menu, and remains in your system tray.

Widgets can be launched from the dashboard, or they can be launched from the web, I am guessing this is implemented using LocalConnection. The web launch does not work without the runtime running in the system tray.

Widget files are SBW files, which are just SWF files with a different extension. You can try and double click them to launch in Springbox, but you will be disappointed in the fact that it throws an error saying the widget is not valid, even though it clearly is.

Widgets can be installed from the web, but I have not yet deduced how this works. I am assuming that you would have to register your widget with SpringWidgets. The developer APIs do not provide any insight into the web install feature.

Embedding Widgets on the web runs your widget in a shell SWF that includes their platform. This is a cool idea to allow the widgets to work both on the web or the desktop, but again I have not determined if you have to register your widget with SpringWidgets to utilize this feature. I am guessing you do, even though they have no info on their site about this yet.

So far I think it is cool that they have built this runtime around the Flash Player. I can definitely see myself using it, so it is on to the attempt to port the Finetune Embedded Player to it. I am overall impressed with this simple little tool so far.


Developer Perspective:

Ok, so I download the SDK and samples. Let me prefix all of this by saying that the whole thing goes seriously downhill from here. I will do this as a series of problems that I faced in a list. The problems far out-weighed the features with this tool.

1/ Flash Player 7+ is BS

It is a Flash Player 8 embedded in the application. Flash Player 9 SWF files do not run. Had SWF 9 files have run, I would have loved this thing. Not the case. So all you people out there hoping to bring the power of the new Flash Player runtime to the widget world, are going to have to wait for Apollo.


2/ Primitive API

this API really sucks for anyone that develops in Flash, using methodologies newer than say 2-3 years. The API is totally Actionscript 1 oriented.

No intrinsic classes for Springbox objects, The 3 objects that come into play are dumped onto your root. This makes dealing with the API difficult or clumsy for anyone working in an Actionscript 2 only workflow. While the community could write classes to modernize it, it struck me as bizarre, that a proper AS2 API was not released by default.


3/ Missing Details

Nothing on how to register your widget. Nothing telling you how to include an icon in the dashboard for your widget, nothing telling you how to pass launch parameters, nothing stating how to launch an "Open File" dialogue, etc. Most of the issues are probably going to be related to the fact that they just launched it today, but still.


4/ Another codestream

I am also a slight annoyed that I have introduce even more code to make my widget work in yet another environment. The fact that there is not an option for a default chrome is frustrating, and if I want to opt out of their actionscript API (which i do in this case) and deliver the basic settings in say, an XML file, I am screwed.

While Springbox does offer you a lot of flexibility in how your widget should look, the stupid close button it includes by default over my widget means I have to define a size (in AS) and customize the header of the widget to accomodate the close button visually just for this runtime.....

Between embedding the widget direct from Finetune, Apple Widget format, Google Widgets format, and various other formats , a widget becomes very frustrating to spread around and keep clean. The simple widget, isn't so simple anymore.



Overall Feelings:

I like the application, and the way they are heading with it. It is a neat idea to do the cross web/desktop widgets. I can't help but feel the potential similarities between Macromedia Central and SpringBox though from a business model perspective. I am worried that they will eventually try to work this application down the same licensing road that Macromedia did, to failure. They may have another model in mind however, and I am interested to see what it will be.

Due to the fact that there is not support for the Flash Player 9 and it's wonderful binary APIs, I struggle to see the benefit of having desktop widgets that can't really do that much more on the desktop than they do on the web. I believe that the point of bringing something to the desktop is to extend your offering, not give someone the same thing in a different environment.

While the SpringBox is innovative in the fact that it is offering a standardization for widgets across the board, I am not convinced that the standardization is actually useful to anyone in the real world.

For example, lets assume that Fox uses this for MySpace, which they obviously will. Lets say they use it to extend the reach of their MySpace music player. The MySpace Music player is a nice little widget that users can load up their playlist of mp3's in, and have their visitors enjoy.

Will the Music Player be something I could pull to the desktop? If I could, what playlist is loaded into it? Probably the one from the MySpace profile I got it from. What about if I want to get another playlist from another profile? I guess I would go to another person's profile and maybe the playlist would load into my widget player instead of the embedded web player! Woho!

Not really, I am still browsing the web, and in order for my desktop player to be useful it would need a different, more robust UI to act as an aggregator of content I am listening to as I peruse the site. That way I can always go back to something else I was listening to later when I am not on MySpace.

If the desktop player did not offer these extended features and UI, there is little to no value in having the widget on the desktop. Therefore, I do not see too much value in widgets that offer very similar feature sets across the web and desktop.

Web widgets are viewers(a bit of data) , desktop widgets are gatherers(a lot of data). This is the case when the data for consumption in question, is in control of users rather than publishers. Identical UI's are great for sports scores and clocks, but will quickly become silly for most other types of data that a user tries to consume on mass.

In my opinion,

The progression of this effort should not be focused on consistency across platforms, it should be focused on relevancy and adaptation to context across platforms.

Friday, November 03, 2006

Let mE rAWK iT!

I have been playing in bands for many years now. In recent past I played in a band that saw some relative success. We had a punk/metal/hip hop group called 54Stance, and we played on a few big tours, lots of club gigs, and even got to the point of showcasing for labels. Things fell through though in 2003.

I have been working with some good friends for over a year now getting a new band together, and tomorrow we are doing our first club gig!

It is called CrossTheFloor, and it is made up of a few of us from 54stance, and two newcomers. We are playing in Ottawa at Mavericks tomorrow night, and everyone is welcome to come if they can make it out.

This summer we did a little show at a little outdoor festival to warm up. Here is some pics.