BLITZ - Interactive Advertising Agency

BLITZ gets a Silver Pencil at One Show Interactive

by Marketing Group on May 13th, 2008

One Show Silver Pencil

Imagine our excitement when we were informed we’d be getting a coveted One Show Pencil at this year’s One Show Interactive ceremony.  We were kept in suspense for a couple of weeks until we discovered on May 9 that the Adobe Creativity Conducted Flash Interactive Wall received a SILVER Pencil!  Sadly, we had to leave New York without the actual pencils, as our trophies ended up in someone else’s hands by accident.  But we shall be receiving them in the mail shortly to add to our happy display. 

Cue thank you speech: BLITZ would like to thank all the talented people who contributed to the making of this amazing installation!

Open-Source application: Export Outlook Calendar items to RescueTime.com for easy time tracking of meetings

by Jason Grunstra on April 24th, 2008

If you’re anything like me, you despise filling out time cards. I’d rather slide down a slide of razor blades into a pool full of hydrochloric acid than fill out another time card!

RescueTime to the rescue! RescueTime is by far the closest thing to perfection that I’ve seen for tracking your time spent on projects. The way it works is ingenious. First you install a small desktop application (works on both Mac & PC platforms) on your computer, then in true Ron Popeil fashion, you just set-it-and-forget-it. The RescueTime application sits in the background and just monitors the active application window you are using. It logs the start time, stop time, and the application name as you use your computer*. It’s even intelligent enough to suspend logging when you are away from the computer. All your log files of activity are then automatically uploaded to the RescueTime servers where they parse the logs and give you reports on hours spent using various application via their web-based dashboard. Here’s an example of time spent using applications this week:

RescueTime.com Top 10 Apps and Sites

Within the RescueTime dashboard you can add tags to help sort/filter your applications to get reports on how you spent your time.

One of the limitations of RescueTime is that it doesn’t come with an ankle-bracelet and GPS tracking! :) Due to this ‘limitation’ it doesn’t know when you are in meetings. However, like most people in a corporate environment, Microsoft Outlook does know when you are supposed to be in a meeting. So I spent a little bit of time this week using VisualStudio (see chart above for actual hours) writing an application that will slurp calendar data out of Outlook and then convert it to YAML (the RescueTime log format).

The openness of the RescueTime logs is really fantastic, and I must tip my hat to the RescueTime team for designing this in a flexible manner. You can read/write your own log files and they will accept them into their system as long as you follow a few simple rules. And since the logs are backed up and stored on your computer, you could even parse old logs yourself to use it to auto-populate a 3rd party time card system if need be. Imagine auto-populating a Microsoft Project time card from the data captured by RescueTime! Mmmm isn’t automation is delicious!?

Export Outlook calendar data to RescueTime.com

As you can see, the application accepts a date range for which you want to export Outlooks calendar items. It then uses the Microsoft.Office.Interop.Outlook class to connect to Outlook and suck down any events within that date range by building a filter, and then restricting the calendar data set to only items that fall within that range.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void GetFilteredCalendarItems(string startDate, string endDate)
        {
            string dateFilterRestriction = "[Start] >= '" + startDate + "' AND [End] <= '" + endDate + "'";
 
            Microsoft.Office.Interop.Outlook.Application outlookApp = new Microsoft.Office.Interop.Outlook.Application();
 
            NameSpace outlookNameSpace = outlookApp.GetNamespace("MAPI");
            MAPIFolder calendarFolder = outlookNameSpace.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
 
            Items calendarItems = calendarFolder.Items;
            calendarItems.Sort("Start", OlSortOrder.olAscending); //must sort ASC to include Recurring Items
            calendarItems.IncludeRecurrences = true;
 
            Items filteredCalendarItems = calendarItems.Restrict(dateFilterRestriction);
 
            filteredCalendarItems.Sort("Start", OlSortOrder.olDescending);
 
            RescueOutlook.Form1.filteredCalendarItems = filteredCalendarItems;
        }

I then display a list of the returned items in a checkbox list, which gives you a chance to de-select any items you don’t want to track your time for. Then once you click the Export button, it will generate a YAML log file with all the selected calendar items and drop it into the RescueTime logs\pending directory. At this point RescueTime will take care over by sending the log files up to the server for parsing.

If you would like the full source code (C# .NET 2.0) you can download it here, otherwise you can download a zip file of the application (RescueOutlook.exe) to use for free. Obviously it requires that you have RescueTime installed, so get that first.

* For those concerned that this sounds too big-brotherish and you don’t like everyone knowing what you’re really doing all day, there are blacklist features so that certain things aren’t tracked by RescueTime.

Note: I would be remiss if I failed to mention my one additional feature request for RescueTime (which they assure me they are working on)… the ability to track full file paths that your active application is accessing. That way RescueTime could help me track time down to the client level. If you too want this feature, please voice your opinion here to let the developers know! :)

BLITZ gives Internet a boost of energy with two sites for Naked Juice

by Marketing Group on April 18th, 2008

Naked Juice

BLITZ helped our clients at Naked Juice launch a new website that reflects the company’s promise of delivering a pound of bare-naked, all natural fruit in every 15.2 oz bottle of juice (or half pound of fruit in every 10 oz bottle). 

Naked Juice Our Juices

In addition to learning about all of the goodness that goes into every product, visitors can sign up to join the Naked Juice Nation and learn about cool events and information. 

Naked Juice Nation

Once you’ve checked out the site, consider testing out your knowledge (how much fruit is in every bottle of Naked Juice?).  With the introduction of Naked Juice products in Starbucks stores, BLITZ worked with the providers of refreshment to envision a training program to get all Starbucks Baristas savvy with the juices.  What resulted was an online quiz and sweepstakes for all Starbucks employees (for every quiz completed, Naked Juice purchased a carbon offset). 

Naked Juice Starbucks Employee Program

So, the next time you place your order for a venti blended mocha frap at your favorite Starbucks, consider reaching for a bottle of Green Machine or Mighty Mango for a healthy snack later on.   

Calling all Flash Devs. Please add deep-linking to your websites and un-break the web.

by Jason Grunstra on April 17th, 2008

Content is still king. When you lock your awesome content away you lose, your visitors lose, and Flash as a platform gets a bad rap: “stupid Flash interface.” All this can be avoided with some simple code that provides deep-linking to your great content. Our series of tubes is powered by a series of links. So please enable us to link to your content. It only takes a minute, and it benefits millions!

Photography by Cedric Delsaux of Star Wars characters in contemporary urban settings

Thanks!

Play YouTube FLV Videos with Silverlight 2.0

by Jason Grunstra on April 7th, 2008

I had to wait to post this, since it would have probably just been passed over as some kind of joke if I posted it last week (April 1st).

I wanted to experiment using the [ScriptableType] attribute of C# classes in Silverlight 2.0 and thought this would be a perfect test case. Here’s some really rough code that creates a Silverlight 2.0 playback control that interacts with the newly released YouTube JavaScript API. Obviously this is just a proof of concept but essentially what you’re seeing is the YouTube player in chromeless mode along with a couple Silverlight transport controls.

This JS will give you the chromeless YouTube player:

        embedSWF("http://gdata.youtube.com/apiplayer");

And this will render our Silverlight 2.0 control in an ASP.NET page

<asp:Silverlight ID="Xaml1" OnPluginLoaded="pluginLoaded" runat="server" Source="~/ClientBin/Player.xap" Version="2.0"  />

The YouTube player has it’s JavaScript API enabled by setting the parameter enablejsapi=1.

And once we do that we’ve got full access via JavaScript to play, pause, mute, set volume, get duration etc… (full API reference here)

So all the Silverlight controls have to do is call some of the exposed JavaScript methods. For example, clicking the Silverlight PlayPauseButton will call a togglePlayState JavaScript method.

        private void PlayPauseButton_Click(object sender, RoutedEventArgs e)
        {
            HtmlPage.Window.CreateInstance("togglePlayState");
        }

Which just checks the current state of the player and then either plays or pauses the video.

        function togglePlayState()
        {
            if (ytplayer.getPlayerState() != 1)
            {
                ytplayer.playVideo();
            }
            else
            {
                ytplayer.pauseVideo();
            }
        }

And here’s what we get:

I was getting some unexpected results when sending values to a JavaScript method, even though Tim Heuer seems to indicate that there is a way to do it. So for the scrubbing I applied a little hack of setting a non-visible text input elements value to the RoutedPropertyChangedEventArgs.NewValue, and then Invoking a JavaScript scrubPlayer method. That method in turn looks at the value in that same text input and computes the seek position (in second) based on the duration, and calls the player.seekTo() method. A little kludgy but good enough for the proof of concept. The one downside however is that YouTube videos will only scrub to the nearest keyframe that is encoded into the FLV; and finding videos with a lot of keyframes is hit or miss.

This whole experiment would have actually been a lot easier in Silverlight 1.0 since everything would just be communicating via JavaScript. But what fun would that have been!?

Update: It was recently announced that Silverlight 2.0 won’t play FLV’s, so I guess you can use this concept as a starting point for a workaround.

Download the source here if you want to play and/or improve upon it further

BLITZ deconstructs Adobe “Creativity Conducted” interactive installation and shares insight on business panel at FITC Toronto 2008, April 19-22

by Marketing Group on March 28th, 2008

FITC Toronto 2008

We at BLITZ know that Patrick Matte and Ivan Todorov are interesting people, and apparently the folks at FITC think so too.  Both join a list of some of the most interesting and engaging presenters from around the world at FITC Toronto on April 19-22.  Patrick’s session on Monday, April 21, “Creativity Conducted - Wii Remote Interactive Installation” takes a look at the making of this innovative project originally premiered at Adobe MAX Chicago in 2007.  For those more business-oriented, on Tuesday, April 22 Ivan will share some of his experiences and thoughts on running an interactive agency in a panel discussion, “The Process of Finding Your Process.”  For details, visit the FITC site at www.fitc.ca

Director of Flash Platform opening @ BLITZ

by Ivan T on March 19th, 2008

Our Flash team is growing at a fast pace and we are looking to hire a Director level Flash expert. We are planning to expand the role of our current Director of Flash Platform Services to manage the production teams at BLITZ and need to find a very special one to take on these responsibilities.

What clients will you be working with? On the Tech side: projects for Adobe, Microsoft, nVidia and Google to name a few. All really cutting edge stuff on future platforms. On the consumer end you’ll work with Naked Juice, FX Networks, MGA, and many more. There are lots more, really cool specifics that require an NDA for us to share. The type of projects vary as well - immersive experience sites, desktop AIR applications, Mobile interfaces, configurators and RIAs.

Salary? BLITZ pays some of the highest salaries in the industry, and we know good talent is worth it. We also have 401K matching and a very strong Profit Sharing Plan that bonuses everyone nicely at the end of the year.

What we look for are people who meet these 3 qualities: Hungry, Humble and Smart. Hungry to be the best at what they do and produce great work. Humble because we don’t have room for large egos at BLITZ, and Smart because you need to be on par with everyone else around you.

Technical skill we expect: AS3, PaperVision 3D, experience and passion for math motion scripting, physics, game-like interactivity.

We would love it if you came having managed a Flash team already, or as an experienced Senior Dev with good management demeanor ready to take on the director Role.

If you are interested in heading up the Flash Team of one of the most innovative digital agencies, drop us a line with your resume - jobs [at] blitzagency [.dot] com.

Close
E-mail It