Re: Made up data ...
Tom Kurtz of BASIC fame when confronted with the requirement for filling out time sheets said, "Can't we just fill out one and just copy it."
1078 publicly visible posts • joined 6 Jun 2015
When I was teaching C++ a student came to me because his code wasn't working and the lab assistant couldn't find the bug. Turns out the student had written:
if(char == '\\' then { //check for \
etc.
Well the \ at the end of the line deleted the following newline making the next line a comment. This caused errors on the second following line causing confusion.
At the college where I was teaching someone was deleting all the files in the homework submission directory. Nothing was working. I tried submitting something and left the program running. I then went down to the support person and asked him to print out all users logged into the course submission account. My name came up and I seemed to be running rm -rf * in the top-level submission directory.
I stopped my program from running and after some trouble shooting discovered the problem:
The submission directory was over quota and the submission program was unable to create any of the sub-directories needed for the submission. The submission cleanup script then did a rm -rf * on the top-level directory because the system had failed to create the temporary directories so the cd commands were noops.
Once we found the root cause we just doubled the quotas for the submission directory making the problem go away for awhile.
Next day I told the class what had happened. I mentioned that backups would be useful in this case and the class chuckled. I then explained that we had a fairly extensive backup system and could (and did) restore the files from a few hours before the problem. Students did have to resubmit any homework from the previous day but not a big deal.
When I was working for Xerox in research a major transformer that powered the building blew up. The transformer was in a room opposite to the guarded entry. When asked, the guard said, "oh yes, there was a hell of a bang last night."
"Did you report it?" "No, I thought it was someone else's problem."
When they finally installed a new transformer, they did it live. Two men stood with crossed 2x4's in front of the transformer and braced themselves. A third man reached over the 2x4's to connect the transformer. The job of the two men with 2x4's was to pull the third man off of the transformer/wires if anything went wrong. Everyone was very serious. Fortunately, all went well.
In C++ free() also works for null pointers - no need to check. Storing null in the pointer only works for the current copy - there may be others.
I have never had trouble with C++ - just use value semantics and don't use pointers. Just declare vectors, strings, maps etc. and let the destructor take care of cleaning up. Copy the containers and don't use pointers.
Of course, there are still traps for the unwary but trying to determine ownership etc. can't be good for clean code.
If you want a safe language, just use LISP.
My office was arranged in several piles of paper. The rule was: 1 inch per month. I could always find what I wanted but the clean desk patrol was not happy. We once had a security audit and they checked every box including "passed." They must have been flustered - I found this report card when it surfaced a month later.
Rochester Institute of Technology has people modeling these events. The spins of the original black holes really warps the space-time around the objects and results in gravitational waves being emitted preferentially in one direction. In this case, the missing 15 solar masses is emitted in one direction and the resulting black hole is kicked in the opposite direction (as much as .01 times the speed of light). During the last seconds of the event, the spins of the incoming black holes rotates by a large amount.
I wouldn't want to be near any such event.
55 years ago I wrote the major part of the second Dartmouth College time-sharing system. Everything was teletypes. We used DN-30's to multiplex 50 ttys (2 remote and 2 local) to a GE 635. In the real early days the Bell system was leary of computers on their lines so all datasets connected to a computer reversed mark and space. Repairmen had no clue as to why there testing didn't work. BASIC was the language of choice for users.
It was fun bending a giant mainframe to your will.
In college I wrote an ALGOL-68 compiler. I was at the December 1968 meeting that "finalized" the report. It is a fairly clean language with a garbage collector (although the specification didn't require collecting everything but it could have). It had a strict type system and clarified many type issues. The two-level syntax made the standard somewhat hard to read until you got used to it.
All in all, I thought it was a step forward in language development.
It answered the question as to why you can write:
x := 2
but not:
2 := x
I did not write all of the transput though.
At Xerox, many years ago, we had an off-site garage used for building computers. They had a large stock of RAM chips kept in a locked cage with 12' high walls. One night some people entered the facility and climbed the 12' high walls and went shopping for RAM chips. On the way out they told security not to worry.
They got away with it!
LISP is older than almost all other languages and is memory safe. A modern LISP compiler can produce code just a fast as C. Modern GCs are very fast and can do hard real time. Memory allocation is much faster than malloc. etc. Yes, operating systems have been written in lisp, smalltalk etc.
My father once complained to the railroad that his wire (one inch in diameter) was arriving tangled. So the railroad put a monitor in the next boxcar. They came back red-faced because the monitor was driven off-scale in the local switch yard and stopped recording for the rest of the trip.
At RIT we had our own support group in the computer science department. They ran file servers, mail, web server etc. They were excellent. Then the university decided that all web pages belonged to them, the mail servers belonged to them etc. So now there is a crappy home page for the CS department, mail is microsoft crap etc.
Oh well.
In 1965 when teletypes were the main device to communicate with computers our secretary at the computer center received a call and shortly hung up laughing. Seems someone called with a problem and she said before the caller explained the problem, "Please press the left button on the teletype to turn off that buzzing." The buzzing stopped and then she asked what the problem was. The caller said, "that was the problem - I couldn't figure out how to turn off the buzzer."
Problem solved before being explained.
A multiply or divide took one revolution of the drum. The LGP-30 was a bit serial machine. By properly positioning the instructions and operands one could get the speed up to about 200 instructions per second. Otherwise it ran about 60 instructions per second. It had a drum memory of 4096 31-bit words. The accumulator, instruction register, and program counter were also recirculating registers on the drum. A fun machine to work with.
Yes - I programmed DOPE on the LGP-30 in 1962. Tom Kurtz just threw an LGP-30 manual at me and said, "go to it." My first program played NIM and then in the Spring term I wrote DOPE and then discovered that Kemeny had a freshman class use it to verify that amateurs could use a computer. Tom was always smiling and enjoyed life. The actual time sharing system was programmed by undergraduates John McGeachie and Mike Bush and went online in 1964. Tom Kurtz was an excellent statistician and mathematician. He was always ready to talk with anyone. I knew him for many years. He will be missed.