Arnt Gulbrandsen
About meAbout this blog

Test messages for unicode mail addresses (EAI)

EAI is a set of RFCs to enable unicode email addresses. jø and even jøran@blåbærsyltetø are syntactically valid email addresses. There are RFCs to extend the email message syntax, to transmit these messages via SMTP, access them via POP and IMAP, and to provide read access by unextended IMAP/POP clients.

I wrote a set of test messages for EAI this morning and put them on github. Feel free to send me extensions and corrections.


NN has endorsed me for a skill

I acked a linkedin invitation tonight, and noticed that the x has endorsed for y notifications have piled up a bit. Must decide what to do about those.

Two things strike me about the pile.

One is that my most-endorsed skill is for C++, a big and complex language where there is much I don't know. Ask me about .->, and I'll frankly admit ignorance. If my code is good, I would rather say it's because of taste and restraint than because I exploited the language's particular features.

The other is that I think my endorsers know less.

In related news, I recently saw a fabulous example of operator whitespace in real life. It was in java and leveraged annotations and reflection.

I wonder what Bjarne Stroustrup says if I endorse him for Java.


Sitting down to work

This is my answer to so how should the office be, then? and so how does your office look?, both of which are are entirely reasonable things to say to me, particularly this month. If you haven't talked to me about work environments and productivity, this post may be one to skip. (more…)


Branded variables and so on

Why was Modula 3 so good?

The question has bothered me enough that I bought a new copy of Systems Programming with Modula 3 to reread. I reread, and was no wiser.

I liked the brevity of the language description. The designers explictly tried to make the language simple enough to describe in fifty pages. That may have something to do with the clarity of Modula 3 code.

I liked many of the minor features. I've mentioned the 31-bit integers before. Branded native types are another.

In Modula 3, you could define a variable as (I forget the exact syntax) branded msec cardinal timeout; and get protection against unit confusion. If you branded a string as untrustworthy user-supplied input, you couldn't just assign it to an untagged string. If you branded an integer as msec, you couldn't just pass it to a function which accepted a seconds-tagged integer. That half-type gave a pleasant amount of protection against careless mistakes.

I seem to be saying that I liked Modula 3 because it was a compiled object-oriented language with simple syntax, sufficiently expressive, with some good features and no bad ones. Put that way, I admit that's my kind of language.


Come back Microsoft, all is forgiven

A year ago I talked at some length and frequency about the evils of Microsoft's reference application for the Xbox. One of the points I mentioned most often is that the thing links in four different JSON libraries, all deficient in some serious manner.

Today I added a third JSON library to an application, despite knowing that it already used two different ones.