Lisping at JPL (2002)
flownet.com
flownet.com
To my mind, the hallmark of the interchangeable component model of software engineers is Java. Without going into too many details, I'll just say that having programmed in Lisp the shortcomings of Java are glaringly obvious, and programming in Java means a life of continual and unremitting pain. So I vowed I would never be a Java programmer, which pretty much shut me out of 90% of all software engineering jobs in the late 90's."
Word, this needs to be seen for what it has turned into if we're ever going to get out. I've tried every kind of paid software dev setup, it's all abusive business bullshit these days.
Care to elaborate ?
https://github.com/rongarret/ergolib
https://github.com/rongarret/BWFP
https://github.com/rongarret/tweetnacl/blob/master/tweetnacl...
And I just finished (but have not yet published) a Lisp implementation of the Signal double-ratchet. If anyone is interested let me know and I'll publish that too.
1) an RTOS they weren't familiar with
2) a language they weren't familiar with (the familiar set was Ada, C, C++)
3) dynamic memory allocation
How much push back did you get from quality assurance?
We got a ton of pushback about the unfamiliar language, but Lisp eventually won out because back then there really was no viable alternative. They actually tried to port the code to C++ and failed (running afoul of Greenspun's tenth and the immaturity of C++ compilers of the day).
So...
How exactly does it work to have a repl on the spacecraft?
Doesn't the system halt while it's waiting for user input?
[1] https://en.wikipedia.org/wiki/Operating_system#Interrupts
http://www-aig.jpl.nasa.gov/public/home/gat/ftp/
Thank you!
https://web.archive.org/web/19991014000627/http://www-aig.jp...
which leads to
https://web.archive.org/web/19990219163754/http://www-aig.jp...
containing a listing.
The papers and hqx-s would be most interesting! (MCL 2 is not a concern, it can be happily emulated too)
CMU also has an interesting reference to your work:
https://www.cs.cmu.edu/~chuck/robotpg/robofaq/13.html
Thank you for your kind effort!
The Remote Agent software, running on a custom port of Harlequin Common Lisp, flew aboard Deep Space 1 (DS1), the first mission of NASA's New Millennium program. Remote Agent controlled DS1 for two days in May of 1999. During that time we were able to debug and fix a race condition that had not shown up during ground testing. (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.)
I also attended this famous "dinner with eric" at the same conference, actually sitting next to Eric and Erann was sitting on the other side: http://blog.rongarret.info/2009/06/my-dinner-with-erik.html I liked Eric a lot, and really enjoyed his troll interactions with Xah Lee, one of the most famous trolls ever. Unfortunately he didn't know exactly who to pick a fight with. Erann was clearly the wrong target. Erann hated it. But as outsiders who stayed out of those silly fights we learned a lot, what boils in a LISPer. XML especially. Or Windows. Or special variables: https://groups.google.com/forum/#!msg/comp.lang.lisp/WRQkT57... A very good CLL thread btw. Most of the people agreed with Eric, even if Erann's proposal was very good.
(I used his old name to be able to look things up. The name change happened much later, when Erann got married and choose a better name, Ron Garret.)
PS: Eric said 99 in his lugm blog post, but I'm pretty sure it was 98. http://naggum.no/lugm-time.html
PPS: I found some old RA material here: https://web.archive.org/web/19991014000627/http://www-aig.jp... but mostly for ESL (the control language), not the actual RA simulation and HW stuff he was emulating.
I often think about how to control or even reboot a CPU out there in space, running on slow hardened HW (cosmic rays shooting at you), and if you make a small mistake and the thing doesn't boot up properly the whole mission is lost. You must be really sure about the root cause of your problem, and properly analyze it (hence his simulation), otherwise no chance.
Like a reboot via SSH, just a bit trickier, because nobody will be able to help you.
Interesting events 19 years ago. Ron changed his name in the meantime (and made Google AdSense), while Eric died horribly. Alone. From a stomach problem or such.
I've been there too, only in the commercial world watching corporate profit be wasted. It's really disheartening to see the computing world re-invent S-expressions badly (first as XML, then as JSON) and reinvent Lisp badly (e.g. JavaScript). Lisp really is awesome, and it really is the best language of which I'm aware, if for no other reason that if one wants to do enough programming in the language, then one can implement any other language, seamlessly.
And, somehow, the beancounters with the spreadsheets to squeeze the last microdollar from an operation have not hit on a way to make money from this in sixty years.
Puzzling.
mostly always