HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

The Remote Agent Experiment: Debugging Code from 60 Million Miles Away

Google TechTalks1 HN recommender · recommended in 1 month, 2012-2024
YouTube
23K views · 14 years ago · talk · evergreen

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.

Cited in Lisp and safety-critical software threads as the definitive firsthand account of the DS1 remote REPL debugging episode.

Space exploration & spaceflightFunctional programmingTesting, debugging & developer tools#lisp#deepspace1#remotedebugging#nasa#autonomy

8 comments from Hacker News

@iLemming2024 · in “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 `True`, and you can send `print`, but you can't send `if True: print` (even with corrected indentation), because Reader would have hard time making sense of that. In Python, you need to adhere strictly to its syntax, and partial expressions that don't form a complete statement won't be evaluated meaningfully. In contrast, Clojure's REPL can work seamlessly with code fragments because the underlying representation of code is just data structures that are always valid within the REPL context. What makes it mind-blowingly cool is that you can send these expressions to a remote REPL without any transformation, serialization, or encoding, because it's not just code — it is data. In fact, some teams do just that. They'll keep an open socket on a running app, possibly performing somewhere in the clou

CitesView on HN
@lisper2024 · in “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.

CitesView on HN
@_emacsomancer_2024 · in “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

CitesView on HN
@informatimago2020 · in “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

CitesView on HN
@gkya2017 · in “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".

CitesView on HN
@lisper2016 · in “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.

CitesView on HN
@lisper2016 · in “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 wrong. Tellingly, none of the people who think there are problems with Lisp actually know Lisp.

CitesView on HN
@dmit2012 · in “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.)

RecommendsView on HN
How We Diagnosed and Fixed the 2023 Voyager 1 Anomaly from 15 Billion Miles Away1:03:45

How We Diagnosed and Fixed the 2023 Voyager 1 Anomaly from 15 Billion Miles Away

Flight Software Workshop
17K views • 1 year ago
Saving Voyager 1! - Bruce Waggoner at !!Con 202435:25

Saving Voyager 1! - Bruce Waggoner at !!Con 2024

!!Con
8K views • 2 years ago
Jonathan Diegelman - Modeling Spacecraft Separation Dynamics in Julia16:04

Jonathan Diegelman - Modeling Spacecraft Separation Dynamics in Julia

The Julia Programming Language
12K views • 5 years ago
Why Everyone Is Talking About Data Centers In Space28:11

Why Everyone Is Talking About Data Centers In Space

Scott Manley
408K views • 10 months ago
Debugging with the Scientific Method - Stuart Halloway49:09

Debugging with the Scientific Method - Stuart Halloway

ClojureTV
25K views • 10 years ago
"Controlling Time and Space: understanding the many formulations of FRP" by Evan Czaplicki40:55

"Controlling Time and Space: understanding the many formulations of FRP" by Evan Czaplicki

Strange Loop Conference
69K views • 12 years ago
Debugging Lisp: fix and resume a program from any point in the stack - how Common Lisp stands out.4:46

Debugging Lisp: fix and resume a program from any point in the stack - how Common Lisp stands out.

vindarel
5K views • 3 years ago
"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)43:04

"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)

Strange Loop Conference
468K views • 4 years ago
Autonomous Testing and the Future of Software Development - Will Wilson32:02

Autonomous Testing and the Future of Software Development - Will Wilson

The Linux Foundation
7K views • 7 years ago
"I See What You Mean" by Peter Alvaro52:29

"I See What You Mean" by Peter Alvaro

Strange Loop Conference
59K views • 11 years ago
Solid Ground // Saša Jurić35:15

Solid Ground // Saša Jurić

EMPEX Conference
14K views • 9 years ago
Intentional Programming demo (Part 1) - Editor9:59

Intentional Programming demo (Part 1) - Editor

dftube
14K views • 20 years ago
Web Development in Emacs, Common Lisp and Clojurescript - Emacs SG1:18:42

Web Development in Emacs, Common Lisp and Clojurescript - Emacs SG

Engineers.SG
14K views • 10 years ago
Lecture 7A | MIT 6.001 Structure and Interpretation, 19861:24:38

Lecture 7A | MIT 6.001 Structure and Interpretation, 1986

MIT OpenCourseWare
35K views • 17 years ago
Trace Driven Development: Unifying Testing and Observability - Ted Young, LightStep29:48

Trace Driven Development: Unifying Testing and Observability - Ted Young, LightStep

CNCF [Cloud Native Computing Foundation]
2K views • 7 years ago
Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt36:14

Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt

ClojureTV
8K views • 9 years ago
"Unison: a new distributed programming language" by Paul Chiusano41:06

"Unison: a new distributed programming language" by Paul Chiusano

Strange Loop Conference
45K views • 7 years ago
Lecture 1A: Overview and Introduction to Lisp1:12:56

Lecture 1A: Overview and Introduction to Lisp

MIT OpenCourseWare
420K views • 7 years ago
Leslie Lamport: Thinking Above the Code59:50

Leslie Lamport: Thinking Above the Code

Microsoft Research
403K views • 12 years ago
Dtrace Review1:18:03

Dtrace Review

GoogleTalksArchive
19K views • 14 years ago