Reusing properties in database.yml
Jul 3rd
Recently, I ran into a useful way to store your base database properties, and override them per development environment. This approach is really useful, so I thought I would blog about it.
Here is an example config/database.yml file which implements the aforementioned approach:
login: &login adapter: mysql username: _your_username_ password: _your_password_ host: mysql.yourdomain.com socket: /var/run/mysqld/mysqld.sock development: < <: *login database: myclient_dev test: <<: *login database: myclient_test production: <<: *login host: mysql.myclient.com database: myclient
More on Michael Jackson…
Jul 2nd
I have loved Michael Jackson for as long as I can remember, as the following picture hopefully illustrates:

If anyone has a copy of the SEGA “Moonwalker” ROM or an actual disk, please let me know!
I take the loss of Michael Jackson to heart, it is very saddening and humbling to me that a man of such awesome talent could be so thoroughly destroyed. Michael Jackson was a prince in the black community, and a lesson for all black men that no matter how much talent one has, the powers that be in this system that has historically been so oppressive can, and perhaps will ultimately destroy you.
One of my favorite artists, Jeru said it best when he said, “The days blow by like dust, even men of steel rust”.
Apparently, Michael Jackson wasn’t doing so bad 2 days prior to his untimely death… we’ll miss you Mike!
Rest In Peace Michael, we love you!
Jun 25th
This is a link to a Thriller video that we put together during my days @ EVB
I also have a VHS of a “We Are the World” rendition we did for a 3rd grade school recital, in which I was MJ … but that’s confidential
Really though, who is going to be the next Michael Jackson?!
Speaking at InsideRIA – Continuous Integration for RIAs
Jun 22nd
I just got accepted to speak at the InsideRIA Conference! The show will be going down August 23 to 24, 2009. It’s looking like it’s going to be a great show, hosted by our colleagues at 360|Conference and O’Reilly. Tickets are cheaper on a first-come, first-serve basis, so buy your tickets ASAP at http://insideria.eventbrite.com to get the best possible price. See you there, and hopefully you will have a chance to make it to my session.
Just for the record, I’m speaking on continuous integration in RIA development architectures
Decoding Flex “Unable to transcode” SWF error
Nov 21st
Tonight (this morning?) while catching up on some work, I was trying to embed assets created in Flash in a Flex project, using the good ‘ole Embed method. I’ve done dozens of times with excellent results, but this time was different. For some reason, my tried and true approach was generating an ambiguous error message from the Flex compiler.
It read as follows:
Unable to transcode Assets.swf
I wasted a bunch of my own time (and some of Abdul Qabiz’s) trying to figure it out, but nothing I tried seemed to work. Of course I googled for help, and the results their were even more mystifying. The only post I could find that sounded remotely close to what I was experiencing was this: http://www.codeverge.net/item.aspx?item=100658 and even though “mac_55″ was able to get it working, he had – as he put it, “No idea why it wasn’t working before.” That didn’t help much.
I started to suspect that Flash was somehow to blame, so I tried using another existing asset SWF that I had used w/ success in a previous project. Low and behold, it worked perfectly. Okay, that’s a clue… it’s somewhere in Flash.
Next, I saved the .fla that created the SWF that was working to the desktop and recompiled… then I tried using the resultant SWF in Flex again. You guessed it, it didn’t work.
Now I was really starting to think I was on to something, Flash was creating corrupt SWFs for some reason. I had crashed Flash about 10 times earlier trying to import PSDs, so I thought a restart may be in order, hopefully to resolve some phantom memory leak. So, I restarted.
After restart, I opened the previously successful, but now failing .fla and rebuilt. I noticed a ton of errors. Apparently, when I saved the .fla to the desktop, I broke the dependency chain somewhere and caused a bunch of errors. I realized that I hadn’t seen the errors before, most likely because the Output window was buried beneath a bunch of panels. Then, I opened the .fla for my apparently un-transcodable SWF – published the movie and poop, an error. Apparently “Background” is a reserved name, and my library item w/ the linkage id “Background” was causing the error. I changed the name to “BG”, it compliled fine, and worked perfectly in Flex.
The morale of the story is: if you see the “Unable to transcode” error message, make sure you’re freakin’ SWF is building properly. duh.
Hopefully someone on the Flex team can make sure that we get a more verbose error message in Flex 4.
FlashForward 2008: Stacey Mulcahy’s Presentation Files
Aug 27th
BitchWhoCodes has taken the time to avail her presentation files for the world to consume, you can find them on her kick-ass blog at http://www.bitchwhocodes.com/mt/
These slides are actually required reading for all participants in RIA projects, so get ‘em while they’re hot!
FlashForward2008: Bitchin’ BitchWhoCodes
Aug 23rd
What can I say? I love BitchWhoCodes (Stacy Mulcahy)… I anticipate any developer who has lived through some of the scenarios she was mentioning and who saw her presentation at FlashForward would say the same thing. She came off like some sort of super-hero, sent to rescue developers from the bowels of project purgatory.
What she did was step back and look, from the perspective of a developer, at the overall development process typically found at a misguided agency or company. The sad truth is that most companies do not think about how to actually make their employees happy. Companies will bend over backwards to get a “rock star” developer, but then often times expect he or she to be able to pull some sort of coding rabbit out of the magic hat of late-night, over-caffeinated death marches.
Even companies founded by technically astute, so-called “rock star” developers often forget (walk away from?) the magic that gave them the opportunity to be in the position of influence in which they find themselves; the challenge that made them what they are (were?).
My favorite quote of hers was, “Adding more developers to a project doesn’t solve the problem [of poor planning]. Can 9 women give birth to a baby in a month?” …haha
Following is a brief list of my favorite words of wisdom from Stacey:
- “Meaningful innovation is a competitive edge”
- “Bad planning on your part does not constitute an emergency on my part”
- “Constant chaos is not an effective motivator”
- “Schedules have more important purposes than perfection or accuracy”
- “What would MacGyver do?”
- “Just because I know how to do it, doesn’t mean I should be doing it”
- “Deadlines: always closer than they appear”
- “Developers deadlines get shafted when anyone else blows theirs”
- “Anyone is typically a designer”
- “Iterative graphic design can lead to duct tape development”
She was even nice enough to comfort project managers and reassure them that they are in fact very important… what a gal. But she did emphasize the fact that they need to respect the personal lives of the developers they are coordinating.
Preach on sister, preach on!
Marty & Anthony’s trip to Flashforward 2008
Aug 23rd
Two aspiring bloggers have been posting about their journey to Flashforward 2008. If anyone has more info about these two, by all means fill me in so I can update this post.
In the meantime, you can check out their blog at http://mtatff.wordpress.com/
FlashForward2008: DIY Multi-touch from IDEO
Aug 23rd
w00t! The folks at IDEO are working their magic again, this time in the form of a DIY kit for creating Flash based multi-touch interfaces. That’s right, IDEO-made sorcery is now available to all via the IDEO labs blog at labs.ideo.com, complete with an ActionScript API (on Google Code) … how can one not love that?
Apparently Flash was well suited for the task at hand. According to the team at IDEO, “”Flash proved to be a very nimble way to support this type of exploration”.

You can check out the actual video showcasing the interaction on the IDEO labs blog.
“Sound moves in all directions. Kind of like ideas. Or like imagination.” – Jared Ficklin
Aug 23rd
Jared Ficklin of Frog Design once again blew up the spot with his exciting real-world and Flash-based auditory experiments. In order to illustrate how sound travels, he showed how air, like sound, is transparent but still moves. Of course, Jared cannot explain any principal of physics without a (potentially dangerous) physical example. So, he rigged up an air rifle created using a plastic trash can, filled it with smoke from a $29 smoke-machine, and shot the smoke in all directions… several times.It may not seem too significant on the surface, but beneath the surface it reveals the obvious joy Jared gains from working with technology that he loves.
In addition to blasting the audience members with smoke, Jared also showed his awesome Ruben’s tube video (which I originally wrote about here). However, this time he managed to bring a safe version (containing little white objects as opposed to fire) and demonstrated that live. In the end however, Jared, not being someone to let something as novel as “danger” stop him from teaching people the wonderful, physical mysteries of the world of sound, unveiled the actual flaming Ruben’s Tube at the Industry Leader dinner @ the SupperClub:

(Big up to KidBombay for the snap)
Jared also covered some major principles of working with audio in Flash, including destructive/constructive interference, the beauty of algorithmic spawning, and of course the transcendent truth that, “Flash loves Neil Diamond” (Apperently Neil Diamond tracks consistently result in good results within the course of Jared’s experimentation)
You can see a video of Jared’s Ruben’s Tube here.
