Posted in May 2008

Code Documentation

by

I recently finished a campaign site for Starbucks in order to promote the Starbucks brand of coffee available in grocery stores. The address is www.starbuckscoffeeathome.com. It was a very pleasant project to work on, but it was also quite fast paced. The project also remained in a state of high flux until launch. These two aspects combined made it nearly impossible to keep accurate comments on my code. So, after this project was complete I decided to re-write my UML for it based on the way it ended up (rather than the way I originally designed it). After doing so I’ve come to believe this serves as better and more digestible documentation for a developer than most inline commenting. Thats not to say it would completely replace code commenting, but I feel as though its more useful for another developer to see in order to get a grasp on how a body of code works. For this diagram I didn’t have the right tools available to me immediately so I used what I had (which was Adobe Illustrator). This required a greater investment of time, but the time consumed was likely on par with the amount of time required to produce sufficient written documention. For most practical situations, a simple sketch would suffice. Have a look at the diagram (and submit your critiques if you like).

Download the Starbucks basic class UML (PDF).

I’ve also conducted a certain amount of performance profiling that I will write up in the near future.

IA Design Patterns

by

Here’s a site with some cool IA patterns.
Nice One
If you liked that, there’s more at Yahoo’s Design Pattern Library.
This link is from Information Aesthetics… aaand there’s more like this on Ethan Eismann’s blog who is incidentally an Adobe Thermo Developer.

Introduction to Flex Resource Bundles

by

Hark, Flex developers. Lend me your ears! I must take this post to implore you: use Resource Bundles! Trust me, I know, there’s a lot to keep up with these days, but if you aren’t already privy to the awesome secrets of the humble bundle, hopefully I can help convince you to use them. I’ll show you how, without breaking one bead of sweat from your brow! First, let me tell you why they’re cool. Then, I’ll show you how to get rolling with your first bundle. Then, I’ll set you loose, and hopefully you can all write in with excellent questions and help me make this a great resource for the next readers! Read on, fair Flexer.
Continue reading

Pixel Shading and Adobe AIF

by

Pixel shading is a feature supported on graphics hardware starting with the Radeon R200 based cards (8500-9250) and the GeForce FX series. Though pixel shading was first specified in OpenGL 1.1 and DirectX 8, it wasn’t implemented by consumer grade hardware until OpenGL 1.4 and DirectX 8.1. These consumer grade cards are enumerated on the Adobe Labs AIF toolkit page . Before shaders existed the graphics pipeline for real-time rasterisation (via a GPU) was fully procedural and the only means by which a programmer could interact with that processing pipeline was to use the standard APIs. However with shaders, any 3D author has the power to fully control the rasterisation algorithm at the frame buffer level. The only downside to this level of control is that the shader must be pre-compiled before put into use. Nvidia has recently opened the doors up more by introducing CUDA. It would be really interesting to see Adobe produce something similar (but cross-platform) with some future version of Flash. Whether that would be a good or bad thing can be debated and discussed for a long time.

Last night I decided to break out the AIF toolkit again and work some mathy expressions into a filter. Up to this point most of the filters that I’ve seen are along the lines of what you will find in Photoshop’s menus. Those filters certainly aren’t bad, but I’ve always been more interested in how an image can be sampled and reconstructed in a manner not unlike what’s found in the 90′s DJ scene. So with that introduction I’d like to demonstrate my latest filter.

Ripped Filter (v3) image 01

Ripped Filter (v3) image 02

Just like in Flash, you can think of the canvas as a 2D coordinate plane. For this filter I used a few trigonometric and polynomial expressions in combination. Most of the polynomial coefficients are also parameters that you can manipulate which is where all the fun is. More to come, stay tuned.

Download the filter.