8 ms·
Lisping at JPL (2002)
- adityaathalye 1y agoTells one of my all-time favourite stories. > 1994-1999 - Remote Agent > Debugging a program running on a $100M piece of hardware that is 100 million miles away is an interesting experience. Having a read-eval-print loop running on the spacecraft proved invaluable in finding and fixing the problem. The story of the Remote Agent bug is an interesting one in and of itself.
- tonyarkles 1y agoNot quite the same scale but one of my personal favourite stories involved hardware buried under a highway. The Ethernet stopped working, but the PoE was still ok. We had the foresight to install a serial line to the console on the equipment too. This meant that I could power cycle the hardware at will (through the managed PoE switch) and talk to the boot loader (U-boot) over serial. While not exactly a REPL in the conventional sense, it had enough functionality to be able to talk directly to the MAC and PHY to determine what was going on. Sadly we couldn’t convince it to work, even at 10 Mbit. My suspicion is salt water ingress into the vault. What we did manage to do, though… There were just enough tools installed on it that I could cross-compile zmodem at home, convert it to a hex file, upload the hex file by essentially just running cat > on the target, convert it back into a binary using… Perl I think? Or xxd? And then doing the daily data offload over zmodem every night instead of over TCP as was originally planned. It was a crazy weekend…
- anthk 1y agoUboot compared to Forth it's very odd to use.
- markus_zhang 1y agoCan you please elaborate? Thanks.
- anthk 1y agoA lot of machines that use u-boot wont give you a prompt unless you connect them from a serial connection. Ideally, these ARM VM8850 and up based netbooks should have a u-boot prompt with a keybinding. Also, it would be far better if they had an Open Firmware (Forth) based BIOS.
- markus_zhang 1y agoThanks, never realized Open Firmware is written in Forth!
- eschneider 1y agoYou can load things into memory and run them with u-boot, so somewhat similar. :)
- jazzyjackson 1y agoNeat. I’m curious about long run serial as someone who’s only done arduino stuff at 5V, what does industrial serial talking over a miles long connection look like? Higher voltage? Repeaters?
- tonyarkles 1y agoAhhhh it was standard RS232 which uses -12V and +12V instead of the 0-5V signalling that TTL serial uses. Otherwise very similar and easy to convert with eg a MAX232.
- kragen 1y agoOften, though evidently not in this case, people use RS422, which is differential, so you can get megabits per second or kilometers, though not both. Shared-bus RS422 is RS485, like LocalTalk or DMX512. The voltages are actually lower than the ±12V normally used by RS232. Converting back and forth between RS232 and RS422 is easy and cheap. https://www.ti.com/lit/an/slla070d/slla070d.pdf https://www.ti.com/lit/an/slla070d/slla070d.pdf is a TI appnote with an overview.
- potholereseller 1y agoUnfortunately, the relevant link in the TFA is dead, but IA has it: <https://web.archive.org/web/20111019054900/http://ti.arc.nasa.gov/m/pub-archive/176h/0176%20(Havelund).pdf https://web.archive.org/web/20111019054900/http://ti.arc.nas...>. Here's some interesting quotes: > during a task’s release of a lock, but before its actual release, the task may get interrupted by the daemon if the property gets broken. This means that the task terminates without releasing the lock. The error is particularly nasty in the sense that all code, except the lock releasing itself, had been protected against this situation: in case of an interrupt the lock releasing would be executed. > The modeling effort, i.e. obtaining a PROMELA model from the LISP program, took about 12 man weeks during 6 calendar weeks, while the verification effort took about one week. ... The translation phase was non-trivial and time consuming due to the relative expressive power of LISP when compared with PROMELA. > Java PathFinder (JPF) is a translator from a non-trivial subset of Java to PROMELA. > The translator is written in 6000 lines of LISP, and was developed over a period of 8 months. JPF has been applied to a number of case studies, amongst them a 1500 line game server, a NASA file transfer protocol for satellites, and a NASA data transmission protocol for the space shuttle ground control.
- anthk 1y agoForth would be a good choice too. No GC, use 'forget'.
- adityaathalye 1y agoForth, in fact, is. https://www.forth.com/resources/space-applications/ https://www.forth.com/resources/space-applications/
- ssrc 1y ago'Was' is more likely. The list is from 2003, and if FORTH Inc, the (only? biggest?) remaining forth company hasn't updated it...
- anthk 1y agoForth is used in firmware and tons of places. There's ANS Forth and no need to 'update' anything, as there are tons of implementations. As with Lisp, you can bootstrap themselves with very few primitives.
- larsbrinkhoff 1y agoI read a comment on /r/Forth the other day from someone at NASA, implying that Forth was still actively used for something.
- lisper 1y agoWe used Forth back in the day as well, running on 6811 microcontrollers. Forth was also used on the Galileo Magnetometer, and we used Lisp to develop a patch for it in flight. https://github.com/rongarret/gll-mag-patch/ https://github.com/rongarret/gll-mag-patch/
- anthk 1y agoAlso, as a very tiny and minimal Lisp: http://t3x.org/zsp/index.html http://t3x.org/zsp/index.html Easier than SICP for Scheme and Intro to Symbolic Computation for Common Lisp.
- jmclnx 1y ago> The demise of Lisp at JPL is a tragedy. The language is particularly well suited for the kind of software development that is often done here That is a shame, but this can be said about many languages of time past. Do schools even teach lisp these days ? IMO, another casualty of our WEB only environment :(
- Lyngbakr 1y ago> Do schools even teach lisp these days ? IIRC, grads that I interviewed from the University of Waterloo tended to have experience in Racket.
- deleted 1y ago[deleted]
- adamgordonbell 1y agoVersion with some pictures here: https://corecursive.com/lisp-in-space-with-ron-garret/ https://corecursive.com/lisp-in-space-with-ron-garret/ It's an interview I did with Ron Garrett about the history of Lisp at the JPL.
- adityaathalye 1y agoI enjoyed that interview, Adam and Ron. Thanks for doing it! Also, to anyone reading, let me plug the corecursive podcast, in general... the stories that Adam brings out are unwaveringly humane, surprising, illuminating, and encouraging to me, your friendly neighbourhood average joe programmer.
- adamgordonbell 1y agoThanks!! The podcast is basically powered by positive feedback so I appreciate it.
- fud101 1y agoI've spent the last 6 months getting into podcasts and you're my favourite. You don't let your opinions get in the way, always have good pacing and have gotten better with time. I'm enjoying going through your pods one by one, starting from the first ones and it's a special joy. Thank you.
- adamgordonbell 1y agoThanks!!
- anthk 1y agoVery tiny Lisp, Forths and some Pascal like at http://t3x.org http://t3x.org One of them whole numbers as lists. I saw no floats, but there are fractional numbers. (- '#2 '#3) => '#-1 If you want to know what is truly Lisp about: Easy mode: http://t3x.org/zsp/index.html http://t3x.org/zsp/index.html You are Alonzo Church reincarnated: http://t3x.org/clc/code.html http://t3x.org/clc/code.html
- hatmatrix 1y ago> At the time it was more or less taken for granted that AI work was done in Lisp. C++ barely existed. Perl was brand new. Java was years away. Spacecraft were mostly programmed in assembler, or, if you were really being radical, Ada. Given the choices, Lisp made a lot of sense when they started. After 2001-2004, there were other options - not to say they were necessarily better, but a mainstream language that enables a large number of people working together (interchangeably) has its value. Lisp is indeed "one-of-a-kind, highly dynamic applications that must be developed on extremely tight budgets and schedules" - but has a reputation for fostering lone geniuses and bad for large teams working together and maintaining legacy codebases. (I write this as a big fan of Lisp.)
- rootnod3 1y agoI think the late and slow standardization process hurt it a lot. Too many cooks trying to shove their recipes in. Scheme went too much the other way of making it too minimalistic. Imagine a modern Lisp with one source and a kitchen-sink library, like Go. Clojure is the closest we have for that I think, but it running on the JVM also hurt it a bit for a wider adoption.
- anthk 1y ago>enginner >can't do anything with 128MB. In 2002. In my country an Engineer with a Bachelor would implement a Forth in KB's in days by just reading the specs or books related to building one. A Microlisp maybe in weeks.
- 7thaccount 1y agoThat's an interesting statement. I think that would be rare in the states, but there are plenty of genius coders out there.
- nagaiaida 1y agoi believe the point is more that bootstrapping a higher-level programming environment up from machine code shouldn't be the sole domain of so-called genius. a forth basically writes itself once you know how the execution model works, but these days we don't focus on teaching the end to end skills required to take arbitrary hardware and target it with a new, simple language.
- anthk 1y agoThis; it's not rocket science. I am no university educated (maybe something compared to a community college) and yet understanding how a Forth and/or a Lisp bootstrap themselves from small cores it's something every programmer should experience at least once, even from books. If SICP for Scheme and the ones for Common Lisp are too complex, the author from https://t3x.org https://t3x.org has two or three for scheme, one of them for almost a micro Common Lisp (less than Elisp actually), a Forth and several more. Oh, and the code runs on 8086 PC's, Unix and some of them even under CP/M 2.2. It's crazy, and eye-opening too. With a Forth you can literally see how floats are built from 'integer' blocks in RAM. Heck, you can even see how floats are done by using integer and string related words (printing them) . And you can see the 'odd' integer based stack in a live way with once your entered a double or a float. Binary representation in the spot.
- 7thaccount 1y ago
- lisper 1y agoAuthor here. This pops up on HN regularly, which I'm happy to see, but it's pretty dated at this point. Here is a more recent update: https://blog.rongarret.info/2023/01/lisping-at-jpl-revisited.html https://blog.rongarret.info/2023/01/lisping-at-jpl-revisited... And, as always, AMA.
- 7thaccount 1y agoAre you still writing lisp at JPL or NASA, or as a hobbyist?
- lisper 1y agoI left JPL in 2004, never to return :-) I'm mostly retired now but I have a part-time consulting gig that uses CL for developing a bespoke custom chip design tool.
- 7thaccount 1y agoVery cool! Sorry to hear that Clozure CL isn't getting the love it deserves. I really wish the lisp community tried banding together under a single implementation, but we all know about the curse :)
- lisper 1y agoThat's what Common Lisp itself is: one Lisp to rule them all. And it actually works pretty well. There are libraries that work across a wide variety of CL implementations.
- 7thaccount 1y agoYeah, but then there are some schemes and racket and Janet and picolisp and so on too. Then there are different CL implementations right (e.g., Allegro, SBCL, that old one the barski book recommends...etc). Too many implementations and not enough users I guess.
- 1y ago
- neuroelectron 1y agoWhile I was at Amazon, just before AWS, the entire internal network was monitored by a Lisp agent. I'm not sure if that is still true but it was kind of secret, and the internal wiki (only a few sentences) that documented its existence was removed with no deletion record. Right before my position was outsourced to an entire remote overseas team, we had rolled out AAA* which conceivably cut out any unauthorized automated agents from the loop. * https://www.geeksforgeeks.org/what-is-aaa-authentication-authorization-and-accounting/ https://www.geeksforgeeks.org/what-is-aaa-authentication-aut...
- wavemode 1y agoI also worked on a team at Amazon that did (still does to this day, as far as I know) lisp development. A system that was responsible for automated customer support workflows. And it had a visual programming environment for solutions architects. I worked on the Java backend of that.
- neuroelectron 1y agoI was just talking to someone about Java and they said that it's outdated but afaik it's still a major part of their internal infrastructure. Ofc, they're trying to eat their own dogfood which means they're trying as much as possible to move to AWS for internal services which is basically a mix of customized OSS services programmed in a wide mix of languages, but I imagine mostly C/++ and other low level languages encapsulated in various virtualization solutions.
- aewoifewoieoi 1y ago[dead]
- dang 1y agoRelated. Others? Lisping at JPL Revisited - https://news.ycombinator.com/item?id=34557347 https://news.ycombinator.com/item?id=34557347 - Jan 2023 (100 comments) The rise and fall of Lisp at the Jet Propulsion Lab (2002) - https://news.ycombinator.com/item?id=34524552 https://news.ycombinator.com/item?id=34524552 - Jan 2023 (145 comments) Lisping at JPL (2020) - https://news.ycombinator.com/item?id=28113434 https://news.ycombinator.com/item?id=28113434 - Aug 2021 (9 comments) Lisping at JPL (2002) - https://news.ycombinator.com/item?id=22087419 https://news.ycombinator.com/item?id=22087419 - Jan 2020 (307 comments) Lisping at JPL (2002) - https://news.ycombinator.com/item?id=13626074 https://news.ycombinator.com/item?id=13626074 - Feb 2017 (37 comments) Lisping at JPL (2002) - https://news.ycombinator.com/item?id=7989328 https://news.ycombinator.com/item?id=7989328 - July 2014 (19 comments) The rise and fall of Lisp at the Jet Propulsion Lab (2002) - https://news.ycombinator.com/item?id=2212211 https://news.ycombinator.com/item?id=2212211 - Feb 2011 (36 comments) The Rise and Fall of Lisp at the Jet Propulsion Lab. - https://news.ycombinator.com/item?id=304736 https://news.ycombinator.com/item?id=304736 - Sept 2008 (72 comments)
- lisper 1y agoWow. I never imagined that this bit of whinging would end up being my ticket to immortality. :-/
- adityaathalye 1y agoI (we) don't see it as whinging, but as a bit of badass computer history :)
- lisper 1y agoHeh, thanks! But it really was a bit of whinging when I wrote it. Lisp in space was ultimately a failure, and I've always had very mixed feelings about telling the story. But I'm glad it resonates.
- dragochat 1y agotrue Evergreen ...nostalgic memories of stories from old 20%-time-and-don-t-be-evil Google days. Sigh. I still hope AI takeoff somehow revives Lisp-as-a-human-friendly-computer-language or something in the vein of this.
- rootnod3 1y agoI think it might, after the blackbox LLM craze has blazed over and people go back to "AI" that is understandable and can be reasoned about. It comes and goes in waves, I am pretty sure there is gonna be time again for reasearch into a Lisp/Prolog style of AI.
- sfdoiaojfias 1y ago[flagged]