Chatting with Ben Segal - Podcast Episode 7 - The Importance of Mentors
David: [00:00:00] So continuing with CERN, of course, you've told me about a lot of people that you've worked with over the years, most of them really into highly accomplished... Is there anything that you perceive is common to all of them? Like is there some that... is there a tell tale of all these people that you worked with? Is there something common to all of them that you can pinpoint like, oh, yeah, all these successful people, they share this trait? Everything, everybody comes in a different...
Ben: [00:00:36] There's a certain subset of people that I liked to work with, people like you that are open, enthusiastic, plenty of energy - a lot of them Spanish, by the way.
David: [00:00:47] Really?
Ben: [00:00:47] Oh, yeah... When we started with BOINC, almost all of the people working on BOINC were Spanish. A lot of my students were Spanish, and the CERN people were Spanish. Ignacio Reguero. Miguel Marquina - he wasn't strong technically but he got us visitors from all over the place in Spain from... Yeah, and one of the very, very brightest guys. Daniel Lombrana...
David: [00:01:19] Yeah. Yeah, yeah.
Ben: [00:01:20] He was... it was Miguel who had a relationship with, what was the university that he was at? Extremadura, Merida. And that was through his contact... There was definitely a big Spanish contribution in that area. So a lot of, a lot of people .. I've had a lot of very good Spanish people. I don't know why, they have this, but like you, I don't know - they're hungry, they're quick...
Ben: [00:01:54] Whereas I have often been disappointed by my own compatriots whom I've worked with at certain times. You know.. "It's 5:30 and David is not going to be in his office...". It's awful. I remember when we were running the satellite group, we were running on this satellite project. We had a big collaborator was the Rutherford Lab in Oxford. That was so British. Now, it's true that the main collaborator there was a very good, very bright guy who was very unorthodox, but... It was such a pain to go there. So we'd go there. I mean, we were debugging this CIM, the CIM was this hardware interface between the modem and the minicomputer with the tapes, OK. And I went with the hardware designer, a wonderful guy, a Swedish guy. And it was probably, I would guess it was like Friday morning. So Friday morning we started to set this thing up and we needed to make a correction - so the technology is wire wrap. Remember wire wrap? Ever seen one...? You have a board...
David: [00:03:07] Yeah.
Ben: [00:03:07] This is low, low level integration. So you have components... maybe the processor... and it's all .. the sockets, the pins are under the board. And the pins you can interconnect with wires: it's done by computer. But if you need to make a fix... So I remember
- there we are on a Friday. What it would have been is it was Friday, 11:00. By 11:30 it was time to go to the pub for lunch. So we get out of the pub at 2 o'clock, right. And it's "virtual weekend" already at 2 o'clock in England on a Friday. And we desperately need to make this fix to test the box. And we need a wire wrap tool. He's lost his wire wrap tool, my friend. And we say to Chris, our collaborator: "Chris, we need a wire wrap tool - where is there one?". "Oh yes.. ah, Bernard will have one of those. Let's go and see". So off we go, and we had to go through a long rigamarole: "Hello Bernard, how are you..." (First of all Bernard was in, which was good). It's like negotiation for an arms treaty. "Would you by any chance have a wire wrap tool?". "Might I ask what you want to do with it?". The guy had a wire wrap tool. He didn't want to lend it to us. He probably did in the end. But other similar cases would be: you'd go and Bernard's left. Back on Monday, maybe Tuesday. It's infuriating. So that was the sort of thing that I didn't like.
Ben: [00:04:42] So what they had in common? Yes. Now, what was most important for me, though, for me personally, was mentors. I had a wonderful mentor when I arrived at CERN, an Australian guy, no one's ever heard of him - Mark Palandri - this is a guy who, he could code anything. He'd write beautiful, beautiful code. He would sit down and mostly... he would write .. he would sit with a yellow pad and he would write, like Mozart you know, comments to the right of every line. And he would write this code, pages and pages and pages for whatever. So typically it would be assembler on some machine or FORTRAN, etc. Whatever. He was the guy who, everything was possible. So there were no networks so he designed a network, he made a network project. He got some guys, guys would work for him that weren't in his operation. He wasn't for most of his career... He wasn't a Group Leader, he had no particular... But he was a really nice guy, he was brilliant, he would speak slowly and so on, I loved to work for him.
David: [00:05:45] He was pleasant..
Ben: [00:05:46] Pleasant, but fantastic. Fortunately, he managed - in those days there was enough space to do stuff like this and he got support.
Ben: [00:05:55] So OK, I landed at CERN in 1971, July. I'd never seen this guy. I'd been hired in a very unorthodox manner, which I mentioned to you. And I arrived and there was nobody there. So they gave the CDC manuals, I had to learn the machine code of CDC. Maybe I would have to program the CDC (I never did), and one or two other manuals. I had to wait for two weeks before.. Because they'd said you could work on this, this or this. And I'd said, well, communications, that sounds interesting. (I knew nothing about communications ...). And so when Mark gets back from holiday - he has a Spanish wife by the way, Rosa, a wonderful lady - they gave me my project. And my project consisted of twelve minicomputers, which are going to be put in twelve important sites in CERN with a card reader, a line printer and a teletype and a modem and a communication line to the Centre. And those had one program emulating a Remote Job Entry terminal. D'you know what that means?
David: [00:07:06] Well, I understand the words separately, but...
Ben: [00:07:09] Well, in those days when you submitted a job, well you went to the Centre, they gave you an operator, you gave your cards to the operator, and you came back and you looked in the thing on the wall, a rack for your output, hopefully... And this was a revolutionary idea where instead of everybody having to come to the Centre, they could stay near their offices and there would be a Remote Input/Output Station...
David: [00:07:37] Oh, yeah.
Ben: [00:07:39] ...and there were twelve. All of them had been chosen, purchased, designed - before I arrived so I didn't have to do that - by Mark.
Ben: [00:07:48] The Centre had these big Control Data machines as the central machines. No IBM at that time in the Centre. And they had Remote Job Entry terminals with a card reader and line printer and they would sell it to you. But it was very expensive. And Mark hated this. It was slow. He saw them as slow, horrible. And so he looked around - there was no Web. And he found this little company in England building a revolutionary very fast machine that no one had ever heard of, called the Modular One. And very, very fast. Completely different, of course. Its own machine code. Its own everything. Its own operating system - no, it didn't have an operating system, it had a monitor. It only had 16 Kilobytes of memory. And it was a very nice design. Each unit was about the size of that, right? (SHOWS A LARGE DESK). Maybe bigger. And so there was a CPU unit and there was a disk.. no, no disk. It was this memory unit - it was magnetic core memory. And there was a unit to control the teletype. It was big. So, very expensive. And Mark found the most beautiful card reader: beautiful, smooth wonderful card reader, and a beautiful line printer - from different companies.
Ben: [00:09:08] And Mark's actually ordered all this stuff. The stuff had arrived, right. And I've just arrived too. So my job was to integrate all this stuff. And in probably half of these places, there was an operator as well, who would help the poor physicists to use this thing because you know the physicists... They were just as horrible as they are now. They were impatient. "No, it's not working... ", et cetera. So there was a nice lady operator to calm them all down and they could leave their cards and she would submit jobs. So I had this big thing, big operation. I was alone. So I had to manage all of that. I had to make sure that this thing worked. So this was a good idea.
Ben: [00:09:59] So, Mark, OK, had to write a driver for the card reader, which was not supported by the company, and for the line printer which was not supported by the company. Now, this machine didn't have any switches or keyboard or whatever. It had .. in fact I just sent him an email the other day to figure out how he booted it, and he thought there must have been a paper tape reader. The only thing. It had no switches and no lights, nothing. The only external interrupt you could give it was switch it off and on. Switch it off and on. Talk about Ockam's Razor - very elegant, very British, very much from Cambridge.
David: [00:10:40] And it had no ROM to read from?
Ben: [00:10:43] There must have been a little ROM. Yes. Sure. Sure. To run the paper tape. Yeah. OK. After that, you had to boot it. So what we wanted was that the machine would boot out of the card reader. You'd put some binary cards in, load the program from the cards, and you got that to work. And then I remember him struggling so much to get the printer to work. Remember he's a brilliant programmer. And he came to this machine and he would go: click-click. Nothing happened. Curses, more work, and again: click-click. And one day after - it must have been a week - he'd taken a huge amount of time: click-click. And one character came on the printer! He was so happy!
Ben: [00:11:31] It was that sort of environment, apart from the political problems with this, because there was also a political part. So these things started to work. What I did was actually quite clever. It turned out they were emulating the existing remote station of the Control Data, and the Control Data it had this reader, line printer and it had a teletype. Now, how it worked was you went to the original machine and you put your cards into the hopper of the card reader, and then you were supposed to go to the teletype and type "Read", OK. And then it would, then it would read the first 12 cards. It had a buffer of 12 cards. And then you had to type something else and it would start to communicate with the host, with the central machine, and it would print something on the teletype and then it would read the rest of the cards, hopefully. It would read them, by the way, 12 at a time. I remember 12 because it had a buffer of 12. It wasn't probably double buffered.
Ben: [00:12:33] Actually I never saw the original one, I'm describing how... But then it's emulating this example. And so we thought, gosh, this isn't very good. The physicists... we can't have them typing on this thing - and they'd get so impatient. So, so we really needed to do this better. So I looked at the code in this thing. There wasn't much code. It was all in assembler. The strangest, of course. And Mark, by the way, being a genius, had also quickly whipped up a cross-compiler *** for it on the main CDC - the main CDC had a beautiful compiler, a beautiful one with macros - a really powerful compiler. So whenever Mark got a new minicomputer, which was often, the first thing he'd do is write a cross-compiler for it. So he wrote the cross-compiler.
*** ERRATUM: All the references here, and below, to cross-compilers should be to cross-assemblers (BS) ***
Ben: [00:13:16] And I looked at this code and I saw it was written by a most dreadful programmer, in fact, an Irish guy we'd met when we went to the company's site. No subroutine calls, all in-line code. Sooo, wonderful, there's all that space that I can economise. So I snipped out, ripped out all that, made subroutines, and I saved a lot, a lot of space, maybe a Kilobyte (LAUGHTER!). But a lot. And I wrote a little emulator, a human emulator in this case. So what would happen? You’d put the cards in, it read the first 12…
David: [00:13:57] Exactly.
Ben: [00:13: 58] …and then it sent down the line what the guy would have typed.
David: [00:14:01] Yeah.
Ben: [00:14:02] And so the reply came, and it sent the next message, and the rest of the... So, so you could walk up to it, put your cards in, press the button, and away you go. But we knew if they hadn't made that mistake there wouldn't have been enough space to write that, things like that. So that's how you learn: when you have a master mentor who writes beautiful code.
David: [00:14:27] That's so true.
Ben: [00:14:29] And you learn by reading other people's code. Same thing with the CIM, this thing to connect to the satellite. There was a raw, raw, raw box built by my friend with a 6800 in it, (not a 6809, a 6800, very limited instruction set). What you learn is it's very simple, but you have to write everything. There was no system, there was a monitor of a few hundred instructions, but after that ... So you know, you have an idle loop and you're going around checking interrupts and checking stuff. And so. I've still got the code in a box somewhere. You can write any code. And it worked beautifully, because I worked with the hardware guy. He was explaining, you know, what you have to do is put this in this register and do that. And yeah, we worked together. Yeah.
David: [00:15:24] It takes sometimes people like that to show you what's possible. It reminds me of like the four minute mile. Yeah. No one thought it was possible, so it took forever for it to happen. Then one day it happens. Next year, two more guys do it and then the next one ten and so on.
Ben: [00:15:38] Right. But I was so lucky to have a guy like that.
David: [00:15:40] Well, yeah,.
Ben: [00:15:41] He left after less than two years, he left in '73. After just over two years he left and he went to Australia, back to Australia. I was so lucky - if I'd finished up with a dead-head boss, I wouldn't have done anything here. So, he introduced me to communications. And he'd started another project, which I inherited with another colleague of mine when he left, and again, would you believe it, you had to write this and build it yourself? Okay, what was the application? They wanted to connect terminals, asynchronous terminals, to the Control Data timesharing system - they had a primitive timesharing system on the Control Data. You either bought their expensive terminals, or if you wanted to connect your own terminals, ASCII terminals, as the Control Data was not an ASCII machine, you had to do it yourself. So Mark says: "Right. We're going to build a terminal concentrator, OK? And we're going to have 32 input ports, for ASCII terminals, asynchronous ASCII terminals". (I think they could connect synchronous, complicated synchronous terminals of their own manufacture). And how do you connect this concentrator to the machine? On the channel. On the channel of the mainframe! Mark knew a bunch of people that had already connected all sorts of channel attached equipment.
David: [00:17:10] Right. OK,.
Ben: [00:17:11] So a channel adapter, built by CERN, existed and could be modified. And so it needed to be modified to go on this particular Hewlett Packard minicomputer, that Mark had chosen because it was the only one that could do micro-coding. You couldn't multiplex 32 terminals all entering characters without handling the characters super-fast, because if it did it in 70 milliseconds, that was too slow. He could do in 10 with his micro-code. So Mark bought the machine that would do that and coded the micro-code - with his own cross compiler of course.
David: [00:17:48] Of course.
Ben: [00:17:49] That was beyond me. I mean, that was just... But it was an attitude like that. And he wasn't hyper, he wasn't crazy. He was just a great guy, a perfect mentor.
David: [00:18:02] Yeah.
Ben: [00:18:03] When he left, I and my German colleague, the German colleague had done the code on the CDC side, on the Control Data side, which would read the stuff coming from the terminal concentrators and put it into the timesharing system and get the responses to come back. Okay. So he and I thought, well, we can run this project. Mark has left. Instead of which, the Division management, who didn't like us, had just hired a useless Dutch guy who had no function at all. I don't know how he got in. And they said, well, he can manage this project. We had one meeting with the guy and my colleague resigned and left CERN, and I refused to work with him.
David: [00:18:53] That meeting went well.
Ben: [00:18:54] Well, maybe it took more than one meeting. The first meeting we realized the guy was a loser. He was very charming, but he was completely useless. He had no function and we very much resented it.
David: [00:19:02] Yeah, it's a contrast also.
Ben: [00:19:05] Yeah. So. So Hans left, became a multi-millionaire, multi- multi-millionaire. And he started a company and now he buys other companies. I just met him recently.
Ben: [00:19:20] And I sort of went on strike and said I wouldn't work on it, but I consented to advise a replacement programmer. The system was basically finished at the time and... by the time Mark left. And that wasn't good at all. And so I became under a cloud. And that's why I took a sabbatical.