JavaScript Firefox workaround

Because of a security reason (thanks, Asa), Firefox does not like script elements in the style:

<script type="text/javascript" src="jquery-1.2.3.js" />
<script type="text/javascript" src="jquery.cookie.js" />

Safari handles this correctly, however Firefox seems to only load the first one and ignores the second. The doctype is XHTML 1.0 Strict, so this should be technically valid XML.

The workaround for this is to open and close the tags:

<script type="text/javascript" src="jquery-1.2.3.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>

I’ve updated my Dynamic Form Example to reflect this workaround.

WP-OpenID Woes

I’m trying to add my OpenID to my WP-OpenID plugin for my WordPress blog.

However, when I try to add my OpenID, I get the following error:

Error: OpenID assertion failed: returnto does not match return URL. Expected http://pixelcort.com/wp-admin/users.php?action=verifyidentity&page=openid, got http://pixelcort.com/wp-admin/users.php?action=verify_identity

I’m wondering if this is because I’m using my own domain as my OpenID url and that’s causing some self-referential bug.

Update: Doesn’t look like it. I’ve tried other OpenIDs and they all fail with this plugin. Maybe it’s my hosting provider, Dreamhost, which is causing problems with this plugin? There are some failures in the diagnostics section of this plugin.

Definitions of Web 1.0, 2.0, and 3.0

I read a comment on an article explaining Web 1.0, 2.0, and 3.0 that I found really summarizes the whole thing:

Web 1: static [Read]
web 2: dynamic [Read/Write]
web 3: programmable[Read/Write/Execute]

I believe this is a great simplified way of expressing what each one is. It reminds me of UNIX-style permission bits for rwx.

In the beginning, there was read-only webpages. These static HTML files sat on webservers and were hyperlinked together.

Then, the read/write era came about. Now pages had Edit buttons; it became as easy to edit a page as it was to read it.

Now, the read/write/execute era is about to begin. Here, the Execute button is going to become as easy as the Edit button. The ability to tap into the CPU cycles of the internet is about to be unfolded.