Difference between revisions of "New skills"

From Wiki at Neela Nurseries
Jump to: navigation, search
m
m (^ Features and elements of Python: - list of lists behaviors.)
 
(78 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
Notes page for New Skills and Existing Skills
 
Notes page for New Skills and Existing Skills
  
 +
<b>Keywords:</b>  Python virtual environment, python-venv<br />
 +
 +
 +
== [[#top|^]] Languages and Software Development Tools ==
 +
Languages and software development tools too investigate . . .
 +
 +
=== [[#top|^]] Python scripting language ===
 +
Note, python scripts and configuration are now part of recent Ubuntu and possibly other Debian based Linux distributions.  For this reason there is risk of breaking a host system's OS installation on such Linux hosts, if using python's <code>pip</code> installer util to install python packages in their default global mode.  Please see '[[#.5E_python_virtual_environment_set-up.2C_python3-venv|setting up python virtual environment]]' a couple paragraphs further on this page.
 +
<ul>
 +
*  https://docs.python.org/3.8/tutorial/
 +
</ul>
 +
Available with an interactive Python session:
 +
<pre>
 +
:~$ python3
 +
Python 3.8.5 (default, Jul 28 2020, 12:59:40)
 +
[GCC 9.3.0] on linux
 +
Type "help", "copyright", "credits" or "license" for more information.
 +
>>> credits
 +
    Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
 +
    for supporting Python development.  See www.python.org for more information.
 +
>>> help
 +
Type help() for interactive help, or help(object) for help about object.
 +
>>> help()
 +
 +
Welcome to Python 3.8's help utility!
 +
 +
If this is your first time using Python, you should definitely check out
 +
the tutorial on the Internet at https://docs.python.org/3.8/tutorial/.
 +
 +
Enter the name of any module, keyword, or topic to get help on writing
 +
Python programs and using Python modules.  To quit this help utility and
 +
return to the interpreter, just type "quit".
 +
 +
To get a list of available modules, keywords, symbols, or topics, type
 +
"modules", "keywords", "symbols", or "topics".  Each module also comes
 +
with a one-line summary of what it does; to list the modules whose name
 +
or summary contain a given string such as "spam", type "modules spam".
 +
 +
help> help modules
 +
No Python documentation found for 'help modules'.
 +
Use help() to get the interactive help utility.
 +
Use help(str) for help on the str class.
 +
 +
help> modules
 +
 +
Please wait a moment while I gather a list of all available modules...
 +
 +
</pre>
 +
 +
 +
Python3 "hello world" example . . .
 +
 +
*  https://www.digitalocean.com/community/tutorials/how-to-write-your-first-python-3-program
 +
*  https://www.digitalocean.com/community/users/ltagliaferri
 +
 +
<!-- comment -->
 +
 +
==== [[#top|^]] python virtual environment set-up, python3-venv ====
 +
May be a good idea to create a python virtual environment on Ubuntu and similar Linux distro hosts, to avoid possibly breaking some globally installed python modules and or configurations.  An article at Linuxize talks about how to do this . . .
 +
 +
*  https://linuxize.com/post/how-to-create-python-virtual-environments-on-ubuntu-18-04/
 +
 +
An example use to run <code>canopen-monitor</code> on a Linux host:
 +
<pre>
 +
  127  source oresat-canopen-monitor/bin/activate
 +
  128  ls
 +
  129  ls canopen_monitor/
 +
  130  vi README.md
 +
  131  canopen-monitor -i can0
 +
  132  deactivate
 +
</pre>
 +
 +
<!-- comment -->
 +
 +
==== [[#top|^]] Python tutorials ====
 +
 +
*  https://www.w3schools.com/python/
 +
Python and ncurses . . .
 +
*  https://docs.python.org/3/library/curses.html
 +
Python interface to serial ports . . .
 +
*  https://maker.pro/pic/tutorial/introduction-to-python-serial-ports
 +
 +
<!-- comment -->
 +
 +
==== [[#top|^]] Features and elements of Python ====
 +
 +
Flow control python constructs . . .
 +
*  https://docs.python.org/3/tutorial/controlflow.html
 +
 +
Numeric library 'numpy', how to install and how to import as described in Activestate dot com article . . .
 +
*  https://www.activestate.com/resources/quick-reads/how-to-import-numpy-in-python/
 +
 +
Tuples . . .
 +
*  https://www.w3schools.com/python/python_tuples.asp
 +
 +
Related to &lt;STDIN&gt; . . .
 +
*  https://stackoverflow.com/questions/3762881/how-do-i-check-if-stdin-has-some-data
 +
<ul>
 +
*  https://stackoverflow.com/questions/53541223/read-python-stdin-from-pipe-without-blocking-on-empty-input?noredirect=1&lq=1
 +
*  https://stackoverflow.com/questions/3731681/capturing-user-input-at-arbitrary-times-in-python?noredirect=1&lq=1
 +
</ul>
 +
 +
Analogous to C data structures, python offers notion of class type object . . .
 +
*  https://www.geeksforgeeks.org/user-defined-data-structures-in-python/
 +
 +
 +
 +
2022-09-22
 +
 +
*  https://stackoverflow.com/questions/240178/list-of-lists-changes-reflected-across-sublists-unexpectedly
 +
 +
<!-- comment -->
 +
 +
=== [[#top|^]] Cmake ===
  
Cmake, a software development tool:
 
 
<ul>
 
<ul>
 
*  https://cmake.org/overview/
 
*  https://cmake.org/overview/
Line 18: Line 131:
 
<ul>
 
<ul>
 
*  https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units
 
*  https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units
 +
</ul>
 +
Open source examples of Direct Rendering Manager:
 +
<ul>
 +
*  https://github.com/freedesktop/mesa-drm
 
</ul>
 
</ul>
  
Line 29: Line 146:
  
 
<!-- comment -->
 
<!-- comment -->
 +
== [[#top|^]] Containers ==
  
 +
<!-- comment -->
 +
=== [[#top|^]] Docker ===
 +
<i> STUB SECTION </i>
 +
<!-- comment -->
 
=== [[#top|^]] Kubernetes ===
 
=== [[#top|^]] Kubernetes ===
  
Line 35: Line 157:
 
<ul>
 
<ul>
 
*  https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
 
*  https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
 +
</ul>
 +
 +
Not a container per se but a virtual machine software:
 +
*  https://www.virtualbox.org/wiki/Downloads
 +
 +
VirtualBox on-line manual
 +
<ul>
 +
*  https://www.virtualbox.org/manual/ch01.html#virt-why-useful
 
</ul>
 
</ul>
  
 
<!-- comment -->
 
<!-- comment -->
  
=== [[#top|^]] FPGAs ===
+
== [[#top|^]] FPGAs ==
  
 
FPGAs and Their Uses . . .
 
FPGAs and Their Uses . . .
Line 49: Line 179:
 
*  https://hackaday.io/page/6698-choosing-fpga-starter-kit-what-to-consider
 
*  https://hackaday.io/page/6698-choosing-fpga-starter-kit-what-to-consider
 
</ul>
 
</ul>
 +
 +
Somewhat dated with a posting date of 2015 . . .
 +
*  https://wonderfulengineering.com/10-best-fpga-boards-for-engineers-and-hobbyists/
 +
 +
ALTERA Cyclone IV EP4CE6 FPGA Development Board Kit Altera EP4CE NIOSII FPGA Board and USB Downloader Infrared Controller
 +
 +
*  https://www.reddit.com/r/FPGA/comments/clgotw/open_source_tools_fpga_programming_on_linux/
 +
 +
<i>"
 +
Well, there is also a Verilog IDE which runs on Linux: https://github.com/rochus-keller/VerilogCreator/blob/master/README.md
 +
 +
And I'm not sure what you mean by "reasonable sized mainstream FPGAs", but there is a full open source toolchain e.g. for Lattice ECP5 and also the Xilinx 7-series will be supported soon.
 +
"</i>
 +
 +
Some FPGA synthesis toolchains:
 +
 +
*  https://github.com/rochus-keller/VerilogCreator
 +
 +
*  electronicdesign.com/resources/whats-the-difference-between/article/21800239/whats-the-difference-between-vhdl-verilog-and-systemverilog
 +
 +
*  http://www.clifford.at/yosys/links.html
 +
 +
*  https://elinux.org/images/7/79/Open-Source_Tools_for_FPGA_Development.pdf
 +
 +
*  http://pepijndevos.nl/2019/08/15/open-source-formal-verification-in-vhdl.html
 +
 +
2021-03-20 Saturday . . .
 +
*  https://symbiflow.github.io/getting-started.html
 +
 +
<!-- comment -->
 +
=== [[#top|^]] Verilog and VHDL ===
 +
 +
Academic notes and resources on Verilog:
 +
<ul>
 +
*  http://web.engr.oregonstate.edu/~traylor/ece474/beamer_lectures/verilog_operators.pdf
 +
</ul>
 +
Recommended books on Verilog:
 +
<ul>
 +
*  https://www.researchgate.net/post/Can_anyone_refer_a_good_book_for_getting_started_with_verilog_HDL_to_implement_design_on_FPGA_Aritx-7
 +
*  https://www.amazon.com/Advanced-Design-Practical-Examples-Verilog/dp/1482593335/
 +
 +
</ul>
 +
  
 
VHDL and Verilog editors and simulators
 
VHDL and Verilog editors and simulators
Line 55: Line 228:
  
 
*  https://github.com/Obijuan/open-fpga-verilog-tutorial
 
*  https://github.com/Obijuan/open-fpga-verilog-tutorial
 +
</ul>
 +
Verilog tutorials recommendations:
 +
<ul>
 +
*  https://hackr.io/tutorials/learn-verilog  . . . Ten best Verilog tutorials
 +
<ul>
 +
*  https://www.cadence.com/en_US/home/training/all-courses/82110.html
 +
*  https://www.doulos.com/knowhow/verilog/
 +
</ul>
 
</ul>
 
</ul>
  
 
<!-- comment -->
 
<!-- comment -->
  
 +
=== [[#top|^]] Open Circuit Design OCD ===
 +
<ul>
 +
*  http://opencircuitdesign.com/qflow/welcome.html
 +
</ul>
  
 +
<!-- comment -->
 +
 +
=== [[#top|^]] Xilinx tools ===
 +
Best download method for Xilinx developer tools and libraries . . .
 +
*  https://forums.xilinx.com/t5/Blog-Archive/Best-way-to-download-Xilinx-Design-Tools/td-p/816995
 +
 +
<!-- comment -->
 +
 +
=== [[#top|^]] FPGA articles at Digikey ===
 +
 +
2021-02-18 Thursday
 +
 +
*  https://www.digikey.com/en/articles/fundamentals-of-fpgas-part-5-getting-started-with-intel-altera-fpgas
 +
*  https://www.digikey.com/en/blog/fpgas-101-a-beginners-guide
 +
 +
<!-- comment -->
 +
 +
=== [[#top|^]] FPGA development kits ===
 +
*  https://www.mouser.com/new/terasic-technologies/terasic-fpga-development-kits-altera-cyclone-iv/
 +
*  https://www.amazon.com/Altera-Cyclone-FPGA-Development-Board/dp/B0188D4ENO/
 +
*  amazon.com/ALINX-ALTERA-Development-EP4CE6-AX301C/dp/B07DBXVMFZ/
 +
 +
<!-- comment -->
 +
 +
=== [[#top|^]] Altera and FPGASoftware site at Intel ===
 +
 +
*  https://fpgasoftware.intel.com/?edition=lite  Quartus Prime Lite Edition
 +
Quartus Prime Lite Edition Software (Device support included)  What's Included?
 +
Quartus-lite-20.1.1.720-linux.tar
 +
Size: 6.4 GB MD5: 0BEBCAECE9D8A03AF9A69A48ADC45634
 +
** Nios II EDS requires you to install an Eclipse IDE manually.
 +
<ul>
 +
*  https://fpgasoftware.intel.com/?edition=lite
 +
</ul>
 +
 +
Altera Quartus Prime Lite version 20.1.1.720 runs and works on Linux Mint / Ubuntu 20.04 LTS.  Some interesting articles on configurations, projects and support for the DE0-Nano board involving Altera Cyclone IV include:
 +
<ul>
 +
*  https://community.intel.com/t5/Programmable-Devices/Multiple-Configuration-File-for-Cyclone-IV-E/m-p/50419#M13121%3Fwapkw=ep4ce22f17c6
 +
</ul>
 +
 +
<!-- comment -->
 +
 +
=== [[#top|^]] SystemVerilog ===
 +
2021-04-25
 +
*  https://www.chipverify.com/systemverilog/systemverilog-data-types-logic-bit
 +
 +
How to load waveform file into SystemVerilog simulation (from Saturday May 22 tutoring session):
 +
*  https://www.youtube.com/watch?v=aIr3c_NbV-U  Simulation with ModelSim: How to load Macro File on Modelsim
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] CAN Protocol and CANOpen ==
 +
 +
Starting point for information on CANOpen and Object Dictionaries used by CANOpen enabled devices (a.k.a. nodes):
 +
 +
<ul>
 +
*  https://canopen.readthedocs.io/en/latest/od.html
 +
*  https://www.kvaser.com/can-protocol-tutorial/##oscilloscopePictures
 +
</ul>
 +
 +
Object Dictionary editor written in C#:
 +
<ul>
 +
*  https://github.com/robincornelius/libedssharp
 +
</ul>
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] USB Protocol ==
 +
 +
*  https://www.electronics-notes.com/articles/connectivity/usb-universal-serial-bus/protocol-data-transfer.php
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] Bluetooth and Nordic Semiconductor chips ==
 +
 +
A Bluetooth 5 USB dongle, designed to work with Nordic's software collection of apps called <b>nRF Connect for Desktop</b>:
 +
<ul>
 +
*  https://www.nordicsemi.com/?sc_itemid={CDCCA013-FE4C-4655-B20C-1557AB6568C9}
 +
 +
*  https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_getting_started%2FUG%2Fcommon%2Fnordic_tools.html&cp=1_0_1
 +
 +
*  https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop
 +
 +
*  https://infocenter.nordicsemi.com/pdf/S132_SDS_v6.0.pdf
 +
</ul>
 +
 +
Some Bluetooth acronyms, starting with Generic ATTributes or GATT:
 +
<ul>
 +
*  GATT . . . Generic Attributes, https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt
 +
</ul>
 +
 +
Nordic nRF52832 supports a "soft device" S132.  This soft device has per above datasheet on page 17 of 103 a SoftDevice Manager.  What is this manager? - TMH
 +
 +
Question:  on page 21 of 103 might "periods of radio inactivity" be a way to reduce power use when a device is paired?
 +
 +
Question:  on page 66, what is "exception mode" in context of executing SoftDevice code?
 +
 +
2021-04-25 - starting a [[nrf52-timer-config|notes page on nRF52 timer/counter configuration]] . . .
 +
<!--
 +
-***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  *
 +
-*  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***
 +
-***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  ***  *
 +
--><hr><hr><hr>
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] Portland Community College courses ==
 +
 +
<ul>
 +
*  https://www.pcc.edu/ccog/?fa=ccog&subject=EET&course=123
 +
</ul>
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] Windows Powershell ==
 +
 +
*  https://www.techrepublic.com/blog/windows-and-office/basic-windows-powershell-commands-you-should-already-know/
 +
*  https://www.brycemcdonald.net/powershell/automation/exchange/2019/04/10/PowerShell-vs-Bash.html
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] Distributed Simulation ==
 +
 +
*  https://www.sciencedirect.com/topics/computer-science/distributed-simulation
 +
 +
<!-- comment -->
 +
 +
== [[#top|^]] Power Spectral Density ==
 +
 +
*  https://blog.endaq.com/why-the-power-spectral-density-psd-is-the-gold-standard-of-vibration-analysis
 +
 +
<!-- comment -->
  
 
== [[#top|^]] Existing skills ==
 
== [[#top|^]] Existing skills ==
Line 67: Line 384:
 
Excerpt of Agile values in a nutshell:
 
Excerpt of Agile values in a nutshell:
  
 +
<ul>
 
<i>
 
<i>
 +
<pre>
 
"Individuals and interactions over processes and tools
 
"Individuals and interactions over processes and tools
  
Line 75: Line 394:
  
 
Responding to change over following a plan.”
 
Responding to change over following a plan.”
 +
</pre>
 
</i>
 
</i>
 +
</ul>
  
 
<!-- comment -->
 
<!-- comment -->

Latest revision as of 20:21, 22 September 2022

Notes page for New Skills and Existing Skills

Keywords: Python virtual environment, python-venv


^ Languages and Software Development Tools

Languages and software development tools too investigate . . .

^ Python scripting language

Note, python scripts and configuration are now part of recent Ubuntu and possibly other Debian based Linux distributions. For this reason there is risk of breaking a host system's OS installation on such Linux hosts, if using python's pip installer util to install python packages in their default global mode. Please see 'setting up python virtual environment' a couple paragraphs further on this page.

Available with an interactive Python session:

:~$ python3
Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> credits
    Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
    for supporting Python development.  See www.python.org for more information.
>>> help
Type help() for interactive help, or help(object) for help about object.
>>> help()

Welcome to Python 3.8's help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at https://docs.python.org/3.8/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.  To quit this help utility and
return to the interpreter, just type "quit".

To get a list of available modules, keywords, symbols, or topics, type
"modules", "keywords", "symbols", or "topics".  Each module also comes
with a one-line summary of what it does; to list the modules whose name
or summary contain a given string such as "spam", type "modules spam".

help> help modules
No Python documentation found for 'help modules'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.

help> modules

Please wait a moment while I gather a list of all available modules...


Python3 "hello world" example . . .


^ python virtual environment set-up, python3-venv

May be a good idea to create a python virtual environment on Ubuntu and similar Linux distro hosts, to avoid possibly breaking some globally installed python modules and or configurations. An article at Linuxize talks about how to do this . . .

An example use to run canopen-monitor on a Linux host:

  127  source oresat-canopen-monitor/bin/activate
  128  ls
  129  ls canopen_monitor/
  130  vi README.md 
  131  canopen-monitor -i can0
  132  deactivate


^ Python tutorials

Python and ncurses . . .

Python interface to serial ports . . .


^ Features and elements of Python

Flow control python constructs . . .

Numeric library 'numpy', how to install and how to import as described in Activestate dot com article . . .

Tuples . . .

Related to <STDIN> . . .

Analogous to C data structures, python offers notion of class type object . . .


2022-09-22


^ Cmake

C++ Programming Lanuage and Topics

2021-02-09 Tuesday - Direct Rendering Manager DRM and related:

Open source examples of Direct Rendering Manager:


QtConcurrent . . .


^ Containers

^ Docker

STUB SECTION

^ Kubernetes

Containers, Kubernets . . .

Not a container per se but a virtual machine software:

VirtualBox on-line manual


^ FPGAs

FPGAs and Their Uses . . .

Somewhat dated with a posting date of 2015 . . .

ALTERA Cyclone IV EP4CE6 FPGA Development Board Kit Altera EP4CE NIOSII FPGA Board and USB Downloader Infrared Controller

" Well, there is also a Verilog IDE which runs on Linux: https://github.com/rochus-keller/VerilogCreator/blob/master/README.md

And I'm not sure what you mean by "reasonable sized mainstream FPGAs", but there is a full open source toolchain e.g. for Lattice ECP5 and also the Xilinx 7-series will be supported soon. "

Some FPGA synthesis toolchains:

  • electronicdesign.com/resources/whats-the-difference-between/article/21800239/whats-the-difference-between-vhdl-verilog-and-systemverilog

2021-03-20 Saturday . . .

^ Verilog and VHDL

Academic notes and resources on Verilog:

Recommended books on Verilog:


VHDL and Verilog editors and simulators

Verilog tutorials recommendations:


^ Open Circuit Design OCD


^ Xilinx tools

Best download method for Xilinx developer tools and libraries . . .


^ FPGA articles at Digikey

2021-02-18 Thursday


^ FPGA development kits


^ Altera and FPGASoftware site at Intel

Quartus Prime Lite Edition Software (Device support included)  What's Included?
Quartus-lite-20.1.1.720-linux.tar
Size: 6.4 GB MD5: 0BEBCAECE9D8A03AF9A69A48ADC45634
** Nios II EDS requires you to install an Eclipse IDE manually.

Altera Quartus Prime Lite version 20.1.1.720 runs and works on Linux Mint / Ubuntu 20.04 LTS. Some interesting articles on configurations, projects and support for the DE0-Nano board involving Altera Cyclone IV include:


^ SystemVerilog

2021-04-25

How to load waveform file into SystemVerilog simulation (from Saturday May 22 tutoring session):


^ CAN Protocol and CANOpen

Starting point for information on CANOpen and Object Dictionaries used by CANOpen enabled devices (a.k.a. nodes):

Object Dictionary editor written in C#:


^ USB Protocol


^ Bluetooth and Nordic Semiconductor chips

A Bluetooth 5 USB dongle, designed to work with Nordic's software collection of apps called nRF Connect for Desktop:

Some Bluetooth acronyms, starting with Generic ATTributes or GATT:

Nordic nRF52832 supports a "soft device" S132. This soft device has per above datasheet on page 17 of 103 a SoftDevice Manager. What is this manager? - TMH

Question: on page 21 of 103 might "periods of radio inactivity" be a way to reduce power use when a device is paired?

Question: on page 66, what is "exception mode" in context of executing SoftDevice code?

2021-04-25 - starting a notes page on nRF52 timer/counter configuration . . .





^ Portland Community College courses


^ Windows Powershell


^ Distributed Simulation


^ Power Spectral Density


^ Existing skills

Excerpt of Agile values in a nutshell:

    "Individuals and interactions over processes and tools
    
    Working software over comprehensive documentation
    
    Customer collaboration over contract negotiation
    
    Responding to change over following a plan.”