Category: Personal

  • Don’t Smell the Roses, Go to a Garden: Joshua Bell Story is BS

    A few people Twittered and blogged about Joshua Bell’s solo in a Metro station. Most I read mourned humanity’s lack of ability to recognize beauty around us, being too enraptured with our own trivial problems. I concurred and moved on. Next day, I thought about it a few times while waiting on compiles or sitting in traffic (omg , I’m driving again!). The more I thought about it, the more irritated I got. The whole thing just didn’t sit right with me. It really seemed pompous, actually.

    I was fixin’ to rant, but a quick Google search showed I’m not alone (uno, dos). The authors there pretty much summarize my feelings as well. One thing they don’t really cover, however, is the experience part.

    Yes, a rose, alone in the middle of a large bustling city is definitely something beautiful, innocent, fragile, and neat to behold. However, one amongst a throng in a lush public garden is even better. One goes to a public garden to be amongst beautiful flowers. This is a consumer choice, and one that is usually planned, and looked forward too. The anticipation grows, batteries are purchased for the camera, grandma is brought along, lasting memories are created.

    Nine Inch Nails, for example. Weird, random websites appearing on various places on the web based on innocous phrases on T-shirts and lyrics. USB keys found in bathrooms randomly containing tracks for NIN’s upcoming album. The expected RIAA’s attack, with predictable backlash, only a few loudly proclaiming, “This is marketing genius… they all fell for it!”. If you didn’t catch my sarcasm, mainly using the RIAA’s legal aggression as a personified target for the angst ridden teenage youth, one of the target demographics for NIN’s music is just a fantastic marketing tactic; planned or not (naturally I think planned). While I loathe un-cited sources, this is still a great quote from someone apparently familiar with Trent Reznor’s involvement:

    “It’s not about slapping something on top of an existing experience,” the source says. “It must be its own entity. Make the experience as immersive as possible for fans.”

    People go to symphonies to enjoy the experience, and Joshua Bell is a contributor to that experience. You can’t rip Joshua Bell out of context, and shove him into one that personifies preparation for the trials of the day. We live in a day and age where consumers demand, and expect great experiences. They want control of the timing and place. Home theaters vs. going to the movies, time shifting video on your Tivo on Tuesday afternoon vs. Friday night Battle Star Galactica, making video you want to watch and publishing it to the world vs. 999 one way channels of DirectTV non-refundable crap.

    Instead of putting Mr. Bell out of place, they should of instead adapted the place to compliment Mr. Bell. Throw him in a monkey suit, add some of his other instrument playing friends, nicely decorate that portion of the metro, improve the acoustics, low lighting, and provide comfortable seating with an usher. Not the symphony, but hey… I’m a consumer in the 21st century, I want the symphony to come to me! THAT would of been significantly more positive.

  • Heading to WebDU 2007

    I’m sitting in the terminal with her majesty at Atlanta airport, fixin’ to board my flight to Los Angeles, California and then from there, fly to Sydney, Australia for the WebDU 2007 conference. This year is different because both her majesty and I are speaking, and she’s toting something rad. It’ll be 5 hours to LA with a 1 hour layover there, and then 14 1/2 hours to Oz. I’ll be spending my time writing Flash Lite 2 component documentation, cleaning up some example code for my preso, and catching up on reading. Hopefully I can post the follow-up 360Flex preso post with some consolidated links for Flash & Flex use together as well. …oh yeah, and answer emails.

    It’ll be good to be in Sydney again, love that town.

  • Star Fridays, 360Flex is Done, and 300

    They used to be “un-read” Fridays, and then Flagged Fridays, and now that I use GMail for both my personal and hosted POP email, starred Fridays. Basically, on Friday, I check all the email that took longer than 5 seconds to respond to during the week, or just ones that need followups. I don’t always do it on Friday, but I strive to tie up all loose ends for the week. This week was busy despite travelling all day Sunday & today, and being at 360Flex Monday through Wednesday. So, I have to hit 42 emails tomorrow morning. The record is 18. Usually when they get above that, there is no hope. I’m looking forward to that same recruiter that’s been calling my phone all week calling at 9:00am this time instead of 6:00am, haha!

    360Flex was cool. I missed the XBox room. It’s always rad to meet the people in the community I know to build up more of a report in person for better communication, to garner more corroboration, and clear up things you’ve been wondering about for awhile. Additionally, it’s great to meet those I’ve never met in person. The one thing I’ve always dug about consulting is meeting new people, and 360Flex was no different. Finally, since I appear to be the only Flexdev on the planet not fully entrenched in employment yet, there were a plethora of start-ups and companies to talk to. It’s neat to get a pulse on what the industry is working on by hearing a variety things that companies are doing with Flex & Flash.

    Finally frikin’ got to catch up with Joe Berkovitz. I really wanted to get some answers to my burning questions about certain framework things spawned from my earlier blog entry. Unfortunately, I had didn’t really get the justification I was looking for, and instead got context with regards to understanding his ideas & uses for MVCS, one particular framework style he uses. I was hoping I’d either stump him (not a chance, he outranks me in experience, hah hah ) or he’d relay this wonderful tale of how you can scale certain parts, and encapsulate others. The reality wasn’t that glorious. Instead, he had valid reasons why things work based on his work environment. Specifically, the leadership there following through with expectations on server-side API’s & data, clear communication channels with their customers, and the opportunity for the client developer to have a hand in the server-side.

    Those business realities have far reaching implications on why one does not need Delegates in Cairngorm for example. In fact, one could perceive my use of them, if one were in Joe’s position, as a reactionary step to shield yourself from the server-side’s ever changing mess so your model can remain clean within your Commands. If your server-side is clean, gives you what you need, and isn’t changing because of an unstable work-flow, you don’t need Delegates. Unfortunately, I’ve never worked in a place like Joe does, thus I still need to have Delegates. Furthermore, after talking in person, I really got to understand how he uses multiple Controllers in MVCS (real ones, not the Cairngorm namesake). Finally, I realize we’re only getting the condensed, edited story since some things are NDA which I totally understand. His use of modules was quite interesting too. I view them as GUI widgets, while he (paraphrasing badly) uses them as class repositories. You can’t do these things over email; in person just rocks, hence the need for these types of get together’s to really grow to the next level.

    BTW, Hamachi is off the chain. Joe showed me some examples, and man… wow, I’m all over that, twice on Sundays.

    It’s also funny to hear everyone has their own Flex framework. They don’t advertise it like I would; instead, you have to start acting all high-horse about Cairngorm to get them to talk about it, but that’s all the prodding you need to get the good stuff… alcohol helps too.

    I will say speaking here was way better than MAX. I could see the blank stares at MAX on a few faces where others seemed completely bored out of their minds; I knew I was doomed to alienate pretty much half of my audience. Here, however, I got the impression everyone pretty much followed the code, and just wanted to know about the technical logistics behind it as well as the gotchas… which is exactly what you want when you are speaking about this stuff. So, felt a ton better. Grant Skinner pretty much did the same talk I did in the later part of his slides the day before, so I took the opportunity to speak more on the code parts about what you can do right now vs. when CS3 is released and they release Grant’s solution, which is very much needed mind you. I’ll post the links to the details tomorrow.

    Finally, got home just in time to catch the History Channel’s special on Sparta’s 300, to tie in with the movie the 300. Pretty cool to get the real history behind it. Pretty much a spoiler to the ending, but as my high school government teacher used to say, “The only news you don’t know is history.” … or something like that.

    It’s not blasphemy, it’s not madness. THIS… IS… SPARTAAAAAAAAAA!!!!

  • What to Unlearn?

    Some things I’ve learned in my early career that originally helped me succeed I believe now are hurting me in job interviews. One of the pro’s to typing via dynamic languages and forgiving compilers such as ActionScript 1, Ruby, JavaScript and others is that you can code things that work very quickly. In a lot of the early agency, multimedia, and small software company work that I did, these technologies were great. They didn’t get in your way, and empowered you to quickly create programmatic solutions that were enhanced or even driven by good designers. You could hit insane deadlines, recompile changes quickly for a client, and react flexibly to ever changing, almost fluid requirements… if any.

    I believe those early successes helped me become very pragmatic, agile, and optimized. While I to this day still question a lot of what is considered “good programming” practices, I believe my pragmatism allowed me to judge what OOP, design patterns, and frameworks were appropriate, and how much of each were used based on a projects need. As my projects increased in scope, I learned to love strict-typing. Design patterns helped organize my code enough to be able to quickly change the design for whatever reason and still have my code work. I learned to love frameworks such as ARP & Cairngorm as I started getting more development help on projects ( I used to be the only developer).

    …things have changed. With the release of Flex 2, 2006 opened the door for traditional programmers, both server-side an client side, to now contribute and benefit from the SWF format. Now they can create RIA’s, and really enjoy doing so. New blogs from talented developers you may not of known in the if you were strictly in the Flash Dev community are popping up daily, all with great code & development techniques to contribute to the greater community. Some were sleepers, others are just now getting around to getting a blog because other traditional developers are doing it too, and some are just coming into the echo chamber that is the Flash / Flex development blogosphere . All bring with them their style of development. More often than not, these are real developers that don’t have the learned expectations of a lot of the early pioneers and frontiersmen that were those early brave programmers like Branden Hall, Colin Moock, etc.. They are the ones who use Test Driven development, Inversion of Control, and some even care about your CMM level. Some are all about the Flex Component & FDS API’s where others are swimming around the boilerplate, low-level Flash Player AS3 API’s such as ByteArray & Socket as if they were nothing foreign and new.

    One things is abundantly clear, though. These are programmers, and they mean business. Business in the sense that they have lingo, processes, and development setups that only used to trickle into the Flash Development community. Granted, there are plenty of prior art to showcase all of these things in some shape, form, or fashion in our community, but never has it been on such a paradigm changing scale as this.

    Why does this matter?

    For one thing, these guys n’ gals don’t know the Flash Player, they just know they like what it can do. Most don’t know, nor care to know, about what an 8 bit alpha channel is, and how it revolutionized what we can do with design on the web. …but they know we do, and they want us on their teams because they need to focus on getting their J2EE back-ends to work wonders with our Flex front ends. If you know Flash and/or have a minuscule amount of Flex experience with a design background, you are in high demand.

    The common theme I keep seeing is that Flex is being used more and more in a lot of traditional enterprise development setups. This means having an actual Quality Assurance team, maybe even user testing, all with the assumption you’ll use the tools and processes that traditional Java developers on large teams use. I feel a lot of Flash Developers have spent their entire careers learning more and more about traditional software development to augment their ability to be more successful in their traditional multimedia & agency work. That is, of course, unless they truly have crossed over to full application development and are just waiting for Flash Player 9 to hit the magic 80% penetration mark before they make the dive to AS3 or event Flex. Either way, I feel we’ve all had this open mind about learning new things since our industry in particular has changed so fast. While I may be extremely suspicious of using test cases, or appear quite unconvinced about having Spring lend some of its concepts to the client, I’m actually very open. Again, while we’ve had a lot of great traditional developers contribute their learning to our industry to help move us forward, never had we had an entire industry merge in like this, and on such scale. So, I’m still learning every day about how a myriad of development teams do their work based on their varied backgrounds ( C, C++, Java ) and what tools and processes they use to make better software.

    It’s just really really hard to match those lessons they’ve learned with my own pragmatic ones. They don’t complement each other at all. They come to a harsh clashing in the old consulting adage of “fast, cheap, and good… choose 2”. If you want me to develop a widget for a client in 1 week (which is definitely more than reasonable), I see little value in creating test cases and implementing ARP . I’ve been burned too many times not to use source control, but what if I had 2 months… would those tools, and those who corroborate their joy of being converted be now justified? I’m sure the traditional software devs are nodding their heads saying, “Obviously”. Of course, if you asked them if they blindly accepted new frameworks and processes, I bet you most wouldn’t say “No”; they’d look at them logically, and want to see proof on ROI of their time invested before learning them.

    But is there any return? Do I have anything to give? What about all the accelerated development talents, tricks, and skills I’ve learned over the years to hit impossible deadlines with design and code… how do I convey value to them that a traditional software dev would understand? Obviously the Ruby guys “get” what the advantages of loosely typed languages, and the agency non-coders love when we have good attitudes to make their designs do awesome dyanmic things, but how do you translate that to AS3, when you are rewarded twice for strong-typing: speed & maintainability? I could not strongly type and turn off compiler warnings, type far less code, and get things done a lot faster. But to what gain? We are no longer suffering the agency problem under-bidding on both price & time forcing designers & programmers to slave away at immense hours of time (well… some of us). Yes, clients in the Enterprise sphere are as demanding as well, but we’re talking months or years here, not days & weeks.

    I guess what I’m saying is, the software developers coming to Flex already have preset ways they develop; Flex is just a technology in their repertoire where I think for a lot of us from the Flash background, it’s a way of life. And that way of life has drastically changed. And I think it’ll continue to change as swaths of more and more traditional software devs, both enterprise and small, get on board in such numbers we’ve never seen before. For them, it’s a nice, new opportunity to create more rich GUI’s that are easier to deploy, easier to develop for, and more enjoyable for all involved. For us old skoolerz? Our life is changing. What I’m having problems accepting is that it’s “supposed” to fit into traditional development molds. It seems just obvious now that the CompSci’s have their true IDE, command line compiler, and strongly-typed runtime. To me, it just seems one of the many ways to utilize the SWF platform, and therefore, nothing is implied or inferred.

    I feel like I have a lot to offer. I know how the Flash Player works. I know how to get a variety of designs to work. I know how to talk any back-end there is. I know how to get complementary technologies and tools to help make my development & design implementations efficient. I remove headaches from server-side developers, and they remove mine. I have client development experience that translates to both web application development and desktop development. I can get things done, and if need be, get them done quickly. The J2EE guys like this. What they don’t understand is us Flash and early Flex devs weren’t around for the EJB wars, or all of the other battles fought over blogs, email lists, and conferences about how Spring & Hibernate revolutionized server-side Java development, and that industry as a whole. When we ask questions, it’s because we didn’t participate in that. We had our own battles dealing with the maturation of a fledgling language moving from a dynamic environment to a more traditional programming one. Those are growing pains, yes, but they do not necessarily translate to process ones. This doesn’t mean we have the proper context to appreciate what you all have to offer. Just something to keep in mind when you explain something that’s wonderful in your work flow, and you’re greeted with a blank stare. Something to think about. We’re not dumb, we love new toys, and love this stuff as much as you do. An ActionScript developers’ life is fraught with learning new things all the time. That’s what makes it fun. It’s just there are wayyyyyy more opinions & options now than 5 years ago.

    I know that insane deadlines, hastily written ActionScript 1, and non-source controlled projects will still exist for some time. This could even be for me via side contract jobs I take to supplement my full-time income. To me, those development decisions exist because you can thrive on them in such fast-paced environments. It’s just been really hard to reconcile the lessons I learned from those areas into traditional software development, specifically in interview conversations. You can really sound like a buffoon to those people even if you’ve had a long history of proven successes & notes of merit. So far, I’ve had a few instances of tension with the bigger companies, and none with the startups. Basically, those who use more Enterprise development technologies struggle to understand why I wouldn’t WANT to use their uber-involved processes whereas the startups and I really have synergy in “getting things done”. When I bring this up to the Enterprise potential employers, they are definitely in agreement that they too like to get things done.

    …but it’s not the FIRST thing they said.

    Anyway, just wanted to point out it’s something that’s been challenging for me to reconcile: past learned lessons on “how to survive as an engineer in a fast-paced environment” coupled with “how to develop maintainable, long-lived software”. Different worlds, man, different worlds.