The Remote Agent Experiment: Debugging Code from 60 Million Miles Away
Why Hacker News recommends it
Cited in Lisp and safety-critical software threads as the definitive firsthand account of the DS1 remote REPL debugging episode.
What it is
Ron Garret tells the story of the Remote Agent Experiment on NASA's Deep Space 1, where autonomous software controlled a spacecraft in 1999. He describes debugging Lisp code remotely from millions of miles away.
Recommended by 1 HN commenters across 1 different months, 2012 to 2024.
What Hacker News said
Recommends dmit · 2012-08 · on “NASA Pulls Off 160-Million-Mile Software Patch”
Related Google Tech Talk: Debugging Code from 60 Million Miles Away [this video] Ron Garret talks about DS1, a project in the 90s where a small team used Lisp to send an autonomous craft into space in a third of the time and at a fraction of the cost of previous comparable projects. (Yes, I couldn't have made up a more HN-friendly story if I tried.)
Cites lisper · 2016-07 · on “The Power of Ten – Rules for Developing Safety Critical Code”
> What part of the stuff from that link was written in Lisp? All of it. (Except for an IPC system which was written in C. See [this video] if you want to know the whole story.) > Would you answer them? I'll answer a few of them. > if Lisp is so wonderful compared to C, how come so many more safety-critical systems are written in C? Politics mainly. And inertia. And the sunk cost fallacy. > Is it because the entire profession is blind, and only you and a few enlightened ones realize how wonderful Lisp is? Yes. Pretty much. > Or is it because people that have done this for decades see more problems with Lisp than you are aware of? They, like you, think they see problems, but they, like you, are wro
Cites lisper · 2016-07 · on “Lisp as an Alternative to Java (1999)”
A more detailed (and accurate) account: [this video] Stuart got one significant factual detail wrong: the race condition was in Lisp code.
Cites gkya · 2017-02 · on “Lisping at JPL (2002)”
There's this (edit: 2012 Google Tech Talks) video: [this video] "The Remote Agent Experiment: Debugging Code from 60 Million Miles Away" by Ron Garret. IDK how similar it is to the 1998 talk by him you refer to. I guess he's around here by the nick "lisper".
Cites informatimago · 2020-04 · on “In space, no one can hear you kernel panic”
Unless you write it in CL, in which case you get a debugger REPL, and you can debug it hundred of million of km away. [this video]
Cites _emacsomancer_ · 2024-04 · on “NASA tries to jog Voyager 1's memory from 15B miles away”
I'm reminded of Ron Garrett's writing/talks on remote debugging the Remote Agent for the New Millennium Deep Space 1 (DS1).[0], [1] [0]: The Remote Agent Experiment: Debugging Code from 60 Million Miles Away - [this video] [1]: NASA Programmer Remembers Debugging Lisp in Deep Space - [LINK]
Cites lisper · 2024-04 · on “EURISKO Lives”
This is what I was mainly known for: [LINK] [LINK] I think I'm most proud of this: [LINK] [LINK] though it didn't make nearly as much of a splash. I was also the tech lead on the New Millennium Deep Space One Remote Agent Executive, which sounds cool, but was really kind of a disaster. See: [this video] if you want the gory details.
Cites iLemming · 2024-06 · on “Ask HN: 30y After 'On Lisp', PAIP etc., Is Lisp Still "Beating the Averages"?”
It's actually not that hard to explain, yet without experiencing it firsthand, it is hard to see what this REPL fuzz is about. So, let's take a minimal, simple example: if True: print("Hello, Python!") and the equivalent code in Clojure: (when true (println "Hello, Clojure!")) In Clojure, you can send any expression fragment like a single symbol, list or even incomplete code and it will be evaluated according to its context. So, you can sent `true`, you can send `println` and you can even send `(when true println)` or `(when true (println))`, or even `(when true ,,,, (println))` (you can replace commas with line breaks if you want) and it will still be evaluated. In Python, you can send `Tru