Deutsch   English   Français   Italiano  
<100ubin$17n5c$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Don Y <blockedofcourse@foo.invalid>
Newsgroups: sci.electronics.design
Subject: Re: "RESET"
Date: Sat, 24 May 2025 22:58:45 -0700
Organization: A noiseless patient Spider
Lines: 47
Message-ID: <100ubin$17n5c$1@dont-email.me>
References: <100thgs$v8cm$1@dont-email.me>
 <MPG.429c5cc5fbe9667698a03f@news.eternal-september.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 25 May 2025 07:58:49 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="672de9e7a519c663ff2d3c552f49d2c5";
	logging-data="1301676"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+fbxfZ6uAn4rNOuMHaxtcx"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:nphEgACYF917Crrdi0Ug+LGGh+U=
Content-Language: en-US
In-Reply-To: <MPG.429c5cc5fbe9667698a03f@news.eternal-september.org>

On 5/24/2025 8:47 PM, Ralph Mowery wrote:
> Sometimes it is the user that is lacking.  Such as forgetting a
> password. Maybe putting the device in the wrong mode and can not
> remember how to get it out of that mode.

And cycling power won't suffice?

> With the many lines of code it  is impossiable to check out every
> possiale combination of things that could ge wrong in a reasonable time.

You let the code catch the mistakes.  Any time two pieces of
code ("modules") interact, a formal interface SHOULD exist that
defines the contract that both parties will observe.  Instead
of just HOPING that the other guy is holding up his end of
the contract, write code to CATCH those times when he clearly isn't.

When you find such an instance, "something is wrong"; either an
assumption made at design time, a bug in an implementation, or
a hardware fault that has corrupted data or execution (any product
that uses memory is subject to all sorts of faults; the more memory
and higher frequency of access then the greater the *likelihood*
of errors).

A staple of robust software development practices is formalizing
these interfaces and adding invariants to enforce them at run time
(these things almost never have a significant impact on performance
if implemented properly).

You know to check before dividing a value into another (divide by
zero).  Have you asked yourself WHY the possibility of "zero"
exists in your code?  Or, "negative time"?   Have you modeled
the problem correctly?

> While not really much of a chance but in the eairly days bits could be
> randomally changed by stray radiation.

Errors can be induced from the "traffic" within a device
(read and write disturb) without having to worry about radiation.
(thought there have been some studies that show a positive correlation
of error rates with elevation)

Hardware isn't as reliable as folks would like to think.
So, you have to design algorithms and styles that catch
the hardware when it is misbehaving (otherwise, you will
naively blame it on a software "bug" -- because you
don't understand how the hardware is failing nor have
tools to MEASURE those failures)