'standard' NDA

On 5/10/19 1:32 am, jlarkin@highlandsniptechnology.com wrote:
On Fri, 4 Oct 2019 17:42:35 +1000, Clifford Heath <no.spam@please.net
wrote:

On 3/10/19 10:09 am, Clifford Heath wrote:
On 3/10/19 8:55 am, John Larkin wrote:
On Wed, 2 Oct 2019 17:22:50 -0400, bitrex <user@example.net> wrote:
software engineering and electrical engineering have diverged very far
over time to the point that outside a basic circuits class some students
take.

They should teach EE students the fundamentals, as always. Physics,
electromagnetics, circuit theory, EDA (engineering unit concepts),
signals+systems, control theory. Without that background, anything
more "advanced" is useless.

I have no idea what software engineering is. I should buy a textbook.
I did buy a sociology textbook; it was hilarious.

Can anybody recommend a good (or at least popular) undergrad intro
textbook in software engineering?

Most software is not "engineered" in any real sense (and for that matter
most "engineering" is not engineered either). Most "software engineers"
cannot adequately even define what they mean by "engineering".

My definition: engineering is solving problems by applying known
(measured) properties of available resources in a way that provides a
guarantee that certain outcomes will always be met, despite any natural
variation in the properties of those resources. So when a structural
engineer specifies a certain steel beam to support some load, they take
into account the specified load, the way the beam will be supported, and
the known properties of steel and of the type of beam specified.

The meaning of "properties of resources" in software is the properties
of storage devices, operating systems, databases, data structures and
the algorithms that implement operations on them. These properties are
almost only ever specified in the "happy path", and seldom if ever is
the worst-case behaviour specified. Instead, subsystems and libraries
are designed to avoid catastrophic worst cases (polynomial or
exponential runtimes, for example) - O(N*logN) is the worst that's
allowed without prior warning.

In any case software writers seldom know or consider these properties,
they just throw stuff at the wall and see what sticks. The same way the
structural engineer doesn't actually calculate the steel beam, they just
look it up in a table.

A former colleague trained first as a mech eng because he loved solving
the mathematical problems. During his first year working, he realised
that never in his career would he get to actually *use* the mathematical
analyses that he loved, so he went back to school and qualified in CS.
That's the kind of guy you want writing software for you (but they're
rare)!

So CS courses do actually teach the required analysis, and in my
experience software writers do have some awareness of it,  but only
enough to avoid using pathological algorithms. For the most part the
difficult algorithms are implemented in infrastructure code, and very
few people are competent to write that. (though many others try, and
they succeed only because spectacular computing power hides the
fundamental weakness of their code).

And then there's *systems* engineering, which is what happens when more
than one organisation works together to produce some system that's
larger than any of them could do by themselves. This brings in a raft of
human factors like clear communication, change management, etc. This too
can be engineered to some extent, but the vast majority of software
people never really find themselves in such a situation - and the Agile
movement is all about avoiding it. The one exceptional case is embedded
software, where you have a hardware team and a software team, and
neither can do what the other can. Our immaturity at systems engineering
explains the parlous state of embedded software.

I asked the dean of a big CS depertment what sort of programming they
teach nowadays. She handed me my head. "We don't teach programming!"

Oh. Sorry.

I *think* I understand that response. Modern CS is about *derivation*,
not about construction of step-by-step algorithms that perform some
derivation. By "derivation" I mean that for every current-state and
event there is an algebraic expression that derives next-state. This is
the basic idea behind functional programming. Every derivation is a
"function" that takes one parameter (current state) and by applying the
function, produces the next state. The compiler is responsible for
finding an algorithm to efficiently compute each function.

"Programming" then becomes the job of the compiler. The coder must find
a way to express their computation algebraically, and the compiler does
the rest. Haskell is perhaps the best examplar of this.

Clifford Heath.

John: You asked, I answered. It would be nice to get some feedback.

CH

What do you mean by "guarantee that certain outcomes will always be
met"? There is always risk, always bugs. We always take chances, and
if we try too hard to eliminate risk we'll never get stuff done.

I mean that the behaviour falls inside the acceptable range of outcomes
with high enough probability, and outside the unacceptable range with
low probability. For a bridge, or a commercial airplane, the cost of
failure is very high. A toaster, not so much.

The business defines the acceptable outcomes and the risks, and the
engineer tries to ensure that the product meets expectations, i.e. falls
inside the acceptable ranges.

I avoid designing stuff that, if it fails, will blow expensive things
up or kill people.

Glad to hear that :)

Programming is a lot more than algebra and algorithms. I don't think
the average programmer even knows how to do algebra. The real problem
in programming is to control procedural flow and synchronize events
and avoid idiotic pointer and buffer crashes.

That's why modern languages are moving away from the need for such things.

> Computer Science doesn't seem to have much interest in computers.

Any computer that is Turing complete can simulate any other computer,
and can compute any computable function. If it wasn't for CS, we
wouldn't even know that. CS folk work in the area of the theoretically
possible (like pure math) not the realisable. That's important, but it
doesn't try to solve business problems.

I think the average programmer has never heard of a state machine,
either.

I think you'd be totally wrong there. At least any university graduate.

> Python looks OK. I should get into that one day.

If you don't like white-space as syntax, look at Ruby. It's similar, but
has a more conventional (and in fact quite beautiful) syntax. You'll
find fewer scientists use it however, and more web wannabe's.

CH
 
On Saturday, 5 October 2019 02:17:07 UTC+1, Rick C wrote:
On Friday, October 4, 2019 at 8:28:36 PM UTC-4, tabby wrote:
On Friday, 4 October 2019 20:38:57 UTC+1, Rick C wrote:
On Friday, October 4, 2019 at 6:19:27 AM UTC-4, tabby wrote:
On Friday, 4 October 2019 10:59:38 UTC+1, Clifford Heath wrote:

In mass-market products the engineer doesn't set the goals. The
bean-counters do that, and the engineers have to design to guarantee the
business goals by making cost/MTBF calculations. It's still engineering.

CH

Exactly. Meeting business goals does not always equal guaranteeing the thing works. It just has to sell and not have too many duds be returned..

Consumer products are always guaranteed to work, or your money back.

Lol. That's crazy naive.

Have you ever seen the drugstore beauty products and their silly claims? Have you ever tried to get your money back? Do you honestly not understand why you won't?

But I do. Well, not drug store beauty products. But the store will give a refund if you aren't happy. Lacking that, the credit card company will. I use these two steps often when dealing with virtually anyone I buy from.. Right now I've got a $500 claim in on an auto non-repair. We'll see.


Then there are health products, massive amounts of which either don't work at all or are never liely to. You won't get a refund in most cases.

You don't even try, do you?


Then there are the many companies who just shut down and restart under another name every so often. You won't get too far with a nonexistent business. Some sell entirely nonfunctional products, some just sell troublesome products.

No, but I still get my money back from the credit card company.


Then there are sellers that refuse to refund in cases where court costs just aren't worth it. And sellers that just lie to present a plausible but false case to avoid a refund being ordered. And sellers that simply don't repay when court ordered.

Heck I could spend the evening giving examples of when your ultranaive view doesn't fly.

And you would be totally wrong, nearly every time.

Your views are so clueless & naive they're laughable.
 
On 04/10/19 23:56, Rick C wrote:
On Friday, October 4, 2019 at 6:39:02 PM UTC-4, Tom Gardner wrote:
On 04/10/19 21:39, John Larkin wrote:
On Fri, 4 Oct 2019 17:03:35 +0100, Tom Gardner
spamjunk@blueyonder.co.uk> wrote:

On 04/10/19 16:32, jlarkin@highlandsniptechnology.com wrote:
I think the average programmer has never heard of a state machine,
either.

Someone maintaining FSMs in a telecom application: "Aren't FSMs
something in a compiler's parsers?" Grrr.


I don't like compilers in general. All my production code was in
assembler.

The language is key; some make compilation easy and predictable without
rolling in the mud with language lawyers. Other languages don't.


Python looks OK. I should get into that one day.

Cut and paste some code and get the indentation subtly wrong. In Python
there can be no option to "reformat and pretty print this arbitrary
blob of code".

The indentation thing is really bizarre. What's wrong with END IF and
NEXT? I suppose I could add my own as comments.

I suspect, without knowledge, that it is derived from the same mentality
that thinks strongly typed languages require too much boring typing and
stop people from changing their code quickly.

I work in VHDL, a strongly typed language and Forth, a virtually not typed
language. Both work well if you use them as intended.

I think for hardware a strongly typed language makes for predictable results
since you in essence have to say exactly what you want rather than being more
vague and letting the tool figure it out. I recall in my youth people would
write C code and once the error messages were gone would ignore the warnings.
The warnings were there for a reason, mostly people just didn't know what
those reasons were because they had not been taught or given it any thought.

Old observation: "cc is half a compiler; the other half is lint"


On the other hand, I find the wild west of Forth to be very freeing
especially when I want to program a custom CPU on an FPGA. I don't need
strong typing because I know exactly what the tools will do with my code, so,
no surprises like you can get with adding std_logic_vector without a strongly
typed package... or in Verilog.

That can work with /your/ code. It becomes more problematic
as you incorporate complex libraries from other companies
(or worse, other projects in the same company!). That
probably does not occur much in your use cases.



That may have a little validity for beginners and small amounts of code,
but otherwise strong typing is a strength rather than a weakness.

One of the tenets of Forth is that the design breaks everything down to very
small units which are easy to see and easy to code. By virtue of their size,
they don't really need tools to find mistakes. Each module gets tested and
mistakes are found much more easily.

I've seen far too many people believe their software works because
the unit test light is green. No thought is given to whether the
tests work, whether they test all the necessary functionality,
whether there are common-mode misunderstanding in the code and
tests, whether the spec has been understood, whether the spec is right.


I recall working on a DSP design that was being a bit flaky in some regard.
A software guy came over and started to focus on a library routine they had
which performed a 16 bit read. It was essentially one line of code with a
very little bit of error checking surrounding it. The guy spend some 10
minutes staring at that code and I kept trying to explain it to him, but he
wouldn't listen. Being C code, it had to use a type cast pointer to access
memory so exactly the right strobes were generated in the hardware.

If you need strongly typed languages to prevent people like him from making
mistakes, I think the problem is you have the wrong guy programming.

C is a horribly complex language where /knowledgeable/ people
argue about what /ought/ to be the semantics of the code. C++
is worse.

To a large extent that stems from C wanting to be both a
close to the silicon and a general purpose high level
language. Either would be good, both simultaneously doesn't
work.

Forth is much simpler in that respect, which is a benefit.



A good language enables an IDE (or equivalent tool) to do rapid and
accurate code completion and code refactoring.

Eh? Are you making this complicated? Refactoring is great, but what does
the IDE have to do with it? Maybe this is something I'm just not up on? I
do know in Forth a lot of the tools are called, "the programmer".

The IDE makes it practical to, with a /large/ chunk of code,
say "change this method's name and change the name in all
places where this method is called, checking there are no
naming conflicts anywhere in the code". Ditto with a class.
The main place that can fail is where reflection is used,
but that ought to be used very sparingly.

Ditto with "extract this block of code and turn it into
a method". That one is simple with a text editor; the
others aren't.

BTW "large" means 10 of thousands of lines written by
people/projects that you don't know exist.

BTW, you can't do such refactoring /accurately/ with C/C++.


Fiddling with the language is problematic for IDEs, in the sense they will
ignore your additions.

???

Badly expressed.

Standard languages come with well developed toolsets for
browsing and inspecting and changing programs.

With a Domain Specific Language, you have to write the
tools yourself.
 
On 05/10/19 07:14, Clifford Heath wrote:
On 5/10/19 1:32 am, jlarkin@highlandsniptechnology.com wrote:
I think the average programmer has never heard of a state machine,
either.

I think you'd be totally wrong there. At least any university graduate.

Regrettably not.

I've seen some maintaining a commercial application written
in a scrotty little Domain Specific Language. The key feature
of the language was nodes and external events causing
transitions between nodes. The application domain was telecoms,
where everything is specified by FSMs.

Typical comment: "aren't FSMs something to do with compiler
parsers?"

Grrr.


Python looks OK. I should get into that one day.

If you don't like white-space as syntax, look at Ruby. It's similar, but has a
more conventional (and in fact quite beautiful) syntax. You'll find fewer
scientists use it however, and more web wannabe's.

When I glanced at that a long time ago, my it looked like
someone was trying to replicate Smalltalk in Java. But it
was only single-threaded.

Smalltalk (or Squeak) would have been a better starting
point!

But a key benefit of Python is the very varied readily
available libraries that plug and play well together.
It shares that characteristic with Java.
 
On 10/4/19 3:24 PM, John Larkin wrote:
On Fri, 4 Oct 2019 12:19:48 -0700 (PDT), jjhudak4@gmail.com wrote:

On Wednesday, October 2, 2019 at 2:02:14 PM UTC-4, bitrex wrote:
On 10/2/19 1:59 PM, bitrex wrote:
On 10/2/19 1:49 PM, John Larkin wrote:
On Tue, 1 Oct 2019 17:55:09 -0700 (PDT), George Herold
gherold@teachspin.com> wrote:

John (Larkin), You offered to send me a 'standard' NDA.  I wanted to
take you up on that.  Maybe on dropbox?  Or my email (now) is
ggherold@gmail.com

Thanks
George H.

Here is our starting-point NDA.

https://www.dropbox.com/s/b924j4e9jbbven2/NDA%20Draft%20-2%20.docx?dl=0

This has been mangled by multiple lawyers, and other companies usually
sign this, sometimes with minor revs. It's pretty much the standard
Silicon Valley NDA.

We have had some legal doings with a giant company who signed this
basic form when they needed stuff badly. They later discovered that we
take it seriously.

One trick companies will do is to sign the NDA, let you do a lot of
work for them, show them how it's done, and then do a big prior-art
search to justify stealing the designs. I could name names. About all
you can do then is walk away and concentrate on working with people
who have ethics.

It happens and unless the job is heading towards mid five figures
there's not much to do but write it off. I rarely have any work that
pays that much so far. :(

Clue: if their engineers look eager to do it themselves, they probably
will.


In the 21st century there are online avenues both for contract
work/employment and for just contracting to do tutoring/general
education. If someone seems super-eager to do it themselves then there
is no reason not to just acknowledge that and re-direct to the proper
department, they often accept.

You can charge hourly for just talking, which while perhaps not quite as
well-paid or as emotionally satisfying as designing something, is pretty
easy money. Sometimes they decide they'd rather you do something once
they fully realize it's beyond them so it turns out into being an
elongated pitch session, but you get paid for it.

PID controllers are apparently a hot area of interest and there are
software guys who will pay just to talk with someone who seems like
they've successfully implemented one.

Really??? I'll throw my hat in the ring. Successfully eh? I bet they got tripped up by the issues associated with discretization of an analog model. Yes, numbers in digital computers can and do roll over causing amusing results when integral windup all of a sudden becomes negative. Then there is always the sampling time jitter caused by numerous task scheduling and badly done scheduling analysis. Oh, we'll just throw a few digital filters at it...that just made it worse....lol yes, Nyquist criteria must be paid attention to....

There are a few fun corner cases: bumpless transfer, slew windup,
various bits saturating, nonlinearities, things like that.

The "d" part of PID is usually bad news.

In a digital system sometimes is better to use two loops, a fast inner
loop with coarser effective bit depth and a finer-grained but slower
outer loop.
 
On 10/4/19 3:19 PM, jjhudak4@gmail.com wrote:

In the 21st century there are online avenues both for contract
work/employment and for just contracting to do tutoring/general
education. If someone seems super-eager to do it themselves then there
is no reason not to just acknowledge that and re-direct to the proper
department, they often accept.

You can charge hourly for just talking, which while perhaps not quite as
well-paid or as emotionally satisfying as designing something, is pretty
easy money. Sometimes they decide they'd rather you do something once
they fully realize it's beyond them so it turns out into being an
elongated pitch session, but you get paid for it.

PID controllers are apparently a hot area of interest and there are
software guys who will pay just to talk with someone who seems like
they've successfully implemented one.

Really??? I'll throw my hat in the ring. Successfully eh? I bet they got tripped up by the issues associated with discretization of an analog model. Yes, numbers in digital computers can and do roll over causing amusing results when integral windup all of a sudden becomes negative.

that's why with e.g. C++ you write a stronger type-class for your
integrator state variable; signed integers should never roll over and
invoke undefined behavior, by design. in that kind of embedded system a
variable type that is used to represent e.g. meters is called "Meters",
not "int"
 
tabbypurr@gmail.com wrote in
news:3a13669d-0cb6-4314-8daf-b8a2eaedf48e@googlegroups.com:

On Friday, 4 October 2019 12:58:00 UTC+1,
DecadentLinux...@decadence.org wrote:
tabbypurr wrote in
news:1372fb53-bb25-4c17-9035-fd93c9824cbb@googlegroups.com:
On Friday, 4 October 2019 09:35:15 UTC+1, Martin Brown wrote:
On 04/10/2019 08:00, Rick C wrote:
On Thursday, October 3, 2019 at 11:50:18 PM UTC-4,
DecadentLinux...@decadence.org wrote:
Rick C <gnuarm.deletethisbit@gmail.com> wrote in
news:ee230361-575f-4952-b921-7568e47f02e6@googlegroups.com:

Ask Nikola Tesla. He worked for Thomas Edison.

I seem to recall that ended very badly for him, broke and
with his greatest projects in ruin. A real nut job by all
accounts.

It can be a very fine line between true genius and madness.

Tesla was some of both

And you are a lot of neither. You are simply an abject idiot.

We only have one of those here at the moment. It's you. Remaining
childishness snipped.

Nice try, putz. You lost when I chose the example.
 
On 2019-10-05 03:18, George Herold wrote:
On Friday, October 4, 2019 at 3:24:59 PM UTC-4, John Larkin wrote:
On Fri, 4 Oct 2019 12:19:48 -0700 (PDT), jjhudak4@gmail.com wrote:

On Wednesday, October 2, 2019 at 2:02:14 PM UTC-4, bitrex wrote:
On 10/2/19 1:59 PM, bitrex wrote:
On 10/2/19 1:49 PM, John Larkin wrote:
On Tue, 1 Oct 2019 17:55:09 -0700 (PDT), George Herold
gherold@teachspin.com> wrote:

John (Larkin), You offered to send me a 'standard' NDA. I wanted to
take you up on that. Maybe on dropbox? Or my email (now) is
ggherold@gmail.com

Thanks
George H.

Here is our starting-point NDA.

https://www.dropbox.com/s/b924j4e9jbbven2/NDA%20Draft%20-2%20.docx?dl=0

This has been mangled by multiple lawyers, and other companies usually
sign this, sometimes with minor revs. It's pretty much the standard
Silicon Valley NDA.

We have had some legal doings with a giant company who signed this
basic form when they needed stuff badly. They later discovered that we
take it seriously.

One trick companies will do is to sign the NDA, let you do a lot of
work for them, show them how it's done, and then do a big prior-art
search to justify stealing the designs. I could name names. About all
you can do then is walk away and concentrate on working with people
who have ethics.

It happens and unless the job is heading towards mid five figures
there's not much to do but write it off. I rarely have any work that
pays that much so far. :(

Clue: if their engineers look eager to do it themselves, they probably
will.


In the 21st century there are online avenues both for contract
work/employment and for just contracting to do tutoring/general
education. If someone seems super-eager to do it themselves then there
is no reason not to just acknowledge that and re-direct to the proper
department, they often accept.

You can charge hourly for just talking, which while perhaps not quite as
well-paid or as emotionally satisfying as designing something, is pretty
easy money. Sometimes they decide they'd rather you do something once
they fully realize it's beyond them so it turns out into being an
elongated pitch session, but you get paid for it.

PID controllers are apparently a hot area of interest and there are
software guys who will pay just to talk with someone who seems like
they've successfully implemented one.

Really??? I'll throw my hat in the ring. Successfully eh? I bet they got tripped up by the issues associated with discretization of an analog model. Yes, numbers in digital computers can and do roll over causing amusing results when integral windup all of a sudden becomes negative. Then there is always the sampling time jitter caused by numerous task scheduling and badly done scheduling analysis. Oh, we'll just throw a few digital filters at it...that just made it worse....lol yes, Nyquist criteria must be paid attention to....

There are a few fun corner cases: bumpless transfer, slew windup,
various bits saturating, nonlinearities, things like that.

The "d" part of PID is usually bad news.

Hmm where's Tim Wescott. He sorta showed me that there are times where
the D is paramount... Like the thermometers you stick in your mouth and they
give you the final temp based on the slope.

George H.

I can still hear the instructor in my controls course, now 40 years
ago, tell us repeatedly that we should 'tame' the 'D' action in a PID.
Basically that meant that is should flatten out above some frequency.
It's a good idea to tame the 'I' action too, in fact.

Jeroen Belleman
 
Jeroen Belleman <jeroen@nospam.please> wrote in
news:qn9rj8$1e42$1@gioia.aioe.org:

On 2019-10-05 03:18, George Herold wrote:
On Friday, October 4, 2019 at 3:24:59 PM UTC-4, John Larkin
wrote:
On Fri, 4 Oct 2019 12:19:48 -0700 (PDT), jjhudak4@gmail.com
wrote:

On Wednesday, October 2, 2019 at 2:02:14 PM UTC-4, bitrex
wrote:
On 10/2/19 1:59 PM, bitrex wrote:
On 10/2/19 1:49 PM, John Larkin wrote:
On Tue, 1 Oct 2019 17:55:09 -0700 (PDT), George Herold
gherold@teachspin.com> wrote:

John (Larkin), You offered to send me a 'standard' NDA. I
wanted to take you up on that. Maybe on dropbox? Or my
email (now) is ggherold@gmail.com

Thanks
George H.

Here is our starting-point NDA.

https://www.dropbox.com/s/b924j4e9jbbven2/NDA%20Draft%20-2%20
.docx?dl=0

This has been mangled by multiple lawyers, and other
companies usually sign this, sometimes with minor revs. It's
pretty much the standard Silicon Valley NDA.

We have had some legal doings with a giant company who
signed this basic form when they needed stuff badly. They
later discovered that we take it seriously.

One trick companies will do is to sign the NDA, let you do a
lot of work for them, show them how it's done, and then do a
big prior-art search to justify stealing the designs. I
could name names. About all you can do then is walk away and
concentrate on working with people who have ethics.

It happens and unless the job is heading towards mid five
figures there's not much to do but write it off. I rarely
have any work that pays that much so far. :(

Clue: if their engineers look eager to do it themselves,
they probably will.


In the 21st century there are online avenues both for
contract work/employment and for just contracting to do
tutoring/general education. If someone seems super-eager to
do it themselves then there is no reason not to just
acknowledge that and re-direct to the proper department, they
often accept.

You can charge hourly for just talking, which while perhaps
not quite as well-paid or as emotionally satisfying as
designing something, is pretty easy money. Sometimes they
decide they'd rather you do something once they fully realize
it's beyond them so it turns out into being an elongated
pitch session, but you get paid for it.

PID controllers are apparently a hot area of interest and
there are software guys who will pay just to talk with someone
who seems like they've successfully implemented one.

Really??? I'll throw my hat in the ring. Successfully eh? I
bet they got tripped up by the issues associated with
discretization of an analog model. Yes, numbers in digital
computers can and do roll over causing amusing results when
integral windup all of a sudden becomes negative. Then there
is always the sampling time jitter caused by numerous task
scheduling and badly done scheduling analysis. Oh, we'll just
throw a few digital filters at it...that just made it
worse....lol yes, Nyquist criteria must be paid attention
to....

There are a few fun corner cases: bumpless transfer, slew
windup, various bits saturating, nonlinearities, things like
that.

The "d" part of PID is usually bad news.

Hmm where's Tim Wescott. He sorta showed me that there are times
where the D is paramount... Like the thermometers you stick in
your mouth and they give you the final temp based on the slope.

George H.


I can still hear the instructor in my controls course, now 40
years ago, tell us repeatedly that we should 'tame' the 'D' action
in a PID. Basically that meant that is should flatten out above
some frequency. It's a good idea to tame the 'I' action too, in
fact.

Jeroen Belleman

Pre and post process all three and then you can morph any of them
in any way you wish. ;-)

Remember relativity compensated anode supplies for large screen
CRTs? No control loop, but still. :)
 
On Oct 2, 2019, Clifford Heath wrote
(in article <rtdlF.2983$rR2.1749@fx23.iad>):

On 3/10/19 11:38 am, Joseph Gwinn wrote:
On Oct 2, 2019, John Larkin wrote
(in article<gk3ape1kba2heg35f825r77ch91kckam0t@4ax.com>):
On Wed, 2 Oct 2019 14:02:07 -0400, bitrex<user@example.net> wrote:
On 10/2/19 1:59 PM, bitrex wrote:
[snip]
PID controllers are apparently a hot area of interest and there are
software guys who will pay just to talk with someone who seems like
they've successfully implemented one.
Nobody teaches control theory in college any more? I guess the
software guys don't learn things like that. I'm not sure what they do
learn.

War story: I´m an EE who went into realtime programming. When I went to add
a degree in Computer Science (this is circa 1980 - the field had just been
invented,

If by "just" you mean in the previous two decades...

Mind you, it was apparent that the term "software engineering" was new
and the professors were scrabbling to find material to make up a course.
Most of what we were taught in SW Eng was introductory systems eng, in
fact. As far as I can tell they hadn't figured out what it meant to
engineer software yet, and this was at a top-50-globally CS dept.

I went to Johns Hopkins University for both degrees.

They stood the new CS department up as a kind of applied math. The EEs took
computer design or the like instead. But these EEs were mostly digits, and
knew little of analog electronics.

.
and there were things I wanted to learn), there was a
Servomechanisms course offered, but was not listed as an allowed
distribution-requirement course for CS.

So I went to the Dean, and asked him to authorize this course, pointing out
that Servomechanisms was not exactly Basketweaving. He laughed, and signed.
It was a very good, and useful, course.

I finished my CS degree in 1979, when CS was still part of the Maths
dept, so I studied math and quantum physics through 2nd year. Funnily
enough I also arranged an exemption to earn credit from an EE unit in
digital sequential logic design. That involved getting the EE and CS
departments to talk for the first time - they've been merged for a
couple of decades now.

BSEE - 1969, MSCS - 1981.

.
More seriously, no Computer Science graduate not also having an EE or
Physics background (including Linear Systems) would have survived that
Servomechanisms course.
I daresay I was one of the few with enough calculus to have done control
theory (though I wouldn't have done very well) but there were still
some. It might have been different in the USA, or just at your
university. I tried to persuade my (now 29yo) son to find a control
theory course as part of his double degrees in Math and CS, but it
wasn't available in either CS or Math (though CS is now in the Eng
faculty, CS folk don't do it). Control Theory was far too "applied" for
the snooty Math folk to care about.

Yeah, JHU had the snooty math department - only pure math, and may it never
have any application. And one of their young hires retaliated by founding the
department of applied math. He had his students over for an academic tea at
his newly purchased house, which had a stone exterior. And there he was with
a big Bosch hammer drill, boring holes through solid sandstone to run
electric wires. I didn´t think that real mathematicians did such
things.

Joe Gwinn
 
On 03/10/2019 00:38, Michael Kellett wrote:
On 02/10/2019 01:55, George Herold wrote:
John (Larkin), You offered to send me a 'standard' NDA.  I wanted to
take you up on that.  Maybe on dropbox?  Or my email (now) is
ggherold@gmail.com

Thanks
George H.

I've seen NDAs from large organisations that are anything from fair and
reasonable to completely daft.
Most seem to include conditions that are broken almost immediately or
are unenforceable.
I've never heard of successful action under an NDA except when backed up
by huge amounts of cash for litigation.
Things to watch out for:

expiry - should be a time limit and a "when it gets in the public domain"
mutual - it should cover both parties (unless v. good reason not to)
reason - certainly under UK law it seems necessary to set out a reason
for it's existence.

also watch out for the ones that require you to "indemnify" your client
in case they get sued later on.
 
On Oct 4, 2019, Tom Gardner wrote
(in article <s3KlF.854468$yH4.163482@fx18.am4>):

On 04/10/19 16:32, jlarkin@highlandsniptechnology.com wrote:
I think the average programmer has never heard of a state machine,
either.

Someone maintaining FSMs in a telecom application: "Aren't FSMs
something in a compiler's parsers?" Grrr.

Well, there are (software) FSMs in compilers, typical to implement the
tokenizer function that takes the entered chapter string (of a line of code)
and chops it up into a string of symbols (which can be variable names, math
functions, punctuation, et al). All spaces and comments are elided in the
process. The result is fed to the language parser, which figures out what is
being commanded. The language parser is typically a pushdown
automaton<https://en.wikipedia.org/wiki/Pushdown_automaton> with some turing
machine exceptions<https://en.wikipedia.org/wiki/Turing_machine>.
Joe Gwinn -- who ran a compiler group 20 years ago
 
On 05/10/2019 02:10, Rick C wrote:
On Friday, October 4, 2019 at 8:14:10 PM UTC-4, tabb...@gmail.com
wrote:
On Friday, 4 October 2019 20:27:21 UTC+1, Rick C wrote:
On Friday, October 4, 2019 at 4:19:24 AM UTC-4, tabby wrote:
On Friday, 4 October 2019 03:51:36 UTC+1, Rick C wrote:
On Thursday, October 3, 2019 at 9:24:19 PM UTC-4, tabby
wrote:
On Thursday, 3 October 2019 20:21:53 UTC+1, John Larkin
wrote:

It's hard to see how any engineer (or politician) can
function without some basic instincts for control theory.
I see people having crazy ideas of causality all the
time. They have no notion of what feedback can do.

Do something. Things get worse. So do more of it.

The day politicians understand what they're screwing with
will be a very different world.

You do understand that politicians are created by the voters,
no?

It's not that simple. Political views & policies are the result
of idea development by both politicians and non-politicians,
often more than one source & stage of input there.

It is *exactly* that simple because the politicians are selected
by the voters. So no one has anyone to blame but themselves for
voting without thinking.

Here the most common problem is that there's too little choice, no
good ones. It's not an option to vote for someone that's got it
figured out.

You seem to be talking about shrink wrapped politicians. There are
always choices. Even if no one has it figured out at that time, you
should be able to find someone you trust to not screw you in the
process.

If not, keep looking. It's not like looking for socks at Costco.

Only because there is actually a real choice to be made in Costco.

In many perhaps as much as two thirds of the constituencies a moron
wearing the right coloured rosette could get elected because of the
intrinsic population bias. Shire counties and stock broker belt will
elect Tories every time and inner cities and industrial zones will elect
Labour Party every time. The whole game hinges on a few marginal
constituencies where a few percent swing in voting makes a difference.

The only times when this has varied significantly were in 1979 when
Thatcher swept to power after a totally inept Labour government and 1997
when Tony Blair swept to power after a disastrous Tory government
(Labour having been out of office for so long in the interim that they
had to be given lessons on how to run a state prior to the election).

All I can do in my constituency is try to prevent one of the candidates
from losing their deposit. It is one of the safest seats in the country
(which means we get someone parachuted in who is potential PM material).
The Tories have held it continuously since 1910.

It's like a twilight story where the person gets three wishes
from the genie and each one turns out poorly because he
didn't think it through. Then people want to blame the
genie.

So when you badmouth politicians, you are badmouthing
yourself.

Get real!

You should. Blaming me or any one nonpolitician for all
politicians' shenanigans is beyond silly.

Not just you, all voters. That's what a democracy is, run by the
voters.

It's what democracy originally meant. No country runs that type of
democracy today.

You can say we vote for someone else to do the job, but that's
like saying you couldn't do anything about the crappy way your
lawn mowing service mows your lawn. YOU selected them and YOU
keep selecting the same ones.

... in a situation where there are only 2 or 3 lawn mowing
services, they're all crap and it's completely impossible to do the
job yourself, and it absolutely has to be done. Only then would the
comparison be more valid.

You seem to be expecting someone to hand you the perfect candidate.
You need to be involved and select the candidates before they run.

There is nothing wrong with the candidate. I have met him and he has
taken up issues that I raised regarding listed buildings. He is a
perfectly good guy (and his predecessor was brilliant). However, the
Tory Party is presently in meltdown and pandering to the lowest common
denominator of populist demagoguery. We have our own Trump now :(

That's why the crap candidates run the show, they are in the business
and they know they don't need to worry about 99% of the voters. They
can manipulate most of them by advertising. LOL As if they were
selling vacuum cleaners.

Most of the MP's I have met (and admittedly they are self selected as
being interested in science or my constituency MP) have been perfectly
good as individuals and politicians.

You are part of the problem by being manipulated by their ads and
what shows up in the news. Most of the news, while not actually
fake, caters to the prurient interests of politics. Who said what
extreme thing about what group of people and who is calling whom out
over what. It's like watching girls in a cat fight.

We are watching a slow motion Brexit train wreck in the UK at the
moment. It really isn't clear how it will end other than badly.

Your argument is just a way of avoiding responsibility for being
a CRAPPY VOTER and not doing YOUR JOB!

I do my job. I of course do not control the result.

Your job is more than voting.

We don't get to alter the boundaries of constituencies.

A major problem generally with politicians is that too often
they don't really understand what they're making policies on.

LOL! But we keep electing the same ignoramuses?

Yep. And we know why.

It's not as if any person can be expert in all things anyway. And
in practice, political teams can't be experts in most things. The
resulting damage should be unsurprising.

There are plenty of resources available that can educate you and set
the record straight. You have to be willing to spend some time to
get educated and not believe all the crap that is spread widely.

Enough. I'm pretty sure you choose to not be informed and blame it
all on "the system".

It is all very well being well informed but in a first past the post
electoral system you can get some wild outcomes. Clear majorities and
landslide victories are the norm in the UK and so we are really
struggling now with a government that doesn't even have a simple
majority and is incapable of compromise or reasoned argument.

It can't even get itself thrown out of power since the opposition refuse
to vote for an election until after 31/10. We in in something which is
more like Alice Through the Looking Glass with the Red Queen as PM.

--
Regards,
Martin Brown
 
On Saturday, 5 October 2019 07:40:21 UTC+1, Rick C wrote:
On Saturday, October 5, 2019 at 2:01:38 AM UTC-4, tabby wrote:
On Saturday, 5 October 2019 02:13:21 UTC+1, Rick C wrote:
On Friday, October 4, 2019 at 8:20:11 PM UTC-4, tabby wrote:
On Friday, 4 October 2019 20:36:11 UTC+1, Rick C wrote:
On Friday, October 4, 2019 at 4:31:39 AM UTC-4, Martin Brown wrote:
On 04/10/2019 03:51, Rick C wrote:
On Thursday, October 3, 2019 at 9:24:19 PM UTC-4, tabby wrote:
On Thursday, 3 October 2019 20:21:53 UTC+1, John Larkin wrote:

For every complex problem there is an obvious simple *WRONG* answer.

This isn't about an issue. This is about selecting politicians who have a history of proper guidance. But the same rules apply. Because people don't want to be bothered with thinking, they let the politicians use advertising to promote "messages" that make us feel good or bad (depending on whether they are talking about themselves or others). We govern our governors by our feelings, not our heads.

Heh. I'm curious where you imagine you're going to find a political party in Britain that knows what it's doing, and is doing something constructive.

Screw Britain. We have our own problems here. Beside, in 20 years I'm told you will be the single biggest polluter on the planet in no small part because you are incapable of using EVs. We will have to nuke the UK to save the rest of the planet.

So you're not able to recommend any politician in Britain that's acting construstively or even knows what they're doing. That was predictable.

Why should I pay any more attention to British politics than the Brits?

I guess that's one way to confirm what I said.
We're done really.
 
On Sat, 5 Oct 2019 23:42:10 +1000, Chris Jones
<lugnut808@spam.yahoo.com> wrote:

On 03/10/2019 00:38, Michael Kellett wrote:
On 02/10/2019 01:55, George Herold wrote:
John (Larkin), You offered to send me a 'standard' NDA.  I wanted to
take you up on that.  Maybe on dropbox?  Or my email (now) is
ggherold@gmail.com

Thanks
George H.

I've seen NDAs from large organisations that are anything from fair and
reasonable to completely daft.
Most seem to include conditions that are broken almost immediately or
are unenforceable.
I've never heard of successful action under an NDA except when backed up
by huge amounts of cash for litigation.
Things to watch out for:

expiry - should be a time limit and a "when it gets in the public domain"
mutual - it should cover both parties (unless v. good reason not to)
reason - certainly under UK law it seems necessary to set out a reason
for it's existence.

also watch out for the ones that require you to "indemnify" your client
in case they get sued later on.

Some people who do potentially dangerous medical products, that we
make little subassemblies for, want US to indemnify THEM.



--

John Larkin Highland Technology, Inc

lunatic fringe electronics
 
On Wed, 2 Oct 2019 15:38:33 +0100, Michael Kellett <mk@mkesc.co.uk>
wrote:

On 02/10/2019 01:55, George Herold wrote:
John (Larkin), You offered to send me a 'standard' NDA. I wanted to take you up on that. Maybe on dropbox? Or my email (now) is ggherold@gmail.com

Thanks
George H.

I've seen NDAs from large organisations that are anything from fair and
reasonable to completely daft.

I was presented a "we own you" consulting agreement by a big New York
power utility. It was insane and I refused to sign. Their attitude
seemed to be "oh well, we tried..."

Most seem to include conditions that are broken almost immediately or
are unenforceable.
I've never heard of successful action under an NDA except when backed up
by huge amounts of cash for litigation.

We recently spent over $100K on attorneys to convince BigCorp that we
take our NDAs seriously.



--

John Larkin Highland Technology, Inc

lunatic fringe electronics
 
On 05/10/19 14:49, Joseph Gwinn wrote:
On Oct 4, 2019, Tom Gardner wrote
(in article <s3KlF.854468$yH4.163482@fx18.am4>):

On 04/10/19 16:32, jlarkin@highlandsniptechnology.com wrote:
I think the average programmer has never heard of a state machine,
either.

Someone maintaining FSMs in a telecom application: "Aren't FSMs
something in a compiler's parsers?" Grrr.

Well, there are (software) FSMs in compilers, typical to implement the
tokenizer function that takes the entered chapter string (of a line of code)
and chops it up into a string of symbols (which can be variable names, math
functions, punctuation, et al). All spaces and comments are elided in the
process. The result is fed to the language parser, which figures out what is
being commanded. The language parser is typically a pushdown
automaton<https://en.wikipedia.org/wiki/Pushdown_automaton> with some turing
machine exceptions<https://en.wikipedia.org/wiki/Turing_machine>.
Joe Gwinn -- who ran a compiler group 20 years ago

Of course. Even I, as someone who has always had /negative/
interest in compilers, know that :)

The problem is their not being aware of any /other/ use.

As I noted in a separate post, their job was to implement
telecom software in a DSL where the principle features
were "nodes" and "jumping" to other nodes when an event
arrived.

(Telecom systems are specified in terms of FSMs and events)
 
Martin Brown <'''newspam'''@nezumi.demon.co.uk> wrote in news:qnad62
$1udj$1@gioia.aioe.org:

> We have our own Trump now :(

Never thought I would be able to say this, but yours is uglier too.
And he thinks he isn't!

Ours is 100% mindless buffoon and

yours is experienced but 100% obstinate.

We are lucky that two such dopes muddling through the free world
will not bring it down or we would all be speaking Chinese (or
Russian) not long hence.

But they linger in his ouster... I hope he drags all the zero
integrity jerks down with him.

Karma is a bitch, boys. It's balls to the wall. Where's my CAT
D11 at? I want to crush those balls with a nice, nice New Jersey
barrier block.
 
On Fri, 4 Oct 2019 23:38:57 +0100, Tom Gardner
<spamjunk@blueyonder.co.uk> wrote:

On 04/10/19 21:39, John Larkin wrote:
On Fri, 4 Oct 2019 17:03:35 +0100, Tom Gardner
spamjunk@blueyonder.co.uk> wrote:

On 04/10/19 16:32, jlarkin@highlandsniptechnology.com wrote:
I think the average programmer has never heard of a state machine,
either.

Someone maintaining FSMs in a telecom application: "Aren't FSMs
something in a compiler's parsers?" Grrr.


I don't like compilers in general. All my production code was in
assembler.

The language is key; some make compilation easy and
predictable without rolling in the mud with language
lawyers. Other languages don't.


Python looks OK. I should get into that one day.

Cut and paste some code and get the indentation subtly
wrong. In Python there can be no option to "reformat and
pretty print this arbitrary blob of code".

The indentation thing is really bizarre. What's wrong with END IF and
NEXT? I suppose I could add my own as comments.

I suspect, without knowledge, that it is derived from the
same mentality that thinks strongly typed languages require
too much boring typing and stop people from changing their
code quickly.

I understand that a named Python variable is a pointer to anything,
and can be reaimed at anything. So it's about the weakest typed
language imaginable.

That may have a little validity for beginners and small
amounts of code, but otherwise strong typing is a strength
rather than a weakness.

A good language enables an IDE (or equivalent tool) to do
rapid and accurate code completion and code refactoring.

It's usually an interpreter too, no?



--

John Larkin Highland Technology, Inc

lunatic fringe electronics
 
On Saturday, October 5, 2019 at 11:34:33 AM UTC-4, Martin Brown wrote:
On 05/10/2019 02:10, Rick C wrote:
On Friday, October 4, 2019 at 8:14:10 PM UTC-4, tabb...@gmail.com
wrote:
On Friday, 4 October 2019 20:27:21 UTC+1, Rick C wrote:
On Friday, October 4, 2019 at 4:19:24 AM UTC-4, tabby wrote:
On Friday, 4 October 2019 03:51:36 UTC+1, Rick C wrote:
On Thursday, October 3, 2019 at 9:24:19 PM UTC-4, tabby
wrote:
On Thursday, 3 October 2019 20:21:53 UTC+1, John Larkin
wrote:

It's hard to see how any engineer (or politician) can
function without some basic instincts for control theory.
I see people having crazy ideas of causality all the
time. They have no notion of what feedback can do.

Do something. Things get worse. So do more of it.

The day politicians understand what they're screwing with
will be a very different world.

You do understand that politicians are created by the voters,
no?

It's not that simple. Political views & policies are the result
of idea development by both politicians and non-politicians,
often more than one source & stage of input there.

It is *exactly* that simple because the politicians are selected
by the voters. So no one has anyone to blame but themselves for
voting without thinking.

Here the most common problem is that there's too little choice, no
good ones. It's not an option to vote for someone that's got it
figured out.

You seem to be talking about shrink wrapped politicians. There are
always choices. Even if no one has it figured out at that time, you
should be able to find someone you trust to not screw you in the
process.

If not, keep looking. It's not like looking for socks at Costco.

Only because there is actually a real choice to be made in Costco.

In many perhaps as much as two thirds of the constituencies a moron
wearing the right coloured rosette could get elected because of the
intrinsic population bias. Shire counties and stock broker belt will
elect Tories every time and inner cities and industrial zones will elect
Labour Party every time. The whole game hinges on a few marginal
constituencies where a few percent swing in voting makes a difference.

The only times when this has varied significantly were in 1979 when
Thatcher swept to power after a totally inept Labour government and 1997
when Tony Blair swept to power after a disastrous Tory government
(Labour having been out of office for so long in the interim that they
had to be given lessons on how to run a state prior to the election).

All I can do in my constituency is try to prevent one of the candidates
from losing their deposit. It is one of the safest seats in the country
(which means we get someone parachuted in who is potential PM material).
The Tories have held it continuously since 1910.

Now you are not complaining about the lack of candidates, you are complaining about the inability to get your candidate elected.


It's like a twilight story where the person gets three wishes
from the genie and each one turns out poorly because he
didn't think it through. Then people want to blame the
genie.

So when you badmouth politicians, you are badmouthing
yourself.

Get real!

You should. Blaming me or any one nonpolitician for all
politicians' shenanigans is beyond silly.

Not just you, all voters. That's what a democracy is, run by the
voters.

It's what democracy originally meant. No country runs that type of
democracy today.

You can say we vote for someone else to do the job, but that's
like saying you couldn't do anything about the crappy way your
lawn mowing service mows your lawn. YOU selected them and YOU
keep selecting the same ones.

... in a situation where there are only 2 or 3 lawn mowing
services, they're all crap and it's completely impossible to do the
job yourself, and it absolutely has to be done. Only then would the
comparison be more valid.

You seem to be expecting someone to hand you the perfect candidate.
You need to be involved and select the candidates before they run.

There is nothing wrong with the candidate. I have met him and he has
taken up issues that I raised regarding listed buildings. He is a
perfectly good guy (and his predecessor was brilliant). However, the
Tory Party is presently in meltdown and pandering to the lowest common
denominator of populist demagoguery. We have our own Trump now :(

Again, the discussion has shifted. It was about how there are no good politicians to vote for, not it is how your local elections won't elect the "good" candidates.


That's why the crap candidates run the show, they are in the business
and they know they don't need to worry about 99% of the voters. They
can manipulate most of them by advertising. LOL As if they were
selling vacuum cleaners.

Most of the MP's I have met (and admittedly they are self selected as
being interested in science or my constituency MP) have been perfectly
good as individuals and politicians.

So where is the problem?


You are part of the problem by being manipulated by their ads and
what shows up in the news. Most of the news, while not actually
fake, caters to the prurient interests of politics. Who said what
extreme thing about what group of people and who is calling whom out
over what. It's like watching girls in a cat fight.

We are watching a slow motion Brexit train wreck in the UK at the
moment. It really isn't clear how it will end other than badly.

Not the same thing. I'm talking about the reporting and you are now talking about the cat fight they are reporting on.


Your argument is just a way of avoiding responsibility for being
a CRAPPY VOTER and not doing YOUR JOB!

I do my job. I of course do not control the result.

Your job is more than voting.

We don't get to alter the boundaries of constituencies.

A major problem generally with politicians is that too often
they don't really understand what they're making policies on.

LOL! But we keep electing the same ignoramuses?

Yep. And we know why.

It's not as if any person can be expert in all things anyway. And
in practice, political teams can't be experts in most things. The
resulting damage should be unsurprising.

There are plenty of resources available that can educate you and set
the record straight. You have to be willing to spend some time to
get educated and not believe all the crap that is spread widely.

Enough. I'm pretty sure you choose to not be informed and blame it
all on "the system".

It is all very well being well informed but in a first past the post
electoral system you can get some wild outcomes. Clear majorities and
landslide victories are the norm in the UK and so we are really
struggling now with a government that doesn't even have a simple
majority and is incapable of compromise or reasoned argument.

It can't even get itself thrown out of power since the opposition refuse
to vote for an election until after 31/10. We in in something which is
more like Alice Through the Looking Glass with the Red Queen as PM.

Well, at least you don't have... well, something that would be worse.

--

Rick C.

++-+ Get 2,000 miles of free Supercharging
++-+ Tesla referral code - https://ts.la/richard11209
 

Welcome to EDABoard.com

Sponsor

Back
Top