HNHacker News
TopNewBestAskShowJobs

roca

5,692 karma · joined October 28, 2014

Robert O'Callahan. Christian. PhD from CMU (2001) in static program analysis. Former Mozilla Distinguished Engineer. Primarily worked on Gecko layout and rendering. Started https://rr-project.org and currently maintaining it. Cofounder of https://pernos.co, an omniscient debugger that people actually use. Google.
submissionscomments
roca··on What a good debugger can do
Pernosco combines conditions, logging, and interactive debugging in a really nice way. https://pernos.co/about/expressions/
roca··on What a good debugger can do
That could work in the old Unix days, and for toy problems today. But if Firefox crashes you can't just build a mental model of 10M lines of code and intuit the problem.
roca··on What a good debugger can do
rr lets you call program functions just like gdb does (using the same gdb commands, in fact). The limitation is that any state changed by those functions is simply dropped when the function ends. It's still super-useful for dumping program state etc.

Pernosco supports this too.

roca··on What a good debugger can do
Debuggers are chronically under-invested in. A lot of the pain points could be fixed just with more money and staff. It's a chicken-and-egg situation --- people don't use debuggers that much, for various reasons, so there isn't the investment, so debuggers don't improve, etc etc.
roca··on What a good debugger can do
Most record-and-replay debuggers let you store the recording to debug as many times as you want.

Pernosco (which builds on rr) has some really powerful state-recording and state-sharing UI for long-term and collaborative debugging. https://pernos.co/about/notebook/

roca··on A Vulnerability in Implementations of SHA-3, Shake, EdDSA
It helps. In Rust debug builds, integer overflows crash -> tests will detect them. In release builds they're not detected by default, but you can add "overflow-checks = true" to the Cargo profile to enable those checks in release builds too if you want.
roca··on ChatGPT broke the EU plan to regulate AI
What if your personal chatbot was subverted by the super-persuader, or was controlled by it from the beginning? Impossible to be sure.

We're going to have to stop talking to machines.

roca··on Honestly, It's Probably the Phones
It's actually quite different. That "someone much better than you" has limited time and is probably expensive to hire, therefore there can still be opportunities for less-skilled people. When that "someone" is an AI, we expect it to be easily replicated to satisfy all demand, at much lower cost than the wages needed to support a human.
roca··on Honestly, It's Probably the Phones
I suspect AI is going to make today's teenagers feel a lot worse. How can you imagine a future for yourself when any skill you might learn might be obsolete by the time you learn it?
roca··on Omniscient Debugging (2007)
Time-travel debugging and omniscient debugging are different. For example, https://rr-project.org is a time-travel debugger --- it can simulate executing backwards through time --- but it is not an omnisicient debugger because it doesn't provide fast access to all program states. https://pernos.co/about is an omniscient debugger built on top of rr: it provides fast access to all program states and visualizations built on top of that.
roca··on US aircraft shoots down new airborne object over Canada
China is weakening. Centralization of power is making the government brittle. The government is deeply unpopular domestically, and there is no outlet for this resentment so it's continually building. China has no real allies; most countries, especially their neighbours, deeply distrust them. China's demographic outlook is terrible; the population has peaked and they've transitioned directly from enforced one-child to hardly anyone wanting more than one child.

China is indeed extremely powerful but it has peaked.

roca··on Weird things I learned while writing an x86 emulator
(Disclaimer: rr maintainer.)

As others have said here, in practice rr works very well for debugging a wide range of bugs in multithreaded programs, including race conditions.

Where it falls down:

* It can only use a single core, so highly parallel programs run very slowly when recorded by rr.

* Some race conditions may be difficult or impossible to reproduce under rr recording (but rr's chaos mode helps a lot with this).

* rr imposes sequential consistency on the recorded program, so bugs due to weak memory models do not show up under rr. Such bugs are pretty rare on x86 (because x86's memory model is pretty strong); this may be more of an issue on ARM.

roca··on A genius at suffering
So the question is, how does one maintain hope and joy while taking human depravity seriously? My answer is: by following Christ. Some of Garshin's peers could see this but apparently Garshin himself could not.
roca··on Bell Telephone launched a mobile phone during the 1940s
In NZ in the early 80s there was a "RadPhone" service for recreational boaters over VHF --- you could call the Coast Guard operator on a dedicated VHF channel, give them a phone number, and they'd make the call and connect it to that channel. Of course everyone else with a VHF radio could listen in.
roca··on The Grapes of Wrath’s Foreshadowing of the Cold War (2018)
I learned to run fairly late in life barefoot on a beach. I like it and it works for me and I can't be bothered changing it.
roca··on The Grapes of Wrath’s Foreshadowing of the Cold War (2018)
I've been kicked out of a mall for not wearing shoes. I guess I should have kicked up a fuss.
roca··on The Grapes of Wrath’s Foreshadowing of the Cold War (2018)
In Auckland I run home from work barefoot most days. And I work for Google.
roca··on How Memory safety approaches speed up and slow down development velocity
Controlling mutation by completely abolishing it is one way to go, but often inefficient. Rust gives you a nice third way.
roca··on How Memory safety approaches speed up and slow down development velocity
I agree that GC languages are faster for prototyping, but this article downplays the disadvantages of GC. E.g. "deterministic destruction" is listed as a benefit of reference counting, but it really should be listed as a disadvantage of GC, since all the other memory-management methods have it.

The "leaky abstractions" argument doesn't work for me. E.g. in a Java API you don't commit (at the language level) to the ownership of passed-in or returned mutable objects. In Rust, you do, and the author claims this is a problem. I say that in fact you depend on the ownership of the referenced object either way; Rust forces you to write down what it is and enforce that the callers honor it, while in Java you cannot. Arguably therefore Rust is less leaky in that hidden assumptions are documented and enforced at the API layer.

I've had lots of good experiences refactoring Rust code. It's probably more typing than other languages but the increased assurance that you didn't break the code (especially in the presence of parallelism) more than makes up for it.

roca··on Pictures of a working garbage collector
gdb's built-in recording slows down the debuggee by about 1000x, rr more like 2x. That makes a huge difference in practice.

rr's recording works across system calls, thread context switches, etc, but gdb's doesn't.

rr's recording creates a persistent recording on disk that you can even move around between machines. This permits workflows that gdb's doesn't.

(Disclaimer: I work on rr)

roca··on C++ at the End of 2022
I think the most interesting thing about C++ in 2022 is that big C++ names at Google are saying in public that if you can use Rust instead of C++, you should. https://github.com/carbon-language/carbon-lang/blob/trunk/do...
roca··on Building a Virtual Machine Inside ChatGPT
Now.
roca··on Memory Safe Languages in Android 13
rustls isn't formally verified but no critical CVEs have been found in it yet. The only CVE is one DoS.

And I don't know about "used at scale" but we use it in production for Pernosco.

roca··on Memory Safe Languages in Android 13
Anyone who writes a library that might get used in a context where it is presented with inputs derived from potentially malicious data, is writing security-critical code whether they acknowledge it or not.
roca··on OpenAI ChatGPT: Optimizing language models for dialogue
Moral non-realism is intellectually attractive (especially to religious non-believers who cannot accept divine command theories), but in practice practically everyone seems to speak and act as moral realists. Example: https://robert.ocallahan.org/2019/10/is-richard-dawkins-mora...
roca··on Microsoft's ex-UI chief is shocked about the Windows 11 start menu
This isn't a good example to use to critique the Start Menu because it's a special case --- downloading Chrome is an action that Microsoft does not want you to complete, so making it a good experience is a Microsoft non-goal.
roca··on SMS Multifactor Authentication in Antarctica
Yeah, Messages device pairing should work perfectly for this.
roca··on SMS Multifactor Authentication in Antarctica
This is trivial for Android phones running the Google Messages texting app. Go to https://messages.google.com, scan the QR code with the Messages app, and now all your text messages are accessible via the Messages Web site. Bank auth codes work fine (at least for my NZ banks).
roca··on Star Trek (1964) [pdf]
I'm pretty sure one major reason Martin hasn't finished WINDS OF WINTER after over 10 years (never mind A DREAM OF SPRING) is that he he finds it easier to spawn new characters and subplots than to wrap them up.

I.e. the TV series looks bad compared to the books because they had to tackle the hard part and Martin hasn't yet shown he'll do better.

roca··on Galactic settlement of low-mass stars as a resolution to the Fermi paradox
This seems like a bad assumption:

> stars suitable for settlement should provide “environments nearly identical to that of the home planet.”

Seems pretty clear that we're on a path to machine intelligence, and that interstellar voyages will be undertaken by those intelligences, not meatbags. That humans like a class G sun is irrelevant to the prospering of those intelligences.

← PreviousPage 8 of 34Next →