Blog

  • 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.

  • Adobe Flex 2 Ad, FMUG Breezo, and Sparkle Doesn’t Suck

    I’m catching up on the hilarity that can be gained by bequeathing anyone & everyone with a digital video camera and internet access over at Ebaum’s World last Friday evening and spot this Adobe ad on the right side.

    You can attribute that to Adobe’s influx of marketting dollars vs. Macromedia‘s, attitude towards spending for advertising, or just plain luck. Regardless of the cause, you gotta admit that fuggin’ rocks!

    BTW, if you’re bored, I’m fixin’ to speak about Flex 2 for the Flash and Multimedia Users Group of Arizona in 30 minutes (10:00pm eastern, GMT -5) via this Breeze link. Nevermind, rescheduled; I’ll blog the new time.

    Oh yeah, and Sparkle doesn’t suck like Brandon Hall makes it sound. He’s just in love with his loosely typed ActionScript 1.0 and ability to play extremely well workflow-wise with his designer & partner in arms, Joshua Davis. Consider the source I say.

    It’s atually neat! They just need to drastically improve the timeline, and I need to learn C# to back up my claims that it doesn’t suck since the real power is in the API.

  • 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!

  • PodCasting is Hard

    PodCasting is hard… not the recording part, however. I’ve been recording myself on cassette tapes since I was 4, long enough to forget how to spell cassette and being forced to utilize my Firefox Dictionary.com shortcut as brain backup. I’ve been messing with homeade & mouth-made foley my entire life, and put those Larvell Jones wannabe skills to work during college for all kinds of sound effects. I’ve mixed loops into music for a TV commercial professionally. I know how to record audio on the computer.

    No, what I’m talking about is publishing your podcast; allowing the world to hear your mp3 in whatever it is they use to play mp3s. This stuff should take 1 click, Jeff Bezos’ coke-binge-patent be damned.

    Say you decide to forego bungie jumping with a fist-sized fishhook in your mouth with the slack wrapped around ye wrist and attempt instead at getting your PodCast into iTunes. Aye, now there is a valiant endeavor worthy of any geek worth his salt. :: loads gun ::

    First, you’re existing blog software won’t work. LiveJournal? Nope. Blogger? Nadda. MoveableType? Perl ate your baby. Acknowledging that PodCasting is newer than new, as if you knew, you must proceed to force the technology that has already proven itself a fantastic voice for the masses, allowing them to spread and share ideas together in an online community (blogs if the sarcasm went so far over your head to crash into the mars rover… sorry rover-dude!) … must now be tweaked to go in a different direction merely for the sake of a fileformat. In this case MP3 because changing iTunes preferences JUST to republish to AAC is a time consuming process. Besides, I like Germans. …and please don’t tell me Germans had a hand in creating AAC too, the road was long and hard enough just getting here. The last thing I need at this juncture is a fork in the road. :: pops in clip ::

    There happens to be a blog hack website which even offers a copyrighted name, SmartCast. It’s called FeedBurner, and the common theme it shares with the rest of Web 2.0 sites is the utter lack of, “Here’s what the f*** I do and why you should give a s***.” To hades with the pleasantries! This is the social networking revolution, and all of those sites know that 90% of their users are going there because their tech-friends already told them about it, thus negating the basic need for explainging exactly what your site does and why I should care. Yes, we’ve transcended to an internet plane which Jakob Neilsen was the avatar for. Hallowed are Ori! :: pulls back slide ::

    Funny thing about MoveableType, is that every version is a surprise. Like Cracker Jack. Only the prize is free blogging software EVERYTIME with slightly different, unexpected functionality and instead of being packaged with a jolly, ghost-pale blue-clothed sailor it’s the vice Uncle Fester had as a kid, all yellow with a 3 letter name, “ZIP”. While her majesty went on a windowed safari in Safari (What are these “tabs” you speak of?) through the wild world of PodCasting tutorials that assume you juiced up on THC & JD, with such mantra’s as:

    “Repeat after me… you have the capability… not to drool… in public.”

    “Wow man… cool… I can do that… you know, man… I can do that!”

    …I was off to solve it a programmers way; via a plug-in! Past experience has defiled the metaphor, somehow metamorphosed “helpful add-on tool” into “monkey wrench”, but, leave it to parse-mesiter-Perl to parse a cute, harmless little monkey into a :: 10 octaves lower :: MONKEY WRENCH OF DOOM!!! MUAHAHAH!!!!!!!

    Apparently the Enclosures plugin was DOA. No logging of errors, and my RSS 2 file hadn’t even heard of any, “En-clow sur” before. First time for everything… but not today. *click* *click* *train sound* file deleted. :: slide locks into place, bullet enters chamber ::

    So, I dressed up like Eminem, donned my num-chucks, and head to the forum jungle. Quite strange things in the world of forums… such as forums. They’re weird. People use them. They physically go places to utilize smilies and block tags vs. having content pushed to them. Perhaps the effort makes it more worthwhile? The common consensus was, “Use Blogger, Use FeedBurner, Use iTunes”. So, Blogger bloggy weblog setup. Feeling a little randy, so setup an account for FeedBurner too. Still not sure what it does, but it’s just a gateway drug, and I’m here for the adrenochrome. Frustrated by my progress, I scoured the cabinents and found some Blue Agave distilled into a urine colored substance, that tasted even worse. The pain was strong, but Utilarianism shall prevail… with a little help from my hombres.

    Blogger post? Check. FeedBurner SmartCast? Check.

    …iTunes fails to see “episodes”.

    Try MoveableType entry, and register it into FeedBurner.

    …iTunes fails to see “episodes”.

    Download 4 meg MP3 from Dreamhost to my comp, disinfect Dreamhost’s suck, polish, and re-upload to my Atlanta server running on Windows with 10 billion MIME types.

    …iTunes fails to see “episodes”. JesterXL attacks iTunes, rolls a 4. Misses. :: raises gun to head ::

    Re-save MoveableType & Blogger entries. Her majesty forum posts. Motivational Speaker’s son answers, gives recommendations + side suggestion, non-chalant not so important as to appear trivial, yet important enough to give 2 line breaks before it’s inception into post.

    Remove spaces from file name.

    …iTunes gets 500 error from MoveableType feed.
    …iTunes successfully reads Blogger feed.

    By this time, I’m completely inebriated by some 14 year-old squeezed cactus liquid and start giving lewd, suggestive looks at my larger-than-lifesize Halo 2 cut out. It must of been the dual-weilding bullet hoses, but I just started to pass out… later to find out I tripped on one of my sleeping dogs and banged my head on my desk. You should still adopt a Cactuar, though.

    Anyway, at my wits end, and out of pimp juice, I get bored and change the MoveableType feed URL from rss to atom, just like the Blogger one, in FeedBurner.

    …iTunes successfully reads MoveableType feed. Dreamhost attacks iTunes. Rolls 18. Hits. Dreamhost’s sub-domain falls off, and writhes violently upon the dungeon floor. :: puts pressure on trigger ::

    *ding* *dong*

    Email? It’s only been 1 minute since my last 4 spam messages… apparently Apple has accepted the PodCast into iTunes, and is going to approve it. So, you can get into the club, but the bouncers will gang bang you at the coat check. “Whoa… a mink! Soft…”

    There have been 2 reasons blogs were successful. Easy to publish, and easy to read via aggregators. PodCasting needs to be made easier to publish. I’m not the smartest geek on the block, but f’me, that’s just ridiculous. I fail to see why the tech world has to plummet into chaos when someone chooses to publish their words as digital waves vs. digital text. Considering the rate of change, hopefully I’ll only have to wait a year. Just in case, I’m going to get more Blue Agave… and adopting a Cactuar. I hope when I actually decide to try my own hand at a PodCast vs. helping a friend, it is easier to do so.
    :: unloads and disassembles glock ::
    :: no disassemble number 5 ::