homepage

Keeping secrets, or (less than two weeks ago)

If you've used IRC in the last few years there's a good chance you have seen this before:

- Last seen  : (about 28 weeks ago)
- User seen  : (less than two weeks ago)

What does “about” mean here, exactly? Why less than two?

This is, of course, a privacy feature, designed so that a third party can tell when someone was around, but only approximately; they should never learn the exact moment someone signed off.1

One might imagine, then, that “about 28 weeks ago” is an exact time duration, rounded to the nearest whole number of weeks. But although seeing the rounded number once gives you only approximate information, you could defeat rounding by querying repeatedly until you saw the number tick over.

The solution is to reduce the precision of the last-seen time itself, rather than that of the time duration. Since any given time will only ever round one way, doing it multiple times can’t possibly reveal any extra information.

The way this is done on Libera means all obfuscated last-seen times increment together. Time started on a Thursday and if you NS INFO an unused account you will indeed find that it gets one week more unused every Thursday.2

But why “less than two”? What’s wrong with “one”?

Actually, one is fine. But if you could see one, you would also sometimes see zero—meaning someone was last seen in a week that hasn’t finished happening yet. That is fairly precise information near the beginning of the week!

So the system has to display zero and one the same way. It seemed odd to describe someone who just left as being seen “about a week ago”, so “less than two” it had to be.


  1. You can turn off the obfuscation for your own account. freenode defaulted the setting to off and Libera changed it to on; I’m still not sure if that was the right decision, but it’s done now. 

  2. UTC, naturally. 

 ↑ back to top