Saturday, January 23, 2010

It's Been That Long?

I have a an idea for a post, but I really want to formulate the concept behind it before I set it down in writing.

Plus, I've been busy on a project. Meaning, tattoocapture is on hold. Yet again. Le sigh...

Please bear with me.

Wednesday, December 30, 2009

wheniwas19 Year in Review

2009 has been one strange year.

January. Organic, where I was working as their Manager of Integrated Media, moved me from Creative to Technology. Like the Dude, I abide.

July.I was hired at henderson bas as their Director of New Media. Five weeks later, I quit and went freelance. A bad fit is a bad fit and I was a bad fit at henderson bas.

September. I spoke at Flash on the Beach in Brighton. I outlined what I considered the 10 Best Excuses to NOT do Amazing Work. I then went on to do the same presentation for Sheridan College, Seneca College and a mini-version for the monthly FlashinTO gathering.

December. I worked on a little thing for Galaxy Goo.

From July until now, I was/am working on Tattoocapture. As of this moment, it's still in progress.

My first freelance project went live. Very Exciting.

The Estée Lauder site I worked on with many others in 2008, won some awards this year.

I'm looking forward to 2010. If 2009 is any indication, I'm in for some fun. I like working. If you have some work for me, get in touch!

Labels: ,

Thursday, December 17, 2009

TattooCapture Update



Here's the skinny on TattooCapture. I called myself out at Flash on the Beach, then Sheridan College, a FlashinTO user group meeting and finally Seneca College, for being a procrastinating chump (see my presentation 10 Best Excuses to NOT do Amazing Work)

Currently the site is still incomplete. I've spent quite a bit of time on it and have stricken plenty of items off my to do list but there are many many more items remaining.


image scaled roughly 50%

As you can see in the screengrab above I have a lot done. The design of the site is rough and will remain so until I can convince one of the many talented designers I know to make it pretty. But as Chris Pelsor has said "Get version 1 done and worry about the rest after".

What's working;
    Age verification
    Registration and account creation
    Login
    Account update (for facebook, twitter, etc)
    Avatar creation (using a webcam or uploaded image)
    Gallery creation
    Image creation (using a webcam or uploaded image)
    Adding images to a gallery
    Viewing galleries
    Viewing images
    A development notes window
    An instructions window


What isn't working (yet);
    Viewing updated user info
    Viewing specific users
    Search in any form
    The actual mechanism for a tattoocapture (take one image, put it on another, save)
    Add friend functionality
    Verify friend functionality
    Send in-site messages
    Ratings on images
    And much, much, sigh, much more


Anyway, I know the amount of egg on the face one wears when they commit to specific launch dates and can't make it. I'm relatively embarassed, but considering what's been accomplished so far, I can safely say I've done a lot.

Never fear, this is not the end. It's simply an update so you all know I didn't just stop. I'm really excited with the progress. If you want to play with the site as is, send me an email

Labels: , , ,

Wednesday, December 16, 2009

2010 Subaru Legacy

Firstly, I have to thank Tribal DDB Toronto for the opportunity to work on this project. Their timely assignment firmly planted me in my new freelance role.


Welcome to the 2010 Subaru Legacy

This project had some challenges. Not the least of which was the fact that when I was pitched it, the art director (the effervescent Missy Kelley) involved said they wanted PaperVision 3D. Although I took a workshop on PV3D with the inimitable John Grden, I can honestly say I still know next to nothing about how to implement this powerful class set. It's embarrassing to admit but I'll live.

At any rate, here comes the fun part; all the cool stuff I put to use. Either new to me or a finessing of things I already know.


Starting the audio experience

1. Audio triggering. I used flv video (f4v, actually) for the audio. The audio is in binaural format. Meaning if you happen to be wearing headphones, the audio will wrap your head in true surround sound. It's wicked cool. They want the image sets to appear based off timing in the audio. eg. the narrator is talking about the radio, the radio image ought to be front and center and the set that image is in ought to be the focus. To accomplish this, I used XML and a type of closed captioning. When using closed captioning, you can either set an event within the audio export or you can use XML with timecodes in it and look for these. I opted for the latter. A. because I couldn't be sure the audio wasn't going to change and I didn't want to have to input all the new events in the audio. B. because I'm really familiar with XML.


No PaperVision 3D? No problem. Sort of.

2. Fake 3D. Since I didn't know PV3D, I could use the 2.5D implemented in Flash 10 to allow for skewing and perspective. Therefore, when placing the images in their sets, I'd use a center point (locally, the 0,0 of the set) and randomly place the images around that point. Their distance from the center dictated the amount of perspective they would have. When that image becomes focused it swaps it's perspective on the vertical axis. It's a fairly good effect and easily set up.


Highlighting a feature.

3. Call outs. Now, having worked with auto minisites for pretty much my entire career, I know the four pinnacles of the industry; power, performance, comfort, safety. It never changes. Call it what you will, but those things are paramount. I think you can probably add cost in there now, but whatev. I used the image sets and XML to control callouts. If the callout existed (in the XML of an image) it popped open when that image was the focus.

4. swfObject loading issues. I blogged about this. Suffice it to say, thanks to Chris Pelsor and Stacey Mulcahy, this got sorted out.


Soundboard with downloadable MP3s

5. Downloading of files. There is a soundboard in this piece and the request to be able to download the MP3s came from on high. I'd never done that before, but it was fun to make happen.


En francais, s'il vous plait.

6. Localization. The request from a Canadian client was of course that this needed to be in french and english. I wanted to be able to easily access this portion by simply swapping a variable. eg. ?lang=fr (see french in action)

So that's Subaru Legacy in a nutshell. I'm pretty proud of this piece. Thanks again to the crew at Tribal DDB Toronto for the opportunity!


That's all she wrote

Labels: , , ,

Wednesday, December 09, 2009

The Hype Over Hype

I attended Joshua Davis' Hype Workshop last month at the RMI space in Toronto.

I had a hard time figuring applicability in my daily work life.

So I sat on Hype, undecided what I could do with it. What I missed in Josh's workshop was the fact that Hype is simply a collection of classes. Use what you want and ignore what you don't. Hopefully, I'm not the only one with that misconception. If I am, I'm dumber than I thought.

Yesterday I had some downtime as I wait on my friend to get to .NET changes for TattooCapture and decided to manufacture something I've always wanted: A class to plot points equally around 360°. Why? Well... that will become clear in the future. In the meantime, that was my goal. Feed it 8 points and it comes back with how many degrees each would be to be equally dispersed around a circle.

It was a pretty simple solution; divide the number of elements by 360. Tada! Then use that degree number within the class to return what degree an element would be. Further, use it to return what radian (what flash uses to calculate degrees) that element would be.

I ended up with the Orbit class right-click and 'save as'. Usage boils down to importing the class and an instantiation. Then using it's public functions. Therefore;

import com.orbit.Orbit;

var orbit:Orbit = new Orbit;
orbit.increment = 15; //15 being the total number of elements
var degree:Number = orbit.getDegree(8); //8 being the 8th element
var radian:Number = orbit.getRadians(degree);
//returns the radian value for the 8th element out of 15;

//alternatively, you can piggyback the calculations
var radian:Number = orbit.getRadians(orbit.getDegree(8));


So yeah.

Here's the first example. Each time you click the start button, the piece will pick a random number of elements, then run through that number and each element on stage in it's prescribed location. Sweet.

So once I figured that out, I started monkeying around with it, as is my wont. Change the number to see the progress.

In comes Hype.

Eventually, in version 4, I decided to muck about a bit with Hype. I wanted to draw to Bitmap was being done and with Hype, I had a built-in class to do just that. BitmapCanvas. Worked like a charm.

Messed around for another couple of versions and in version 8, added in FilterRhythm and TimeType. So far so good.

In version 10, I added in colorPool. Honestly, it all starts to get a bit silly and really I'm just messing around with minor alterations.

In version 13, I dumped my Event.ENTER_FRAME for SimpleRhythm.

Finally, with some more tweaks, I have this (basically) where I want it. Version 19. I might spend some more time with it, but it's in a place I like. I left it running while I wrote this post and this is what I got.


click the image to see it full-size

The moral of the story is; If you keep your eyes closed, you won't see the path in front of you. How's that for a fortune cookie? I oughta be a writer.

Labels: , ,

Tuesday, December 01, 2009

Life as a Freelancer - The Talk

Last Wednesday I presented at the monthly FlashinTO gathering. The topic was my new (semi) status as a freelancer. There are adjustments to lifestyle to make in terms of being a freelance developer. Freelance anything, really.

I went over money, schedules, over-work, under-work, etc etc.

Life as a Freelancer.

The dots on the bottom are the slides. Click away, friends, click away.

Thursday, November 05, 2009

10 Best Excuses - Deadline Management



Last night I had some time to myself to really mull this over. I had mentioned in my session that there often is a great difficulty meeting personal deadlines. The likeliest candidate for that is due to needing to meet deadlines every day professionally.

This is one of my personal hurdles and one I struggle with. Here are some pointers;

1. Treat your personal work as a normal project. If you set a deadline, do your best to meet that deadline.

2. Be realistic with your self-set deadlines. If you are too aggressive and you really won't make it, you've created a nearly 100% failure rate. "I can't get this done, I might as well not do it."

Finding that middle ground of being realistic while still reaching your goals is a difficult one. This is where being a project manager would be truly handy. Consider all the factors involved in your project. Try to include time researching, time developing, time co-ordinating (if there are other people involved) and time in QA. If you are able to break down your tasks logically, a reasonable timeline should evolve.

This situation is all too personal for me. I desperately want to finish my site, but I don't want to be too aggressive in development that I'll miss important things. However, I also don't want to simply ignore setting a deadline or I'll allow this project to linger indefinitely.

I am making every effort to be finished my site, TattooCapture, for my birthday on December 1st. A good present, if I do say so myself. I believe I've been reasonable with myself. I've worked a tremendous amount at the expense of my TattooCapture to provide a cushion so I can work in peace.

We'll see how it goes.

Labels: