|
The situation was where a Xerox Data Systems (XDS) Sigma 5 was being used to collect and process telemetry data transmitted by a satellite.
This was in 1974 and the network was probably designed in the 1960s and was state-of-the-art equipment for its time. The highest speed line was 220kbps and the communications controller occupied two full cabinets.
The satellite in question would transmit three tape reels worth of data every day. If the data came through low-speed lines (because that was what certain ground stations could support), the computer could process about two tapes worth of data, saving the last reel as unprocessed data. If the high-speed line was in use, then it was all the computer could do to just write the data to tape reels. Over one year, about 300 unprocessed reels of data were sitting in the tape library.
The contract called for the system to support 3 satellites in orbit simultaneously. The computer was choking on the data from just one satellite. A second satellite was to go up in about six months, with a third one scheduled for a year later.
At that, I was working in an obscure field known as computer performance evaluation. This called for probes to be connected to certain pins available on the motherboard. For the IBM 360 series, these pins were known. Data obtained from these probes would tell you which part of the CPU were being used frequently and there was software written to analyze this data.
Unfortunately, the pin output information was not available for other computers. In fact, it was not in the interest of the computer vendor to optimize performance as they could sell faster and bigger processors to the customer. The hardware monitoring equipment was in fact sold by two vendors independent of IBM.
Thus, I had to figure out how to simulate a hardware monitor in software.
The program, conceptually, was trivially simple. Every 100 milliseconds or so, my program would interrupt the computer, look at what instruction was being executed and in which part of the memory that instruction resided: was it in the operating system or in the application program?
It turned out that a vast majority of time was being spent in the area reserved for program overlaying. Ah, yes, this particular OS didn’t have virtual memory (hardly any of the OS on various computers had virtual memory at that time and certainly not on the XDS Sigma 5 which would hardly qualify as a minicomputer) so we programmatically swapped overlays of the application program as needed into main memory.
The measurements suggested that we needed to add more main memory to the computer so that the overlays can be more optimal. The request for 16 KB of additional memory was approved (for a 64 KB computer) at a cost of $10,000.
After the additional memory was installed, I changed the overlay pattern to minimize page swapping.
The results were spectacular.
In the next 30 days, not only did we process the daily load of 3 tapes but processed the backlog of 300 tapes, which is like a total of 13 tapes a day. With 3 satellites in orbit, we only would need to process 9 tapes a day!
I was mightily pleased that I could do this so early in my career and the very first time I ventured into OS territory.
Later, I would go on to use hardware monitors on IBM computers and measure performance. It was awesome to see a selector channel on an IBM 360 run full-bore at 100% utilization and one knew at once that the IBM laser line printer running at 20,000 lines per minute was going full blast printing utility bills for the local electric company or the check-sorter for the bank was reading and sorting checks. Not even disk drives could achieve that level of utilization on an I/O channel; in fact, exceeding 35% on a channel used by disks was an indication that it was the choke point for the computer.
|
|
|
|
|
|
Singapore in 1980 had a hundred plus banks trading in foreign currencies. Some banks didn’t have regular retail or commercial banking operations but had a trading floor for trading US dollars against British pounds, Japanese yen, Italian lira, Deutsche Mark, French franc, etc.
The profits were really minuscule as exchange rates normally varied within a very short band. One could trade a million dollars against the British pound and show just a few thousand dollars in profit when lucky.
This particular bank had a young man from London who was their trader. About 9 months into the job, he started drinking heavily during lunch and showed other erratic behavior. The alarmed manager called the audit firm where I was employed to look into the books. They discovered that the trader had been booking false profits by putting into the computer system incorrect (and favorable to his trades) exchange rates. The profits he had booked were about $6 million. The trader was fired and a very experienced and much older trader brought in to fix the mess.
The new trader closed out all the trades and said that this should stop the losses. The next day, the books showed a new loss of $450,000. The trader said the computer software was screwed up and there was no way there could be additional losses.
The auditors refused to certify the books unless and until the trades were re-run on the computer for every single day with the correct exchange rates for that day for each currency. Presumably, one could get this from the daily newspapers but where does one go for six-month old newspapers? Each day’s run would take five hours or so and six months of daily processing would be in excess of 1000 hours.
This was around December 1 and the books have to be closed on December 31 and shortly thereafter the audited results have to be submitted to the relevant authorities. There were hardly 700 hours in the rest of December if we ran the system 24 hours a day so this was an impossible task.
I came to know of the situation when an auditor ran up to me in the office and asked if I had heard about the major disaster and related the story to me.
I went to the audit partner and offered to look into the computer system to determine what can be done. She said the decision was to re-run all the processing with the correct exchange rates and that I could do nothing to alter the situation. I told her politely that perhaps the client should make the decision about involving an IT consultant. She called the bank manager who, happy to grasp at straws, accepted my offer.
The new trader met me and told me I was wasting my time as he has done what one was supposed to do in these situations to limit the loss and the system continued to report losses in hundreds of thousands of dollars every day. As far as he was concerned, the software was erroneous.
I got the pile of documentation on the software and started reading through it. I also got the reports generated by the computer and was looking to see if the reports could be correct.
After two days of these, I came to the conclusion that the system in fact was correct.
When you book a trade , let us say with Citibank, to trade USD $5 million against Japanese Yen at an exchange rate 98.34 yen to a dollar, that contract may be due in a week.
You could book a false exchange rate 101 yen to dollar in your computer and show more yens and thus a bigger profit.
But when time came to settle a week later, Citibank is not going to pay you 101 yen to a dollar! They would pay only 98.34 yen! On the day the settlement was due, the trader would have to use the mutually agreed exchange rate.
This meant that the system in fact was self-correcting. The previous trader was merely postponing the inevitable, not averting it.
The elderly trader refused to accept my reasoning. He said there was no was for the bank to sustain more losses as it was doing when he had closed out all the trades.
I went back to the daily numbers and looked at the reports.
The losses were accumulating because of a simple reason: the total amount of money traded was closed out but not in each pair of currencies! This meant that if you had bought yen against US$10 million and sold French franc to get back US$10 million, those two currencies could move against you and you could sustain losses. To truly close out all trades, There should be no outstanding balance in any currency!
The trader was shocked when I told him this. I had discovered something that he, in his years of experience in trading, did not!
He went back to the trading floor and closed out trading in each pair of currencies.
For the next few days, I showed him that there was no further losses and the total loss had stabilized.
I continued to monitor the books for a few more days.
Then I saw a discrepancy of about Sing$20.
I broke my head for an hour on this problem and reluctantly left the building at 6 pm, to tackle the problem the next day.
As I stepped on the sidewalk, with the locked building doors closing behind me, I knew the answer.
The USD-Sing$ exchange rate had held steady for three days but the rate change that day resulted in the small difference I had observed.
I was elated when my calculations the next morning confirmed my hunch.
Around December 25, I wrote up my findings and told the audit partner that we had no reason to refuse to certify the books.
PS. A decade or more later, Barings Bank in Singapore suffered more than a billion dollars in trading losses in a manner identical to what this bank had experienced.
I just couldn’t believe that bankers haven’t understood separation of responsibilities and that traders should not be allowed to input wildly inflated exchange rates but a second person should be responsible for verifying the reasonableness of the exchange rate in every trade.
|
|
|
|
|
Vivi Chellappa wrote: I just couldn’t believe that bankers haven’t understood... Bankers and politicians are reeeeeaaaaaalllllyyyyyy slow learners what responsibility means.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
I’ve seen this happen to newer developers that start their first job. The human ego gets in the way of learning. You’re afraid to ask questions. "There are no stupid questions, only stupid people"
Sorry, feeling mean this morning.
|
|
|
|
|
There's also a skill to asking the right stupid question.
"Exactly why do I need this Javascript framework???"
Fear has a lot to do with it too. Asking the question above, one has to overcome fear of both asking and of the answer.
|
|
|
|
|
Marc Clifton wrote: "Exactly why do I need this Javascript framework???"
That applies to a lot of tech in the sense that when you're learning something new it's rare that you initially see the motivation/rationale for the new thing. If you're lucky you might eventually see some content which does do this and then you either appreciate (or otherwise) why the tech was created.
Kevin
|
|
|
|
|
Kent Sharkey wrote: "There are no stupid questions, only stupid people" I always said a variation of this:
There are no stupid questions, but there are some answers that...
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
The best way to learn a new programming language, just like a human language, is from example. To learn how to write code you first need to read someone else’s code. Sad news for those wanting to learn Assembly
|
|
|
|
|
I've always disagreed with the notion that assembly is a language. Assembly is just machine code represented by mnemonics. A language would be any abstraction of machine code, while assembly is not an abstraction, it's the actual thing.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
/shrug
Everything else I could think of has a standard library, so the article makes more sense than my attempted joke.
TTFN - Kent
|
|
|
|
|
Oh, In no way did I mean to disparage your joke. I just wanted to put in my 2 cents.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
I disagree, assembly languages are simply the first type of language developed, with a closer relationship to the underlying code - mostly one-to-one, but facilities such as macros and names for addresses introduce the first higher-level abstractions.
And of course, macro assemblers introduced the first tool for more general abstraction.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
I wouldn't recommend this for C++, because the STL (as the name suggests) makes extensive use of templates. Starting there would cause most people to give up immediately. I certainly would have.
modified 8-Nov-21 7:25am.
|
|
|
|
|
I remember back in the day seeing part of the abstract theoretical manual for STL and it scared the wits out of me! But when I eventually started using very simple basics and working up from there I concluded it was easier to use than it was to understand.
Kevin
|
|
|
|
|
I truly pity anyone attempting to learn C++ by reading one of the standard library implementations. They typically use extremely advanced techniques and optimisations.
Edit: pipped to the post by Greg Utas.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
Microsoft revealed this week that it will no longer support OneDrive on Windows 7, 8, and 8.1 starting on March 1, 2022. That should definitely drive some upgrades
(to Dropbox)
|
|
|
|
|
Oh... did Windows 7 have OneDrive?
How could I miss it?
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
OneWhat?
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
Then I guess it's too late for me to start using it...
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
Here's the quote that mystifies me:
“In order to focus resources on new technologies and operating systems, and to provide users with the most up-to-date and secure experience, beginning January 1, 2022, updates will no longer be provided for the OneDrive desktop application on your personal Windows 7, 8, and 8.1 devices,” said a she-her marketing person...
Exactly how much effort does it take to maintain a backup scheme? This is obviously an attempt to dazzle people with elephant cookie. Another name for my clown file.
Did y'all see this video: Microsoft Ignite's Woke Levels Reach Critical Mass - YouTube[^]
Clowns
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
It could enable smoother and more positive human-robot interactions. Remember to say 'please' and 'thank you' when killing all the humans
|
|
|
|
|
Kent Sharkey wrote: Remember to say 'please' and 'thank you' when killing all the humans You forgot "Sorry" and "I hope you dont mind"
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
After that they will used the accumulated knowledge to tackle the more arduous problem of teaching them to engineers.
Signed, A Proud Engineer
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
The FBI is warning people of a new breed of scam involving cryptocurrency ATMs. As opposed to all the uninteresting ones
Today I learned that there are cryptocurrency ATMs. They're so stodgy and business-like! :eyeroll:
|
|
|
|