Announcing I Am Alpha

I can finally reveal what I’ve been working on for the past couple months that’s making me write all this javascript. It’s I Am Alpha, something kind of new and interesting for AOL. Why? AOL doesn’t do public development. We’re usually very close-lipped about what’s going on with a product. We just launch stuff on an unsuspecting public. We also don’t often foster any sort of interaction with the outside developer community. There are things like AOLserver that’s open source, and the new AIM plugin stuff is open to the public, but I can’t really think of much else we’ve done in the area. That’s changing, as of today, with this thing.\
What is it? Well I Am Alpha is just a prototype to give folks some idea of what’s coming, and to introduce our microformat for transporting modular content and the idea of creating modules for this new product.\
I think this is really cool. No one’s paying me to say it’s cool, either. I think getting more people to create microformatted content is great, and I think our microformat is pretty cool (don’t know what a microformat is?). I think some of the stuff we don’t have a live prototype for, like server-side modules is super-cool.\
It’s going to be a little rocky. We don’t have a lot of experience with the whole public development thing, and a lot of things won’t be public (old dog, new tricks), but we’re trying. We’re really really trying. We’re going to be using Dojo for our internal framework and for modules. We’ve released the microformat under an extremely liberal license, and with this alpha, are actively seeking feedback.\
It’s great to be involved in a product at AOL that feels so open, and with forward-thinking standards at its core. It didn’t take hours and hours of red-faced pleading to get us to create a microformat for modules instead of YATXS. It didn’t take kicking, punching and hiding bodies to get us to agree to create (as much as we can) valid, accessible pages. Of course, we don’t control what goes into modules, but we’ve set up the pages that will be saved (the current ones aren’t perfect or what’s going to be final, to be sure) will be valid XHTML, and we’re requiring that all modules are valid too.\
Oh yeah, and it’s the first public facing thing I’ve done at AOL where I was the designer and wrote almost all of the content. So, if it sucks, it’s my fault. I didn’t build the prototype, but I helped design the microformat, the server-side module process, and wrote 95% of the documentation. Hooray for flying under the radar!\
I’ll try to keep the posting about it here to a minimum. Mostly, I’ll be yakking about it over on the unofficial official blog. Come join in the fun!

A Fun Javascript Puzzle: Shortcut Icons

Someone at work asked about this and I can’t find the answer. And, because my foot hurts and I can’t sleep, I figured I’d give it a shot.\
This is my attempt, and it doesn’t work in anything but Opera 8.5 (that I’ve tested so far), as you can see. Any ideas?\
Before you start, here’s what I found with my example:

  1. Firefox and Safari both report no errors when I try to change the shortcut icon.
  2. Firefox actually updates the DOM to point to the new image, but the browser doesn’t display it.
  3. It doesn’t work in IE, but I had someone else test it and I didn’t get any more details other than it doesn’t work.
  4. I’ve only tried one way of doing it so far, but I can’t think of anything else that would work at the moment (paaaaaain piiiiiiiills).\
    Got any ideas? Isn’t it a fun little conundrum?\
    UPDATE: I’ve got something working in Firefox! Check out attempt two. It removes the shortcut icon link and appends a new one to the head. Still doesn’t work in Safari, and I don’t have IE at the moment to test, but it’s progress. If you try it in IE, please let me know if it works.

Safari, Javascript and Large Numbers

Let’s say you’re playing with a dashboard widget that deals with some large numbers you might want to compare. For some reason, you’re not getting the result that you thought you would. For some reason really large numbers are breaking your if statements. Well, if you wanted them not to, you might want to wrap those numbers in Number() in the comparison. That seemed to work for me (yes, I really hope you’ll get to see this widget soon – it’s fun).\
UPDATE: Apparently, I’m on crack because the above bug I mentioned apparently doesn’t exist. I was trying to prove it with some test cases, and I can’t recreate it, even with REALLY large numbers expressed as strings. So… ummm… sorry.