Buggy Prose

So I was looking at the BitTorrent protocol specification (AKA BEP-0003) tonight, and I found this bit of muddy writing that confused me no end.

"Interest state must be kept up to date at all times - whenever a downloader doesn't have something they currently would ask a peer for in unchoked, they must express lack of interest, despite being choked. Implementing this properly is tricky, but makes it possible for downloaders to know which peers will start downloading immediately if unchoked."

I spent 30 minutes trying to parse "whenever a downloader doesn't have something they currently would ask a peer for in unchoked, they must express lack of interest, despite being choked." Depending on how you parse it, this could mean two contradictory things.

I think what they were actually trying to say is this. If a downloader would not be interested in anything from this peer when unchoked, it must still indicate lack of interest even when it is choked.

I've tied myself in knots over this sort of thing in the past. Clarity of expression is difficult. Wars have been started over stuff like this, I'm certain.

This is likely the sort of problem that Lojban could solve, but I concluded way back in 2004 that Lojban was for people smarter than me.