|
I figured out a solution to your problem.
Try and get in contact with some Nigerian coders! I'm sure they've inherited some legacy code that would solve your every problem (+ shipping and handling).
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
PeejayAdams wrote: I very clearly visualised this bit of train-wreck code that I'm trying to fix working properly, I scribbled a note saying "hey! it works now!" and because all mystic things seem to come in threes, I wrote a similar message in Notepad Maybe I need to try that. [long story omitted]
Software Zen: delete this;
|
|
|
|
|
011111100010 wrote: So, I just got a message indicating I had inherited that exact amount from an African prince. Coincidence? I think not. See ya later, suckas!
Sorry, the Minister of Finance already promised it to me last week,
I already Western Unioned the funds needed to release the paperwork (plus the $2.35 for his taxi fare.)
Signature ready for installation. Please Reboot now.
|
|
|
|
|
Or are CP emails running at least an hour late?
I'm getting them from other people, but suddenly not from CP.
I'm wondering if the "You must be logged in to post a reply" message I got a couple hours ago (when I was and still am logged in) had anything to do with it?
Anyone else noticing this?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Very late... still waiting for confirmation of my CCC post
|
|
|
|
|
I've raised it in sugs'n'bugs - so a quick kick to the server may be forthcoming soon.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
The system appears to be a bit slow.
|
|
|
|
|
Nope!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I have not received any mail from CP since yesterday evening but there where some replies which has been shown as notification.
I did not get the "You must be logged in to post a reply" message. So it seems not related to that but a general problem.
Looks like the mail hamsters are taking a duvet day.
|
|
|
|
|
No, they are running DAYS late, or, are broken entirely.
|
|
|
|
|
I noticed that I'm getting my daily newsletters later than usual, but I thought it might be due to DST?
|
|
|
|
|
Maybe you've heard about this before, but it is very interesting.
It's a good example of the need for "code organization / code management" that you get from higher-level languages and OOP.
Bjarne Stroustrup wrote: On 23 September 1999, NASA lost its US$654 million
Mars Climate Orbiter due to a navigation error. “The root
cause for the loss of the MCO spacecraft was the failure
to use metric units in the coding of a ground software
file, ‘Small Forces,’ used in trajectory models. Specifically,
thruster performance data in English units instead
of metric units was used.”5
The amount of work lost was
roughly equivalent to the lifetime’s work of 200 good engineers.
In reality, the cost is even higher because we’re
deprived of the mission’s scientific results until (and if) it
can be repeated. The really galling aspect is that we were
all taught how to avoid such errors in high school: “Always
make sure the units are correct in your computations.”
Why didn’t the NASA engineers do that? They’re indisputably
experts in their field, so there must be good reasons.
No mainstream programming language supports units,
but every general-purpose language allows a programmer
to encode a value as a {quantity,unit} pair. We can
encode enough of the ISO standard SI units (meters, kilograms,
seconds, and so on) in an integer to deal with all
of NASA’s needs, but we don’t because that would almost
double the size of our data. Furthermore, checking the
units in every computation would more than double the
amount of computation needed.
Space probes tend to be both memory and compute
limited, so the engineers—just as essentially everyone else
in their situation has done—decided to keep track of the
units themselves (in their heads, in the comments, and
in the documentation).
In this case, they lost.
From http://www.stroustrup.com/Software-for-infrastructure.pdf[^]
|
|
|
|
|
Some form of quality control and testing regimen would probably have helped too.
The only good thing about this is that QA didn't exist in 1999 so it wasn't as a result of a "how do I navigate my spacecraft to Mars? SND CODZ URGNTZZZZ!!!!!" question and answer...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff wrote: QA didn't exist in 1999
Well, I guess we have to hold CP responsible for this disaster then.
|
|
|
|
|
QA didn't exist in 1999? I hope that was a joke, because that was my exact job description.
|
|
|
|
|
Damn Wolowitz screwed up again?
Don't let your mind wander too far.
It's too small to be let out alone.
|
|
|
|
|
I think Wolowitz was only about 10 at the time. Cut him some slack, eh?
|
|
|
|
|
For strong typing could be used interface, struct or class concept. Or some plain getter functions with documentation.
Lost were also the time for mankind. So we ALL know later from mars. Maybe Elon Musk would invent some spaceship if he had better knowing about the mars climate.
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
In theory you could specify that all internal units are SI (e.g. meter for distance), and then you just need to deal with unit conversions on the software interface to stored data or user interface.
But even if you handle everything in (value, unit) tuples, there could be an error in data entry that would go undetected by the software.
Alternative solution: have a debug mode where you use (value, unit), and have extra asserts to make sure your code is correct and in the release mode the unit checks would be removed so there's no overhead in production.
Wout
|
|
|
|
|
Those NASA engineers are real engineers sticking to their language they know C/C++. Don't get me wrong, I do like C/C+ (especialy C++11/14), but maybe it would be better they created a DSL (Domain Specific Language) for the control units ( at base station and at space-probe).
In stead of using runtime type checking, they could have done compile time type checking, preventing the overhead of the meta-data for the Run Time Type checking. These practices is all well written in the book "Compilers: Principles, Techniques, and Tools" (1st edition dates from 1986). The DSL uses the ISO standard as types and the translator-part of the compiler can add conversion code when they use non ISO standard.
It will not prevent human errors, but it will make it more clear what's going on when you use a Meter-type instead of a Feet-type if you writing down the calculation in the source-code of the computer.
to err is human; to forgive, divine
|
|
|
|
|
ddt_tdd wrote: to err is human; to forgive, divine FTFY: To err is human; to forgive requires a majority decision by the Change Control Board.
Software Zen: delete this;
|
|
|
|
|
Great stuff. Thanks for commenting.
It's an interesting story. Software crashes like this just get a lot of attention since they are so obviously catastrophic. Other problems occur and people do not hear about them but they happen everywhere in software.
|
|
|
|
|
Like comments on this post?
|
|
|
|
|
Hmm... the post was edited. There was an entire comment about what had happened. Interesting.
|
|
|
|