One Small Voice: The Journal of Peter Saint-Andre

RFC 7590: TLS in XMPP


Following on the work that Yaron Sheffer, Ralph Holz, and I did on best practices for SSL/TLS in application protocols, Thijs Alkemade and I have now applied those recommendations to XMPP in the form of RFC 7590 (published today). This document explicitly updates the security considerations of the core XMPP spec and thus helps us further strengthen the security properties of the Jabber/XMPP network. Naturally there is still much to be done, but this is another step in the right direction...

Two More Nietzschean Poems


Although my philosophical focus right now is on Thoreau, I'm also thinking once in a while about Songs of Zarathustra (a cycle of poems providing a positive interpretation of Nietzsche's ethics). Here are drafts of two more poems that might make the cut. As can be seen, these are related to my previous poem Eternal Recurrence.

Amor Fati

Whatever might unfold for me
Is not spun out by scheming Fates;
Instead it's simple destiny,
A line of life that time creates.

It's natural that I love this line,
Despite its pains and hurried pace;
Because the steps I make are mine,
I take pride in their style and grace.

I wrote the first stanza of that one a month or two ago. As I was waking up this morning, the following poem (Spiral) came to me quite quickly, and then I went back and worked out a second stanza to Amor Fati. As always, these are provisional and might not survive the editor's pen.


Eternal recurrence of the same
Sounds like a circle I can't escape,
The endless march of a lowly ant
On a moebius strip of grinding fate.

And yet the notion spurs me on
To fly and soar while I have the chance,
To make my life a thing of gold
That shines out over time and space.

RFCs 7572 and 7573: SIP-XMPP Messaging


And the hits keep coming! Today two more of my RFCs were published through the Internet Engineering Task Force, defining how SIP and XMPP can interoperate for one-to-one messaging: RFC 7572 covers single messages (also called "pager-mode" messaging in the SIP world), whereas RFC 7573 covers one-to-one chat sessions (a.k.a. "session-mode" messaging). These documents continue in the series started with RFCs 7247 and 7248 and have been in the works since early 2008, if you can believe it. I hate to brag, but it shows how much I care about interoperability that I've kept pushing these specs forward all this time. :-) There are two more documents still to be published in this series: one on multi-party text chat rooms and the other on voice and video call signaling, so stay tuned for more RFCs in the relatively near future...

The Art of the Fugue


Ever since I discovered Bach's Art of the Fugue thirty years ago, I have turned to this piece of music for solace when I am in a state of agitation. Finding myself there again this evening, I decided to pay homage to the greatest of composers with this brief pantoum...

The Art of the Fugue

How these twelve notes soar and tumble,
Calming my soul in a bath of sound!
As lines entwine and themes embrace,
Bracing logic melts away my cares.

Calming my soul in a bath of sound,
Bach weaves his magic mastery.
Bracing logic melts away my cares;
Creation fills me with wonder.

Bach weaves his magic mastery
As lines entwine and themes embrace.
Creation fills me with wonder:
How these twelve notes soar and tumble!

RFC 7565: Account URIs


RFC 7564 is a good example of a necessarily complex piece of work that required a long time to produce. Yet sometimes even simple things take time. Case in point: the specification of the 'acct' URI scheme, also published today as RFC 7565. In June of 2012 I split the definition of this scheme out from the WebFinger document so that it could stand on its own. Indeed, the 'acct' URI spec was approved for publication almost 2 years ago, but couldn't be published as an RFC until the PRECIS framework was published today as RFC 7564. Ah, the wonderful world of technology standardization...

RFC 7564: An Internationalization Odyssey


It all started in 1998 when Jeremie Miller chose XML as the basis for Jabber. Although XML seems old-fashioned now, at the time it was the cutting edge, in part because from the beginning Jabber Identifiers could include characters outside the US-ASCII range (unlike textual protocols of the time such as email or SIP). In 2002, Craig Kaes and I started to codify the Jabber address format in JEP-0029 - an effort that was superseded by activity in the IETF's XMPP Working Group, which eventually led to the core specification for XMPP in the form of RFC 3920 in October 2004.

That original definition handled internationalized addresses using a method called Stringprep, which at the time was also used for domain names and other application identifiers. Unfortunately, over time the Internet community discovered some issues with Stringprep, first among them that it was tied to version 3.2 of Unicode (the underlying set of characters for all modern, and some ancient, human languages). These days we're up to Unicode version 7, with further improvements and updates on the way. After the DNS community decided to move beyond Stringprep in 2008, other application protocols (XMPP, LDAP, iSCSI, and the like) concluded that they needed to follow suit.

That was in March of 2010. Fast forward 5 years, and today the IETF's PRECIS Working Group has finally produced a new and better framework for handling internationalized strings in Internet protocols: RFC 7564, which I co-authored with Marc Blanchet. Although the exact reasons why I volunteered to help are lost in the mists of time (probably something about "the good of the Internet"), I ended up learning a lot more about internationalization than I ever thought possible. Unfortunately, internationalization is such an exceedingly complex and messy topic that I still feel like I have only scratched the surface. But at least now we have an internationalization framework that can serve us for the next 10+ years. Or so we hope!

For older entries, check the archive. To track changes, follow the feed.

Peter Saint-Andre > Journal