Back in the day, I supported a time-sharing system known as VM/CMS. Each user signed into the system got their own virtual machine, with virtual hardware devices, a virtual card reader, a virtual card punch, and a virtual printer.
Okay great, you have a virtual card reader. How do you load virtual cards into your virtual card reader? And why would you even do that?
In the days of physical cards, you saved a file by creating a deck of punch cards. And to transfer that file to someone, you gave them the deck of cards. That person then turned on their system and put the punch cards in the card reader to load the file.
The virtual card punch and virtual card reader do the same thing, just without consuming any physical cards.
- The virtual card punch is how you send files to another person. This eventually became overloaded as the way you send an email message.
- The virtual card reader is where incoming files arrive, such as the output of jobs you have submitted. It’s also where incoming email sits, waiting to be read.¹
- The virtual printer is, well, it’s a printer. Jobs sent to the virtual printer go to an actual printer, and you can pick up the results from the print room.
The command to check for email was Q RDR: The Query Reader command checked if there was anything in your virtual card reader. If so, then you got mail.
One day, we got a trouble report with an error message nobody had ever seen before: Card reader jammed.
How is it possible to jam a virtual card reader? Did you feed it a bent virtual card?
I was ending my shift and didn’t get to stick around for the resolution. I later learned that one of my colleagues dug deep into his memory and found some information in the manuals to resolve the problem.
I wonder if he virtually turned it off and on again.
Bonus chatter: Back before VM/CMS, the punch cards were real. I started programming just as punch cards were dying out, but I recall that during the hot summer months, one silly trick to cool off was to go to the service window in the computer room and submit a small job of a few dozen cards. The operators would open the window to pick up the deck, and during that time, you got a brief blast of cool air from the computer room.³
¹ Cards in your reader don’t count against your storage quota, so a common trick when you ran out of quota was to email a file to yourself, to give yourself some breathing room while you cleared up some space. You wanted to pull the file out soon, though, because the system would expire old card decks.²
² I guess you could read cards out of your punch, and then immediately send them back to yourself, thereby resetting the expiration date. But this was a high-risk maneuver, since one false step could cause you to lose your files.
³ When the job was finished, they would open the service window to return the deck, along with the printout of the job results. However, you couldn’t use this to sneak a second blast of cool air because you didn’t know whose job was coming out. You couldn’t just hang out right in front of the window, because the operators would think you were trying to submit a job. The convention was that if you were waiting for a job, you stood a small but respectful distance from the window so as not to confuse the operators. Close enough that you could get a small amount of cool air, but not so close that the operators would think that you are submitting a job.
Long time ago, before both Linux and Windows, when card punches was real, we had an application that in some cases reported "Card reader error (card not read)" or "Card reader error (card read)".
This application had its own internal error codes. When an OS call returned an error code, the error text was requested from the OS for display. Some error situations were mistakenly treated as OS error returns, so the internal error code was looked up as an OS error text. If you knew that the first message corresponded to error code 3, the second one to 4, you...
Talking of virtual, I got refused entry to a work virtual meeting in Teams because the meeting room was ‘full’. Sigh.
I’m not entirely surprised – Teams is possibly the most clunky, bloated, badly written and unfriendly pieces of software out there – I’ve used Lotus Notes, and even that’s nicer than Teams. Come to think of it, WordPerfect for DOS had a better UI than Teams.
At work, we have been using Teams for about a year, the last six months quite extensively. I cannot recall a single crash; it has been rock stable. We have had information meetings with 500+ participants (that is the majority of our employees; we have no simple way to test it with significantly more), distributed over at least five countries (far more if our international sales force participates), a certain share from inside company WiFi networks, but in these Corona times probably two thirds run from their home offices through a commercial ISP. Nor has performance problems been an issue.
I...
Over the past few months I’ve used MS Teams, Cisco Webex, Zoom and Google Hangouts, and I’m old enough to remember Lotus Notes.
Cisco Webex is by far the worse of the modern contenders.
Not slightly, not marginally, but by some distance. I might even put Webex as worse than Notes, but that’s probably recency bias.
And guess which one our organisation bought a site license for, literally days before MS Teams was made free to use for healthcare organisations here in the UK.
Having a full virtual meeting sucks though.
Dear God, how awful must Teams be that it can be worse than Lotus Notes? I thought all software was rated on a scale that went from $perfect (a hypothetical, empty set) down to Lotus Notes at the other extreme. It wasn’t on the scale, it represented where the scale ended.
Teams is truly awful. Notes at least was trying to do something very new when it came out; Microsoft has had every opportunity to create a decent collaboration tool, especially given all the bad examples out there, yet they ended up with Teams. I just don’t get it…
I've heard this complaint about MS Teams quite a bit here and on other forums. Two things: unless you've access to the source code, how could you know that it's "badly written"? Second, I'm also a long-time Lotus Notes user - still use it about once a month for the rare* thing that requires the full Notes client - and I find Teams to be a massive improvement over Notes and sametime. I've used Teams professionally for just over two years now and I can't imagine going back to the bad old days of Notes. The...
If Teams is “well written” then there’s something catastrophically wrong with whatever framework it runs in: it’s slow, it looks ugly, it tends to crash and freeze regularly, it’s unintuitive, it can’t render its conversation screens to keep up with any normal scrolling speed. I could go on, I really could. It is way worse than Skype for any sort of collaboration.
It’s a horrible mishmash of bad ideas and bad execution. If I’d worked on it, I’d be ashamed of what I created.
It’s no secret that Teams is written in Electron. Teams is listed right there on the front page as one of their many clients.
Any use of a web browser control by something not a web browser or an email client is badly written.
Not sure when this story occurred, but I was still using virtual card punches in 2001 on a VM/CMS machine in a cave in Poughkeepsie. Coding in C on that was painful because of the difficulties with EBCDIC so I wrote a script to transparently copy edited files back onto the mainframe after I’d edited them locally in ASCII, perform the appropriate conversion, and store them wherever they were needed. The only thing done on the mainframe was the actual compile.
I also started programming in the latter days of punch cards. As a summer intern at IBM I learned about the card saw a tool for unjamming keypunch machines. Back at school this knowledge proved useful because it was common for some number of keypunch machines to be out of commission due to jams and when there was a line of students waiting to get access to a machine I could go to the operator and ask for the card saw which I then used to unjam a machine for my own use. Those machines were tough. You just jammed...