SimpleOpenID for php

The library I’m using for (and other projects, both major and minor) is SimpleOpenID from

The original class did most of what I needed, but I made some minor changes. I’ve emailed the original contributor to offer my changes back, but until I hear back, I’ve posted my modified version here:

Comments/feedback always welcome.

OpenID on

I’ve finally finished up the signup for Rosebleed. The workflow is what you’d expect – OpenID box on the login form, if the given URL isn’t recognized then it redirects to the signup form and prepopulates it with the sreg fields.

I did notice a strange behaviour in OpenID; I’m not yet certain if I missed it in the spec or if it’s left to one’s judgement (note to self: read the spec again)… Anyway, here’s what happens:

– Say I sign up with “”. This site delegates to my ClaimID page, so the openid.identity response is, and this is what I actually use to identify the user.
To my thinking, I should be able to log in using “” (since that delegates to my ClaimID), or, or These URLs all end up at the same identity, so they should be equivalent — and that’s how I implemented it on .

I’ve noticed other OpenID-enabled sites handle this differently. On the OpenID Directory for instance, I first signed up as “”. I’ve gotten in the habit of logging in using; but when I try that at OpenID Directory, I get an error message that my email address is already registered to my ClaimID URL.

So, barring finding that the spec keeps “equivalent” OpenID URLs separate, I think I’m in the right here; always open to feedback though.

Update [2008-03-19]: I’ve checked the spec, and as it turns out, I’m actually in the wrong:

So, to use as their Identifier, but have Consumers actually verify with the Identity Provider located at, they’d add the following tags to the HEAD section of the HTML document returned when fetching their Identifier URL.

Now, when a Consumer sees that, it’ll talk to and ask if the End User is, never mentioning anywhere on the wire.

The main advantage of this is that an End User can keep their Identifier over many years, even as services come and go; they’ll just keep changing who they delegate to.

One of life’s important questions:

Is it more sinister to talk on a cellphone while using a urinal, or to finish what you’re doing, and continue to stand in front of the urinal, chatting loudly on the cellphone in the men’s room?
Continue reading “One of life’s important questions:”

And the walls come down? Google and Facebook have joined!

This is a huge step towards an open, interoperable social web; Google and Facebook are probably the two largest collectors and holders of data (social and otherwise) on the web, and they have been among the most reticient about sharing their data.

Yesterday, it was announced that representatives from , Facebook and Plaxo have joined the workgroup.

This is a huge step towards an open, interoperable ; Google and Facebook are probably the two largest collectors and holders of data (social and otherwise) on the , and they have been among the most reticient about sharing their data.

Modern Fairytale – Marina V

The album has a dreamy, emotional feel, well suited to the title. The songs are all deeply personal, largely based on Marina’s experiences in touring and in growing up

Modern Fairytale

Artist: Marina V
Release Date: January 2008
Overall Rating: Five Stars

Continue reading “Modern Fairytale – Marina V”

Why Super Nintendos Lose Their Colour

I found a great article about the whys and wherefores of plastic yellowing in classic machines:

Vintage Computing and Gaming | Archive » Why Super Nintendos Lose Their Color: Plastic Discoloration in Classic Machines

The article focuses mainly on the SNES, but mentions old Macs as well, and should apply equally to anything made of the official “this is a computer” grey or beige plastic.

The short version: Plastic is an organic compound (made of basically the same stuff as people) which breaks down over time. As it breaks down, it reacts differently to light and turns yellow. If the composition of the plastic is not perfect (exactly correct proportion of catalysts, flame retardants, pigments, &c.), the breakdown will occur faster. It’s also accelerated by visible and UV light, heat, and oxygen.

The yellowing is caused by the chemical composition of the plastic changing, so it’s irreversible. The author does go on to list some ways to mitigate the damage, but reiterates that there is no non-destructive way to fix it — you can remove the damaged plastic, or cover it.