Older blog entries for timbl (starting at number 1)

Plus + signs in email addresses

It seems that roughly half the forms out there on the web don't accept a + sign in an email address. This is a bug!

I am making this post partly so that I can point web site designers at it when I complain. When I sign up for example for, say, meetup.com, I use a custom email address like, say, timbl+meetup@w3.org. This allows their mail to get through my spam filters, and also allows me to track any abuse of my email address. The w3.org mail configuration strips out the tag after the + for routing the mail. (This is fairly common practice but not ubiquitous).

So if you are reading this and you have a guilty feeling that you might have designed a form which doesn't allow the + sign, maybe it would be good to check and fix it.

For the spec, see RFC 822, excerpted below, where the relevant productions are mailbox > addr-spec > local-part > word > atom.


atom        =  1*<any CHAR except specials, SPACE and CTLs>


specials = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / <"> / "." / "[" / "]"

...wanted to refer in a paper to a "level-breaker" ... found my use of it was the second Google hit, I'd probably just started using the term without really defining it. So why not define it in a blog on my new Advogato account?

The first hit was in the TV Tropes wiki defining it as An event in the script or an uneven portrayal that wrecks the intended emotional tenor of a scene or an entire piece.. In software architecture, though, it is a pattern in which a well-defined clean layered architecture actually in practice had to be disrupted for, sometimes, good reason.

The URI bar in a browser is level breaker. It shows you the workings. The web architecture says you should be able to just browse in the hypertext document space, following links, but never explicitly aware of the URIs themselves. In fact, you need to be able to check on the URI. To decide whether to trust it. When things go wrong, to see who is to blame.

A TCP/IP socket API which allowed one to see details of the TCP window, or detaiuls of the Ethernet back-off level, would be a level-breaker.

Level breakers often mess things up in theory. A level-breaker which allows a programming language to peek at its own stack might suddenly make it theoretically a very different language. But it might be really useful at times. Especially when things go wrong.

I'll probably think of a bunch of better examples of useful level-breakers when I hit "Post". Slife.

Provenance is a useful level-breaker when a Semantic Web data browser allows you to ask which document produced the fact that you are just reading, and about to base an important decision on.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!