'standard' NDA

Oct 02, 2019 160 Replies

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.

It's usually an interpreter too, no?

John Larkin Highland Technology, Inc lunatic fringe electronics

Computational complexity is another CS invention and helps to solve business problems in time for the result to be useful.

When I tried casting out nines I made a hash of it.

A defense plant in Cincinnati, Ohio wanted the production and test personnel to sign a NDA back in the '70s that claimed ownership of any idea or design for a full ten years from the date that your employment ended. We just tossed them into the trash.

Some of us joked about building flying saucers in our home shops, so the joke at work was, 'Let them try to catch us, once they are flyable'. :)

So, no one else in the world would have ever thought of using AC at any time?

solved by Otis.

Early elevators were DC powered. I was in Fairbanks, Alaska in the early '7

0s. They were tearing down an old hotel with one. The huge motor was in the basement. Rather than remove it, it was covered in cement. It was over 12 feet in diameter and about 20 feet long. An AC motor would have had more st arting torque, without being so large. An Army buddy of mine came from a fa mily in Chicago that owned a large gem business. They had AC brought in sev eral miles into an old part of town that was still DC powered, because no o ne still built DC systems when they wanted to add an elevator to their buil ding.

Also, long distance power distribution systems are often built, using HV DC .

On Oct 5, 2019, Michael Terrell wrote (in article):

The problem was that nobody knew how to build a motor that worked on AC.

first.

Joe Gwinn

I've only dabbled with Python, but I expect the variable is untyped but the data is strongly typed. Hence a variable can "contain" anything, but there's no way you could cast aCamel to aCar.

Not an interpreter; execution is an improper thought in this context.

Yes, it fully parses and tokenises (and I don't know what else!) the source code.

That cannot work reliably where macros are concerned, nor reflection, nor when interning external serialised classes or the equivalent.

They are not mythical; including them happens in /every/ non-trivial application I've been involved with.

Examples: the interface to an ETSI Parlay "bus", the widgets in a GUI interface, image manipulation, high-availability distributed in-memory caches, various abstractions of ACID databases.

Those examples are unlikely to be seen in a standalone embedded application, and that may be the source of your myopia.

The documentation is necessary, but when an application contains many large complex subsystems developed by many different companies, brainpower isn't sufficient.

Forth is simple and orthogonal, without lots of strange history that enables *experienced* people to discuss what they think *ought* to happen. Yes, C, I'm looking at you.

Namespaces/classes preclude that simplistic technique.

I need to be able to rename a Person.fire() method to Person.dismiss(), and change all invocations of that method to the new name. Invocations of Missile.fire() must not be changed.

All the libraries I've used have been written by people/projects I didn't know existed. Why should I; all I care about is the library!

Simple text editors are universal. Modern toolsets do far more than that. Welcome to the late 80s / early 90s.

It always had threads (with a GIL), but its thread support was weaker than it is now. There are fundamental conflicts between support for closures, threads, and generational GC that have made it very hard to get rid of the GIL. However if you use the JRuby runtime, it's as parallel as any JVM language. And it has Fibers as well if you need something lighter-weight.

Same for Ruby, but the focus is tipped a little further away from scientific computing than Python. .

Clifford Heath.

ng

n my

ly

been

eed

ode,

t a

our

I describe my work and that makes me myoptic? You introduced a obstacle in to my description and that is what makes it mythical.

You are free to work with anything and discuss anything you want. Please l eave me out of it if you can't do it without being insulting.

use

e

you

That doesn't answer the question. The path to working code is to plan and document. Even if the planning is done while you code, everything has to b e documented and checked for consistency. Strong typing has little to do w ith that. Strong typing finds errors in performing wrong operations on a g iven data type or treating one data type as another inappropriately. I bel ieve a great example of how limited this type of check is would be the dest ruction of an Ariane rocket. Code was ported from a previous design but wa s not fully analyzed to suit the new environment. A data type conversion r esulted in an overflow and disaster.

Better analysis and documentation would have prevented this disaster.

to

f

le

unit

ether

de

ne

to

se a

out

d,

t up

r".

ge

is

Ditto

, but

do

If

s the

Where is the problem exactly???

t one

or it,

that

I

Where is the problem?

y

res in

just

code

t

s used

And yet people can be uniquely productive without such toolsets.

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

Reread what you wrote.

In one application I designed there is no way to avoid, for example, including the interface to an ETSI Parlay bus or an high-availability in-memory distributed cache.

Both were made by different companies, one with less than stellar documentation.

Not always. Frequently in large software systems you work with what you have got and/or are given.

The same is true with hardware systems.

Strawman argument: validation/verification is a different topic and nobody has argued that strong typing is sufficient.

A text editor cannot correctly determine whether x.fire() should or should not be changed to x.dismiss().

Neither can a text editor tell you whether there would or wouldn't be a naming clash with Widget.dismiss().

People can be uniquely productive with handsaws. In most cases a powered saw is advantageous.

Yeahbut... Most desktops and above have multiple cores, but only allowing a single thread to execute at a time means it can't take advantage of them. That's boring!

Possibly in Python, but all that is possible and practical in Java.

It shows my ignorance, but I thought Ruby ran on the JVM. I guess that JRuby is a subtly different language.

Multithreading is something that can be (and is) overused when a thread is mapped onto an o/s process. Fibres probably help, but I've found ways of recasting my solutions to avoid it. Short form: one "worker thread" per core, which take objects from a queue and "execute" them.

Life is too short to become proficient in /all/ interesting languages :(

While 110 Vdc generation, transmission and distribution is extremely short range, motor-generators are not that bad as someone would like to believe. Motor generators have been used for AC/DC conversion, AC frequency changing as well as high/low voltage DC conversion.

If I understood correctly, every 10-20th floor in a skyscraper is a technical floor for air conditioning etc. A motor generator would have to be installed in each technical floor converting (say 3 kV) DC to feed 110 Vdc.

For long distance HVDC transmission of more than 100 km at more than

100 kVdc line voltages were used. With several insulated DC generators in series, such voltages were possible. some individual generators used double commutators to generating more than 10 kVdc in each stage

Why did Tesla use a two phase (90 degree), instead a three phase (120 degree) system in Niagara falls transmission ?

Both two as well as three phases can be used to reliably start an induction motor.

The two phase system requires 4 wires (or three wires with a fat neutral), while a three phase needs only needs three wires (no neutral) and can deliver at least as much power as the 4 wires in a two phase system ?

... and in JRuby and Rubinius implementations of Ruby.

Ruby has multiple implementations that conform to the same test suite. The suite is not exhaustive, but you have to look pretty hard to find the substantial number of tiny differences.

Matz' original Ruby is called MRI (still has a GIL), and there's Rubinius (aka rbx), and JRuby which can both use multiple cores. There are less widely-used implementations also, and many experiments with evolutionary paths that Ruby might take (c.f. Crystal, which introduces gradual typing for method signatures).

The JVM suffers from slower startup, but once running it's faster than the others.

Clifford Heath.

Ah, the wonders of HotSpot :)

Joseph Gwinn wrote in news: snipped-for-privacy@news.giganews.com:

He saw it all in his head before he even began starting to make laboratory proofs. Very quickly advanced into the real thing as a result.

I like the idea of being smart enough to perform 'tissue' based prototyping.

The tissues of my mind...

wanted to

now) is

x?dl=0

ually

rd

s

at we

of

rt

all

le

at

bably

here

per

ite as

pretty

nce

y got tripped up by the issues associated with discretization of an analog model. Yes, numbers in digital computers can and do roll over causing amus ing results when integral windup all of a sudden becomes negative. Then th ere is always the sampling time jitter caused by numerous task scheduling a nd badly done scheduling analysis. Oh, we'll just throw a few digital filte rs at it...that just made it worse....lol yes, Nyquist criteria must be pa id attention to....

hey

The D is mostly useful when you have a slow second-order plant, such as a c urrent-controlled motor. Angular acceleration is roughly proportional to c urrent, so a bit of D can help a lot. In more complicated situations such as thermal control, the phase shift increases without bound with frequency, so adding D makes things worse rather than better.

Cheers

Phil Hobbs

I wanted to

(now) is

ocx?dl=0

usually

dard

his

that we

t of

-art

ut all

ople

s

that

robably

there

roper

quite as

s pretty

once

n
e
e

hey got tripped up by the issues associated with discretization of an analo g model. Yes, numbers in digital computers can and do roll over causing am using 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 fil ters at it...that just made it worse....lol yes, Nyquist criteria must be paid attention to....

they

current-controlled motor. Angular acceleration is roughly proportional to current, so a bit of D can help a lot.

Thanks, As usual I shake my head yes, but I think I'd have to build something for it to have real meaning. About a year ago my son was asking about control loops for his quad copter.. I pleaded ignorance of motors. He has joined the rocketry club at college and is helping them build drones... so maybe he can teach me about it. :^)

Tim W. made that video with a motor and blade on a balanced stick... I should go watch that again. George H.

In more complicated situations such as thermal control, the phase shift inc reases without bound with frequency, so adding D makes things worse rather than better.

? I wanted to

il (now) is

.docx?dl=0

s usually

andard

this

d that we

lot of

or-art

bout all

people

res

k that

probably

l

en there

proper

t quite as

is pretty

ng once

an

are

ike

they got tripped up by the issues associated with discretization of an ana log model. Yes, numbers in digital computers can and do roll over causing amusing results when integral windup all of a sudden becomes negative. The n there is always the sampling time jitter caused by numerous task scheduli ng and badly done scheduling analysis. Oh, we'll just throw a few digital f ilters at it...that just made it worse....lol yes, Nyquist criteria must b e paid attention to....

re

nd they

a current-controlled motor. Angular acceleration is roughly proportional to current, so a bit of D can help a lot.

ncreases without bound with frequency, so adding D makes things worse rathe r than better.

Hmmm I would not say that derivative control is 'bad'. It depends on plant characteristics. From a purely mathematical perspective slow systems (those with a fair amount of inertia (relatively) can benefit from a small amount of derivative action. PID controllers are, in general, used a lot when plant dynamics are not known, e.g. a good math model. They can be adjusted in the field to more easily address real world issues: e.g, inertia, windage, friction,weight. There have been lots of papers written about approaches to tune PID loops, automated and adaptive PID tuners, etc.

In reality, noise coupled into a system can create instability largely due to too much derivative action (roughly speaking remember the derivative of a step function is a Dirac delta function and in practical terms is infinity. It all depends on how the digital implementation of the derivative function). A good control engineer has a grasp of the mathematical foundations (all ba sed on math and physics) as well as the coding/implementation aspects as well as the practicalities of the real world implementations. Complications arise when there are nested loops and tuning is affected due to interactions of the loops. After all, i t IS a 'system' thing....

I believe the example you described is known as the 'inverted pendulum'. (Made by Quanser) It is a common control lab hardware used in many universities both for doing classical control theory as well as state space approaches to control. There are some interesting you tube vids around it. J

efficiency is not as good.

Really? 10 floors is circa 100 feet or 30m. If we're just talking about what is actually needed in order to have a skyscraper, a 110v 30A peak service with priority switching would be livable with, plus a 220v feed for some loads. Mean consumption here (uk) is in the region of 1kW per flat or 9A. For a random example of 10 flats per floor, thats 90A mean 300A peak, with a transmission distance of 5 floors.

1mm2 cable drops 44mV/m at 1A, or 300x44mV= 13.2v/m at 300A and has ampacity of 16A with 70C rated insulation. Over 15m that's 198v drop for 1mm2. To get Vdrop down to 5% of 110v = 5.5v would thus require 198/5.5= 36mm2 copper cable, perfectly practical. Ampacity of 70C insulated 36mm2 = apx 576A continuous, so no problem there. 110v x 10 x 30A = 33kVA peak, so a fairly chunky motorgenerator, but entirely doable. I've not yet taken into account tapchanging, which can be done with motor generator outputs. Use that and you can have near flats on 110v +5%, far flats on 110v -5%, thus doubling the distance doable with the same amount of copper. And there are other methods usable to stretch a system's ability further such as use of split phase dc distribution, linking adjacent dc nets etc.

Conclusion: A huge skyscraper could be fed with 110v dc practically. Yes we have better options today, but the point is that dc does not prevent the use of skyscrapers, and never has.

NT

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required