network-bind authorizes bind(). network-inbound authorizes listen() and accept(). One propagates to the other under a condition that took me three days to see, because my probe called both syscalls inside one try block and labelled every failure with the name of the wrong one. The kernel had been logging the name of the operation it refused the entire time, one layer below the exception I was…
Divers blame the interchange formats for losing decompression data. I counted the fields. UDDF has carried GF99 since 2018, DAN's format has carried the deco ceiling since 2006, and there is a version of UDDF that real software writes and that was never published.
My Garmin and my Shearwater both logged my 101.5 m dive, 19 seconds apart on clocks that don't agree about what time is. How bottomtime decides two logs are the same dive so you can do it yourself.
A reverse-engineered byte is a hypothesis. I wanted mine attacked from every angle before trusting it: the vendor's exports, its own arithmetic, physics, a second computer, and finally its source code.
Shearwater Cloud stores every dive as a gzip blob of 32-byte records, then exports a subset of it. GF99, deco ceiling, and battery voltage stay behind. So I decoded the blobs myself.
There's a small red heart on my homepage now, beating at my actual heart rate with an exactly 24 hour delay. How I get the data out of my Garmin, and where the white lie is.