Uncategorized

Sneak Peek at content from my CFUnited Presentation this Friday

CFUnited speaker badgeThis Friday, August 14, I’ll be speaking at the CFUnited conference in Virginia. My session is titled Riding Coattails to the Top: Using Open Source Flex and ActionScript Projects (yeah, I know my session titles are getting too verbose) and will be all about using the thousands of open-source Flex projects that are out there in the community. I’ll be covering projects like Axiis, Adobe’s Open Source Media Framework, computer vision libraries, and a host of other cool projects that you should know about.

I’m preparing a handful of demo applications that I’ll be showing off as examples of integrating some of the coolest open-source work out there. The goal of each example is to show how to integrate at least two open source projects together to create a sweet application. The screenshots below are from a few of the apps that I’ve been working on, just to give a little taste. If you’re going to be attending CFUnited be sure to stop by my session on Friday at 1:30.

osmf_example

twitpic_example

If you’re going to be at CFUnited be sure to flag me down and say hi or find me at the bar on Friday night!

Standard
Uncategorized

I got punk’d at 360|Flex (in my own session!)

So there I was at 360|Flex giving my presentation. I guess when you call your session “Cool Shit” you’re just asking for people to fuck with you 🙂 So I’m going through some example applications and I’m near the end of the session and I get to the grand finale. The demo I was about to show was an augmented reality demo, combined with some head tracking stuff too. And I figured since it’s called “augmented” reality I’d do a demo that really captures that word, so while standing there in front of a packed room of developers I take off my shirt to reveal an augmented reality marker on my chest. When I step in front of the webcam the video detects the marker and shows a big muscular chest instead of my wimpy geek body. As I was doing body builder poses and taking silly pictures, suddenly *whack* – I get hit in the face with a flying object. Not quite sure what the fuck just happened, so I keep going on with the presentation like normal (for some reason the fact that someone threw something that hit me in my face didn’t seem all that abnormal). Then suddenly there’s a massive barrage of projectiles raining down on me. It takes me a while to figure out what’s going on, and then finally I understand: the audience is pelting me with little bouncy balls. What the fuck?

This video of part of my session has been floating around a bit, and if you don’t know this back story you probably have no idea what the hell is going on. But check out the video, and when you see me posing with my muscles and then suddenly recoiling in pain, and then you hear everyone laugh, that’s when I start getting hit with a shitload of bouncy balls.

So it turns out that some devious developers (I believe led by Nate Beck) were out drinking at some place where you play games and get tickets that you can redeem for prizes (aren’t you boys a bit old to be at Chuck E Cheese?). So they get a bunch of tickets and what do they decide to cash in for? Bouncy balls. All bouncy balls. Then the next day they come in to my session, and I have no idea how they pulled this off without me noticing, but they hand out these little bouncy balls to everyone in the first few rows of the room. Apparently the instructions were: when Doug takes off his shirt, let the balls fly. Awesome. I guess word had gotten out enough that I was doing something that involved getting partially naked (either from my tweet or just from me spilling some details when I was out drinking). And you gotta admire the guy who threw the first one (and hit me right in the face no less), that takes balls (pun obviously intended).

So that’s the story behind that video for anyone who saw that and had no idea what the hell was going on. Nate, I admire your creativity, you got me good. But you better watch your back, I’m going to be sure to be in the front row of any presentation you might be doing 🙂

P.S. I’m working on posting all my slides and code from my session, hopefully I’ll get all that up tomorrow.

Standard
Uncategorized

My foray into tweetcoding

I finally broke my Twitter silence and tweeted so I could participate in the tweetcoding competition that Grant Skinner launched. Here’s the code of my amazing entry:

if(!i++) { o=new Loader(); o.load(new URLRequest([“http:”,,”is.gd”,”kUV9″].join(“/”))); } if(o && o.width) { stage.addChild(o); }

And here’s the link to the auto-generated SWF produced by that code.

So for those of you who have been following me on Twitter waiting for me to say something, I hope a dorky joke made of code is everything you expected and more. My entry is kind of cheating I suppose, but it’s all for a good laugh 🙂

The tweetcoding competition is really cool, and people who are taking it seriously (obviously myself not included) are making some really impressive stuff in 140 characters. If you haven’t perused the entries, go to this page and explore. Anything tagged with #tweetcoding is shown in that list, and all the entries submitted are automatically compiled.

And as a tip to others, if you’re going to do an entry, make sure to write it and test it in Flash. I first tried just doing an AS3 project in Flex Builder, but running code in an AS3-only Sprite-based project is quite a bit different than running code on the timeline. It wasn’t until I installed Flash CS4 and tested on the timeline that I got an entry that the tweetcoding compiler would compile correctly (I submitted 3 entries that didn’t compile).

Standard
Uncategorized

What my work day looks like

I’ve been using RescueTime recently to track my computer usage during the work day. I’m not really trying to curb bad behavior or specifically stop wasting time on particular tasks, I just kind of like to see how I work. For those that don’t know about RescueTime, it’s a little time tracking app that runs on your computer and logs what applications and websites you visit and how much time you spend. Then you can see some cool reports to visualize where your time goes.

This chart shows the time I spent on the computer yesterday:
screenshot046

So you can see I woke up a bit past 8 and had a bit of a slow start to the day. Between making coffee and dilly-dallying I managed to waste most of the 9am hour. But then I got into the swing of things. I think the 10am hour is one of my most productive all day. My brain’s well rested but awake (thank god for that coffee) and I have very few interruptions. We do a daily scrum call at 11, so I usually have until then before I get sidetracked with phone conversations and other things that start cropping up. Then I took a 45 minute lunch a bit before 1 and then was back at work until 6.

Here’s the chart that shows the % of each hour that was taken up by Flex tasks, which I’ve basically defined as Flex Builder or debugging in Safari.
screenshot047

So that shows that for the majority of the day I’m either using Flex Builder or using Safari specifically to debug Flex apps. One thing that I found interesting, however, is to compare the time spent on my top 10 activities:
screenshot048

So clearly you can see Flex Builder and Safari rising to the top of the list. Note that RescueTime logs my local testing as file:// since it thinks it’s a web page, but it doesn’t know how to deal with local pages I guess, so that file:// means I was running a Flex app in Safari. One thing that struck me was the total time spent in any particular app didn’t seem that high. Out of an 8 hour day I spent 3 and a half hours in Flex Builder itself. I spent another hour or so testing/debugging in the browser. So about 56% of my total time during the day is actually spent writing code/debugging. The rest is management tools (FogBugz is issue tracking, we use Google sites for project documentation, gmail for email, Adium for IM) and news reading (MXNA, some random article on Washington Post that took me 5 minutes to read). The other thing that made it into my top ten yesterday was watching a demo video of cyn.in, which I was checking out since it seemed like we might be able to use it for project management at work. And to round out the list, pgadmin is a database tool for Postgres databases.

The hour I spent on email should probably get cut down. Since I work remotely, there is a lot of communication over email, but I certainly need to do a better job managing my email time instead of popping back over to gmail every few minutes (although if Flex compile times were sped up I bet my email time would get cut in half). The time on IM (Adium) is essential since the way I communicate with my team is through IM all day long, so that can’t really get cut down at all.

It’s also interesting to see how the little things factor in. If you add up my top ten list there, you end up with about 7 and a half hours. That’s almost my complete work day, which means that all the other crap I might have done, reading blog posts, watching dumb videos, etc only took up a very small amount of aggregate time. That makes me feel good about my overall productivity. There are about 90 total entries in the RescueTime log for yesterday, but most of them take up only seconds of time (scanning blogs, quick Google searches, etc).

So that’s what my day yesterday looked like. I know this isn’t directly related to Flex, but I thought it was kind of interesting and I need to get back into blogging one way or another, so bear with me while I get back on the blogging bandwagon. If I made New Year’s resolutions then getting back to blogging like I used to would be at the top of my list.

Standard
Uncategorized

Why did I stop blogging?

I haven’t been blogging like I used to. It’s been a month since my last post (and that was just a silly cartoon). I’ve been thinking about why this is, and there are some typical expected reasons (busy work schedule, extra non-work commitments, a recent move, etc etc). This is all part of why I’ve fallen off the blogging wagon, but it’s not the whole story. This post is a bit of a dive into my psychology, trying to get at why I blog and where I’m trying to get to in my life. This isn’t a technical post and it’s not really even about Flex. It’s about me and my brain and my feelings. So if you don’t like mushy crap, you can stop reading.

First, the standard stuff:

  • Intense work
    I took a full-time gig with Universal Mind and we’re about to launch the product that I’ve been working on for a very long time. It’s one thing to work on a consulting gig where you walk in, do your shit, and get out. This is different. This product has so much of my time and energy invested in it. It’s my baby, and because I’m so invested, it consumes more of my mental time than any consulting project ever did. It’s not like I work 100 hour weeks for UM, I work normal hours. But my head doesn’t shut off when I commit my night’s changes and walk away from the computer. So that means I’m thinking about Flex for a huge portion of my non-work hours.
  • Writing Flex for Dummies
    Flex For Dummies basically took over my weekends for 7 months of my life. I wrote from Friday night to Sunday night (our deadlines were Monday and I usually turned in a chapter around 1 am). I didn’t go out, I didn’t go on weekend trips. And the last thing I wanted to do was blog. But that process is over and the book’s about to come out! I now have my weekends back, but I also have a new appreciation for my free time. I used to do a lot of blog posts over the weekends, now sitting in front of the computer is the last thing I want to do.
  • Moving in with my girlfriend
    It’s been about a month since I moved from San Francisco to Berkeley and moved in with my girlfriend. So I was dealing with the whole packing and moving thing, and also adjusting to the new living situation. Things have been fantastic since moving in, and this is another reason I’m not blogging as much. After a day of work I’d much rather go to dinner with my girlfriend and spend time hanging out with her instead of sitting in front of my monitor writing code.

So that’s all the stuff that I’d tell you if you asked me why I haven’t been blogging. “Man, I’ve just been so busy, I can’t find the time.” There’s a lot of truth to that, I certainly don’t want it to sound like I haven’t been busy. But largely the “I’ve been busy” excuse is bullshit. So why haven’t I been blogging?

I’m not hungry anymore.

Now we’re getting to the meat of this. I’ve been thinking about what drives me to blog and reflecting on the past year and a half. I’ve had a crazy ride. I went from being an unknown kid learning ActionScript and Flex to being a semi-famous-within-a-very-specific-geek-circle, book-writing, highly-paid, influential expert (and yeah, clearly you can tell that it’s all gone to my head). And it all happened in a year. My salary multiplied, I was speaking at conferences, I had a book deal. That’s some seriously crazy shit. That wasn’t entirely my plan from day one, although as things started picking up steam I started aiming higher and higher. I wanted to be famous. I wanted people to think I was good. I wanted to be in demand, to be sought after.

And so now what? What’s the next step? I’ve got a stellar job, I make bank, my book’s about to come out, I’ve got a reputation I’m proud of, and I’m being flown halfway around the world to speak at a conference. The people that I thought were rockstars, that I learned so much from while I was getting started (and still do every day); they all know who I am now (some of them are even good friends).

I used to be so hungry to prove myself. If someone had a coding problem they couldn’t solve I wanted to be the guy who showed everyone how to do it. I wanted people to stop and say “woah, where the fuck did this guy come from?” And now that I got that I guess I feel a bit drained. That fire to be the best, to be known, is dampened. I’m not saying I’m the best, I’m just saying I no longer care like I used to.

The Tech
There’s also a technology aspect to this. I’m starting to feel like I’ve taken Flex as far as it will go. I started proving small things; how to make little components, or how to hack some piece of the Flex framework. And I rode that until I knew Flex inside and out. I hit every brick wall (I climbed over or busted through some). And it was all so challenging and rewarding. I was unlocking secrets, uncovering things people didn’t know. But in terms of intellectual curiosity I’ve exhausted Flex 2 and 3. Of course there’s always new stuff in Flash Player 10 and Flex 4 that is going to be really interesting. But my interest has been shifting. I don’t want to solve small problems with a component or with a framework. I want big problems. I want new problems. I want real problems. I want to solve something that’s not just a technical detail.

I’m not ditching Flex or ActionScript. On the contrary, I feel like I’ve gotten to the point with the technology that I’m supposed to be: Flex and ActionScript are just tools to solve problems, not problems in themselves. When I started blogging Flex was a problem I was chipping away at, hacking together examples and tweaking the framework to get it to serve my needs. Now I want to move beyond that, and take on problems that are information problems on their own, and Flex just happens to be the best tool I have at my disposal.

The Next Step
I’ve been reading a good bit about information visualization as a field of research and soaking in as much as I can. The product I’ve been working on for Universal Mind takes geographic information visualization to a level that nobody’s done yet on the web (I put the “on the web” qualifier there, but I hope we’re working on stuff that pushes limits for any software, online or offline). And that’s just scratching the surface. There’s a ton room for innovation in the geo space. It’s a field that has so much potential but is stifled by a few big players and their ideas about how things are supposed to work. So I’m hoping I can help shake that up a bit. But geospatial information is just one small piece of the whole pie. I want to visualize everything. I want to create new ways of seeing data. And this is a field without limits. There is no end to the possible innovation.

So in the months ahead I hope to use this blog as an experimental proving ground for my forays into data visualization. I’m doing a lot of this for work, which is awesome because that means I get paid to do interesting work, but it has the downside that I often can’t share code. I imagine there will be more posts that are examples of what we’ve done (videos or live apps) that don’t show exactly how we did it. That sucks, but I think there’s still a lot to be said for showing off inspirational stuff. I’m also going to be trying to refocus on blogging small experiments in data visualization.

So if you’ve made it this far I’m impressed you read through my psycho-babble ramblings (or maybe you just skipped to the end looking for something worthwhile). From here on out I’ll probably keep the “dive into Doug’s head” type of posts like this to a minimum, and get back to blogging cool tech.

Standard
Uncategorized

A picture of my sent email box

Recently I haven’t been blogging at all. I’ve largely fallen off the face of the earth. Take a look at my sent emails from the past week and see if you can figure out why.

sent_emails.jpg

I use colored labels in gmail to help easily categorize emails. The blue just means it was an email I received to my personal email address (as opposed to the green which is to a work address). The grayish means it was sent to a mailing list (I responded to one thread on the papervision list and 3 on flexcoders). The green is for work (3). And then there’s the red. The red is anything that has to do with the Flex For Dummies book that we’re wrapping up.

So if I haven’t gotten back to you I apologize. The red consumes my life. But we’re close.

Standard
Uncategorized

Where are the dope Silverlight demos?

There’s a lot of buzz about Silverlight 2.0 right now, and people are expecting some big announcements at MIX soon. But where the hell are the cool Silverlight demos? Offline support would bring Silverlight closer to competition with AIR, and it’s looking like SL 2.0 is going to be an actual competitor with Flex now that it’s going to have a framework of controls (SL 1.0 wasn’t even close to a Flex competitor, it was more a Flash Player competitor). All that sounds sweet, almost makes me want to download Expression Blend and try it all out, but again, where’s the cool stuff?

I figured the first place I’d look for the kick ass Silverlight demos would be the silverlight.net showcase page by Microsoft. I mean, there HAS to be sweet stuff shown there right? Um, not so much. I checked out each of the demos on the main silverlight.net page and here’s what I found:

  • screenshot013.jpgInfragistics Silverlight demos
    This site has a few screenshots of some charting stuff in Silverlight. The charts look pretty good in fact (heh, at this point anything that doesn’t look like the default Flex charts feels “fresh”). But the Infragistics demo site itself (which is a Silverlight app) is slow as balls and doesn’t impress me at all. It feels clunky, the animations are rough, and is just kinda boring.
  • screenshot018.jpgSilverlight book flip effect
    On the Microsoft Action Pack (wtf is that?) product page they use Silverlight for that amazing book flip effect. I won’t rail on this too hard, but suffice it so say I think the book flipping thing is an awful idea 99.99% of the time (that .01% of the time it was actually useful was the anatomy example Ely Greenfield did, that was the only time I’ve ever thought book flipping was useful). The Silverlight flip effect was super slow (like in the unusable way).
  • screenshot014.jpgMicrosoft Dynamics
    I think the only use of Silverlight on this page is for a non-interactive animation. Consider me unimpressed. But maybe I’m missing something since the site’s in Italian. Does this Silverlight demo do more than simply play a short video?
  • screenshot015.jpgSanremo Anche Noi
    This app’s actually pretty sweet, it’s a well designed video showcase. It’s simple, basically just lets you browse various videos, but does a good job at showing good quality video is designed well. There’s nothing jaw dropping here, but it’s a solid, well designed experience.
  • screenshot016.jpgZebrakho
    This is a store that sells animal skins and heads and stuff. And as much as I want a big animal head mounted on my wall… But seriously, the site uses Silverlight for a few small animated effects, but it comes off feeling like an old, poorly made Flash site, complete with that scrolling news-ticker thingy to show product specials.
  • screenshot017.jpgVodafone Interactive TV
    Another video site, complete with a skip intro movie! Ahh, back to the good old days. Seriously guys, if you want to do the whole “better than Flash” thing then don’t take us back to the skip intro era. The site itself is pretty simple, again just showing off a bunch of videos.


Yes, I am aware of the Silverlight showcase, and I’ve been browsing through a little bit, but it’s hard for me to wade through so many apps in order to find that one amazing example that blows me away (yet to be found). I did find this example though, which was cooler than the ones on the front Silverlight showcase page.

  • screenshot019.jpgMicrosoft TechDays
    This is a pretty cool design that lets you drag around polaroid looking photos that play video. Cool concept, except it runs pretty slow on my machine, which destroys the smooth dragging and resizing effects. I can almost guarantee I could make the same concept that would feel smoother and slicker as a Flex app.


screenshot011.jpgI also tried the Microsoft download center, since I had seen some people blogging about that Silverlight app. My overall impression? It feels like an Ajax app. The animations are limited to the simplest of dropdowns and even those feel slow and choppy (click on the “Browse Downloads” button). I don’t see anything I haven’t seen with JavaScript stuff, and the overall site just feels like DHTML, even if it’s not.

This all feels like old, bad Flash
I feel like I’m in a time warp. These example apps all feel like old Flash sites to me. They feel clunky and slow (is that because I’m on a Mac?). They even have design elements that people used to use but have since been demonized and cast aside (skip intro, news ticker).

Show me something I can’t do
I have yet to see a single thing that I can’t do with Flash/Flex. Now I’m not saying that Silverlight is worthless unless it has sweet features above and beyond what Flex (or Flash Player) can do. Having a competitor is a good thing, it’ll keep Adobe on its toes (H.264 anyone?) and drive innovation. But for all the hub-bub about how Silverlight is going to be awesome, I have yet to see anything awesome being created. It all feels slow, clunky, and poorly designed (that last part isn’t Microsoft’s fault obviously). I just want one thing that makes me sit back and say “Holy shit! THAT’S what you can do with Silverlight?” Just give me that, throw me a bone.

I had that moment when I saw Pavan Podila‘s WPF example of doing 3D layouts with WPF. That blew me away (he made it back in June) and I realized that WPF ain’t nothing to fuck with. If you get 3D out of the box and can create such fluid layouts, I may just have to start learning WPF. Granted, you can do very similar things with Flash, but Pavan’s videos are just so damn smooth and responsive. BTW, Pavan’s a really cool guy, I met him at 360Flex just recently, and he’s one of the few guys I know who rocks both WPF and Flex. We’re lucky to have him on the Flex side (Pavan’s on the Degrafa team) because not only is he a smart ass dude, but he has a whole different perspective because he knows how they do things in WPF. For those that haven’t seen, here’s a video that Pavan made to show off 3D layouts in WPF:

So I know most of the people who read this blog are Flex devs, and that the crossover is pretty slim, but in case anyone knows of the dopest, most jaw dropping Silverlight demo they’ve ever seen that would make me mess my pants, send me an email. I don’t necessarily mean an actual application, I just want to see something cool. Maybe there’s some sweet stuff hidden away on blogs (I know there are tons of cool Flex demos on people’s blogs). Bonus points if you have something that does cool data visualizations stuff. And yeah, I’ve seen the tafiti demo, don’t send me that one. And super double bonus points if the app wasn’t made or funded by Microsoft.

Standard
Uncategorized

My Favorite Blog of 2007

Was not a Flex blog at all. It was John Nack’s blog. John Nack is a Photoshop dude at Adobe. He posts frequently on tons of design topics. Sometimes he blogs about Flash experiments, sometimes typography, photography, etc etc. I’ve come across some of the most inspirational stuff by reading his blog. John posts a lot about cool data visualization stuff, which is incredibly applicable to the Flex/Flash world. His typical post includes a half dozen or so links to cool shit. I’ve never been disappointed by clicking through any of the links he posts.

John Nack's Blog

I read a ton of Flex/Flash blogs. If you write about Flex and you’re on MXNA, I read your blog. But sometimes you have to get out of the Flex bubble to get your ideas. Sometimes we get too insulated, and forget that there’s a world outside of Flex. On one level or another we’re all designers and artists when it comes to making applications. Sometimes the most influential ideas come from photographs or typeface experiments and not ActionScript code samples.

In this same vein I should really start reading some of the Microsoft blogs out there. At the moment almost all the blogs I read regularly are in the Adobe sphere of influence. But that means I miss the cool shit from the other camp. Unfortunately I just don’t have the background software knowledge to make most of the MS posts interesting. If someone wanted to put together a monthly collection of MS-related blog posts that apply to RIA design or that would be interesting to Flex devs, I’d read 🙂

Anyway, thank you John for consistently posting cool shit.

Standard