Today I came across Model Thinking Full Course. It’s 11 hours of lectures about formal models. What they are, how to use them, etc. Kind of interesting but I don’t have that much time to give it.
Category Archives: Learning
The jank programming language
Today I learned about the jank programming language. It’s Clojure, but on the metal, not the JVM.
HTML DOM Heading Hierarchy
This is just a note for Future John. I was chatting to a friend on IRC who wanted to know how to extract the heading hierarchy from a HTML document. I wrote this code as a proof of concept implementation for him.
Old Book Teardown #7: Engineering Electronics with Industrial Applications and Control (1957)
This post is part of my video blog and you can find more information about this video on this show’s homepage which is here.
You can support this channel on Patreon: patreon.com/JohnElliotV
Silly Job Title: Electron Enchanter
This video is part of the Old Book Teardown feature of my video blog.
In this video I tear down Engineering Electronics with Industrial Applications and Control by John D. Ryder. This book was published in the USA in 1957. The book comprises 666 pages and is chock full of schematics with old vacuum tubes and photos from old Cathode Ray Oscilloscopes (CROs).
Thanks very much for watching! And please remember to hit like and subscribe!
Following is a product I use picked at random from my collection which may appear in my videos. Clicking through on this to find and click on the green affiliate links before purchasing from eBay or AliExpress is a great way to support the channel at no cost to you. Thanks!
Yum Cha Orange Telescopic Magnetic Pickup Tool |
Let’s go shopping!
CPUlator Computer System Simulator
Today I learned about CPUlator Computer System Simulator while watching Assembly Language Programming with ARM – Full Tutorial for Beginners.
And… here we are
This week what we have all been fearing has happened to me: GitHub Copilot generated code for me which seems to meet all the requirements but which I don’t understand very much at all.
To date GitHub Copilot for me has just been mostly a useful auto-complete tool and it hasn’t given me any code which I didn’t understand. But with this code (to control two different hardware timers/counters on my Arduino) I don’t really understand it at all. I have passing familiarity with some of the registers used because I saw them named in the datasheet (which I have only skimmed so far) but basically I don’t understand how this works.
It is tempting to ignore the fact that I don’t fully understand and move on, but there’s a part of me which wants to return to the datasheet so I can understand what every assignment GitHub Copilot offered actually does and what every value it calculated implies. Is that the best use of my time?
ARM Cortex-M0
Controlling Arduino Uno with Serial commands
@kline helped me with Phase 1 of my Crustacean Chirpy Chip Challenge project, which I have completed (sort of). I got the programming done but I didn’t do all the reading (yet).
Note to self: My Arduino Uno knockoff identifies itself as a “QinHeng Electronics USB Serial” USB device.
This is my code:
enum state { OFF, ON, FLASH }; enum state state = OFF; int blink_pin = 13; void setup() { pinMode( blink_pin, OUTPUT ); Serial.begin( 9600 ); } void loop() { if ( Serial.available() > 0 ) { read_command(); } switch ( state ) { case ON : digitalWrite( blink_pin, HIGH ); break; case OFF : digitalWrite( blink_pin, LOW ); break; case FLASH : int pin = digitalRead( blink_pin ); digitalWrite( blink_pin, !pin ); delay( 500 ); digitalWrite( blink_pin, pin ); delay( 500 ); break; } } void read_command() { String command = Serial.readString(); command.trim(); command.toLowerCase(); Serial.print( "Command: " ); Serial.println( command ); if ( command == "on" ) { state = ON; } else if ( command == "off" ) { state = OFF; } else if ( command == "flash" ) { state = FLASH; } else { Serial.println( "Unknown command." ); } }
The code which would actually implement the spec, as given:
void read_command() { char c = Serial.read(); switch ( c ) { case 'a' : state = ON; break; case 's' : state = OFF; break; } }
Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C
Today I learned about Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C (Fourth Edition) by Yifeng Zhu while watching Lecture 9: Interrupts on YouTube. The full list of associated lectures are here: Short Lectures.
Data Analysis with Python for Excel Users – Full Course
Today I learned a little about Python, Jupyter, and Pandas in this video: Data Analysis with Python for Excel Users – Full Course.