liam_on_linux: (Default)

[Another repurposed comment from the same Lobsters thread I mentioned in my previous post.]

A serious answer deserved a serious response, so I slept on it, and, well, as you can see, it took some time. I don't even the excuse that "Je n’ai fait celle-ci plus longue que parce que je n’ai pas eu le loisir de la faire plus courte."

If you are curious to do so, you might be amused to look through my older tech-blog posts – for example this or this.

The research project that led to these 3 FOSDEM talks started over a decade ago when I persuaded my editor that retrocomputing articles were popular & I went looking for something obscure that nobody else was writing about.

I looked at various interesting long-gone platforms or technologies – some of the fun ones were Apollo Aegis & DomainOS, SunDew/NeWS, the Three Rivers PERQ etc. – that had or did stuff nothing else did. All were either too obscure, or had little to no lasting impact or influence.

What I found, in time, were Lisp Machines. A little pointy lump in the soil, which as I kept digging turned into the entire Temple of Damanhur. (Anyone who's never heard of that should definitely look it up.) And then as I kept digging, the entire war for the workstation, between whole-dynamic-environment languages (Lisp & Smalltalk, but there are others) and the reverse, the Unix way, the easy-but-somehow-sad environment of code written in a unsafe, hacky language, compiled to binaries, and run on an OS whose raison d'être is to "keep 'em separated": to turn a computer into a pile of little isolate execution contexts, which can only pass info to one another via plain text files. An ugly, lowest-common-denominator sort of OS but which succeeded and thrived because it was small, simple, easy to implement and to port, relatively versatile, and didn't require fancy hardware.

That at one time, there were these two schools – that of the maximally capable, powerful language, running on expensive bespoke hardware but delivering astonishing abilities... versus a cheap, simple, hack of a system that everyone could clone, which ran on cheap old minicomputers, then workstations with COTS 68K chips, then on RISC chips.

(The Unix Haters Handbook was particularly instructive. Also recommended to everyone; it's informative, it's free and it's funny.)

For a while, I was a sort of Lisp zealot or evangelist – without ever having mastered it myself, mind. It breaks my brain. "The Little Lisper" is the most impenetrable computer publication I've ever tried, and failed, to read.

A lot of my friends are jaded old Unix pros, like me having gone through multiple proprietary flavours before coming to Linux. Or possibly a BSD. I won serious kudos from my first editor when I knew how to properly shutdown a Tadpole SPARCbook with:


sync
sync
sync
halt

"What I tell you three times is true!" he crowed.

Very old Unix hands remember LispMs. They've certainly met lots of Lisp evangelists. They got very tired of me banging on about it. Example – a mate of mine said on Twitter:

«
A few years ago it was lisp is the true path. Before that is was touchscreens will kill the keyboard.
»

The thing is, while going on about it, I kept digging, kept researching. There's more to life than Paul Graham essays. Yes, the old LispM fans were onto something; yes, the world lost something important when they were out-competed into extinction by Unix boxes; yes, in the right hands, it achieves undreamed-of levels of productivity and capability; yes, the famous bipolar Lisp programmer essay.

But there are other systems which people say the same sorts of things about. Not many. APL, but even APL fans recognise it has a niche. Forth, mainly for people who disdain OSes as unnecessary bloat and roll their own. Smalltalk. A handful of others. The "Languages of the Gods".

Another thing I found is people who'd bounced off Lisp. Some tried hard but didn't get it. Some learned it, maybe even implemented their own, but were unmoved by it and drifted off. A lot of people deride it – L.I.S.P. = Lotsa Insignificant Stupid Parentheses, etc. – but some of them do so with reason.

I do not know why this. It may be a cultural thing, it may be one of what forms of logic and of reasoning feel natural to different people. I had a hard time grasping algebra as a schoolchild. (Your comment about "grade school" stuff is impenetrable to me. I'm not American so I don't know what "grade school" is, I cannot parse your example, and I don't know what level it is aimed at – but I suspect it's above mine. I failed 'O' level maths and had to resit it. The single most depressing moment of my biology degree was when the lecturer for "Intro to Statistics" said he knew we were all scared, but it was fine; for science undergraduates like us, it would just be revision of our maths 'A' level. If I tried, I'd never even have got good enough exam scores to be rejected for a maths 'A' level.)

When I finally understood algebra, I "got" it and it made sense and became a useful tool, but I have only a weak handle on it. I used to know how to solve a quadratic equation but I couldn't do it now.

I never got as far as integration or differentiation. I only grasped them at all when trying to help a member of staff with her comp-studies homework. It's true: the best way to learn something is to teach it.

Edsger Dijkstra was a grumpy git, but when he said:

“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration”

... and...

“The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.”

... I kind of know what he meant. I disagree, obviously, and I am not alone, but he did have a core point.

I think possibly that if someone learned Algol-style infix notation when they were young, and it's all they've ever known, if someone comes along and tells them that it's all wrong, to throw it away, and do it like this – or possibly (this(like(do(it)))) – instead, it is perfectly reasonable to reject it.

Recently I used the expression A <> B to someone online and they didn't understand. I was taken aback. This is BASIC syntax and was universal when I was under 35. No longer. I rephrased it as A != B and they understood immediately.

Today, C syntax is just obvious and intuitive. As Stephen Diehl said:

«
C syntax is magical programmer catnip. You sprinkle it on anything and it suddenly becomes "practical" and "readable".
»

I submit that there are some people who cannot intuitively grasp the syntaxless list syntax of Lisp. And others who can handle it fine but dislike it, just as many love Python indentation and others despise it. And others who maybe could but with vast effort and it will forever hinder them.

Comparison: I am 53 years old, I emigrated to the Czech Republic 7 years ago and I now have a family here and will probably stay. I like it here. There are good reasons people still talk about the Bohemian lifestyle.

But the language is terrifying: 4 genders, 7 cases, all nouns have 2 plurals (2-4 & >=5), a special set of future tenses for verbs of motion, & two entire sets of tenses – verb "aspects", very broadly one for things that are happening in the past/present/future but are incomplete, and one for things in the past or present that are complete.

After 6 years of study, I am an advanced beginner. I cannot read a headline.

Now, context: I speak German, poorly. I learned it in 3 days of hard work travelling thence on a bus. I speak passable French after a few years of it at school. I can get by in Spanish, Norwegian and Swedish from a few weeks each.

I am not bad at languages, and I'm definitely not intimidated by them. But learning your first Slavic language in your 40s is like climbing Everest with 2 broken legs.

No matter how hard I try, I will never be fluent. I won't live long enough.

Maybe if I started Russian at 7 instead of French, I'd be fine, but I didn't. But 400 million people speak Slavic languages and have no problems with this stuff.

I am determined. I will get to some useful level if it kills me. But I'll never be any good and I doubt I'll ever read a novel in it.

I put it to you that Lisp is the same thing. That depending on aptitude or personality or mindset or background, for some people it will be easy, for some hard, and for some either impossible or simply not worth the bother. I know many Anglophones (and other first-language speakers) who live in Czechia who just gave up on Czech. For a lot of people, it's just too hard as an adult. My first course started with 15 students and ended with 3. This is on the low side of normal; 60% of students quit in the first 3 months, after paying in full.

And when people say that "look, really, f(a,b) is the same thing as (f a,b)" or tell us that we'll just stop seeing the parentheses after a while (see slides 6 & 7 ) IT DOES NOT HELP. In fact, it's profoundly offputting.

I am regarded as a Lisp evangelist among some groups of friends. I completely buy and believe, from my research, that it probably is the most powerful programming language there's ever been.

But the barrier to entry is very, very high, and it would better serve the Lisp world to recognise and acknowledge this than to continue 6 decades of denialism.

Before this talk, I conferred with 2 very smart programmer friends of mine about the infix/prefix notation issue. ISTM that it should be possible to have a smart editor that could convert between the two, or even round-trip convert a subset of them.

This is why I proposed Dylan on top of Lisp, not just Lisp. Because Lisp frightens people and puts them off, and that is not their fault or failing. There was always meant to be an easier, more accessible form for the non-specialists. Some of my favourite attempts were CGOL and Lisp wizard David A. Moon's PLOT. If Moon thinks it's worth doing, we should listen. You might have heard of this editor he wrote? It's called "Emacs". I hear it's quite something.

liam_on_linux: (Default)
My talk should be on in about an hour and a half from when I post this.

«

A possible next evolutionary step for computers is persistent memory: large capacity non-volatile main memory. With a few terabytes of nonvolatile RAM, who needs an SSD any more? I will sketch out a proposal for how to build an versatile, general-purpose OS for a computer that doesn't need or use filesystems or files, and how such a thing could be built from existing FOSS code and techniques, using lessons from systems that existed decades ago and which inspired the computers we use today.

Since the era of the mainframe, all computers have used hard disks and at least two levels of storage: main memory, or RAM, and secondary or auxiliary storage: disk drives, accessed over some form of disk controller using a file system to index the contents of secondary storage for retrieval.

Technology such as Intel's 3D Xpoint -- sold under the brand name Optane -- and HP's future memristor storage will render this separation obsolete. When a computer's permanent storage is all right there in the processors' memory map, there is no need for disk controllers or filesystems. It's all just RAM.

It is very hard to imagine how existing filesystem-centric OSes such as Unix could be adapted to take full advantage of this, so fundamental are files and directories and metadata to how they operate. I will present the outline of an idea how to build an OS that natively uses such a computer architecture, based on existing technology and software, that the FOSS community is ideally situated to build and develop.
»


It talks about Lisp, Smalltalk, Oberon and A2, and touches upon Plan 9, Inferno, Psion EPOC, Newton, Dylan, and more.

You can download the slides (in PDF or LO ODP format) from the FOSDEM programme entry for the talk.
It is free to register and to watch.

I will update this post later, after it is finished, with links to the video, slides, speaker's notes, etc.

UPDATE:

In theory you should be able to watch the video on the FOSDEM site after the event, but it seems their servers are still down. I've put a copy of my recording on Dropbox where you should be able to watch it.

NOTE: apparently Dropbox will only show the first 15min in its preview. Download the video and play it locally to see the whole, 49min thing. It is in MP4 encoded with H.264.
Unfortunately, in the recording, the short Steve Jobs video is silent. The original clip is below. Here is a transcript:
I had three or four people who kept bugging me that I ought to get my rear over to Xerox PARC and see what they were doing. And so I finally did. I went over there. And they were very kind and they showed me what they were working on.

And they showed me really three things, but I was so blinded by the first one that I didn’t even really see the other two.

One of the things they showed me was object-oriented programming. They showed me that, but I didn’t even see that.

The other one they showed me was really a networked computer system. They had over a hundred Alto computers, all networked using email,
et cetera, et cetera. I didn’t even see that.

I was so blinded by the the first thing they showed me, which was the graphical user interface. I thought it was the best thing I'd ever seen in my life.

Now, remember, it was very flawed. What we saw was incomplete. They’d done a bunch of things wrong, but we didn’t know that at the time. And still, though, they had the germ of the idea was there and they’d done it very well. And within, you know, 10 minutes, it was obvious to me that all computers would work like this someday. It was obvious.


liam_on_linux: (Default)

For a couple of weeks, since the 50th anniversary of Apollo 11 taking off, I've been riveted by "Curious Marc" Verdiell's Youtube channel. This isn't the first time -- his vlog of restoring a Xerox Alto was fascinating. But this project is even more historically significant: to get an original Apollo Guidance Computer running for the first time in about 45 years.

The AGC was all kinds of "first": the first computer made from integrated circuits; the first portable computer; the first computer to fly; the first computer on which humans landed on the moon.

Nonetheless I'm surprised to see the vlog even made the The Wall Street Journal.

If you don't know anything about the AGC, here's a f

antastic, very dense 1hr talk about it works.



Here's the Youtube playlist of all the restoration process.

And here's a link to the story of Margaret Hamilton, the team lead on the project of programming the AGC. You might recognise the rather famous photo of her standing next to a printout of the software, which is slightly taller than she is:
Image result for margaret hamilton agc

A fun detail of the software development process: not only was the machine extremely resource-constrained, and human lives depended on it -- so, no pressure then (!) -- but you must also consider the storage medium: core rope.

Core rope memory is not the same as core store. Core store uses tiny ferrite rings arranged on the intersections of very fine wires. By putting a current through both wires, the magnetic alignment of the core at their crossing-point could be read. But read destructively -- the act of reading it, erased it. Conversely, if the computer was off, the cores held their data indefinitely. People restoring 50 and 60 year old computers today can read what was in their core-store the last time they were turned off!

But core rope is different. It still uses cores, but big ones. Long wires thread in and out of cores, and the position of the wires encodes the data. So it's non-volatile: it's a kind of early ROM. You can never change the data. Ever. What was woven in when it was made is there forever. The phenomenally labour-intensive act of making it encodes the software: so weaving it was an extremely skilled task, given to experts... factories full of little old ladies, basically. This is software that is hand-knitted into the hardware. So after it's made, you can't change a single bit. The entire, multi-thousand-component hand-made rope must be re-woven.

This is CuriousMarc's playlist of the Xerox Alto restoration. The Alto was also a hugely signficant computer: the first GUI personal workstation, the machine on which the modern GUI was invented, the machine on which the pioneering object-oriented Smalltalk language was developed, and the first machine with Ethernet which more or less invented the idea of the Local Area Network. Some of original team came to admire the restoration process and help out -- and several of them are now dead.

The Alto is the machine that Steve Jobs & his team saw that led them to built the Lisa and then the Mac. They saw 3 things -- object-oriented programming, local-area networking & the GUI. Jobs himself said he fixated on the GUI and missed the (arguably, long-term) more important bits.

Source: the man himself.


This really is the last possible time to restore some of this stuff — while at least some of the creators are still alive.
liam_on_linux: (Default)

So, yesterday I presented my first conference talk since the Windows Show 1996 at Olympia, where I talked about choosing a network operating system — that is, a server OS — for PC Pro magazine.

(I probablystill have the speaker's notes and presentation for that somewere too. The intensely curious may ask and I maybe able share it too.)

It seemed to go OK, I had a whole bunch of people asking questions afterwards, commenting or thanking me.

[Edit] Video! https://youtu.be/jlERSVSDl7Y

I have to check out the video recording and make some editing marks before it will be published and I am not sure that the hotel wifi connection is fast or capacious enough for me to do that. However, I'll post it as soon as I can.

Meantime, here is some further reading.

I put together a slightly jokey deck of slides and was very pleasantly impressed at how good and easy LibreOffice Impress made it to create and to present them. You can download the 9MB ODP file here:

https://www.dropbox.com/s/xmmz5r5zfmnqyzm/The%20circuit%20less%20travelled.odp?dl=0

The notes are a 110 kB MS Word 2003 document. They may not always be terribly coherent -- some were extensively scripted, some are just bullet points. For best results, view in MS Word (or the free MS Word Viewer, which runs fine under WINE) in Outline mode. Other programs will not show the structure of the document, just the text.

https://www.dropbox.com/s/7b2e1xny53ckiei/The%20Circuit%20less%20travelled.doc?dl=0

I had to cut the talk fairly brutally to fit the time and did not get to discuss some of the operating systems I planned to. You can see some additional slides at the end of the presentation for stuff I had to skip.

Here's a particular chunk of the talk that I had to cut. It's called "Digging deeper" and you can see what I was goingto say about Taos, Plan 9, Inferno, QNX and Minix 3. This is what the slides on the end of the presentation refer to.

https://www.dropbox.com/s/hstqmjy3wu5h28n/Part%202%20%E2%80%94%20Digging%20deeper.doc?dl=0

Links I mentioned in the talk or slides

The Unix Haters' Handbook [PDF]: https://simson.net/ref/ugh.pdf

Stanislav Datskovskiy's Loper-OS:  http://www.loper-os.org/

Paul Graham's essays: http://www.paulgraham.com/

Notably his Lisp Quotes: http://www.paulgraham.com/quotes.html

Steve Jobs on the two big things he missedwhen he visited Xerox PARC:
http://www.mac-history.net/computer-history/2012-03-22/apple-and-xerox-parc/2

Alan Kay interview where he calls Lisp "the Maxwell's Equations of software": https://queue.acm.org/detail.cfm?id=1039523

And what that means: http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software/

"In the Beginning was the Command Line" by Neal Stephenson: http://cristal.inria.fr/~weis/info/commandline.html

Author's page: http://www.cryptonomicon.com/beginning.html


Symbolics OpenGenera: https://en.wikipedia.org/wiki/Genera_(operating_system)

How to run it on Linux (some of several such pages):
http://www.jachemich.de/vlm/genera.html
https://loomcom.com/genera/genera-install.html

A brief (13min) into to OpenGenera by Kalman Reti: https://www.youtube.com/watch?v=o4-YnLpLgtk&t=5s
A longer (1h9m) talk about it, also by him: https://www.youtube.com/watch?v=OBfB2MJw3qg

May 2025

S M T W T F S
    12 3
45678910
11121314151617
1819 2021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 10th, 2025 03:07 pm
Powered by Dreamwidth Studios