The Red Herring revisited

Google has been indexing SWF:s using their new techniques for a couple of weeks now, and it should be possible to see what it really means. I was very critical in my last post on the subject, and some of the things I have been proven wrong about, but it seems that so far I have been mostly right, nothing has really changed.

Read the rest of this entry →

The pain of installing Adobe software

Today I needed to install Adobe Acrobat, which I’ve so far avoided to install because of its bloated size, slowness and general suckiness. Unfortunately, I really needed it. After searching my drawers for the CS3 install DVD, I pushed it into my computer and though that I’d managed the hard part. Now it should just be a matter of selecting Acrobat and hitting install. Yeah right.

Read the rest of this entry →

Switch off SwitchBoard

SwitchBoard doing absolutely nothing

When Adobe SwitchBoard was announced the other week I was intrigued. It sounded like something I had been wishing for for a while: a better way to create user interfaces that leveraged the capabilities of the Creative Suite applications, something that the current scripting environment doesn’t do very well. I installed it and read the documentation and my entusiasm quickly faded. It’s the same lame impossible-to-use BridgeTalk technology as before with the same contradictory and strangely inter-application-incompatible API:s, but packaged differently. It’s true that you can create great user interfaces, but the scripting still sucks — and it turns out that it’s a resource hog.

Read the rest of this entry →

The lazy HTML pirates are the easiest to catch

A tip to all lazy HTML pirates out there: if you’re going to nick the HTML off a website, remove the Google Analytics tracking code before uploading it to your own servers.

Read the rest of this entry →

SWF indexing is a red herring, and you should all know that by now

So, here we go again, Google has annonced that they will index SWF files with a new algorithm and the whole Flash blogosphere echobox is ringing with the words of the clueless. The announcement shows how little Google understands about Flash websites and needlessly diverts the attention away from developing a real solution to Flash website search engine optimization. The reaction to Google’s announcement also shows how little the Flash bloggers understand about the problem. I’m not sure which of these two is the most annoying.

Read the rest of this entry →

Death to AC_FL_RunContent

When your projects include SWF files created with Adobe Flash or Flex, the newly updated Insert Flash feature in Dreamweaver [CS4], which now uses the open source SWFObject 2.0 codebase

(From Adobe Edge: June 2008 via jonnymac. Emphasis mine.

Adobe has finally killed off their hideous Flash embed script, not a second too soon.

ActionScript generics in Flash Player 10?

In the prerelease version of Flash Player 10 there is support for type-safe lists in the form of the new class Vector. The class is an example of a parameterized type, meaning that you can have a vector of strings, a vector of display objects or a vector of any other type you like. Parameterized types are called “genetics” in Java and “templates” in C++ and it’s a really nice feature to have.

Unfortunately it seems like you can’t write your own parameterized types, Vector is what you get. Hopefully this is the first sign of things to come, perhaps there will be more in the next version of the player. Watch this space.

Just to check I’ve also tried some other ECMAScript 4 features like let, type and generic functions, but none seems supported.

Update: Seems like the parameterized types doesn’t work very well with push, shift and other array manipulation methods, they accept any type, even though they shouldn’t (likely because are implemented using variable argument lists, which is one of the cases where ActionScript’s typing system breaks down). Also, it breaks down for nested types like var list : Vector.<Vector.<String>> (which allows any vector type to be assigned to the vector, which it shouldn’t. This line should not compile list[0] = new Vector.<int>(), but it does).

Mate, an unobtrusive Flex application framework

If you are tired of application frameworks that tie your code together and makes it an unwieldy mess, take a look at Mate.

Mate is quite unintrusive, lets you configure your application declaratively in MXML and does most of the boring things for you. Judging from the documentation and examples it looks like good competitor in the less-than-crowded marked of Flex application frameworks.

The core of Mate is something called the event map which describes what should happen when your application dispatched events of different types. For each event one or more handlers can be invoked. A handler can be everything from calling a method on an object, running a command or invoking a remote object call and there is room for writing your own specialised handlers. Handlers can also run in sequence and get hold of the previous handler’s result, which makes it possible to create quite complex logic. All this is done in MXML, which means that your configuration is also the actual wiring of your application — and it’s readable and quite easy to understand.


My only objection is how Mate handles updating of views. If I understand it correctly, there are two ways, either you have an injector which looks up the view and pushes values into it, or you have an instance of a dispatcher in your view where you listen for result events and update accordingly. Both remove the benefits of bindings, and while they are certainly better than the global variable lookup of other Flex frameworks, I’m not sure I like them. On the other hand I think you can skip that part and inject the model into the views directly. On the third hand, injectors can potentially make your code more decoupled.

Update: see comments below for a clarification on this issue by the framework’s author.

New Whipping Floyd site released

Whipping Floyd SS08
Whipping Floyd SS08

Design by Magnus Heed of Whipping Floyd, website production by me. Fully deep-linkable, Google Analytics-integrated (automatically, thanks to SWFAddress).

How to save $149

Some jokers who call themselves flexinmotion have released a ridiculously overpriced Flex component which “will automatically track all user navigation clicks, button click, check boxes, radio buttons and a number of other controls within your app automatically” using Google Analytics. Let me show you how to save those 149 bucks.

Read the rest of this entry →