Difference between revisions of "User:Ted"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (^ Quick Links)
m (^ Technology and Tools: NTP pool organization.)
 
(248 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
<center>
 
<center>
-- 2017-07-21 &#x0936;&#x0941;&#x0915;&#x094d;&#x0930;&#x0935;&#x093e;&#x0930; --<br />
+
-- 2017-07-21 [[Days_of_the_week|&#x0936;&#x0941;&#x0915;&#x094d;&#x0930;&#x0935;&#x093e;&#x0930;]] --<br />
 
User Ted's wiki page at [https://neelanurseries.com Neela Nurseries]<br />
 
User Ted's wiki page at [https://neelanurseries.com Neela Nurseries]<br />
 +
[[musica|musica, संगीत]]
 
</center>
 
</center>
  
Line 8: Line 9:
 
== OVERVIEW ==
 
== OVERVIEW ==
  
<p>This wiki document a starting point of Ted's notes on Linux use and configuration, Open Source Software and web development. Recent summer 2017 efforts of Ted's are focused on several high-level programming language and web development frameworks, which can be studied and used separately but are often glued together to achieve meaningful tasks and end-user tools and interfaces.  This personal page of Ted's notes on Neela Nurseries wiki not yet well organized, but here as a quick stash point for holding useful references, and a starting point for more complete and formal documentation.</p>
+
<p>This wiki document a starting point of Ted's notes on Linux use and configuration, Open Source Software and web development.
 +
</p>
 +
<p>This local notes page on Neela Nurseries wiki not yet well organized, but here as a quick stash point for holding useful references and a starting point for more complete and formal documentation.</p>
  
 +
[[Musica|Music notes here]] &nbsp;:::&nbsp; [[Microcontrollers#nn_keywords_template|NN keywords template]] &nbsp;:::&nbsp; [[RTOS#anchor_devzone_forum_posts|Nordic Devzone posts]] &nbsp;:::&nbsp; [https://community.jaredwolff.com/ CircuitDojo Forum] &nbsp;:::&nbsp; [[#to_untangle_c_declarations|Untangling complex C declarations]]
  
== [[#top|^]] Quick Links ==
+
{|
 +
|-
 +
|Keywords:  <code>Untangling</code> <code>Detangling</code> <code>[[#untangling_complex_c_delcarations|Untangling C Declarations]]</code> <code>[[Devzone_posts|Nordic Devzone]]</code> <code>[[Firmware_goals|firmware goals]]</code>
 +
|}
  
 +
<!-- comment -->
  
[https://en.wikipedia.org/wiki/Help:Table wiki table help]
+
<span id="quick_links_user_ted"></span><span id="nn_anchor_technical_links"></span>
  
 +
== [[#top|^]] Technology and Tools ==
  
 +
Quick links to local notes and references: <!--, also available but not consistently synchronized with [[quick_links|stand alone page]] on this wiki: -->
  
 
{| class="wikitable"
 
{| class="wikitable"
|-
 
! scope="col" style="min-width: 250px; max-width: 300px;" | 1 <!-- style="width: 250px;" -->
 
! scope="col" style="min-width: 250px; max-width: 300px;" | 2
 
! scope="col" style="min-width: 250px; max-width: 300px;" | 3
 
  
|-
+
|- <!-- TABLE ROW : topic group ids -->
| style="vertical-align: top;" |
+
! scope="col" style="min-width: 250px; width: 20%;" | 1
[[to-do|TO DO]]
+
! scope="col" style="min-width: 250px; width: 20%;" | 2
[[bulletin-board|NN bulletin board]]
+
! scope="col" style="min-width: 250px; width: 20%;" | 3
[[terminology|Terminology pages]]
+
! scope="col" style="min-width: 250px; width: 20%;" | 4
 +
 
 +
|- <!-- TABLE ROW : topic group names -->
 +
! scope="col" style="min-width: 250px; width: 20%;" | Technical groups
 +
! scope="col" style="min-width: 250px; width: 20%;" | Hardware references
 +
! scope="col" style="min-width: 250px; width: 20%;" | Operating systems
 +
! scope="col" style="min-width: 250px; width: 20%;" | Tools and Toolchains
  
 +
<!-- Note on CSS, 'style' tag supports 'width' property:  style="width: 250px;" -->
 +
|- <!-- TABLE ROW : topic groups -->
 
| style="vertical-align: top;" |
 
| style="vertical-align: top;" |
[[Oresat-notes|Oresat notes]]
 
  
| style="vertical-align: top;" | ---
+
<ul><!-- TOPIC GROUP NAME "Technical groups" -->
|}
 
  
<!-- comment -->
+
<li> [https://tldp.org/ The Linux Documentation Project]
 +
<li> [https://www.kernel.org/ Linux kernel dot org]
 +
<li> [https://hackaday.io/ Hackaday]
 +
<li> [https://circuitcellar.com/ Circuit Cellar]
 +
<li> [https://devzone.nordicsemi.com|Nordic Devzone]
 +
<li> [[Oresat-notes|Oresat notes]]
  
 +
<li> <i>Embedded Muse . . . need URL</i>
 +
<li> [https://www.synopsys.com/designware-ip/technical-bulletin/true-random-number-generator-security-2019q3.html true RNG]
 +
<li> [[nordic_devzone_posts|Devzone posts and others]]
  
__TOC__
+
</ul>
  
 +
| style="vertical-align: top;" |
  
 +
<ul><!-- TOPIC GROUP NAME "Hardware references" -->
  
<!-- SECTION - Countries and Politics -->
+
<li>  [[radio|radio]]
 +
<li>  [[basic_components|basic components]]
 +
<li>  [[integrated_circuits|integrated circuits]]
 +
<li>  [[amplifiers|amplifiers]]
 +
<li>  [[cell modules|modules_celulares]]
 +
<li>  [[Microcontrollers|Microcontrollers]]
 +
<li>  [[dev_boards|dev boards]]
 +
<li>  [[Arduino notes|arduino-notes]]
 +
<li>  [[Raspberry_pi|Raspberry Pi notes]]
 +
<li>  [[memory_devices|memory devices]]
 +
<li>  [[LoRa|LoRa technology]]
 +
<li>  [[firmware_programmers|firmware programmers]]
 +
<li>  [https://www.baldengineer.com/low-side-vs-high-side-transistor-switch.html Baldengineer dot com]
 +
<li>  [[debuggers|JLink debugger notes]]
 +
<li> [[multi-core|multi-core RTOS notes]]
  
=== [[#top|&uarr;]] [[#references|&darr;]] <i> Countries and politics </i> ===
+
</ul>
  
*  https://www.nytimes.com/2018/07/28/world/americas/china-latin-america.html
+
| style="vertical-align: top;" |
  
 +
<ul><!-- TOPIC GROUP NAME "Operating systems" -->
  
 +
<li>  [[Zephyr|Zephyr]]
 +
<li>  [[Containers_and_virtual_machines|Containers and VMs]]
 +
<li>  [[RTOS|RTOS notes]]
 +
<li>  [[ThreadX_notes|ThreadX notes]]
 +
<!-- local pages to review:
 +
<li>  [[Zephyr_toolchain|Zephyr toolchain]]
 +
<li>  [[RTOS#.5E_Zephyr_RTOS|Zephyr, west (RTOS page section)]]
 +
<li>  [[RTOS_Zephyr|Zephyr RTOS (new page 8-18)]]
 +
-->
 +
<li>  [[RTOS_topics_general|general RTOS topics]]
 +
</ul>
  
<!-- comment -->
+
| style="vertical-align: top;" |
  
<!-- SECTION - Community, Culture, the World -->
+
<ul><!-- TOPIC GROUP NAME "Tools and toolchains" -->
  
== [[#top|&uarr;]] [[#references|&darr;]]<!--[[new_page|&darr;]]--> Community, Culture, the World ==
+
<li> [[Make_and_GCC|arm-none-eabi-gcc, gcc, make]]
 +
<li> [[gdb|gdb]] <font size=1>and general debugging</font>
 +
<li> [[ld|ld linker]]
 +
<li> [[clang|clang]]
 +
<li> [[Openocd-setup|openocd]]
 +
<li> [[pyocd|pyocd]]
 +
<li> [[cmake|cmake notes]]
 +
<li> [[west_zephyr_project_manager|west meta-tool]] <!-- [https://docs.zephyrproject.org/latest/guides/west/index.html west meta-tool] -->
 +
<li> [[west_manifest_files|west manifest files]]
 +
<li> [[segger_nordic_version|Segger Nordic version]]
 +
<li> [[ctags|ctags]] <!-- [[Bazel build tool|bazel_notes]] -->
 +
<li> [[version_control|version control]]
 +
</ul>
  
Following sections on Community, Geography, Culture, Musica and the world may become a separate wiki page in the future.
+
|} <!-- CLOSE OF WIKI TABLE -->
 +
<!--
 +
==== <i>edit point</i> ====
 +
-->
 +
{| class="wikitable"
  
 +
|- <!-- TABLE ROW : topic group ids -->
 +
! scope="col" style="min-width: 250px; width: 20%;" | 5
 +
! scope="col" style="min-width: 250px; width: 20%;" | 6
 +
! scope="col" style="min-width: 250px; width: 20%;" | 7
 +
! scope="col" style="min-width: 250px; width: 20%;" | 8
  
<!-- comment -->
+
|- <!-- TABLE ROW : topic group names -->
 +
! scope="col" style="min-width: 250px; width: 20%;" | Documentation
 +
! scope="col" style="min-width: 250px; width: 20%;" | Programming languages
 +
! scope="col" style="min-width: 250px; width: 20%;" | Programming languages
 +
! scope="col" style="min-width: 250px; width: 20%;" | Data Integrity
  
=== [[#top|&uarr;]] [[#references|&darr;]] Geography and Place ===
+
|- <!-- TABLE ROW : topic groups -->
 +
| style="vertical-align: top;" |
  
https://www.usatoday.com/border-wall/story/flight-over-entire-us-mexico-border-fence/605855001/
+
<ul><!-- TOPIC GROUP NAME "Documentation" -->
 +
<li> [https://www.nasa.gov/seh/appendix-c-how-to-write-a-good-requirement NASA Requirements How-To]
 +
<li> [[Presentation_tools|presentation tools]]
 +
<li> [[doxygen_notes|Doxygen notes]]
 +
<li> [[rst|Restructured Text (rst)]]
 +
</ul>
 +
 
 +
| style="vertical-align: top;" |
 +
 
 +
<ul><!-- TOPIC GROUP NAME "Programming languages" -->
 +
<li> [[assembly_language|assembly]]
 +
<li> [[C_programming_notes|C]]
 +
<li> [[Device_tree|Device Tree and dts]]
 +
<li> [[Kconfig|Kconfig]]
 +
<li> [[shell|shell]]
 +
</ul>
 +
 
 +
| style="vertical-align: top;" |
 +
 
 +
<ul><!-- TOPIC GROUP NAME "Programming languages" -->
 +
<li> [https://ada-lang.io/ Ada]
 +
<li> [https://www.rust-lang.org/ Rust]
 +
<li> [https://inko-lang.org/ Inko]
 +
<li> [[Python_notes|Python notes]]
 +
<li> [[Perl|Perl]]
 +
</ul>
  
*  Morocco weather climate and agriculture . . .
+
| style="vertical-align: top;" |
**  [http://www.our-africa.org/morocco/climate-agriculture Morocco's climate - Our Africa site]
 
**  http://www.essaouira.nu/ecology_climate.htm
 
**  http://www.worldbank.org/en/news/feature/2015/11/23/green-growth-putting-morocco-in-the-lead-against-climate-change
 
  
*  [https://www.sesptsa.org/featured/2018-tree-recycling/ Southeast Environmental School PTSA]
+
<ul><!-- TOPIC GROUP NAME "Data Integrity" -->
 +
<li> [[data_integrity_methods|data integrity methods]]
 +
<li> [[programming_constructs|programming constructs]]
 +
</ul>
  
*  [http://www.lensjoy.com/gallery/20.htm Tsagaglalal 'She Who Watches']
+
|} <!-- CLOSE OF WIKI TABLE -->
  
 
<!--
 
<!--
*  https://workbasedlearning.pnnl.gov/pals/resource/cards/bunchgrass.stm
+
==== <i>edit point </i> ====
*  http://calscape.org/Festuca-idahoensis-(Idaho-Fescue) . . . includes mention of purple needlegrass
 
*  https://en.wikipedia.org/wiki/Nassella_pulchra
 
  *  https://en.wikipedia.org/wiki/List_of_California_native_plants#Common_grasses
 
  *  https://en.wikipedia.org/wiki/Category:Native_grasses_of_California
 
  * 
 
 
-->
 
-->
 +
{| class="wikitable"
  
 +
|- <!-- TABLE ROW : topic group ids -->
 +
! scope="col" style="min-width: 250px; width: 20%;" | 9
 +
! scope="col" style="min-width: 250px; width: 20%;" | 10
 +
! scope="col" style="min-width: 250px; width: 20%;" | 11
 +
! scope="col" style="min-width: 250px; width: 20%;" | 12
  
*  https://lebanonuntravelled.com/iris-sofarana-endemic-lebanese-flower/  Iris sofarana endemic to Lebanon
+
|- <!-- TABLE ROW : topic group names -->
 +
! scope="col" style="min-width: 250px; width: 20%;" | Technologies
 +
! scope="col" style="min-width: 250px; width: 20%;" | Local works
 +
! scope="col" style="min-width: 250px; width: 20%;" | Local works
 +
! scope="col" style="min-width: 250px; width: 20%;" | Code Libraries
  
 +
|- <!-- TABLE ROW : topic groups -->
 +
| style="vertical-align: top;" |
  
<!-- comment -->
+
<ul><!-- TOPIC GROUP 9 NAME "Technologies" -->
  
=== [[#top|&uarr;]] [[#references|&darr;]] People ===
+
<li> [https://cartesiam-neai-docs.readthedocs-hosted.com/ Cartesiam]
 +
<li> [https://cartesiam-neai-docs.readthedocs-hosted.com/studio/studio.html#ii-project-creation Cartesiam AI Studio]
 +
<li> [[cybersecurity|security topics]]
 +
<li> [[wireless_communications|Wireless communications]]
 +
</ul>
  
Cultural and envinrmental:
+
| style="vertical-align: top;" |
<ul>
+
 
*  https://www.hcn.org/issues/51.6/tribal-affairs-in-california-the-karuk-tribe-fights-a-growing-wildfire-threat-and-a-lack-of-funding
+
<ul><!-- TOPIC GROUP 10 NAME "Local works" -->
</ul>
 
  
 +
<li>[[zephyr_building_blocks|Zephyr building blocks <font size=1>reference</font>]]<br />
 +
^^^ <i>NEEDS ORGANIZATION</i> ^^^
  
*  https://www.opb.org/radio/programs/bbc-outlook/
+
<li>[[zephyr_device_driver_model|Zephyr device drivers, Jared Wolff<font size=1>study</font>]] <font size="1"><span style="background:#e6ffcc;>&nbsp;</span><span style="background:#ffffcc;>&nbsp;</span><span style="background:#ffe6cc;>&nbsp;</span><span style="background:#ffb3b3;>&nbsp;</span></font><br />
<ul>
+
<li>[https://github.com/tedhavelka/kionix-driver-demo Zephyr driver demo]
https://www.bbc.co.uk/programmes/w3cswsmc
+
<li>[[nrf_modem_library_notes|nRF modem lib <font size=1>study</font>]]
*  https://www.cnn.com/style/article/italy-umbrella-maker-talarico/index.html
+
<!-- vi /home/cpguest/embedded/ncs/v1.6.1/nrf/lib/nrf_modem_lib/nrf_modem_lib.c -->
 +
<li>[[spi_device_tree_source_code|SPI device tree source code]]
 +
<li> [[Pico-sdk_studies|RPi Pico SDK studies]]
 +
<li> [[Firmware_goals|firmware goals]]
 
</ul>
 
</ul>
  
 +
| style="vertical-align: top;" |
 +
 +
<ul><!-- TOPIC GROUP 11 NAME "Local works" -->
  
Encontrado 2019-12-30 lunes, commentario sobre Mahatma Gandhi:
+
<li>[[nrf_sample_app_aws_iot|sample aws_oit <font size=1>study</font>]]<br />
<ul>
+
<li>[[zephyr_rtos_threads|Zephyr RTOS threads <font size=1> </font>]]<br />
*  https://www.kolorkomplex.com/kolorkomplex-culture/2017/1/4/mahatma-gandhi
+
<li>[[zephyr_in_tree_driver_use|In-tree driver]]<br />
 +
<li>[[iis2dh|ST Micro IIS2DH]]<br />
 +
<li>[[zephyr_board_porting|Zephyr board porting]]<br />
 +
<li>[[i2c_driver_notes|I2C driver notes]]
 
</ul>
 
</ul>
  
 +
| style="vertical-align: top;" |
  
Tech authors, astronomy, more Linux reference material:
+
<ul><!-- TOPIC GROUP 12 NAME "Code libraries" -->
  
<ul>
+
<li> [[Nordicsemi-software-development-kit|Nordic nrf-sdk]]
*  https://www.howtogeek.com/author/lorikaufman/
+
<li> [[Zephyr-sdk-install-and-config|Zephyr SDK installation notes]]
*  https://www.theatlantic.com/science/archive/2017/05/aliens-on-your-packard-bell/527445/
+
<li> [[CMSIS_notes|CMSIS notes]]
 +
<li> [[curl_notes|libcurl notes]]
 +
<li> [[MCUXpresso_SDK|MCUXpresso SDK]]
 +
<li> [[NXP_HAL|NXP LPC HAL]]
 
</ul>
 
</ul>
  
<!-- comment -->
+
|} <!-- CLOSE OF WIKI TABLE -->
 +
<!--
 +
|-
 +
| scope="col" style="min-width: 250px; max-width: 300px; column-span:4;" |
 +
==== <i>edit point</i> ====
 +
-->
 +
{| class="wikitable"
  
=== [[#top|&uarr;]] [[#references|&darr;]] Human languages ===
+
|- <!-- TABLE ROW : topic group ids -->
 +
! scope="col" style="min-width: 250px; width: 20%;" | 13
 +
! scope="col" style="min-width: 250px; width: 20%;" | 14
 +
! scope="col" style="min-width: 250px; width: 20%;" | 15
 +
! scope="col" style="min-width: 250px; width: 20%;" | 16
  
* [[nn-english-hindi-glossary|English-Hindi glossary at NN]]
+
|- <!-- TABLE ROW : topic group names -->
 +
! scope="col" style="min-width: 250px; max-width: 300px;" | Open software projects
 +
! scope="col" style="min-width: 250px; max-width: 300px;" | Comms protocols
 +
! scope="col" style="min-width: 250px; max-width: 300px;" | Encodings
 +
! scope="col" style="min-width: 250px; max-width: 300px;" | Hardware issues
  
*  [https://www.omniglot.com/writing/devanagari_conjuncts.php Devanagari conjunct characters]
+
|- <!-- TABLE ROW : topic groups -->
 +
| style="vertical-align: top;" |
  
* [[cool_new_words|cool new words encountered . . .]]
+
<ul><!-- TOPIC GROUP NAME "open software projects" -->
 +
<li> [https://github.com/apache/httpd/tree/trunk Apache2 webserver]
 +
<li>  [https://www.mcuboot.com/about/ MCUBoot open governance]
 +
</ul>
  
*  [https://www.pinterest.com/pin/836191855785684878/ US standard Braille and other symbol and language systems]
+
| style="vertical-align: top;" |
  
- 2017-12-15 FRI -
+
<ul><!-- TOPIC GROUP NAME "comms protocols" -->
 +
<li>  [[i2c|I2C]]
 +
<li>  [https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi/all SPI Sparkfun tutorial]
 +
<li>  [[protocol_SPI|SPI]]
 +
<li>  [https://infocenter.nordicsemi.com/pdf/nrf91_at_commands_v1.2.pdf AT commands]
 +
<li>  [[lte_at_command_notes|LTE AT command notes]]
 +
<li>  [https://www.hivemq.com/blog/mqtt-essentials-part2-publish-subscribe/ MQTT 2/10 intro series]
 +
<li>  [[mqtt_notes|MQTT notes]]
 +
<li>  [[swd|notes serial wire debug SWD]]
 +
<li>  [[bootloading|notes serial bootloading]]
 +
<li>  [[CAN|CAN]]
 +
</ul>
 +
 
 +
| style="vertical-align: top;" |
 +
 
 +
<ul><!-- TOPIC GROUP NAME "encodings" -->
 +
<li>  [[json|JSON notes]] <!-- [https://www.w3schools.com/whatis/whatis_json.asp JSON] -->
 +
<li>  [https://www.tutorialspoint.com/protobuf/index.htm Protobuf]
 +
<li>  [[protobuf_notes|Protobuf notes]]
 +
<li>  [[intel_hex_format|Intel hex format]]
 +
<li>  [[ASCII|ASCII]]
 +
<li>  [[cbor|cbor notes]]
 +
</ul>
 +
 
 +
| style="vertical-align: top;" |
  
*  https://etohautakuva.deviantart.com/art/Taugedei-Abugida-Alphasyllabary-Cheatsheet-610277914
+
<ul><!-- TOPIC GROUP NAME "Hardware" -->
*  http://langventure.strikingly.com/blog/hindi-abugida-in-action
+
<li> [[hardware_studies_specific|specific hardware studies]]
*  https://wsotw.weebly.com/blog/alphabets-abugidas-and-syllabaries
+
<li> [[video_games|Classic video games]]
 +
</ul>
  
 +
|} <!-- CLOSE OF WIKI TABLE -->
 
<!--
 
<!--
Gaurav
+
|-
Gaurav
+
| scope="col" style="min-width: 250px; max-width: 300px; column-span:4;" |
7 months ago
+
==== <i>edit point</i> ====
ओ पालनहारे निर्गुण और न्यारे
+
-->
ओ पालनहारे निर्गुण और न्यारे
+
{| class="wikitable"
तुमरे बिन हमरा कौनों नहीं
+
 
हमरी उलझन सुलझाओं भगवान
+
|- <!-- TABLE ROW : topic group ids -->
तुमरे बिन हमरा कौनों नहीं
+
! scope="col" style="min-width: 250px; width: 20%;" | 17
तुम्हे हमका हो संभाले
+
! scope="col" style="min-width: 250px; width: 20%;" | 18
तुम्हे हमरे रखवाले
+
! scope="col" style="min-width: 250px; width: 20%;" | 19
तुमरे बिन हमरा कौनों नहीं
+
! scope="col" style="min-width: 250px; width: 20%;" | 20
तुमरे बिन हमरा कौनों नहीं
 
  
चंदा में तुम्ह भरे हो चांदनी
+
|- <!-- TABLE ROW : topic group names -->
सूरज में उजाला तुम्ह से
+
! scope="col" style="min-width: 250px; max-width: 300px;" | Local stuff
ये गगन है मगन
+
! scope="col" style="min-width: 250px; max-width: 300px;" | Academic
तुम्हे तो दिए हो इससे तारे
+
! scope="col" style="min-width: 250px; max-width: 300px;" | Cloud based services
भगवान ये जीवन ना सवारोगे
+
! scope="col" style="min-width: 250px; max-width: 300px;" | Interesting projects
तो क्या कोई सवारे
 
ओ पालनहारे निर्गुण और न्यारे
 
तुमरे बिन हमरा कौनों नहीं
 
तुमरे बिन हमरा कौनों नहीं
 
  
जो सनों तो कहे प्रभुजी हमरी है बिनती
+
|- <!-- TABLE ROW : topic groups -->
दुखी हैं को धीरज दो
+
| style="vertical-align: top;" |
हारे नहीं वो कभी दुख से
 
तुम निर्बल को रक्षा के
 
रेह पाए निर्बल सुख से
 
भक्ति को शक्ति को
 
भक्ति को शक्ति को
 
जग के जो स्वामी हो
 
इतनी तो अरज सुनो
 
है पथ में अंधियारे
 
देदो वरदान में उजियारे
 
  
ओ पालनहारे निर्गुण और न्यारे
+
<ul><!-- TOPIC GROUP NAME "" -->
तुमरे बिन हमरा कौनों नहीं
 
हमरी उलझन सुलझाओं भगवान
 
तुमरे बिन हमरा कौनों नहीं
 
  
ओ पालनहारे निर्गुण और न्यारे
+
<li>  [[bulletin-board|NN bulletin board]]
तुमरे बिन हमरा कौनों नहीं
+
<li>  [[terminology|Terminology pages]]
हमरी उलझन सुलझाओं भगवान
+
<li>  [[to-do|TO DO]]
तुमरे बिन हमरा कौनों नहीं
+
<li>  [[Bash_start_up_script|bookmarker]]
-->
+
</ul>
  
<!-- comment -->
+
| style="vertical-align: top;" |
  
== - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
+
<ul><!-- TOPIC GROUP NAME "" -->
  
<!-- comment -->
+
[[ece-reference-materials|ECE reference materials]]
 +
</ul>
  
- 2017-10-05 - Ted noting here that would be good to have a [[technical_glossary|technical glossary]] to make easily accessible all the technical terms which arise in daily work and exploration of technologies . . .
+
| style="vertical-align: top;" |
  
 +
<ul><!-- TOPIC GROUP NAME "" -->
  
- 2017-10-19 - TO-DO list:
+
<li>  [https://hub.docker.com/ Docker Hub site]
 +
<li>  [https://bifravst.github.io/bifravst/docs/aws/GettingStarted.html bifravst]
 +
<li>  [https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html Amazon S3 versioning]
 +
<li>  [[AWS_notes|AWS notes]]
 +
<li>  [[character_sequences|CLI and character sequences]]
 +
<li>  [https://www.ntppool.org/en/ NTP Pool organization]
 +
</ul>
  
  *  [&#10003;] complete LFS 8.1 exercise
+
| style="vertical-align: top;" |
  *  [ ] configure xserver to run stand-along without window manager (seems to be working on 1604 spare LTS host . . .)
 
  *  [ ] set up two mysql servers on one host
 
  *  [ ] write "best photo contribution" practices page for ASI
 
  *  [ ] code "re-use or reference text block" module for MediaWiki <i> &lt;-- this needs further explanation - TMH </i>
 
  *  [ ] in local Neela Nurseries PHP code base, amend hybrid building of nav menus to include highlighting parent page of given viewed page
 
  *  [ ] in OpenCart 2.x find way to customize top-of-page information and links
 
  *  [ ] in OpenCart 2.x find way to format product lists as compact lists, like Gmail inbox or Windows 'list view' of files
 
  
 +
<ul><!-- TOPIC GROUP NAME "Interesting projects" -->
  
<!-- comment -->
+
<li> [https://devzone.nordicsemi.com/nordic/nrf-connect-sdk-guides/b/software/posts/enter-the-multi-nus-a-simple-wireless-uart-network nRF multi-NUS]
 +
<li> [https://docs.zephyrproject.org/latest/samples/drivers/led_ws2812/README.html WS2812 Zephyr driver]
 +
<li> [https://github.com/EseyeIoT/EseyeTelemetryModule-STM32_library Eseye IoT telem STM32]
 +
</ul>
  
== [[#top|&uarr;]] [[#references|&darr;]] GNU Make and GCC Tools ==
+
|} <!-- CLOSE OF WIKI TABLE -->
<br />
 
<span style="background-color:#ffd0d0; border:maroon 1px dotted; padding:10px;"><i>2018-07-18 NOTE:  this section to be moved to separate [[Make_and_GCC|GCC and Make article]] . . .  - TMH</i></span>
 
  
<br />
+
== [[#top|^]] temporary section ==
  
* https://www.gnu.org/software/make/manual/html_node/Special-Targets.html
+
Note: useful to add ratings of completeness and organization to above links that point to local wiki pages.
  
Using macros with gcc:
+
*  https://devzone.nordicsemi.com/nordic/cellular-iot-guides/b/software-and-protocols/posts/connecting-to-aws-cloud-services-using-the-nrf9160
*  https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html  . . . gcc summary of options
 
*  https://gcc.gnu.org/onlinedocs/cpp/Macros.html          . . . defining macros with -Dmacro_name=expression
 
*  https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options  . . . -MT and other preprocessor options
 
  
Code libraries and shared objects, expressing paths to them:
+
*  https://community.helium.com/t/new-to-helium-start-here/80
*  https://gist.github.com/gubatron/32f82053596c24b6bec6
+
http://iotfactory.eu/lorawan-world-frequency-map-lora-sigfox-nbiot-telecom-operators-per-country/  LoRaWAN world frequency map (not exhaustive)
  
gcc.gnu.org - 3.15 Specifying subprocesses and switches passed to them
+
Always useful to review, wiki table syntax help:
*  https://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Spec-Files.html#Spec-Files
 
  
gcc how to show macros and pre-processor defines:
+
  [https://en.wikipedia.org/wiki/Help:Table wiki table help]
*  https://stackoverflow.com/questions/2224334/gcc-dump-preprocessor-defines
+
<!-- comment -->
  
 +
Wiki-driven table of contents here:
  
<!-- comment -->
+
__TOC__
  
== [[#top|&uarr;]] [[#references|&darr;]] OpenOCD and Eagle set up notes ==
 
  
Eagle fails to start due to symbols not resolve-able . . .
 
  
  *  https://forums.autodesk.com/t5/eagle-forum/can-t-run-eagle-on-debian-10-testing/td-p/8312348
+
<!-- SECTION - Countries and Politics -->
  
Automake or autoconf or autoreconf -i fails for LIBTOOL undefined . . .
+
=== [[#top|&uarr;]] [[#references|&darr;]] <i> Countries and politics </i> ===
 
 
  *  https://stackoverflow.com/questions/18978252/error-libtool-library-used-but-libtool-is-undefined
 
  
 +
*  https://www.nytimes.com/2018/07/28/world/americas/china-latin-america.html
  
  
  *  https://stackoverflow.com/questions/43565009/failing-to-enable-stlink-in-openocd
 
  
 
<!-- comment -->
 
<!-- comment -->
  
<!-- SECTION - Mediawiki Issues and Notes -->
+
<!-- SECTION - Community, Culture, the World -->
  
== [[#top|&uarr;]] [[#references|&darr;]] Mediawiki Issues and Notes ==
+
== [[#top|&uarr;]] [[#references|&darr;]]<!--[[new_page|&darr;]]--> Community, Culture, the World ==
  
- 2018-01-22 -
+
Following sections on Community, Geography, Culture, Musica and the world may become a separate wiki page in the future.
While editing sidebar of Mediawiki instance at Neela, Ted noticing a difference in Mediawiki's treatment of hyperlinks in the sidebar.  Links to external sites don't appear, and links to internal pages require single square brace enclosure to appear with alternate text as a link label . . .
 
  
<pre>
 
<!--
 
** [https://buildroot.org/downloads/manual/manual.html Buildroot manual]
 
<a href="https://buildroot.org/downloads/manual/manual.html">Buildroot manual</a>
 
  
- 2018-01-22 MON -
+
<!-- comment -->
** https://wiki.neelanurseries.com/index.php/Nn_embedded_linux_notes#.E2.86.91_.E2.86.93_Buildroot|Buildroot notes . . . only 'notes' shows as non-link text - TMH
 
-->
 
</pre>
 
  
 +
=== [[#top|&uarr;]] [[#references|&darr;]] Geography and Place ===
  
=== [[#top|^]] File uploads ===
+
*  https://www.usatoday.com/border-wall/story/flight-over-entire-us-mexico-border-fence/605855001/
  
- 2018-06-29 FRI -
+
*  Morocco weather climate and agriculture . . .
Issue adding .txt type files to whitelist of Mediawiki installation uploadable files:
+
**  [http://www.our-africa.org/morocco/climate-agriculture Morocco's climate - Our Africa site]
 +
**  http://www.essaouira.nu/ecology_climate.htm
 +
**  http://www.worldbank.org/en/news/feature/2015/11/23/green-growth-putting-morocco-in-the-lead-against-climate-change
  
<pre>
+
*  [https://www.sesptsa.org/featured/2018-tree-recycling/ Southeast Environmental School PTSA]
Action failed
 
  
Could not open lock file for "mwstore://local-backend/local-public/e/ec/Asi-officers-list-2018.txt".
+
*  [http://www.lensjoy.com/gallery/20.htm Tsagaglalal 'She Who Watches']
  
Return to Main Page.
+
<!--
</pre>
+
*  https://workbasedlearning.pnnl.gov/pals/resource/cards/bunchgrass.stm
 +
*  http://calscape.org/Festuca-idahoensis-(Idaho-Fescue) . . . includes mention of purple needlegrass
 +
*  https://en.wikipedia.org/wiki/Nassella_pulchra
 +
  *  https://en.wikipedia.org/wiki/List_of_California_native_plants#Common_grasses
 +
  *  https://en.wikipedia.org/wiki/Category:Native_grasses_of_California
 +
  * 
 +
-->
  
[[media:arrow-up-prelight.png|200px|thumb|left|png type image]] to test file uploads of allowed image type . . .<br />
 
[[media:arrow-up-prelight.png]]
 
  
 +
*  https://lebanonuntravelled.com/iris-sofarana-endemic-lebanese-flower/  Iris sofarana endemic to Lebanon
  
  
Following link may have helpful information:
+
<!-- comment -->
  
*  https://www.mediawiki.org/wiki/Topic:Qlib7k3p2zvi7pkq
+
=== [[#top|&uarr;]] [[#references|&darr;]] People ===
 +
 
 +
Cultural and envinrmental:
 +
<ul>
 +
*  https://www.hcn.org/issues/51.6/tribal-affairs-in-california-the-karuk-tribe-fights-a-growing-wildfire-threat-and-a-lack-of-funding
 +
</ul>
  
- 2018-07-25 WED -
 
  
*  https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads  . . . be sure to examine $wgFileBlacklist in addition to $wgFileExtensions,
+
*  https://www.opb.org/radio/programs/bbc-outlook/
 +
<ul>
 +
*  https://www.bbc.co.uk/programmes/w3cswsmc
 +
*  https://www.cnn.com/style/article/italy-umbrella-maker-talarico/index.html
 +
</ul>
  
  
<!-- comment -->
+
Encontrado 2019-12-30 lunes, commentario sobre Mahatma Gandhi:
 +
<ul>
 +
*  https://www.kolorkomplex.com/kolorkomplex-culture/2017/1/4/mahatma-gandhi
 +
</ul>
  
=== [[#top|^]] Mediawiki layout topics like multi column layout ===
 
  
- 2018-11-30 FRI -
+
Tech authors, astronomy, more Linux reference material:
*  https://www.mediawiki.org/wiki/Topic:Ube2zt7nhfk51l3s
 
  
 +
<ul>
 +
*  https://www.howtogeek.com/author/lorikaufman/
 +
*  https://www.theatlantic.com/science/archive/2017/05/aliens-on-your-packard-bell/527445/
 +
</ul>
  
 
<!-- comment -->
 
<!-- comment -->
  
<!-- SECTION - Web Site Building Blocks -->
+
=== [[#top|&uarr;]] [[#references|&darr;]] Human languages ===
  
== [[#top|&uarr;]] [[#references|&darr;]] Web Site Building Blocks - Summer 2017 to 2020 Q1 Work ==
+
[[nn-english-hindi-glossary|English-Hindi glossary at NN]]
  
Must begin a new section on web site security issues. Here are a couple of articles as starting points to sleuth out how the "WARNING - Please read me XMG" ransomeware attack can reach MYSQL databases of on-line hosts:
+
* [https://www.omniglot.com/writing/devanagari_conjuncts.php Devanagari conjunct characters]
  
<ul>
+
*  [[cool_new_words|cool new words encountered . . .]]
*  https://www.wordfence.com/blog/2017/07/searchreplacedb2-security/.
+
 
*  https://www.imperva.com/blog/ransomware-attacks-on-mysql-and-mongodb/
+
*  [https://www.pinterest.com/pin/836191855785684878/ US standard Braille and other symbol and language systems]
</ul>
+
 
 +
- 2017-12-15 FRI -
 +
 
 +
*  https://etohautakuva.deviantart.com/art/Taugedei-Abugida-Alphasyllabary-Cheatsheet-610277914
 +
*  http://langventure.strikingly.com/blog/hindi-abugida-in-action
 +
*  https://wsotw.weebly.com/blog/alphabets-abugidas-and-syllabaries
 +
 
 +
<!--
 +
Gaurav
 +
Gaurav
 +
7 months ago
 +
ओ पालनहारे निर्गुण और न्यारे
 +
ओ पालनहारे निर्गुण और न्यारे
 +
तुमरे बिन हमरा कौनों नहीं
 +
हमरी उलझन सुलझाओं भगवान
 +
तुमरे बिन हमरा कौनों नहीं
 +
तुम्हे हमका हो संभाले
 +
तुम्हे हमरे रखवाले
 +
तुमरे बिन हमरा कौनों नहीं
 +
तुमरे बिन हमरा कौनों नहीं
 +
 
 +
चंदा में तुम्ह भरे हो चांदनी
 +
सूरज में उजाला तुम्ह से
 +
ये गगन है मगन
 +
तुम्हे तो दिए हो इससे तारे
 +
भगवान ये जीवन ना सवारोगे
 +
तो क्या कोई सवारे
 +
ओ पालनहारे निर्गुण और न्यारे
 +
तुमरे बिन हमरा कौनों नहीं
 +
तुमरे बिन हमरा कौनों नहीं
 +
 
 +
जो सनों तो कहे प्रभुजी हमरी है बिनती
 +
दुखी हैं को धीरज दो
 +
हारे नहीं वो कभी दुख से
 +
तुम निर्बल को रक्षा के
 +
रेह पाए निर्बल सुख से
 +
भक्ति को शक्ति को
 +
भक्ति को शक्ति को
 +
जग के जो स्वामी हो
 +
इतनी तो अरज सुनो
 +
है पथ में अंधियारे
 +
देदो वरदान में उजियारे
 +
 
 +
ओ पालनहारे निर्गुण और न्यारे
 +
तुमरे बिन हमरा कौनों नहीं
 +
हमरी उलझन सुलझाओं भगवान
 +
तुमरे बिन हमरा कौनों नहीं
 +
 
 +
ओ पालनहारे निर्गुण और न्यारे
 +
तुमरे बिन हमरा कौनों नहीं
 +
हमरी उलझन सुलझाओं भगवान
 +
तुमरे बिन हमरा कौनों नहीं
 +
-->
 +
 
 +
<!-- comment -->
 +
 
 +
=== [[#top|&uarr;]] [[#references|&darr;]] Science ===
 +
 
 +
*  https://www.asbmb.org/asbmb-today/science/020721/a-brief-history-of-the-periodic-table
 +
*  https://en.wikipedia.org/wiki/List_of_elements_by_stability_of_isotopes
 +
 
 +
== - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
 +
 
 +
<!-- comment -->
 +
 
 +
- 2017-10-05 - Ted noting here that would be good to have a [[technical_glossary|technical glossary]] to make easily accessible all the technical terms which arise in daily work and exploration of technologies . . .
 +
 
 +
 
 +
- 2017-10-19 - TO-DO list:
 +
 
 +
  *  [&#10003;] complete LFS 8.1 exercise
 +
  *  [ ] configure xserver to run stand-along without window manager (seems to be working on 1604 spare LTS host . . .)
 +
  *  [ ] set up two mysql servers on one host
 +
  *  [ ] write "best photo contribution" practices page for ASI
 +
  *  [ ] code "re-use or reference text block" module for MediaWiki <i> &lt;-- this needs further explanation - TMH </i>
 +
  *  [ ] in local Neela Nurseries PHP code base, amend hybrid building of nav menus to include highlighting parent page of given viewed page
 +
  *  [ ] in OpenCart 2.x find way to customize top-of-page information and links
 +
  *  [ ] in OpenCart 2.x find way to format product lists as compact lists, like Gmail inbox or Windows 'list view' of files
 +
 
 +
 
 +
<!-- comment -->
 +
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] GNU Make and GCC Tools ==
 +
 
 +
<br />
 +
<span style="background-color:#ffd0d0; border:maroon 1px dotted; padding:10px;"><i>2018-07-18 NOTE:  this section to be moved to separate [[Make_and_GCC|GCC and Make article]] . . .  - TMH</i></span>
 +
 
 +
<br />
 +
 
 +
*  https://gcc.gnu.org/onlinedocs/gcc-8.4.0/cpp/Stringizing.html
 +
 
 +
*  https://www.gnu.org/software/make/manual/html_node/Special-Targets.html
 +
 
 +
Using macros with gcc:
 +
*  https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html  . . . gcc summary of options
 +
*  https://gcc.gnu.org/onlinedocs/cpp/Macros.html          . . . defining macros with -Dmacro_name=expression
 +
*  https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options  . . . -MT and other preprocessor options
 +
 
 +
Code libraries and shared objects, expressing paths to them:
 +
*  https://gist.github.com/gubatron/32f82053596c24b6bec6
 +
 
 +
gcc.gnu.org - 3.15 Specifying subprocesses and switches passed to them
 +
*  https://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Spec-Files.html#Spec-Files
 +
 
 +
gcc how to show macros and pre-processor defines:
 +
*  https://stackoverflow.com/questions/2224334/gcc-dump-preprocessor-defines
 +
 
 +
 
 +
<!-- comment -->
 +
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] OpenOCD and Eagle set up notes ==
 +
 
 +
Eagle fails to start due to symbols not resolve-able . . .
 +
 
 +
  *  https://forums.autodesk.com/t5/eagle-forum/can-t-run-eagle-on-debian-10-testing/td-p/8312348
 +
 
 +
Automake or autoconf or autoreconf -i fails for LIBTOOL undefined . . .
 +
 
 +
  *  https://stackoverflow.com/questions/18978252/error-libtool-library-used-but-libtool-is-undefined
 +
 
 +
 
 +
 
 +
  *  https://stackoverflow.com/questions/43565009/failing-to-enable-stlink-in-openocd
 +
 
 +
<!-- comment -->
 +
 
 +
<!-- SECTION - Mediawiki Issues and Notes -->
 +
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] Mediawiki Issues and Notes ==
 +
 
 +
- 2018-01-22 -
 +
While editing sidebar of Mediawiki instance at Neela, Ted noticing a difference in Mediawiki's treatment of hyperlinks in the sidebar.  Links to external sites don't appear, and links to internal pages require single square brace enclosure to appear with alternate text as a link label . . .
 +
 
 +
<pre>
 +
<!--
 +
** [https://buildroot.org/downloads/manual/manual.html Buildroot manual]
 +
<a href="https://buildroot.org/downloads/manual/manual.html">Buildroot manual</a>
 +
 
 +
- 2018-01-22 MON -
 +
** https://wiki.neelanurseries.com/index.php/Nn_embedded_linux_notes#.E2.86.91_.E2.86.93_Buildroot|Buildroot notes . . . only 'notes' shows as non-link text - TMH
 +
-->
 +
</pre>
 +
 
 +
 
 +
=== [[#top|^]] File uploads ===
 +
 
 +
- 2018-06-29 FRI -
 +
Issue adding .txt type files to whitelist of Mediawiki installation uploadable files:
 +
 
 +
<pre>
 +
Action failed
 +
 
 +
Could not open lock file for "mwstore://local-backend/local-public/e/ec/Asi-officers-list-2018.txt".
 +
 
 +
Return to Main Page.
 +
</pre>
 +
 
 +
[[media:arrow-up-prelight.png|200px|thumb|left|png type image]] to test file uploads of allowed image type . . .<br />
 +
[[media:arrow-up-prelight.png]]
 +
 
 +
 
 +
 
 +
Following link may have helpful information:
 +
 
 +
*  https://www.mediawiki.org/wiki/Topic:Qlib7k3p2zvi7pkq
 +
 
 +
- 2018-07-25 WED -
 +
 
 +
*  https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads  . . . be sure to examine $wgFileBlacklist in addition to $wgFileExtensions,
 +
 
 +
<!-- comment -->
 +
 
 +
=== [[#top|^]] Images in wiki pages and image attributes ===
 +
 
 +
*  https://en.wikipedia.org/wiki/Wikipedia:Images_linking_to_articles
 +
 
 +
<!-- comment -->
 +
 
 +
=== [[#top|^]] Mediawiki layout topics like multi column layout ===
 +
 
 +
- 2018-11-30 FRI -
 +
*  https://www.mediawiki.org/wiki/Topic:Ube2zt7nhfk51l3s
 +
 
 +
 
 +
<!-- comment -->
 +
 
 +
=== [[#top|^]] Other Mediawiki topics ===
 +
 
 +
*  https://www.mediawiki.org/wiki/Help:Moving_a_page
 +
 
 +
<!-- comment -->
 +
 
 +
<!-- SECTION - Web Site Building Blocks -->
 +
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] Web Site Building Blocks - Summer 2017 to 2020 Q1 Work ==
 +
 
 +
Must begin a new section on web site security issues.  Here are a couple of articles as starting points to sleuth out how the "WARNING - Please read me XMG" ransomeware attack can reach MYSQL databases of on-line hosts:
 +
 
 +
<ul>
 +
*  https://www.wordfence.com/blog/2017/07/searchreplacedb2-security/.
 +
*  https://www.imperva.com/blog/ransomware-attacks-on-mysql-and-mongodb/
 +
</ul>
 +
 
 +
 
 +
2019-11-12
 +
<ul>
 +
*  https://dev.mysql.com/doc/refman/5.7/en/server-logs.html
 +
*  https://www.percona.com/blog/2012/12/28/auditing-login-attempts-in-mysql/
 +
</ul>
 +
 
 +
 
 +
* [[nn_web_site_building_blocks|Web site building blocks]] . . . now a separate wiki document, as of 2018-01-08.  - TMH
 +
 
 +
2020-01-27 htpasswd access files
 +
<ul>
 +
*  https://www.htaccesstools.com/articles/htpasswd/
 +
</ul>
 +
 
 +
 
 +
<!-- comment -->
 +
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] Open Source License Types ==
 +
 
 +
*  https://lukasa.co.uk/2012/05/GPL_vs_MIT_Which_License_To_Use/
 +
 
 +
 
 +
<!-- comment -->
 +
 
 +
<!-- SECTION - Linux packages -->
 +
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] Linux Packages (Separate Article) ==
 +
 
 +
[[nn_linux_software_package_notes|Linux software package notes]] a separate wiki document on Neela wiki.  - TMH
 +
 
 +
 
 +
<!-- comment -->
 +
 
 +
== - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
 +
 
 +
 
 +
 
 +
<!-- comment -->
 +
 
 +
<!-- SECTION - Bash Shell Scripting -->
 +
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] Bash Shell Scripting ==
 +
 
 +
 
 +
Bash (Bourne shell) Quick Reference:
 +
 
 +
<pre>
 +
Shell Built-in Variables:
 +
 
 +
  $0    Name of given shell script itself
 +
  $1    Value of first command line parameter (similarly $2, $3, ...)
 +
  $#    In given shell script the number of command line parameters received
 +
  $*    All of the command line parameters
 +
  $-    Options given to the shell
 +
  $?    Return (or holds) the exit status of the last command
 +
  $$    Process id of given script (really the id of the shell running the script)
  
  
2019-11-12
+
Shell test constructs:
<ul>
 
*  https://dev.mysql.com/doc/refman/5.7/en/server-logs.html
 
*  https://www.percona.com/blog/2012/12/28/auditing-login-attempts-in-mysql/
 
</ul>
 
  
 +
SYNTAX      NAME OF SHELL TEST                                NOTES
  
* [[nn_web_site_building_blocks|Web site building blocks]] . . . now a separate wiki document, as of 2018-01-08.  - TMH
+
[           built-in test                                    considers its arguments as comparison expressions or file tests
  
2020-01-27 htpasswd access files
+
[[...]]    in Bash => 2.02 the extended test command
<ul>
 
*  https://www.htaccesstools.com/articles/htpasswd/
 
</ul>
 
  
 +
((...))    arithmetic tests                                  example:  (( 0 && 1 ))  # Logical AND
  
<!-- comment -->
 
  
== [[#top|&uarr;]] [[#references|&darr;]] Open Source License Types ==
+
</pre>
  
https://lukasa.co.uk/2012/05/GPL_vs_MIT_Which_License_To_Use/
+
<i>
 +
References:
 +
*  http://tldp.org/LDP/abs/html/testconstructs.html
 +
http://tldp.org/LDP/abs/html/internal.html#BUILTINREF
 +
*  http://tldp.org/LDP/abs/html/string-manipulation.html
 +
</i>
  
  
<!-- comment -->
 
  
<!-- SECTION - Linux packages -->
+
Shell scripting and use of built-in shell commands is a practical knowledge to employ, when working in Unix-like environments.  One common task is to find all the instances of a given file or program.  The <code>locate</code> command can perform this kind of search, but it's results don't show whether the file instances differ.  To check at the rough level of file size, we can use a one-line shell script technique involving shell piping, to "long list" the results of the <code>locate</code> command, like this . . .
  
== [[#top|&uarr;]] [[#references|&darr;]] Linux Packages (Separate Article) ==
+
<pre>
 +
  $ for file in `locate tavrasm | grep 'asm$'`; do ls -l ${file}; done
 +
</pre>
  
[[nn_linux_software_package_notes|Linux software package notes]] a separate wiki document on Neela wiki.  - TMH
+
Hmm strange, the above command calls `grep` with a pattern that ends in the shell end-of-line anchoring character $, and appears to filter for results of `locate` which end in 'asm'But on 2017-09-12 needed to add a "one or more wildcard" character pattern to limit search results for instances of `locate` results ending in 'qemu':
  
 +
<pre>
 +
    $ locate qemu | grep '.*qemu$'
 +
</pre>
  
<!-- comment -->
+
Why the apparent difference in command invocation?  Need to test . . .  - TMH
  
== - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
 
  
  
 +
Command to break out first ten $PATH environment variable to individual paths each shown on a line of the shell:
  
<!-- comment -->
+
<pre>
 +
    $ for path in `echo $PATH | cut -d':' -f1-10 --output-delimiter=' '`; do echo $path; done
 +
</pre>
  
<!-- SECTION - Bash Shell Scripting -->
+
2018-04-23 - Monday, command to obtain summary of directories containing 1GB or more data:
 +
<pre>
 +
    $ du -h . | grep [0-9]G
 +
</pre>
  
== [[#top|&uarr;]] [[#references|&darr;]] Bash Shell Scripting ==
 
  
  
Bash (Bourne shell) Quick Reference:
 
  
<pre>
+
=== <i> [[#top|&uarr;]] [[#references|&darr;]] edit point - shell variable quoting</i> ===
Shell Built-in Variables:
+
 
 +
- 2017-10-19 THU -
  
  $0    Name of given shell script itself
+
Running into issues when need to expand shell variable in single quotes pair . . .
  $1    Value of first command line parameter (similarly $2, $3, ...)
 
  $#    In given shell script the number of command line parameters received
 
  $*    All of the command line parameters
 
  $-    Options given to the shell
 
  $?    Return (or holds) the exit status of the last command
 
  $$    Process id of given script (really the id of the shell running the script)
 
  
 +
[https://unix.stackexchange.com/questions/178411/how-to-use-variables-inside-single-quotes Stack Exchange, Unix forum post 178411]<br />
 +
[http://tldp.org/LDP/abs/html/varassignment.html TLPD Advanced Bash Scripting Guide, chapter 4.2 example 4-3 double quotes preserve white space]<br />
  
Shell test constructs:
 
  
SYNTAX      NAME OF SHELL TEST                                NOTES
+
WIKI WISH LIST - While adding to wiki, Ted noting that would be useful to have relative-depth wiki section markers.  The standard wiki section markers '== ==', '=== ===' and similar have fixed depth.  That is, '== ==' is always a top-level or first-level section in a wiki document, '=== ===' is always a sub-subsection of wiki documents, and '==== ====' a sub-sub-section.  When section gets re-factored into its own article, would be handy to have those section markers rise up to levels of top-most and successive section markers.  - TMH
  
[          built-in test                                    considers its arguments as comparison expressions or file tests
 
  
[[...]]    in Bash => 2.02 the extended test command
 
  
((...))    arithmetic tests                                  example:  (( 0 && 1 ))  # Logical AND
+
<!-- comment -->
  
 +
=== [[#top|&uarr;]] [[#references|&darr;]] example shell script - back up several databases ===
  
</pre>
+
&nbsp;<br />
 +
Here is a simple shell script to call mysqldump utility and back up several databases.  Couple of things Ted wants to add to this script include script variables to hold back-up filename prefix and infix patterns, and an option to compress the MYSQL dump files . . .
  
<i>
+
<i>Figure x - shell script to back-up multiple MYSQL databases</i>
References:
 
*  http://tldp.org/LDP/abs/html/testconstructs.html
 
*  http://tldp.org/LDP/abs/html/internal.html#BUILTINREF
 
*  http://tldp.org/LDP/abs/html/string-manipulation.html
 
</i>
 
 
 
 
 
 
 
Shell scripting and use of built-in shell commands is a practical knowledge to employ, when working in Unix-like environments.  One common task is to find all the instances of a given file or program.  The <code>locate</code> command can perform this kind of search, but it's results don't show whether the file instances differ.  To check at the rough level of file size, we can use a one-line shell script technique involving shell piping, to "long list" the results of the <code>locate</code> command, like this . . .
 
  
 
<pre>
 
<pre>
  $ for file in `locate tavrasm | grep 'asm$'`; do ls -l ${file}; done
 
</pre>
 
  
Hmm strange, the above command calls `grep` with a pattern that ends in the shell end-of-line anchoring character $, and appears to filter for results of `locate` which end in 'asm'.  But on 2017-09-12 needed to add a "one or more wildcard" character pattern to limit search results for instances of `locate` results ending in 'qemu':
+
#!/bin/bash
  
<pre>
 
    $ locate qemu | grep '.*qemu$'
 
</pre>
 
  
Why the apparent difference in command invocation?  Need to test . . .  - TMH
+
DATABASE_LIST="information_schema mysql drupal_8p0 phpmyadmin wiki_database"
  
 +
user="root"
 +
pass_phrase_for_mysql="mysql_user_password"
 +
options_extra="--skip-lock-tables"
  
 +
response="n"
  
Command to break out first ten $PATH environment variable to individual paths each shown on a line of the shell:
+
mode_interactive="n"
  
<pre>
 
    $ for path in `echo $PATH | cut -d':' -f1-10 --output-delimiter=' '`; do echo $path; done
 
</pre>
 
  
2018-04-23 - Monday, command to obtain summary of directories containing 1GB or more data:
 
<pre>
 
    $ du -h . | grep [0-9]G
 
</pre>
 
  
 +
echo "shell script starting,"
  
  
  
=== <i> [[#top|&uarr;]] [[#references|&darr;]] edit point - shell variable quoting</i> ===
+
for database in ${DATABASE_LIST};
 +
do echo "backing up alta-ubuntu database $database . . .";
  
- 2017-10-19 THU -
+
#    command="mysqldump --databases $database -u$user -p$pass_phrase_for_mysql $options_extra >> au-database-back-up--${database}.sql"
 +
    command="mysqldump --databases $database -u$user -p$pass_phrase_for_mysql $options_extra"
 +
    redirect="au-database-back-up--${database}.sql"
  
Running into issues when need to expand shell variable in single quotes pair . . .
+
    if [ $mode_interactive = 'y' ]; then
  
[https://unix.stackexchange.com/questions/178411/how-to-use-variables-inside-single-quotes Stack Exchange, Unix forum post 178411]<br />
+
        echo "build command '$command' and database back-up filename'$redirect',"
[http://tldp.org/LDP/abs/html/varassignment.html TLPD Advanced Bash Scripting Guide, chapter 4.2 example 4-3 double quotes preserve white space]<br />
+
        echo "full command will be '$command' > '$redirect',"
 +
        echo "trying running this command and redirect? [y/N/q]  yes, no, 'q' to quit"
  
 +
        read response
 +
        if [ $response = 'Y' -o $response = 'y' ]; then
 +
            ${command} > $redirect
 +
        elif [ $response = 'N' -o $response = 'n' ]; then
 +
            echo "skipping present command . . ."
 +
        elif [ $response = 'Q' -o $response = 'q' ]; then
 +
            echo "stopping script '$0' and exiting."
 +
            break
 +
        fi
 +
        echo
  
WIKI WISH LIST - While adding to wiki, Ted noting that would be useful to have relative-depth wiki section markers.  The standard wiki section markers '== ==', '=== ===' and similar have fixed depth.  That is, '== ==' is always a top-level or first-level section in a wiki document, '=== ===' is always a sub-subsection of wiki documents, and '==== ====' a sub-sub-section.  When section gets re-factored into its own article, would be handy to have those section markers rise up to levels of top-most and successive section markers.  - TMH
+
    else
  
 +
        echo "$0:  backing up database '$database' to file '$redirect' . . ."
 +
        ${command} > $redirect
 +
        ls -l $redirect
  
 +
    fi
  
<!-- comment -->
+
done
  
=== [[#top|&uarr;]] [[#references|&darr;]] example shell script - back up several databases ===
 
  
&nbsp;<br />
+
echo "done."
Here is a simple shell script to call mysqldump utility and back up several databases.  Couple of things Ted wants to add to this script include script variables to hold back-up filename prefix and infix patterns, and an option to compress the MYSQL dump files . . .
+
 
 +
exit 0
 +
</pre>
 +
 
 +
=== [[#top|&uarr;]] [[#references|&darr;]] show kernel version script ===
 +
 
 +
Following script 'showkversion' can be used in a Linux kernel source tree to determine the kernel's version number, based on the number elements defined in the kernel's top level makefile.
  
<i>Figure x - shell script to back-up multiple MYSQL databases</i>
+
<i>Figure x - simple bash script to show kernel version in root of kernel sources tree</i>
  
 
<pre>
 
<pre>
 
 
#!/bin/bash
 
#!/bin/bash
  
 +
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 +
## Started 2017-12-15 FRI - script to parse and show Linux kernel
 +
##  version from top-level makefile in set of kernel sources.  Patterns
 +
##  to `grep` chosen based on kernel version identifiers in first
 +
##  three lines of typical kernel top-level makefile.  Example:
 +
##
 +
##  $ head -n 6 Makefile
 +
##  VERSION = 4
 +
##  PATCHLEVEL = 9
 +
##  SUBLEVEL = 66
 +
##  EXTRAVERSION =
 +
##  NAME = Roaring Lionus
 +
##
 +
##
 +
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  
DATABASE_LIST="information_schema mysql drupal_8p0 phpmyadmin wiki_database"
 
  
user="root"
+
script_name="showkversion"
pass_phrase_for_mysql="mysql_user_password"
 
options_extra="--skip-lock-tables"
 
  
response="n"
 
  
mode_interactive="n"
+
if [ ]; then
 +
    head -n 5 Makefile | grep ^VERSION | cut -d " " -f 3
 +
    head -n 5 Makefile | grep ^PATCH | cut -d " " -f 3
 +
    head -n 5 Makefile | grep ^SUBLEVEL | cut -d " " -f 3
 +
fi
  
 +
MAJOR=$(head -n 5 Makefile | grep ^VERSION | cut -d " " -f 3)
 +
MINOR1=$(head -n 5 Makefile | grep ^PATCH | cut -d " " -f 3)
 +
MINOR2=$(head -n 5 Makefile | grep ^SUBLEVEL | cut -d " " -f 3)
  
 +
KERNEL_REVISION="${MAJOR}.${MINOR1}.${MINOR2}"
  
echo "shell script starting,"
+
echo
 +
echo "Kernel version in present kernel sources tree, per makefile, is ${KERNEL_REVISION}"
 +
echo
  
  
 +
exit 0
 +
</pre>
  
for database in ${DATABASE_LIST};
 
do echo "backing up alta-ubuntu database $database . . .";
 
  
#    command="mysqldump --databases $database -u$user -p$pass_phrase_for_mysql $options_extra >> au-database-back-up--${database}.sql"
 
    command="mysqldump --databases $database -u$user -p$pass_phrase_for_mysql $options_extra"
 
    redirect="au-database-back-up--${database}.sql"
 
  
    if [ $mode_interactive = 'y' ]; then
+
<!-- comment -->
  
        echo "build command '$command' and database back-up filename'$redirect',"
+
=== [[#top|&uarr;]] [[#references|&darr;]] Other useful shell tutorial references ===
        echo "full command will be '$command' > '$redirect',"
 
        echo "trying running this command and redirect? [y/N/q] yes, no, 'q' to quit"
 
  
        read response
+
*  http://tldp.org/LDP/abs/html/textproc.html . . . commands cut, paste, join and others
        if [ $response = 'Y' -o $response = 'y' ]; then
+
*  https://unix.stackexchange.com/questions/131766/why-does-my-shell-script-choke-on-whitespace-or-other-special-characters . . . read shell input line by line
            ${command} > $redirect
+
*  https://stackoverflow.com/questions/7427262/how-to-read-a-file-into-a-variable-in-shell . . . read file into shell variable
        elif [ $response = 'N' -o $response = 'n' ]; then
 
            echo "skipping present command . . ."
 
        elif [ $response = 'Q' -o $response = 'q' ]; then
 
            echo "stopping script '$0' and exiting."
 
            break
 
        fi
 
        echo
 
  
    else
 
  
        echo "$0:  backing up database '$database' to file '$redirect' . . ."
 
        ${command} > $redirect
 
        ls -l $redirect
 
  
    fi
+
<!-- comment -->
  
done
+
== [[#top|&uarr;]] [[#references|&darr;]] Regex tutorials ==
  
 +
*  https://www.ntu.edu.sg/home/ehchua/programming/howto/Regexe.html
  
echo "done."
+
2019-11-02 - An interesting blog post and replies, at, I think, Jamie Zawinski's home page. This one on the use and some limits of regular expressions:
  
exit 0
+
  *  https://www.jwz.org/blog/2011/11/you-doom-us-all-to-inhuman-toil-for-the-one-whose-name-cannot-be-expressed-in-the-basic-multilingual-plane/
</pre>
 
  
=== [[#top|&uarr;]] [[#references|&darr;]] show kernel version script ===
 
  
Following script 'showkversion' can be used in a Linux kernel source tree to determine the kernel's version number, based on the number elements defined in the kernel's top level makefile.
+
<!-- comment -->
  
<i>Figure x - simple bash script to show kernel version in root of kernel sources tree</i>
+
== [[#top|&uarr;]] [[#references|&darr;]] `sed` stream editor ==
 +
 
 +
Unix `sed` stream editor, examples and references:
 +
 
 +
<i>Code snippet - rename multiple files where a substring need be changed:</i>
  
 
<pre>
 
<pre>
#!/bin/bash
+
  $ for file in `ls ./2109*.*`; do mv $file `ls -1 $file | sed s/2109/2019/` ; done
 +
</pre>
 +
 
 +
References on `sed`:
  
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
* http://www.grymoire.com/Unix/Sed.html#uh-1
## Started 2017-12-15 FRI - script to parse and show Linux kernel
 
## version from top-level makefile in set of kernel sources. Patterns
 
##  to `grep` chosen based on kernel version identifiers in first
 
##  three lines of typical kernel top-level makefile. Example:
 
##
 
##  $ head -n 6 Makefile
 
##  VERSION = 4
 
##  PATCHLEVEL = 9
 
##  SUBLEVEL = 66
 
##  EXTRAVERSION =
 
##  NAME = Roaring Lionus
 
##
 
##
 
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  
 +
2021-08-26:
 +
*  https://unix.stackexchange.com/questions/375530/use-sed-to-find-and-replace-a-string-in-multiple-files
  
script_name="showkversion"
+
<!-- comment -->
  
 +
== [[#top|&uarr;]] [[#references|&darr;]] Other Computer Programming Languages ==
  
if [ ]; then
 
    head -n 5 Makefile | grep ^VERSION | cut -d " " -f 3
 
    head -n 5 Makefile | grep ^PATCH | cut -d " " -f 3
 
    head -n 5 Makefile | grep ^SUBLEVEL | cut -d " " -f 3
 
fi
 
  
MAJOR=$(head -n 5 Makefile | grep ^VERSION | cut -d " " -f 3)
 
MINOR1=$(head -n 5 Makefile | grep ^PATCH | cut -d " " -f 3)
 
MINOR2=$(head -n 5 Makefile | grep ^SUBLEVEL | cut -d " " -f 3)
 
  
KERNEL_REVISION="${MAJOR}.${MINOR1}.${MINOR2}"
+
<!-- comment -->
  
echo
+
=== [[#top|&uarr;]] [[#references|&darr;]] Python Scripting Language ===
echo "Kernel version in present kernel sources tree, per makefile, is ${KERNEL_REVISION}"
 
echo
 
  
 +
*  https://docs.python.org/2/tutorial/index.html
  
exit 0
+
*  https://learn.onemonth.com/ruby-vs-python/
</pre>
 
  
  
Line 561: Line 977:
 
<!-- comment -->
 
<!-- comment -->
  
=== [[#top|&uarr;]] [[#references|&darr;]] Other useful shell tutorial references ===
+
=== [[#top|&uarr;]] [[#references|&darr;]] Expect Utility by Don Libes ===
  
*  http://tldp.org/LDP/abs/html/textproc.html . . . commands cut, paste, join and others
+
Installing 'expect' on Ubuntu 16.04.x LTS host, typical dependencies:
*  https://unix.stackexchange.com/questions/131766/why-does-my-shell-script-choke-on-whitespace-or-other-special-characters . . . read shell input line by line
 
*  https://stackoverflow.com/questions/7427262/how-to-read-a-file-into-a-variable-in-shell . . . read file into shell variable
 
  
 +
<pre>
 +
ted@localhost:~/projects/shell/expect-work$ sudo apt install expect
  
 +
Reading package lists... Done
 +
Building dependency tree     
 +
Reading state information... Done
 +
The following additional packages will be installed:
 +
  libfontenc1 libxaw7 libxmu6 libxmuu1 libxtst6 libxv1 libxxf86dga1 tcl-expect tcl8.6 tk8.6 x11-utils xbitmaps xterm
 +
Suggested packages:
 +
  tcl-tclreadline mesa-utils xfonts-cyrillic
 +
The following NEW packages will be installed:
 +
  expect libfontenc1 libxaw7 libxmu6 libxmuu1 libxtst6 libxv1 libxxf86dga1 tcl-expect tcl8.6 tk8.6 x11-utils xbitmaps xterm
 +
0 upgraded, 14 newly installed, 0 to remove and 5 not upgraded.
 +
Need to get 1,373 kB of archives.
 +
After this operation, 4,110 kB of additional disk space will be used.
 +
Do you want to continue? [Y/n] y
 +
  .
 +
  .
 +
  .
 +
</pre>
  
<!-- comment -->
 
 
== [[#top|&uarr;]] [[#references|&darr;]] Regex tutorials ==
 
 
*  https://www.ntu.edu.sg/home/ehchua/programming/howto/Regexe.html
 
 
2019-11-02 - An interesting blog post and replies, at, I think, Jamie Zawinski's home page.  This one on the use and some limits of regular expressions:
 
  
  *  https://www.jwz.org/blog/2011/11/you-doom-us-all-to-inhuman-toil-for-the-one-whose-name-cannot-be-expressed-in-the-basic-multilingual-plane/
+
Some 'expect' utility references:
  
 +
*  https://www.unix.com/shell-programming-and-scripting/176054-multiple-while-loops-expect-script.html?s=3aa3009c43b2e834326eea6dfa0d1139
  
<!-- comment -->
+
Good short examples covering range of tasks here at Robert Elder blog page, noting md5sum expect script example . . .
 +
*  http://blog.robertelder.org/don-libes-expect-unix-automation-tool/
  
== [[#top|&uarr;]] &nbsp; [[#references|&darr;]] `sed` stream editor ==
+
*  https://www.ibm.com/developerworks/community/blogs/brian/entry/when_to_use_expect_scripting_and_when_to_avoid_it10?lang=en Expect script with while-loop
  
Unix `sed` stream editor, examples and references:
+
*  https://wiki.tcl.tk/11584 list of Expect tutorials
  
<Example 1 - rename multiple files where a substring need be changed:</i>
+
*  https://debaan.blogspot.com/2007/09/simple-expect-ssh-example.html
  
<pre>
+
* http://wiki.tcl.tk/11583
  $ for file in `ls ./2109*.*`; do mv $file `ls -1 $file | sed s/2109/2019/` ; done
 
</pre>
 
  
References on `sed`:
+
How to capture specific results during an expect script's execution:
 +
*  https://stackoverflow.com/questions/2077721/how-do-you-save-and-parse-a-command-output-in-expect
  
<ul>
 
*  http://www.grymoire.com/Unix/Sed.html#uh-1
 
</ul>
 
  
 +
- 2018-01-30 - Tuesday, picking up from last week researching how to redirect expect output and its spawned processes' output with filtering to log file.  The first reference here at Stackoverflow repeats the useful <code>lindex</code> syntax.  There is also mention of the <code>expect</code> manual and a syntax <code>$::env(action)</code> which can be expressed in an expect script to access an environment variable that is part of the controlling shell . . .
 +
*  https://stackoverflow.com/questions/11131318/how-to-use-bash-script-variables-in-expect-conditional-statements
  
<!-- comment -->
+
How to use expect's <code>log_file</code> key word in an expect script:
 +
*  https://stackoverflow.com/questions/15965504/how-to-create-log-file-for-tcl-script
  
== [[#top|&uarr;]] &nbsp; [[#references|&darr;]] Other Computer Programming Languages ==
+
From the manual page for expect version 5.45:
  
 +
<ul>
 +
<i>
 +
<pre>
 +
      log_file [args] [[-a] file]
 +
            If a filename is provided, log_file will record a transcript of the session (beginning at that point) in
 +
            the file.  log_file will stop recording if no argument is given.  Any previous log file is closed.
  
 +
            Instead  of  a  filename,  a Tcl file identifier may be provided by using the -open or -leaveopen flags.
 +
            This is similar to the spawn command.  (See spawn for more info.)
  
<!-- comment -->
+
            The -a flag forces output to be logged that was suppressed by the log_user command.
  
=== [[#top|&uarr;]] [[#references|&darr;]] Python Scripting Language ===
+
            By default, the log_file command appends to old files rather than truncating them, for  the  convenience
 +
            of  being  able  to  turn  logging off and on multiple times in one session.  To truncate files, use the
 +
            -noappend flag.
  
*  https://docs.python.org/2/tutorial/index.html
+
            The -info flag causes log_file to return a description of the most recent non-info arguments given.
 +
</pre>
 +
</i>
 +
</ul>
  
*  https://learn.onemonth.com/ruby-vs-python/
 
  
 +
Also from the expect manual page, Expect Hints section:
  
 +
<ul>
 +
<i>
 +
<pre>
 +
EXPECT HINTS
 +
      There are a couple of things about Expect that may be non-intuitive.  This section attempts to address some of
 +
      these things with a couple of suggestions.
 +
 +
      A common expect problem is how to recognize shell prompts.  Since these are customized differently by  differ-
 +
      ently  people and different shells, portably automating rlogin can be difficult without knowing the prompt.  A
 +
      reasonable convention is to have users store a regular expression describing their prompt (in particular,  the
 +
      end  of it) in the environment variable EXPECT_PROMPT.  Code like the following can be used.  If EXPECT_PROMPT
 +
      doesn't exist, the code still has a good chance of functioning correctly.
 +
 +
          set prompt "(%|#|\\$) $"          ;# default prompt
 +
          catch {set prompt $env(EXPECT_PROMPT)}
 +
 +
          expect -re $prompt
  
<!-- comment -->
+
      I encourage you to write expect patterns that include the end of whatever you expect to see.  This avoids  the
 +
      possibility  of  answering a question before seeing the entire thing.  In addition . . .
 +
</pre>
 +
</i>
 +
</ul>
  
=== [[#top|&uarr;]] [[#references|&darr;]] Expect Utility by Don Libes ===
 
  
Installing 'expect' on Ubuntu 16.04.x LTS host, typical dependencies:
+
The expect program has some built-in string buffers, and one of these may hold the latest characters received from a spawned process. Here is a man page excerpt which shows use of one of these expect buffers:
  
 +
<ul>
 +
<i>
 
<pre>
 
<pre>
ted@localhost:~/projects/shell/expect-work$ sudo apt install expect
+
      disconnect
 +
            disconnects a forked process from the terminal.  It continues running in the background.  The process is
 +
            given its own process group (if possible).  Standard I/O is redirected to /dev/null.
  
Reading package lists... Done
+
            The following fragment uses disconnect to continue running the script in the background.
Building dependency tree     
 
Reading state information... Done
 
The following additional packages will be installed:
 
  libfontenc1 libxaw7 libxmu6 libxmuu1 libxtst6 libxv1 libxxf86dga1 tcl-expect tcl8.6 tk8.6 x11-utils xbitmaps xterm
 
Suggested packages:
 
  tcl-tclreadline mesa-utils xfonts-cyrillic
 
The following NEW packages will be installed:
 
  expect libfontenc1 libxaw7 libxmu6 libxmuu1 libxtst6 libxv1 libxxf86dga1 tcl-expect tcl8.6 tk8.6 x11-utils xbitmaps xterm
 
0 upgraded, 14 newly installed, 0 to remove and 5 not upgraded.
 
Need to get 1,373 kB of archives.
 
After this operation, 4,110 kB of additional disk space will be used.
 
Do you want to continue? [Y/n] y
 
  .
 
  .
 
  .
 
</pre>
 
  
 +
                if {[fork]!=0} exit
 +
                disconnect
 +
                . . .
  
Some 'expect' utility references:
+
            The following script reads a password, and then runs a program every hour that demands a  password  each
 +
            time  it is run.  The script supplies the password so that you only have to type it once.  (See the stty
 +
            command which demonstrates how to turn off password echoing.)
  
*  https://www.unix.com/shell-programming-and-scripting/176054-multiple-while-loops-expect-script.html?s=3aa3009c43b2e834326eea6dfa0d1139
+
                send_user "password?\ "
 
+
                expect_user -re "(.*)\n"
Good short examples covering range of tasks here at Robert Elder blog page, noting md5sum expect script example . . .
+
                for {} 1 {} {
*  http://blog.robertelder.org/don-libes-expect-unix-automation-tool/
+
                    if {[fork]!=0} {sleep 3600;continue}
 +
                    disconnect
 +
                    spawn priv_prog
 +
                    expect Password:
 +
                    send "$expect_out(1,string)\r"
 +
                    . . .
 +
                    exit
 +
                }
 +
</pre>
 +
</i>
 +
</ul>
  
*  https://www.ibm.com/developerworks/community/blogs/brian/entry/when_to_use_expect_scripting_and_when_to_avoid_it10?lang=en Expect script with while-loop
 
  
*  https://wiki.tcl.tk/11584 list of Expect tutorials
+
Further looking for expect's built-in string buffers and variables . . .
  
https://debaan.blogspot.com/2007/09/simple-expect-ssh-example.html
+
http://wiki.tcl.tk/17378
  
*  http://wiki.tcl.tk/11583
+
Pattern matching syntax in Don Libe's expect . . .
  
How to capture specific results during an expect script's execution:
+
http://www.embecosm.com/appnotes/ean8/html/ch03s02s01.html
https://stackoverflow.com/questions/2077721/how-do-you-save-and-parse-a-command-output-in-expect
 
  
 +
*  https://www.pantz.org/software/expect/expect_examples_and_tips.html . . . some timing stuff and <b>expect script blocks</b>
  
- 2018-01-30 - Tuesday, picking up from last week researching how to redirect expect output and its spawned processes' output with filtering to log file. The first reference here at Stackoverflow repeats the useful <code>lindex</code> syntax. There is also mention of the <code>expect</code> manual and a syntax <code>$::env(action)</code> which can be expressed in an expect script to access an environment variable that is part of the controlling shell . . .
+
* http://www.asic-world.com/scripting/tcl3.html . . . regex in Tcl must enclose pattern in braces.
*  https://stackoverflow.com/questions/11131318/how-to-use-bash-script-variables-in-expect-conditional-statements
 
  
How to use expect's <code>log_file</code> key word in an expect script:
 
*  https://stackoverflow.com/questions/15965504/how-to-create-log-file-for-tcl-script
 
  
From the manual page for expect version 5.45:
 
  
<ul>
+
From another source, Tcl's string match command:
<i>
 
<pre>
 
      log_file [args] [[-a] file]
 
            If a filename is provided, log_file will record a transcript of the session (beginning at that point) in
 
            the file.  log_file will stop recording if no argument is given.  Any previous log file is closed.
 
  
            Instead of a  filename,  a Tcl file identifier may be provided by using the -open or -leaveopen flags.
+
  if [string match "f*b*" "foobar"] {
            This is similar to the spawn command. (See spawn for more info.)
+
    puts "match"
 +
  else {
 +
    puts "no match"
 +
  }
  
            The -a flag forces output to be logged that was suppressed by the log_user command.
 
  
            By default, the log_file command appends to old files rather than truncating them, for  the  convenience
 
            of  being  able  to  turn  logging off and on multiple times in one session.  To truncate files, use the
 
            -noappend flag.
 
  
            The -info flag causes log_file to return a description of the most recent non-info arguments given.
+
<!-- comment -->
</pre>
 
</i>
 
</ul>
 
  
 +
=== <i>[[#top|&uarr;]] [[#references|&darr;]] edit point - Tool command language Tcl </i> ===
  
Also from the expect manual page, Expect Hints section:
 
  
<ul>
 
<i>
 
 
<pre>
 
<pre>
EXPECT HINTS
+
"Practical programming
      There are a couple of things about Expect that may be non-intuitive.  This section attempts to address some of
+
in Tcl and Tk"
      these things with a couple of suggestions.
+
ISBN 0-13-038560-3
 +
</pre>
  
      A common expect problem is how to recognize shell prompts.  Since these are customized differently by  differ-
 
      ently  people and different shells, portably automating rlogin can be difficult without knowing the prompt.  A
 
      reasonable convention is to have users store a regular expression describing their prompt (in particular,  the
 
      end  of it) in the environment variable EXPECT_PROMPT.  Code like the following can be used.  If EXPECT_PROMPT
 
      doesn't exist, the code still has a good chance of functioning correctly.
 
  
          set prompt "(%|#|\\$) $"          ;# default prompt
+
In using Don Libes' <code>expect</code> utility or program, looks like it will be important and helpful to understand Tool Command Language Tcl to at least some fluency.  Here appears to be a good starting point tutorial for Tcl:
          catch {set prompt $env(EXPECT_PROMPT)}
 
  
          expect -re $prompt
+
*  https://www.tutorialspoint.com/tcl-tk/tcl_commands.htm
  
      I encourage you to write expect patterns that include the end of whatever you expect to see.  This avoids  the
 
      possibility  of  answering a question before seeing the entire thing.  In addition . . .
 
</pre>
 
</i>
 
</ul>
 
  
 +
Tcl <code>puts</code> built-in command, channels and code to open log file,
 +
*  https://www.tcl.tk/man/tcl8.4/TclCmd/puts.htm
  
The expect program has some built-in string buffers, and one of these may hold the latest characters received from a spawned process.  Here is a man page excerpt which shows use of one of these expect buffers:
 
 
<ul>
 
<i>
 
 
<pre>
 
<pre>
      disconnect
+
Append a log message to a file:
            disconnects a forked process from the terminal.  It continues running in the background.  The process is
 
            given its own process group (if possible).  Standard I/O is redirected to /dev/null.
 
  
            The following fragment uses disconnect to continue running the script in the background.
+
set chan [open my.log a]
 +
set timestamp [clock format [clock seconds]]
 +
puts $chan "$timestamp - Hello, World!"
 +
close $chan
 +
</pre>
  
                if {[fork]!=0} exit
 
                disconnect
 
                . . .
 
  
            The following script reads a password, and then runs a program every hour that demands a  password  each
+
Tcl regular expressions:
            time  it is run.  The script supplies the password so that you only have to type it once.  (See the stty
 
            command which demonstrates how to turn off password echoing.)
 
  
                send_user "password?\ "
+
* https://www.tcl.tk/man/tcl8.2.3/TclCmd/re_syntax.htm
                expect_user -re "(.*)\n"
 
                for {} 1 {} {
 
                    if {[fork]!=0} {sleep 3600;continue}
 
                    disconnect
 
                    spawn priv_prog
 
                    expect Password:
 
                    send "$expect_out(1,string)\r"
 
                    . . .
 
                    exit
 
                }
 
</pre>
 
</i>
 
</ul>
 
  
  
Further looking for expect's built-in string buffers and variables . . .
+
Tcl reserved words:
  
*  http://wiki.tcl.tk/17378
+
<pre>
 
+
after append array auto_execok
Pattern matching syntax in Don Libe's expect . . .
+
auto_import auto_load auto_load_index auto_qualify
 +
binary Bgerror break catch
 +
cd Clock close concat
 +
continue Dde default else
 +
elseif Encoding eof error
 +
eval Exec exit expr
 +
fblocked Fconfigure fcopy file
 +
fileevent Flush for foreach
 +
format Gets glob global
 +
history If info interp
 +
join Lappend lindex linsert
 +
list Llength load lrange
 +
lreplace Lsearch lsort namespace
 +
open Package pid pkg_mkIndex
 +
proc Puts pwd read
 +
regexp Regsub rename resource
 +
return Scan seek set
 +
socket Source split string
 +
subst Switch tclLog tell
 +
time Trace unknown unset
 +
update Uplevel upvar variable
 +
vwait While
 +
</pre>
  
*  http://www.embecosm.com/appnotes/ean8/html/ch03s02s01.html
 
  
*  https://www.pantz.org/software/expect/expect_examples_and_tips.html . . . some timing stuff and <b>expect script blocks</b>
 
  
*  http://www.asic-world.com/scripting/tcl3.html . . . regex in Tcl must enclose pattern in braces.
+
<!-- comment -->
  
 +
=== <i>[[#top|&uarr;]] [[#references|&darr;]] edit point - Tcl pattern matching and anchoring, symbols ^ and $ wrt data not lines</i> ===
  
 +
From the Tcl manual page on-line here is a clue about pattern matching in Tcl scripts, which may explain why we are struggling to obtain matched substrings from sequences of bytes from expect-spawned processes . . .
  
From another source, Tcl's string match command:
+
<ul>
 +
<i>
 +
<pre>
 +
    Note that in many editors, the ^ and $ match the beginning and end of lines respectively. However, because expect is not line oriented, these characters match the beginning and end of the data (as opposed to lines) currently in the expect matching buffer. (Also, see the note below on "system indigestion.")
 +
</pre>
 +
</i>
 +
</ul>
  
if [string match "f*b*" "foobar"] {
 
    puts "match"
 
else {
 
    puts "no match"
 
}
 
  
 +
Tcl regular expression syntax:
  
 +
*  https://www.tcl.tk/man/tcl8.2.3/TclCmd/re_syntax.htm#M57
  
<!-- comment -->
 
  
=== <i>[[#top|&uarr;]] [[#references|&darr;]] edit point - Tool command language Tcl </i> ===
+
Expect variables, using global and upvar keywords in Tcl scripts:
  
 +
*  http://www.huecker.com/msw/tcl/tutorial/Tcl13.shtml
  
<pre>
 
"Practical programming
 
in Tcl and Tk"
 
ISBN 0-13-038560-3
 
</pre>
 
  
 
+
Excerpt on Tcl pattern matching from Inguza web site:
In using Don Libes' <code>expect</code> utility or program, looks like it will be important and helpful to understand Tool Command Language Tcl to at least some fluency.  Here appears to be a good starting point tutorial for Tcl:
 
 
 
*  https://www.tutorialspoint.com/tcl-tk/tcl_commands.htm
 
 
 
 
 
Tcl <code>puts</code> built-in command, channels and code to open log file,
 
*  https://www.tcl.tk/man/tcl8.4/TclCmd/puts.htm
 
  
 
<pre>
 
<pre>
Append a log message to a file:
+
2  Expect
 
+
The expect suite actually consist just of a few commands: expect, send, spawn and interact and is an extension to TCL.
set chan [open my.log a]
+
Before the expect command can be used a program must be spawned, see expect commands below.
set timestamp [clock format [clock seconds]]
+
expect \
puts $chan "$timestamp - Hello, World!"
+
  {match1} {action1} \
close $chan
+
  {match2} {action2} \
</pre>
+
  {match3} {action3} \
 
+
  {match4} {action4}
 
+
It is possible that no such output is encountered within the time period defined by the timeout (variable name "timeout" in seconds, default to 2). In this case expect stops waiting and continues with the next command in the script.
Tcl regular expressions:
+
You can use '*' to match any characters. You can also match using [] syntax and similar.
 
+
expect "\[a-f0-9]"  ; # strongly preferred as \n and similar is not taken as litteral charactesr \ and n.
* https://www.tcl.tk/man/tcl8.2.3/TclCmd/re_syntax.htm
+
expect {a-f0-9}    ; # can also be used
 
+
A note on \ characters. The pattern matcher translate \x to x but this is done once before the pattern matcher. So you need to type \\n to match n. This is especially important for * and ? characters.
 
+
expect "*" ;# match anything (*)
Tcl reserved words:
+
expect "\n" ;# match linefeed
 
+
expect "\*" ;# match anything
<pre>
+
expect "\\*" ;# match * character
after append array auto_execok
+
expect "\\\*" ;# match * character
auto_import auto_load auto_load_index auto_qualify
+
expect "\\\\*" ;# match \ followed by anything
binary Bgerror break catch
+
expect "\\\\\*" ;# match \ followed by anything
cd Clock close concat
+
expect "\\\\\\*" ;# match \ followed * character
continue Dde default else
+
The [ character is special to both tcl and the pattern matcher so it is especially messy.
elseif Encoding eof error
+
proc xy {} { return "n*w" }
eval Exec exit expr
+
expect "[xy]" ;# match n followed by anything followed by w
fblocked Fconfigure fcopy file
+
expect "\[xy]" ;# match x or y
fileevent Flush for foreach
+
expect "\\[xy]" ;# match n followed by anything followed by w
format Gets glob global
+
expect "\\\[xy]" ;# match [xy]
history If info interp
+
expect "\\\\[xy]" ;# match \ followed by n followed ...
join Lappend lindex linsert
+
expect "\\\\\[xy]" ;# match sequence of \ and then x or y.
list Llength load lrange
+
The expect command can also take flags. The default flag is -gl for glob pattern matching. It can also take the flag -re for regular expression matching.
lreplace Lsearch lsort namespace
+
expect {
open Package pid pkg_mkIndex
+
  -re "a*" { action_when_a_followed_by_any_a }
proc Puts pwd read
+
  "b*" { action_when_b_followed_by_anything }
regexp Regsub rename resource
+
  -gl "-re" { action_when_real_dash_r_e }
return Scan seek set
+
  eof { action_on_end_of_file }
socket Source split string
+
  timeout { action_on_command_timeout }
subst Switch tclLog tell
+
  default { action_on_command_timeout_or_eof }
time Trace unknown unset
+
  -re "(abc)*" { action_on_any_number_of_a_b_c }
update Uplevel upvar variable
+
  -re "-?(0|\[1-9]\[0-9]*)?\\.?\[0-9]*" { action_on_float_or_integer }
vwait While
+
}
</pre>
+
You can also pass the pattern as a variable.
 
+
set v2pats "pat2 act2"
 
+
set v3pats "pat3 act3"
 
+
expect pat1 act1 $v2pats $v3pats
<!-- comment -->
+
Observe that the following expect string is wrong as $v2pats and $v3pats is considered as two different arguments. It will try to match $v2pats as a pattern and $v3pats as an action. Instead build up a string and use the -brace flag. You can not use double quotes for that though, unless you use eval and then the -brace flag is not necessary. You also need to protect the pattern and action inside a [list x] or an extra brace if they contain whitespaces.
 
+
2.1  Parentheses for feedback
=== <i>[[#top|&uarr;]] [[#references|&darr;]] edit point - Tcl pattern matching and anchoring, symbols ^ and $ wrt data not lines</i> ===
+
In the previous section, parantheses were used to group subpatterns together. They can also play another role. When a regular expression successfully matches a string each part of the string that matches a paranthensized subpattern is stored in "expect_out(1,string)" the second in "expect_out(2,string)" etc up to "expect_out(9,string)". The entire pattern matched is stored in "expect_out(0,string)". Everthing before the pattern and the pattern matched is stored in "expect_out(buffer)". The last two assignments work in glob pattern too.
 
+
"a*((ab)*|b)"
From the Tcl manual page on-line here is a clue about pattern matching in Tcl scripts, which may explain why we are struggling to obtain matched substrings from sequences of bytes from expect-spawned processes . . .
+
How is this passed to expect_out? It is quite simple. The entire string withing the first parenthesis is stored in 1 (which means up to end of string). The second fount parenthesis is stored in 2. Look for the left parenthesis to determine where the data is put.
 
+
2.2  Flags
<ul>
+
-re
<i>
+
-gl
<pre>
+
-nocase Ignore case. Do not use -nocase with uppercase characters in the pattern as it will never match.
    Note that in many editors, the ^ and $ match the beginning and end of lines respectively. However, because expect is not line oriented, these characters match the beginning and end of the data (as opposed to lines) currently in the expect matching buffer. (Also, see the note below on "system indigestion.")
+
-notransfer Prevent expect from removing matching characters from the internal buffer. The characters can be matched repeatedly as long as this option is associated with the pattern. It can be abbreviated with "-n" when expect is running interactively.
</pre>
+
-brace Expect normally see the first argument as a pattern to match, but sometimes you want to give a list of patterns and actions to expect. You can then use -brace to expand the list before it is handled by expect.
</i>
+
expect -brace { pat1 act1 pat2 act2 }
</ul>
+
This can be useful when building up lists of pattern to match with corresponding actions to do.
 
+
-i n Use an alternative spawn_id. This applies to all patterns after the -i flag.
 
+
expect {
Tcl regular expression syntax:
+
-i $ftp
 +
"ftp>" "exit"
 +
eof "exit"
 +
}
 +
You can also expect values from multiple spawned processes at the same time. At most one action can be executed just as expect normally do.
 +
expect {
 +
-i $ftp "ftp> " { ftp_action }
 +
-i $shell $prompt { shell_action }
 +
}
 +
There is an input buffer associated with each spawn id. So any output from ftp is kept separate from thta of the shell in the example above. When output appear on terminal it will be mixed, unless you expect one at a time or set log_user 0 and then wrote output explictly using send_user $expect_out(buffer). The process that did not match will keep its buffer until matched by next expect command.
 +
When the expect command match something it record the spawn_id to expect_out(spawn_id) so you can know which process that it matched against.
 +
You can also set the spawn_id definition to a list of spawn_ids.
 +
expect {
 +
  -i "$host1 $host2 $host3" $prompt {
 +
    an_action $expect_out(spawn_id)
 +
  }
 +
  eof exit
 +
  -i $host1 another_pattern {host1_action}
 +
}
 +
This example will do an_action if $prompt is matched agains any of the $hostnr, exit if end of file is matched against same list and do host1_action if matchina another_pattern from host1.
 +
2.3  Special patterns
 +
Note that these patcherns will only match if none of the '-gl', '-re' or '-ex' flags has been used.
 +
eof Match when end of file is reached.
 +
timeout Match when the timeout value has been reached.
 +
default Match when end of file or timeout is reached.
 +
full_buffer Match when no other pattern match and expect would otherwise throw away part of the input to make room fore more. When this matches, all of the unmatched input is moved to expect_out(buffer).
 +
null
 +
By default null characters are removed from the buffer before expect matching is done. This can be disabled using the remove_nulls command below. If it is disabled null characters will be matched using this special keyword. Null characters can not be matched inside a pattern as expect first look for null characters and then do pattern matching. If a null character is found the characters before it is skilled. These caracters can be found in expect_out(buffer).
 +
Since the null character is used internally to represent the end of a string unanchored patterns cannot be matched past a null. This is not a problem since null pattern can always be listed last.
  
*  https://www.tcl.tk/man/tcl8.2.3/TclCmd/re_syntax.htm#M57
+
</pre>
  
  
Expect variables, using global and upvar keywords in Tcl scripts:
+
<!-- comment -->
  
*  http://www.huecker.com/msw/tcl/tutorial/Tcl13.shtml
+
=== [[#top|&uarr;]] [[#references|&darr;]] Rust programming language ===
  
 +
There are two editions of the Rust Programming book.  The Rust home page recommends to start by reading the second edition:
 +
*  https://doc.rust-lang.org/book/second-edition/
  
Excerpt on Tcl pattern matching from Inguza web site:
+
*  https://doc.rust-lang.org/nomicon/
 +
 
 +
 
 +
=== [[#top|^]] C programming notes ===
 +
 
 +
This section really should be in a more prominent space of this wiki.  - TMH
 +
 
 +
This section contains link to Brian Barto post about Untangling Complex C Declarations.  Click here -> [[c_programming_notes|C programming notes]] <- for separate wiki article.
 +
 
 +
Typedef and type defining function pointers:
 +
 
 +
<ul>
 +
*  2019-06-11 https://www.learncpp.com/cpp-tutorial/78-function-pointers/
 +
</ul>
 +
 
 +
CRC types and implementations:
 +
 
 +
<ul>
 +
*  https://stackoverflow.com/questions/10564491/function-to-calculate-a-crc16-checksum
 +
</ul>
 +
 
 +
Floating point representation and conversions:
 +
 
 +
<ul>
 +
*  http://www.ryanjuckett.com/programming/printing-floating-point-numbers/
 +
 
 +
<span id="to_untangle_c_declarations"></span> <span id="untangling_complex_c_delcarations"></span>
 +
C programmatic reference and dereference rules, dereferencing pointers and pointer expressions:
 +
*  https://medium.com/@bartobri/untangling-complex-c-declarations-9b6a0cf88c96  <i>"I liked this post about untangling complicated pointer declarations and operators - T.D."</i>
 +
</ul>
 +
 
 +
 
 +
2021-11-03
 +
*  https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.47.1127&rep=rep1&type=pdf
 +
 
 +
<!-- comment -->
 +
 
 +
=== [[#top|^]] C++ references ===
 +
 
 +
This section contains beginning level C++ issues and references.  Section here created by need to note some Qt5 related project elements, as Qt is based on C++.  First issue is to understand and document how to implement a QDialog object to act as a sensible dialog box, which can post run-time data to a larger Qt based application.  The first reference below mentions QDialog built-in class functions exec(), accept() and reject(), which appear to be the means to start and show, and to close out a Qt based dialog box . . .
 +
 
 +
<ul>
 +
*  https://stackoverflow.com/questions/12470806/qdialog-exec-and-getting-result-value
 +
</ul>
 +
 
 +
Per help index in QtCreator 3.2.1:
 +
 
 +
<i>
 +
<pre>
 +
void QDialog::accept() [virtual slot]
 +
Hides the modal dialog and sets the result code to Accepted.
 +
 
 +
See also reject() and done().
 +
</pre>
 +
</i>
 +
 
 +
 
 +
The Qt method <code>done()</code> performs more significant work and at least in cases of a dialog being shown with a call to <code>exec()</code> the done() method stops dialog event loop execution:
 +
 
 +
<i>
 +
<pre>
 +
void QDialog::done(int r) [virtual slot]
 +
Closes the dialog and sets its result code to r. If this dialog is shown with exec(), done() causes the local event loop to finish, and exec() to return r.
 +
 
 +
As with QWidget::close(), done() deletes the dialog if the Qt::WA_DeleteOnClose flag is set. If the dialog is the application's main widget, the application terminates. If the dialog is the last window closed, the QApplication::lastWindowClosed() signal is emitted.
 +
 
 +
See also accept(), reject(), QApplication::activeWindow(), and QApplication::quit().
 +
</pre>
 +
</i>
  
<pre>
 
2  Expect
 
The expect suite actually consist just of a few commands: expect, send, spawn and interact and is an extension to TCL.
 
Before the expect command can be used a program must be spawned, see expect commands below.
 
expect \
 
  {match1} {action1} \
 
  {match2} {action2} \
 
  {match3} {action3} \
 
  {match4} {action4}
 
It is possible that no such output is encountered within the time period defined by the timeout (variable name "timeout" in seconds, default to 2). In this case expect stops waiting and continues with the next command in the script.
 
You can use '*' to match any characters. You can also match using [] syntax and similar.
 
expect "\[a-f0-9]"  ; # strongly preferred as \n and similar is not taken as litteral charactesr \ and n.
 
expect {a-f0-9}    ; # can also be used
 
A note on \ characters. The pattern matcher translate \x to x but this is done once before the pattern matcher. So you need to type \\n to match n. This is especially important for * and ? characters.
 
expect "*" ;# match anything (*)
 
expect "\n" ;# match linefeed
 
expect "\*" ;# match anything
 
expect "\\*" ;# match * character
 
expect "\\\*" ;# match * character
 
expect "\\\\*" ;# match \ followed by anything
 
expect "\\\\\*" ;# match \ followed by anything
 
expect "\\\\\\*" ;# match \ followed * character
 
The [ character is special to both tcl and the pattern matcher so it is especially messy.
 
proc xy {} { return "n*w" }
 
expect "[xy]" ;# match n followed by anything followed by w
 
expect "\[xy]" ;# match x or y
 
expect "\\[xy]" ;# match n followed by anything followed by w
 
expect "\\\[xy]" ;# match [xy]
 
expect "\\\\[xy]" ;# match \ followed by n followed ...
 
expect "\\\\\[xy]" ;# match sequence of \ and then x or y.
 
The expect command can also take flags. The default flag is -gl for glob pattern matching. It can also take the flag -re for regular expression matching.
 
expect {
 
  -re "a*" { action_when_a_followed_by_any_a }
 
  "b*" { action_when_b_followed_by_anything }
 
  -gl "-re" { action_when_real_dash_r_e }
 
  eof { action_on_end_of_file }
 
  timeout { action_on_command_timeout }
 
  default { action_on_command_timeout_or_eof }
 
  -re "(abc)*" { action_on_any_number_of_a_b_c }
 
  -re "-?(0|\[1-9]\[0-9]*)?\\.?\[0-9]*" { action_on_float_or_integer }
 
}
 
You can also pass the pattern as a variable.
 
set v2pats "pat2 act2"
 
set v3pats "pat3 act3"
 
expect pat1 act1 $v2pats $v3pats
 
Observe that the following expect string is wrong as $v2pats and $v3pats is considered as two different arguments. It will try to match $v2pats as a pattern and $v3pats as an action. Instead build up a string and use the -brace flag. You can not use double quotes for that though, unless you use eval and then the -brace flag is not necessary. You also need to protect the pattern and action inside a [list x] or an extra brace if they contain whitespaces.
 
2.1  Parentheses for feedback
 
In the previous section, parantheses were used to group subpatterns together. They can also play another role. When a regular expression successfully matches a string each part of the string that matches a paranthensized subpattern is stored in "expect_out(1,string)" the second in "expect_out(2,string)" etc up to "expect_out(9,string)". The entire pattern matched is stored in "expect_out(0,string)". Everthing before the pattern and the pattern matched is stored in "expect_out(buffer)". The last two assignments work in glob pattern too.
 
"a*((ab)*|b)"
 
How is this passed to expect_out? It is quite simple. The entire string withing the first parenthesis is stored in 1 (which means up to end of string). The second fount parenthesis is stored in 2. Look for the left parenthesis to determine where the data is put.
 
2.2  Flags
 
-re
 
-gl
 
-nocase Ignore case. Do not use -nocase with uppercase characters in the pattern as it will never match.
 
-notransfer Prevent expect from removing matching characters from the internal buffer. The characters can be matched repeatedly as long as this option is associated with the pattern. It can be abbreviated with "-n" when expect is running interactively.
 
-brace Expect normally see the first argument as a pattern to match, but sometimes you want to give a list of patterns and actions to expect. You can then use -brace to expand the list before it is handled by expect.
 
expect -brace { pat1 act1 pat2 act2 }
 
This can be useful when building up lists of pattern to match with corresponding actions to do.
 
-i n Use an alternative spawn_id. This applies to all patterns after the -i flag.
 
expect {
 
-i $ftp
 
"ftp>" "exit"
 
eof "exit"
 
}
 
You can also expect values from multiple spawned processes at the same time. At most one action can be executed just as expect normally do.
 
expect {
 
-i $ftp "ftp> " { ftp_action }
 
-i $shell $prompt { shell_action }
 
}
 
There is an input buffer associated with each spawn id. So any output from ftp is kept separate from thta of the shell in the example above. When output appear on terminal it will be mixed, unless you expect one at a time or set log_user 0 and then wrote output explictly using send_user $expect_out(buffer). The process that did not match will keep its buffer until matched by next expect command.
 
When the expect command match something it record the spawn_id to expect_out(spawn_id) so you can know which process that it matched against.
 
You can also set the spawn_id definition to a list of spawn_ids.
 
expect {
 
  -i "$host1 $host2 $host3" $prompt {
 
    an_action $expect_out(spawn_id)
 
  }
 
  eof exit
 
  -i $host1 another_pattern {host1_action}
 
}
 
This example will do an_action if $prompt is matched agains any of the $hostnr, exit if end of file is matched against same list and do host1_action if matchina another_pattern from host1.
 
2.3  Special patterns
 
Note that these patcherns will only match if none of the '-gl', '-re' or '-ex' flags has been used.
 
eof Match when end of file is reached.
 
timeout Match when the timeout value has been reached.
 
default Match when end of file or timeout is reached.
 
full_buffer Match when no other pattern match and expect would otherwise throw away part of the input to make room fore more. When this matches, all of the unmatched input is moved to expect_out(buffer).
 
null
 
By default null characters are removed from the buffer before expect matching is done. This can be disabled using the remove_nulls command below. If it is disabled null characters will be matched using this special keyword. Null characters can not be matched inside a pattern as expect first look for null characters and then do pattern matching. If a null character is found the characters before it is skilled. These caracters can be found in expect_out(buffer).
 
Since the null character is used internally to represent the end of a string unanchored patterns cannot be matched past a null. This is not a problem since null pattern can always be listed last.
 
  
</pre>
+
So it looks like if we do not call done() then we want to assure that we call exec() only one time during a use session of GWN Unified Tester.  - TMH
  
  
 
<!-- comment -->
 
<!-- comment -->
 +
2019-10-28 Monday:
 +
G++ error, "template has C linkage":
  
=== [[#top|&uarr;]] [[#references|&darr;]] Rust programming language ===
+
*  https://stackoverflow.com/questions/4877705/why-cant-templates-be-within-extern-c-blocks
  
There are two editions of the Rust Programming book. The Rust home page recommends to start by reading the second edition:
+
2019-10-30 Wednesday:
*  https://doc.rust-lang.org/book/second-edition/
+
The purposes and use of extern "C" . . .
 +
<ul>
 +
*  https://stackoverflow.com/questions/1041866/what-is-the-effect-of-extern-c-in-c
 +
</ul>
  
*  https://doc.rust-lang.org/nomicon/
 
  
  
=== [[#top|^]] C programming notes ===
+
<!-- comment -->
  
This section really should be in a more prominent space of this wiki. - TMH
+
== - - - - - - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
  
Click here -> [[c_programming_notes|C programming notes]] <- for separate wiki article.
 
  
Typedef and type defining function pointers:
 
  
<ul>
+
<!-- comment -->
*  2019-06-11 https://www.learncpp.com/cpp-tutorial/78-function-pointers/
 
</ul>
 
  
CRC types and implementations:
+
<!-- SECTION - Aboriginal Linux -->
  
<ul>
+
== [[#top|&uarr;]] [[#references|&darr;]] Aboriginal Linux - project now defunct, new project is 'makeroot' ==
*  https://stackoverflow.com/questions/10564491/function-to-calculate-a-crc16-checksum
 
</ul>
 
  
Floating point representation and conversions:
 
  
<ul>
+
Ok, looks like Robert Landley's [https://landley.net/aboriginal/about.html Aboriginal Linux] project has been superceded by [http://landley.net/aboriginal/ mkroot]. Ladnley's newer makeroot project sources are available at GitHub:
*  http://www.ryanjuckett.com/programming/printing-floating-point-numbers/
 
*  https://medium.com/@bartobri/untangling-complex-c-declarations-9b6a0cf88c96 <i>"I liked this post about untangling complicated pointer declarations and operators - T.D."</i>
 
</ul>
 
  
  
<!-- comment -->
+
*  [https://github.com/landley/mkroot makeroot project on GitHub]
  
=== [[#top|^]] C++ references ===
 
  
This section contains beginning level C++ issues and references.  Section here created by need to note some Qt5 related project elements, as Qt is based on C++.  First issue is to understand and document how to implement a QDialog object to act as a sensible dialog box, which can post run-time data to a larger Qt based application.  The first reference below mentions QDialog built-in class functions exec(), accept() and reject(), which appear to be the means to start and show, and to close out a Qt based dialog box . . .
+
Having trouble carrying out the basic build of Aboriginal Linux with armv6l as target . . .
 
 
<ul>
 
*  https://stackoverflow.com/questions/12470806/qdialog-exec-and-getting-result-value
 
</ul>
 
 
 
Per help index in QtCreator 3.2.1:
 
  
<i>
 
 
<pre>
 
<pre>
void QDialog::accept() [virtual slot]
 
Hides the modal dialog and sets the result code to Accepted.
 
  
See also reject() and done().
+
  .
</pre>
+
  .
</i>
+
  .
  
 +
Confirmed e2fsprogs-1.42.13.tar.gz
 +
Confirmed zlib-1.2.7.tar.bz2
 +
Confirmed squashfs-4.2.tar.gz
 +
=== Got all source.
  
The Qt method <code>done()</code> performs more significant work and at least in cases of a dialog being shown with a call to <code>exec()</code> the done() method stops dialog event loop execution:
+
real    0m2.240s
 
+
user    0m1.188s
<i>
+
sys    0m0.176s
<pre>
+
=== toybox (host host-tools)
void QDialog::done(int r) [virtual slot]
+
Snapshot 'toybox'...
Closes the dialog and sets its result code to r. If this dialog is shown with exec(), done() causes the local event loop to finish, and exec() to return r.
+
scripts/genconfig.sh
 +
cc -o kconfig/conf kconfig/conf.c kconfig/zconf.tab.c -DKBUILD_NO_NLS=1 \
 +
                -DPROJECT_NAME=\"ToyBox\"
 +
kconfig/conf -D /dev/null Config.in > /dev/null
 +
scripts/make.sh
 +
Generate headers from toys/*/*.c...
 +
generated/newtoys.h Library probe.......
 +
Make generated/config.h from .config.
 +
generated/flags.h generated/globals.h generated/help.h
 +
Compile toybox................................................................................................................................................................generated/obj/nsenter.o: In function `unshare_main':
 +
nsenter.c:(.text.unshare_main+0x152): undefined reference to `setns'
 +
collect2: error: ld returned 1 exit status
 +
make: *** [toybox] Error 1
  
As with QWidget::close(), done() deletes the dialog if the Qt::WA_DeleteOnClose flag is set. If the dialog is the application's main widget, the application terminates. If the dialog is the last window closed, the QApplication::lastWindowClosed() signal is emitted.
+
Exiting due to errors (host host-tools toybox)
  
See also accept(), reject(), QApplication::activeWindow(), and QApplication::quit().
 
 
</pre>
 
</pre>
</i>
 
  
 +
*  [http://man7.org/linux/man-pages/man2/setns.2.html Linux kernel routine to setns()]
 +
 +
 +
Robert Landley also has a presence on [https://www.patreon.com/landley www.patreon.com/landley], where he talks about the over-arching goals in his programming and software systems level work.
  
So it looks like if we do not call done() then we want to assure that we call exec() only one time during a use session of GWN Unified Tester.  - TMH
 
  
  
 
<!-- comment -->
 
<!-- comment -->
2019-10-28 Monday:
 
G++ error, "template has C linkage":
 
  
*  https://stackoverflow.com/questions/4877705/why-cant-templates-be-within-extern-c-blocks
+
<!-- SECTION - Linux From Scratch 8.1 - Separate Article -->
 +
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] Linux From Scratch (Separate Article) ==
  
2019-10-30 Wednesday:
+
[[LFS-book-8p1-notes|Linux From Scratch Book 8.1 - Build and Notes]]
The purposes and use of extern "C" . . .
 
<ul>
 
*  https://stackoverflow.com/questions/1041866/what-is-the-effect-of-extern-c-in-c
 
</ul>
 
  
  
Line 1,054: Line 1,492:
 
<!-- comment -->
 
<!-- comment -->
  
== - - - - - - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
+
<!-- SECTION - QEMU Emulator -->
  
 +
== [[#top|&uarr;]] [[#references|&darr;]] QEMU Emulator ==
  
 +
<b>Overview</b>
  
<!-- comment -->
+
Notes on QEMU, an emulator which can help with building and configuring Linux systems to run on embedded computers and development boards.  Ted noting 2017-09-08 that to compile today's latest QEMU source, a 2.10.x release, needed to install Debian stretch packages pkg-config, libglib2.0-dev, dhautoreconf.  Here are some links to downloading QEMU project sources, a manual for using QEMU, and an article about emulating a RaspberryPi system by using QEMU:
  
<!-- SECTION - Aboriginal Linux -->
 
  
== [[#top|&uarr;]] [[#references|&darr;]] Aboriginal Linux - project now defunct, new project is 'makeroot' ==
+
<b>References:</b>
  
 +
*  [https://www.qemu.org/download/#source QEMU Emulator, source code download site]
 +
*  [https://qemu.weilnetz.de/doc/qemu-doc.html QEMU manual]
 +
*  [https://en.wikibooks.org/wiki/QEMU/Images How to invoke qemu and give it image to run as operating system]
  
Ok, looks like Robert Landley's [https://landley.net/aboriginal/about.html Aboriginal Linux] project has been superceded by [http://landley.net/aboriginal/ mkroot]. Ladnley's newer makeroot project sources are available at GitHub:
+
QEMU to emulate Arm on Linux . . .
 +
[https://gist.github.com/Liryna/10710751 Emulating ARM on Ubuntu and Debian]
 +
[http://embedonix.com/articles/linux/emulating-raspberry-pi-on-linux/ Emulating Raspberry Pi under Linux, Embedonix article]
 +
* [https://medicineyeh.wordpress.com/2016/03/29/buildup-your-arm-image-for-qemu/ Medicineyeh - Build your Arm image for QEMU]
  
 +
How to avoid "raw image format" warning . . .
 +
*  https://unix.stackexchange.com/questions/276480/booting-a-raw-disk-image-in-qemu
  
*  [https://github.com/landley/mkroot makeroot project on GitHub]
 
  
  
Having trouble carrying out the basic build of Aboriginal Linux with armv6l as target . . .
+
So got QEMU 2.10.0 sources and dependencies installed, ran `configure` and `make` steps, and let the build process run for an hour or two.  But in the end could not find any `qemu` executable.  Why is the emulator itself apparently missing?  Building latest QEMU under Linux . . .
 +
 
 +
*  [https://wiki.qemu.org/Hosts/Linux Building QEMU on Linux type hosts]
 +
 
 +
 
 +
So I'm following the above article author's typical build steps, and run into this message part-way down those steps, at the step of calling `make`:
  
 
<pre>
 
<pre>
 +
user@host-6:~/Downloads/qemu/qemu-2.10.0/bin/debug/native$ make
 +
Makefile:21: *** This is an out of tree build but your source tree (/home/veris/Downloads/qemu/qemu-2.10.0) seems to have been used for an in-tree build. You can fix this by running "make distclean && rm -rf *-linux-user *-softmmu" in your source tree.  Stop.
 +
user@host-6:~/Downloads/qemu/qemu-2.10.0/bin/debug/native$
 +
</pre>
 +
 +
 +
Ok interesting, I know that QEMU is a complicated project with a complex build process, but clearly I don't know what I'm doing.  Following the above 'distclean' command given in the error message from QEMU's makefile, I'm now able to begin an "out of tree" build as described in the "Building QEMU" article at qemu.org just above.  Tired already however of QEMU project builds taking more than an hour to complete.  Here is one of many articles describing how to invoke `make` to build only limited parts of QEMU project, for example just the pieces needed to emulate ARM type systems:
 +
 +
 +
*  [https://www.cnx-software.com/2012/03/08/how-to-build-qemu-system-arm-in-linux/ Build qemu-system-arm on Linux host]
  
  .
 
  .
 
  .
 
  
Confirmed e2fsprogs-1.42.13.tar.gz
+
Ted to test this type of build soon . . .
Confirmed zlib-1.2.7.tar.bz2
 
Confirmed squashfs-4.2.tar.gz
 
=== Got all source.
 
  
real    0m2.240s
+
On a different note, QEMU build has completed and the stock RaspberryPi Debian "Stretch" image is coming up. Needed to install a VNC client to interact with the emulated RaspberryPi operating and software, stored in the downloaded .img file from Rpi's web site. Here's a link to a forum post which clued Ted into Remmina VNC client:
user    0m1.188s
 
sys    0m0.176s
 
=== toybox (host host-tools)
 
Snapshot 'toybox'...
 
scripts/genconfig.sh
 
cc -o kconfig/conf kconfig/conf.c kconfig/zconf.tab.c -DKBUILD_NO_NLS=1 \
 
                -DPROJECT_NAME=\"ToyBox\"
 
kconfig/conf -D /dev/null Config.in > /dev/null
 
scripts/make.sh
 
Generate headers from toys/*/*.c...
 
generated/newtoys.h Library probe.......
 
Make generated/config.h from .config.
 
generated/flags.h generated/globals.h generated/help.h
 
Compile toybox................................................................................................................................................................generated/obj/nsenter.o: In function `unshare_main':
 
nsenter.c:(.text.unshare_main+0x152): undefined reference to `setns'
 
collect2: error: ld returned 1 exit status
 
make: *** [toybox] Error 1
 
  
Exiting due to errors (host host-tools toybox)
 
  
</pre>
+
*  [https://www.quora.com/How-could-I-connect-to-a-VNC-server-running-on-1-5900 Quora dot com, connect to VNC server]
  
*  [http://man7.org/linux/man-pages/man2/setns.2.html Linux kernel routine to setns()]
 
  
  
Robert Landley also has a presence on [https://www.patreon.com/landley www.patreon.com/landley], where he talks about the over-arching goals in his programming and software systems level work.
+
- 2017-11-21 Tuesday -
  
 +
The version of qemu which installed from Debian's package list didn't seem to work.  It's been some weeks now since trying that instance, but qemu 2.10.0 works to bring up a command line image built for RaspberryPi.  Here are the versions of the two qemu instances:
  
 +
<i>Figure x - locating qemu instances, determining their versions</i>
  
<!-- comment -->
+
<pre>
  
<!-- SECTION - Linux From Scratch 8.1 - Separate Article -->
+
user@localhost:~$ which qemu
 +
/usr/bin/qemu
  
== [[#top|&uarr;]] [[#references|&darr;]] Linux From Scratch (Separate Article) ==
+
user@localhost:~$ /usr/bin/qemu --version
 +
QEMU emulator version 1.1.2 (Debian 1.1.2+dfsg-6+deb7u23), Copyright (c) 2003-2008 Fabrice Bellard
  
[[LFS-book-8p1-notes|Linux From Scratch Book 8.1 - Build and Notes]]
+
user@localhost:~$ ls /opt/qemu
 +
qemu-system-arm
  
 +
user@localhost:~$ ls -l /opt/qemu/qemu-system-arm
 +
lrwxrwxrwx 1 root root 83 Sep 12 16:37 /opt/qemu/qemu-system-arm -> /home/user/Downloads/qemu/qemu-2.10.0/bin/debug/native/arm-softmmu/qemu-system-arm
  
 +
user@localhost:~$ /opt/qemu/qemu-system-arm --version
 +
QEMU emulator version 2.10.0
 +
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
  
<!-- comment -->
+
user@localhost:~
  
<!-- SECTION - QEMU Emulator -->
+
</pre>
  
== [[#top|&uarr;]] [[#references|&darr;]] QEMU Emulator ==
 
  
<b>Overview</b>
 
  
Notes on QEMU, an emulator which can help with building and configuring Linux systems to run on embedded computers and development boards.  Ted noting 2017-09-08 that to compile today's latest QEMU source, a 2.10.x release, needed to install Debian stretch packages pkg-config, libglib2.0-dev, dhautoreconf.  Here are some links to downloading QEMU project sources, a manual for using QEMU, and an article about emulating a RaspberryPi system by using QEMU:
+
- 2017-11-22 Wednesday -
  
 +
Yesterday could not bring up raspbian image in qemu, same image which booted and appeared, and permitted shell based login and shell use a month ago on the local host.  Looking at a new on-line reference for running raspbian images in qemu:
  
<b>References:</b>
 
  
[https://www.qemu.org/download/#source QEMU Emulator, source code download site]
+
  *  https://ownyourbits.com/2017/02/06/raspbian-on-qemu-with-network-access/
*  [https://qemu.weilnetz.de/doc/qemu-doc.html QEMU manual]
 
*  [https://en.wikibooks.org/wiki/QEMU/Images How to invoke qemu and give it image to run as operating system]
 
  
QEMU to emulate Arm on Linux . . .
 
*  [https://gist.github.com/Liryna/10710751 Emulating ARM on Ubuntu and Debian]
 
*  [http://embedonix.com/articles/linux/emulating-raspberry-pi-on-linux/ Emulating Raspberry Pi under Linux, Embedonix article]
 
*  [https://medicineyeh.wordpress.com/2016/03/29/buildup-your-arm-image-for-qemu/ Medicineyeh - Build your Arm image for QEMU]
 
  
How to avoid "raw image format" warning . . .
+
This above article looks really interesting, appears to go to a second installment of the article where the developers there are building some kind of cloud-based or cloud involved web, database, mail and PHP servers. But on my end having trouble with a kernel panic this morning when invoking qemu-system-arm with a large set of options . . . ok, just located a different invocation of qemu-system-arm version 2.10.0, noting here in following code figure:
*  https://unix.stackexchange.com/questions/276480/booting-a-raw-disk-image-in-qemu
 
  
  
 +
<i>Figure x - emulate-rpi shell script</i>
  
So got QEMU 2.10.0 sources and dependencies installed, ran `configure` and `make` steps, and let the build process run for an hour or two.  But in the end could not find any `qemu` executable.  Why is the emulator itself apparently missing?  Building latest QEMU under Linux . . .
+
<pre>
  
*  [https://wiki.qemu.org/Hosts/Linux Building QEMU on Linux type hosts]
+
#!/bin/bash
 +
# Starts raspberry pi image in configuration mode
  
  
So I'm following the above article author's typical build steps, and run into this message part-way down those steps, at the step of calling `make`:
+
##----------------------------------------------------------------------
 +
## - SECTION - script variables
 +
##----------------------------------------------------------------------
  
<pre>
+
EMULATOR=/home/veris/Downloads/qemu/qemu-2.10.0/bin/debug/native/arm-softmmu/qemu-system-arm
user@host-6:~/Downloads/qemu/qemu-2.10.0/bin/debug/native$ make
 
Makefile:21: *** This is an out of tree build but your source tree (/home/veris/Downloads/qemu/qemu-2.10.0) seems to have been used for an in-tree build. You can fix this by running "make distclean && rm -rf *-linux-user *-softmmu" in your source tree.  Stop.
 
user@host-6:~/Downloads/qemu/qemu-2.10.0/bin/debug/native$
 
</pre>
 
  
  
Ok interesting, I know that QEMU is a complicated project with a complex build process, but clearly I don't know what I'm doing.  Following the above 'distclean' command given in the error message from QEMU's makefile, I'm now able to begin an "out of tree" build as described in the "Building QEMU" article at qemu.org just above.  Tired already however of QEMU project builds taking more than an hour to complete.  Here is one of many articles describing how to invoke `make` to build only limited parts of QEMU project, for example just the pieces needed to emulate ARM type systems:
 
  
 +
##----------------------------------------------------------------------
 +
## - SECTION - original emulator invocation, everything hard-coded
 +
##----------------------------------------------------------------------
  
*  [https://www.cnx-software.com/2012/03/08/how-to-build-qemu-system-arm-in-linux/ Build qemu-system-arm on Linux host]
+
# qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda rpi.img
  
 +
# qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda rpi.img
  
Ted to test this type of build soon . . .
 
  
On a different note, QEMU build has completed and the stock RaspberryPi Debian "Stretch" image is coming up.  Needed to install a VNC client to interact with the emulated RaspberryPi operating and software, stored in the downloaded .img file from Rpi's web site.  Here's a link to a forum post which clued Ted into Remmina VNC client:
 
  
 +
##----------------------------------------------------------------------
 +
## - SECTION - invocation, emulator as variable:
 +
##----------------------------------------------------------------------
  
*  [https://www.quora.com/How-could-I-connect-to-a-VNC-server-running-on-1-5900 Quora dot com, connect to VNC server]
+
# ${EMULATOR} -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda rpi.img
  
 +
# Start RaspberryPi in fully functional mode:
 +
${EMULATOR} -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda rpi.img
  
  
- 2017-11-21 Tuesday -
 
  
The version of qemu which installed from Debian's package list didn't seem to work.  It's been some weeks now since trying that instance, but qemu 2.10.0 works to bring up a command line image built for RaspberryPi.  Here are the versions of the two qemu instances:
 
  
<i>Figure x - locating qemu instances, determining their versions</i>
 
  
<pre>
 
  
user@localhost:~$ which qemu
+
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/usr/bin/qemu
+
## 2017-09-08 FRI - this script copied from http://embedonix.com/articles/linux/emulating-raspberry-pi-on-linux/
 +
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  
user@localhost:~$ /usr/bin/qemu --version
+
exit 0
QEMU emulator version 1.1.2 (Debian 1.1.2+dfsg-6+deb7u23), Copyright (c) 2003-2008 Fabrice Bellard
 
  
user@localhost:~$ ls /opt/qemu
+
</pre>
qemu-system-arm
 
  
user@localhost:~$ ls -l /opt/qemu/qemu-system-arm
 
lrwxrwxrwx 1 root root 83 Sep 12 16:37 /opt/qemu/qemu-system-arm -> /home/user/Downloads/qemu/qemu-2.10.0/bin/debug/native/arm-softmmu/qemu-system-arm
 
  
user@localhost:~$ /opt/qemu/qemu-system-arm --version
+
The final token <code>rpi.img</code> points to <code>localhost:/home/user/Downloads/raspberrypi/2017-08-16-raspbian-stretch-lite.img</code> which we downloaded from https://www.raspberrypi.org/downloads/raspbian/. The working qemu invocation doesn't open qemu's native window, but puts to standard out that is the same shell in which qemu invoked, a couple of lines of output from the booting kernel image.  Then using remmina we connect via "VNC server running on ::1:5900".
QEMU emulator version 2.10.0
 
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
 
  
user@localhost:~
+
In summary shell script in latest figure successfully invokes qemu-system-arm 2.10.0 built from sources about August 2017, and boots up Raspbian Stretch lite image and kernel named kernel-qemu-4.4.34-jessie.  Next figure is screenshot showing successful login, and last login message . . . though emulation was and is very slow on host system!
  
</pre>
 
  
 +
<i>Figure x - emulated raspbian stretch lite screenshot, Remmina window</i>
  
 +
[[media:z.png]]
  
- 2017-11-22 Wednesday -
 
  
Yesterday could not bring up raspbian image in qemu, same image which booted and appeared, and permitted shell based login and shell use a month ago on the local host.  Looking at a new on-line reference for running raspbian images in qemu:
+
A shorter script to start raspberrypi kernel plus image, running in QEMU:
  
 +
<pre>
 +
#!/bin/bash
  
  *  https://ownyourbits.com/2017/02/06/raspbian-on-qemu-with-network-access/
+
qemu-system-arm -kernel ./kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ./2017-09-07-raspbian-stretch-lite.img -redir tcp:5022::22 -no-reboot
 +
 
 +
exit 0
 +
</pre>
  
  
This above article looks really interesting, appears to go to a second installment of the article where the developers there are building some kind of cloud-based or cloud involved web, database, mail and PHP servers.  But on my end having trouble with a kernel panic this morning when invoking qemu-system-arm with a large set of options . . . ok, just located a different invocation of qemu-system-arm version 2.10.0, noting here in following code figure:
 
  
 +
- 2017-12-12 WED -
  
<i>Figure x - emulate-rpi shell script</i>
+
An excerpt from qemu.org/download#source, on how to download, configure and compile latest QEMU sources:
  
 
<pre>
 
<pre>
 +
"
 +
Build instructions
  
#!/bin/bash
+
To download and build QEMU 2.11.0-rc5:
# Starts raspberry pi image in configuration mode
 
  
 +
wget https://download.qemu.org/qemu-2.11.0-rc5.tar.xz
 +
tar xvJf qemu-2.11.0-rc5.tar.xz
 +
cd qemu-2.11.0-rc5
 +
./configure
 +
make
  
##----------------------------------------------------------------------
+
To download and build QEMU from git:
## - SECTION - script variables
+
 
##----------------------------------------------------------------------
+
git clone git://git.qemu.org/qemu.git
 +
cd qemu
 +
git submodule init
 +
git submodule update --recursive
 +
./configure
 +
make
  
EMULATOR=/home/veris/Downloads/qemu/qemu-2.10.0/bin/debug/native/arm-softmmu/qemu-system-arm
+
The latest development happens on the master branch. The stable trees are located in branches named stable-X.YY branch, where X.YY is the release version.
 +
"
 +
</pre>
  
  
  
##----------------------------------------------------------------------
+
<!-- comment -->
## - SECTION - original emulator invocation, everything hard-coded
 
##----------------------------------------------------------------------
 
  
# qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda rpi.img
+
<!-- SECTION - Embedded Linux Notes, focus on Rpi Linux Kernel Config -->
  
# qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda rpi.img
+
== [[#top|&uarr;]] [[#references|&darr;]] Embedded Linux Notes, focus on Rpi Linux Kernel Config ==
  
 +
2018-11-09 - Ted to create [[nn_embedded_work|embedded work]] article on this wiki installation, so noting this Friday evening.  - TMH
  
 +
Ted looking into a couple of areas of embedded Linux, including [[nn_embedded_linux_notes|custom kernel config for Rpi]], the open source Buildroot project, Tiny-Core Linux and FreeRTOS.  Ted also stashing some links to embedded studies notes on this wiki here:
  
##----------------------------------------------------------------------
+
*  [[system_partitions_to_hard_disk|Copying Rpi Linux partitions to hard disk]]
## - SECTION - invocation, emulator as variable:
 
##----------------------------------------------------------------------
 
  
# ${EMULATOR} -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda rpi.img
 
  
# Start RaspberryPi in fully functional mode:
 
${EMULATOR} -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda rpi.img
 
  
 +
<!-- comment -->
  
 +
== [[#top|&uarr;]] [[#references|&darr;]] FreeRTOS Notes (Separate Article) ==
  
 +
<!-- 2017-12-08 FRI -->
  
  
 +
[[FreeRTOS|FreeRTOS notes]]
  
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
Ted to move this link to nn wiki article named 'FreeRTOS'.  For now however Ted noting an openssl library named Wolfssl:
## 2017-09-08 FRI - this script copied from http://embedonix.com/articles/linux/emulating-raspberry-pi-on-linux/
 
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
  
exit 0
+
*  https://freertos.org/FreeRTOS-Plus/WolfSSL/WolfSSL.shtml
 +
*  https://www.wolfssl.com/
 +
*  https://www.wolfssl.com/license/
  
</pre>
 
  
 +
NOTE 2017-12-10:  this section 'embedded operating systems' to become a shorter list of major significant embedded OS's.  As of 2017 winter Ted studying couple distributions of embedded Linux and FreeRTOS.
  
The final token <code>rpi.img</code> points to <code>localhost:/home/user/Downloads/raspberrypi/2017-08-16-raspbian-stretch-lite.img</code> which we downloaded from https://www.raspberrypi.org/downloads/raspbian/.  The working qemu invocation doesn't open qemu's native window, but puts to standard out that is the same shell in which qemu invoked, a couple of lines of output from the booting kernel image.  Then using remmina we connect via "VNC server running on ::1:5900".
 
  
In summary shell script in latest figure successfully invokes qemu-system-arm 2.10.0 built from sources about August 2017, and boots up Raspbian Stretch lite image and kernel named kernel-qemu-4.4.34-jessie.  Next figure is screenshot showing successful login, and last login message . . . though emulation was and is very slow on host system!
 
  
 +
<!-- comment -->
  
<i>Figure x - emulated raspbian stretch lite screenshot, Remmina window</i>
+
== [[#top|&uarr;]] [[#references|&darr;]] Bootloader U-Boot ==
  
[[media:z.png]]
+
Ted noting after several custom Linux-for-Rpi kernel build attempts that Raspberry Pi board uses a bootloader typically other than GRUB, commonly uses U-boot.  A first tutorial . . . also running into U-boot sources makefile calling a project script which fails to find gcc-6, though /usr/bin/gcc is a symlink to that newer gcc . . .
  
  
A shorter script to start raspberrypi kernel plus image, running in QEMU:
+
*  http://etutorials.org/Linux+systems/embedded+linux+systems/Chapter+9.+Setting+Up+the+Bootloader/9.5+U-Boot/
 +
*  https://blog.christophersmart.com/2016/10/27/building-and-booting-upstream-linux-and-u-boot-for-raspberry-pi-23-arm-boards/
  
<pre>
+
After installing manually some twenty or thirty gcc-6-arm-linux and gcc-6, gcc-7 files, and installing more modern version of build-essentials package from Ubuntu release codenamed 'bionic', can now build u-boot.  Tail of messages from build process . . .
#!/bin/bash
 
 
 
qemu-system-arm -kernel ./kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ./2017-09-07-raspbian-stretch-lite.img -redir tcp:5022::22 -no-reboot
 
 
 
exit 0
 
</pre>
 
 
 
 
 
 
 
- 2017-12-12 WED -
 
 
 
An excerpt from qemu.org/download#source, on how to download, configure and compile latest QEMU sources:
 
  
 
<pre>
 
<pre>
"
+
  CC      lib/strto.o
Build instructions
+
  CC      lib/strmhz.o
 
+
  LD      lib/built-in.o
To download and build QEMU 2.11.0-rc5:
+
  CC      examples/standalone/stubs.o
 +
  CC      CC      lib/strto.o
 +
  CC      lib/strmhz.o
 +
  LD      lib/built-in.o
 +
  CC      examples/standalone/stubs.o
 +
  CC      examples/standalone/hello_world.o
 +
  LD      examples/standalone/libstubs.o
 +
  LD      examples/standalone/hello_world
 +
  OBJCOPY examples/standalone/hello_world.srec
 +
  OBJCOPY examples/standalone/hello_world.bin
 +
  LD      u-boot
 +
  OBJCOPY u-boot.srec
 +
  OBJCOPY u-boot-nodtb.bin
 +
  SYM    u-boot.sym
 +
  COPY    u-boot.bin
 +
  CFGCHK  u-boot.cfg
 +
ted@rangari:/var/local/ted/projects/u-boot$ examples/standalone/hello_world.o
 +
  LD      examples/standalone/libstubs.o
 +
  LD      examples/standalone/hello_world
 +
  OBJCOPY examples/standalone/hello_world.srec
 +
  OBJCOPY examples/standalone/hello_world.bin
 +
  LD      u-boot
 +
  OBJCOPY u-boot.srec
 +
  OBJCOPY u-boot-nodtb.bin
 +
  SYM    u-boot.sym
 +
  COPY    u-boot.bin
 +
  CFGCHK  u-boot.cfg
 +
ted@rangari:/var/local/ted/projects/u-boot$
 +
</pre>
  
wget https://download.qemu.org/qemu-2.11.0-rc5.tar.xz
 
tar xvJf qemu-2.11.0-rc5.tar.xz
 
cd qemu-2.11.0-rc5
 
./configure
 
make
 
  
To download and build QEMU from git:
 
  
git clone git://git.qemu.org/qemu.git
+
<!-- comment -->
cd qemu
+
 
git submodule init
+
== [[#top|&uarr;]] [[#references|&darr;]] LPC11U6x Development Board ==
git submodule update --recursive
+
 
./configure
+
*  https://community.nxp.com/thread/389139
make
+
*  http://www.embeddedartists.com/products/lpcxpresso/lpclink2.php
 
+
*  https://os.mbed.com/teams/Semtech/code/SX1276TxContinuousWave/
The latest development happens on the master branch. The stable trees are located in branches named stable-X.YY branch, where X.YY is the release version.
 
"
 
</pre>
 
  
  
Line 1,325: Line 1,783:
 
<!-- comment -->
 
<!-- comment -->
  
<!-- SECTION - Embedded Linux Notes, focus on Rpi Linux Kernel Config -->
+
== [[#top|&uarr;]] [[#references|&darr;]] avr-libc ==
  
== [[#top|&uarr;]] [[#references|&darr;]] Embedded Linux Notes, focus on Rpi Linux Kernel Config ==
+
<pre>
 +
./avr-libc-1.8.0/include/avr/iom8.h:634:#if !defined(__AVR_LIBC_DEPRECATED_ENABLE__)
 +
./avr-libc-1.8.0/include/avr/iom8.h:657:#endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
  
2018-11-09 - Ted to create [[nn_embedded_work|embedded work]] article on this wiki installation, so noting this Friday evening- TMH
+
.
 +
.
 +
  .
  
Ted looking into a couple of areas of embedded Linux, including [[nn_embedded_linux_notes|custom kernel config for Rpi]], the open source Buildroot project, Tiny-Core Linux and FreeRTOS.  Ted also stashing some links to embedded studies notes on this wiki here:
+
633 /* Deprecated items */
 
+
634 #if !defined(__AVR_LIBC_DEPRECATED_ENABLE__)
* [[system_partitions_to_hard_disk|Copying Rpi Linux partitions to hard disk]]
+
635
 +
636 #pragma GCC system_header
 +
637
 +
638 #pragma GCC poison SIG_INTERRUPT0
 +
639 #pragma GCC poison SIG_INTERRUPT1
 +
640 #pragma GCC poison SIG_OUTPUT_COMPARE2
 +
641 #pragma GCC poison SIG_OVERFLOW2
 +
642 #pragma GCC poison SIG_INPUT_CAPTURE1
 +
643 #pragma GCC poison SIG_OUTPUT_COMPARE1A
 +
644 #pragma GCC poison SIG_OUTPUT_COMPARE1B
 +
645 #pragma GCC poison SIG_OVERFLOW1
 +
646 #pragma GCC poison SIG_OVERFLOW0
 +
647 #pragma GCC poison SIG_SPI
 +
648 #pragma GCC poison SIG_UART_RECV
 +
649 #pragma GCC poison SIG_UART_DATA
 +
650 #pragma GCC poison SIG_UART_TRANS
 +
651 #pragma GCC poison SIG_ADC
 +
652 #pragma GCC poison SIG_EEPROM_READY
 +
653 #pragma GCC poison SIG_COMPARATOR
 +
654 #pragma GCC poison SIG_2WIRE_SERIAL
 +
655 #pragma GCC poison SIG_SPM_READY
 +
656
 +
657 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
  
 +
</pre>
  
  
 
<!-- comment -->
 
<!-- comment -->
  
== [[#top|&uarr;]] [[#references|&darr;]] FreeRTOS Notes (Separate Article) ==
+
== [[#top|&uarr;]] [[#references|&darr;]] EWAVR, IAR Workbench, Keil compiler notes ==
  
<!-- 2017-12-08 FRI -->
+
2019-01-03 THU
  
 +
*  http://www.keil.com/support/man/docs/c51/c51_le_sfr.htm
  
[[FreeRTOS|FreeRTOS notes]]
 
  
Ted to move this link to nn wiki article named 'FreeRTOS'.  For now however Ted noting an openssl library named Wolfssl:
+
<!-- comment -->
  
* https://freertos.org/FreeRTOS-Plus/WolfSSL/WolfSSL.shtml
+
== - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - - - - - - - - - - - ==
* https://www.wolfssl.com/
 
* https://www.wolfssl.com/license/
 
  
 +
== [[#top|&uarr;]] [[#references|&darr;]] Yocto References ==
  
NOTE 2017-12-10:  this section 'embedded operating systems' to become a shorter list of major significant embedded OS's.  As of 2017 winter Ted studying couple distributions of embedded Linux and FreeRTOS.
 
  
 +
*  [https://github.com/toradex/meta-product Yocto meta-product project by Toradex]
  
  
 
<!-- comment -->
 
<!-- comment -->
  
== [[#top|&uarr;]] [[#references|&darr;]] Bootloader U-Boot ==
+
== - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
  
Ted noting after several custom Linux-for-Rpi kernel build attempts that Raspberry Pi board uses a bootloader typically other than GRUB, commonly uses U-boot.  A first tutorial . . . also running into U-boot sources makefile calling a project script which fails to find gcc-6, though /usr/bin/gcc is a symlink to that newer gcc . . .
 
  
  
*  http://etutorials.org/Linux+systems/embedded+linux+systems/Chapter+9.+Setting+Up+the+Bootloader/9.5+U-Boot/
+
<!-- comment -->
*  https://blog.christophersmart.com/2016/10/27/building-and-booting-upstream-linux-and-u-boot-for-raspberry-pi-23-arm-boards/
+
 
 +
== [[#top|&uarr;]] [[#references|&darr;]] Mobile App Development On Linux ==
  
After installing manually some twenty or thirty gcc-6-arm-linux and gcc-6, gcc-7 files, and installing more modern version of build-essentials package from Ubuntu release codenamed 'bionic', can now build u-boot. Tail of messages from build process . . .
+
* https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux
 
+
* http://www.instructables.com/id/Creating-your-first-iOS-app/
<pre>
+
* https://developer.apple.com/support/purchase-activation/ . . . required fees to Apple company
  CC      lib/strto.o
 
  CC      lib/strmhz.o
 
  LD      lib/built-in.o
 
  CC      examples/standalone/stubs.o
 
  CC      CC      lib/strto.o
 
  CC      lib/strmhz.o
 
  LD      lib/built-in.o
 
  CC      examples/standalone/stubs.o
 
  CC      examples/standalone/hello_world.o
 
  LD      examples/standalone/libstubs.o
 
  LD      examples/standalone/hello_world
 
  OBJCOPY examples/standalone/hello_world.srec
 
  OBJCOPY examples/standalone/hello_world.bin
 
  LD      u-boot
 
  OBJCOPY u-boot.srec
 
  OBJCOPY u-boot-nodtb.bin
 
  SYM    u-boot.sym
 
  COPY    u-boot.bin
 
  CFGCHK u-boot.cfg
 
ted@rangari:/var/local/ted/projects/u-boot$ examples/standalone/hello_world.o
 
  LD      examples/standalone/libstubs.o
 
  LD      examples/standalone/hello_world
 
  OBJCOPY examples/standalone/hello_world.srec
 
  OBJCOPY examples/standalone/hello_world.bin
 
  LD      u-boot
 
  OBJCOPY u-boot.srec
 
  OBJCOPY u-boot-nodtb.bin
 
  SYM    u-boot.sym
 
  COPY    u-boot.bin
 
  CFGCHK u-boot.cfg
 
ted@rangari:/var/local/ted/projects/u-boot$
 
</pre>
 
  
 +
- 2018-10-12 FRI -
 +
*  https://developer.apple.com/documentation/corebluetooth
 +
 +
- 2018-01-15 MON -
 +
*  https://andrewmichaelsmith.com/2017/02/developing-an-ios-app-on-linux-in-2017/ . . . Developing an iOS app on Linux in 2017
 +
*  https://itsfoss.com/mount-iphone-ipad-ios-7-ubuntu-13-10/ . . . Ubuntu mount iPhone via libimobiledevice4 libimobiledevice-dev libimobiledevice-util and others
 +
*  https://beebom.com/how-use-iphone-with-linux/
 +
 +
 +
=== [[#top|&uarr;]] [[#references|&darr;]] Android programming ===
 +
 +
*  https://www.ntu.edu.sg/home/ehchua/programming/android/Android_3D.html
  
  
 
<!-- comment -->
 
<!-- comment -->
  
== [[#top|&uarr;]] [[#references|&darr;]] LPC11U6x Development Board ==
+
==  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - - - - - - - - - - - ==
 
 
* https://community.nxp.com/thread/389139
 
* http://www.embeddedartists.com/products/lpcxpresso/lpclink2.php
 
* https://os.mbed.com/teams/Semtech/code/SX1276TxContinuousWave/
 
  
  
Line 1,417: Line 1,877:
 
<!-- comment -->
 
<!-- comment -->
  
== [[#top|&uarr;]] [[#references|&darr;]] avr-libc ==
+
== [[#top|&uarr;]] [[#references|&darr;]] Toradex embedded ARM computers ==
 +
 
 +
Search for Toradex asymmetric core 'system on a module' board:
  
<pre>
+
*  [https://docs.toradex.com/104446-colibri-arm-som-imx6ull-datasheet.pdf 104446-colibri-arm-som-imx6ull-datasheet.pdf] . . . looks like this may be only single core, not dual heterogeneous core
./avr-libc-1.8.0/include/avr/iom8.h:634:#if !defined(__AVR_LIBC_DEPRECATED_ENABLE__)
 
./avr-libc-1.8.0/include/avr/iom8.h:657:#endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
  
.
+
It looks like Colibri iMX7S and iMX7D are two-core and three-core processor based modules, with asymmetric cores to handle different kinds of data processing more efficiently,
.
 
.
 
  
633 /* Deprecated items */
+
* Toradex PN: 00391100 - Colibri iMX7 Dual 1GB | V1.1A
634 #if !defined(__AVR_LIBC_DEPRECATED_ENABLE__)
+
Toradex PN: 01351101 - Iris carrier board
635
 
636 #pragma GCC system_header
 
637
 
638 #pragma GCC poison SIG_INTERRUPT0
 
639 #pragma GCC poison SIG_INTERRUPT1
 
640 #pragma GCC poison SIG_OUTPUT_COMPARE2
 
641 #pragma GCC poison SIG_OVERFLOW2
 
642 #pragma GCC poison SIG_INPUT_CAPTURE1
 
643 #pragma GCC poison SIG_OUTPUT_COMPARE1A
 
644 #pragma GCC poison SIG_OUTPUT_COMPARE1B
 
645 #pragma GCC poison SIG_OVERFLOW1
 
646 #pragma GCC poison SIG_OVERFLOW0
 
647 #pragma GCC poison SIG_SPI
 
648 #pragma GCC poison SIG_UART_RECV
 
649 #pragma GCC poison SIG_UART_DATA
 
650 #pragma GCC poison SIG_UART_TRANS
 
651 #pragma GCC poison SIG_ADC
 
652 #pragma GCC poison SIG_EEPROM_READY
 
653 #pragma GCC poison SIG_COMPARATOR
 
654 #pragma GCC poison SIG_2WIRE_SERIAL
 
655 #pragma GCC poison SIG_SPM_READY
 
656
 
657 #endif /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
  
</pre>
 
  
 +
Looks like the Iris carrier board is a smaller form, less featured but more economical carrier board to support use of iMX7D/S systems on modules:
  
<!-- comment -->
+
*  https://developer.toradex.com/products/iris-carrier-board
  
== [[#top|&uarr;]] [[#references|&darr;]] EWAVR, IAR Workbench, Keil compiler notes ==
+
Software to install on this module:
  
2019-01-03 THU
+
*  https://www.toradex.com/computer-on-modules/colibri-arm-family/nxp-freescale-imx7
 +
 
 +
 
 +
Software projects and stacks to run on asymmetric core systems:
 +
 
 +
*  https://community.nxp.com/docs/DOC-104422
  
*  http://www.keil.com/support/man/docs/c51/c51_le_sfr.htm
 
  
  
 
<!-- comment -->
 
<!-- comment -->
  
==  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
+
=== [[#top|&uarr;]] [[#references|&darr;]] Build U-boot and Linux kernel from source ===
 
 
== [[#top|&uarr;]] [[#references|&darr;]] Yocto References ==
 
  
 +
*  https://developer.toradex.com/knowledge-base/build-u-boot-and-linux-kernel-from-source-code
  
*  [https://github.com/toradex/meta-product Yocto meta-product project by Toradex]
 
  
  
 
<!-- comment -->
 
<!-- comment -->
  
==  - - - - - - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
+
<!-- SECTION - Arduino Development Kit and Documentation -->
  
 +
=== [[#top|&uarr;]] [[#references|&darr;]] Arduino Development Kit and Documentation ===
  
 +
Looking into Arduino boards as a means to configure an I2C protocol programmer . . .
  
<!-- comment -->
+
Arduino Uno development board datasheet:
 +
*  https://www.farnell.com/datasheets/1682209.pdf
  
== [[#top|&uarr;]] [[#references|&darr;]] Mobile App Development On Linux ==
+
Arduino IDE software download:
 +
*  https://www.arduino.cc/en/Main/Software
  
*  https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux
+
Getting started:
http://www.instructables.com/id/Creating-your-first-iOS-app/
+
https://www.arduino.cc/en/Guide/HomePage
*  https://developer.apple.com/support/purchase-activation/ . . . required fees to Apple company
+
**  https://www.arduino.cc/en/Guide/Linux
  
- 2018-10-12 FRI -
 
*  https://developer.apple.com/documentation/corebluetooth
 
  
- 2018-01-15 MON -
+
A more specifically purposed interface and or programming board called 'Aardvark' . . .
*  https://andrewmichaelsmith.com/2017/02/developing-an-ios-app-on-linux-in-2017/ . . . Developing an iOS app on Linux in 2017
 
*  https://itsfoss.com/mount-iphone-ipad-ios-7-ubuntu-13-10/ . . . Ubuntu mount iPhone via libimobiledevice4 libimobiledevice-dev libimobiledevice-util and others
 
*  https://beebom.com/how-use-iphone-with-linux/
 
  
 +
*  https://www.totalphase.com/support/articles/200468316
  
=== [[#top|&uarr;]] [[#references|&darr;]] Android programming ===
 
 
*  https://www.ntu.edu.sg/home/ehchua/programming/android/Android_3D.html
 
  
 +
FreeRTOS on Arduino development boards . . .
 +
*  https://github.com/feilipu/Arduino_FreeRTOS_Library
  
 
<!-- comment -->
 
<!-- comment -->
Line 1,511: Line 1,947:
 
<!-- comment -->
 
<!-- comment -->
  
== [[#top|&uarr;]] [[#references|&darr;]] Toradex embedded ARM computers ==
+
== [[#top|&uarr;]] [[#references|&darr;]] Electronics ==
  
Search for Toradex asymmetric core 'system on a module' board:
+
*  https://www.sparkfun.com/products/18572
  
*  [https://docs.toradex.com/104446-colibri-arm-som-imx6ull-datasheet.pdf 104446-colibri-arm-som-imx6ull-datasheet.pdf] . . . looks like this may be only single core, not dual heterogeneous core
+
Transistor, FETs, Op-amps . . .
 +
<ul>
 +
  <li> https://www.electronics-tutorials.ws/amplifier/transistor-biasing.html <br />
  
It looks like Colibri iMX7S and iMX7D are two-core and three-core processor based modules, with asymmetric cores to handle different kinds of data processing more efficiently,
+
  <li> http://bg-electronics.de/shop/product_info.php/products_id/6409/language/en  . . . MPSA14 Darlington pair NPN transistor <br />
 +
</ul>
  
*  Toradex PN: 00391100 - Colibri iMX7 Dual 1GB | V1.1A
+
Photovoltaics . . .
*  Toradex PN: 01351101 - Iris carrier board
+
<ul>
 +
  <li> https://www.digikey.com/en/articles/techzone/2018/sep/overcoming-power-system-design-challenges-in-1500-vdc-photovoltaic-systems?utm_medium=email&utm_source=tnl&utm_campaign=40284_TNL1811A&utm_content=article1learnmore_US&utm_cid=9726770&mkt_tok=eyJpIjoiWkRFeE1qQmxOMlF4T1dFeCIsInQiOiJLbDVRQkhIUmpGMThyK054VWhLZGFxWmJ5OUpyMHMrdGVKZVdxWnluM1wvRVgxdWcyTzNWQnJrd0wzTlk1SXpqZHZvMWxDNGd4blB3bGFWdWFOSWVsMTNmbWswU1M5aVZhck8wTm1ZK3FBZzFUQXJkK2NZdXlzZng1S2lqTGpob1UifQ%3D%3D <br />
 +
</ul>
  
 +
Analog computers
 +
<ul>
 +
  <li>  http://www.analogmuseum.org/library/handbook_of_analog_computation.pdf
 +
</ul>
  
Looks like the Iris carrier board is a smaller form, less featured but more economical carrier board to support use of iMX7D/S systems on modules:
 
  
*  https://developer.toradex.com/products/iris-carrier-board
+
<!-- comment -->
 +
 
 +
=== [[#top|&uarr;]] [[#references|&darr;]] tools and hardware ===
  
Software to install on this module:
+
<ul>
 +
*  https://www.amazon.com/Illuminated-Jewelers-Trichome-Formline-Supply/dp/B073HWZGP3/ref=sr_1_40?hvadid=241934704451&hvdev=c&hvlocphy=9033803&hvnetw=g&hvpos=1t1&hvqmt=e&hvrand=14352835026335723525
 +
</ul>
  
*  https://www.toradex.com/computer-on-modules/colibri-arm-family/nxp-freescale-imx7
+
<ul>
 +
32-razradnii kontrolerya . . .
 +
*  https://docplayer.ru/amp/27429677-32-razryadnyy-kontroller-dlya-aviacionnogo-primeneniya-1986ve1t-k1986ve1t-mdr32f1qi-k1986ve1n4.html
 +
</ul>
  
  
Software projects and stacks to run on asymmetric core systems:
+
=== [[#top|&uarr;]] [[#references|&darr;]] measurement equipment ===
  
https://community.nxp.com/docs/DOC-104422
+
2020-10-27
 +
<ul>
 +
https://saving.em.keysight.com/en/used/oscilloscopes-digital-waveform-analyzers
 +
</ul>
  
 +
Not used but I have this 4 channel 100mhz scope that i like a lot. $500 with built-in i2c/spi/uart/canbus decoding
 +
https://siglentna.com/product/sds1104x-e-100-mhz/
 +
https://www.youtube.com/watch?v=Kay4Jk2DHuE
 +
https://www.youtube.com/watch?v=Cwbwq-AKbPc
 +
SiglentSiglent
 +
SDS1104X-E (100 MHz) | Siglent
 +
Bandwidth: 100 MHz Channels: 4 Real time sampling rate: 1 GSa/s (Total of 2 A-to-D converters) Maximum capture rate: (100,000 in Normal mode, 400,000 in Sequence mode) Memory depth: 14 Mpts Bode Plot function (Requires SIGLENT SDG X or SAG1021 function generator) Search / Navigate functions Web-Based browser remote control Optional Wi-Fi dongle Optional MSO capability 
 +
YouTubeYouTube | EEVblog
 +
EEVblog #1042 - Siglent's $499 SDS1104X-E 4CH Oscilloscope Teardown
  
  
 
<!-- comment -->
 
<!-- comment -->
  
=== [[#top|&uarr;]] [[#references|&darr;]] Build U-boot and Linux kernel from source ===
+
=== [[#top|&uarr;]] [[#references|&darr;]] Modbus protocol ===
  
*  https://developer.toradex.com/knowledge-base/build-u-boot-and-linux-kernel-from-source-code
+
<ul>
 +
[[modbus_notes|Modbus protocol notes]]
 +
</ul>
  
  
 +
<!-- SECTION - Other Things To Explore -->
  
<!-- comment -->
+
== [[#top|&uarr;]] [[#references|&darr;]] <!-- [[#top|^]] --> Mathematica ==
  
<!-- SECTION - Arduino Development Kit and Documentation -->
+
Mathematical symbols:
 +
*  https://en.wikipedia.org/wiki/Glossary_of_mathematical_symbols
 +
*  https://en.wikipedia.org/wiki/List_of_mathematical_symbols_by_subject
  
=== [[#top|&uarr;]] [[#references|&darr;]] Arduino Development Kit and Documentation ===
 
  
Looking into Arduino boards as a means to configure an I2C protocol programmer . . .
+
Important mathematical topics:
 +
*  https://en.wikipedia.org/wiki/Pure_mathematics
 +
*  ( applied mathematics link to go here )
  
Arduino Uno development board datasheet:
+
<!-- comment -->
*  https://www.farnell.com/datasheets/1682209.pdf
 
  
Arduino IDE software download:
+
=== [[#top|^]] Books on mathematics ===
https://www.arduino.cc/en/Main/Software
+
Books on mathematics to explore:
 +
<ul>
 +
"Lectures and Problems: A Gift to Young Mathematicians (MSRI Mathematical Circles Library)
 +
by V. I. Arnold (Author)"
  
Getting started:
+
On-line lecture notes:
*  https://www.arduino.cc/en/Guide/HomePage
+
*  https://tutorial.math.lamar.edu/classes/calci/IndefiniteIntegrals.aspx  Paul's On-line Notes
**  https://www.arduino.cc/en/Guide/Linux
 
  
 +
*  An excellent book on the FFT is: E. Oran Brigham, The Fast Fourier Transform, PrenticeHall, Englewood Cliffs, NJ, 1974.
 +
</ul>
  
A more specifically purposed interface and or programming board called 'Aardvark' . . .
 
  
*  https://www.totalphase.com/support/articles/200468316
+
CRC, RSA and other mathematical areas . . .
  
 +
<ul>
 +
*  https://en.wikipedia.org/wiki/Cyclic_redundancy_check
 +
*  [https://en.wikipedia.org/wiki/TWINKLE Integer factorization device TWINKLE by Adi Shamir, of RSA developer trio]
 +
*  [https://en.wikipedia.org/wiki/TWIRL TWIRL factorization device, short article at Wikipedia]
 +
*  [https://en.wikipedia.org/wiki/General_number_field_sieve General Number Field Sieve]
 +
*  [https://en.wikipedia.org/wiki/Heuristic Heuristic way explained]
 +
*  [https://en.wikipedia.org/wiki/L-notation L-notation, to express computational complexity of algorithms]
 +
*  [https://en.wikipedia.org/wiki/Discrete_logarithm discrete logarithms]
 +
</ul>
  
FreeRTOS on Arduino development boards . . .
 
*  https://github.com/feilipu/Arduino_FreeRTOS_Library
 
 
<!-- comment -->
 
  
==  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - - ==
+
Applied math . . .
 
 
 
 
 
 
<!-- comment -->
 
 
 
== [[#top|&uarr;]] [[#references|&darr;]] Electronics ==
 
 
 
Transistor, FETs, Op-amps . . .
 
 
<ul>
 
<ul>
  <li> https://www.electronics-tutorials.ws/amplifier/transistor-biasing.html <br />
+
https://owlcation.com/stem/Everything-About-Triangles-and-More-Isosceles-Equilateral-Scalene-Pythagoras-Sine-and-Cosine
 
 
  <li> http://bg-electronics.de/shop/product_info.php/products_id/6409/language/en  . . . MPSA14 Darlington pair NPN transistor <br />
 
 
</ul>
 
</ul>
 +
Fractal geometry and math . . .
  
Photovoltaics . . .
 
 
<ul>
 
<ul>
  <li> https://www.digikey.com/en/articles/techzone/2018/sep/overcoming-power-system-design-challenges-in-1500-vdc-photovoltaic-systems?utm_medium=email&utm_source=tnl&utm_campaign=40284_TNL1811A&utm_content=article1learnmore_US&utm_cid=9726770&mkt_tok=eyJpIjoiWkRFeE1qQmxOMlF4T1dFeCIsInQiOiJLbDVRQkhIUmpGMThyK054VWhLZGFxWmJ5OUpyMHMrdGVKZVdxWnluM1wvRVgxdWcyTzNWQnJrd0wzTlk1SXpqZHZvMWxDNGd4blB3bGFWdWFOSWVsMTNmbWswU1M5aVZhck8wTm1ZK3FBZzFUQXJkK2NZdXlzZng1S2lqTGpob1UifQ%3D%3D <br />
+
*  http://mathworld.wolfram.com/StrangeAttractor.html
 +
*  http://mathworld.wolfram.com/LorenzAttractor.html
 
</ul>
 
</ul>
  
Analog computers
+
 
 +
Quantum computing and Shor's algorithm . . .
 
<ul>
 
<ul>
   <lihttp://www.analogmuseum.org/library/handbook_of_analog_computation.pdf
+
*  https://en.wikipedia.org/wiki/Shor%27s_algorithm   algoritmo de Shor
</ul>
+
*  https://en.wikipedia.org/wiki/Lenstra_elliptic-curve_factorization#Quantum_version_(GEECM) GEECM
 
+
</ul>
 
+
---
 +
<ul>
 +
* https://en.wikipedia.org/wiki/Condensed_matter_physics
 +
*  https://en.wikipedia.org/wiki/Bose%E2%80%93Einstein_condensate
 +
</ul>
 +
---
 +
<ul>
 +
*  https://www.cnet.com/pictures/take-a-look-at-googles-quantum-computing-technology/17/
 +
</ul>
 
<!-- comment -->
 
<!-- comment -->
  
=== [[#top|&uarr;]] [[#references|&darr;]] tools and hardware ===
+
=== [[#top|^]] Fast Fourier Transform FFT ===
  
 +
*  https://en.wikipedia.org/wiki/Fast_Fourier_transform
 
<ul>
 
<ul>
*  https://www.amazon.com/Illuminated-Jewelers-Trichome-Formline-Supply/dp/B073HWZGP3/ref=sr_1_40?hvadid=241934704451&hvdev=c&hvlocphy=9033803&hvnetw=g&hvpos=1t1&hvqmt=e&hvrand=14352835026335723525
+
*  https://en.wikipedia.org/wiki/Big_O_notation
 +
*  https://en.wikipedia.org/wiki/Root_of_unity
 +
Other FFT algorithms:
 +
*  https://en.wikipedia.org/wiki/Hexagonal_fast_Fourier_transform
 
</ul>
 
</ul>
  
 +
*  https://mathworld.wolfram.com/FastFourierTransform.html  Wolfram Math World, Fast Fourier Transform
 +
<!-- comment -->
 +
 +
Other mathematical topics:
 
<ul>
 
<ul>
32-razradnii kontrolerya . . .
+
*  https://en.wikipedia.org/wiki/Field_(mathematics)
*  https://docplayer.ru/amp/27429677-32-razryadnyy-kontroller-dlya-aviacionnogo-primeneniya-1986ve1t-k1986ve1t-mdr32f1qi-k1986ve1n4.html
+
*  https://en.wikipedia.org/wiki/Riemann_zeta_function
 
</ul>
 
</ul>
  
 +
<!-- comment -->
 +
 +
== [[#top|&uarr;]] [[#references|&darr;]] <!-- [[#top|^]] --> Literature ==
  
=== [[#top|&uarr;]] [[#references|&darr;]] measurement equipment ===
+
Liturature and Authors of the World . . .
  
2020-10-27
 
 
<ul>
 
<ul>
https://saving.em.keysight.com/en/used/oscilloscopes-digital-waveform-analyzers
+
https://www.literarytraveler.com/articles/tolkien_lewis_england/
 
</ul>
 
</ul>
  
Not used but I have this 4 channel 100mhz scope that i like a lot. $500 with built-in i2c/spi/uart/canbus decoding
 
https://siglentna.com/product/sds1104x-e-100-mhz/
 
https://www.youtube.com/watch?v=Kay4Jk2DHuE
 
https://www.youtube.com/watch?v=Cwbwq-AKbPc
 
SiglentSiglent
 
SDS1104X-E (100 MHz) | Siglent
 
Bandwidth: 100 MHz Channels: 4 Real time sampling rate: 1 GSa/s (Total of 2 A-to-D converters) Maximum capture rate: (100,000 in Normal mode, 400,000 in Sequence mode) Memory depth: 14 Mpts Bode Plot function (Requires SIGLENT SDG X or SAG1021 function generator) Search / Navigate functions Web-Based browser remote control Optional Wi-Fi dongle Optional MSO capability 
 
YouTubeYouTube | EEVblog
 
EEVblog #1042 - Siglent's $499 SDS1104X-E 4CH Oscilloscope Teardown
 
  
 +
<!-- comment -->
 +
 +
== [[#top|&uarr;]] [[#references|&darr;]] Other Things To Explore ==
  
<!-- comment -->
+
Human health:
  
=== [[#top|&uarr;]] [[#references|&darr;]] Modbus protocol ===
+
*  https://getpocket.com/explore/item/a-mental-disease-by-any-other-name-2094105417
  
<ul>
 
[[modbus_notes|Modbus protocol notes]]
 
</ul>
 
  
 +
<br />
 +
Here are some technical and science topics to explore, perhaps on a rainy day . . .
  
<!-- SECTION - Other Things To Explore -->
+
Machine learning:
  
== [[#top|&uarr;]] [[#references|&darr;]] <!-- [[#top|^]] --> Mathematica ==
+
*  https://github.com/josephmisiti/awesome-machine-learning
  
Books on mathematics to explore:
 
<ul>
 
*  "Lectures and Problems: A Gift to Young Mathematicians (MSRI Mathematical Circles Library)
 
by V. I. Arnold (Author)"
 
</ul>
 
  
 +
Containers and DevOps:
 +
 +
*  https://developers.redhat.com/products/rhoar/download/?sc_cid=701f2000000tvScAAI&gclid=CjwKCAiA0O7fBRASEiwAYI9QAqRy2uRVKve05ZeAn8HVRcjtfdmXR73RIgBWVcAylg-TzCoszXBrkRoC9j8QAvD_BwE&gclsrc=aw.ds
 +
*  https://www.sumologic.com/blog/devops/how-containerization-enables-devops/
 +
*  https://cloud.google.com/kubernetes-engine/
 +
 +
*  https://clouddocs.f5.com/products/connectors/k8s-bigip-ctlr/v1.7/
 +
*  https://kubernetes.io/docs/concepts/services-networking/ingress/
 +
*  https://kubernetes.io/docs/tasks/run-application/run-stateless-application-deployment/
  
CRC, RSA and other mathematical areas . . .
 
  
<ul>
 
*  https://en.wikipedia.org/wiki/Cyclic_redundancy_check
 
*  [https://en.wikipedia.org/wiki/TWINKLE Integer factorization device TWINKLE by Adi Shamir, of RSA developer trio]
 
*  [https://en.wikipedia.org/wiki/TWIRL TWIRL factorization device, short article at Wikipedia]
 
*  [https://en.wikipedia.org/wiki/General_number_field_sieve General Number Field Sieve]
 
*  [https://en.wikipedia.org/wiki/Heuristic Heuristic way explained]
 
*  [https://en.wikipedia.org/wiki/L-notation L-notation, to express computational complexity of algorithms]
 
*  [https://en.wikipedia.org/wiki/Discrete_logarithm discrete logarithms]
 
</ul>
 
  
 +
3D Graphics, mathematics behind and programming:
  
Applied math . . .
 
 
<ul>
 
<ul>
*  https://owlcation.com/stem/Everything-About-Triangles-and-More-Isosceles-Equilateral-Scalene-Pythagoras-Sine-and-Cosine
+
[https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Quaternions and Spatial Rotation]
 +
- 2018-06-21 Thursday -
 +
*  https://en.wikipedia.org/wiki/OpenMW
 +
*  https://en.wikipedia.org/wiki/Bullet_(software)
 
</ul>
 
</ul>
Fractal geometry and math . . .
 
  
<ul>
 
*  http://mathworld.wolfram.com/StrangeAttractor.html
 
*  http://mathworld.wolfram.com/LorenzAttractor.html
 
</ul>
 
  
 +
Creative Commons and other Open Source licensed materials:
 +
 +
*  [https://creativecommons.org/website-icons/ Creative Commons licensed icons]
 +
*  [https://www.flaticon.com/free-icon/creative-commons-license-symbol_34320 Flaticon.com . . . some freely usable icons, site layout worth review]
 +
 +
 +
Dublin Core:
  
Quantum computing and Shor's algorithm . . .
 
<ul>
 
*  https://en.wikipedia.org/wiki/Shor%27s_algorithm  algoritmo de Shor
 
*  https://en.wikipedia.org/wiki/Lenstra_elliptic-curve_factorization#Quantum_version_(GEECM) GEECM
 
</ul>
 
---
 
 
<ul>
 
<ul>
https://en.wikipedia.org/wiki/Condensed_matter_physics
+
[http://dublincore.org/documents/2012/06/14/dcmi-terms/?v=elements Dublin Core documents, referenced by Drupal default rss.xml feed page]
*  https://en.wikipedia.org/wiki/Bose%E2%80%93Einstein_condensate
+
[https://en.wikipedia.org/wiki/Dublin_Core Dublin Core article on Wikipedia]
 +
*  [http://www.dublincoregenerator.com/generator.html Dublin Core Generator]
 
</ul>
 
</ul>
---
+
 
 +
Zdyes mnogo informatsia:  <!-- 20109-08-09 -->
 
<ul>
 
<ul>
*  https://www.cnet.com/pictures/take-a-look-at-googles-quantum-computing-technology/17/
+
*  https://ertelecom.ru/t/ru/
 
</ul>
 
</ul>
  
Line 1,696: Line 2,170:
 
<!-- comment -->
 
<!-- comment -->
  
== [[#top|&uarr;]] [[#references|&darr;]] <!-- [[#top|^]] --> Literature ==
+
=== [[#top|^]] DYI laptop by Olimex ===
  
Liturature and Authors of the World . . .
+
*  https://www.olimex.com/Products/DIY-Laptop/
 
 
<ul>
 
*  https://www.literarytraveler.com/articles/tolkien_lewis_england/
 
</ul>
 
  
  
 
<!-- comment -->
 
<!-- comment -->
  
== [[#top|&uarr;]] [[#references|&darr;]] Other Things To Explore ==
+
=== [[#top|&uarr;]] [[#references|&darr;]] <i> edit point </i> ===
  
Human health:
+
- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;
  
*  https://getpocket.com/explore/item/a-mental-disease-by-any-other-name-2094105417
 
  
 +
Javascript and JSON:
  
<br />
+
*  [https://www.w3schools.com/js/js_json_intro.asp W3C Schools JSON intro]
Here are some technical and science topics to explore, perhaps on a rainy day . . .
 
  
Machine learning:
 
  
*  https://github.com/josephmisiti/awesome-machine-learning
+
PC Video, Bochs VBE Extensions:
  
 +
*  [http://wiki.osdev.org/Bochs_VBE_Extensions OSDev - Bochs VBE Extensions]
 +
*  [http://wiki.osdev.org/Main_Page OSDev Dot Org]
  
Containers and DevOps:
 
  
*  https://developers.redhat.com/products/rhoar/download/?sc_cid=701f2000000tvScAAI&gclid=CjwKCAiA0O7fBRASEiwAYI9QAqRy2uRVKve05ZeAn8HVRcjtfdmXR73RIgBWVcAylg-TzCoszXBrkRoC9j8QAvD_BwE&gclsrc=aw.ds
+
Perl programming related:
*  https://www.sumologic.com/blog/devops/how-containerization-enables-devops/
 
*  https://cloud.google.com/kubernetes-engine/
 
  
*  https://clouddocs.f5.com/products/connectors/k8s-bigip-ctlr/v1.7/
+
*  https://perldoc.perl.org/perlpod.html &nbsp; &nbsp; . . . reference to <code>=cut</code> Perl mark-up or directive, plus lots more
*  https://kubernetes.io/docs/concepts/services-networking/ingress/
 
*  https://kubernetes.io/docs/tasks/run-application/run-stateless-application-deployment/
 
  
  
 +
Unix and Linux tools, software and building blocks:
  
3D Graphics, mathematics behind and programming:
+
*  [https://en.wikipedia.org/wiki/Name_Service_Switch nss, Name Service Switch]
 +
*  "Burrows-Wheeler block sorting text compression algorithm", noted 2017-09-29 FRI from LFS 8.1 chapter 6.21 - TMH
 +
*  https://www.collabora.com/news-and-blog/blog/2017/03/13/kernel-debugging-with-qemu-overview-tools-available/ . . . kernel debugging and kmemleak
  
<ul>
+
*  https://manned.org/obex-data-server/1d713e98  . . . obex data server
[https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Quaternions and Spatial Rotation]
 
- 2018-06-21 Thursday -
 
*  https://en.wikipedia.org/wiki/OpenMW
 
*  https://en.wikipedia.org/wiki/Bullet_(software)
 
</ul>
 
  
  
Creative Commons and other Open Source licensed materials:
+
GNU Make book on-line . . .
 +
 
 +
*  http://mitechie.com/
 +
 
  
*  [https://creativecommons.org/website-icons/ Creative Commons licensed icons]
 
*  [https://www.flaticon.com/free-icon/creative-commons-license-symbol_34320 Flaticon.com . . . some freely usable icons, site layout worth review]
 
  
 +
Webvanta:
  
Dublin Core:
+
*  [http://www.webvanta.com/services/cloud-cms Webvanta cloud-based Content Management System]
  
<ul>
 
*  [http://dublincore.org/documents/2012/06/14/dcmi-terms/?v=elements Dublin Core documents, referenced by Drupal default rss.xml feed page]
 
*  [https://en.wikipedia.org/wiki/Dublin_Core Dublin Core article on Wikipedia]
 
*  [http://www.dublincoregenerator.com/generator.html Dublin Core Generator]
 
</ul>
 
  
Zdyes mnogo informatsia: <!-- 20109-08-09 -->
+
Virtual server image creation:
<ul>
 
*  https://ertelecom.ru/t/ru/
 
</ul>
 
  
 +
*  [https://research.csc.fi/pouta-adding-images virtual server image creation at cPouta, Finland]
 +
*  [https://github.com/CSCfi/diskimage-builder-csc-automation disk image builder CSC automation, at Github]
  
<!-- comment -->
 
  
=== [[#top|^]] DYI laptop by Olimex ===
+
Github Users Sharing Their Work:
  
*  https://www.olimex.com/Products/DIY-Laptop/
+
[https://github.com/mattions/ Michele Mattioni mattions]
  
  
Line 1,776: Line 2,234:
  
 
- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;
 
- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;
 +
<!--
 +
  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -
 +
-->
  
 +
Cryptography Scientists and Articles:
  
Javascript and JSON:
+
*  [https://www.rambus.com/inventors/inventor-paul-kocher/ Paul Kocher and Rambus]
 +
*  [https://www.rambus.com/memory-and-interfaces/ Rambus memory and interfaces]
 +
*  [https://en.wikipedia.org/wiki/Row_hammer side-channel attack known as 'Row hammer', adjacent DRAM cells changed by frequent write operations]
  
*  [https://www.w3schools.com/js/js_json_intro.asp W3C Schools JSON intro]
+
*  [https://en.wikipedia.org/wiki/Morris_worm Robert Morris internet work 1988]
 +
*  [https://en.wikipedia.org/wiki/Simile_(computer_virus) Simile computer virus, metamorphic code]
 +
*  [https://en.wikipedia.org/wiki/Zmist Zmist metamorphic computer virus]
  
  
PC Video, Bochs VBE Extensions:
+
<!--
 +
https://www.convirture.com/company_management.php
 +
https://www.convirture.com/community.php
 +
https://www.theregister.co.uk/2012/12/14/convirture_convirt_3_2_vmware_support/
 +
-->
  
*  [http://wiki.osdev.org/Bochs_VBE_Extensions OSDev - Bochs VBE Extensions]
+
ARM microcontroller related:
*  [http://wiki.osdev.org/Main_Page OSDev Dot Org]
 
  
 +
*  [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337e/Cihcffda.html Nested Vector Interrupt Controller (NVIC)]
  
Perl programming related:
 
  
*  https://perldoc.perl.org/perlpod.html &nbsp; &nbsp; . . . reference to <code>=cut</code> Perl mark-up or directive, plus lots more
+
Operating system level programming:
  
 +
*  [http://www.musl-libc.org/ musl libc home page]
 +
*  [http://www.etalabs.net/compare_libcs.html musl C library comparison with other C libraries]
 +
*  [http://www.etalabs.net/overcommit.html memory overcommit]
  
Unix and Linux tools, software and building blocks:
 
  
*  [https://en.wikipedia.org/wiki/Name_Service_Switch nss, Name Service Switch]
+
Gputils PIC programming tools, W3C Jigsaw validator referenced at end of page
*  "Burrows-Wheeler block sorting text compression algorithm", noted 2017-09-29 FRI from LFS 8.1 chapter 6.21 - TMH
 
*  https://www.collabora.com/news-and-blog/blog/2017/03/13/kernel-debugging-with-qemu-overview-tools-available/ . . . kernel debugging and kmemleak
 
  
*  https://manned.org/obex-data-server/1d713e98  . . . obex data server
+
*  https://gputils.sourceforge.io/#News
  
  
GNU Make book on-line . . .
 
  
*  http://mitechie.com/
+
<!-- comment -->
  
  
  
Webvanta:
+
<span id="musica y liricos"></span>
 +
<!-- SECTION - music and lyrics -->
 +
=== [[#top|&uarr;]] [[#references|&darr;]] music and lyrics ===
  
[http://www.webvanta.com/services/cloud-cms Webvanta cloud-based Content Management System]
+
https://www.youtube.com/watch?v=Nmqitm6cfuU  . . . I am Omni - Back At It - featuring Myka 9
  
 +
*  http://ohhla.com/anonymous/blackstr/rm_bside/little_b.blk.txt
 +
<ul>
 +
*  https://www.youtube.com/watch?v=RTREDvH8H4g
 +
</ul>
  
Virtual server image creation:
+
---
 +
*  https://www.youtube.com/watch?v=4SpWuseQGys  Jew harp, Ted talk and Vilnius
 +
https://www.wish.com/product/59b6c3c68f545e607c2adf30?hide_login_modal=true&from_ad=goog_shopping&_display_country_code=US&_force_currency_code=USD&pid=googleadwords_int&c=%7BcampaignId%7D&ad_cid=59b6c3c68f545e607c2adf30&ad_cc=US&ad_curr=USD&ad_price=48.00&campaign_id=7203534630&gclid=EAIaIQobChMIoZKHvqS06AIVEh-tBh2I6wv-EAQYASABEgKuAvD_BwE&share=web
  
*  [https://research.csc.fi/pouta-adding-images virtual server image creation at cPouta, Finland]
 
*  [https://github.com/CSCfi/diskimage-builder-csc-automation disk image builder CSC automation, at Github]
 
  
 +
<!-- comment -->
  
Github Users Sharing Their Work:
+
<span id="plant_resources"></span>
 +
<!-- SECTION - Plant resources -->
  
[https://github.com/mattions/ Michele Mattioni mattions]
+
=== [[#top|&uarr;]] [[#references|&darr;]] plant and animal references ===
  
 +
Searching Google and Amazon for bottom heat sources for seed germination:
  
<!-- comment -->
+
"
 +
Seedfactor
 +
MET certified Seedling Heat Mat, Seedfactor Waterproof Durable Germination Station Heat Mat, Warm Hydroponic Heating Pad for Indoor Home Gardening Seed Starter(10" x 20")
 +
"
  
=== [[#top|&uarr;]] [[#references|&darr;]] <i> edit point </i> ===
+
[https://davesgarden.com/guides/articles/view/556 Heating mats article by Jill M. Nicolaus]
  
- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;- - - - - &nbsp;
+
*  https://en.wikipedia.org/wiki/Osmia_bicolor
<!--
+
* https://nativebeeology.com/mind-your-bees-and-gardens-2/carpenter-bee/ bufflehead mason bee
  - - - - - - - - - - - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -
 
-->
 
  
Cryptography Scientists and Articles:
+
Aloe references . . .
 +
<ul>
 +
Aloe maculata, bontalwyne:
 +
<ul>
 +
*  http://clarensnews.co.za/aloe-maculata-common-soap-aloe-bontalwyne/
 +
*  http://pza.sanbi.org/aloe-maculata
 +
*  https://www.researchgate.net/publication/283348154_Review_of_Aloe_Species%27_Medicinal_Properties_and_Bioactive_Compounds
 +
</ul>
 +
[[file:FOPB4-51.pdf|FOBP284 Rodriguez aloe studies paper]]
 +
</ul>
  
*  [https://www.rambus.com/inventors/inventor-paul-kocher/ Paul Kocher and Rambus]
+
2019-04-10
[https://www.rambus.com/memory-and-interfaces/ Rambus memory and interfaces]
+
Cork trees . . .
*  [https://en.wikipedia.org/wiki/Row_hammer side-channel attack known as 'Row hammer', adjacent DRAM cells changed by frequent write operations]
+
<ul>
 +
http://www.corkforest.org/harvesting-the-cork-oak/
 +
</ul>
  
*  [https://en.wikipedia.org/wiki/Morris_worm Robert Morris internet work 1988]
+
Invasive plants . . .
[https://en.wikipedia.org/wiki/Simile_(computer_virus) Simile computer virus, metamorphic code]
+
<ul>
*  [https://en.wikipedia.org/wiki/Zmist Zmist metamorphic computer virus]
+
*  https://www.nybg.org/blogs/plant-talk/tag/amur-cork-tree/
 +
</ul>
  
  
<!--
+
==== [[#top|^]] Cacti ====
https://www.convirture.com/company_management.php
 
https://www.convirture.com/community.php
 
https://www.theregister.co.uk/2012/12/14/convirture_convirt_3_2_vmware_support/
 
-->
 
  
ARM microcontroller related:
+
<ul>
 +
*  https://www.greenfoxlandscapesupply.com/fishhook-barrel-cactus Fishhook barrel cactus
 +
*  https://cals.arizona.edu/pima/gardening/aridplants/Ferocactus_wislizenii.html "Page not found" but mentions <i>ferocactus wislizenii</i>
 +
*  http://txmg.wpengine.netdna-cdn.com/williamson/files/Cold-Hardy-Cacti-Succulents-03-11.pdf cold hardiness of cacti, list of many
 +
*  http://www.phoenixdesertnursery.com/articles.php?article=5 Phoenix Desert Nursery, cactus article mentions claret cup and many others, cold hardiness
 +
*  http://www.[[#top|^]] americansouthwest.net/plants/cacti/ferocactus-wislizeni.html
  
[http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337e/Cihcffda.html Nested Vector Interrupt Controller (NVIC)]
+
*  http://www.llifle.com/Encyclopedia/CACTI/Family/Cactaceae/4317/Ferocactus_macrodiscus
 +
*  http://www.llifle.com/plant_album/4317/
  
 +
*  https://en.wikipedia.org/wiki/Echinocereus_rigidissimus
  
Operating system level programming:
+
*  https://www.pinterest.co.uk/pin/716846465660891130/
  
[http://www.musl-libc.org/ musl libc home page]
+
*  http://www.cactusinhabitat.org/index.php?p=specie&id=46&l=en
*  [http://www.etalabs.net/compare_libcs.html musl C library comparison with other C libraries]
 
*  [http://www.etalabs.net/overcommit.html memory overcommit]
 
  
 +
- 2018-08-24 - Friday, search for cold hardiness of echinopsis oxygona:
 +
*  https://worldofsucculents.com/echinopsis-oxygona-easter-lily-cactus
 +
 +
- 2019-07-19 - Friday, Frailea cactus native to Brazil
 +
*  https://en.wikipedia.org/wiki/Frailea
 +
</ul>
  
Gputils PIC programming tools, W3C Jigsaw validator referenced at end of page
 
  
*  https://gputils.sourceforge.io/#News
+
<!-- comment -->
  
 +
==== [[#top|^]] Agavacae ====
 +
<ul>
 +
*  https://jcra.ncsu.edu/horticulture/plant-profiles/details.php?ID=98
 +
</ul>
  
  
 
<!-- comment -->
 
<!-- comment -->
  
 +
==== [[#top|^]] Nursurias ====
  
 +
<ul>
 +
*  https://www.highcountrygardens.com/perennial-plants/agave/agave-utahensis-ssp-kaibabensis
 +
<ul>
 +
Excerpt from this page:
  
<span id="musica y liricos"></span>
+
<i>
<!-- SECTION - music and lyrics -->
+
"Planting Instructions
=== [[#top|&uarr;]] [[#references|&darr;]] music and lyrics ===
 
  
*  https://www.youtube.com/watch?v=Nmqitm6cfuU  . . . I am Omni - Back At It - featuring Myka 9
+
1. Cacti, agaves, and tap-rooted succulents (Aloinopsis, Titanopsis, Nananthus) should be transplanted bare-root. Let the soil in the pot dry out for a few days. Then remove the pot and gently loosen the soil so it falls away from the roots. Trim off any broken roots. Bare root plants should then be planted into a shallow hole. Spread out the roots evenly and sprinkle the soil into the hole until full. The base of the plant should rest on top of the soil. Mulch with a 1⁄2”-1” thick layer of pea-sized gravel around the base of the plant to protect it from contact with soggy soil over the winter months. (See planting diagram on page 12 of our Planting Guide.)
 +
</i>
 +
</ul>
  
*  http://ohhla.com/anonymous/blackstr/rm_bside/little_b.blk.txt
+
TERMINOLOGY:  https://en.wikipedia.org/wiki/Cleistogamy
<ul>
 
* https://www.youtube.com/watch?v=RTREDvH8H4g
 
 
</ul>
 
</ul>
 
---
 
*  https://www.youtube.com/watch?v=4SpWuseQGys  Jew harp, Ted talk and Vilnius
 
https://www.wish.com/product/59b6c3c68f545e607c2adf30?hide_login_modal=true&from_ad=goog_shopping&_display_country_code=US&_force_currency_code=USD&pid=googleadwords_int&c=%7BcampaignId%7D&ad_cid=59b6c3c68f545e607c2adf30&ad_cc=US&ad_curr=USD&ad_price=48.00&campaign_id=7203534630&gclid=EAIaIQobChMIoZKHvqS06AIVEh-tBh2I6wv-EAQYASABEgKuAvD_BwE&share=web
 
  
  
 
<!-- comment -->
 
<!-- comment -->
  
<span id="plant_resources"></span>
+
- 2018-08-06 Monday -
<!-- SECTION - Plant resources -->
+
<ul>
 +
*  https://www.journals.uchicago.edu/doi/pdfplus/10.1086/277683  . . . lithurge, cactus bees
 +
</ul>
 +
 
 +
Wildflowers . . .
 +
<ul>
 +
*  http://www.missouribotanicalgarden.org/PlantFinder/PlantFinderDetails.aspx?kempercode=p840  . . . lychnis coronaria, <i>rose campion</i> native to Europe
 +
*  https://en.wikipedia.org/wiki/Silene_coronaria
 +
</ul>
  
=== [[#top|&uarr;]] [[#references|&darr;]] plant and animal references ===
+
Iris and Bulbs . . .
 +
<ul>
 +
*  http://www.srgc.net/forum/index.php?topic=9952.210  . . . Scottish Rock Garden Club, Pat Toolen seedling PT0343
 +
</ul>
  
Searching Google and Amazon for bottom heat sources for seed germination:
+
<ul>
 +
*  https://butterfly-conservation.org/moths/identify-a-moth
 +
</ul>
  
"
 
Seedfactor
 
MET certified Seedling Heat Mat, Seedfactor Waterproof Durable Germination Station Heat Mat, Warm Hydroponic Heating Pad for Indoor Home Gardening Seed Starter(10" x 20")
 
"
 
  
*  [https://davesgarden.com/guides/articles/view/556 Heating mats article by Jill M. Nicolaus]
+
<!-- comment -->
  
*  https://en.wikipedia.org/wiki/Osmia_bicolor
+
Personal project notes . . .
*  https://nativebeeology.com/mind-your-bees-and-gardens-2/carpenter-bee/ bufflehead mason bee
 
  
Aloe references . . .
 
 
<ul>
 
<ul>
Aloe maculata, bontalwyne:
+
*  [[bookmarked_paths|bookmarked paths]] of various projects
<ul>
 
http://clarensnews.co.za/aloe-maculata-common-soap-aloe-bontalwyne/
 
*  http://pza.sanbi.org/aloe-maculata
 
*  https://www.researchgate.net/publication/283348154_Review_of_Aloe_Species%27_Medicinal_Properties_and_Bioactive_Compounds
 
</ul>
 
[[file:FOPB4-51.pdf|FOBP284 Rodriguez aloe studies paper]]
 
 
</ul>
 
</ul>
  
2019-04-10
 
Cork trees . . .
 
<ul>
 
*  http://www.corkforest.org/harvesting-the-cork-oak/
 
</ul>
 
  
Invasive plants . . .
 
<ul>
 
*  https://www.nybg.org/blogs/plant-talk/tag/amur-cork-tree/
 
</ul>
 
  
 +
2020-10-21
 +
*  https://www.indefenseofplants.com/blog/2015/7/23/an-orchid-invader-with-an-interesting-ecology  helleborine orchid
  
==== [[#top|^]] Cacti ====
+
<!-- comment -->
  
<ul>
+
==== [[#top|^]] plant pathology ====
*  https://www.greenfoxlandscapesupply.com/fishhook-barrel-cactus Fishhook barrel cactus
 
*  https://cals.arizona.edu/pima/gardening/aridplants/Ferocactus_wislizenii.html "Page not found" but mentions <i>ferocactus wislizenii</i>
 
*  http://txmg.wpengine.netdna-cdn.com/williamson/files/Cold-Hardy-Cacti-Succulents-03-11.pdf cold hardiness of cacti, list of many
 
*  http://www.phoenixdesertnursery.com/articles.php?article=5 Phoenix Desert Nursery, cactus article mentions claret cup and many others, cold hardiness
 
*  http://www.[[#top|^]] americansouthwest.net/plants/cacti/ferocactus-wislizeni.html
 
  
*  http://www.llifle.com/Encyclopedia/CACTI/Family/Cactaceae/4317/Ferocactus_macrodiscus
+
https://www.apsnet.org/publications/phytopathology/backissues/Documents/1971Articles/Phyto61n08_926.PDF
*  http://www.llifle.com/plant_album/4317/
 
  
*  https://en.wikipedia.org/wiki/Echinocereus_rigidissimus
+
<!-- comment -->
 +
 
 +
<!-- SECTION - Food and Cooking -->
  
*  https://www.pinterest.co.uk/pin/716846465660891130/
+
== [[#top|^]] Technology History and Evolution ==
 +
Moore's Law and CMOS scaling ways:
 +
*  https://meroli.web.cern.ch/lecture_scaled_CMOS_Technology.html
 +
*  https://en.wikipedia.org/wiki/65_nm_process
 +
*  https://en.wikipedia.org/wiki/Low-%CE%BA_dielectric
 +
<!-- comment -->
  
*  http://www.cactusinhabitat.org/index.php?p=specie&id=46&l=en
+
== [[#top|^]] Astronomy ==
  
- 2018-08-24 - Friday, search for cold hardiness of echinopsis oxygona:
+
Physics topics relating to astronomy:
*  https://worldofsucculents.com/echinopsis-oxygona-easter-lily-cactus
 
  
- 2019-07-19 - Friday, Frailea cactus native to Brazil
+
<ul>
*  https://en.wikipedia.org/wiki/Frailea
+
*  https://en.wikipedia.org/wiki/Speed_of_light
 +
*  https://en.wikipedia.org/wiki/Parsec
 
</ul>
 
</ul>
  
 +
Black holes and some of their key features as we know them so far:
  
<!-- comment -->
+
<ul>
 +
*  https://en.wikipedia.org/wiki/Event_Horizon_Telescope
 +
*  https://en.wikipedia.org/wiki/Kerr_metric Kerr metric as applies to black holes
 +
2020-01-30
 +
*  https://www.shelyak.com/how-to-measure-the-redshift-of-a-galaxy/?lang=en
 +
</ul>
 +
 
 +
Black holes and General Relativity . . .
  
==== [[#top|^]] Agavacae ====
 
 
<ul>
 
<ul>
*  https://jcra.ncsu.edu/horticulture/plant-profiles/details.php?ID=98
+
*  https://en.wikipedia.org/wiki/Chandrasekhar_limit  Chandrasekhar Limit of mass of stars and specifically white dwarf stars
 
</ul>
 
</ul>
 +
  
  
 
<!-- comment -->
 
<!-- comment -->
  
==== [[#top|^]] Nursurias ====
+
== [[#top|^]] Food and Cooking ==
  
 +
*  https://getpocket.com/explore/item/the-best-ever-eggplant-parmigiana?utm_source=pocket-newtab  Italian eggplant parmigiana
 +
 +
Turkish traditional dishes, borek . . .
 
<ul>
 
<ul>
*  https://www.highcountrygardens.com/perennial-plants/agave/agave-utahensis-ssp-kaibabensis
+
*  https://www.seriouseats.com/2012/02/how-to-make-turkish-burek.html
<ul>
 
Excerpt from this page:
 
 
 
<i>
 
"Planting Instructions
 
 
 
1. Cacti, agaves, and tap-rooted succulents (Aloinopsis, Titanopsis, Nananthus) should be transplanted bare-root. Let the soil in the pot dry out for a few days. Then remove the pot and gently loosen the soil so it falls away from the roots. Trim off any broken roots. Bare root plants should then be planted into a shallow hole. Spread out the roots evenly and sprinkle the soil into the hole until full. The base of the plant should rest on top of the soil. Mulch with a 1⁄2”-1” thick layer of pea-sized gravel around the base of the plant to protect it from contact with soggy soil over the winter months. (See planting diagram on page 12 of our Planting Guide.)
 
</i>
 
 
</ul>
 
</ul>
  
TERMINOLOGY:  https://en.wikipedia.org/wiki/Cleistogamy
+
Search also for simit, imam bayidi, kafta kabab
</ul>
 
  
  
 
<!-- comment -->
 
<!-- comment -->
  
- 2018-08-06 Monday -
+
<span id="references"></span>
<ul>
 
*  https://www.journals.uchicago.edu/doi/pdfplus/10.1086/277683  . . . lithurge, cactus bees
 
</ul>
 
  
Wildflowers . . .
+
<!-- SECTION - References -->
<ul>
 
*  http://www.missouribotanicalgarden.org/PlantFinder/PlantFinderDetails.aspx?kempercode=p840  . . . lychnis coronaria, <i>rose campion</i> native to Europe
 
*  https://en.wikipedia.org/wiki/Silene_coronaria
 
</ul>
 
  
Iris and Bulbs . . .
+
== [[#top|^]] References ==
<ul>
 
*  http://www.srgc.net/forum/index.php?topic=9952.210  . . . Scottish Rock Garden Club, Pat Toolen seedling PT0343
 
</ul>
 
  
<ul>
+
[[Notes|Neela Nurseries wiki notes]]
*  https://butterfly-conservation.org/moths/identify-a-moth
 
</ul>
 
  
 +
<br />
 +
Reproducible builds, byte-wise reproducible software:
 +
*  http://events.linuxfoundation.org/sites/events/files/slides/reproducible-build-zoo-elc.pdf
 +
*  https://labs.riseup.net/code/issues/14455
  
<!-- comment -->
 
 
Personal project notes . . .
 
  
 +
Server Side services . . .
 
<ul>
 
<ul>
*  [[bookmarked_paths|bookmarked paths]] of various projects
+
Apache2 configuration:
 +
https://www.sslshopper.com/apache-redirect-http-to-https.html
 +
SSL
 +
*  [http://server.arcgis.com/en/web-adaptor/latest/install/iis/enable-https-on-your-web-server-server-.htm SSL certificates behind firewall]
 +
DNS
 +
*  [http://www.tldp.org/HOWTO/DNS-HOWTO.html DNS How-To] at [http://tlpd.org TLDP]
 +
[http://www.tldp.org/HOWTO/DNS-HOWTO.html DNS How-To by Nicolai Langfeldt]
 +
MYSQL
 +
*  [https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04 Digital Ocean - How to install MYSQL tutorial]
 
</ul>
 
</ul>
  
  
 +
Coding standards:
 +
*  https://www.kernel.org/doc/html/latest/process/coding-style.html
  
2020-10-21
 
*  https://www.indefenseofplants.com/blog/2015/7/23/an-orchid-invader-with-an-interesting-ecology  helleborine orchid
 
  
<!-- comment -->
+
C and C++:
 +
*  https://www.tutorialspoint.com/cplusplus/cpp_variable_types.htm "A variable can be declared multiple times but defined only once in a file, routine or code block."
  
==== [[#top|^]] plant pathology ====
 
  
https://www.apsnet.org/publications/phytopathology/backissues/Documents/1971Articles/Phyto61n08_926.PDF
+
Couple of MediaWiki and publishing issues to look into, which came up during wiki configuration:
 +
https://www.mediawiki.org/wiki/Manual:User_rights
 +
*  https://creativecommons.org/licenses/by-sa/3.0/
 +
*  https://choosealicense.com/
  
<!-- comment -->
 
  
<!-- SECTION - Food and Cooking -->
+
Some Hindi language and UTF-8 encoding references, to be factored to a dedicated wiki page later:
 +
*  http://jrgraphix.net/r/Unicode/0900-097F
 +
*  http://hindilearner.com/hindi_words_phrases/hindi_words_time_days.html
 +
*  http://www.learning-hindi.com/post/3072325702/lesson-91-%E0%A4%B8%E0%A4%AA-%E0%A4%A4-%E0%A4%B9-%E0%A4%95-%E0%A4%A6-%E0%A4%A8-days-of-the-week
  
== [[#top|^]] Astronomy ==
 
  
Physics topics relating to astronomy:
+
Linux programs and utilities:
 +
*  https://fedoramagazine.org/17-alternatives-to-your-default-image-viewer-on-fedora/
 +
*  https://users.cs.cf.ac.uk/Dave.Marshall/C/node33.html
 +
*  [https://askubuntu.com/questions/390769/how-do-i-resize-partitions-using-command-line-without-using-a-gui-on-a-server resize2fs util to resize ext2, ext3, ext4 type partitions]
 +
*  [https://gcc.gnu.org/ml/gcc-help/2015-08/msg00104.html shell script 'runtest' provided by package dejagnu]
  
<ul>
 
*  https://en.wikipedia.org/wiki/Speed_of_light
 
*  https://en.wikipedia.org/wiki/Parsec
 
</ul>
 
  
Black holes and some of their key features as we know them so far:
+
Graphics Servers:
 +
*  https://www.reddit.com/r/linux/comments/4bq9kl/eli5_wayland_vs_mir_vs_x11/ X11 versus Wayland compositor
  
<ul>
 
*  https://en.wikipedia.org/wiki/Event_Horizon_Telescope
 
*  https://en.wikipedia.org/wiki/Kerr_metric Kerr metric as applies to black holes
 
2020-01-30
 
*  https://www.shelyak.com/how-to-measure-the-redshift-of-a-galaxy/?lang=en
 
</ul>
 
  
Black holes and General Relativity . . .
+
Computer hardware and firmware:
 
 
<ul>
 
*  https://en.wikipedia.org/wiki/Chandrasekhar_limit  Chandrasekhar Limit of mass of stars and specifically white dwarf stars
 
</ul>
 
 
 
 
 
 
 
<!-- comment -->
 
 
 
== [[#top|^]] Food and Cooking ==
 
 
 
Turkish traditional dishes, borek . . .
 
<ul>
 
*  https://www.seriouseats.com/2012/02/how-to-make-turkish-burek.html
 
</ul>
 
 
 
Search also for simit, imam bayidi, kafta kabab
 
 
 
 
 
<!-- comment -->
 
 
 
<span id="references"></span>
 
 
 
<!-- SECTION - References -->
 
 
 
== [[#top|^]] References ==
 
 
 
[[Notes|notes]]
 
 
 
<br />
 
Reproducible builds, byte-wise reproducible software:
 
*  http://events.linuxfoundation.org/sites/events/files/slides/reproducible-build-zoo-elc.pdf
 
*  https://labs.riseup.net/code/issues/14455
 
 
 
 
 
Server Side services . . .
 
<ul>
 
Apache2 configuration:
 
*  https://www.sslshopper.com/apache-redirect-http-to-https.html
 
SSL
 
*  [http://server.arcgis.com/en/web-adaptor/latest/install/iis/enable-https-on-your-web-server-server-.htm SSL certificates behind firewall]
 
DNS
 
*  [http://www.tldp.org/HOWTO/DNS-HOWTO.html DNS How-To] at [http://tlpd.org TLDP]
 
*  [http://www.tldp.org/HOWTO/DNS-HOWTO.html DNS How-To by Nicolai Langfeldt]
 
MYSQL
 
*  [https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04 Digital Ocean - How to install MYSQL tutorial]
 
</ul>
 
 
 
 
 
Coding standards:
 
*  https://www.kernel.org/doc/html/latest/process/coding-style.html
 
 
 
 
 
C and C++:
 
*  https://www.tutorialspoint.com/cplusplus/cpp_variable_types.htm "A variable can be declared multiple times but defined only once in a file, routine or code block."
 
 
 
 
 
Couple of MediaWiki and publishing issues to look into, which came up during wiki configuration:
 
*  https://www.mediawiki.org/wiki/Manual:User_rights
 
*  https://creativecommons.org/licenses/by-sa/3.0/
 
*  https://choosealicense.com/
 
 
 
 
 
Some Hindi language and UTF-8 encoding references, to be factored to a dedicated wiki page later:
 
*  http://jrgraphix.net/r/Unicode/0900-097F
 
*  http://hindilearner.com/hindi_words_phrases/hindi_words_time_days.html
 
*  http://www.learning-hindi.com/post/3072325702/lesson-91-%E0%A4%B8%E0%A4%AA-%E0%A4%A4-%E0%A4%B9-%E0%A4%95-%E0%A4%A6-%E0%A4%A8-days-of-the-week
 
 
 
 
 
Linux programs and utilities:
 
*  https://fedoramagazine.org/17-alternatives-to-your-default-image-viewer-on-fedora/
 
*  https://users.cs.cf.ac.uk/Dave.Marshall/C/node33.html
 
*  [https://askubuntu.com/questions/390769/how-do-i-resize-partitions-using-command-line-without-using-a-gui-on-a-server resize2fs util to resize ext2, ext3, ext4 type partitions]
 
*  [https://gcc.gnu.org/ml/gcc-help/2015-08/msg00104.html shell script 'runtest' provided by package dejagnu]
 
 
 
 
 
Graphics Servers:
 
*  https://www.reddit.com/r/linux/comments/4bq9kl/eli5_wayland_vs_mir_vs_x11/ X11 versus Wayland compositor
 
 
 
 
 
Computer hardware and firmware:
 
 
*  [https://en.wikipedia.org/wiki/EFI_system_partition Extensible Firmware Interface, EFI and UEFI, see also LFS Book 8.1 chapter 6.55.2]
 
*  [https://en.wikipedia.org/wiki/EFI_system_partition Extensible Firmware Interface, EFI and UEFI, see also LFS Book 8.1 chapter 6.55.2]
  
Line 2,143: Line 2,556:
 
*  https://www.nxp.com/docs/en/user-guide/UM10204.pdf
 
*  https://www.nxp.com/docs/en/user-guide/UM10204.pdf
  
 +
Access iPhone via Linux
 +
*  https://www.maketecheasier.com/easily-mount-your-iphone-as-an-external-drive-in-ubuntu/
 +
 +
 +
<!-- comment -->
  
 +
== [[#top|^]] End of page ==
  
  
<!-- comment -->
+
&nbsp;<br />
 +
&nbsp;<br />
  
 
<center>
 
<center>

Latest revision as of 22:38, 14 November 2024

-- 2017-07-21 शुक्रवार --
User Ted's wiki page at Neela Nurseries
musica, संगीत


OVERVIEW

This wiki document a starting point of Ted's notes on Linux use and configuration, Open Source Software and web development.

This local notes page on Neela Nurseries wiki not yet well organized, but here as a quick stash point for holding useful references and a starting point for more complete and formal documentation.

Music notes here  :::  NN keywords template  :::  Nordic Devzone posts  :::  CircuitDojo Forum  :::  Untangling complex C declarations

Keywords: Untangling Detangling Untangling C Declarations Nordic Devzone firmware goals


^ Technology and Tools

Quick links to local notes and references:

1 2 3 4
Technical groups Hardware references Operating systems Tools and Toolchains
5 6 7 8
Documentation Programming languages Programming languages Data Integrity
9 10 11 12
Technologies Local works Local works Code Libraries
13 14 15 16
Open software projects Comms protocols Encodings Hardware issues
17 18 19 20
Local stuff Academic Cloud based services Interesting projects

^ temporary section

Note: useful to add ratings of completeness and organization to above links that point to local wiki pages.

http://iotfactory.eu/lorawan-world-frequency-map-lora-sigfox-nbiot-telecom-operators-per-country/ LoRaWAN world frequency map (not exhaustive)

Always useful to review, wiki table syntax help:

 *  wiki table help

Wiki-driven table of contents here:

Contents



Countries and politics



Community, Culture, the World

Following sections on Community, Geography, Culture, Musica and the world may become a separate wiki page in the future.


Geography and Place



People

Cultural and envinrmental:



Encontrado 2019-12-30 lunes, commentario sobre Mahatma Gandhi:


Tech authors, astronomy, more Linux reference material:


Human languages

- 2017-12-15 FRI -


Science

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- 2017-10-05 - Ted noting here that would be good to have a technical glossary to make easily accessible all the technical terms which arise in daily work and exploration of technologies . . .


- 2017-10-19 - TO-DO list:

  *  [✓] complete LFS 8.1 exercise
  *  [ ] configure xserver to run stand-along without window manager (seems to be working on 1604 spare LTS host . . .)
  *  [ ] set up two mysql servers on one host
  *  [ ] write "best photo contribution" practices page for ASI
  *  [ ] code "re-use or reference text block" module for MediaWiki  <-- this needs further explanation - TMH 
  *  [ ] in local Neela Nurseries PHP code base, amend hybrid building of nav menus to include highlighting parent page of given viewed page
  *  [ ] in OpenCart 2.x find way to customize top-of-page information and links
  *  [ ] in OpenCart 2.x find way to format product lists as compact lists, like Gmail inbox or Windows 'list view' of files


GNU Make and GCC Tools


2018-07-18 NOTE: this section to be moved to separate GCC and Make article . . . - TMH


Using macros with gcc:

Code libraries and shared objects, expressing paths to them:

gcc.gnu.org - 3.15 Specifying subprocesses and switches passed to them

gcc how to show macros and pre-processor defines:


OpenOCD and Eagle set up notes

Eagle fails to start due to symbols not resolve-able . . .

 *  https://forums.autodesk.com/t5/eagle-forum/can-t-run-eagle-on-debian-10-testing/td-p/8312348

Automake or autoconf or autoreconf -i fails for LIBTOOL undefined . . .

 *  https://stackoverflow.com/questions/18978252/error-libtool-library-used-but-libtool-is-undefined


 *  https://stackoverflow.com/questions/43565009/failing-to-enable-stlink-in-openocd


Mediawiki Issues and Notes

- 2018-01-22 - While editing sidebar of Mediawiki instance at Neela, Ted noticing a difference in Mediawiki's treatment of hyperlinks in the sidebar. Links to external sites don't appear, and links to internal pages require single square brace enclosure to appear with alternate text as a link label . . .

<!--
** [https://buildroot.org/downloads/manual/manual.html Buildroot manual]
<a href="https://buildroot.org/downloads/manual/manual.html">Buildroot manual</a>

- 2018-01-22 MON -
** https://wiki.neelanurseries.com/index.php/Nn_embedded_linux_notes#.E2.86.91_.E2.86.93_Buildroot|Buildroot notes . . . only 'notes' shows as non-link text - TMH
-->


^ File uploads

- 2018-06-29 FRI - Issue adding .txt type files to whitelist of Mediawiki installation uploadable files:

Action failed

Could not open lock file for "mwstore://local-backend/local-public/e/ec/Asi-officers-list-2018.txt".

Return to Main Page.

200px|thumb|left|png type image to test file uploads of allowed image type . . .
media:arrow-up-prelight.png


Following link may have helpful information:

- 2018-07-25 WED -


^ Images in wiki pages and image attributes


^ Mediawiki layout topics like multi column layout

- 2018-11-30 FRI -


^ Other Mediawiki topics


Web Site Building Blocks - Summer 2017 to 2020 Q1 Work

Must begin a new section on web site security issues. Here are a couple of articles as starting points to sleuth out how the "WARNING - Please read me XMG" ransomeware attack can reach MYSQL databases of on-line hosts:


2019-11-12


2020-01-27 htpasswd access files


Open Source License Types



Linux Packages (Separate Article)

Linux software package notes a separate wiki document on Neela wiki. - TMH


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bash Shell Scripting

Bash (Bourne shell) Quick Reference:

Shell Built-in Variables:

   $0    Name of given shell script itself
   $1    Value of first command line parameter (similarly $2, $3, ...)
   $#    In given shell script the number of command line parameters received
   $*    All of the command line parameters
   $-    Options given to the shell
   $?    Return (or holds) the exit status of the last command
   $$    Process id of given script (really the id of the shell running the script)


Shell test constructs:

SYNTAX      NAME OF SHELL TEST                                NOTES

[           built-in test                                     considers its arguments as comparison expressions or file tests

[[...]]     in Bash => 2.02 the extended test command

((...))     arithmetic tests                                  example:  (( 0 && 1 ))  # Logical AND


References:


Shell scripting and use of built-in shell commands is a practical knowledge to employ, when working in Unix-like environments. One common task is to find all the instances of a given file or program. The locate command can perform this kind of search, but it's results don't show whether the file instances differ. To check at the rough level of file size, we can use a one-line shell script technique involving shell piping, to "long list" the results of the locate command, like this . . .

  $ for file in `locate tavrasm | grep 'asm$'`; do ls -l ${file}; done

Hmm strange, the above command calls `grep` with a pattern that ends in the shell end-of-line anchoring character $, and appears to filter for results of `locate` which end in 'asm'. But on 2017-09-12 needed to add a "one or more wildcard" character pattern to limit search results for instances of `locate` results ending in 'qemu':

    $ locate qemu | grep '.*qemu$'

Why the apparent difference in command invocation? Need to test . . . - TMH


Command to break out first ten $PATH environment variable to individual paths each shown on a line of the shell:

    $ for path in `echo $PATH | cut -d':' -f1-10 --output-delimiter=' '`; do echo $path; done

2018-04-23 - Monday, command to obtain summary of directories containing 1GB or more data:

    $ du -h . | grep [0-9]G



edit point - shell variable quoting

- 2017-10-19 THU -

Running into issues when need to expand shell variable in single quotes pair . . .

Stack Exchange, Unix forum post 178411
TLPD Advanced Bash Scripting Guide, chapter 4.2 example 4-3 double quotes preserve white space


WIKI WISH LIST - While adding to wiki, Ted noting that would be useful to have relative-depth wiki section markers. The standard wiki section markers '== ==', '=== ===' and similar have fixed depth. That is, '== ==' is always a top-level or first-level section in a wiki document, '=== ===' is always a sub-subsection of wiki documents, and '==== ====' a sub-sub-section. When section gets re-factored into its own article, would be handy to have those section markers rise up to levels of top-most and successive section markers. - TMH



example shell script - back up several databases

 
Here is a simple shell script to call mysqldump utility and back up several databases. Couple of things Ted wants to add to this script include script variables to hold back-up filename prefix and infix patterns, and an option to compress the MYSQL dump files . . .

Figure x - shell script to back-up multiple MYSQL databases


#!/bin/bash


DATABASE_LIST="information_schema mysql drupal_8p0 phpmyadmin wiki_database"

user="root"
pass_phrase_for_mysql="mysql_user_password"
options_extra="--skip-lock-tables"

response="n"

mode_interactive="n"



echo "shell script starting,"



for database in ${DATABASE_LIST};
do echo "backing up alta-ubuntu database $database . . .";

#    command="mysqldump --databases $database -u$user -p$pass_phrase_for_mysql $options_extra >> au-database-back-up--${database}.sql"
    command="mysqldump --databases $database -u$user -p$pass_phrase_for_mysql $options_extra"
    redirect="au-database-back-up--${database}.sql"

    if [ $mode_interactive = 'y' ]; then

        echo "build command '$command' and database back-up filename'$redirect',"
        echo "full command will be '$command' > '$redirect',"
        echo "trying running this command and redirect? [y/N/q]  yes, no, 'q' to quit"

        read response
        if [ $response = 'Y' -o $response = 'y' ]; then
            ${command} > $redirect
        elif [ $response = 'N' -o $response = 'n' ]; then
            echo "skipping present command . . ."
        elif [ $response = 'Q' -o $response = 'q' ]; then
            echo "stopping script '$0' and exiting."
            break
        fi
        echo

    else

        echo "$0:  backing up database '$database' to file '$redirect' . . ."
        ${command} > $redirect
        ls -l $redirect

    fi

done


echo "done."

exit 0

show kernel version script

Following script 'showkversion' can be used in a Linux kernel source tree to determine the kernel's version number, based on the number elements defined in the kernel's top level makefile.

Figure x - simple bash script to show kernel version in root of kernel sources tree

#!/bin/bash

## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
## Started 2017-12-15 FRI - script to parse and show Linux kernel
##  version from top-level makefile in set of kernel sources.  Patterns
##  to `grep` chosen based on kernel version identifiers in first
##  three lines of typical kernel top-level makefile.  Example:
##
##  $ head -n 6 Makefile
##  VERSION = 4
##  PATCHLEVEL = 9
##  SUBLEVEL = 66
##  EXTRAVERSION =
##  NAME = Roaring Lionus
##
##
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


script_name="showkversion"


if [ ]; then
    head -n 5 Makefile | grep ^VERSION | cut -d " " -f 3
    head -n 5 Makefile | grep ^PATCH | cut -d " " -f 3
    head -n 5 Makefile | grep ^SUBLEVEL | cut -d " " -f 3
fi

MAJOR=$(head -n 5 Makefile | grep ^VERSION | cut -d " " -f 3)
MINOR1=$(head -n 5 Makefile | grep ^PATCH | cut -d " " -f 3)
MINOR2=$(head -n 5 Makefile | grep ^SUBLEVEL | cut -d " " -f 3)

KERNEL_REVISION="${MAJOR}.${MINOR1}.${MINOR2}"

echo
echo "Kernel version in present kernel sources tree, per makefile, is ${KERNEL_REVISION}"
echo


exit 0



Other useful shell tutorial references



Regex tutorials

2019-11-02 - An interesting blog post and replies, at, I think, Jamie Zawinski's home page. This one on the use and some limits of regular expressions:

  *  https://www.jwz.org/blog/2011/11/you-doom-us-all-to-inhuman-toil-for-the-one-whose-name-cannot-be-expressed-in-the-basic-multilingual-plane/


`sed` stream editor

Unix `sed` stream editor, examples and references:

Code snippet - rename multiple files where a substring need be changed:

   $ for file in `ls ./2109*.*`; do mv $file `ls -1 $file | sed s/2109/2019/` ; done

References on `sed`:

2021-08-26:


Other Computer Programming Languages

Python Scripting Language



Expect Utility by Don Libes

Installing 'expect' on Ubuntu 16.04.x LTS host, typical dependencies:

ted@localhost:~/projects/shell/expect-work$ sudo apt install expect

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libfontenc1 libxaw7 libxmu6 libxmuu1 libxtst6 libxv1 libxxf86dga1 tcl-expect tcl8.6 tk8.6 x11-utils xbitmaps xterm
Suggested packages:
  tcl-tclreadline mesa-utils xfonts-cyrillic
The following NEW packages will be installed:
  expect libfontenc1 libxaw7 libxmu6 libxmuu1 libxtst6 libxv1 libxxf86dga1 tcl-expect tcl8.6 tk8.6 x11-utils xbitmaps xterm
0 upgraded, 14 newly installed, 0 to remove and 5 not upgraded.
Need to get 1,373 kB of archives.
After this operation, 4,110 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
  .
  .
  .


Some 'expect' utility references:

Good short examples covering range of tasks here at Robert Elder blog page, noting md5sum expect script example . . .

How to capture specific results during an expect script's execution:


- 2018-01-30 - Tuesday, picking up from last week researching how to redirect expect output and its spawned processes' output with filtering to log file. The first reference here at Stackoverflow repeats the useful lindex syntax. There is also mention of the expect manual and a syntax $::env(action) which can be expressed in an expect script to access an environment variable that is part of the controlling shell . . .

How to use expect's log_file key word in an expect script:

From the manual page for expect version 5.45:

           log_file [args] [[-a] file]
                 If a filename is provided, log_file will record a transcript of the session (beginning at that point) in
                 the file.  log_file will stop recording if no argument is given.  Any previous log file is closed.
    
                 Instead  of  a  filename,  a Tcl file identifier may be provided by using the -open or -leaveopen flags.
                 This is similar to the spawn command.  (See spawn for more info.)
    
                 The -a flag forces output to be logged that was suppressed by the log_user command.
    
                 By default, the log_file command appends to old files rather than truncating them, for  the  convenience
                 of  being  able  to  turn  logging off and on multiple times in one session.  To truncate files, use the
                 -noappend flag.
    
                 The -info flag causes log_file to return a description of the most recent non-info arguments given.
    


Also from the expect manual page, Expect Hints section:

    EXPECT HINTS
           There are a couple of things about Expect that may be non-intuitive.  This section attempts to address some of
           these things with a couple of suggestions.
    
           A common expect problem is how to recognize shell prompts.  Since these are customized differently by  differ-
           ently  people and different shells, portably automating rlogin can be difficult without knowing the prompt.  A
           reasonable convention is to have users store a regular expression describing their prompt (in particular,  the
           end  of it) in the environment variable EXPECT_PROMPT.  Code like the following can be used.  If EXPECT_PROMPT
           doesn't exist, the code still has a good chance of functioning correctly.
    
               set prompt "(%|#|\\$) $"          ;# default prompt
               catch {set prompt $env(EXPECT_PROMPT)}
    
               expect -re $prompt
    
           I encourage you to write expect patterns that include the end of whatever you expect to see.  This avoids  the
           possibility  of  answering a question before seeing the entire thing.  In addition . . .
    


The expect program has some built-in string buffers, and one of these may hold the latest characters received from a spawned process. Here is a man page excerpt which shows use of one of these expect buffers:

           disconnect
                 disconnects a forked process from the terminal.  It continues running in the background.  The process is
                 given its own process group (if possible).  Standard I/O is redirected to /dev/null.
    
                 The following fragment uses disconnect to continue running the script in the background.
    
                     if {[fork]!=0} exit
                     disconnect
                     . . .
    
                 The following script reads a password, and then runs a program every hour that demands a  password  each
                 time  it is run.  The script supplies the password so that you only have to type it once.  (See the stty
                 command which demonstrates how to turn off password echoing.)
    
                     send_user "password?\ "
                     expect_user -re "(.*)\n"
                     for {} 1 {} {
                         if {[fork]!=0} {sleep 3600;continue}
                         disconnect
                         spawn priv_prog
                         expect Password:
                         send "$expect_out(1,string)\r"
                         . . .
                         exit
                     }
    


Further looking for expect's built-in string buffers and variables . . .

Pattern matching syntax in Don Libe's expect . . .


From another source, Tcl's string match command:

if [string match "f*b*" "foobar"] {
   puts "match"
else {
   puts "no match"
}



edit point - Tool command language Tcl

"Practical programming
in Tcl and Tk"
ISBN 0-13-038560-3


In using Don Libes' expect utility or program, looks like it will be important and helpful to understand Tool Command Language Tcl to at least some fluency. Here appears to be a good starting point tutorial for Tcl:


Tcl puts built-in command, channels and code to open log file,

Append a log message to a file:

set chan [open my.log a]
set timestamp [clock format [clock seconds]]
puts $chan "$timestamp - Hello, World!"
close $chan


Tcl regular expressions:


Tcl reserved words:

after		append		array		auto_execok
auto_import	auto_load	auto_load_index	auto_qualify
binary		Bgerror		break		catch
cd		Clock		close		concat
continue	Dde		default		else
elseif		Encoding	eof		error
eval		Exec		exit		expr
fblocked	Fconfigure	fcopy		file
fileevent	Flush		for		foreach
format		Gets		glob		global
history		If		info		interp
join		Lappend		lindex		linsert
list		Llength		load		lrange
lreplace	Lsearch		lsort		namespace
open		Package		pid		pkg_mkIndex
proc		Puts		pwd		read
regexp		Regsub		rename		resource
return		Scan		seek		set
socket		Source		split		string
subst		Switch		tclLog		tell
time		Trace		unknown		unset
update		Uplevel		upvar		variable
vwait		While



edit point - Tcl pattern matching and anchoring, symbols ^ and $ wrt data not lines

From the Tcl manual page on-line here is a clue about pattern matching in Tcl scripts, which may explain why we are struggling to obtain matched substrings from sequences of bytes from expect-spawned processes . . .

        Note that in many editors, the ^ and $ match the beginning and end of lines respectively. However, because expect is not line oriented, these characters match the beginning and end of the data (as opposed to lines) currently in the expect matching buffer. (Also, see the note below on "system indigestion.")
    


Tcl regular expression syntax:


Expect variables, using global and upvar keywords in Tcl scripts:


Excerpt on Tcl pattern matching from Inguza web site:

2   Expect
The expect suite actually consist just of a few commands: expect, send, spawn and interact and is an extension to TCL.
Before the expect command can be used a program must be spawned, see expect commands below.
expect \
  {match1} {action1} \
  {match2} {action2} \
  {match3} {action3} \
  {match4} {action4}
It is possible that no such output is encountered within the time period defined by the timeout (variable name "timeout" in seconds, default to 2). In this case expect stops waiting and continues with the next command in the script.
You can use '*' to match any characters. You can also match using [] syntax and similar.
expect "\[a-f0-9]"  ; # strongly preferred as \n and similar is not taken as litteral charactesr \ and n.
expect {a-f0-9}     ; # can also be used
A note on \ characters. The pattern matcher translate \x to x but this is done once before the pattern matcher. So you need to type \\n to match n. This is especially important for * and ? characters.
expect "*" ;# match anything (*)
expect "\n" ;# match linefeed
expect "\*" ;# match anything
expect "\\*" ;# match * character
expect "\\\*" ;# match * character
expect "\\\\*" ;# match \ followed by anything
expect "\\\\\*" ;# match \ followed by anything
expect "\\\\\\*" ;# match \ followed * character
The [ character is special to both tcl and the pattern matcher so it is especially messy.
proc xy {} { return "n*w" }
expect "[xy]" ;# match n followed by anything followed by w
expect "\[xy]" ;# match x or y
expect "\\[xy]" ;# match n followed by anything followed by w
expect "\\\[xy]" ;# match [xy]
expect "\\\\[xy]" ;# match \ followed by n followed ...
expect "\\\\\[xy]" ;# match sequence of \ and then x or y.
The expect command can also take flags. The default flag is -gl for glob pattern matching. It can also take the flag -re for regular expression matching.
expect {
  -re "a*" { action_when_a_followed_by_any_a }
  "b*" { action_when_b_followed_by_anything }
  -gl "-re" { action_when_real_dash_r_e }
  eof { action_on_end_of_file }
  timeout { action_on_command_timeout }
  default { action_on_command_timeout_or_eof }
  -re "(abc)*" { action_on_any_number_of_a_b_c }
  -re "-?(0|\[1-9]\[0-9]*)?\\.?\[0-9]*" { action_on_float_or_integer }
}
You can also pass the pattern as a variable.
set v2pats "pat2 act2"
set v3pats "pat3 act3"
expect pat1 act1 $v2pats $v3pats
Observe that the following expect string is wrong as $v2pats and $v3pats is considered as two different arguments. It will try to match $v2pats as a pattern and $v3pats as an action. Instead build up a string and use the -brace flag. You can not use double quotes for that though, unless you use eval and then the -brace flag is not necessary. You also need to protect the pattern and action inside a [list x] or an extra brace if they contain whitespaces.
2.1   Parentheses for feedback
In the previous section, parantheses were used to group subpatterns together. They can also play another role. When a regular expression successfully matches a string each part of the string that matches a paranthensized subpattern is stored in "expect_out(1,string)" the second in "expect_out(2,string)" etc up to "expect_out(9,string)". The entire pattern matched is stored in "expect_out(0,string)". Everthing before the pattern and the pattern matched is stored in "expect_out(buffer)". The last two assignments work in glob pattern too.
"a*((ab)*|b)"
How is this passed to expect_out? It is quite simple. The entire string withing the first parenthesis is stored in 1 (which means up to end of string). The second fount parenthesis is stored in 2. Look for the left parenthesis to determine where the data is put.
2.2   Flags
-re	
-gl	
-nocase	Ignore case. Do not use -nocase with uppercase characters in the pattern as it will never match.
-notransfer	Prevent expect from removing matching characters from the internal buffer. The characters can be matched repeatedly as long as this option is associated with the pattern. It can be abbreviated with "-n" when expect is running interactively.
-brace	Expect normally see the first argument as a pattern to match, but sometimes you want to give a list of patterns and actions to expect. You can then use -brace to expand the list before it is handled by expect.
expect -brace { pat1 act1 pat2 act2 }
This can be useful when building up lists of pattern to match with corresponding actions to do.
-i n	Use an alternative spawn_id. This applies to all patterns after the -i flag.
expect {
 -i $ftp
 "ftp>" "exit"
 eof "exit"
}
You can also expect values from multiple spawned processes at the same time. At most one action can be executed just as expect normally do.
expect {
 -i $ftp "ftp> " { ftp_action }
 -i $shell $prompt { shell_action }
}
There is an input buffer associated with each spawn id. So any output from ftp is kept separate from thta of the shell in the example above. When output appear on terminal it will be mixed, unless you expect one at a time or set log_user 0 and then wrote output explictly using send_user $expect_out(buffer). The process that did not match will keep its buffer until matched by next expect command.
When the expect command match something it record the spawn_id to expect_out(spawn_id) so you can know which process that it matched against.
You can also set the spawn_id definition to a list of spawn_ids.
expect {
  -i "$host1 $host2 $host3" $prompt {
    an_action $expect_out(spawn_id)
  }
  eof exit
  -i $host1 another_pattern {host1_action}
}
This example will do an_action if $prompt is matched agains any of the $hostnr, exit if end of file is matched against same list and do host1_action if matchina another_pattern from host1.
2.3   Special patterns
Note that these patcherns will only match if none of the '-gl', '-re' or '-ex' flags has been used.
eof	Match when end of file is reached.
timeout	Match when the timeout value has been reached.
default	Match when end of file or timeout is reached.
full_buffer	Match when no other pattern match and expect would otherwise throw away part of the input to make room fore more. When this matches, all of the unmatched input is moved to expect_out(buffer).
null	
By default null characters are removed from the buffer before expect matching is done. This can be disabled using the remove_nulls command below. If it is disabled null characters will be matched using this special keyword. Null characters can not be matched inside a pattern as expect first look for null characters and then do pattern matching. If a null character is found the characters before it is skilled. These caracters can be found in expect_out(buffer).
Since the null character is used internally to represent the end of a string unanchored patterns cannot be matched past a null. This is not a problem since null pattern can always be listed last.


Rust programming language

There are two editions of the Rust Programming book. The Rust home page recommends to start by reading the second edition:


^ C programming notes

This section really should be in a more prominent space of this wiki. - TMH

This section contains link to Brian Barto post about Untangling Complex C Declarations. Click here -> C programming notes <- for separate wiki article.

Typedef and type defining function pointers:

CRC types and implementations:

Floating point representation and conversions:


2021-11-03


^ C++ references

This section contains beginning level C++ issues and references. Section here created by need to note some Qt5 related project elements, as Qt is based on C++. First issue is to understand and document how to implement a QDialog object to act as a sensible dialog box, which can post run-time data to a larger Qt based application. The first reference below mentions QDialog built-in class functions exec(), accept() and reject(), which appear to be the means to start and show, and to close out a Qt based dialog box . . .

Per help index in QtCreator 3.2.1:

void QDialog::accept() [virtual slot]
Hides the modal dialog and sets the result code to Accepted.

See also reject() and done().


The Qt method done() performs more significant work and at least in cases of a dialog being shown with a call to exec() the done() method stops dialog event loop execution:

void QDialog::done(int r) [virtual slot]
Closes the dialog and sets its result code to r. If this dialog is shown with exec(), done() causes the local event loop to finish, and exec() to return r.

As with QWidget::close(), done() deletes the dialog if the Qt::WA_DeleteOnClose flag is set. If the dialog is the application's main widget, the application terminates. If the dialog is the last window closed, the QApplication::lastWindowClosed() signal is emitted.

See also accept(), reject(), QApplication::activeWindow(), and QApplication::quit().


So it looks like if we do not call done() then we want to assure that we call exec() only one time during a use session of GWN Unified Tester. - TMH


2019-10-28 Monday: G++ error, "template has C linkage":

2019-10-30 Wednesday: The purposes and use of extern "C" . . .



- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Aboriginal Linux - project now defunct, new project is 'makeroot'

Ok, looks like Robert Landley's Aboriginal Linux project has been superceded by mkroot. Ladnley's newer makeroot project sources are available at GitHub:



Having trouble carrying out the basic build of Aboriginal Linux with armv6l as target . . .


   .
   .
   .

Confirmed e2fsprogs-1.42.13.tar.gz
Confirmed zlib-1.2.7.tar.bz2
Confirmed squashfs-4.2.tar.gz
=== Got all source.

real    0m2.240s
user    0m1.188s
sys     0m0.176s
=== toybox (host host-tools)
Snapshot 'toybox'...
scripts/genconfig.sh
cc -o kconfig/conf kconfig/conf.c kconfig/zconf.tab.c -DKBUILD_NO_NLS=1 \
                -DPROJECT_NAME=\"ToyBox\"
kconfig/conf -D /dev/null Config.in > /dev/null
scripts/make.sh
Generate headers from toys/*/*.c...
generated/newtoys.h Library probe.......
Make generated/config.h from .config.
generated/flags.h generated/globals.h generated/help.h
Compile toybox................................................................................................................................................................generated/obj/nsenter.o: In function `unshare_main':
nsenter.c:(.text.unshare_main+0x152): undefined reference to `setns'
collect2: error: ld returned 1 exit status
make: *** [toybox] Error 1

Exiting due to errors (host host-tools toybox)


Robert Landley also has a presence on www.patreon.com/landley, where he talks about the over-arching goals in his programming and software systems level work.



Linux From Scratch (Separate Article)

Linux From Scratch Book 8.1 - Build and Notes



QEMU Emulator

Overview

Notes on QEMU, an emulator which can help with building and configuring Linux systems to run on embedded computers and development boards. Ted noting 2017-09-08 that to compile today's latest QEMU source, a 2.10.x release, needed to install Debian stretch packages pkg-config, libglib2.0-dev, dhautoreconf. Here are some links to downloading QEMU project sources, a manual for using QEMU, and an article about emulating a RaspberryPi system by using QEMU:


References:

QEMU to emulate Arm on Linux . . .

How to avoid "raw image format" warning . . .


So got QEMU 2.10.0 sources and dependencies installed, ran `configure` and `make` steps, and let the build process run for an hour or two. But in the end could not find any `qemu` executable. Why is the emulator itself apparently missing? Building latest QEMU under Linux . . .


So I'm following the above article author's typical build steps, and run into this message part-way down those steps, at the step of calling `make`:

user@host-6:~/Downloads/qemu/qemu-2.10.0/bin/debug/native$ make
Makefile:21: *** This is an out of tree build but your source tree (/home/veris/Downloads/qemu/qemu-2.10.0) seems to have been used for an in-tree build. You can fix this by running "make distclean && rm -rf *-linux-user *-softmmu" in your source tree.  Stop.
user@host-6:~/Downloads/qemu/qemu-2.10.0/bin/debug/native$


Ok interesting, I know that QEMU is a complicated project with a complex build process, but clearly I don't know what I'm doing. Following the above 'distclean' command given in the error message from QEMU's makefile, I'm now able to begin an "out of tree" build as described in the "Building QEMU" article at qemu.org just above. Tired already however of QEMU project builds taking more than an hour to complete. Here is one of many articles describing how to invoke `make` to build only limited parts of QEMU project, for example just the pieces needed to emulate ARM type systems:



Ted to test this type of build soon . . .

On a different note, QEMU build has completed and the stock RaspberryPi Debian "Stretch" image is coming up. Needed to install a VNC client to interact with the emulated RaspberryPi operating and software, stored in the downloaded .img file from Rpi's web site. Here's a link to a forum post which clued Ted into Remmina VNC client:



- 2017-11-21 Tuesday -

The version of qemu which installed from Debian's package list didn't seem to work. It's been some weeks now since trying that instance, but qemu 2.10.0 works to bring up a command line image built for RaspberryPi. Here are the versions of the two qemu instances:

Figure x - locating qemu instances, determining their versions


user@localhost:~$ which qemu
/usr/bin/qemu

user@localhost:~$ /usr/bin/qemu --version
QEMU emulator version 1.1.2 (Debian 1.1.2+dfsg-6+deb7u23), Copyright (c) 2003-2008 Fabrice Bellard

user@localhost:~$ ls /opt/qemu
qemu-system-arm

user@localhost:~$ ls -l /opt/qemu/qemu-system-arm
lrwxrwxrwx 1 root root 83 Sep 12 16:37 /opt/qemu/qemu-system-arm -> /home/user/Downloads/qemu/qemu-2.10.0/bin/debug/native/arm-softmmu/qemu-system-arm

user@localhost:~$ /opt/qemu/qemu-system-arm --version
QEMU emulator version 2.10.0
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

user@localhost:~


- 2017-11-22 Wednesday -

Yesterday could not bring up raspbian image in qemu, same image which booted and appeared, and permitted shell based login and shell use a month ago on the local host. Looking at a new on-line reference for running raspbian images in qemu:


  *  https://ownyourbits.com/2017/02/06/raspbian-on-qemu-with-network-access/


This above article looks really interesting, appears to go to a second installment of the article where the developers there are building some kind of cloud-based or cloud involved web, database, mail and PHP servers. But on my end having trouble with a kernel panic this morning when invoking qemu-system-arm with a large set of options . . . ok, just located a different invocation of qemu-system-arm version 2.10.0, noting here in following code figure:


Figure x - emulate-rpi shell script


#!/bin/bash
# Starts raspberry pi image in configuration mode


##----------------------------------------------------------------------
## - SECTION - script variables
##----------------------------------------------------------------------

EMULATOR=/home/veris/Downloads/qemu/qemu-2.10.0/bin/debug/native/arm-softmmu/qemu-system-arm



##----------------------------------------------------------------------
## - SECTION - original emulator invocation, everything hard-coded
##----------------------------------------------------------------------

# qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda rpi.img

# qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda rpi.img



##----------------------------------------------------------------------
## - SECTION - invocation, emulator as variable:
##----------------------------------------------------------------------

# ${EMULATOR} -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda rpi.img

# Start RaspberryPi in fully functional mode:
${EMULATOR} -kernel ./qemu-rpi-kernel/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda rpi.img






## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
## 2017-09-08 FRI - this script copied from http://embedonix.com/articles/linux/emulating-raspberry-pi-on-linux/
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

exit 0


The final token rpi.img points to localhost:/home/user/Downloads/raspberrypi/2017-08-16-raspbian-stretch-lite.img which we downloaded from https://www.raspberrypi.org/downloads/raspbian/. The working qemu invocation doesn't open qemu's native window, but puts to standard out that is the same shell in which qemu invoked, a couple of lines of output from the booting kernel image. Then using remmina we connect via "VNC server running on ::1:5900".

In summary shell script in latest figure successfully invokes qemu-system-arm 2.10.0 built from sources about August 2017, and boots up Raspbian Stretch lite image and kernel named kernel-qemu-4.4.34-jessie. Next figure is screenshot showing successful login, and last login message . . . though emulation was and is very slow on host system!


Figure x - emulated raspbian stretch lite screenshot, Remmina window

media:z.png


A shorter script to start raspberrypi kernel plus image, running in QEMU:

#!/bin/bash

qemu-system-arm -kernel ./kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ./2017-09-07-raspbian-stretch-lite.img -redir tcp:5022::22 -no-reboot

exit 0


- 2017-12-12 WED -

An excerpt from qemu.org/download#source, on how to download, configure and compile latest QEMU sources:

"
Build instructions

To download and build QEMU 2.11.0-rc5:

wget https://download.qemu.org/qemu-2.11.0-rc5.tar.xz
tar xvJf qemu-2.11.0-rc5.tar.xz
cd qemu-2.11.0-rc5
./configure
make

To download and build QEMU from git:

git clone git://git.qemu.org/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure
make

The latest development happens on the master branch. The stable trees are located in branches named stable-X.YY branch, where X.YY is the release version.
"



Embedded Linux Notes, focus on Rpi Linux Kernel Config

2018-11-09 - Ted to create embedded work article on this wiki installation, so noting this Friday evening. - TMH

Ted looking into a couple of areas of embedded Linux, including custom kernel config for Rpi, the open source Buildroot project, Tiny-Core Linux and FreeRTOS. Ted also stashing some links to embedded studies notes on this wiki here:



FreeRTOS Notes (Separate Article)

FreeRTOS notes

Ted to move this link to nn wiki article named 'FreeRTOS'. For now however Ted noting an openssl library named Wolfssl:


NOTE 2017-12-10: this section 'embedded operating systems' to become a shorter list of major significant embedded OS's. As of 2017 winter Ted studying couple distributions of embedded Linux and FreeRTOS.



Bootloader U-Boot

Ted noting after several custom Linux-for-Rpi kernel build attempts that Raspberry Pi board uses a bootloader typically other than GRUB, commonly uses U-boot. A first tutorial . . . also running into U-boot sources makefile calling a project script which fails to find gcc-6, though /usr/bin/gcc is a symlink to that newer gcc . . .


After installing manually some twenty or thirty gcc-6-arm-linux and gcc-6, gcc-7 files, and installing more modern version of build-essentials package from Ubuntu release codenamed 'bionic', can now build u-boot. Tail of messages from build process . . .

  CC      lib/strto.o
  CC      lib/strmhz.o
  LD      lib/built-in.o
  CC      examples/standalone/stubs.o
  CC       CC      lib/strto.o
  CC      lib/strmhz.o
  LD      lib/built-in.o
  CC      examples/standalone/stubs.o
  CC      examples/standalone/hello_world.o
  LD      examples/standalone/libstubs.o
  LD      examples/standalone/hello_world
  OBJCOPY examples/standalone/hello_world.srec
  OBJCOPY examples/standalone/hello_world.bin
  LD      u-boot
  OBJCOPY u-boot.srec
  OBJCOPY u-boot-nodtb.bin
  SYM     u-boot.sym
  COPY    u-boot.bin
  CFGCHK  u-boot.cfg
ted@rangari:/var/local/ted/projects/u-boot$ examples/standalone/hello_world.o
  LD      examples/standalone/libstubs.o
  LD      examples/standalone/hello_world
  OBJCOPY examples/standalone/hello_world.srec
  OBJCOPY examples/standalone/hello_world.bin
  LD      u-boot
  OBJCOPY u-boot.srec
  OBJCOPY u-boot-nodtb.bin
  SYM     u-boot.sym
  COPY    u-boot.bin
  CFGCHK  u-boot.cfg
ted@rangari:/var/local/ted/projects/u-boot$



LPC11U6x Development Board



avr-libc

./avr-libc-1.8.0/include/avr/iom8.h:634:#if !defined(__AVR_LIBC_DEPRECATED_ENABLE__)
./avr-libc-1.8.0/include/avr/iom8.h:657:#endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */

 .
 .
 .

633 /* Deprecated items */
634 #if !defined(__AVR_LIBC_DEPRECATED_ENABLE__)
635 
636 #pragma GCC system_header
637 
638 #pragma GCC poison SIG_INTERRUPT0
639 #pragma GCC poison SIG_INTERRUPT1
640 #pragma GCC poison SIG_OUTPUT_COMPARE2
641 #pragma GCC poison SIG_OVERFLOW2
642 #pragma GCC poison SIG_INPUT_CAPTURE1
643 #pragma GCC poison SIG_OUTPUT_COMPARE1A
644 #pragma GCC poison SIG_OUTPUT_COMPARE1B
645 #pragma GCC poison SIG_OVERFLOW1
646 #pragma GCC poison SIG_OVERFLOW0
647 #pragma GCC poison SIG_SPI
648 #pragma GCC poison SIG_UART_RECV
649 #pragma GCC poison SIG_UART_DATA
650 #pragma GCC poison SIG_UART_TRANS
651 #pragma GCC poison SIG_ADC
652 #pragma GCC poison SIG_EEPROM_READY
653 #pragma GCC poison SIG_COMPARATOR
654 #pragma GCC poison SIG_2WIRE_SERIAL
655 #pragma GCC poison SIG_SPM_READY
656 
657 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */


EWAVR, IAR Workbench, Keil compiler notes

2019-01-03 THU


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Yocto References


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Mobile App Development On Linux

- 2018-10-12 FRI -

- 2018-01-15 MON -


Android programming


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Toradex embedded ARM computers

Search for Toradex asymmetric core 'system on a module' board:

It looks like Colibri iMX7S and iMX7D are two-core and three-core processor based modules, with asymmetric cores to handle different kinds of data processing more efficiently,

  • Toradex PN: 00391100 - Colibri iMX7 Dual 1GB | V1.1A
  • Toradex PN: 01351101 - Iris carrier board


Looks like the Iris carrier board is a smaller form, less featured but more economical carrier board to support use of iMX7D/S systems on modules:

Software to install on this module:


Software projects and stacks to run on asymmetric core systems:



Build U-boot and Linux kernel from source



Arduino Development Kit and Documentation

Looking into Arduino boards as a means to configure an I2C protocol programmer . . .

Arduino Uno development board datasheet:

Arduino IDE software download:

Getting started:


A more specifically purposed interface and or programming board called 'Aardvark' . . .


FreeRTOS on Arduino development boards . . .


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Electronics

Transistor, FETs, Op-amps . . .

Photovoltaics . . .

Analog computers


tools and hardware


measurement equipment

2020-10-27

Not used but I have this 4 channel 100mhz scope that i like a lot. $500 with built-in i2c/spi/uart/canbus decoding https://siglentna.com/product/sds1104x-e-100-mhz/ https://www.youtube.com/watch?v=Kay4Jk2DHuE https://www.youtube.com/watch?v=Cwbwq-AKbPc SiglentSiglent SDS1104X-E (100 MHz) | Siglent Bandwidth: 100 MHz Channels: 4 Real time sampling rate: 1 GSa/s (Total of 2 A-to-D converters) Maximum capture rate: (100,000 in Normal mode, 400,000 in Sequence mode) Memory depth: 14 Mpts Bode Plot function (Requires SIGLENT SDG X or SAG1021 function generator) Search / Navigate functions Web-Based browser remote control Optional Wi-Fi dongle Optional MSO capability YouTubeYouTube | EEVblog EEVblog #1042 - Siglent's $499 SDS1104X-E 4CH Oscilloscope Teardown


Modbus protocol


Mathematica

Mathematical symbols:


Important mathematical topics:


^ Books on mathematics

Books on mathematics to explore:

    • "Lectures and Problems: A Gift to Young Mathematicians (MSRI Mathematical Circles Library)
    by V. I. Arnold (Author)" On-line lecture notes:
    • An excellent book on the FFT is: E. Oran Brigham, The Fast Fourier Transform, PrenticeHall, Englewood Cliffs, NJ, 1974.


CRC, RSA and other mathematical areas . . .


Applied math . . .

Fractal geometry and math . . .


Quantum computing and Shor's algorithm . . .

---

---

^ Fast Fourier Transform FFT

Other mathematical topics:


Literature

Liturature and Authors of the World . . .


Other Things To Explore

Human health:



Here are some technical and science topics to explore, perhaps on a rainy day . . .

Machine learning:


Containers and DevOps:


3D Graphics, mathematics behind and programming:


Creative Commons and other Open Source licensed materials:


Dublin Core:

Zdyes mnogo informatsia:


^ DYI laptop by Olimex


edit point

- - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  


Javascript and JSON:


PC Video, Bochs VBE Extensions:


Perl programming related:


Unix and Linux tools, software and building blocks:


GNU Make book on-line . . .


Webvanta:


Virtual server image creation:


Github Users Sharing Their Work:


edit point

- - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  - - - - -  

Cryptography Scientists and Articles:


ARM microcontroller related:


Operating system level programming:


Gputils PIC programming tools, W3C Jigsaw validator referenced at end of page




music and lyrics

---

https://www.wish.com/product/59b6c3c68f545e607c2adf30?hide_login_modal=true&from_ad=goog_shopping&_display_country_code=US&_force_currency_code=USD&pid=googleadwords_int&c=%7BcampaignId%7D&ad_cid=59b6c3c68f545e607c2adf30&ad_cc=US&ad_curr=USD&ad_price=48.00&campaign_id=7203534630&gclid=EAIaIQobChMIoZKHvqS06AIVEh-tBh2I6wv-EAQYASABEgKuAvD_BwE&share=web


plant and animal references

Searching Google and Amazon for bottom heat sources for seed germination:

" Seedfactor MET certified Seedling Heat Mat, Seedfactor Waterproof Durable Germination Station Heat Mat, Warm Hydroponic Heating Pad for Indoor Home Gardening Seed Starter(10" x 20") "

Aloe references . . .

2019-04-10 Cork trees . . .

Invasive plants . . .


^ Cacti


^ Agavacae


^ Nursurias

      Excerpt from this page: "Planting Instructions 1. Cacti, agaves, and tap-rooted succulents (Aloinopsis, Titanopsis, Nananthus) should be transplanted bare-root. Let the soil in the pot dry out for a few days. Then remove the pot and gently loosen the soil so it falls away from the roots. Trim off any broken roots. Bare root plants should then be planted into a shallow hole. Spread out the roots evenly and sprinkle the soil into the hole until full. The base of the plant should rest on top of the soil. Mulch with a 1⁄2”-1” thick layer of pea-sized gravel around the base of the plant to protect it from contact with soggy soil over the winter months. (See planting diagram on page 12 of our Planting Guide.)

    TERMINOLOGY: https://en.wikipedia.org/wiki/Cleistogamy


- 2018-08-06 Monday -

Wildflowers . . .

Iris and Bulbs . . .


Personal project notes . . .


2020-10-21


^ plant pathology

https://www.apsnet.org/publications/phytopathology/backissues/Documents/1971Articles/Phyto61n08_926.PDF


^ Technology History and Evolution

Moore's Law and CMOS scaling ways:

^ Astronomy

Physics topics relating to astronomy:

Black holes and some of their key features as we know them so far:

Black holes and General Relativity . . .



^ Food and Cooking

Turkish traditional dishes, borek . . .

Search also for simit, imam bayidi, kafta kabab



^ References

Neela Nurseries wiki notes


Reproducible builds, byte-wise reproducible software:


Server Side services . . .


Coding standards:


C and C++:


Couple of MediaWiki and publishing issues to look into, which came up during wiki configuration:


Some Hindi language and UTF-8 encoding references, to be factored to a dedicated wiki page later:


Linux programs and utilities:


Graphics Servers:


Computer hardware and firmware:


QEMU


I2C

Access iPhone via Linux


^ End of page

 
 

- - - top of page - - -