Feb 3 2009

New Work, I'm Alive

December and January were both busy months, hence the lack of posts. Though, that's not much of an excuse. It's not like I can't spare 15 minutes, but I digress.

I've updated the Work page to include the new Dalek site I worked on with Nice Outfit, a site for Ramseur Records' folk-rock band Samantha Crain & the Midnight Shivers, a site for Jim Avett's gospel album and a little Google Maps API work on the York County Visitors Bureau website. I plan to discuss some of the nuts and bolts that went into these projects, but that's another post.

I've got a few more projects in the works and slew of blog posts in the tank. Time to breathe some life back into this blog.

Nov 20 2008

Google Analytics Tracking for Adobe Flash

This week at Adobe MAX, the Google Analytics team unveiled Google Analytics Tracking for Adobe Flash. According to Google:

This feature is a translation of the current Google Analytics tracking code into the ActionScript 3 programming language that dramatically simplifies the ability to track Flash, Flex and AS3 content. This new Flash tracking code provides all the rich features of the current JavaScript-based version, including campaign, pageview and event tracking and can be used to track Flash content such as embedded videos, branded microsites and distributed widgets, such as online games.

Developers have the choice of using a Flash Component or a AnalyticsLibrary Component, for complete control over tracking objects directly in AS3.

For more detailed information, check out the introduction and implementation guide over on Google Code. Then, watch the video demo on YouTube.

Nov 20 2008

Augmented Reality

As this blog is essentially my soapbox to nerd out on web development, I'm occasionally torn about where to write about Flash. Since a handful of us in the Charlotte area are trying to get Flash Charlotte off the ground, I usually tend to post most of my Flash related news items there.

That said, I couldn't pass up the opportunity to mention the Augmented Reality project from Digital Pictures Interactive. You need to see it for yourself to really understand, but they've found a way to insert Papervision 3D objects into a webcam stream. If you have a webcam, you can try out the demo on their website.

Be sure to check out Flash Charlotte from time to time (especially if you work with Flash and live in the Charlotte, NC area). The group is still growing, but the blog is fairly active.

Nov 14 2008

High-Quality YouTube Hack

Jimmy Ruska (via Kottke) discovered a nice query string hack to enable high-quality videos on YouTube. Basically, just append this to a YouTube video URL:

&fmt=18

According to Ruska, the format 18 video is encoded using "H.264 with stereo AAC sound at 480x360." Following the Kottke post, a YouTube engineer responded with a format 22 video, which is encoded at 720p. The engineer also noted that not all videos have format 18 or 22 versions, dependent on the source file uploaded.

Nov 11 2008

MySpace Announces Profile 2.0

Ladies and gentlemen, the day has finally come—MySpace has launched a W3C standards compliant profile. Here's the official word from Tom himself:

The new profile is fully W3C compliant. It allows profile creators much more granular control by giving names to more objects. We still expect the third party layout market to flourish and will still allow users to use themes from layout sites.

I've yet to see it work, because I only have to music profiles and the new code is not yet available for those accounts. Though, it sounds like an answered prayer for anyone who has ever had to skin up a MySpace profile.

Nov 10 2008

Not Another Sign-Up Form

I bookmarked a post on A List Apart earlier this year by the name of "Sign Up Forms Must Die." In the article, author Luke Wroblewski makes a great case for rethinking the placement and overall necessity for sign-up forms.

When planning a customer's initial experience for your web service, think about how you can avoid sign-up forms in favor of gradual engagement.

I've been brainstorming ways to skip the sign-up process for an upcoming project and I was reminded of said article. At the bottom of the page, Wroblewski provides a nice list of best practices to take away.

Oct 27 2008

Accessing Trace Outside Flash

I recently upgraded to a new machine and Flash Player 10. Accordingly, I had to install a new debug Flash Player and setup my Flash log again. I figured I'd share the well-known setup, for posterity. As with most things on this blog, these instructions are for meant for those using OS X.

First, grab the Flash Player 10 debugger on the Adobe website and install.

Second, create a file named mm.cfg in this location:

/Library/Application Support/Macromedia/mm.cfg

In the file, add the following three lines:

ErrorReportingEnable=1
TraceOutputFileEnable=1
MaxWarnings=0

The first two should be self-explanatory, however the final line just allows more than the default 100 errors and messages to be logged.

Next time Flash fires a trace function, a file named flashlog.txt should be automatically created and begin logging output from Flash. Previous to Flash Player 9, you could specify the location of the log with TraceOutPutFileName. However, now it's created in an unchangeable location:

~/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt

Of course, if you're working within Flash, you can view these messages in the Output window. However, when previewing Flash in a browser or the standalone Flash Player, the Output window is not available.

You have a few options for viewing the contents flashlog.txt. Usually, I go with Console. However, if you want to follow real-time, you can fire up Terminal and use tail:

tail -f ~/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt

Note: flashlog.txt is overwritten by each Flash movie, so it's contents will be cleared out each time you load up a SWF.

Oct 24 2008

A Case Against FTP

Back in July, Steven Frank made a great case for stepping up our collective FTP game. I'd suggest reading over it and then at least making a mental note to use SFTP. I still use FTP on a daily basis. While it's simple enough to switch to SFTP, I'm just being lazy. Looks like this will be my first New Year's resolution for 2009.

Oct 23 2008

Yahoo! Design Patterns

A while back, I stumbled across the Yahoo! Design Pattern Library. In the world of usability and interaction, a pattern is defined as:

[An] optimal solution to a common problem within a specific context.

Yahoo! has essentially released internal design patterns, compiled from their own usability testing. The library covers many areas, including interaction, navigation and search. While Yahoo! doesn't represent the epitome of usability, the collection is worth checking out to inform your own design and organizational decisions. Basically, if you get stuck or wonder if there's a standard methodology you're missing, use it as a fallback.

Additionally, Yahoo! released a stencil kit for quickly mocking up interfaces. If you're building services for Yahoo!, it's invaluable. However, most of us aren't. At best, a developer could slap together an interface to better communicate an idea.

Oct 22 2008

REST to XMPP

This summer, I noticed XMPP (Extensible Messaging and Presence Protocol) started receiving attention for its experimental use outside of Jabber.

The article that tipped me off was Beyond REST: Building Data Services with XMPP PubSub over on Anarchogeek. They basically proposed hacking XMPP into handling data services, as an alternative to constantly polling feeds. It's a great idea, because XMPP can handle events. As they stated, instead of a constant stream of "are we there yet," you can basically just say "let me know when we're there."

Since then, I've noticed momentum building up around the idea. xmpphp and sleekxmpp popped up on Google Code. Better yet, Gnip actually put the idea to use, by offering a 3rd party service built around XMPP.

Needless to say, I think we're going to see this or something like this gain a lot of ground in the near future (at least for high-traffic web services). It just makes more sense than constantly polling a feed.