:::: MENU ::::

Creating Your First Chumby Widget – Part One: Creating Your Application

With all the new devices coming out these days (tablets, mobile phones, set-top boxes, etc.), it can be a bit overwhelming to try and figure out just how you’re supposed to create and submit apps for all the different platforms that are becoming available. Enter Chumby: With no strict API’s to learn, and running plain-old .swf files for all of its applications, all you have to worry about is learning a few tricks on how to upload, test, and debug your app on a Chumby device. To make things even better, Chumby runs on a number of different platforms, from mobile devices, to tablets, to HD TV’s; so once you have learned the basics, you will be able to immediately start developing apps for any of these devices! OK, enough with the sales pitch, let’s get started building your first Chumby Widget!

Continue Reading

Get ready, Get set…

So it’s been a few months since my first post marking, the beginning of my plans to sell my worldly possessions and venture out into the world (outside of the U.S.). As you might imagine, things have been a bit hectic in around here, and I feel as though time has simply slipped past me. At this point I have managed to sell off most of my stuff (see also large furniture, household goods, and everything save the bare essentials and items I plan to pack into my car and take with me upon return from my adventures), but am still holding out for the last possible moment to sell my bed (the most amazing bed ever!). Beyond that I still need to find a good home for Roxy (please contact me if you know of anyone who might be interested), and offload a few more odds and ends. Continue Reading

Robotlegs Gotcha #4 – RelaxedEventMap and unmapListenersFor()

I ran into an issue today where I was receiving multiple events from a single view component. I did a little digging and quickly discovered it was due to the fact that my view mediator was using the RelaxedEventMap and I was not performing any sort of cleanup routine to unregister the listeners of the eventmap. The key piece of information to understand when using the RelaxedEventMap is that there is only ONE eventmap shared across all of your mediators (unlike the normal eventmap which each mediator has an individual copy of). The result of this is that if you do not properly clean up after yourself (i.e. removing listeners to the RelaxedEventMap from your mediators upon removal), then the listeners will still exist and will continue to pickup events even after the view has been removed. Continue Reading

Robotlegs Gotcha #3 – You MUST override the clone method in custom events

The problem: You’ve created a custom event which has some custom properties (say an array of data you’d like to pass along), and are dispatching it via the Robotlegs context. You create your new event, populate your data property, and send it on its’ way via the dispatch method:

The event dispatches nicely; however, when it is received (by a command, or listening mediator), the data property is null!

Continue Reading

How Robotlegs Keeps me Relaxed with the RelaxedEventMap

While implementing the Robotlegs framework into my first application, I came across a rather common issue: How do I properly manage my views? To give you the basic run-down, my application has a number of different views (menus and various other screens) that need to be shown on the display at different times throughout the application lifecycle. What I wanted was a way to store all of my views, and be able to map events to show a specific view at a given time (ex: a user clicks the logout button in some component, I want the login menu to be shown). Add to this situation the fact dependency injection (while wonderful) has one pretty major flaw: If the object that needs to listen for a particular event is created after the event is dispatched, you end up with a race condition, and the object usually loses (and as such could be shown in an invalid state). For the example of the login menu, let’s say that the use clicks the logout button, the event is fired to trigger a logout command, which then tells the application to display the login menu. This is all well and good unless there is some event that the login menu needs to listen for that gets fired before it is created (ex: The logout Command fires an event to tell the app that the user has logged out and this event contains a message “The users has been logged out successfully” that the login menu is supposed to display). If you’re still managing to follow my confusing-ass example, give yourself a high five!

THE SOLUTION: Continue Reading

Mastering property existence with the hasOwnProperty method

For a long time I’ve struggled with determining whether or not a property exists in Actionscript 3.0. Like many people, I would often find myself writing somewhat tediously repetitive conditional checks such as:

Other than the fact that this is a lot of code to write (especially when you have a long conditional that checks 10 or 15 properties), this would work “most” of the time. I say most, because if the property you were trying to validate didn’t exist at all (i.e. there is no property name “myProperty” in your object), then you would get a nice “null object reference” error.
Continue Reading

How to build a better oyster trap (aka shucking made easy)

I stopped by Wholefoods today to pick up some grub and while walking past the seafood counter I spotted my tasty little friends from Fanny Bay (the oysters that I FAILED to get open and enjoy the last time around). This time I decided to take a bit of a different approach and struck up a conversation with a friendly fish-monger name Ryan (gotta love the Wholefoods staff, always friendly and helpful!). After explaining how I struck out on trying to get the Fanny Bay oysters open on my first attempt, I asked him if he had any pointers. He explained that these specific oysters can be a huge pain to get open due to their small necks, and then offered to shuck them for me right there at the store. This sounded like a hell of a lot easier than trying my luck (not to mention potentially going hungry should I fail), so I greatfully accepted! Not only did he shuck them and package them for me, he also hooked me up with a couple of “samples” right there on the spot (freshly shucked oysters on the half-shell with a lil squeeze of lemon, talk about the best free samples ever!). After all was said and I done, I went home and enjoyed some of the most delicious oysters I have had to date. A big thanks to Ryan at the Wholefoods in Hillcrest!

Dreamhost: Works… Like a dream

I’ve been a long time client with MediaTemple, and have been, at best, semi-happy with their service. When I first signed up, they were the place to go for all things cutting-edge, and more specifically, the biggest supporters of Flash services (i.e. Flash Media Server, etc.). It didn’t hurt that some of my idols in the community (at that time 2advanced studios) were also big proponents of the company. Couple this with the fact that I got myself a pretty damn good hosting rate, and I was more than happy to deal with the slowness, rather half-assed customer service, and chronic growing pains. Now don’t get me wrong, I’m not saying that MediaTemple is a bad provider, in fact I still hear from quite a few people that they are quite happy with their service; however, most of these people are using their higher end hosted solutions, while I am using a much lower rate shared server.
Continue Reading