HackerTube.dev

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

Google TechTalks · 23.1K views · 2012-03-13 · 1:10:43

Open on YouTube ↗

If playback is restricted in your region, try opening the original video. Use Mark watched to add it to your marked videos.

Overview

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.

On Hacker News

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

Recommended by 1 HN people across 1 months · HN mentions 2012–2024

Topics

Search by tags

What people said

dmit · 2012-08 · Recommendation

Related Google Tech Talk: Debugging Code from 60 Million Miles Away [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.)

Read the original HN comment ↗
iLemming · 2024-06 · Reference

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

Read the original HN comment ↗
_emacsomancer_ · 2024-04 · Reference

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 - [VIDEO] [1]: NASA Programmer Remembers Debugging Lisp in Deep Space - [LINK]

Read the original HN comment ↗

Sources

Video by Google TechTalks, played through YouTube.

Data and selection notes

HN summaries and labels may contain AI errors. HN dates refer to discussions, not video publication.

HN Library: HackerTube export (2026-10-31) and open-index/hacker-news. Upstream summaries and classifications may contain AI errors.

Views, duration and playback status refresh separately from the published catalog. When an update fails, existing data remains visible.

Selection checks
  • SaaS & AI candidates: Topic keywords do not match
  • Editor-approved picks: Editorial review is required

Rule matches identify candidates. They do not guarantee video quality or financial results.

About the library and its sources