Oddbean new post about | logout
 my main paid gig at the moment most of my time on the clock i'm learning a new language and runtime API (for sui and aptos blockchains) ... which is really boring but i gotta get up to speed because i'm sure i can do this stuff, it's simple, andd tedious, like i say - "smart contracts" are just database scripts, so i just gotta grit my teeth and do this boring shit that will involve no high performance, no significant opportunities for optimization or anything actually fun really

i'm assigned to maintaining a port to a second chain with the same language, and right off the bat this stupid thing is getting in my face because when i have the plugins for both "languages" enabled it breaks my goland, as i discovered just now... so much yawn... they invent these new languages and then make nowhere near the commensurate effort to make it easy to work with their bullshit

anyhow

so, what am i doing?

yes, working on #realy right now - and currently i've modified my codec tester to just print out the events that fail somewhere in the process of encoding/decoding to thin out the field... rn ~10k events failing to encode/decode to binary or possibly just decode from json, out of ~250k..., and about 300mb so my codec is failing on what the json linter in the IDE is happy with, so my code is wrong

there's about 4 or 5 different categories of errors popping out of this, and anyway, the point is if i just let it run and clean out 180gb of events , will thin it down to probably  200-300mb of raw events, which will speed up subsequent work to debug what is causing these decode/encode failures

trying to debug the current first bug that it hits is a complicated tag encoding bug and all the noise in the logs makes it harder to focus on it

so, i figure, collect all the ones that are not working, then i can thin those out, try to find the lowest hanging fruit and thin it out even further sooner... i want to get this codec working 100% correct and to eventually have it so that anything it doesn't like is invalid JSON... and it's already just rejecting and not logging anything that has linebreaks anyway, they all fail with EOFs

i wish i could focus on getting this right, but i understand that nostr is still so new it's extremely speculative that it will ever have a market footprint and that's fine, but it's what i love working with and what i love to do with what i love working with is making it as correct, and as efficient as possible

when i finally get this codec all fixed, and it only rejects garbage, i can finally start tinkering with other things i want to do... i'm very experienced with binary encoding and network transports and error correction so it will be fundamental stuff, and it will make a big difference but it isn't gonna win me any fame

i'm working in the bowels of the factory, i'm not the courier delivering it to the customer