OT an electronic circuit

On Tuesday, March 3, 2020 at 1:22:42 PM UTC-5, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay amused. ...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is written in
C++, Windows-specific stuff like database code is written in C#, the GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am not
a coder by any stretch and never want to become one. Just write stuff I
need and no more but it has to have a nice GUI, not some pre-historic
terminal interface that nobody other than myself could use.

--
Regards, Joerg

http://www.analogconsultants.com/

Hi Joerg, not a coder either, but I found python pretty easy to
use. It's an interpreted language like basic, so no compile step.
and to test statements you can just write them on the command line and
'see' what they do. I like that part.
Oh and free so download play and see if you like it.

It was also fairly painless to get it to talk to a labjack.
(with proper drivers and installation instructions from labjack.)
I think ~1/2 my problems these days is getting everything in a
directory that python can 'see'. I need the equivalent of the
old DOS 'path' function. path = path + "C:/..etc"

George H.
 
On 2020-03-03 11:05, George Herold wrote:
On Tuesday, March 3, 2020 at 1:22:42 PM UTC-5, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay amused. ...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is written in
C++, Windows-specific stuff like database code is written in C#, the GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am not
a coder by any stretch and never want to become one. Just write stuff I
need and no more but it has to have a nice GUI, not some pre-historic
terminal interface that nobody other than myself could use.

--
Regards, Joerg

http://www.analogconsultants.com/

Hi Joerg, not a coder either, but I found python pretty easy to
use. It's an interpreted language like basic, so no compile step.
and to test statements you can just write them on the command line and
'see' what they do. I like that part.
Oh and free so download play and see if you like it.

It was also fairly painless to get it to talk to a labjack.
(with proper drivers and installation instructions from labjack.)

Thanks, George, that is encouraging. I shall try Python then. Even
though I don't like snakes and killed the last one I saw because it took
an aggressive stance towards me and a dog. In hindsight it probably
wasn't a rattler.


I think ~1/2 my problems these days is getting everything in a
directory that python can 'see'. I need the equivalent of the
old DOS 'path' function. path = path + "C:/..etc"

That's the kind of stuff I'll probably also run into. I grew up with DOS
but have largely forgotten all the command line stuff. Hopefully Python
can be set into a mode where it accepts any path or at least any in a
given sub-directory set. Migrating to Linux has helped me re-learn some
command line.

--
Regards, Joerg

http://www.analogconsultants.com/
 
On 2020-03-03 11:40, three_jeeps wrote:
On Monday, March 2, 2020 at 7:31:30 PM UTC-5, Joerg wrote:

[...]

Analog is fun. Very few people think so, but it is. I am trying to
convince a client to do something without ADC and lots of code,
going discrete instead and saving money. During the online meeting
I could almost see the goose bumps come up.

-- Regards, Joerg

http://www.analogconsultants.com/

Python is a programming language.
https://www.python.org/doc/essays/blurb/ It is fairly easy to use,
and hides some of the more intricate details of data and numeric
types and allows dynamic recasting of one data type to another. It is
an interpreted language but has characteristics of compiled languages
- dynamic data structures. Some ppl say it is a fusion of concepts
from Java and C/C++ (e.g.object oriented, interpreted, etc.)
Web-heads like it...one can program things quickly and it has nicely
integrated GUI capabilities.

That would be right up my alley as a SW-beginner. An older one to boot.


... If one is developing code for real-time,
embedded, safety critical applications, this is not the language to
use....

That is the stuff I always hand off to experts and why there are SW guys
and coders in my network. I develop the idea and the code architecture,
like what has to be calculated when, and then it's off to the code writer.

--
Regards, Joerg

http://www.analogconsultants.com/
 
On 2020-03-03 14:05, George Herold wrote:
On Tuesday, March 3, 2020 at 1:22:42 PM UTC-5, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay amused. ...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is written in
C++, Windows-specific stuff like database code is written in C#, the GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am not
a coder by any stretch and never want to become one. Just write stuff I
need and no more but it has to have a nice GUI, not some pre-historic
terminal interface that nobody other than myself could use.

--
Regards, Joerg

http://www.analogconsultants.com/

Hi Joerg, not a coder either, but I found python pretty easy to
use. It's an interpreted language like basic, so no compile step.
and to test statements you can just write them on the command line and
'see' what they do. I like that part.
Oh and free so download play and see if you like it.

It was also fairly painless to get it to talk to a labjack.
(with proper drivers and installation instructions from labjack.)
I think ~1/2 my problems these days is getting everything in a
directory that python can 'see'. I need the equivalent of the
old DOS 'path' function. path = path + "C:/..etc"

George H.

Check out virtual environments.

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 2020-03-03 21:07, Joerg wrote:
On 2020-03-03 11:40, three_jeeps wrote:
On Monday, March 2, 2020 at 7:31:30 PM UTC-5, Joerg wrote:


[...]

Analog is fun. Very few people think so, but it is. I am trying to
convince a client to do something without ADC and lots of code,
going discrete instead and saving money. During the online meeting
I could almost see the goose bumps come up.

-- Regards, Joerg

http://www.analogconsultants.com/

Python is a programming language.
https://www.python.org/doc/essays/blurb/ It is fairly easy to use,
and hides some of the more intricate details of data and numeric
types and allows dynamic recasting of one data type to another. It is
an interpreted language but has characteristics of compiled languages
- dynamic data structures. Some ppl say it is a fusion of concepts
from Java and C/C++ (e.g.object oriented, interpreted, etc.)
Web-heads like it...one can program things quickly and it has nicely
integrated GUI capabilities.


That would be right up my alley as a SW-beginner. An older one to boot.


... If one is developing code for real-time,
embedded, safety critical applications, this is not the language to
use....


That is the stuff I always hand off to experts and why there are SW guys
and coders in my network. I develop the idea and the code architecture,
like what has to be calculated when, and then it's off to the code writer.

What gets me is not the coding itself. It's the perpetual changes
of versions, library and include files and their locations, compile
options and whatnot. After being forced to re-write an application
for the n-th time because the dependencies and tools changed beyond
recognition, one tires of the game.

Sigh. Time to think about retirement, I guess.

Jeroen Belleman
 
On 2020-03-03 13:41, Jeroen Belleman wrote:
On 2020-03-03 21:07, Joerg wrote:
On 2020-03-03 11:40, three_jeeps wrote:

[...]

... If one is developing code for real-time,
embedded, safety critical applications, this is not the language to
use....


That is the stuff I always hand off to experts and why there are SW guys
and coders in my network. I develop the idea and the code architecture,
like what has to be calculated when, and then it's off to the code
writer.


What gets me is not the coding itself. It's the perpetual changes
of versions, library and include files and their locations, compile
options and whatnot. After being forced to re-write an application
for the n-th time because the dependencies and tools changed beyond
recognition, one tires of the game.

That is what irks me with Linux. Some software needs dependencies
"fixed" and after allowing their updates some other software or hardware
(such as audio) no longer works. Soon I'll have to learn about
containerizing packages, or "snap" in Linux-speak.


Sigh. Time to think about retirement, I guess.

Luckily I am well into that phase, so many things aren't that urgent
anymore. I never want to stop 100% though, just 85-90%. The 10-15%
remaining base load is mainly there to keep my brain exercized. I told
all my clients to only leave the tough stuff for me.

--
Regards, Joerg

http://www.analogconsultants.com/
 
On Tue, 3 Mar 2020 11:05:22 -0800 (PST), George Herold
<ggherold@gmail.com> wrote:

On Tuesday, March 3, 2020 at 1:22:42 PM UTC-5, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay amused. ...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is written in
C++, Windows-specific stuff like database code is written in C#, the GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am not
a coder by any stretch and never want to become one. Just write stuff I
need and no more but it has to have a nice GUI, not some pre-historic
terminal interface that nobody other than myself could use.

--
Regards, Joerg

http://www.analogconsultants.com/

Hi Joerg, not a coder either, but I found python pretty easy to
use. It's an interpreted language like basic, so no compile step.

Python actually compiles your source to a pseudocode form at the
instant you run it. It's not a full-blast interpreter. DEC's
BASIC-PLUS looked a lot like Python, and also compiled to pseudocode
at run time. Pseudocode is object code for an imaginary, usually
stack-oriented, computer. It's faster than an interpreter but slower
than a proper machine code compiler.

--

John Larkin Highland Technology, Inc
picosecond timing precision measurement

jlarkin att highlandtechnology dott com
http://www.highlandtechnology.com
 
On 3/3/20 4:26 PM, Phil Hobbs wrote:
On 2020-03-03 14:05, George Herold wrote:
On Tuesday, March 3, 2020 at 1:22:42 PM UTC-5, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay
amused.  ...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is
written in
C++, Windows-specific stuff like database code is written in C#, the
GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am not
a coder by any stretch and never want to become one. Just write stuff I
need and no more but it has to have a nice GUI, not some pre-historic
terminal interface that nobody other than myself could use.

--
Regards, Joerg

http://www.analogconsultants.com/

Hi Joerg, not a coder either, but I found python pretty easy to
use.  It's an interpreted language like basic, so no compile step.
and to test statements you can just write them on the command line and
'see' what they do.  I like that part.
Oh and free so download play and see if you like it.

It was also fairly painless to get it to talk to a labjack.
(with proper drivers and installation instructions from labjack.)
  I think ~1/2 my problems these days is getting everything in a
directory that python can 'see'.  I need the equivalent of the
old DOS 'path' function.  path = path + "C:/..etc"

George H.


Check out virtual environments.

Cheers

Phil Hobbs

For doing quick-n-dirty cross-platform GUIs OpenFrameworks provides a
nice API that's simpler than working with something like Qt or the
Windows API directly I think.

<https://openframeworks.cc/>
 
On 3/3/20 1:22 PM, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay amused.
...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is written in
C++, Windows-specific stuff like database code is written in C#, the GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am not
a coder by any stretch and never want to become one. Just write stuff I
need and no more but it has to have a nice GUI, not some pre-historic
terminal interface that nobody other than myself could use.

If you know a little C/C++ OpenFrameworks is a good just-get-things-done
API, it provides some cross-platform abstractions for working with menu
interfaces, sound, graphics, threading, etc. that's much easier than
working with say the Windows API directly.

<https://openframeworks.cc/>
 
On 3/3/20 1:22 PM, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay amused.
...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is written in
C++, Windows-specific stuff like database code is written in C#, the GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am not
a coder by any stretch and never want to become one. Just write stuff I
need and no more but it has to have a nice GUI, not some pre-historic
terminal interface that nobody other than myself could use.

It was common even in the 90s on large game and multimedia projects to
provide a "sandbox language" interface to the engine that allowed the
story and art-people limited access to engine mechanics but the
fundamental system "engine" and physics stuff was privileged. Makes
division of labor on large projects easier.

In those times it was often some stack-machine scripting language like
Forth or a dialect of C that was compiled for a bespoke VM, that ran
alongside the compiled C++ code. Python and Lua play that role now, it's
not hard to provide bindings to make sandboxed dll/system calls into
compiled C++ code.
 
On 3/9/2020 5:05 PM, bitrex wrote:
On 3/3/20 1:22 PM, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay amused.
...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is written in
C++, Windows-specific stuff like database code is written in C#, the GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am
not a coder by any stretch and never want to become one. Just write
stuff I need and no more but it has to have a nice GUI, not some
pre-historic terminal interface that nobody other than myself could use.


It was common even in the 90s on large game and multimedia projects to
provide a "sandbox language" interface to the engine that allowed the
story and art-people limited access to engine mechanics but the
fundamental system "engine" and physics stuff was privileged. Makes
division of labor on large projects easier.

In those times it was often some stack-machine scripting language like
Forth or a dialect of C that was compiled for a bespoke VM, that ran
alongside the compiled C++ code. Python and Lua play that role now, it's
not hard to provide bindings to make sandboxed dll/system calls into
compiled C++ code.

Speaking of Forth, did you know it was created by an astronomer to
control a telescope?
 
On 3/10/20 8:12 AM, John S wrote:
On 3/9/2020 5:05 PM, bitrex wrote:
On 3/3/20 1:22 PM, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay
amused. ...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is
written in
C++, Windows-specific stuff like database code is written in C#, the
GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am
not a coder by any stretch and never want to become one. Just write
stuff I need and no more but it has to have a nice GUI, not some
pre-historic terminal interface that nobody other than myself could use.


It was common even in the 90s on large game and multimedia projects to
provide a "sandbox language" interface to the engine that allowed the
story and art-people limited access to engine mechanics but the
fundamental system "engine" and physics stuff was privileged. Makes
division of labor on large projects easier.

In those times it was often some stack-machine scripting language like
Forth or a dialect of C that was compiled for a bespoke VM, that ran
alongside the compiled C++ code. Python and Lua play that role now,
it's not hard to provide bindings to make sandboxed dll/system calls
into compiled C++ code.

Speaking of Forth, did you know it was created by an astronomer to
control a telescope?

I didn't but seems plausible-on-its-face to me!

It's a language that I've made attempts to get into every so often but
don't seem to get very far.

My introduction to computer science was at an arts college in the 90s,
they were very big into Lisp as a teaching tool at that time but it
didn't seem to "take" with 19-year-old me very well. It seemed very
elegant and very inscrutable, back then. That the (small) faculty of the
department were the type of people who were reaaaaaallly big into Lisp
probably didn't help matters.

When I learned some Python a number of years later it struck me: "Ah,
this is the right combination of elegance and get-r-done that would have
sold me on STEM in the first place instead of dicking around in the
music buisness for a decade."

Not that there's anything wrong with that but "The music business is a
cruel and shallow money trench...."
 
On 3/10/2020 10:47 AM, bitrex wrote:
On 3/10/20 8:12 AM, John S wrote:
On 3/9/2020 5:05 PM, bitrex wrote:
On 3/3/20 1:22 PM, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay
amused. ...

Is Python the name of the game today? I have largely migrated to
Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is
written in
C++, Windows-specific stuff like database code is written in C#,
the GPU
"shaders" are written in a dialect of C, and the "glue" that
determines
what happens when is written in a scripting language like Python or
Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by
default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am
not a coder by any stretch and never want to become one. Just write
stuff I need and no more but it has to have a nice GUI, not some
pre-historic terminal interface that nobody other than myself could
use.


It was common even in the 90s on large game and multimedia projects
to provide a "sandbox language" interface to the engine that allowed
the story and art-people limited access to engine mechanics but the
fundamental system "engine" and physics stuff was privileged. Makes
division of labor on large projects easier.

In those times it was often some stack-machine scripting language
like Forth or a dialect of C that was compiled for a bespoke VM, that
ran alongside the compiled C++ code. Python and Lua play that role
now, it's not hard to provide bindings to make sandboxed dll/system
calls into compiled C++ code.

Speaking of Forth, did you know it was created by an astronomer to
control a telescope?

I didn't but seems plausible-on-its-face to me!

It's a language that I've made attempts to get into every so often but
don't seem to get very far.

My introduction to computer science was at an arts college in the 90s,
they were very big into Lisp as a teaching tool at that time but it
didn't seem to "take" with 19-year-old me very well. It seemed very
elegant and very inscrutable, back then. That the (small) faculty of the
department were the type of people who were reaaaaaallly big into Lisp
probably didn't help matters.

When I learned some Python a number of years later it struck me: "Ah,
this is the right combination of elegance and get-r-done that would have
sold me on STEM in the first place instead of dicking around in the
music buisness for a decade."

Not that there's anything wrong with that but "The music business is a
cruel and shallow money trench...."

The reason it is called Forth is that the inventor (Charles H. Moore)
early on considered it as a fourth-generation computer language on the
IBM 1130. Unfortunately, the 1130 permitted only five-character
identifiers. So Fourth became Forth.

I did not realize that it was available online but, here it is:

<https://1scyem2bunjw1ghzsf1cjwwn-wpengine.netdna-ssl.com/wp-content/uploads/2018/01/Starting-FORTH.pdf>
 
On 3/3/20 1:28 PM, Joerg wrote:
On 2020-03-02 23:28, Tom Gardner wrote:


[...]


Overly simplistic:
  - code to run in a browser: JavaScript
  - serverside: Java
  - userspace applications: Java or Python depending on which
    libraries and user community is most relevant for your
    application
  - embedded: C or C++, but understand all gotchas in the FQA
    http://yosefk.com/c++fqa/
  - hard realtime: xC on xCORE processors, or FPGAs
  - C# is the Microsoft ripoff of Java

The key point is to start with the relevant libraries and
user community, and use that to choose the language.


Thing is, I understand next to nothing about this coding stuff. So I'd
have to start with example code (but _with_ GUI) and then modify towards
my goals. That's how I learned just about everything in life.

The first order of business would be to get a Labjack U3 going using
Exodriver on Linux, then find nice SCADA-like examples for it and start
modifying. So far I haven't found anything in Python and others but I'll
keep looking. With Windows that was easier because Azeotech DAQFactory
is a nice SCADA software which runs on Windows and they had lots of
examples such as "Wiggle port so-and-so, have the ADC probe this, that
and the other thing, write a nice graph from that with statistics over
yonder on the screen".

Here's a GUI written with the OpenFrameworks API (C++)

<https://imgur.com/a/D7NMe3g>

Essentially all the code for the example applet in the window there is
on-screen in the background. Simple enough?
 
On 2020-03-09 15:12, bitrex wrote:
On 3/3/20 1:22 PM, Joerg wrote:
On 2020-03-02 17:52, bitrex wrote:
On 3/2/20 7:31 PM, Joerg wrote:
On 2020-02-28 13:20, jlarkin@highlandsniptechnology.com wrote:

https://www.dropbox.com/s/tjr7gxyhdzc8tb4/21S771A3.pdf?dl=0


It contains two discrete transistors so it'll be perceived as
disgusting by many "modern" hardware designers. One of our professors
about 40 years ago said that we only have to learn about discrete
transistors for the exam. Once we'd be entering the work force
everything would be ICs. Boy was that guy wrong, and I knew it.


All my boys and girls are busy with VHDL and c and Python, namely
typing, so I'm designing little all-analog products to stay amused.
...

Is Python the name of the game today? I have largely migrated to Linux
but the SCADA software I used for Labjack devices is Windows-only and
doesn't like a VM. So I am thinking about learning Python and maybe
Tkinter for the GUI part. It's mostly about measuring stuff, sending
it in via USB and displaying calculated results.

In the past there was a new game every few years. First Fortran, then
Basic, then everyone said you've got to learn Pascal (still have the
book), then C, then C++, C# and whatnot. I want to avoid saddling the
wrong horse.


Many large software projects use multiple languages, e.g. modern video
games usually the physics engine and high-performance code is written in
C++, Windows-specific stuff like database code is written in C#, the GPU
"shaders" are written in a dialect of C, and the "glue" that determines
what happens when is written in a scripting language like Python or Lua
so that people like art directors and creative designers and audio
engineers (who may not be highly trained software engineers by default)
can make non-destructive modifications to their individual portions of
the code without appealing to the C++ guys every time they need to
change some minor detail


"Non-destructive modifications" is exactly what I have in mind. I am
not a coder by any stretch and never want to become one. Just write
stuff I need and no more but it has to have a nice GUI, not some
pre-historic terminal interface that nobody other than myself could use.


If you know a little C/C++ OpenFrameworks is a good just-get-things-done
API, it provides some cross-platform abstractions for working with menu
interfaces, sound, graphics, threading, etc. that's much easier than
working with say the Windows API directly.

https://openframeworks.cc/

Programming is something I have very little experience with and I also
don't like it. In Windows we had Azeatech DAQFactory which is an easy
"click-and-drop" SCADA that has Labjack connectivity. Excel plus VBA
worked nicely as well. The Linux world also offers SCADA software but
none has Labjack connectivity. I just don't want to let a simple task
mutate into a major science project.

I was hoping that Labjack offered examples with GUI in Python or in
another popular language but they don't. So I am looking for the path of
entry with the least amount of boulders in front of it. Maybe that's
Python, maybe not.

--
Regards, Joerg

http://www.analogconsultants.com/
 
On 2020-03-10 15:37, bitrex wrote:
On 3/3/20 1:28 PM, Joerg wrote:
On 2020-03-02 23:28, Tom Gardner wrote:


[...]


Overly simplistic:
- code to run in a browser: JavaScript
- serverside: Java
- userspace applications: Java or Python depending on which
libraries and user community is most relevant for your
application
- embedded: C or C++, but understand all gotchas in the FQA
http://yosefk.com/c++fqa/
- hard realtime: xC on xCORE processors, or FPGAs
- C# is the Microsoft ripoff of Java

The key point is to start with the relevant libraries and
user community, and use that to choose the language.


Thing is, I understand next to nothing about this coding stuff. So I'd
have to start with example code (but _with_ GUI) and then modify
towards my goals. That's how I learned just about everything in life.

The first order of business would be to get a Labjack U3 going using
Exodriver on Linux, then find nice SCADA-like examples for it and
start modifying. So far I haven't found anything in Python and others
but I'll keep looking. With Windows that was easier because Azeotech
DAQFactory is a nice SCADA software which runs on Windows and they had
lots of examples such as "Wiggle port so-and-so, have the ADC probe
this, that and the other thing, write a nice graph from that with
statistics over yonder on the screen".


Here's a GUI written with the OpenFrameworks API (C++)

https://imgur.com/a/D7NMe3g

Essentially all the code for the example applet in the window there is
on-screen in the background. Simple enough?

For a programming rookie that looks complicated. The main issue is
connectivity to the devices (Labjack U3). LabjackPython has that.
OpenFrameWorks will likely require a lot of massaging of library code,
compilation and whatnot.

--
Regards, Joerg

http://www.analogconsultants.com/
 
On 3/11/20 4:42 PM, Joerg wrote:
On 2020-03-10 15:37, bitrex wrote:
On 3/3/20 1:28 PM, Joerg wrote:
On 2020-03-02 23:28, Tom Gardner wrote:


[...]


Overly simplistic:
  - code to run in a browser: JavaScript
  - serverside: Java
  - userspace applications: Java or Python depending on which
    libraries and user community is most relevant for your
    application
  - embedded: C or C++, but understand all gotchas in the FQA
    http://yosefk.com/c++fqa/
  - hard realtime: xC on xCORE processors, or FPGAs
  - C# is the Microsoft ripoff of Java

The key point is to start with the relevant libraries and
user community, and use that to choose the language.


Thing is, I understand next to nothing about this coding stuff. So I'd
have to start with example code (but _with_ GUI) and then modify
towards my goals. That's how I learned just about everything in life.

The first order of business would be to get a Labjack U3 going using
Exodriver on Linux, then find nice SCADA-like examples for it and
start modifying. So far I haven't found anything in Python and others
but I'll keep looking. With Windows that was easier because Azeotech
DAQFactory is a nice SCADA software which runs on Windows and they had
lots of examples such as "Wiggle port so-and-so, have the ADC probe
this, that and the other thing, write a nice graph from that with
statistics over yonder on the screen".


Here's a GUI written with the OpenFrameworks API (C++)

https://imgur.com/a/D7NMe3g

Essentially all the code for the example applet in the window there is
on-screen in the background. Simple enough?


For a programming rookie that looks complicated. The main issue is
connectivity to the devices (Labjack U3). LabjackPython has that.
OpenFrameWorks will likely require a lot of massaging of library code,
compilation and whatnot.

The Labjack device only seems to give limited support for Mac/Linux but
there's a C++ API for something or other it seems. Don't know a lot
about Windows-coding but at least there's something. Say that's a cool
piece of kit.

<https://labjack.com/support/software/api/exodriver/u3-base-class-linux>

At some point if you're going with Python (it would be the same in C++)
read up on using threads for multiple tasks, Python does make this
pretty easy to launch multiple processes running on their own threads,
like when you've got a communications port open for asynchronous
communication and are doing GUI-stuff simultaneously.

Running the GUI/main program in one execution thread and the comms task
in another keeps them both responsive. Usually some mechanism is
provided for thread-safe passing of data between them like a locking queue.
 
On 3/11/20 7:10 PM, bitrex wrote:
On 3/11/20 4:42 PM, Joerg wrote:
On 2020-03-10 15:37, bitrex wrote:
On 3/3/20 1:28 PM, Joerg wrote:
On 2020-03-02 23:28, Tom Gardner wrote:


[...]


Overly simplistic:
  - code to run in a browser: JavaScript
  - serverside: Java
  - userspace applications: Java or Python depending on which
    libraries and user community is most relevant for your
    application
  - embedded: C or C++, but understand all gotchas in the FQA
    http://yosefk.com/c++fqa/
  - hard realtime: xC on xCORE processors, or FPGAs
  - C# is the Microsoft ripoff of Java

The key point is to start with the relevant libraries and
user community, and use that to choose the language.


Thing is, I understand next to nothing about this coding stuff. So I'd
have to start with example code (but _with_ GUI) and then modify
towards my goals. That's how I learned just about everything in life.

The first order of business would be to get a Labjack U3 going using
Exodriver on Linux, then find nice SCADA-like examples for it and
start modifying. So far I haven't found anything in Python and others
but I'll keep looking. With Windows that was easier because Azeotech
DAQFactory is a nice SCADA software which runs on Windows and they had
lots of examples such as "Wiggle port so-and-so, have the ADC probe
this, that and the other thing, write a nice graph from that with
statistics over yonder on the screen".


Here's a GUI written with the OpenFrameworks API (C++)

https://imgur.com/a/D7NMe3g

Essentially all the code for the example applet in the window there is
on-screen in the background. Simple enough?


For a programming rookie that looks complicated. The main issue is
connectivity to the devices (Labjack U3). LabjackPython has that.
OpenFrameWorks will likely require a lot of massaging of library code,
compilation and whatnot.


The Labjack device only seems to give limited support for Mac/Linux but
there's a C++ API for something or other it seems. Don't know a lot
about Windows-coding but at least there's something. Say that's a cool
piece of kit.

https://labjack.com/support/software/api/exodriver/u3-base-class-linux

At some point if you're going with Python (it would be the same in C++)
read up on using threads for multiple tasks, Python does make this
pretty easy to launch multiple processes running on their own threads,
like when you've got a communications port open for asynchronous
communication and are doing GUI-stuff simultaneously.

Running the GUI/main program in one execution thread and the comms  task
in another keeps them both responsive. Usually some mechanism is
provided for thread-safe passing of data between them like a locking queue.

I don't know if Python offers true multi-processor support at this time,
I know at one time it didn't. Multiple threads of execution on the same
processor have been supported for a long time tho.
 
On 2020-03-11 16:15, bitrex wrote:
On 3/11/20 7:10 PM, bitrex wrote:
On 3/11/20 4:42 PM, Joerg wrote:
On 2020-03-10 15:37, bitrex wrote:
On 3/3/20 1:28 PM, Joerg wrote:
On 2020-03-02 23:28, Tom Gardner wrote:


[...]


Overly simplistic:
- code to run in a browser: JavaScript
- serverside: Java
- userspace applications: Java or Python depending on which
libraries and user community is most relevant for your
application
- embedded: C or C++, but understand all gotchas in the FQA
http://yosefk.com/c++fqa/
- hard realtime: xC on xCORE processors, or FPGAs
- C# is the Microsoft ripoff of Java

The key point is to start with the relevant libraries and
user community, and use that to choose the language.


Thing is, I understand next to nothing about this coding stuff. So I'd
have to start with example code (but _with_ GUI) and then modify
towards my goals. That's how I learned just about everything in life.

The first order of business would be to get a Labjack U3 going using
Exodriver on Linux, then find nice SCADA-like examples for it and
start modifying. So far I haven't found anything in Python and others
but I'll keep looking. With Windows that was easier because Azeotech
DAQFactory is a nice SCADA software which runs on Windows and they had
lots of examples such as "Wiggle port so-and-so, have the ADC probe
this, that and the other thing, write a nice graph from that with
statistics over yonder on the screen".


Here's a GUI written with the OpenFrameworks API (C++)

https://imgur.com/a/D7NMe3g

Essentially all the code for the example applet in the window there is
on-screen in the background. Simple enough?


For a programming rookie that looks complicated. The main issue is
connectivity to the devices (Labjack U3). LabjackPython has that.
OpenFrameWorks will likely require a lot of massaging of library
code, compilation and whatnot.


The Labjack device only seems to give limited support for Mac/Linux
but there's a C++ API for something or other it seems. Don't know a
lot about Windows-coding but at least there's something. Say that's a
cool piece of kit.

https://labjack.com/support/software/api/exodriver/u3-base-class-linux

Currently this sort of stuff is way above my level of software skills.
However, having recently transitioned to Linux which is, ahem, a bit
retro when it comes to user interaction, I am slowly learning the ropes.


At some point if you're going with Python (it would be the same in
C++) read up on using threads for multiple tasks, Python does make
this pretty easy to launch multiple processes running on their own
threads, like when you've got a communications port open for
asynchronous communication and are doing GUI-stuff simultaneously.

Running the GUI/main program in one execution thread and the comms
task in another keeps them both responsive. Usually some mechanism is
provided for thread-safe passing of data between them like a locking
queue.

I don't know if Python offers true multi-processor support at this time,
I know at one time it didn't. Multiple threads of execution on the same
processor have been supported for a long time tho.

This doesn't have to be realtime or even close. Even streaming is
usually limited to 50ksamples/sec. Most of my cases will be slow
monitoring of a temperature or a pressure and then reacting to that.
There won't be a mushroom cloud if the response is issued 20msec late :)

--
Regards, Joerg

http://www.analogconsultants.com/
 
On 3/11/20 7:27 PM, Joerg wrote:
On 2020-03-11 16:15, bitrex wrote:
On 3/11/20 7:10 PM, bitrex wrote:
On 3/11/20 4:42 PM, Joerg wrote:
On 2020-03-10 15:37, bitrex wrote:
On 3/3/20 1:28 PM, Joerg wrote:
On 2020-03-02 23:28, Tom Gardner wrote:


[...]


Overly simplistic:
  - code to run in a browser: JavaScript
  - serverside: Java
  - userspace applications: Java or Python depending on which
    libraries and user community is most relevant for your
    application
  - embedded: C or C++, but understand all gotchas in the FQA
    http://yosefk.com/c++fqa/
  - hard realtime: xC on xCORE processors, or FPGAs
  - C# is the Microsoft ripoff of Java

The key point is to start with the relevant libraries and
user community, and use that to choose the language.


Thing is, I understand next to nothing about this coding stuff. So
I'd
have to start with example code (but _with_ GUI) and then modify
towards my goals. That's how I learned just about everything in life.

The first order of business would be to get a Labjack U3 going using
Exodriver on Linux, then find nice SCADA-like examples for it and
start modifying. So far I haven't found anything in Python and others
but I'll keep looking. With Windows that was easier because Azeotech
DAQFactory is a nice SCADA software which runs on Windows and they
had
lots of examples such as "Wiggle port so-and-so, have the ADC probe
this, that and the other thing, write a nice graph from that with
statistics over yonder on the screen".


Here's a GUI written with the OpenFrameworks API (C++)

https://imgur.com/a/D7NMe3g

Essentially all the code for the example applet in the window there is
on-screen in the background. Simple enough?


For a programming rookie that looks complicated. The main issue is
connectivity to the devices (Labjack U3). LabjackPython has that.
OpenFrameWorks will likely require a lot of massaging of library
code, compilation and whatnot.


The Labjack device only seems to give limited support for Mac/Linux
but there's a C++ API for something or other it seems. Don't know a
lot about Windows-coding but at least there's something. Say that's a
cool piece of kit.

https://labjack.com/support/software/api/exodriver/u3-base-class-linux


Currently this sort of stuff is way above my level of software skills.
However, having recently transitioned to Linux which is, ahem, a bit
retro when it comes to user interaction, I am slowly learning the ropes.


At some point if you're going with Python (it would be the same in
C++) read up on using threads for multiple tasks, Python does make
this pretty easy to launch multiple processes running on their own
threads, like when you've got a communications port open for
asynchronous communication and are doing GUI-stuff simultaneously.

Running the GUI/main program in one execution thread and the comms
task in another keeps them both responsive. Usually some mechanism is
provided for thread-safe passing of data between them like a locking
queue.

I don't know if Python offers true multi-processor support at this time,
I know at one time it didn't. Multiple threads of execution on the same
processor have been supported for a long time tho.


This doesn't have to be realtime or even close. Even streaming is
usually limited to 50ksamples/sec. Most of my cases will be slow
monitoring of a temperature or a pressure and then reacting to that.
There won't be a mushroom cloud if the response is issued 20msec late :)

Hopefully any sluggishness is that unobjectionable in practice on a
modern machine, however when an interpreted language like Python has to
dive down through a number of layers of abstraction and privileged
system calls to check hardware port status and pull any available data
back up into the interpreter for use it is often not la dolce vita.
 

Welcome to EDABoard.com

Sponsor

Back
Top