Category: Flash

  • Adobe’s Untapped Goldmine

    What if you could push any .exe file to the millions of computers worldwide that have the Flash Player installed? With one click, a user can install Central, Breeze Presenter, or even upgrade Flash Player 8 on their machine from any web browser with the Flash Player, assuming they have administrator rights.

    My boss is excited about combining the Flash Platform & PDF on the client (a.k.a. Apollo). I used to be excited about desktop Flash development, but because of market demand, it’s been relegated to PHP & Flash Lite work; a fun hobby.

    I think of the 2 clients who paid me to find out a way to tap into Flash Player’s ability to install applications. I was unsuccessful. Only apps residing at https://www.macromedia.com can be installed using System.Product.install, although, you can manually install your own EXE’s into the unique folder and interact with them using Flash Player in a browser. Still, this requires you to somehow get the user to install an EXE on their machine; not an easy feat. If we could do that easily, then Flash Player’s ubiquity wouldn’t matter.

    There are uses for this such as remotely controlling apps like AjaxAMP, and interfacing with lower level code using Flash Player as the GUI, like FlashMidi does.

    If you could push an EXE to millions of users around the world, what would it be?

  • 3 year-old prototype bit me

    I was having problems with the mx.formatters.CurrencyFormatter in Flex. It takes a number or string, and formats it to look like currency. For example, 1.2567878 can be made to look like $1.25. For some reason, it was not working in my DataGrid and I had no idea why. I built some test cases, files that have nothing but a TextInput and a formatter, and they worked so I was really having a challenge figuring out why. Then, it worked when I ran the app in debug mode in Flex Builder 1.5, but didn’t work in normal mode.

    Three hours later, it turns out some code written in 2003 for our debugger was overwriting String.prototype.toString. Since the mx.formatters.NumberBase, does a:

    return value.toString()

    The modified toString function was munging the results. No debug code in your app, no problem.

    Anyway, I really like protoypes. They allow a lot of meta-programming concepts to be done, and really help those creating languages to have the developers build the future API for you based on what they overwrite, just like we did with Flash 5 & 6 in ActionScript 1. I think there is still a lot of room for growth for tools to take advantage of prototype features at compile time, and build upon some of those runtime goodies.

  • SWF Socket Bitch for Ruby & Capri Sun Wine

    Got a call from one of my colleagues asking about something he saw at the AJAX conference up in New York. Some Ruby on Rails guys utilized a 1 pixel by 1 pixel Flash Player 8.5 SWF with a custom built (in a week) bridge (didn’t sound like AFLAX or FABridge) to communicate from JavaScript & the SWF. Basically, they had Ruby push JavaScript over the binary Socket the SWF has open, which in turn throws the base 64 encoded JavaScript out of the SWF to the JavaScript on the page. Since JavaScript in a web browser has the JavaScript interpreter built in (a la eval, lucky bastages), Ruby on the back-end can pretty much push code to the client to run.

    I remember at the last Atlanta Java User Group meeting like 9 months ago, these Java dudes were showcasing their AJAX endeavors. They were talking about the same thing; while JavaScript as a prototype language was “a neat new thing for Java developers”, they still were talking about frameworks to do the same thing: Having server-side code generate client code, and push it to the client to run/display.

    My colleague wanted to port to ColdFusion, so basically ColdFusion would push JavaScript for the web browser to run. It’s neat to see Flash Player 8.5’s new binary socket feature used in such a unique way, and you could definately do it with Flash Player 5 using XMLSocket, as well of taking advantage of Flash Player’s built-in ability to access data cross domain via a policy file getting around the AJAX limitation.

    Still… you server-side guys are nuts.

    Speaking of nuts, dude, her majesty’s gotten (back) into Capri Sun’s. For some reason, one of the pouches was over-filled. My wife thought it was leaking. It was leaking slightly; I heard a muted hiss. However, upon piercing it with those overly hard straws, a loud “whoosh” was heard; it was actually overly-inflated with air. My wife pleaded with me not to drink it, but I did anyway. It tasted like sparkling wine! It turns out the air was caused by the Capri Sun leaking slightly, and thus the “real fruit juice” fermenting into a wine like substance. Tasted gross, but cool!