3,026 karma · joined June 10, 2021
So the JSON APIs would accept nulls or absent keys when sending data to the API. But when retrieving it we would get golang default values for those keys. And, of course, the backend code was full of == 0, == "", == false...
The key thing is that this scaled horizontally pretty much forever, since each vehicle had a fixed amount of data per year we could tightly control the performance characteristics of the analysis. Adding more vehicles didn't make things slower, just linearly more expensive.
I vaguely remember the data from those containers also being used to process some aggregate analysis (like the each vehicle-container would output some data that would be consumed by another job that did aggregates). But I don't remember the specifics.
[1]: I believe we used JSONL or parquet format, but I didn't work in that part of the stack directly
Youtube killed them because it is just a faster delivery of knowledge and information. For super-specific questions chatbots are even faster.
Of course it can collapse before that, but if it gets to that point it is guaranteed to collapse.
You really need a serializer for this sort of thing because it can also include forwards compatibility of your data structures.
This kind of self-reflection about identity is also very important for your own internal communication with yourself.
For conscious bias a good test is if being exposed to new facts prevent you from changing your opinion on something.
For example, imagine I was a very big believer of full-blown libertarianism and I was exposed to very concrete evidence that say, for example, government run healthcare is both more efficient and cheaper than private healthcare[1]. Would I still be full-blown libertarian and try to put holes on the data or would I embrace that libertarianism doesn't bring good outcomes in healthcare[2]?
Unconscious bias is much harder though, in fact libertarians tend to be very much fueled by ideology than facts. One could say that unconscious bias is fundamentally the same thing as ideology.
Another example, like I mentioned before I am very much a pro human rights ideologist. So I am inherently against some things like eugenics, even though one could provide data to me saying that eugenics would lead to "better" outcomes in society I would still be against it on principle.
[1]: Personally I sympathize with most libertarian views, but I don't consider myself a libertarian. I don't think a full private healthcare system is good for example. And this is the core issue the essay brings out, being a libertarian is assuming an identity and it closes you off to new ideas.
[2]: it is very hard to have absolute evidence to anything, but one must be willing to look over their own pre-existing world view when analyzing information available. A certain level of suspicion of information is warranted, but if you can't get past that, your world view is essentially ideology.
https://www.paulgraham.com/identity.html
> If people can't think clearly about anything that has become part of their identity, then all other things being equal, the best plan is to let as few things into your identity as possible.
Of course one can't not have any identity whatsoever, afterall ethics is a type of identity and no one should in their right frame of mind contest basic things like human rights.
Apparently that was the only way they managed to keep the country stable. But it is baffling to have religion so entrenched on the constitution.
Therefor if you are not putting human effort on the document it is low-value.
We have seen this before when big data started to be a thing, tons and tons of reports being auto-produced weekly (or even daily), but even if they contain relevant information they are low-value because no one can take action on so much information.
Agents can't look at a large system holistically, guidelines on .md files only go so far.
WASI is a standard on where to poke holes on the sandbox for your specific use-case
WASM+WASI as a compilation target allows any program written for modern operating systems to work on any WASM runtime
https://www.raspberrypi.com/products/compute-module-5/?varia...
I personally worked on a system with raspberry compute modules 3 and 4, the total system cost was in the ~million dollar range. This was definitely a commercial product with dozens of engineers doing R&D, not a hobby project.
We were looking into smaller systems with lower profit margins (~20k USD) and for those we were considering moving away from raspberry CMs because of cost.
The main advantage of the raspberry CM ecosystem is just how widely popular it is and how cheap and available "dev boards" are (just grab a non-CM raspberry and it is almost the same thing). Most of these types of systems don't really have the I/O that makes testing and developing a lot easier.
Being popular is quite important because firmware issues are notoriously expensive to troubleshoot and fix often requiring the manufacturer help. Said manufacturer does not give a damn if you are a low-volume customer. More popular systems have more information available online and are less likely to have bugs (or at least the bugs are known).
I remember one of our other systems bluetooth module had a weird edgecase bug that caused the module to shutdown after several days of it being powered on. It took multiple engineers >1month of work to basically go "yep nothing we can do about this and manufacturer is not helping"
I know they are being used in Ukranian drones and some police-car systems in some cities (although this was hearsay from a coworker and I don't remember the city). But those are just the examples I heard of.
For example a SaaS services that accepts WASM plugins could provide a WASI that lets the plugin write to a object-store filesystem (like AWS S3) provided by the SaaS owner.
1) Replace webhooks in web apps with wasm binaries provided by the customer, but that run in the web app servers.
2) Safer plugin system for professional software (plugins for photoshop, plugins for IDEs, etc)
3) Safer mod system for games and server-side mods that run on the game-maker server.
const nestedDependency = { a: { b: { c: 'c' } } }
useMemo(() => nestedDependency.a.b.c, [nestedDependency])
vs
useMemo(() => nestedDependency.a.b.c, [nestedDependency.a.b.c])
neither triggers react hook lint warnings, although I guess this is more relevant to useEffect than memoization.
Sometimes it takes hours of discussion and tracking down decision-makers just to figure out what the intended behavior is.
I would be interest to hear how it worked out for you.
At some point the market will be saturated with supply and prices will come down for older gen hardware. It can take years though, but it happened to fiber cable and fiber doesn't even depreciate like chips.
The only thing I demand to be fast on my terminal is grep reverse search (ctrl+r) and of course typing a character. But if your terminal can't keep up with your typing speed there is something deeply wrong with it.