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.
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!)
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.
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
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.
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.
Tomorrow I’ll be giving a talk to BFUG, the Boston Flex Users Group on Degrafa and ObjectHandles. I’ll be giving an introduction to both Degrafa and ObjectHandles, and then building a simple charting application that uses them together.
So if you’re in the Boston area, come on down!
(If you’ve seen my previous BFAIG talk, you’ve already seen about half of this. )