Bash wouldn’t cut it for this. Nor would Perl. No, a job of this magnitude called for the most reliable and type-safe programming language imaginable. So I fired up emacs and wrote it in good old OCaml:
good joke :)
i imagine working in that language all the time must put into perspective how hard systems design/operation is and how little type-safety does to help that. hardware failures are a good reminder of this, fun story!
Working in OCaml all of the time makes the status quo feel so much worse by comparison. Trading strategies written in OCaml could be understood by non-programmers but configuration languages for so much industry standard stuff, including open source stuff, are practically indecipherable even by sys admins.
Really makes you want to rewrite the entire world.
Would also love to see some examples around this! Especially how it relates to system administration. Using OCaml for it has never even crossed my mind.
This neatly explains a problem with contemporary amd64 "server" grade hardware that people really should consider: the OS should have awareness of environmental factors.
I don't use "server" grade, because IMPI is too insecure, I can get ECC on consumer motherboards, and companies like Supermicro don't seem to take security seriously until the media lights a fire under their asses.
I build my own servers, and each one can run at ridiculously high temperatures. Not only can they run at high temperatures, they're tested extensively at intentionally high temperatures long before they're colocated.
When a server starts thermal throttling, instead of just letting the throttling happen and ignoring it everywhere else, the systems will automatically clock down to lower speeds, then, if the temps stay above a certain threshold, all but one CPU core will cpuctl offline. If the temperatures still stay above a certain threshold, a more attention grabbing alert is sent and a machine will shut itself down.
Why this is almost never set up elsewhere is beyond me.
A known, predictable failure mode that doesn't depend on people taking action within certain timeframes is, in my opinion, desirable.
I don't understand how this would make reasoning about failures more difficult. I don't even understand why we need to reason about failures. Could you explain?
polywolf | 18 hours ago
good joke :)
i imagine working in that language all the time must put into perspective how hard systems design/operation is and how little type-safety does to help that. hardware failures are a good reminder of this, fun story!
[OP] scanner_brightly | 17 hours ago
It was only a half joke.
Working in OCaml all of the time makes the status quo feel so much worse by comparison. Trading strategies written in OCaml could be understood by non-programmers but configuration languages for so much industry standard stuff, including open source stuff, are practically indecipherable even by sys admins.
Really makes you want to rewrite the entire world.
adamgs | 7 hours ago
re ocaml - is there any open source/blogs/books that demonstrate this sort of readability?
usrme | 2 hours ago
Would also love to see some examples around this! Especially how it relates to system administration. Using OCaml for it has never even crossed my mind.
johnklos | 11 hours ago
This neatly explains a problem with contemporary amd64 "server" grade hardware that people really should consider: the OS should have awareness of environmental factors.
I don't use "server" grade, because IMPI is too insecure, I can get ECC on consumer motherboards, and companies like Supermicro don't seem to take security seriously until the media lights a fire under their asses.
I build my own servers, and each one can run at ridiculously high temperatures. Not only can they run at high temperatures, they're tested extensively at intentionally high temperatures long before they're colocated.
When a server starts thermal throttling, instead of just letting the throttling happen and ignoring it everywhere else, the systems will automatically clock down to lower speeds, then, if the temps stay above a certain threshold, all but one CPU core will
cpuctl offline. If the temperatures still stay above a certain threshold, a more attention grabbing alert is sent and a machine will shut itself down.Why this is almost never set up elsewhere is beyond me.
[OP] scanner_brightly | 9 hours ago
Well I'll tell you why I would veto this idea. It sounds like it would make reasoning about failures more difficult overall, not less.
johnklos | 8 hours ago
A known, predictable failure mode that doesn't depend on people taking action within certain timeframes is, in my opinion, desirable.
I don't understand how this would make reasoning about failures more difficult. I don't even understand why we need to reason about failures. Could you explain?