Hacker News new | ask | show | jobs
by elengyel 1876 days ago
I'd like to clarify that my code was running only on machines that were otherwise idle. Not many people were in the lab late in the evenings. MPQS processing nodes could be added and removed dynamically, so if somebody needed a computer that was part of my cluster, they could just quit my program and everything would go back to normal.

Also, once the number theory professor learned of what I had implemented, he worked out an agreement with the lab manager to give me legitimate access to the machines. :)

5 comments

Right about that exact same time I commandeered an entire lab (30-40?) of SGI Indigo 2's at Ohio State to do distributed raytracing. Wasn't nearly as educational or diplomatic but I did have fun with it until I got shut down for essentially using twice the storage in my home directory as the entire rest of the class. Between that, usenet (of course) and trolling cuseeme reflectors all over the world from the odd smelling Mac lab, I didn't get much studying done.

Good times.

I hadn't heard of CU-SeeMe before. It's videoconferencing software from 1992 (!), around the time the Web had just barely been formed.

There seems to be a lot of interesting history surrounding it: https://sattlers.org/mickey/CU-SeeMe/internetTVwithCUSeeMe/c...

It was pretty awesome. I commuted to school and my 2400 baud modem wouldn’t cut it. But lots of students would run clients or ‘reflectors’ from their dorm rooms and i would stay in the labs until the wee hours just hanging out. I never got into MUDs but ‘talkers’ were similar in concept. Just themed text chat. I would hang out on one called ‘Oceanhome’ and make dumb faces on cuseeme. It felt like another universe

People weren’t that much different na back then then they are today.

This provides a per good impression of what it was like. This was 30 years ago.

https://youtu.be/PC33Y4Jbiys

30-40 Indigo2’s must have be one expensive lab.
> I could enter that program in the system monitor, but I needed a way to run it.

The simple way: in that mini debugger, the ‘G’ command (for ‘Go’) takes an optional address and jumps to it. “G 40F6D8”, for example, continued execution at address 40F6D8.

I don't remember the exact details, but I did try the G command, and it didn't work out. The problem was something like the program had nowhere to return to, so just ending with RTS would crash, and ending with a call to ExitToShell() would just restart At Ease and put you right back in the secure environment. I had to trick the computer into executing the program as a subroutine from inside another running program, which is accomplished by using the drag hook.
I thought the _Launch call to start a new program killed the current program, so I didn’t consider how to return to the original program. However, they my have changed that when MultiFinder was introduced.

I guess the proper way would have been to JMP to wherever a bare ‘G’ would have returned, not an RTS (if there is a proper way to do this kind of thing. I’m not sure the system guaranteed what you could do at that time. You might be in a memory manager call, which meant any drawing calls were off limits)

Fun memories.

sm 0 a9f4 g 0
Ah, good times. Our lab ran sshd on each workstation, so I launched cli processes on every system, at daytime, with dozens of students still working on their project. I thought running as "nice -n 19" would be safe.

Wrong. My program ran out of memory, systems started thrashing, desktops froze up. Confused students, panicking about unsaved changes, swearing, rebooting. Meanwhile I was frantically trying to kill my processes, but even sshd became unresponsive so I couldn't stop the madness. They never found out it was me :)

Would be cool if you tried running this on the Golem network now. https://www.golem.network/
what a wild story. the first thing that came to my mind reading through wasn't a picture of a modern Mac but of TempleOS. It's amazing how we study computing changed since then as in we're focusing more on learning about all the required plumbing and duct tape than the actual machines. Not that this isn't fun too but it has essentially shifted everything. Getting into "mainstream" computers back then was such a different world than what it is now.

Suppose you could get the same type of "fun" today by playing with breadboards but you'd have to seek it out on purpose. Sitting in front of a modern machine is just so much more abstraction that gets in the way.

You can also get some of the same near-the-machine fun by going into security. Shellcode has to be short and close to the OS, and breaking the stack (stringing together gadgets, and so on) by its nature subverts the higher abstraction layers.
Almost the same lament could have been written in the 1990s in nostalgia for the glory days of the 1960s.
I was neither idealizing nor being nostalgically "lamenting", but thanks for the negativity. I was merely pointing out the differences in how "the getting results in X" has moved up the stack.
Sorry, I wasn't trying to be negative.

Yes, things have moved up the stack. And so have they done in the 30 years before the 90s, too.