Curly Braces: To Cuddle or Not?

Should you place curly braces on the same line as the statement (cuddle), or on the next line? It’s a debate that has raged for years, and is unlikely to be resolved until curly braces in code become obsolete. Despite that, I thought I would share my opinion on the topic.

First though, let’s look at both sides of the argument. I will try to represent this as fairly as possible, despite my own bias. I’ve numbered the arguments, so it’s easier to reference them in the comments.

Continue reading →

GPSD’08 Results are in!

Another year is gone, and another gPumpkin contest has come to a close. Many a beer and chocolate was consumed, and overall it was a great break from our normal routine. Congratulations to Grant and Wes, whose pumpkin “The Horror of Corporate Conformity” took first place. Between Grant and Wes, one of them have been on the winning team each year. Conspiracy? Probably.

Highlights this year included:

  • A landslide victory by the “Horror of Corporate Conformity”, which sat at around triple the votes of the second place pumpkin
  • Carving with steak knives instead of the traditional tools, which have been lost since last year
  • The very first “dropped” pumpkin. It didn’t break, but it took a good dive from the table.
  • Phantom votes for a non-existent pumpkin, which showed up in the voting app. It turned out to be an old testing file

Overall it was great fun. We leave you with a shot of all the pumpkins together. See you all next year!

gTween beta 3: AS3 Code Tweening Library

I’ve just wrapped up beta 3 of gTween. It’s been a busy few weeks, and is just getting busier with the Korean Game Developer’s Conference, and Adobe MAX around the corner, so it’s not quite as well tested as I’d like, but it seems to be working without problem.

The main feature additions are support for 3D rotation with smartRotation (always rotates in the shortest direction), a rewrite of custom progress points to make them more robust and reliable, the addition of a global defaultEase property, and the ability to globally control what properties will be rounded.

Continue reading →

The Great Pumpkin Showdown, 2008

Keeping with our yearly tradition of squash mutilation here at gskinner.com, I’m happy to present this year’s Great Pumpkin Showdown.

We broke into teams of two, based on seniority, and hacked the crap out of a bunch of defenseless pumpkins while drinking beer, eating pizza, and gorging on candy. Also keeping with tradition, we made the most recent hires build out the pumpkin voting team.

This is our largest batch of jack’o’lanterns to date (five), and definitely our best voting app. Nice work freshmen!

Player 10 is required to view the app below.

Continue reading →

Simple Flash Player 10 3D Demo w/ Source

Here’s a simple tech demo showing a 3D music visualizer using the flash player 10’s new 3D APIs, with a rotating sphere that transitions into a disc using GTween. Nothing too complex, but the result is kind of neat, and it is simple enough to serve as a quick entry into using the new APIs if you’re getting started. It also uses the new Vector type in player 10.

To me its cool that you can now whip out simple 3D content right in Flash in a matter of minutes, and then step up to the big guns with PaperVision 3D or Away 3D as necessary.

I’ll be sharing some of the other simple 3D experiments I’ve been working on over the coming weeks.

Continue reading →

gProject and the Flash CS4 Project Panel

In May I blogged about Adobe acquiring gProject from us. At the time, I wasn’t allowed to talk about what it was going to be used for. Still, it probably doesn’t come as a huge surprise to anyone that the new Project Panel in Flash CS4 is based on gProject.

We did a lot of work with Adobe to rebuild gProject in Flex, removing some features (that are either too obscure or don’t have wide enough appeal), adding others, and doing an extensive clean up of the UI and code. We’re all very excited to see our baby grow up into such an important part of Flash authoring.

Some of the key features:

  • file system based file browsing (no more need to manually add your project files)

  • multi file compiling, just check the checkmark beside an FLA to add it to the list

  • class generation from templates, with the ability to specify templates per project

  • locations provide quick access to related files from your project

  • add file types to display in the panel, and open those files in their associated application (via right click menu). For example, you could add AI files and open them in Illustrator.

  • manage class and library paths on a per project basis

  • quick project feature makes it effortless to create a temporary project to manage files

We tried to create something that would have a lot of value for developers who do some or all of their coding in Flash, while not getting in the way of designers who just want a good panel for browsing their project files. Hopefully we succeeded.

Obviously there’s still a bunch of things we would love to add (things like a JSFL API, file rename / moving, file system update polling, external code editor support, and maybe version control integration spring to mind), but I believe this is a huge improvement to the previous project panel, and am excited to finally be able to talk about it openly. As with Badger, I think it’s a sign of our maturing ecosystem that you can build new tools for the tools, with the tools. We even used gProject to manage the project when building the new Project Panel.

New Player 10 Feature Tour

A few months ago I posted about the Flash player 10 feature tour we built with Adobe. Since then, we’ve been able to spend some time polishing it, adding more demos, integrating videos, and redesigning it with Adobe’s Double Identity theme (and no, I don’t know what that’s all about, though I have some guesses).

It shows some basic demos for a few of the new features, with downloadable source code – including a simple coverflow sample. Everything uses GTween, which has turned out to be really handy with the new 3D features in player 10.

Also, if you check out the videos, you can watch me struggle through cohesive sentences after 3 days of hard partying at FlashForward.

You can check out the new feature tour by clicking here.

Beware the AIR Badger!!

It’s the true sign of a mature platform ecosystem, using the platform to build tools to build tools to deploy tools that are built on the platform. Huh?

A while back, I worked with Adobe to build a better AIR install badge. Having done so, I thought it would be a neat idea to build an AIR application that made it easier to configure and deploy badge installers. Adobe agreed, and the Badger application was created.

Badger allows you to load a template install badge, configure all of its options, preview it live (via the HTML control in AIR), and then export it for deployment. Badger also takes the pain out of configuring badges by tracking down your application ID, publisher ID, version, and other information. You can even configure a badge to install Badger, click Install Now in the preview, and install Badger from Badger – though this is likely to cause a tear in the space/time continuum.

Badger (and its icon) was designed in Flash CS3, built in Flex 3, and deployed on the AIR platform. I find it quite strange that Adobe chose not to include an install badge for Badger, but maybe they have a strong sense of irony. Or maybe it was just too much work. 🙂

UPDATE: I’ve been informed that the lack of a badge installer is due to a limitation of the article page template.

You can check out the beta of Badger here.

Originally, we had hoped to name the application “AIR Badger” (which was discarded for legal or branding reasons), which led to the image below that I threw together for the fun of it. That image ultimately led to the icon you can see on the app today.

Continue reading →