#PHP Tip
Did you know... You can destructure arrays directly in the right-hand part of a foreach loop!
Give it a shot for cleaner and more readable code!
Man sits by me on train.
MAN: Loads of psychopaths around here
ME: Really?
MAN: Loads mate
ME: How'd you know?
MAN: There's signs aren't there?
ME: I guess?
MAN: I love them
(47 minutes of awkward silence.)
Man leaves train, he has a bike. I realise he was saying 'cycle paths'.
What happens if your CPU gets something wrong? If it wakes up one day and decides 2+2=5?
Well, most of us will never have to worry about that. But if you work at a company the size of Google, you do, which is why this paper on "mercurial cores" is so fascinating.
What the authors report--and supposedly this is common knowledge at the hyperscalers--is that a couple cores per several thousand machines are "mercurial." Due to subtle manufacturing defects or old age, they give wrong answers for certain instructions. These can cause all sorts of impossible-to-diagnose issues. Some rare problems at Google that were traced back to bad CPUs include:
- Mutexes not working, causing application crashes
- Silent data corruption
- Garbage collectors targeting live memory, causing application crashes
- Kernel state corruption causing kernel panics
What makes CPUs go bad? It's very hard to tell. The authors posit that issues are becoming more frequent as CPUs get more complex, but there aren't solid numbers behind that. There are certainly strong relationships between frequency, temperature, voltage, and bad CPU behavior--most mercurial CPUs only cause problems under very specific conditions, but those conditions vary from CPU to CPU. Age is another source of problems, as older CPUs are more likely to exhibit problems.
Bad CPUs are an especially serious problem because they're very hard to detect. If cosmic rays flip bits in storage or on the network, that can be detected through error coding. But there's no analogy for a CPU that allows cheap online verification of its correctness. Instead, the best detection techniques involve monitoring for symptoms. If a core exhibits exceptionally high rates of process crashes or kernel panics relative to its fellows, that's a strong indication something is wrong with it. For the most critical applications, the authors propose triple modular redundancy--redoing each of its computations on three cores and majority-voting a reliable result.
More than anything, this paper is a call to action--letting everyone know that CPUs can fail. So now, if you ever find a bug you can't diagnose, you can blame the CPU! 🙂
At the height of One Million Checkboxes's popularity I thought I'd been hacked. A few hours later I was tearing up, extraordinarily proud of some brilliant teens.
A thread about my favorite story from running OMCB....
So here's a story of, by far, the weirdest bug I've encountered in my CS career.
Along with @maciejwolczyk we've been training a neural network that learns how to play NetHack, an old roguelike game, that looks like in the screenshot. Recenlty, something unexpected happened.
It's colourized but I don't care because Stormy Weather's Jumpin' Jive is a must.
Cab Calloway gets the party started but when The Nicholas Brothers take over - it's over. Fred Astaire called this number "the greatest musical sequence of all time".
💯
Hiring for multiple dev positions:
Levels: intern/entry-level
Compensation: 190,000 - 210,000 USD
Tech stack: Golang, Node.js, TypeScript
- RTs appreciated
- Roles based in Seattle/San Jose
- Benefits include free breakfast/lunch/dinner
- Reply for direct referral info
@ReplitSupport I recently received two phishing attempts via SMS with links to a Repl that renders a fake version of @Bancolombia's login page.
What's the best place to report that Repl?
como lo hacéis como lo hacéis para escucharos todos los álbumes y veros todas las películas y jugar a todos los videojuegos y tener 30 amigos y hacer ejercicio y haceros el skincare y