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: , , ,

Friday, September 18, 2009

Estée Lauder win

Update September 25 Turns out Estée won in the "Beauty and Cosmetics" category at the OMMA Awards a few days ago! This thing is a monster.

I've found out the site I worked on, Estée Lauder, has won;

two WebAward awards (Outstanding Website, Best Fashion Website)
one Internet Advertising Award (Outstanding Achievement In Internet Advertising)

It's also an entry at Cannes! (Cosmetics, Beauty & Toiletries)

More after the jump;


Managing a team of five Flash developers and co-ordinating remotely with the New York office was a true test of my managerial abilities. The site went down to the wire, but in all, I was really pleased with the efforts of my team. Todd Fraser and Stephan Tanguay, especially.

Not to mention, it was my very first AS3 project. I've learned a ton since then in implementing AS3, but I cut my teeth with this project. My favourite self-built classes, TextFormatter and MainImporter were first coded for Estée Lauder. I owe Organic, a debt of thanks for being able to work on this project.

My focus, beyond management, was the Skin Care Diagnostic Tool




Honestly, what better way to start the day than to find out work you've done won awards?

In case I forget, FOTB, here I come!

Labels: , , , , ,

Wednesday, September 02, 2009

Facts about Fees

I forgot to blog about the re-release of Fee & Processes on Bank of America. Now known as Facts about Fees.



This had several fun challenges. The flash was loaded and reloaded by the html wrapper every time the user changed sections, so I made extensive use of the SharedObject to store visits. This way, the user gets a different experience from the video on the first visit and subsequent visits. Quite fun.

There were some alterations to my base once I left Organic, but it's still functioning and I'm quite pleased with the site on the whole. Take note of the Asked & Answered windows with their cross-linking and the control you have over the video, muting, volume, etc.




Plus, I incorporated pre-existing AS2 demos from the original site and brand new demos from the InfoCenter engine. This piece is rife with yummy hugh goodness.

Labels: , ,

Thursday, August 20, 2009

FoTB 30 days away!

Things are really motoring. I've moved http://tattoocapture.com over to my friend John Breton's server. John is a .NET guy and knows his junk, lemmetellya.

I have never done so much using webservices. Registration, login, updating, uploading, friending, messages, world locations, etc, etc. I have exclusively been using Carlo Alducente's WebService class. It's been invaluable and I don't know where I'd be without it.

Soon enough I'll be making use of Senocular's Transform Tool.

Interested in being a beta-tester (or as I like to call it, Better Tester)? send me an email. I hope to be ready for full-scale testing in about a week. Many hands make light work, as they say. Many eyes make amazing work, I say.

The end goal for this is to be finished by Flash on the Beach where I am presenting my session The 10 Best Excuses to NOT do Amazing Work. I hope to see you there! I did say I would light a monkey on fire to compete with Quasimondo's presentation happening at the same time as mine.

I've been updates about TattooCapture.com development on Twitter : tattoocapture

Labels: , , , , ,

Wednesday, August 05, 2009

News wheniwas19 styles

It's been over a month since my last post. Things are afoot, as they sometimes are.

  • I've left Organic to take the position of Director of Rich Media with henderson bas. Todd Fraser, a Senior Flash Developer at Organic came with me. Very cool.

  • I've joined the cool kids and started a Twitter account

  • I'm working on the site I've been talking about for the last almost 3 years. I've mentioned it a few times. I renamed the site TattooCapture.com because Camgasm might seem funny, it's just not appropriate. Follow the development over Twitter

  • Not coincidentally, I am working on my presentation for FlashontheBeach in conjunction with building the site. "What? A presentation on how to get your work done, and you're doing work?", you ask. "Yeah, it's silly, but true.", I answer.


  • I am super happy to have a friends like John Breton. He has been instrumental in being my go to .NET and DB guy. Without him, I'd likely still be sitting around moping about how I can't make TattooCapture.com Also, I lucked out that Jason Munger will be doing some tattoo designs for me. He's a super-talented guy and I'm lucky to count him as a friend.

    Many thanks, John and Jason.

    Suffice it to say, there have been a lot of late nights and new challenges. I'm going to be looking for beta-testers sooner than later. If trying out something new appeals to you, let me know.

    Labels: , , , ,

    Tuesday, December 16, 2008

    Creative, Technology and Flash

    If you're not familiar with the standard agency model, you won't know that Flash development falls under either of the two silos of development; Creative and Technology (sometimes referred to as Engineering).

    Now that you are familiar, understand something, I have been in either of those two silos for the entirety of my professional career. Even when I had my own corporation, I was titled "Technical Director" and my partner "Creative Director".

    Why do we not recognize Flash as a separate entity? It's been around for over ten years. With the addition of widespread broadband, it's more prevalent than ever before. It has effectively knocked out all competitors in the online motion graphics realm. We have entire companies now that specialize in only flash dev and are contracting themselves out to agencies to execute their work.

    It's my opinion, such as it is, that agencies need to revisit their office model and alter their thinking. Flash Developers and Designers have been honing their craft since the invention of the software. There need to be advocates for the craft at agencies, not developers speaking to Creative Directors or Technical Directors, giving their opinions. A new person at the agency table is needed.

    An equal voice in the form of a Flash department. Equal to Technology, equal to Creative.

    It's long overdue.

    Labels: , ,

    Thursday, February 07, 2008

    BulkLoader

    This nifty library gives you the power (that's right, I said "power") to load multiple items easily.

    Very nice.

    Labels: ,

    Friday, November 30, 2007

    New Project Launched

    After I returned from Brighton and Flash on the Beach I was immediately booked on a job. To be honest, all I wanted to do was lie down for a week, but that wasn't meant to be.

    Luckily, it was an interesting job and one I haven't done before. A snow globe. I got to do a few things I've wanted to use in a project; copy images via BitmapData so I only need to load them once, and I adapted Seb Lee-Delisle's AS3 particle system for the snowflakes.

    Wish you were cheer

    Ran into a couple of bugaboos; namely SharedObject issues. Somewhere along the line we thought a downloaded globe could access a SharedObject created by a website. I think I knew this already, but I was hoping I was wrong. So we had to go with writing a text file on the fly, grabbing the exe and zipping them both up for download.

    For the embed code, it was a fairly simple matter of copying basic object and embed code and using FlashVars in the code for the blog aspect. One thing I didn't know and had to join MySpace to discover, MySpace rewrites that code on the fly and it does away with whatever it is I had that the globe recognizes for the globe. Any globe embedded on MySpace is blank. It still looks pretty sweet, and the snowflakes still work, but it's a bummer it's not your own globe. And FaceBook won't let the code work at all. If anyone knows anything about embedding swf's in FaceBook, enlighten me.


    Wish you were cheer

    However, if you have a blog, it works fine. See the post below this one.






    Wish you were cheer

    Labels: , , ,

    Tuesday, July 24, 2007

    Leap Years



    In investigating making an age of majority checker, I started thinking about leap years. I know of one person total that was born on February 29th. Statistically speaking, there are bound to be more.

    Anyway, here's a good little function that'll return true if you have a leap year. and false if you don't

    function checkYear(year) {
    return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 1 : 0;
    }

    Labels: , ,

    Friday, July 20, 2007

    gSkinner in PV3D

    Grant posted about some experimentation he's doing with Papervision3D.

    Nice work, G!

    Labels: ,

    Monday, June 11, 2007

    Flashbelt 07

    I had the good fortune to meet Dave Schroeder of Pilotvibe fame at this spring's FiTC.

    In a week's time, he is putting on Flashbelt 07 in Minneapolis. There's a tremendous lineup and I hope it's a great success. I only wish I could be there.

    Good luck, Dave!

    Labels: ,

    Tuesday, June 05, 2007

    Week Off, Day Two

    Today wasn't quite as eventful as yesterday, but still a lot of fun.

    I made my very first BBQ sauce from scratch. Super tasty. However, I added my own little kick of two tablespoons of Tabasco and a tablespoon of Cajun chicken seasoning. I can't help myself. To be honest, if I hadn't, the sauce would have been too sweet.

    The ribs were excellent. I think Libs was suitably impressed. Once again, I helped get Declan down for his naps and just helped him get back to sleep a few minutes ago.

    On the Camgasm front, I found a cool TransformManager class from Jack Doyle at Greensock.com. Very nice.

    Labels: , , ,

    Wednesday, May 16, 2007

    Camgasm Update



    The fine folks at CustomWeather gave me access to their weather service a little while ago.

    After finally getting a chance to play with it again, I ran into problem after problem trying to connect.

    Well, it's been worked out and now camgasm.com has a cute little current weather reporting system for the time being.

    What am I doing with it?

    step 1. I get your IP address
    step 2. I send that IP to GeoBytes IPlocator.
    step 3. Now that I have the city, I query CustomWeather and get back the xml with your local weather.

    fun fun.

    Labels: , ,

    Tuesday, April 17, 2007

    UWindsor

    I recently finished up a project for the University of Windsor, hereinafter referred to as UWindsor. It was actually a very smooth project and I liked my team immensely.

    If you know of me as a Flash Developer (or have read previous posts of this blog), you'll know I love using XML as a way of handling content. Thanks to a heads up from Alex Davis, I've started using XPath in Flash. Jen deHaan has a nice little article here explaining it's usage. It really is a time saver. No more looping through childNodes yourself.

    Anyway, UWindsor wanted a site to pull in prospective students by showing them the university from the student's perspectives. Using testimonials from current students gave a voice to the site that would have been sorely lacking otherwise.


    You get to the site from an email from UWindsor, since they control the url, we added in their first name as a greeting using base64 encoding and decoding. In this example, aGFuZGJhbmFuYQ== becomes handbanana.




    The two guides, are equal on the main page. once you select either path "The School" or "The Scene" that guide increases in size, reinforcing the path you chose.





    It was apparent early on that users are used to picking what they want when they want it. So we provided users with a video gallery of all videos used in the site.





    This is what the photo asset looks like and it's xml node that triggers it.





    This is what the text asset looks like and it's xml node that triggers it.





    This is what the video asset looks like and it's xml node that triggers it.


    Labels: , , ,

    Tuesday, March 06, 2007

    Camgasm Update



    I'm going to need some help with Camgasm. If you want to be a beta-tester, please email me. If you need a little more information, I can't help you until you agree to not steal my ideas, concept and soul.

    I promise I won't be storing your email any further than beta and won't be bugging anyone more than I need to.

    Labels: ,

    Friday, March 02, 2007

    Chumby, You Rock my Socks

    And a number of others' socks as well, it seems. The good makers of the prototype... entertainment PDA is all i can think to call it right now, sent some of the people involved with FiTC their alpha prototype Chumby.



    I've already got something planned. Phillip Kerman's already built a magic 8 ball, Mario Klingemann just got his and Jeremy Thorp is waiting on his.

    Labels: ,

    Camgasm - Starting Fresh

    A year ago (well, over a year ago) I registered Camgasm.com as a joke after a Craig showed me his site webcamtastic.com. That's as far as it went.

    I've been banging around ideas on what I wanted to do with the site since. Is it a portal?, Should I do interviews?, etc. etc.

    But I did actually come up with a pretty solid idea recently. And by recently, I mean about six months ago. Oh, just about the time Declan was born. Surprise, surprise...So I put everything on hold (by choice) and concentrated on my little son. Which should be evident as the only posts of note on this blog have been baby this, baby that.



    So I'm pretty excited. I'll try and be a good Flash guy and document what I'm up to without giving it away too much.

    Viva La Camgasm!

    Labels: ,

    Tuesday, January 30, 2007

    Like Always. Like Never Before.

    After a long absence from my blog (with good reason, imo), here's my latest project.

    Like Always. Like Never Before. is Saturn's newest tagline. In our effort to provide something that embraced this concept, I was approached to build this. It's still under production (as large scale projects of this nature usually are) with phase two fast approaching, and various enhancements coming along.



    The one word that really describes this project is dynamic. Whether from the xml substructure to the auto-thumbnailing, the section builds to the titling of each object, there's very little prebuilt that isn't simply code. Just how I like it.






    mp4 screen cap here

    Enjoy.

    Labels: , ,

    Wednesday, November 22, 2006

    Flash 10th Anniversary

    Last month, I was invited by Adobe to do a little presenting at their 10th anniversary of Flash party during the RGD conference. I totally forgot to link it up. I still have a few things to do to make it user friendly, but here's some basic instructions and some links;

    First off; it turned out I wasn't necessarily presenting, per se. I was, along with a couple of other folks, just showing some stuff. Luckily I took it to an extreme and made a cool little party tool. Without further ado I give you, the video scratcher.

    Here's the gist of it;
    1. Once the video starts playing, start pressing and holding the spacebar. Each time you do that, you will record a start (onPress) and end (onRelease) frame for reference in the video.




    2. Once the video is finished, the Keypad interface will slide out, start clicking on the selected frames to see what you saved as start and end points. They will loop a couple of times for you to illustrate how the loop will look and sound.

    3. To lock a start and end point to a number key, press and release 1-9 on your upper keyboard keys (NOT the number keys on the right side, alas. That does work locally, but apparently not online). A copy of the selection should fill the numbered square. Then clicking the key repeatedly should give you the loop. GO ahead, try it out. I'll wait.



    4. Once you've filled all 9 number keys, a "LET 'ER RIP" button will arrive in the nick of time to save you from your obvious discomfort. Click and start the show.

    5. First off, a kaleidoscope will start to run. This is an adapatation of Mario Klingemann's and I gotta say, he is exceptionally smart. I hope he likes what I did. Here are your controls;

    [+]/[-] - more/less tiles
    [left direction key] - start/stop rotation 1
    [up direction key] - start/stop rotation 2
    [down direction key] - start/stop rotation 3
    [right direction key] - toggle flip tiles

    and then your number keys.






    The audio was done in Reaktor 5 and Fruity Loops. The audio is a relatively simple non-repeating music looper. Check it out here by itself.

    Labels: ,

    Friday, June 16, 2006

    FLV's

    Found out an interesting thing while trying to find the duration of an FLV today. (at the eleventh hour, of course, somebody wanted a progress bar)

    Fuel's blog

    Good ol Flash Video Encoder slaps down some nifty metadata.
    __ns.onMetaData = function(obj) {
    trace("FLV duration: " + obj.duration + " sec.");
    trace("FLV videodatarate: " + obj.videodatarate + " Kbit/s");
    trace("FLV audiodatarate: " + obj.audiodatarate + " Kbit/s");
    trace("FLV creationdate: " + obj.creationdate);
    }


    personally, creationdate came back undefined, but duration worked just fine.

    Labels: , ,