not OT : fear...

On 8/1/2022 9:26 AM, rbowman wrote:
On 08/01/2022 03:06 AM, Don Y wrote:
On 8/1/2022 1:51 AM, Don Y wrote:

You have to \"declare\" a \"course\" (their name for a \"major\") in your
freshman year. Prior to that, everyone is taking the standard
engineering

s.b. \"END of freshman year\"

RPI\'s core was two years. For example we used Resnick & Halliday for physics
(Not that Robert Resnick being a RPI professor had anything to do with it). By
the spring of the sophomore year you got to the juicy stuff, quantum. The final
two years often revisited the core curriculum in more depth. Thermodynamics,
electromagnetic theory, strength of materials, and so forth weren\'t strangers,
although they did tend to separate the sheep from the goats.

Too many years ago for me to remember which *classes* (\"courses\" meaning
something else) were:
- required for all
- required for EE
- required for specific \"subflavor\" of EE

But, I recall a normal load was ~60 units -- a \"real\" class being typically
12 (unit = hour of work per week) or roughly 5 classes/semester. I recall
72 units of \"humanities\" req\'d to graduate (though no real constraints on
what you took). So, that\'s a bit over a semester of \"required fluff\"
(non-engineering courses). And, some number of phys ed classes (I can still
feel the pain in my feet from Maggie\'s class -- Christ!).

I know two semesters of Calculus (Thomas), two of Fyzix (H&R), some common
EE classes (for the EE core), abstract algebra, diffeq\'s, probabilistic
systems analysis, some sort of material science class, AI (Winston),
digital lab (Lee), advanced algorithms, compiler design, etc. There were
also requirements for \"labs\" (I recall designing/building a CDI and a
two-player version of BreakOut, among other things)

Not much leeway in terms of what you could take that wasn\'t somehow tied
to a requirement (school-wide, department-wide or course-wide).

Except, of course, for the humanities and phys ed stuff. (actually, one of
my most memorable classes was an Amer Hist class taught by an economics
professor -- put an entirely different spin on all of the Amer Hist I\'d
learned in primary school! Another was something like \"The social and
economic consequences of computers\" -- not something you\'d typically expect
engineering to be concerned with!)

What you took, and when, was something that you sorted out based on
what you\'d personally got behind you and *when* they were offered
(some weren\'t offered in Fall; some not offered in Spring).
 
On 8/1/2022 9:12 AM, rbowman wrote:
On 08/01/2022 02:51 AM, Don Y wrote:
It\'s nice to see my education was prescient and not obsolete the day the
degree
was awarded! (pity the folks taught about *today\'s* technology and
wonder how
they\'ll forever be playing catch-up)

One of my senior projects was a thought experiment to design an automated
library retrieval system. We were thinking in terms of microfiche in concrete
terms but the media was TBD. About 40 years later when the library installed
their new system to spit out your desired DVD it was somehow familiar.

Like aircraft designers waiting for lightweight IC engines the seeds were there
waiting for the technology to develop. There were dead-ends like bit slice
processors or bubble memory but eventually we got there.

Bubble was a foregone conclusion -- too many advances in semiconductor
memory already appearing on the market by that time (core being the
established medium).

Bit slice imposed too much of a structure on the processor you were
implementing. I used many of those concepts in my designs (Mick&Brick)
but so many application specific instructions that didn\'t lend themselves
easily to that sort of architecture (e.g., serial multipliers, etc.)

What I most lament is the loss of variety in processor designs of that
era. In 6.3, you studied different processor architectures and implementations
with an eye towards the advantages they afforded to the hosted code. You\'d
need to understand the role of a TLB in order to write code to *use* it!

\"With VMM we can offer these features to the runtime...\"
\"With CoW we can offer these features...\"
\"With DSM we can offer...\"
\"Instruction pipelining gives us...\"
\"I/D caches give us...\"
\"Tagged memory gives us...\"
\"Segments give us...\"
\"Protection domains give us...\"
\"Capabilities gives us...\"

The B5000 line would have been exciting to watch flourish (instead of
flounder)

And, I would have thought that the *variety* would have TAUGHT developers the
value of writing portable code (in HLLs), *sooner*. MULTICS certainly learned
that lesson painfully -- IIRC the estimate was 30 man years to port the code
from the 36bit architecture to a more commodity-oriented 32b platform
(no wonder it exists no longer!)

The same can be said about early MPUs. Now we\'ve got just a handful of
offerings to address a variety of applications, markets and preferences.
But, with the \"coder mentality\" that\'s now commonplace, this is probably
a \"business win\" (finding people that can fluidly move from architecture
to architecture poses a bit of a hiring hassle).

OTOH, now I can *easily* have the power and capability of a hundred VAXen
for a couple of dollars and a couple of watts! (someday, folks will
actually start using these capabilities)

The art of thinking was the important takeaway. Otherwise you\'re looking at a
glorified trade school turning out Maytag repairmen. That\'s not to say we don\'t
need repairmen.

Yes. An early employer once commented that he hired Northeastern (Univ)
grads if he was looking for someone to address a TODAY need; an MIT grad
for TOMORROW! (there were several of us on staff).
 
On 8/1/2022 9:35 AM, rbowman wrote:
On 08/01/2022 07:30 AM, jlarkin@highlandsniptechnology.com wrote:
Computer Science seems to have little to do with computers.

Nor does it have much to do with practical coding in its pure form.

CS *now* likely has very little to do with engineering.
That\'s why we have \"programmers\" and \"coders\" -- instead of
\"software engineers\". Business wants to dumb down their
needs (why so many COTS \"hardware modules\"? what\'s so hard
about those designs/fabs that you need to rely on someone
else to design them -- plus the support firmware -- instead
of rolling your own?)

It\'s also why productivity varies so much between application
level, system level, OS level and RT -- because of the relative
lacks of specific skills to address those ever demanding
\"markets\".

And, why so many folks sit down and write code without having any formal
documents to describe WHAT the code must do and the criteria against
which it will be tested/qualified! <rolls eyes>

I\'d enjoy watching a \"programmer\" design a VMM system with
what he likely DOESN\'T know about the machine hardware. Or,
tell him he has to treat all of his RT requirements as SRT
(unless he can claim \"it can\'t be done\" -- and substantiate
that!)

Wanna bet few even consider the value of cache wrt
the design of their data structures and code layout?

[I spend a shitload of time thinking about how to design
these to maximize cache and TLB hits -- otherwise, why
*pay* for that hardware?]
 
Lasse Langwadt Christensen wrote:
mandag den 1. august 2022 kl. 19.59.55 UTC+2 skrev Phil Hobbs:
jla...@highlandsniptechnology.com wrote:
On Sun, 31 Jul 2022 17:43:10 -0700, Don Y
blocked...@foo.invalid> wrote:

On 7/31/2022 5:37 PM, rbowman wrote:
On 07/31/2022 12:51 PM, Don Y wrote:
We\'re targeting the \"junior high\" crowd -- 11 - 13yo. The thinking being
that you want to get them \"pointed\" in a STEM direction before they start
their high school education (which, in many places, requires students to
choose
a business vs. college vs. vocational path for their curriculum -- prior to
that, everyone is largely treated the same)

That makes sense. I assume some slurp it up and ask for more while the bulk
stumble along.

We have \"magnet schools\" here that \"specialize\" in particular subject
areas. Students can freely attend *if* accepted. You\'d not want a
kid to get interested in STEM in his final year in the school system
and have missed out on those years when he *could* have received a
more targeted education (if his interest had been developed sooner).

The goal of the education system should be to provide the best
education appropriate to the needs/desires of the student.

Did *you* know what you wanted to do with your life when you were 14?

I did when I was 10. Electrical engineer.

Age five for me, courtesy of a post-Sputnik kid\'s science program called
\"Discovery 64\". They were interviewing some character in a lab coat who
said something along the lines of, \"Scientific knowledge is growing so
fast that in the future, we\'ll need people who can bring together
several fields--\'synthesists\'.\" (I remember that last coinage quite
vividly.)

The show went off the air the following year, IIRC, so I know when it
was to pretty good accuracy. We chronically underestimate bright
youngsters.

if it is this one it say it ran from 1962 to 1971
https://en.wikipedia.org/wiki/Discovery_(American_TV_series)
quite a few on youtube, https://youtube.com/playlist?list=PLDBnbzk6gA0j2HtXlW5sQF7ap56kWqztY
They changed the name every year. It was Discovery 64 or possibly \'65,
but not later than that.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC / Hobbs ElectroOptics
Optics, Electro-optics, Photonics, Analog Electronics
Briarcliff Manor NY 10510

http://electrooptical.net
http://hobbs-eo.com
 
On Mon, 1 Aug 2022 10:35:35 -0600, rbowman <bowman@montana.com> wrote:

On 08/01/2022 07:30 AM, jlarkin@highlandsniptechnology.com wrote:
Computer Science seems to have little to do with computers.

Nor does it have much to do with practical coding in its pure form.

Disk drives were expensive and unreliable at first.

What, you didn\'t like the 2311, 7.5 MB in a package the size of a
washing machine? Removable media, how cool is that?

I had a 64 Kword fixed-head swapping drive on my PDP-11.

And later an 8\" floppy drive that cost $4K. Neither was reliable.
 
On 08/01/2022 01:35 PM, Don Y wrote:
CS *now* likely has very little to do with engineering.
That\'s why we have \"programmers\" and \"coders\" -- instead of
\"software engineers\". Business wants to dumb down their
needs (why so many COTS \"hardware modules\"? what\'s so hard
about those designs/fabs that you need to rely on someone
else to design them -- plus the support firmware -- instead
of rolling your own?)

I never did figure out all those fine distinctions although at various
times I have identified as \'software engineer\' etc depending on whatever
the person I was talking to wanted to here or which business card I had
presented. I\'ve always worked for smaller companies where the
organizational chart was flexible.

That happens even in larger companies. My brother was a VP at Thiokol or
whatever it was known as at the time. He said it was nothing special but
NASA types preferred talking to VPs.

Then there was the model where programmers were the peasants laboring in
the field and analysts were their overseers.
 
On 08/01/2022 11:59 AM, Phil Hobbs wrote:
jlarkin@highlandsniptechnology.com wrote:
On Sun, 31 Jul 2022 17:43:10 -0700, Don Y
blockedofcourse@foo.invalid> wrote:

On 7/31/2022 5:37 PM, rbowman wrote:
On 07/31/2022 12:51 PM, Don Y wrote:
We\'re targeting the \"junior high\" crowd -- 11 - 13yo. The thinking
being
that you want to get them \"pointed\" in a STEM direction before they
start
their high school education (which, in many places, requires
students to
choose
a business vs. college vs. vocational path for their curriculum --
prior to
that, everyone is largely treated the same)

That makes sense. I assume some slurp it up and ask for more while
the bulk
stumble along.

We have \"magnet schools\" here that \"specialize\" in particular subject
areas. Students can freely attend *if* accepted. You\'d not want a
kid to get interested in STEM in his final year in the school system
and have missed out on those years when he *could* have received a
more targeted education (if his interest had been developed sooner).

The goal of the education system should be to provide the best
education appropriate to the needs/desires of the student.

Did *you* know what you wanted to do with your life when you were 14?

I did when I was 10. Electrical engineer.


Age five for me, courtesy of a post-Sputnik kid\'s science program called
\"Discovery 64\". They were interviewing some character in a lab coat who
said something along the lines of, \"Scientific knowledge is growing so
fast that in the future, we\'ll need people who can bring together
several fields--\'synthesists\'.\" (I remember that last coinage quite
vividly.)

The show went off the air the following year, IIRC, so I know when it
was to pretty good accuracy. We chronically underestimate bright
youngsters.

I don\'t remember that one. I was in 6th grade in \'57 and they definitely
ramped up the science and math components for 7th and 8th grades. (no
junior high / middle school at least in that school).

High school had \'enriched curriculum\' program that dug a little deeper
than the standard classes. RPI was more or less across the street and
they had frequent open houses in the various disciplines to lure in
students.

My impression is the educational system went back to the same old stuff
after a brief spurt until it suddenly became fashionable to talk about
STEM again. It may be another buzzword but STEAM sounds promising:

https://educatingengineers.com/resources/steam-education#history
 
On Mon, 1 Aug 2022 10:52:52 -0600, rbowman <bowman@montana.com> wrote:

On 08/01/2022 07:24 AM, jlarkin@highlandsniptechnology.com wrote:
My dad delivered milk. My mom worked in a cafeteria. I was the first
in the family to go to college. But I had a source of dead tube TV
sets and neon sign transformers and WWII surplus radars and flashtubes
so played with them. There\'s not much a kid can do now with a dead
cell phone.

My uncle had a radio and eventually a TV store so there was an entire
backroom full of dead chassis, plus a big box of questionable tubes that
needed testing. He\'d started the store with a guy he\'d sort of adopted.
Joe, the guy, would make house calls to repair TVs, with a station wagon
full of parts. The dreaded words were \'I have to take it back to the
shop\' where my uncle would dig into the guts.

My uncle Sheldon had a tv repair shop and liked to baby-sit me. He
couldn\'t solder because he always had a cigarette in one hand and a
beer in the other, so I\'d sit in his lap and solder for him.

And I had an infinite source of dead TVs. He also had a shed full of
surplus stuff that he stole from the Army.

He had some guys that made houlse calls and brought the sets back to
the shop. Sometimes he\'d Windex the screen and charge for a new
picture tube. Rascal.



Hey, I\'m having troubles with Dropbox and don\'t trust it to get files
from home to work. So, use a memory stick? I just realized that my
cell phone can work as a memory stick. Duh.

One of the MS things I\'ve come to like is One Drive. We have a corporate
one plus the personal. I used to put files on our ftp server but now I
copy them to One Drive. It\'s also handy for work in progress.
 
On 08/01/2022 08:11 PM, jlarkin@highlandsniptechnology.com wrote:
My uncle Sheldon had a tv repair shop and liked to baby-sit me. He
couldn\'t solder because he always had a cigarette in one hand and a
beer in the other, so I\'d sit in his lap and solder for him.

I don\'t remember my uncle smoking but the beer was definitely there. He
had a stroke which left his right arm useless. He would have to chase a
can of beer around with the church key before he got it corralled but he
got good at it.

He had some guys that made houlse calls and brought the sets back to
the shop. Sometimes he\'d Windex the screen and charge for a new
picture tube. Rascal.

Color TV was his waterloo. Most people couldn\'t adjust the colors for
shit and he was one of them. Then there was explaining the facts of life
to the suckers. There were mail order ads offering a cheap conversion
from B&W to color:

https://www.pinterest.com/pin/358317714078297150/

Er, lady. you\'ve been took. There\'s no adjusting that. Just get used to
the Lone Ranger having a blue face.


There was a similar scam during the cutover to digital TV, and \'digital\'
antennas. I\'m still using a rabbit ear antenna meant to be clamped to
the rain gutter that I bought at a truckstop in the \'90s. There\'s only
5 OTA stations left, not counting the subchannels and they all come in
fine. Sometimes after a windstorm I have to rotate it, which means going
out and twisting the 2\" PVC mast it\'s clamped to.

I won\'t go into the BestBuy solid gold HDMI cables etc. As Barnum said...
 
On 8/1/2022 3:41 PM, rbowman wrote:
On 08/01/2022 01:35 PM, Don Y wrote:
CS *now* likely has very little to do with engineering.
That\'s why we have \"programmers\" and \"coders\" -- instead of
\"software engineers\". Business wants to dumb down their
needs (why so many COTS \"hardware modules\"? what\'s so hard
about those designs/fabs that you need to rely on someone
else to design them -- plus the support firmware -- instead
of rolling your own?)

I never did figure out all those fine distinctions although at various times I
have identified as \'software engineer\' etc depending on whatever the person I
was talking to wanted to here or which business card I had presented. I\'ve
always worked for smaller companies where the organizational chart was flexible.

What the organization labels you typically bears no relationship to your
actual role or skillset.

I use the terms to describe role AND skillset.

ANYONE can (learn to) code. I expect end users to \"write script\" for
my current product. It\'s *my* job to make sure that they can do that
and have a high degree of success in achieving their goals. That by
the choice/design of the scripting language, the tedium of its syntax, etc.

But, in general, a coder is typically someone (often \"self taught\" -- or
poorly taught!) who is familiar enough with the process and syntax of
writing code in one (or more) applications to get something resembling a
\"correct output\" -- where \"correct\" is loosely defined.

E.g., I\'ve seen folks compute the size of a file by reading a byte
and incrementing a counter (initialized to 0) until the read() fails.
Whether or not he\'s chosen an appropriate sized accumulator is a
different story, entirely.

One can argue that this is \"correct output\". However, it is likely
NOT what the solution space expected (among other things, it
scales for shit!). This is a coder solution. He likely won\'t
see the flaws in the design until given a 35K, 67K, 3G, 5G, etc.
file to \"size\" and \"discovers\" (!!!) that it is a lengthy process
and his accumulator may silently overflow. Ooops!

His \"testing\" will occur in fits and spurts while writing the
code -- mainly to reassure himself that he\'s got the correct
syntax for his intent. He\'ll expect someone else to tell him
when his code fails -- and be defensive about it \"Well, you never
TOLD me there could be 2TB files!\"

A \"programmer\" will likely have some explicit questions that he
*needs* (not \"wants\") answered before he will begin: the
characteristics of the file store (maximum file sizes, file API,
etc.), how he accesses it (does his code run on the same platform
that hosts the file store), the sort of resources he can use,
time constraints, how read/access errors should be handled
(retry? abort?), how he communicates with the \"client\"
(user or application), whether sparse files are supported
(and how their sizes should be reported), etc.

He\'ll also have a test plan in mind before starting out writing
line 1 of code so he can refer to the exceptions that he will
likely encounter in that test suite *as* he\'s writing the code.

And, if he\'s a GOOD programmer, will set aside a significant
amount of time for *final* test AFTER he\'s put his pen down!

A software engineer will look upstream of the \"file size\"
requirement to understand the actual intent behind the requirement.
If you want to know the size of a file because you\'re trying to
determine the freespace on a medium and plan on iterating over
the files currently residing on it, that\'s:
- inefficient
- likely to produce a wrong result (because disk allocation
units force the SPACE occupied by a file to be greater than
the actual size of the file)
He\'ll look at other aspects of the implementation to see if the
information sought can be obtained more efficiently or reliably.

[Notice how du(1) takes *ages* to return results while df(1)
returns almost instantly? Yet, their results are more-or-less
related!]

There\'s also a different level of sophistication in the code written.

reverse(list items) {
if (list == nil) return
reverse(tail items)
print(head items)
}

is considerably more elegant and intuitive than:

reverse(list items) {
list spare_copy

while (items != nil) {
spare_copy = head items : spare_copy
items = tail items
}

print(spare_copy)
}

[Of course, each has resource issues that need to be addressed in the
function specification]

Finally, there is the choice of idioms and how they map to the thinking
embodied in the code. If, tasked with parsing a list of your friends\'
birthdays so you can \"remember\" to recognize their birthdays in a timely
manner, a coder would (barring detailed specification of how the
task should be handled) likely store birthdates in a flat database:
4 digits of year followed by two digits of month and two digits of day.
This followed by the person\'s name and/or contact information (as the
scope of the problem hasn\'t been specified, who\'s to say?)

How those data got there is a separate issue for him to address
(*another* utility?)

So, when his application runs, he\'d have to open() the file (gee, what
happens if someone has deleted the file? or, moved it? Or, the user
specified the wrong filename on the command line??), then read a
record and parse it to extract the information of interest.

He\'ll probably just \"read 4 characters\" and convert them to an
integer (what if there is a non-numeric in there? what if there are
only THREE characters? maybe the file was tampered with (someone
manually trying to enter data via a text editor and screwing up!)
or it\'s just not in the proper format (it\'s not even text!).
Likewise for the month (2 chars -- make sure you\'ve *forced* two
characters even if the month is 1-9!) and day (2 chars).

Hope to hell no one decided to add field separators (\'/\') or
altered the form of the date (MMDDYYYY) when they modified
or created the file (\"Cripes, EVERYONE knows you put a delimiter
between each field! Why did you pick this stupid format??\")

Will he remember to verify the date actually is meaningful?
20220132 doesn\'t exist. Nor does 20221301 or 20220229. And,
while 20000229 *does* exist, 21000229 does NOT!

His code will likely look like:

check_valid_date() {
if (month < 1)
return(ERROR)
if (month > 12)
return(ERROR)

if (day < 1)
return(ERROR)
if ((month != 2) && (day > days_per_month[month]))
return(ERROR)
if ((month == 2) && (year % 4 != 0) && (day > 28))
return(ERROR)
if ((month == 2) && (year % 400 == 0) && (day > 28))
return(ERROR)

...

return(SUCCESS)
}

[Apologies if I miscoded the leapday calculation; my point is the structure
of the code. This a trivial example of how there are often many tests that
need to be applied and how their results are handled has an impact on
the comprehension and maintainability of the code. Imagine you had to
*do* something for each ERROR return before exiting the function. Ditto
SUCCESS. Will you remember to do it at EVERY return point?]

A programmer would likely write:

check_valid_date() {
do {
if (month < 1)
break
if (month > 12)
break

if (day < 1)
break
if ((month != 2) && (day > days_per_month[month]))
break
if ((month == 2) && (year % 4 != 0) && (day > 28))
break
if ((month == 2) && (year % 400 == 0) && (day > 28))
break

...
return(SUCCESS)
} while (ONCE)

return(ERROR)
}

The enclosing loop acts to support a lengthier conditional that would
otherwise be impractical (and impossible!) to express in a single conditional.
See how many times you DON\'T encounter it! <frown>

Note, also, the differences between do{}while(), while{}, for(,,){}, etc.
A coder will likely pick one and use it universally, massaging the
preconditions, as necessary (which could otherwise be UNnecessary!) to fit.

A programmer would likely also know of the existence of a ready-made ftn
that does this directly -- or as a side effect. Or, at least use ftns
to better parse the character stream -- perhaps going as far as defining
a grammar to parse an XML file structure using a DFA that a parser
generator wrote FOR HIM!

[A coder, esp one with a hardware background, might understand the notion
of an FSM but likely never make the leap to how such broader mechanisms can
be used to generate RELIABLE code, automatically! \"Grammar? Isn\'t that the
old lady who married Gramper?\"]

But, each implementation suffers from the fact that the \"data\" can be
altered, improperly, outside of the control of the codebase!

A software/system engineer would seek to store the data in a form that
eliminates bad data from ever getting *into* the system. Maybe something as
simple as using Julian dates with write protected files? And, prevents
it from being altered to what could be \"bad values\". E.g., store
the data in a database that allows constraints to be placed -- and
enforced -- on the data: \"this field must be a valid date\"
This eliminates the need to recheck the data\'s validity at time of
use (what if 10 different applications want to use that data? Does
each have to SEPARATELY verify the data\'s integrity before use?
Will *each* implement those checks correctly and consistently?

[Ever notice how file sizes in Windows are inconsistently reported?
Something that claims to be 3K in one place may be shown as 4K in
another? Couldn\'t someone come up with a consistent rounding algorithm
and make it available to all apps??]

That happens even in larger companies. My brother was a VP at Thiokol or
whatever it was known as at the time. He said it was nothing special but NASA
types preferred talking to VPs.

Exactly.

In non-profits, you have to be very careful about handing out titles
willy-nilly (in lieu of better wages). Call someone an IT director
and he is now 100% overhead! Instead, call him \"Program manager,
free computers\" and his salary is chargeable to the \"free computers\"
program as a \"program expense\", just like the supplies you may need
to clean the cases of those free computers!. Suddenly, you look
like a more efficient user of monetary donations!

[Does the guy *really* care if he\'s called IT director?? Seriously??!]

Then there was the model where programmers were the peasants laboring in the
field and analysts were their overseers.

There\'s a cute little summary of software titles somewhere in my collection.
It lists titles and \"plain talk\" descriptions. Among them:
....
.... talks to God
.... *is* God!
 
On 08/02/2022 07:01 AM, Don Y wrote:
ANYONE can (learn to) code. I expect end users to \"write script\" for
my current product. It\'s *my* job to make sure that they can do that
and have a high degree of success in achieving their goals. That by
the choice/design of the scripting language, the tedium of its syntax, etc.

We have a number of canned reports but users often want a specialized
report of some type. I was tasked with looking at third party solutions
like Crystal Reports, Jasper Reports, BiRT, Power BI, and so forth. My
conclusion was there was no way in hell a typical client was going to
put in the days, if not weeks, to learn them.

I did find Power BI to be the friendliest for the pie charts, bar
charts, and other eye candy loved by top management but most of our
clients want a traditional printed report.

His \"testing\" will occur in fits and spurts while writing the
code -- mainly to reassure himself that he\'s got the correct
syntax for his intent. He\'ll expect someone else to tell him
when his code fails -- and be defensive about it \"Well, you never
TOLD me there could be 2TB files!\"

We had one program that did a quick and dirty free space check. The
programmer in question had been dead for 15 years but would have said
\'Well, you never TOLD me there would be 2TB drives!\'

I read yesterday that the Earth\'s rotation is slowing to the point where
they may introduce a negative leap second and anticipate that will cause
a bit of havoc.
 
On 8/2/2022 9:22 AM, rbowman wrote:
On 08/02/2022 07:01 AM, Don Y wrote:
ANYONE can (learn to) code. I expect end users to \"write script\" for
my current product. It\'s *my* job to make sure that they can do that
and have a high degree of success in achieving their goals. That by
the choice/design of the scripting language, the tedium of its syntax, etc.

We have a number of canned reports but users often want a specialized report of
some type. I was tasked with looking at third party solutions like Crystal
Reports, Jasper Reports, BiRT, Power BI, and so forth. My conclusion was there
was no way in hell a typical client was going to put in the days, if not weeks,
to learn them.

Yup. You have to make things straight forward and let the \"language/runtime\"
sort out what the user likely wants.

In my case, it\'s not likely that the user wants to determine the optimal launch
date for a Jupiter mission! Rather, \"did it rain, yesterday? if so, don\'t
water the roses today!\"

Folks are used to WYSIWYG which often makes them *expect* every task to
be easier than it ends up being. So, if you\'re going that route, make
sure you have \"blocks\" that represent all of the choices the user is
likely to make (so all he has to do is \"pick one\" and place it)

I did find Power BI to be the friendliest for the pie charts, bar charts, and
other eye candy loved by top management but most of our clients want a
traditional printed report.

His \"testing\" will occur in fits and spurts while writing the
code -- mainly to reassure himself that he\'s got the correct
syntax for his intent. He\'ll expect someone else to tell him
when his code fails -- and be defensive about it \"Well, you never
TOLD me there could be 2TB files!\"

We had one program that did a quick and dirty free space check. The programmer
in question had been dead for 15 years but would have said \'Well, you never
TOLD me there would be 2TB drives!\'

I do fixed cost projects. It helps me ward off changes from clients
who can\'t make up their mind -- until it\'s on *my* dime! (\"Sorry,
I realize that might be a good change to make but we already agreed
on the project\'s scope, delivery and cost; you\'ll have to make a
note of that for the next version...\")

A good spec is essential -- if you don\'t know what you\'re designing, then
how the hell will you know when you\'ve DESIGNED it??!

And, as contracts say I will meet the established spec -- for the agreed
upon price -- if they find a bug/flaw in my implementation at a later
date (ANY date!), I\'m obligated to fix it, \"for free\". Again, *they* need
to be able to point to a document and say that it clearly states X and my
implementation doesn\'t do X; else I\'m off the hook.

[I.e., if you are a savvy client, you will nail down as many issues as
possible in the specification as anything left unspecified is non-binding!]

I read yesterday that the Earth\'s rotation is slowing to the point where they
may introduce a negative leap second and anticipate that will cause a bit of
havoc.

We\'re going to coat the Cesium electrons with just a bit of *taffy* until
we\'ve got them suitably \"disciplined\"! :>

Now, to write a grammar for SWMBOs \"remote control\" for media player.
She is finally letting me discard her \"personal stereos\" in favor of
my media player -- but, only if the media player will respond to
her commands the same way the stereos would! Attention to detail,
again, so she (\"client\") can\'t complain that my implementation isn\'t
as she expected! :-/
 
On 08/02/2022 10:43 AM, Don Y wrote:
In my case, it\'s not likely that the user wants to determine the optimal
launch
date for a Jupiter mission! Rather, \"did it rain, yesterday? if so, don\'t
water the roses today!\"

Our users have perfectly logical report requests. For example they would
like to see a simple matrix of calls for service per hour per day of
week per agencies.

It\'s simple in code. What I found in the report generators were they
were oriented to BI. Sales per regional office, sales per product, sales
per sales rep, no problem but when you started stacking \'pers\' on the
join returned from a SQL query there wasn\'t a good way to accumulate
counts in separate buckets and print them out in a pleasing manner.


Now, to write a grammar for SWMBOs \"remote control\" for media player.
She is finally letting me discard her \"personal stereos\" in favor of
my media player -- but, only if the media player will respond to
her commands the same way the stereos would! Attention to detail,
again, so she (\"client\") can\'t complain that my implementation isn\'t
as she expected! :-/

Good luck with that. I\'ve never had a client glaring at me over the
breakfast table because what she said she wanted wasn\'t what she really
wanted and you should have known that.
 
On 8/2/2022 3:24 PM, rbowman wrote:
On 08/02/2022 10:43 AM, Don Y wrote:
In my case, it\'s not likely that the user wants to determine the optimal
launch
date for a Jupiter mission! Rather, \"did it rain, yesterday? if so, don\'t
water the roses today!\"

Our users have perfectly logical report requests. For example they would like
to see a simple matrix of calls for service per hour per day of week per agencies.

Can\'t you predefine these -- with some possible \"optional filters\" -- and just
let them choose from a list/menu of offerings? *Internally* (corporate)
use a mechanism that makes it easy for YOU to create new \"menu entries\"
but free them from that hassle? I don\'t imagine they want a new (style)
report every day...

It\'s simple in code. What I found in the report generators were they were
oriented to BI. Sales per regional office, sales per product, sales per sales
rep, no problem but when you started stacking \'pers\' on the join returned from
a SQL query there wasn\'t a good way to accumulate counts in separate buckets
and print them out in a pleasing manner.

Now, to write a grammar for SWMBOs \"remote control\" for media player.
She is finally letting me discard her \"personal stereos\" in favor of
my media player -- but, only if the media player will respond to
her commands the same way the stereos would! Attention to detail,
again, so she (\"client\") can\'t complain that my implementation isn\'t
as she expected! :-/

Good luck with that. I\'ve never had a client glaring at me over the breakfast
table because what she said she wanted wasn\'t what she really wanted and you
should have known that.

She\'s happy with the way the \"little stereos\" operate. So, if I *exactly*
mimic the behavior of the controls -- using the exact same remote -- she
won\'t know that I\'ve scrapped her stereos in favor of a media player.

[These things are 30+ years old and the mechanisms *regularly* break down.
I am then called upon to fix the unit in question -- ASAP (lest she not
be able to listen to *her* music while falling asleep or having morning
coffee. My move to a media server is just a proactive response to The
Inevitable (irreparable breakdown)]

I\'ve built the grammar and just have to come up with the actions to associate
with each \"valid sentence\". The (dual) cassette player/recorder is one issue
that I will have to fudge (she\'s never used either function). I\'m thinking
of creating virtual cassettes -- write enabled! So, if she wanted to capture
something that was playing (think \"radio source\"), she could do so and
replay it later (as long as she didn\'t overwrite the recording)

I have to finish up the FM/FMHD radio design as she uses that periodically.

And, I will have to think about how to drive the display; I don\'t think
she\'ll want it \"animated\" when trying to sleep (blue VFD vs. the yellow
display on the stereo). THAT is something that will surely draw a comment!

I\'ll think on it for a few nights; it\'s waited this long so it can wait
a bit longer (assuming the mechanism is accommodating!).

Back to scanning books/manuals \"on the side\"...
 
On 08/02/2022 08:48 PM, Don Y wrote:
Can\'t you predefine these -- with some possible \"optional filters\" --
and just
let them choose from a list/menu of offerings? *Internally* (corporate)
use a mechanism that makes it easy for YOU to create new \"menu entries\"
but free them from that hassle? I don\'t imagine they want a new (style)
report every day...

That was my recommendation. We have a number of canned reports that
accept a limited number of parameters, date range, agency, geographical
area and so forth. There is an \'ad hoc\' interface that allows more
flexibility but it is clumsy, particularly the output format
specification. Figure out what the people using those are really doing
and add those to the canned reports.

If a site wants a specialized report we can tool it up in a couple of
hours. Not my area but whether it is billable depends on how useful it
seems for all sites and if we\'re in the mood to toss them a fish.
Realizing something is trivial and giving it to a site overnight and
gratis has never hurt word of mouth advertising.
 
On 31/07/2022 22.32, Lasse Langwadt Christensen wrote:
søndag den 31. juli 2022 kl. 22.18.30 UTC+2 skrev jla...@highlandsniptechnology.com:
On Sun, 31 Jul 2022 15:58:25 -0400, Ralph Mowery
rmow...@charter.net> wrote:

In article <jko0b1...@mid.individual.net>, bow...@montana.com
says...

Different era but when I was a IEEE member most of the interesting stuff
happened in the Boston chapter. My home chapter in New Hampshire was
almost all classic electrical engineers working for Public Service, the
power company. They basically knew nothing about computers except they
were afraid of them.




It is amazing to me how about 10 years can make a difference. I am 72
and a friend is 82. He was an electronics engineer with a 4 year degree
and worked in the Bell Labs and Western Electric. He is stuck in the
vacuum tube era. Does not like to use a computer and fills out his tax
by hand. I just went to a 2 year tech school for electronic
engineering. A few years after school the home computers came out. My
first was a TRS80 model 3. While I may not be great with computers now
I do use them all the time. About 2 years go I got into the Arduino
world and taught myself how to get around with one.
Seems to me that not a lot has changed in the last 30 years or so. We
had uPs, opamps, FPGAs, memory chips, ADCs, DACs, multilayer boards.
Things have just got a bit denser.

Designing with SOCs, single chips with uPs and FPGAs on common
silicon, isn\'t much different from when they were on separate chips.

and now kids can gets all the parts they imagine and decent quality PCBs
professionally made (and even assembled) for pocket money after
designing it all with free tools

that\'s a big difference from, say, 20 years ago
Plus that you can get a development kit for 5 bucks, and very cheap
instruments.

I started when I was 7 ish, but could not afford instruments. My dad
should have chipped in, but he didn\'t so I did not do much experimenting
before I got 10 years older when I could buy it myself
 
On 8/2/2022 8:52 PM, rbowman wrote:
On 08/02/2022 08:48 PM, Don Y wrote:
Can\'t you predefine these -- with some possible \"optional filters\" --
and just
let them choose from a list/menu of offerings? *Internally* (corporate)
use a mechanism that makes it easy for YOU to create new \"menu entries\"
but free them from that hassle? I don\'t imagine they want a new (style)
report every day...

That was my recommendation. We have a number of canned reports that accept a
limited number of parameters, date range, agency, geographical area and so
forth. There is an \'ad hoc\' interface that allows more flexibility but it is
clumsy, particularly the output format specification. Figure out what the
people using those are really doing and add those to the canned reports.

If a site wants a specialized report we can tool it up in a couple of hours.
Not my area but whether it is billable depends on how useful it seems for all
sites and if we\'re in the mood to toss them a fish. Realizing something is
trivial and giving it to a site overnight and gratis has never hurt word of
mouth advertising.

We designed a LORAN-C position plotter based on the i4004 many decades ago.
The i4004 isn\'t even as capable as a calculator! <frown> So, dealing with
families of hyperbolic curves in real time (getting position fixes from the
receiver every few seconds (10GRI) meant it was struggling just to keep
moving the *pen*.

So, there was lots of processing that it simply couldn\'t do \"in real time\".

As a result, we would \"tune\" the algorithm to the exact region (of the
globe) where the user was operating so the processor had a head start
with precomputed lines-of-position geometries.

A user (typically a fisherman/lobsterman) would submit information about
where he was planning on operating (\"fishing\") and we\'d run the numbers
through the accounting departments \'11 and give him a bunch of magic numbers
to type into his plotter.

Clumsy but there was nothing else on the market that could even do *that*!
(our second plotter was i8085-based and did all of the stuff that the \'11
did as well so the user didn\'t have to do anything special for the plotter
to know how to deal with the chain geometries where he was operating)

If the alternative is for the (your) user to spend a day(s) dicking
around trying to get the reports they want/need -- and, convincing themselves
that the reports really *are* accurate (are they going to manually
review a log and *count* the items that they are expecting the report
to tabulate so they can verify THEIR reports are producing valid data??),
then waiting a day or three may not be a problem -- esp if they can take
snapshots of the data to feed to the report when it becomes available.

And, can reuse that \"report configuration\" repeatedly.
 
On 08/03/2022 02:46 AM, Don Y wrote:
And, can reuse that \"report configuration\" repeatedly.

That\'s another area where the BI report packages seem to fall short
although an expert could coax it out. Many sites have reports they run
automatically every night (what happened yesterday) and email/fax (yes,
fax still exists) to the various departments, or a monthly report. The
only change is the date range. How to parameterize say a Crystal Reports
template and have it autogenerate reports isn\'t obvious.

As I dug into the packages the \'managers can easily generate the reports
they want without bothering IT\' come on in reality became \'there\'s a
company wizard who does that stuff\' or \'we use XXXX to design the
reports.\' There is a whole cottage industry built up around reports,
sort of like web page design.

Not much has changed since the green bar days.
 
On 8/3/2022 7:17 AM, rbowman wrote:
On 08/03/2022 02:46 AM, Don Y wrote:

And, can reuse that \"report configuration\" repeatedly.

That\'s another area where the BI report packages seem to fall short although an
expert could coax it out. Many sites have reports they run automatically every
night (what happened yesterday) and email/fax (yes, fax still exists) to the
various departments, or a monthly report. The only change is the date range.
How to parameterize say a Crystal Reports template and have it autogenerate
reports isn\'t obvious.

I have no idea what sorts of \"general purpose\" tools exist nor the sorts
of things \"users\" would want to see in reports as none of the devices I\'ve
designed have ever had such a need (beyond diagnostic logs).

I have some large DBs, here, but never generate reports from them.
Rather, use them to find things or count things, etc.

My current design collects boatloads of data into numerous relations
that *could* be used in reports. But, it is actually intended for
use by the various AI\'s in the system to help them better understand
how the system is being used and its response to demands (to make
better decisions in the future). Any reports generated would really
only have value to a developer to determine if his algorithms are
responding properly. (what value for the user to know the average time
spent on the ready queue or the average number of page faults a process/app
incurred?)

SWMBO tracks all of our finances (a side-effect of her last job wherein
she tracked all of the facilities expenditures -- construction, repair,
service, etc. -- at one of the local hospitals). But, the reports
she has built (MSAccess) serve only her (our?) needs.

OTOH, when she needs a report, it never seems like it is too difficult to
create (she has no technical education). So, that may be a place to start?

[Note that she has stuck to an older version of MSAccess as newer versions
emphasized web-based services -- she had no desire to redesign what was
already working just for the sake of claiming to be using a \"new and
improved?\" version of MSAccess!]

As I dug into the packages the \'managers can easily generate the reports they
want without bothering IT\' come on in reality became \'there\'s a company wizard
who does that stuff\' or \'we use XXXX to design the reports.\' There is a whole
cottage industry built up around reports, sort of like web page design.

I think this is one reason why folks like spreadsheets. They can (tediously)
get a feel for the data of interest without having to know how to *ask* for it
(in report form). It seems to scare people when they see summaries and have
to *trust* that they accurately represent the data!

[Then why not go back to 5x8 index cards and pen-and-ink record keeping?]

SWMBO\'s boss (VP) was tickled that he could get any information he wanted in
minutes from her -- she\'d just throw together a query and pretty-print the
results. That ability helped him win many battles with \"Finance\" -- who
SHOULD have had that capability but didn\'t!

> Not much has changed since the green bar days.
 
On 7/26/2022 5:16 PM, rbowman wrote:
On 07/26/2022 11:43 AM, John Larkin wrote:
I\'ve had interns that were afraid to touch a board powered from 5
volts, or handle a 12 volt battery. And wanted eye protection and
masks for everything. And who wouldn\'t crank up a power supply to see
how much an electrolytic cap would leak past abs max voltage rating.

On my first job there was a crusty old electrician who would test for
120 VAC by putting two fingers (on the same hand) across the
terminals. It took me a while to work up courage but I figured if he
was in his \'60s and hadn\'t killed himself...

It\'s not a big deal. The \'shock\' is just that, a surprise at a feeling
you didn\'t expect.
 Yep, the surprise! I worked on one particular brand of VCR, it had
open 120 volt connections on the top PCB,
I\'d be working on the mechanics and set my forearm down on them, surprise!

--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
 

Welcome to EDABoard.com

Sponsor

Back
Top