|
We need to vibrate faster in order to be in tune with the universe.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
Science & engineering really do go hand in hand
|
|
|
|
|
I built an IoT graphics library called GFX which does things like alpha-blending, jpg loading and truetype/opentype font drawing.
It's miles better than what we're using right now - the same thing most IoT major systems run for graphics, and it leaves a lot to be desired.
The only tricky bit is I have yet to code a driver for the RA8875 yet and I need one but I may cheat and create a driver that drives the other graphics library for now, since that one can talk to the RA8875, which is a weird controller and very timing sensitive (I actually had to hand modify the driver that ships with it due to timing issues between the RA8875 and the ESP32)
Real programmers use butterflies
|
|
|
|
|
Intrigued. Picture of sample displays?
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.
|
|
|
|
|
I don't really have much yet, as everything I've been doing WRT to GFX has been test code, although the GFX demo does include truetype font rendering.
Bottom line is I haven't made anything pretty with it yet, but since we had to change our device to work with the display in portrait instead of landscape I have to rewrite all the graphics code. That afforded me an opportunity to upgrade our presentation to something more slick and modern, although we're moving to a slightly more expensive version of the ESP32 to support the extra fluff. GFX *can* do truetype without the extra ram, but it's slow.
Real programmers use butterflies
|
|
|
|
|
Back when I worked for an aircraft company I was responsible for coding a set of traffic lights in the telemetry/testing office they were mounted upside down with green at the top. If certain things went over certain limits I was to make the amber light come on, further exceedance would cause the red light to come on at which point the aircraft controller would yell, "Eject, eject, eject", over the radio and the pilot would use the ejection seat to bail out before the multi-million dollar plane exploded. Lots of testing ensured the thing would work (feeding fake data from a recorded wire). I felt this was an enormous responsibility for a young (at the time) programmer to assume, especially since they had no peer reviewing mechanism or anything other than testing done by oneself. A life and lots of expensive equipment, not to mention where the bits crashed/fell were down to me getting it right. It was used once (correctly) while I was on vacation and twice more after I left the company; so all good.
In a later job I programmed a software/hardware automation system. We nearly took a contract monitoring a nuclear power plant but the president of the company objected to the cost of the insurance policy we had to take as part of the deal and backed out. I was pleased about this although I had faith in our system I was happy to NOT have that responsibility.
Has anyone else been in a similar situation?
- I would love to change the world, but they won’t give me the source code.
modified 9-Nov-21 10:06am.
|
|
|
|
|
� Forogar � wrote: It was used once (correctly) while I was on vacation and twice more after I left the company; so all good.
Interesting. Did you even get flights after you left the company? And they let you eject three times? How much shorter than before are you now?
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
The time it was used while I was on vacation the pilot delayed leaving his aircraft because it was pointing at a town at the time. He turned it around so the aircraft would go out to sea before then ejecting safely - although with only a second to spare. He came down with his flight-suit smoking a little!
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
Automotive braking ECUs. Millions of potential victims.
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
|
|
|
|
|
� Forogar � wrote: although I had faith in our system I was happy to NOT have that responsibility. Exactly.
|
|
|
|
|
Scary, from a financial risk viewpoint.
- An island in Southeast Asia. The Local Turf Club had contracted with an Australian hardware/software company to install a new computerized betting system to replace its old, aging system so that they could support more than 200 betting terminals. The call came to me, an IT consulting manager, at their Audit firm to test and certify the new system for compliance with the rules and regulations of the Turf Club.
The stakes were quite high. The Turf Club had to make sure that the system performed flawlessly. Any hiccup would provide the excuse to the government to shut down the Turf Club and take over its extremely valuable land holdings close to the city center.
I had to understand all the rules stated in the Rulebook of the Club. For instance, only three horses could deadheat for the Win (first place), Place (second place) and Show (third place) positions. If three horses deadheated for the first position, there was no Place or Show and those betting pools will be combined with the Win betting pool and the moneys distributed among the bettors who bet on those three horses. This meant that one had to consider the possibility that there can be one horse for Win and three for place; one horse for Win, one horse for Place and up to three horses for Show; and any similar combination one can think of.
In addition, chain betting whereby the winnings of a race are bet against a second race without having to place new bets (called Perfecta) and the proceeds bet against a third race (Trifecta) was permitted. The ticketing terminals should issue tickets within seconds.
The system should lock all betting terminals before the race begins and results should be declared and winning tickets paid out within one minute of race results being announced. The same terminals that sold tickets could be used to read any ticket that is presented and pay out the winnings.
This meant that I had to understand the accumulation of moneys in various betting pools, calculating and displaying the changing odds on display terminals and calculating the payout.
The system had to have a second identical computer for backup and should automatically use whichever system was available without the need for human intervention.
When I was called in, the vendor claimed the hardware and software were ready.
With just a couple of terminals, I placed several tens of bets in various combinations on imaginary races and hand calculated the results. They agreed with the numbers the computer was spitting out. So the software could be certified. By turning off a disk drive or two, or one of the two computers, we could determine that fault tolerance was perfect. But the betting terminals themselves were very erratic.
We called the vendor in Australia and impressed upon them the need for 100% reliability in the terminals. They sent a hardware engineer to test and fix the terminals already received by the customer and tightened up the quality control at their factory.
A few weeks later, all the betting windows were used and bets placed on imaginary races by a crowd in a dress rehearsal. It was successful and I had the confidence I could leave on my annual vacation to the US.
When I came back, the Club authorities expressed their satisfaction to me at the successful transition to the new system. There was no possibility of fallback to the old system as those terminals had been ripped out to make space for the new ones.
A couple of years later, I was scanning some computer related news. One item I found interesting was that the transition to a computer system at the Santa Monica Race Course had resulted in failure!
|
|
|
|
|
|
Not me, but a relative of mine: He did his (compulsory) service in the military at a time when computing technology consisted of a slide rule[^] and a book of tables. Having an engineering education, he was given responsibility for calculating the launch angle of the mortars.
Gradually, he realized that if he made a miscalculation, that could lead to several young men returning to their wives, their kids and parents alive. If he did his task properly, they might return home, but in a coffin. Parents would loose their sons, wives their husbands, kids their parents. Even soldiers are humans, with a life. Even enemy soldiers.
He couldn't take that responsibility: Making a mistake saves lives. Doing the job correctly kills humans. Sitting back home, or in a nuclear proof shelter, it is easy to say: But this is war. It is different when you are personally responsible. You could do a deliberate miscalculation, to let people live.
He went to the military administration telling that he refused to take that on himself. He refused further military service. In those days, that was like openly branding yourself as An Enemy of The People. Your relatives and friends might turn their back on you. Yet, he chose that, rather than knowing that his correct calculations would cause people to loose their loved ones. Making himself a murderer, disguised in a military uniform.
Of course we all know that the commandment "Thou shalt not kill" really is a short form of "Thou shalt not kill any of us". Many of us live by the extended version. Maybe you could strangle your neighbor with your bare hands, or exterminate him with a mortar, because of his religion, his ideas about economy, or some moral ideas he might have. That's what usually identify the 'enemy' that must be fought. And killed, if he does not submit to your religious, economic and moral ideas. He couldn't.
Nor could I. But in my days of youth, requesting for a non-military 16 months service was far more accepted. I never had to flee from a personal responsibility comparable to that of this relative of mine.
|
|
|
|
|
I'm just now catching up with a small backlog of posts I wanted to go back to, and stumbled upon this.
trønderen wrote: he realized that if he made a miscalculation, that could lead to several young men returning to their wives, their kids and parents alive. If he did his task properly, they might return home, but in a coffin.
Interesting conundrum, and I understand his position...
But OTOH, it's not like sparing the enemy means lives are saved and that's the end of the story...rather, if you don't kill your enemy, he gets a chance to kill you, your family, and your follow countrymen. Is that a better outcome?
If it's kill or be killed, it's a pretty simple decision in my mind. But ultimately, when you've reached this point, when wars are waged, invariably it's because some "leader" has failed miserably at his job.
I didn't really mean to revive this old thread, but somehow I felt compelled to contribute my 2 cents.
|
|
|
|
|
� Forogar � wrote: Has anyone else been in a similar situation? Driving?
Fascinating read - thank you for posting that.
|
|
|
|
|
Financial risk not safety...
What seems like a million years ago I was a newbie mechanical designer / draftsman. Within a few months of starting at a company, I drew up a C-frame for a 170 ton hydraulic press. The C-frames would cost ~$40,000 each and they intended to build 6 in the first run. I had to urgently request that they have a senior engineer check my work before release...
Fast forward 35 years...
I'm still with the same company and my team and I design the control systems for million dollar machines without blinking an eye.
Times change...
|
|
|
|
|
Developed heat treatment control systems used in the field for pre and post welding. Lots of amps and high heat. Not "dangerous" per se but could ruin expensive projects if the system miscalculated (ramping up / heating; holding; ramping down / cooling).
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
Well I can surely speak for the "scary responsibility" of hanging my wet bath towel up on a hook located behind my current computer then leaving the room in which all this is located, while running a strenuous calculation which mounts all my RAM, ... and being out shopping and suddenly recalling that I have a drying towel on the hook and ... perhaps I better get home before all my RAM is used, the box sets itself on fire, my dry towel now begins to go up in flames and my apartment is set ablaze.
Not really a job, thinking suddenly, but certainly something to panic about while dredging things up from my subconscious during a period of unemployment.
|
|
|
|
|
RAM usage == fire hazard?
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
jeron1 wrote: ==
In your stocking feet go stand on a lamp cord, you ... you ... programmer you!
|
|
|
|
|
RedDk wrote: you ... you ... programmer you! Overly dramatic voice:
How dare you!
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
Not really scary, I worked on the Smart Motorway System (that has now been shelved thank ) I was not popular for saying infront of the Highways England people who were observing the test "I think the recovery crews will need a power washer, not an amblulance". Went down like a lead balloon, but did get an ammount of support from the Highways England people.
|
|
|
|
|
I work in automation systems so it's a fairly common-place thing for me to have a lot of scary responsibility of many varieties. Probably the most scary had to do a financial responsibility. I was working on a semiconductor processing system that was dealing with the chemical processing of wafers. These systems were very, very time-sensitive. We had several cassettes, each full of fifty wafers in process at a time in the system. One type of system dealt with acids that would etch off oxide that had been deposited on the wafers. Most customers would dilute the acid so the etching took longer but it was rather tolerant to immersion time variances. Other customers insisted on very high acid concentration which etched very fast and were very sensitive to the immersion time. It had to be accurate to the second. If the time was off by more than a second then the wafers over or under etched and the entire cassette was scrapped which resulted in the loss of millions of dollars of product. We spent an immense amount of time making sure that the entire process was exactly accurate.
Imagine my frustration at how poorly the customer trained their operators. I had already been instructed to assume a sixth grade reading level from the operators and at times that seemed optimistic. I remember vividly watching an operator and guiding them during the first shift of production. We had to use a flaky wafer transfer unit that would load the cassettes into the system, as required by the customer, and these things would give errors often. When that happened the operator was supposed to cancel the transfer in progress and try again. Instead, I watched the operator press abort three times in the first shift, causing approximately ten million dollars in scrapped product. I was then instructed to put a double level of "are you sure" confirmations instead of just the one. I then had to tell them not to even use abort except for very special circumstances like power loss when the UPS couldn't keep the robots alive because the batteries were too weak. That was very, very frustrating.
One amusing thing happened when we were installing a system in Erfurt, Thuringia, Germany. We were undergoing our final confirmation testing and the process engineer told us the etch times needed to be accurate to within one second. He emphasized this by saying, "and I mean German seconds, not American seconds." I got a good chuckle from that. When they approved the system he gave us a stopwatch that had been made in the USSR since Thuringia was formerly a part of East Germany.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
How does a German Second compare to a New York Minute? *raises eyebrow*
Real programmers use butterflies
|
|
|
|
|
Rick York wrote: magine my frustration at how poorly the customer trained their operators. I had already been instructed to assume a sixth grade reading level
I, I kid you not, had to change all text in a version of the software to add recognizable pictograms to any prompt or error because a large part of the working force, QA in a pharmaceutical company, was totally illiterate.
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
|
|
|
|
|