> The executables in our benchmark often have hundreds or thousands of functions — while the backdoors are tiny, often just a dozen lines buried deep within. Finding them requires strategic thinking: identifying critical paths like network parsers or user input handlers and ignoring the noise.
Perhaps it would make sense to provide LLMs with some strategy guides written in .md files.
> static types often reduce to a bunch of optionals, forcing you to null check every field
On one end, you write / generate / assume a deserialisator that checks whether incoming data satisfies all required invariants, eg all fields are present. On the other end, you specify a type that has all the required fields in required format.
If deserialisation fails to satisfy type requirements, it produces an error which you can handle by eg falling back to a different type, rejecting operation or re-requesting data.
If deserialisation doesn't fail – hooray, now you don't have to worry about uncertainty.
The important thing here is that uncertainty is contained in a very specific place. It's an uncertainty barrier, if you wish: before it there's raw data, after it it's either an error or valid data.
If you don't have a strict barrier like that – every place in the program has to deal with uncertainty.
So it's not necessarily about dynamic / static. It's about being able to set barriers that narrow down uncertainty, and growing number of assumptions. The good thing about ergonomic typing system is that it allows you to offload these assumptions from your mind by encoding them in the types and let compiler worry about it.
It's basically automatization of assumptions book keeping.
Where does the stereotype 'thesaurus = synonyms + antonyms' come from?
I'm not a native english speaker, and I never heard that idea besides in, I'd guess, Friends TV show.
I've used thesauruses since my childhood for exactly the task of looking up meanings, explanations, perhaps some etymology baked in.
For English, I always use WordNet, it is quite good and works offline on Android.
For my basic level of Chinese, Outliers dictionaries are so far the best I have found, but that's mainly due to my heavy reliance on the etymology provided there.
Well, I guess I got carried away a bit. Back to my question, where thesaurus=synonyms+antonyms comes from?
How about XMPP performance on low-performance networks like mobile ones?
I believe poor networking performance was one of the reasons XMPP had to be customised in WhatsApp and overall didn't become as widely used as I'd like it to be :)
Is it still the case? Or was that problem addressed at standard level somehow?
Strangely no mention of High Performance Browser Networking
https://hpbn.co
I also would mention Distributed systems for fun and profit
http://book.mixu.net/distsys/
while being not exactly about network programming, it is likely a next step for anyone who's building apps that is scattered across several backends/services connected by the network
Perhaps it would make sense to provide LLMs with some strategy guides written in .md files.