Globe Trotting - Using the AIR Derby prize

A bit more than a year ago I was lucky enough to win the best in show of Adobe’s AIR derby.  It’s been a crazy good year since then and I’m really fortunate that things went the way they did.  Besides the tangible benefits, being featured on Adobe websites and during conferences has done a ton to boost the visibility of AgileAgenda. Hopefully, that’s a project I can continue to grow over the upcoming years.

Tomorrow, I head off to use the bulk of the prize.

In case you’re interested, here’s a little bit of background of how it worked.  They took $100,000 and put it in an account with a Travel agent and I was allowed to use it towards any service the travel agency could provide.  The only real restriction was I had to book any travel within one year.

We ended up splitting it into 3 different trips.  For the first, my wife and I headed off to Las Vegas for a week.  We had a really great time.  We saw some shows, did some gambling, and took in the sights.  We even took a day trip out to Zion national park and got to see a bit of Utah along the way.

Then, in June, me, my wife, and 7 other family members all went down to Mexico for a week and stayed at a great all inclusive resort.  Most of the family members had never been anywhere like that and it went really well.  I’m really glad the prize was structured in a way that we could share it with them like this.

Tomorrow, my wife and I head out at 4:30am in the morning to catch a flight to LA, we have most of the day there so we’ll be able to see some of the city.  After that we’re off to New Zealand.

We’ll be spending four nights at the Sofitel in Queenstown.  During that we’ve got a 12 hour long tour planned one day, and a helicopter tour of Milford sound the next.

From there we fly down to Christchurch and spend three nights at the George.  The first day we have a tour of the town, and the next we have a train/atv/boat excursion planned.

From there we fly over to Sydney, Australia where we have two nights at the Observatory Hotel.  While there we’ll explore the Blue Mountains and have a day in the city.  (We’re really not city-folk, so a day is enough for us)

Next, we head over to Ayer’s Rock (or Uluru depending on who’s describing it).  While there, we have a helicopter ride over the rock, an evening BBQ dinner at the Olgas, a sunrise camel ride (my wife booked that before I even knew!) to the rock, and a night time dinner under the stars in the outback. I think this is the leg of the trip I’m looking forward to the most.

Next we head up to Cairns and spend a few nights at the Silky Oaks Lodge & Spa. It’s in the Daintree rain forest with hiking trails and nature-ey things to do.

For the last leg of the trip we head out to an Island on the barrier reef and stay at the Paradise Bay Eco Escape.  I guess this place only has 16 guests at a time or something so it should be interesting.  We spend a few days on the beach, snorkeling, sailing, and then fly back to Brisbane -> LA -> and finally back home to Boston.

It should be an amazing three weeks.

I’d like to send out a big thank-you to Adobe, the judges of that AIR derby, and everyone who has downloaded, emailed about, or purchased AgileAgenda.

Since it’s been a year, I promise to stop talking about the derby after this post :) Time to look to the future instead of remembering the past again.

Amazon EC2 - SLA available

Today, Amazon EC2 went from beta to a released service and with it they have implemented a service level agreement (SLA). It’s not the best SLA I’ve seen, but it’s a start.  The gist of it is:  If, over a year the service drops below 99.95% available then you’re entitled to a 10% refund of that year.

Obviously there’s a few problems with that.

  1. 99.95% isn’t the best uptime.  I would have liked to have seen at least 99.99%  But for many applications, it probably will be an acceptable amount of downtime.  Add the fact that you have the possibility of hosting in multiple availability zones, and you can mitigate the risk fairly effectively.
  2. You either have to be a customer for an entire year before you get any redress for 99.95%.  OR they have to have such terrible uptime that it becomes statisitcally impossible for them to hit 99.95% for that year. A per-month SLA would have been better.
  3. A 10% credit is pretty meager.  But at least it’s for the entire period and not for the downtime amount.  This means if I spend $200 a month for a year, they hit 99.94% uptime, I get a $240 credit. But that’s it.  If they’re at 90% uptime I get the same credit. 

I think this SLA will help with convincing business folks that EC2 is a viable service, but probably not so much to actually help mitigate damages.

Compared to the google apps SLA, it’s a lot better.  It’ll be interesting to see how the Google App Engine SLA turns compares when they implement one.

XRay AS3 post + XRayViewer source

John Grden posted an updated guide to using XRay with AS3 on his blog. I figured I’d post here since he posted a link back to my XRay Viewer page.

If you’ve never heard of XRay before, it’s this amazing tool to inspect swfs while they run.  You can see visual objects, runtime tracing, and even manipulate some of that to see how things look.

XRay Viewer is a simple application that hosts the XRay connector and loads a swf that you can look at through XRay.  It’s a no-code-change way of using XRay.

If you want the source for XRay Viewer, you should be able to just install it, right click and select “View Source”… but that doesn’t seem to work with the latest version of it.  Someday I’ll fix that but for now, here you go:

XRayViewer-src.zip

It’s really nothing special, but it can make working with swfs from designers easier. If you just want to install, there is an AIR install badge on the XRayViewer page that makes it easier than building.

Uservoice

I came across a new website today called Uservoice. It lets you sign up and create a simple forum where users of your software can make suggestions, comment on suggestions, and vote on them.  It’s one of those sites that makes it super easy to do something and it "just works".  I set up agileagenda.uservoice.com to solicit input from people and can’t wait to see how it works out. It took me all of 15 minutes to get up and running with it. 

My only wish is that it supported openID and it would have been even easier.  Of course they have their own uservoice forum, and I was able to go vote for it.

Lost focus

Over the past few months I’ve been working on a big upgrade to AgileAgenda.com and the AgileTracker.  It’s just about done and I’m really happy with the results.  But I’m starting to wonder if I’ve just lost focus.  I’m writing a project scheduling application, yet over the past few months I haven’t really touched the scheduling part of that at all.  I’ve been dealing with time tracking, OpenID, Amazon EC2, server reliability, rss feeds, and collaborative features.  But I wonder at what point it’s best to skip all of that and just really focus on the core functionality of the project.  After I get this upgrade out of the way I’m really looking forward to focusing on those core pieces again.  I’ve had some great ideas about things to make scheduling tasks easier and I hope to get some prototypes working soon. 

If nothing else, I suppose these extra things are a strong resume builder.


AIR + OSX + OpenId = Broken

After a long session of debugging I’ve come to the conclusion that it’s not possible to get OpenId working in an AIR app on OSX because of this bug. I’m not sure why I didn’t run into this earlier, maybe it’s a new bug.

In short, whenever the HTML control gets redirected somewhere, it loads that page twice instead of once like it should.  That will likely break more than just OpenID. Hell, imagine submitting a form twice or something because of this.  Luckily forms don’t usually do a redirect to submit, unluckily OpenID relies on redirects to work.

The specific problem arises when an OpenID provider redirects the user back to the website requesting authentication.  The website loads, but then it loads again.  Per the OpenID specification, that second load must be rejected by the website because it contains the same openid.response_nonce as the load that happened immiedately before it.  So now we have a failure condition and authentication stops.  The reason the specification states that, is because a malicious user could use a replay attack to use the same authentication token from someone else over and over again.

Please, go vote on that bug so we can get this fixed.

Luckily, it works fine on Windows and Linux (yeah, AIR in Linux rocks!)

 

OpenID only…

So I tried out StackOverflow today and was met with something that suprised me.  They *only* support OpenID.

I kind of like it.  OpenID is a great concept and it’d be great if more people used it.  This gives anyone wanting to sign up to that site incentive to use their OpenID, or if they don’t have one, go get one.

That got me thinking.  I’m working on a commercial website.  I can’t afford to turn away users because they’re confused at what OpenID is, or if they don’t want the hassle.  But how could I make OpenID the preferred way of authenticating instead of the “alternate” way?  I’m going to have to brainstorm on the kind of UI design that could help accomplish that goal.

Alarm clock user interface gripe

A few months back I bought a new alarm clock because my old one died.

This one is whiz-bang with features.  Even sets itself to the atomic clock automatically.  I don’t even have to worry about daylight savings time.  Yay.

It’s got a “nap” feature.  If you press the “nap” button, it goes into nap mode.  So after a specified amount of time, from 10 minutes to 2 hours, the alarm will go off.  Pretty handy!  Two problems.  That nap button is right near the set-alarm button.  There’s no way to turn it off.  Or at least not that I’ve found.  Way too frequenlty I reach over to set my alarm for the next morning and accidently press that.  My only recourse is to set it to it’s minimum time (10 minutes), wait for the alarm, and turn the alarm off.  Several times now I’ve spent the entire 10 minutes trying to figure out how to turn it off.

My new plan is to remove that button.

Edit: Update -

I did it again.  This time I unplugged the damn thing instead of waiting for it.  I found out 20 minutes later that it’s got a battery backup for the alarm!  /sigh

TSP Hiring Flex developers

Tom Snyder Productions is currently hiring two Flex developers.  I don’t have a job description readily available, but here’s the gist of it.  We need two Flex people to join the 5 or 6 people already working on the project to help focus on the front end of our latest educational product.  We need engineers who can understand things like creating custom components, dynamic skinning of a flex app.  Added bonuses for having worked with IoC containers, Degrafa, or TweenMax.  We have a whole bunch (60ish) of fairly moderatly complex user experiences that need to be worked on.

Feel free to email me a resume or ask for more details if you’re interested.

And I’ll leave you with this… I had a phone interview go bad today.  The poor guy wasn’t able to answer a single question about Flex that I had.  The end of it went something like this…

me: “This isn’t going very well”
him: “Yeah, I wasn’t very prepared”
me “Should I call back another time?”
him “No, I don’t think I could answer your questions even with more time.”

While I appreciated the honesty at the end, honesty with the “2.5 years of flex experience” would have been appreciated in the beginning.

Update: This is a position on site in Boston, MA USA.  Sorry for not mentioning that.

BFUG Download

As mentioned in my last post, I’m giving a talk to BFUG tonight about Degrafa and ObjectHandles.

Here is the download link I mention in the talk with the example sources.