Programming Linux
Quick search
Navigation
Courses
Courses Overview
Slide Material
Python Programming
The C Programming Language
C++: TODO List
C++: Miscellaneous Live-Hacking
C++
The New C++ (11-…)
Design Patterns With C++
C++ Code
C++ Exercises
CMake
Linux
Is Software A Craft? Software Is A Craft! ⟶
Clean Code
Unit Testing With
googletest
Linux Kernel Driver Development
Generated Topic Graph
How To Book
Log Of Past Courses
About
Myself: Contact, Impressum, …
This Site
Blog
Posts
Generated Topic Graph
¶
cluster_fh2021
WS2023/24: Group Project - Tasks
cluster_linux
Linux
cluster_linux_kernel
Linux Kernel Driver Development
cluster_linux_ssh
SSH: Secure Shell
cluster_linux_ssh_exercises
Exercises: SSH
cluster_linux_basics
Linux Basics
cluster_linux_basics_intro
Introduction: Concepts and Terminology
cluster_linux_basics_archiving_compression
Archiving and Compression
cluster_linux_basics_shell
The Shell (Bash - “Bourne Again Shell”)
cluster_linux_basics_shell_exercises
The Shell - Exercises
cluster_linux_basics_shell_exercises_ls
Exercises: The ls Command
cluster_linux_basics_shell_exercises_cp_mv_mkdir_rm
Exercises: Create/Copy/Move/Remove
cluster_linux_basics_permissions
File System Permissions
cluster_linux_basics_permissions_exercises
Exercises: File System Permissions
cluster_linux_basics_io_redir_pipes
I/O Redirection And Pipes
cluster_linux_basics_exercises
Exercises/Exams: Linux Basics
cluster_linux_basics_text_tools
Tools: Inspecting Text Files
cluster_linux_toolchain
Toolchain, And Cross Development
cluster_linux_toolchain_exercises
Exercises: Toolchain
cluster_linux_toolchain_raspi
Case Study: Raspberry Toolchain
cluster_linux_toolchain_cross
Cross Development
cluster_linux_hardware
Linux Hardware Interfaces
cluster_linux_hardware_can
CAN Bus With Linux And Python
cluster_linux_sysprog
Linux Systems Programming
cluster_linux_sysprog_blocking_io
Blocking I/O: What Is That?
cluster_linux_sysprog_fileio
File I/O
cluster_linux_sysprog_scheduling
Scheduling
cluster_linux_sysprog_posix_threads
POSIX Threads
cluster_linux_sysprog_intro_hw
Introductory Live Hacking, Hardware-Wise (sysfs GPIO)
cluster_linux_sysprog_process
Processes
cluster_linux_sysprog_basics
Linux Systems Programming: Basics
cluster_clean_code
Is Software A Craft? Software Is A Craft! ⟶ Clean Code
cluster_clean_code_features
Features
cluster_clean_code_bugs
Bugs
cluster_clean_code_refactoring
Refactoring
cluster_unittest
Unit Testing With googletest
cluster_cmake
CMake
cluster_cmake_intro
CMake: Introduction
cluster_cmake_advanced
CMake: Advanced Topics
cluster_cmake_advanced_language
The Language
cluster_ecproposal
Graph
cluster_ecproposal_ec2
Embedded Computing 2
cluster_ecproposal_ec2_python
Python
cluster_ecproposal_ec1
Embedded Computing 1
cluster_ecproposal_ec1_linux
Linux
cluster_ecproposal_ec1_mt
Multithreading
cluster_ecproposal_ec1_cxx
C++
cluster_ece19
ECE19: Exercises and Custom Topics
cluster_python
Python Programming
cluster_python_basics
Python: The Language Fundamentals
cluster_python_exercises
Exercises
cluster_python_exercises_legacy
Exercises (Legacy)
cluster_python_exercises_csv
CSV and Databases
cluster_python_exercises_sensors
Sensors, And Data Acquisition (Exercise Series)
cluster_python_exercises_herdt
Exercises (External)
cluster_python_exercises_userdb
User Database (Exercise Series)
cluster_python_advanced
Python: More Language Features
cluster_python_advanced_oo
Object Oriented Programming
cluster_python_advanced_multithreading
Multithreading
cluster_python_db
Databases
cluster_python_misc
Python: Miscellaneous Topics
cluster_python_misc_ai
Machine Learning, Artificial Intelligence
cluster_python_misc_pandas
Pandas
cluster_python_drafts
Python: Draft Topics
cluster_python_swdev
Python: Project/Package Management
cluster_python_swdev_pytest
PyTest
cluster_cxx11
The New C++ (11-…)
cluster_cxx11_functions_functions
Functions, Functions
cluster_cxx11_smart_pointers
Smart Pointers (std::unique_ptr, std::shared_ptr)
cluster_cxx11_embedded_problems
Embedded Problems? Code Bloat? Type Erasure? Solutions?
cluster_cxx11_miscellaneous
Miscellaneous
cluster_cxx11_new_language_features
New Language Features
cluster_cxx11_new_language_features_lambda
Lambda
cluster_cxx11_new_language_features_coroutines
Coroutines
cluster_cxx11_new_language_features_concepts
Concepts
cluster_cxx11_new_language_features_move_pf
Move Semantics, Rvalue References
cluster_cxx11_new_language_features_ranges
Ranges
cluster_cxx11_new_language_features_brace_initialization
Brace Initialization (Uniform Initialization)
cluster_cxx11_multithreading
Multithreading
cluster_cxx11_introduction
Introduction
cluster_cxx11_exercises
Exercises
cluster_cxx03
C++
cluster_cxx03_inheritance_oo
Inheritance And Object Oriented Design
cluster_cxx03_functions_and_methods
Functions and Methods
cluster_cxx03_data_encapsulation
Data Encapsulation
cluster_cxx03_stl
Standard Template Library
cluster_cxx03_stl_associative_containers
Associative Containers
cluster_cxx03_stl_algorithm
Algorithms
cluster_cxx03_stl_sequential_containers
Sequential Containers
cluster_cxx03_stl_allocator
Allocators
cluster_cxx03_stl_exercises
STL: Exercises
cluster_cxx03_stl_exercises_reverse_string
Exercise: Reverse A String
cluster_cxx03_templates
C++ Template Basics
cluster_cxx03_exceptions
Exceptions
cluster_cxx03_standard_library_miscellanea
The Standard Library: Miscellaneous Topics
cluster_cxx03_exercises_userdb
Exercises: User Database
cluster_cxx03_exercises_misc
Exercises: Miscellaneous
cluster_cxx03_dynamic_memory
Dynamic Memory Allocation, Resource Management
cluster_c
The C Programming Language
cluster_c_program_sanity
Program Sanity
cluster_c_pointers_and_arrays
Pointers and Arrays
cluster_c_functions_and_program_structure
Functions and Program Structure
cluster_c_types_operators_expressions
Types, Operators, Expressions
cluster_c_introduction
Introduction
cluster_c_structures
Structures
cluster_c_performance
Performance
cluster_c_program_flow
Program Flow
cluster_c_profiling
Profiling
cluster_c_memory
Memory
cluster_c_advanced_language_features
Advanced Language Features
cluster_project_xxx
I2S Audio for a Kontron SMARC Module
cluster_cxx
C++: Miscellaneous Live-Hacking
cluster_cxx_exercises
C++ Exercises
cluster_cxx_exercises_stl
C++ Exercises: Standard Template Library
cluster_cxx_exercises_stl_sensor_repository
Exercises: Sensor Repository (std::map)
cluster_cxx_exercises_design_patterns
Exercises: Design Patterns
cluster_cxx_exercises_design_patterns_solutions
Solutions
cluster_cxx_exercises_fh_sensor_first_try
FH Sensor OO (First Try)
cluster_cxx_design_patterns
Design Patterns With C++
fh2021_mqtt_tkinter
Python MQTT Subscriber
fh2021_sensor_w1
(DONE) Onewire Sensor
fh2021_sensor_interface
(DONE) Sensor Interface
fh2021_sensor_w1->fh2021_sensor_interface
fh2021_boiling_pot_display
Boiling Pot: Display, And Status Reporting
fh2021_boiling_pot
(DONE) Boiling Pot (The Beginning)
fh2021_boiling_pot_display->fh2021_boiling_pot
fh2021_display_infrastructure
Display Interface/Infrastructure
fh2021_boiling_pot_display->fh2021_display_infrastructure
fh2021_boiling_pot->fh2021_sensor_interface
fh2021_switch_interface
(DONE) Switch Interface
fh2021_boiling_pot->fh2021_switch_interface
fh2021_pwm_display
Temperature Display: LED Via A PWM Controller
fh2021_display_infrastructure->fh2021_pwm_display
fh2021_display_infrastructure->fh2021_switch_interface
fh2021_boiling_pot_full_integration
Boiling Pot: Full Integration (Display And IoT)
fh2021_boiling_pot_full_integration->fh2021_boiling_pot_display
fh2021_boiling_pot_full_integration->fh2021_display_infrastructure
fh2021_boiling_pot_basic_integration
Boiling Pot: Basic Integration
fh2021_boiling_pot_full_integration->fh2021_boiling_pot_basic_integration
fh2021_datalogger_mqtt_sink
Data Logger: MQTT Sink
fh2021_boiling_pot_full_integration->fh2021_datalogger_mqtt_sink
fh2021_boiling_pot_basic_integration->fh2021_sensor_w1
fh2021_boiling_pot_basic_integration->fh2021_boiling_pot
fh2021_sysfs_gpio_switch
SysFS GPIO Switch
fh2021_boiling_pot_basic_integration->fh2021_sysfs_gpio_switch
fh2021_datalogger
(DONE) Data Logger
fh2021_datalogger_mqtt_sink->fh2021_datalogger
fh2021_datalogger_integration
Data Logger: Integration
fh2021_datalogger_integration->fh2021_datalogger_mqtt_sink
fh2021_datalogger_integration->fh2021_datalogger
fh2021_datalogger_csv_sink
Data Logger: CSV Sink
fh2021_datalogger_integration->fh2021_datalogger_csv_sink
fh2021_datalogger_csv_sink->fh2021_datalogger
fh2021_libgpiod_switch
libgpiod Switch
fh2021_libgpiod_switch->fh2021_switch_interface
fh2021_sysfs_gpio_switch->fh2021_switch_interface
linux_kernel_mutex_coding
Coding: Fix Race Condition (Mutex)
linux_kernel_multiple_devices
Coding: Multiple Devices
linux_kernel_mutex_coding->linux_kernel_multiple_devices
linux_kernel_mutex
Mutex (and RT Mutex)
linux_kernel_mutex_coding->linux_kernel_mutex
linux_kernel_cdev_refactoring
Coding: Refactoring
linux_kernel_multiple_devices->linux_kernel_cdev_refactoring
linux_kernel_process_vs_atomic
Process vs.Atomic Context
linux_kernel_mutex->linux_kernel_process_vs_atomic
linux_kernel_usermem
Accessing Userspace Memory
linux_kernel_workqueue
Workqueue
linux_kernel_usermem->linux_kernel_workqueue
linux_kernel_workqueue->linux_kernel_process_vs_atomic
linux_kernel_timer_coding
Coding: Timed Event
linux_kernel_workqueue->linux_kernel_timer_coding
linux_kernel_modules_hello_world
Module Loading, Hello World
linux_kernel_fedora_module_build
Fedora: Building External Kernel Modules
linux_kernel_modules_hello_world->linux_kernel_fedora_module_build
linux_kernel_fedora_kernel_build
Fedora: Building the Kernel
linux_kernel_fedora_module_build->linux_kernel_fedora_kernel_build
linux_kernel_cdev_auto
Modern Character Devices
linux_kernel_cdev_manual
Character Device Basics
linux_kernel_cdev_auto->linux_kernel_cdev_manual
linux_kernel_cdev_manual->linux_kernel_modules_hello_world
linux_kernel_interrupt
Interrupts
linux_kernel_interrupt->linux_kernel_process_vs_atomic
linux_kernel_kmalloc
Dynamic Memory: kmalloc()
linux_kernel_kmalloc->linux_kernel_process_vs_atomic
linux_kernel_spinlock
Spinlock (vs. Mutex)
linux_kernel_spinlock->linux_kernel_process_vs_atomic
linux_kernel_iomemory
IO Memory
linux_kernel_iomemory->linux_kernel_modules_hello_world
linux_kernel_interrupt_coding
Coding: Raspi GPIO Interrupts
linux_kernel_interrupt_coding->linux_kernel_mutex_coding
linux_kernel_interrupt_coding->linux_kernel_interrupt
linux_kernel_raspi_kernel_build
Raspberry Pi: Building the Kernel
linux_kernel_interrupt_coding->linux_kernel_raspi_kernel_build
linux_kernel_cdev_first_functionality
Coding: First Functionality
linux_kernel_cdev_refactoring->linux_kernel_cdev_first_functionality
linux_kernel_cdev_first_functionality->linux_kernel_kmalloc
linux_kernel_list
Doubly Linked Lists
linux_kernel_cdev_first_functionality->linux_kernel_list
linux_kernel_cdev_file_operations
File Operations on Character Devices
linux_kernel_cdev_first_functionality->linux_kernel_cdev_file_operations
linux_kernel_pci
PCI
linux_kernel_pci->linux_kernel_interrupt
linux_kernel_pci->linux_kernel_iomemory
linux_kernel_dma
DMA
linux_kernel_pci->linux_kernel_dma
linux_kernel_dma->linux_kernel_kmalloc
linux_kernel_spinlock_coding
Coding: Fix Sleep While Atomic
linux_kernel_spinlock_coding->linux_kernel_spinlock
linux_kernel_spinlock_coding->linux_kernel_interrupt_coding
linux_kernel_cdev_file_operations->linux_kernel_cdev_auto
linux_kernel_stub_sysprog_dup
dup(), fork(), and Reference Counting (Stub)
linux_kernel_cdev_file_operations->linux_kernel_stub_sysprog_dup
linux_kernel_timer
Timer Management
linux_kernel_timer->linux_kernel_process_vs_atomic
linux_kernel_timer_coding->linux_kernel_spinlock_coding
linux_kernel_timer_coding->linux_kernel_timer
linux_kernel_netdev
Network Devices
linux_kernel_netdev->linux_kernel_interrupt
linux_kernel_netdev->linux_kernel_dma
linux_kernel_waitqueue
Waiting for Something
linux_kernel_waitqueue->linux_kernel_usermem
linux_kernel_waitqueue->linux_kernel_cdev_file_operations
linux_ssh_key_pair
SSH: Public Key Authentication
linux_ssh_basics
SSH: Basics
linux_ssh_key_pair->linux_ssh_basics
linux_basics_intro_login
Login? What Is That?
linux_ssh_key_pair->linux_basics_intro_login
linux_ssh_scp
SSH: Secure Copy (scp)
linux_ssh_scp->linux_ssh_basics
linux_ssh_basics->linux_basics_intro_login
linux_ssh_links
SSH: Links
linux_ssh_portforwarding
SSH: Port Forwarding
linux_ssh_portforwarding->linux_ssh_basics
linux_ssh_sshfs
SSH File System (sshfs)
linux_ssh_sshfs->linux_ssh_basics
linux_ssh_exercises_copy_file
Exercise: Copy a File To Remote Machine, And Verify
linux_ssh_exercises_copy_file->linux_ssh_key_pair
linux_ssh_exercises_copy_file->linux_ssh_scp
linux_ssh_exercises_copy_file->linux_ssh_basics
linux_ssh_exercises_pubkey
Exercise: Create SSH Key Pair
linux_ssh_exercises_copy_file->linux_ssh_exercises_pubkey
linux_ssh_exercises_pubkey->linux_ssh_key_pair
linux_ssh_exercises_copy_tree
Exercise: Copy a Tree To Remote Machine (And Adjust Permissions)
linux_ssh_exercises_copy_tree->linux_ssh_key_pair
linux_ssh_exercises_copy_tree->linux_ssh_scp
linux_ssh_exercises_copy_tree->linux_ssh_basics
linux_ssh_exercises_copy_tree->linux_ssh_exercises_copy_file
linux_ssh_exercises_copy_tree->linux_ssh_exercises_pubkey
linux_basics_intro_process_tree
Process Hierarchy (Parent, Child Process)
linux_basics_intro_login->linux_basics_intro_process_tree
linux_basics_intro_environment
Environment (Variables)
linux_basics_intro_process
Processes, Scheduling, Address Spaces
linux_basics_intro_environment->linux_basics_intro_process
linux_basics_intro_overview
Overview
linux_basics_intro_process->linux_basics_intro_overview
linux_basics_intro_demo_everything_is_a_file
Everything Is A File (Live Demo)
linux_basics_intro_demo_everything_is_a_file->linux_basics_intro_overview
linux_sysprog_blocking_io_blocking_io_file
Blocking I/O (On A File): What is That?
linux_basics_intro_demo_everything_is_a_file->linux_sysprog_blocking_io_blocking_io_file
linux_basics_intro_process_tree->linux_basics_intro_process
linux_basics_intro_wsl
Windows Subsystem for Linux (WSL)
linux_basics_intro_wsl->linux_basics_intro_overview
linux_basics_intro_fh_moodle_quiz
Quiz: Linux Basics
linux_basics_intro_fh_moodle_quiz->linux_basics_intro_process
linux_basics_intro_fh_moodle_quiz->linux_basics_intro_overview
linux_basics_intro_fh_moodle_quiz->linux_basics_intro_demo_everything_is_a_file
linux_basics_intro_fh_moodle_quiz->linux_sysprog_blocking_io_blocking_io_file
linux_basics_archiving_compression_tar
tar
linux_basics_archiving_compression_gzip
gzip
linux_basics_archiving_compression_tar->linux_basics_archiving_compression_gzip
linux_basics_shell_commandline
Commandline
linux_basics_archiving_compression_tar->linux_basics_shell_commandline
linux_basics_archiving_compression_overview
Archiving and Compression
linux_basics_archiving_compression_overview->linux_basics_shell_commandline
linux_basics_archiving_compression_gzip->linux_basics_archiving_compression_overview
linux_basics_archiving_compression_gzip->linux_basics_shell_commandline
linux_basics_archiving_compression_exercises
Exercises: Archiving And Compression
linux_basics_archiving_compression_exercises->linux_basics_archiving_compression_tar
linux_basics_archiving_compression_exercises->linux_basics_archiving_compression_gzip
linux_basics_shell_file_dir_create_rm
Creating And Removing Files and Directories
linux_basics_shell_paths
Absolute and Relative Paths
linux_basics_shell_file_dir_create_rm->linux_basics_shell_paths
linux_basics_shell_cwd
Current Working Directory
linux_basics_shell_file_dir_create_rm->linux_basics_shell_cwd
linux_basics_shell_ls
Directory Listings: The ls Command
linux_basics_shell_ls->linux_basics_intro_overview
linux_basics_shell_ls->linux_basics_shell_paths
linux_basics_shell_ls->linux_basics_shell_cwd
linux_basics_shell_special_paths
Special Paths
linux_basics_shell_ls->linux_basics_shell_special_paths
linux_basics_shell_paths->linux_basics_shell_commandline
linux_basics_shell_cwd->linux_basics_intro_process
linux_basics_shell_cwd->linux_basics_shell_paths
linux_basics_shell_cwd->linux_basics_shell_commandline
linux_basics_shell_cp
Copying: cp
linux_basics_shell_cp->linux_basics_shell_file_dir_create_rm
linux_basics_shell_cp->linux_basics_shell_paths
linux_basics_shell_commandline->linux_basics_intro_overview
linux_basics_shell_fh_moodle_quiz
FH/Moodle Quiz: Shell
linux_basics_shell_fh_moodle_quiz->linux_basics_shell_paths
linux_basics_shell_configfiles
Shell Configuration File: ~/.bashrc
linux_basics_shell_configfiles->linux_basics_intro_environment
linux_basics_shell_special_paths->linux_basics_shell_paths
linux_basics_shell_links
Symbolic Links, Hard Links
linux_basics_shell_links->linux_basics_shell_ls
linux_basics_shell_mv
Moving and Renaming: mv
linux_basics_shell_mv->linux_basics_shell_file_dir_create_rm
linux_basics_shell_mv->linux_basics_shell_paths
linux_basics_shell_mv->linux_basics_shell_cp
linux_basics_shell_exercises_ls_etc_passwd_size
Exercise: Size of /etc/passwd
linux_basics_shell_exercises_ls_etc_passwd_size->linux_basics_shell_ls
linux_basics_shell_exercises_ls_home_permissions
Exercise: Permissions of Home Directory
linux_basics_shell_exercises_ls_home_permissions->linux_basics_shell_ls
linux_basics_shell_exercises_ls_dev_types
Exercise: File Types in /dev
linux_basics_shell_exercises_ls_dev_types->linux_basics_shell_ls
linux_basics_shell_exercises_cp_mv_mkdir_rm_rm_rf
Exercise: Funny Stuff
linux_basics_shell_exercises_cp_mv_mkdir_rm_rm_rf->linux_basics_shell_file_dir_create_rm
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files
Exercise: Create Files (I/O Redirection)
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files->linux_basics_shell_file_dir_create_rm
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files->linux_basics_shell_paths
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files->linux_basics_shell_cwd
linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r
Exercise: mkdir
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files->linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r
linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r->linux_basics_shell_file_dir_create_rm
linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r->linux_basics_shell_cwd
linux_basics_shell_exercises_cp_mv_mkdir_rm_copy_tree
Exercise: Copy Directory Tree
linux_basics_shell_exercises_cp_mv_mkdir_rm_copy_tree->linux_basics_shell_cp
linux_basics_shell_exercises_cp_mv_mkdir_rm_verify_hierarchy
Exercise: Verify, Repeat
linux_basics_shell_exercises_cp_mv_mkdir_rm_copy_tree->linux_basics_shell_exercises_cp_mv_mkdir_rm_verify_hierarchy
linux_basics_shell_exercises_cp_mv_mkdir_rm_verify_hierarchy->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files
linux_basics_shell_exercises_cp_mv_mkdir_rm_verify_hierarchy->linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_copy_files
Exercise: Copy Files
linux_basics_shell_exercises_cp_mv_mkdir_rm_verify_hierarchy->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_copy_files
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_move_files
Exercise: Move Files
linux_basics_shell_exercises_cp_mv_mkdir_rm_verify_hierarchy->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_move_files
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_copy_files->linux_basics_shell_file_dir_create_rm
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_copy_files->linux_basics_shell_cp
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_copy_files->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_copy_files->linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_move_files->linux_basics_shell_ls
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_move_files->linux_basics_shell_cp
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_move_files->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files
linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_move_files->linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r
linux_basics_shell_exercises_cp_mv_mkdir_rm_rm_tree
Exercise: Remove Directory Tree
linux_basics_shell_exercises_cp_mv_mkdir_rm_rm_tree->linux_basics_shell_file_dir_create_rm
linux_basics_shell_exercises_cp_mv_mkdir_rm_rm_tree->linux_basics_shell_exercises_cp_mv_mkdir_rm_copy_tree
linux_basics_permissions_basics
Permissions: Mode, User and Group Ownership
linux_basics_permissions_basics->linux_basics_shell_ls
linux_basics_permissions_sticky
Ugly Hack: Sticky Bit
linux_basics_permissions_sticky->linux_basics_permissions_basics
linux_basics_permissions_umasks
Default Permissions: umask
linux_basics_permissions_umasks->linux_basics_shell_file_dir_create_rm
linux_basics_permissions_umasks->linux_basics_permissions_basics
linux_basics_permissions_setuid
SetUID Programs: passwd, sudo, …
linux_basics_permissions_setuid->linux_basics_permissions_basics
linux_basics_permissions_setuid_livedemo
SetUID: Live Demo
linux_basics_permissions_setuid_livedemo->linux_basics_permissions_setuid
linux_basics_permissions_fh_moodle_quiz_nocheat
FH/Moodle Quiz: Permissions
linux_basics_permissions_fh_moodle_quiz_nocheat->linux_basics_permissions_basics
linux_basics_permissions_fh_moodle_quiz
FH/Moodle Quiz: Permissions
linux_basics_permissions_fh_moodle_quiz->linux_basics_permissions_basics
linux_basics_permissions_exercises_private_directory
Exercise: Create Private Directory
linux_basics_permissions_exercises_private_directory->linux_basics_permissions_basics
linux_basics_permissions_exercises_credentials
Exercise: Determine Your User Credentials
linux_basics_permissions_exercises_private_directory->linux_basics_permissions_exercises_credentials
linux_basics_permissions_exercises_credentials->linux_basics_intro_login
linux_basics_permissions_exercises_credentials->linux_basics_permissions_basics
linux_basics_permissions_exercises_private_directory_question
Question: Private Directory
linux_basics_permissions_exercises_private_directory_question->linux_basics_permissions_basics
linux_basics_permissions_exercises_private_directory_question->linux_basics_permissions_exercises_private_directory
linux_basics_permissions_exercises_public_directory_question
Question: Public Directory
linux_basics_permissions_exercises_public_directory
Exercise: Create Public Directory
linux_basics_permissions_exercises_public_directory_question->linux_basics_permissions_exercises_public_directory
linux_basics_permissions_exercises_public_directory->linux_basics_permissions_basics
linux_basics_permissions_exercises_public_directory->linux_basics_permissions_exercises_credentials
linux_basics_permissions_exercises_shared_file
Exercise: Create Group-Shared File
linux_basics_permissions_exercises_shared_file->linux_basics_permissions_basics
linux_basics_permissions_exercises_shared_file->linux_basics_permissions_exercises_credentials
linux_basics_io_redir_pipes_exercises
Exercises: IO-Redirection, Pipes
linux_basics_io_redir_pipes_io_redir
I/O Redirection
linux_basics_io_redir_pipes_exercises->linux_basics_io_redir_pipes_io_redir
linux_basics_io_redir_pipes_io_redir_swap_stdout_stderr
I/O Redirection: Swap stdout And stderr
linux_basics_io_redir_pipes_exercises->linux_basics_io_redir_pipes_io_redir_swap_stdout_stderr
linux_basics_io_redir_pipes_pipes
Pipes
linux_basics_io_redir_pipes_exercises->linux_basics_io_redir_pipes_pipes
linux_basics_io_redir_pipes_io_redir->linux_basics_shell_commandline
linux_basics_io_redir_pipes_io_redir_swap_stdout_stderr->linux_basics_io_redir_pipes_io_redir
linux_basics_io_redir_pipes_pipes->linux_basics_shell_commandline
linux_basics_io_redir_pipes_pipes->linux_basics_io_redir_pipes_io_redir
linux_basics_exercises_FH_SS2022_EXAM_01_G2
Exam (ECE/SS2022/G2): Do A Lot With Files And Directories
linux_basics_exercises_FH_SS2022_EXAM_01_G2->linux_basics_shell_ls
linux_basics_exercises_FH_SS2022_EXAM_01_G2->linux_basics_shell_cp
linux_basics_exercises_FH_SS2022_EXAM_01_G2->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files
linux_basics_exercises_FH_SS2022_EXAM_01_G2->linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r
linux_basics_exercises_FH_SS2022_EXAM_01_G1
Exam (ECE/SS2022/G1): Do A Lot With Files And Directories
linux_basics_exercises_FH_SS2022_EXAM_01_G1->linux_basics_shell_ls
linux_basics_exercises_FH_SS2022_EXAM_01_G1->linux_basics_shell_cp
linux_basics_exercises_FH_SS2022_EXAM_01_G1->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files
linux_basics_exercises_FH_SS2022_EXAM_01_G1->linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r
linux_basics_text_tools_head_tail
head And tail
linux_basics_text_tools_cat
cat
linux_basics_text_tools_head_tail->linux_basics_text_tools_cat
linux_basics_text_tools_overview
Overview
linux_basics_text_tools_cat->linux_basics_text_tools_overview
linux_basics_text_tools_less
less
linux_basics_text_tools_less->linux_basics_text_tools_head_tail
linux_basics_text_tools_grep
grep
linux_basics_text_tools_grep->linux_basics_text_tools_less
linux_basics_text_tools_find
find
linux_basics_text_tools_find->linux_basics_text_tools_grep
linux_basics_text_tools_cut
cut
linux_basics_text_tools_cut->linux_basics_text_tools_head_tail
linux_basics_text_tools_overview->linux_basics_shell_commandline
linux_basics_text_tools_exercises
Exercises: Inspecting Text Files
linux_basics_text_tools_exercises->linux_basics_text_tools_head_tail
linux_basics_text_tools_exercises->linux_basics_text_tools_cat
linux_basics_text_tools_exercises->linux_basics_text_tools_less
linux_basics_text_tools_exercises->linux_basics_text_tools_grep
linux_basics_text_tools_exercises->linux_basics_text_tools_find
linux_basics_text_tools_exercises->linux_basics_text_tools_cut
linux_basics_text_tools_exercises->linux_basics_text_tools_overview
linux_toolchain_basics
Toolchain: Basics
linux_toolchain_basics->linux_basics_shell_file_dir_create_rm
linux_toolchain_separate_compilation
Zooming In: Separate Compilation, and Linking Statically
linux_toolchain_separate_compilation->linux_toolchain_basics
linux_toolchain_static_library
Object Code Archives/Static Libraries
linux_toolchain_static_library->linux_toolchain_separate_compilation
linux_toolchain_cmake_cross
CMake: Cross Build
linux_toolchain_cmake_local
CMake: Local Build
linux_toolchain_cmake_cross->linux_toolchain_cmake_local
linux_toolchain_cmake_local->linux_toolchain_static_library
linux_toolchain_shared_library
Shared Libraries (Shared Objects)
linux_toolchain_shared_library->linux_basics_intro_environment
linux_toolchain_shared_library->linux_toolchain_static_library
linux_toolchain_exercises_fh_moodle_quiz
Quiz: Toolchain
linux_toolchain_exercises_fh_moodle_quiz->linux_toolchain_basics
linux_toolchain_exercises_fh_moodle_quiz->linux_toolchain_separate_compilation
linux_toolchain_exercises_native_build
Exercise: Build Software Package (Native)
linux_toolchain_exercises_native_build->linux_toolchain_static_library
linux_toolchain_exercises_cross_build
Exercise: Build Software Package (Cross, Raspberry)
linux_toolchain_exercises_cross_build->linux_toolchain_static_library
linux_toolchain_raspi_toolchain_setup
Cross Toolchain Setup
linux_toolchain_exercises_cross_build->linux_toolchain_raspi_toolchain_setup
linux_toolchain_exercises_raspberry_toolchain
Exercise: Install And Check Raspberry Toolchain
linux_toolchain_exercises_raspberry_toolchain->linux_toolchain_basics
linux_toolchain_cross_basics
Cross Development
linux_toolchain_exercises_raspberry_toolchain->linux_toolchain_cross_basics
linux_toolchain_raspi_toolchain_setup->linux_toolchain_cross_basics
linux_toolchain_raspi_docker_fedora_wsl
Building A Toolchain On Fedora For Ubuntu 18.04 (WSL)
linux_toolchain_raspi_details
Building A Cross Toolchain For The Raspberry Pi, Using crosstool-ng
linux_toolchain_raspi_docker_fedora_wsl->linux_toolchain_raspi_details
linux_toolchain_raspi_details->linux_ssh_scp
linux_toolchain_raspi_details->linux_ssh_basics
linux_toolchain_raspi_details->linux_basics_intro_environment
linux_toolchain_raspi_details->linux_basics_archiving_compression_tar
linux_toolchain_raspi_details->linux_toolchain_cross_basics
linux_toolchain_raspi_linaro_pi
Linaro Toolchain For The Pi (Defunct)
linux_toolchain_raspi_linaro_pi->linux_ssh_scp
linux_toolchain_raspi_linaro_pi->linux_ssh_basics
linux_toolchain_raspi_linaro_pi->linux_basics_intro_environment
linux_toolchain_raspi_linaro_pi->linux_basics_archiving_compression_tar
linux_toolchain_raspi_linaro_pi->linux_toolchain_cross_basics
linux_toolchain_cross_basics->linux_toolchain_basics
linux_hardware_pwm
PWM Userspace Interface (using PCA9685)
linux_hardware_w1
Linux and OneWire (using DS18B20 Temperature Sensor as Slave)
linux_hardware_i2c
Linux and I2C (using LM73 Temperature Sensor as Slave)
linux_hardware_brushless_motor
Controlling a Brushless Motor With Raspberry Pi
linux_hardware_brushless_motor->linux_hardware_pwm
linux_hardware_can_interfaces
CAN Interfaces
linux_hardware_can_intro
CAN/Linux Basics
linux_hardware_can_interfaces->linux_hardware_can_intro
linux_hardware_can_programming
Programming
linux_hardware_can_programming->linux_hardware_can_interfaces
linux_hardware_can_programming->linux_hardware_can_intro
linux_hardware_can_hardware
Hardware, Kernel
linux_sysprog_ipc
Sysprog: POSIX IPC
linux_sysprog_signals
Sysprog: Signals
linux_sysprog_events
Sysprog: Events
linux_sysprog_blocking_io_blocking_io
Blocking I/O: What is That? (“Everything is a file”)
linux_sysprog_blocking_io_blocking_io_file->linux_sysprog_blocking_io_blocking_io
linux_sysprog_blocking_io_blocking_io_network
Blocking I/O: On A Network Socket
linux_sysprog_blocking_io_blocking_io_network->linux_sysprog_blocking_io_blocking_io
linux_sysprog_fileio_basics
File I/O: Basics
linux_sysprog_blocking_io_blocking_io_network->linux_sysprog_fileio_basics
linux_sysprog_blocking_io_blocking_io->linux_sysprog_fileio_basics
linux_sysprog_blocking_io_blocking_io_timer
Blocking I/O: On A Timer? WTF?
linux_sysprog_blocking_io_blocking_io_timer->linux_sysprog_blocking_io_blocking_io
linux_sysprog_blocking_io_blocking_io_timer->linux_sysprog_fileio_basics
linux_sysprog_fileio_basics->linux_basics_permissions_basics
linux_sysprog_basics_groupnode
Linux Systems Programming: Basics
linux_sysprog_fileio_basics->linux_sysprog_basics_groupnode
linux_sysprog_fileio_example_O_EXCL
O_EXCL: Creating A File, But Failing If It Already Exists
linux_sysprog_fileio_example_O_EXCL->linux_basics_permissions_basics
linux_sysprog_fileio_example_O_EXCL->linux_sysprog_fileio_basics
linux_sysprog_fileio_example_O_CREAT
O_CREAT: Creating A File
linux_sysprog_fileio_example_O_EXCL->linux_sysprog_fileio_example_O_CREAT
linux_sysprog_fileio_example_O_CREAT->linux_basics_permissions_basics
linux_sysprog_fileio_example_O_CREAT->linux_sysprog_fileio_basics
linux_sysprog_fileio_example_O_WRONLY
O_WRONLY: Writing A File (Which Must Exist)
linux_sysprog_fileio_example_O_CREAT->linux_sysprog_fileio_example_O_WRONLY
linux_sysprog_fileio_duplicate
Duplicating (Whats Going On?)
linux_sysprog_fileio_duplicate->linux_sysprog_fileio_basics
linux_sysprog_fileio_basics_exercise_hole
Exercise: Create File With Hole
linux_sysprog_fileio_basics_exercise_hole->linux_sysprog_fileio_basics
linux_sysprog_fileio_example_O_WRONLY->linux_basics_permissions_basics
linux_sysprog_fileio_example_O_WRONLY->linux_sysprog_fileio_basics
linux_sysprog_fileio_example_O_RDONLY
O_RDONLY: Reading a File
linux_sysprog_fileio_example_O_WRONLY->linux_sysprog_fileio_example_O_RDONLY
linux_sysprog_fileio_example_O_RDONLY->linux_basics_permissions_basics
linux_sysprog_fileio_example_O_RDONLY->linux_sysprog_fileio_basics
linux_sysprog_fileio_basics_exercise_copy
Exercise: Copy A File
linux_sysprog_fileio_basics_exercise_copy->linux_basics_permissions_basics
linux_sysprog_fileio_basics_exercise_copy->linux_sysprog_fileio_basics
linux_sysprog_basics_errorhandling
Error Handling
linux_sysprog_fileio_basics_exercise_copy->linux_sysprog_basics_errorhandling
linux_sysprog_fileio_misc
Miscellaneous
linux_sysprog_fileio_misc->linux_sysprog_fileio_basics
linux_sysprog_fileio_exercise_w1_sensor
Exercise: Read Temperature From Onewire Sensor
linux_sysprog_fileio_exercise_w1_sensor->linux_basics_permissions_basics
linux_sysprog_fileio_exercise_w1_sensor->linux_sysprog_fileio_basics
linux_sysprog_fileio_exercise_w1_sensor->linux_sysprog_basics_errorhandling
linux_sysprog_fileio_fileio_group
File I/O
linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_basics
linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_duplicate
linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_basics_exercise_hole
linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_example_O_WRONLY
linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_example_O_RDONLY
linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_basics_exercise_copy
linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_misc
linux_sysprog_scheduling_basics
Scheduling (and Multitasking)
linux_sysprog_scheduling_basics->linux_sysprog_blocking_io_blocking_io
linux_sysprog_scheduling_realtime
Realtime
linux_sysprog_scheduling_realtime->linux_sysprog_blocking_io_blocking_io
linux_sysprog_scheduling_wakeup_latency
Wakeup Latency, CPU Frequency (Gotcha)
linux_sysprog_scheduling_realtime->linux_sysprog_scheduling_wakeup_latency
linux_sysprog_scheduling_wakeup_latency->linux_sysprog_blocking_io_blocking_io
linux_sysprog_scheduling_wakeup_latency->linux_sysprog_scheduling_basics
linux_sysprog_scheduling_exam_questions
Scheduling: Exam Questions
linux_sysprog_scheduling_exam_questions->linux_sysprog_scheduling_realtime
linux_sysprog_scheduling_exam_questions->linux_sysprog_scheduling_wakeup_latency
linux_sysprog_scheduling_processes_and_threads
Tasks? Processes? Threads?
linux_sysprog_scheduling_exam_questions->linux_sysprog_scheduling_processes_and_threads
linux_sysprog_scheduling_processes_and_threads->linux_sysprog_scheduling_basics
linux_sysprog_scheduling_realtime_api
Realtime API
linux_sysprog_scheduling_realtime_api->linux_sysprog_scheduling_realtime
linux_sysprog_posix_threads_mutex
Synchronization
linux_sysprog_scheduling_realtime_api->linux_sysprog_posix_threads_mutex
linux_sysprog_posix_threads_lifecycle
Thread Life Cycle
linux_sysprog_scheduling_realtime_api->linux_sysprog_posix_threads_lifecycle
linux_sysprog_posix_threads_exercise_pthcreate_racecondition
Thread Creation, Race Condition
linux_sysprog_posix_threads_mutex->linux_sysprog_posix_threads_exercise_pthcreate_racecondition
linux_sysprog_posix_threads_basics
Basics
linux_sysprog_posix_threads_lifecycle->linux_sysprog_posix_threads_basics
linux_sysprog_posix_threads_exercise_pthcreate_racecondition->linux_sysprog_posix_threads_lifecycle
linux_sysprog_posix_threads_last_warning
Last Warning
linux_sysprog_posix_threads_miscellaneous
Miscellaneous
linux_sysprog_posix_threads_last_warning->linux_sysprog_posix_threads_miscellaneous
linux_sysprog_posix_threads_exercise_condition_variable
Condition Variable: Message Queue
linux_sysprog_posix_threads_miscellaneous->linux_sysprog_posix_threads_exercise_condition_variable
linux_sysprog_posix_threads_mutex_trylock
Trylock/islocked
linux_sysprog_posix_threads_mutex_trylock->linux_sysprog_posix_threads_mutex
linux_sysprog_posix_threads_exercise_mutex
Mutex: Solve Load/Modify/Store Conflict
linux_sysprog_posix_threads_exercise_mutex->linux_sysprog_posix_threads_mutex
linux_sysprog_posix_threads_basics->linux_sysprog_scheduling_basics
linux_sysprog_posix_threads_condition_variable
Communication: Condition Variable
linux_sysprog_posix_threads_exercise_condition_variable->linux_sysprog_posix_threads_condition_variable
linux_sysprog_posix_threads_condition_variable->linux_sysprog_posix_threads_exercise_mutex
linux_sysprog_intro_hw_watch
Interrupts In Userspace
linux_sysprog_intro_hw_get
Get Value Of GPIO
linux_sysprog_intro_hw_watch->linux_sysprog_intro_hw_get
linux_sysprog_intro_hw_sysfs_gpio
Intro: sysfs GPIO
linux_sysprog_intro_hw_watch->linux_sysprog_intro_hw_sysfs_gpio
linux_sysprog_intro_hw_get->linux_sysprog_intro_hw_sysfs_gpio
linux_sysprog_process_commandline
Process: Arguments, Exit Status
linux_sysprog_process_commandline->linux_basics_intro_process
linux_sysprog_process_tree
The Process Tree (And Environment, And procfs)
linux_sysprog_process_tree->linux_basics_intro_environment
linux_sysprog_process_tree->linux_basics_intro_process
linux_sysprog_process_tree->linux_basics_intro_process_tree
linux_sysprog_process_tree->linux_sysprog_process_commandline
linux_sysprog_basics_syscalls
System Calls vs. Library Functions
linux_sysprog_basics_errorhandling->linux_sysprog_basics_syscalls
linux_sysprog_basics_groupnode->linux_sysprog_basics_errorhandling
linux_sysprog_basics_groupnode->linux_sysprog_basics_syscalls
linux_sysprog_basics_syscalls->linux_toolchain_basics
clean_code_features_other_indexes
Search By Other Indexes
clean_code_features_csv
UserDB: Alternative Output Format - CSV
clean_code_bugs_overwrite_store_content_on_read
UserDB::read(): What If Done Twice?
clean_code_bugs_find_error
UserDB::find() Crashes If User Not Found
clean_code_bugs_overwrite_existing_files
Existing Files Are Overwritten
clean_code_refactoring_backingstore_monolithic
UserDB Has Too Many Responsibilities ⟶ BackingStore
clean_code_refactoring_backingstore_monolithic->clean_code_bugs_overwrite_store_content_on_read
clean_code_refactoring_backingstore_monolithic->clean_code_bugs_overwrite_existing_files
clean_code_refactoring_store_enum_switch
UserDB::{read,write}(): bool, Really?
clean_code_refactoring_backingstore_monolithic->clean_code_refactoring_store_enum_switch
clean_code_refactoring_store_enum_switch->clean_code_features_csv
clean_code_refactoring_pass_store_in_ctor
Load From BackingStore in Constructor
clean_code_refactoring_pass_store_in_ctor->clean_code_bugs_overwrite_store_content_on_read
clean_code_refactoring_pass_store_in_ctor->clean_code_bugs_overwrite_existing_files
clean_code_refactoring_pass_store_in_ctor->clean_code_refactoring_backingstore_monolithic
clean_code_refactoring_backingstore_interface
BackingStore Has Too Many Responsibilities ⟶ Interface
clean_code_refactoring_backingstore_interface->clean_code_refactoring_backingstore_monolithic
unittest_gtest_fixture
Unittest: GTest Fixtures
unittest_gtest_basics
Unittest: GTest Basics
unittest_gtest_fixture->unittest_gtest_basics
unittest_gtest_cmake
Unittest: GTest and CMake
unittest_gtest_fixture->unittest_gtest_cmake
unittest_gtest_cmake->unittest_gtest_basics
cmake_intro_shared_libraries_preview
Shared Libraries (Preview)
cmake_intro_libraries
Libraries, And Dependencies
cmake_intro_shared_libraries_preview->cmake_intro_libraries
cmake_intro_basics
Basics: Boilerplate, And Executables
cmake_intro_libraries->cmake_intro_basics
cmake_intro_cxx_and_rants
C++, Debug/Release, CMake “Programming”, Rants
cmake_intro_structure
Structure - Subdirectories, Dependencies, and Include Paths
cmake_intro_cxx_and_rants->cmake_intro_structure
cmake_intro_installation
Installation (“Deployment”)
cmake_intro_structure->cmake_intro_installation
cmake_intro_installation->cmake_intro_shared_libraries_preview
cmake_intro_installation->cmake_intro_libraries
cmake_advanced_external_dependencies_sqlite3_optional_graph
Screenplay: Making SQLite3 Optional (target_compile_definitions())
cmake_advanced_external_dependencies_sqlite3
Screenplay: Adding SQLite3 External Dependency
cmake_advanced_external_dependencies_sqlite3_optional_graph->cmake_advanced_external_dependencies_sqlite3
cmake_advanced_targets_properties
Targets, Properties, And More
cmake_advanced_external_dependencies_sqlite3->cmake_advanced_targets_properties
cmake_advanced_targets_properties_pub_priv_inc_screenplay
Screenplay: Public And Private Include Directories
cmake_advanced_external_dependencies_sqlite3->cmake_advanced_targets_properties_pub_priv_inc_screenplay
cmake_advanced_library_function_screenplay
Screenplay: Function Wrapping add_library()
cmake_advanced_external_dependencies_sqlite3->cmake_advanced_library_function_screenplay
cmake_advanced_testing
Running Tests
cmake_advanced_external_dependencies
External Dependencies
cmake_advanced_testing->cmake_advanced_external_dependencies
cmake_advanced_external_dependencies->cmake_advanced_targets_properties
cmake_advanced_targets_properties->cmake_intro_libraries
cmake_advanced_targets_properties->cmake_intro_structure
cmake_advanced_targets_properties_pub_priv_inc_screenplay->cmake_advanced_targets_properties
cmake_advanced_library_function_screenplay->cmake_advanced_targets_properties_pub_priv_inc_screenplay
cmake_advanced_optional_code_approach_1
Optional Code, Approach 1: Optional blacklist, C Macro (Global Flags)
cmake_advanced_optional_code_problem
Optional Code: Problem Definition, OPTION()
cmake_advanced_optional_code_approach_1->cmake_advanced_optional_code_problem
cmake_advanced_configure_file
“Configured” Header Files
cmake_advanced_optional_code_problem->cmake_advanced_configure_file
cmake_advanced_external_dependencies_mosquitto
Screenplay: Integrating libmosquitto (MQTT - Handwritten Find-Module)
cmake_advanced_external_dependencies_sqlite3_optional_configured_file
Screenplay: Making SQLite3 Optional (configure_file())
cmake_advanced_external_dependencies_mosquitto->cmake_advanced_external_dependencies_sqlite3_optional_configured_file
cmake_advanced_external_dependencies_sqlite3_optional_configured_file->cmake_advanced_external_dependencies_sqlite3_optional_graph
cmake_advanced_configure_file->cmake_intro_cxx_and_rants
cmake_advanced_optional_code_approach_2
Optional Code, Approach 2: Pushing Optionality Down In Module Interface
cmake_advanced_optional_code_approach_2->cmake_advanced_optional_code_approach_1
cmake_advanced_code_generators
Screenplay: Generated Code (add_custom_command())
cmake_advanced_code_generators->cmake_advanced_external_dependencies_mosquitto
cmake_advanced_language_datatypes
Datatypes
cmake_advanced_language_variables
Variables
cmake_advanced_language_datatypes->cmake_advanced_language_variables
cmake_advanced_language_basics
Language Basics
cmake_advanced_language_variables->cmake_advanced_language_basics
cmake_advanced_language_file_etc
Filesystem Interaction, Pathname Manipulation
cmake_advanced_language_file_etc->cmake_advanced_language_datatypes
cmake_advanced_language_file_etc->cmake_advanced_language_variables
cmake_advanced_language_if_and_conditions
if, And Conditions
cmake_advanced_language_if_and_conditions->cmake_advanced_language_variables
cmake_advanced_language_functions_and_macros
Functions And Macros
cmake_advanced_language_functions_and_macros->cmake_advanced_language_datatypes
cmake_advanced_language_functions_and_macros->cmake_advanced_language_variables
cmake_advanced_language_functions_and_macros->cmake_advanced_language_if_and_conditions
cmake_advanced_language_while
while Loops
cmake_advanced_language_while->cmake_advanced_language_datatypes
cmake_advanced_language_while->cmake_advanced_language_variables
cmake_advanced_language_scripts
Scripts
cmake_advanced_language_foreach
foreach Loops
cmake_advanced_language_foreach->cmake_advanced_language_datatypes
cmake_advanced_language_foreach->cmake_advanced_language_variables
ecproposal_ec2_python_exercise_avg_display
EX: Averaging Sensor, Display
ecproposal_ec2_python_exercise_sensors
EX: Temperature Sensors
ecproposal_ec2_python_exercise_avg_display->ecproposal_ec2_python_exercise_sensors
ecproposal_ec1_linux_exercise_avg_sensor
EX: Averaging Sensor
ecproposal_ec2_python_exercise_avg_display->ecproposal_ec1_linux_exercise_avg_sensor
ecproposal_ec1_linux_exercise_led_display
EX: LED Temperature Display
ecproposal_ec2_python_exercise_avg_display->ecproposal_ec1_linux_exercise_led_display
ecproposal_ec1_linux_exercise_avg_sensor_parallel
EX: Averaging Sensor (parallel)
ecproposal_ec2_python_exercise_avg_display->ecproposal_ec1_linux_exercise_avg_sensor_parallel
ecproposal_ec2_python_basics
Python Basics
ecproposal_ec2_python_exercise_sensors->ecproposal_ec2_python_basics
ecproposal_ec1_linux_exercise_sensors
EX: Temperature Sensors
ecproposal_ec2_python_exercise_sensors->ecproposal_ec1_linux_exercise_sensors
ecproposal_ec2_python_web_sensors
Sensors Web Pages
ecproposal_ec2_python_web_sensors->ecproposal_ec2_python_exercise_avg_display
ecproposal_ec2_python_flask
Simple Web Programming
ecproposal_ec2_python_web_sensors->ecproposal_ec2_python_flask
ecproposal_ec1_git
Git Introduction
ecproposal_ec1_linux_exercise_avg_sensor->ecproposal_ec1_linux_exercise_sensors
ecproposal_ec1_cxx_unittest
C++: Unit Testing
ecproposal_ec1_linux_exercise_avg_sensor->ecproposal_ec1_cxx_unittest
ecproposal_ec1_linux_exercise_led_display->ecproposal_ec1_linux_exercise_avg_sensor
ecproposal_ec1_linux_gpio
GPIO
ecproposal_ec1_linux_exercise_led_display->ecproposal_ec1_linux_gpio
ecproposal_ec1_linux_exercise_led_display->ecproposal_ec1_cxx_unittest
ecproposal_ec1_linux_exercise_avg_sensor_parallel->ecproposal_ec1_linux_exercise_avg_sensor
ecproposal_ec1_mt_wait
Communication: Waiting for Something
ecproposal_ec1_linux_exercise_avg_sensor_parallel->ecproposal_ec1_mt_wait
ecproposal_ec1_mt_exercise_mt_race_fixed
EX: Avoiding Race Condition
ecproposal_ec1_linux_exercise_avg_sensor_parallel->ecproposal_ec1_mt_exercise_mt_race_fixed
ecproposal_ec1_linux_exercise_sensors->ecproposal_ec1_git
ecproposal_ec1_linux_dev_mgmt
Linux Hardware Device Management
ecproposal_ec1_linux_exercise_sensors->ecproposal_ec1_linux_dev_mgmt
ecproposal_ec1_cxx_iface
C++: Interfaces
ecproposal_ec1_linux_exercise_sensors->ecproposal_ec1_cxx_iface
ecproposal_ec1_cxx_build
C++: Building with CMake
ecproposal_ec1_linux_exercise_sensors->ecproposal_ec1_cxx_build
ecproposal_ec1_linux_gpio->ecproposal_ec1_linux_dev_mgmt
ecproposal_ec1_linux_basics
Introduction to Linux and Unix
ecproposal_ec1_linux_dev_mgmt->ecproposal_ec1_linux_basics
ecproposal_ec1_mt_lock
Avoiding Race Conditions: Semaphore/Mutex
ecproposal_ec1_mt_wait->ecproposal_ec1_mt_lock
ecproposal_ec1_mt_exercise_mt_race_fixed->ecproposal_ec1_mt_lock
ecproposal_ec1_mt_exercise_mt_race
EX: Race Conditions
ecproposal_ec1_mt_exercise_mt_race_fixed->ecproposal_ec1_mt_exercise_mt_race
ecproposal_ec1_mt_lock->ecproposal_ec1_mt_exercise_mt_race
ecproposal_ec1_mt_exercise_mt_race->ecproposal_ec1_cxx_build
ecproposal_ec1_cxx_unittest->ecproposal_ec1_cxx_build
ecproposal_ec1_cxx_oo_basics
C++: OO Basics
ecproposal_ec1_cxx_unittest->ecproposal_ec1_cxx_oo_basics
ecproposal_ec1_cxx_iface->ecproposal_ec1_cxx_oo_basics
ecproposal_ec1_cxx_oo_basics->ecproposal_ec1_git
ecproposal_ec1_cxx_oo_basics->ecproposal_ec1_cxx_build
ece19_blinklicht_unittest
GPIO: Blinklicht Unittests
ece19_blinklicht_abc
GPIO: Blinklicht Interface
ece19_blinklicht_unittest->ece19_blinklicht_abc
ece19_blinklicht_oo
GPIO: Object Oriented Blinklicht
ece19_blinklicht_abc->ece19_blinklicht_oo
ece19_blinklicht
GPIO: Blinklicht
ece19_blinklicht_oo->ece19_blinklicht
ece19_file_read
Reading a File
ece19_blinklicht->ece19_file_read
python_basics_python_0500_files
File I/O
ece19_file_read->python_basics_python_0500_files
python_python_5550_xml_etree
XML: ElementTree (etree)
python_basics_python_0450_dictionaries
More About Dictionaries
python_python_5550_xml_etree->python_basics_python_0450_dictionaries
python_basics_python_0220_for
for Loops
python_python_5550_xml_etree->python_basics_python_0220_for
python_advanced_modules
Modules and Packages
python_python_5550_xml_etree->python_advanced_modules
python_basics_python_0500_files->python_basics_python_0220_for
python_misc_encoding
Encoding
python_basics_python_0500_files->python_misc_encoding
python_basics_python_0140_variables
Variables
python_basics_python_0130_syntax_etc
Syntax etc.
python_basics_python_0140_variables->python_basics_python_0130_syntax_etc
python_basics_python_0150_datatypes_overview
Datatypes
python_basics_python_0150_datatypes_overview->python_basics_python_0140_variables
python_basics_python_0150_datatypes_overview_compound
Compound Datatypes
python_basics_python_0150_datatypes_overview_compound->python_basics_python_0150_datatypes_overview
python_basics_python_0160_boolean
Boolean
python_basics_python_0160_boolean->python_basics_python_0150_datatypes_overview
python_basics_python_0120_helloworld
Hello World
python_basics_python_0110_blahblah
Blahblah
python_basics_python_0120_helloworld->python_basics_python_0110_blahblah
python_basics_python_0270_functions
Functions
python_basics_python_0270_functions->python_basics_python_0140_variables
python_basics_python_0270_functions->python_basics_python_0150_datatypes_overview
python_basics_python_0139_commandline_argv
Commandline Arguments (sys.argv)
python_basics_python_0139_commandline_argv->python_basics_python_0130_syntax_etc
python_basics_python_0125_running
Running Python Programs
python_basics_python_0139_commandline_argv->python_basics_python_0125_running
python_basics_python_0193_while
while Loops
python_basics_python_0193_while->python_basics_python_0160_boolean
python_basics_python_0170_if
The if Statement
python_basics_python_0193_while->python_basics_python_0170_if
python_basics_python_0170_if->python_basics_python_0160_boolean
python_basics_python_0300_strings
More About Strings
python_basics_python_0300_strings->python_basics_python_0150_datatypes_overview
python_basics_python_0200_sequential_types
Sequential Datatypes
python_basics_python_0300_strings->python_basics_python_0200_sequential_types
python_basics_python_0250_refs_flat_deep_copy
References, (Im)mutability
python_basics_python_0300_strings->python_basics_python_0250_refs_flat_deep_copy
python_basics_python_0310_strings_formatting
String Formatting
python_basics_python_0310_strings_formatting->python_basics_python_0300_strings
python_basics_python_0320_strings_methods
Miscellaneous String Methods
python_basics_python_0320_strings_methods->python_basics_python_0300_strings
python_basics_python_0450_dictionaries->python_basics_python_0150_datatypes_overview_compound
python_basics_python_0450_dictionaries->python_basics_python_0220_for
python_basics_python_0210_indexing_slicing
Indexing and Slicing
python_basics_python_0210_indexing_slicing->python_basics_python_0200_sequential_types
python_basics_python_0220_for->python_basics_python_0193_while
python_basics_python_0220_for->python_basics_python_0200_sequential_types
python_basics_python_0225_range
The range Function
python_basics_python_0225_range->python_basics_python_0220_for
python_basics_python_0225_range->python_basics_python_0200_sequential_types
python_basics_python_0200_sequential_types->python_basics_python_0150_datatypes_overview_compound
python_basics_python_0400_lists
More About Lists
python_basics_python_0400_lists->python_basics_python_0150_datatypes_overview_compound
python_basics_python_0130_syntax_etc->python_basics_python_0120_helloworld
python_basics_python_0125_running->python_basics_python_0120_helloworld
python_basics_python_0250_refs_flat_deep_copy->python_basics_python_0140_variables
python_basics_python_0250_refs_flat_deep_copy->python_basics_python_0150_datatypes_overview
python_basics_python_0250_refs_flat_deep_copy->python_basics_python_0150_datatypes_overview_compound
python_basics_python_0460_sets
More About Sets
python_basics_python_0460_sets->python_basics_python_0150_datatypes_overview_compound
python_basics_python_1000_function_objects
Function Objects
python_basics_python_1000_function_objects->python_basics_python_0270_functions
python_basics_installation
Python Installation
python_exercises_legacy_uniq_generator
Exercise: Generator: uniq()
python_exercises_legacy_uniq_function
Exercise: Function: uniq()
python_exercises_legacy_uniq_generator->python_exercises_legacy_uniq_function
python_exercises_legacy_passwd
Exercise: Parsing /etc/passwd
python_exercises_legacy_uniq_generator->python_exercises_legacy_passwd
python_advanced_python_1010_generators_yield
Iteration, Generators, And yield
python_exercises_legacy_uniq_generator->python_advanced_python_1010_generators_yield
python_exercises_legacy_uniq_function->python_basics_python_0150_datatypes_overview_compound
python_exercises_legacy_uniq_function->python_basics_python_0270_functions
python_exercises_legacy_function_primeness
Exercise: Primeness (Function)
python_exercises_legacy_uniq_function->python_exercises_legacy_function_primeness
python_exercises_legacy_passwd->python_basics_python_0500_files
python_exercises_legacy_passwd->python_basics_python_0139_commandline_argv
python_exercises_legacy_passwd->python_basics_python_0450_dictionaries
python_exercises_legacy_passwd->python_basics_python_0210_indexing_slicing
python_exercises_legacy_distill
Exercise: Eliminate Empty/Comment-Only Lines
python_exercises_legacy_passwd->python_exercises_legacy_distill
python_exercises_legacy_mixed_list_interactive
Exercise: Mixed List (Interactive Interpreter)
python_exercises_legacy_mixed_list_interactive->python_basics_python_0140_variables
python_exercises_legacy_mixed_list_interactive->python_basics_python_0150_datatypes_overview
python_exercises_legacy_mixed_list_interactive->python_basics_python_0150_datatypes_overview_compound
python_exercises_legacy_mixed_list_interactive->python_basics_python_0160_boolean
python_exercises_legacy_mixed_list_executable
Exercise: Mixed List (Executable Program)
python_exercises_legacy_mixed_list_executable->python_basics_python_0140_variables
python_exercises_legacy_mixed_list_executable->python_basics_python_0150_datatypes_overview
python_exercises_legacy_mixed_list_executable->python_basics_python_0150_datatypes_overview_compound
python_exercises_legacy_mixed_list_executable->python_basics_python_0160_boolean
python_exercises_legacy_mixed_list_executable->python_basics_python_0120_helloworld
python_exercises_legacy_mixed_list_executable->python_exercises_legacy_mixed_list_interactive
python_exercises_legacy_function_primeness->python_basics_python_0270_functions
python_exercises_legacy_function_primeness->python_basics_python_0139_commandline_argv
python_exercises_legacy_max_numbers_function
Exercise: Determine Maximum of Two Numbers (Function)
python_exercises_legacy_function_primeness->python_exercises_legacy_max_numbers_function
python_exercises_legacy_max_numbers_function->python_basics_python_0270_functions
python_exercises_legacy_max_numbers
Exercise: Determine Maximum of Two Numbers
python_exercises_legacy_max_numbers_function->python_exercises_legacy_max_numbers
python_exercises_legacy_for_primeness
Exercise: Primeness (for)
python_exercises_legacy_max_numbers_function->python_exercises_legacy_for_primeness
python_exercises_legacy_revert
Exercise: Reverting Lines of a File
python_exercises_legacy_revert->python_basics_python_0500_files
python_exercises_legacy_revert->python_basics_python_0139_commandline_argv
python_exercises_legacy_wc
Exercise: Counting Lines, Words, Characters
python_exercises_legacy_revert->python_exercises_legacy_wc
python_exercises_legacy_wc->python_basics_python_0500_files
python_exercises_legacy_wc->python_basics_python_0139_commandline_argv
python_exercises_legacy_python_0350_exercises
Exercise: String (Right-Justify)
python_exercises_legacy_wc->python_exercises_legacy_python_0350_exercises
python_exercises_legacy_join_function
Exercise: Functions: join()
python_exercises_legacy_join_function->python_basics_python_0150_datatypes_overview
python_exercises_legacy_join_function->python_basics_python_0150_datatypes_overview_compound
python_exercises_legacy_join_function->python_basics_python_0270_functions
python_exercises_legacy_join_function->python_exercises_legacy_uniq_function
python_exercises_legacy_cmdline_digit
Exercise: Digit to English Word
python_exercises_legacy_cmdline_digit->python_basics_python_0150_datatypes_overview
python_exercises_legacy_cmdline_digit->python_basics_python_0150_datatypes_overview_compound
python_exercises_legacy_cmdline_digit->python_basics_python_0120_helloworld
python_exercises_legacy_cmdline_digit->python_basics_python_0139_commandline_argv
python_exercises_legacy_while_primeness
Exercise: Primeness (while)
python_exercises_legacy_while_primeness->python_basics_python_0139_commandline_argv
python_exercises_legacy_while_primeness->python_basics_python_0193_while
python_exercises_legacy_while_primeness->python_exercises_legacy_cmdline_digit
python_exercises_legacy_python_0350_exercises->python_basics_python_0300_strings
python_exercises_legacy_python_0350_exercises->python_basics_python_0310_strings_formatting
python_exercises_legacy_python_0350_exercises->python_basics_python_0320_strings_methods
python_exercises_legacy_python_0350_exercises->python_exercises_legacy_join_function
python_exercises_legacy_python_1011_generators_yield
Exercise: Generator: Fibonacci
python_exercises_legacy_python_1011_generators_yield->python_exercises_legacy_uniq_generator
python_exercises_legacy_python_1011_generators_yield->python_advanced_python_1010_generators_yield
python_exercises_legacy_max_numbers->python_basics_python_0140_variables
python_exercises_legacy_max_numbers->python_basics_python_0139_commandline_argv
python_exercises_legacy_max_numbers->python_basics_python_0170_if
python_exercises_legacy_max_numbers->python_exercises_legacy_mixed_list_executable
python_exercises_legacy_distill->python_basics_python_0500_files
python_exercises_legacy_distill->python_basics_python_0139_commandline_argv
python_exercises_legacy_distill->python_exercises_legacy_revert
python_exercises_legacy_for_primeness->python_basics_python_0220_for
python_exercises_legacy_for_primeness->python_basics_python_0225_range
python_exercises_legacy_for_primeness->python_exercises_legacy_while_primeness
python_exercises_legacy_dict_keyerror
Exercise: Dictionary: Errors?
python_exercises_legacy_dict_keyerror->python_basics_python_0150_datatypes_overview_compound
python_exercises_csv_csv_db
Exercise: Read CSV File, Write into Sqlite3 Database
python_exercises_csv_csv_db->python_basics_python_0139_commandline_argv
python_db_sqlite3
DBAPI 2: sqlite3
python_exercises_csv_csv_db->python_db_sqlite3
python_exercises_csv_csv_module
Exercise: Read CSV File
python_exercises_csv_csv_module->python_basics_python_0139_commandline_argv
python_exercises_csv_csv_module->python_advanced_python_1010_generators_yield
python_exercises_csv_csv_module->python_advanced_modules
python_misc_csv
CSV Files
python_exercises_csv_csv_module->python_misc_csv
python_exercises_sensors_project_setup
Project Setup
python_exercises_sensors_sensor_const
Exercise: Basic “Sensor”
python_exercises_sensors_project_setup->python_exercises_sensors_sensor_const
python_exercises_sensors_sensor_const->python_exercises_sensors_project_setup
python_advanced_oo_methods
Methods
python_exercises_sensors_sensor_const->python_advanced_oo_methods
python_exercises_herdt_max_numbers
Exercise: Determine Maximum of Two Numbers
python_exercises_herdt_max_numbers->python_basics_python_0140_variables
python_exercises_herdt_max_numbers->python_basics_python_0139_commandline_argv
python_exercises_herdt_max_numbers->python_basics_python_0170_if
python_exercises_herdt_swap
Exercise: Swap Two Variables
python_exercises_herdt_max_numbers->python_exercises_herdt_swap
python_exercises_herdt_swap->python_basics_python_0140_variables
python_exercises_herdt_swap->python_basics_python_0150_datatypes_overview
python_exercises_herdt_swap->python_basics_python_0120_helloworld
python_exercises_herdt_boolean
Exercise: Boolean Expressions
python_exercises_herdt_swap->python_exercises_herdt_boolean
python_exercises_herdt_username_password
Exercise: Username/Password Check
python_exercises_herdt_username_password->python_basics_python_0170_if
python_exercises_herdt_greeting
Exercise: Greeting, Depending on Time of Day
python_exercises_herdt_username_password->python_exercises_herdt_greeting
python_exercises_herdt_greeting->python_basics_python_0170_if
python_exercises_herdt_greeting->python_exercises_herdt_max_numbers
python_exercises_herdt_boolean->python_basics_python_0160_boolean
python_exercises_herdt_while_even_numbers
Exercise: Even Numbers (while)
python_exercises_herdt_while_even_numbers->python_basics_python_0139_commandline_argv
python_exercises_herdt_while_even_numbers->python_basics_python_0193_while
python_exercises_herdt_while_even_numbers->python_exercises_herdt_username_password
python_exercises_userdb_mqtt_publish_csv
Exercise: MQTT: Publish User Records
python_exercises_userdb_user_json
Exercise: Convert User Record To JSON And Back
python_exercises_userdb_mqtt_publish_csv->python_exercises_userdb_user_json
python_exercises_userdb_userdb_module
Exercise: Refactoring - Extract Both CSV Formats Into Module
python_exercises_userdb_user_json->python_exercises_userdb_userdb_module
python_exercises_userdb_csvreader
Exercise: Read CSV File (csv.reader)
python_exercises_userdb_csvreader->python_basics_python_0139_commandline_argv
python_exercises_userdb_csvreader->python_misc_csv
python_exercises_userdb_user_class_person
Exercise: Away From Raw Dictionaries
python_exercises_userdb_user_class_person->python_exercises_userdb_user_json
python_exercises_userdb_user_class_person->python_exercises_userdb_userdb_module
python_advanced_oo_namedtuple
collections.namedtuple
python_exercises_userdb_user_class_person->python_advanced_oo_namedtuple
python_exercises_userdb_userdb_module->python_exercises_userdb_csvreader
python_exercises_userdb_csvdictreader_function
Exercise: Refactoring - Extract CSV Reading Into Function (csv.dictreader)
python_exercises_userdb_userdb_module->python_exercises_userdb_csvdictreader_function
python_exercises_userdb_userdb_module->python_advanced_modules
python_exercises_userdb_csvdictreader
Exercise: Read CSV File (csv.dictreader)
python_exercises_userdb_csvdictreader->python_basics_python_0139_commandline_argv
python_exercises_userdb_csvdictreader->python_exercises_userdb_csvreader
python_exercises_userdb_csvdictreader->python_misc_csv
python_exercises_userdb_csvreader_function
Exercise: Refactoring - Extract CSV Reading Into Function (csv.reader)
python_exercises_userdb_csvreader_function->python_basics_python_0270_functions
python_exercises_userdb_csvreader_function->python_exercises_userdb_csvreader
python_exercises_userdb_csvdictreader_function->python_basics_python_0270_functions
python_exercises_userdb_csvdictreader_function->python_exercises_userdb_csvdictreader
python_advanced_python_1010_generators_yield->python_basics_python_0270_functions
python_advanced_python_1010_generators_yield->python_basics_python_0220_for
python_advanced_python_1010_generators_yield->python_basics_python_0225_range
python_advanced_python_1010_generators_yield->python_basics_python_0200_sequential_types
python_advanced_iteration_generation
Iteration, Comprehensions, and Generators
python_advanced_iteration_generation->python_basics_python_0220_for
python_advanced_exec
The exec() Function
python_advanced_exec->python_basics_python_0500_files
python_advanced_exec->python_basics_python_0450_dictionaries
python_advanced_starargs
Positional and Keyword Arguments
python_advanced_starargs->python_basics_python_0270_functions
python_advanced_exceptions
Exception Handling
python_advanced_exceptions->python_basics_python_0140_variables
python_advanced_exceptions->python_basics_python_0270_functions
python_advanced_oo_inheritance
Inheritance
python_advanced_exceptions->python_advanced_oo_inheritance
python_advanced_comprehensions
Comprehensions (List, Dictionary, Set)
python_advanced_comprehensions->python_basics_python_0150_datatypes_overview_compound
python_advanced_closures
Closures
python_advanced_closures->python_basics_python_0270_functions
python_advanced_decorators
Decorators
python_advanced_decorators->python_basics_python_0270_functions
python_advanced_decorators->python_advanced_starargs
python_advanced_decorators->python_advanced_closures
python_advanced_context_mgr
Context Managers: The with Statement
python_advanced_context_mgr->python_advanced_iteration_generation
python_advanced_context_mgr->python_advanced_exceptions
python_advanced_oo_classes_and_dicts
Classes And Dictionaries
python_advanced_context_mgr->python_advanced_oo_classes_and_dicts
python_advanced_oo_methods->python_advanced_oo_classes_and_dicts
python_advanced_oo_namedtuple->python_advanced_oo_classes_and_dicts
python_advanced_oo_inheritance->python_advanced_oo_classes_and_dicts
python_advanced_oo_constructor
Constructor
python_advanced_oo_inheritance->python_advanced_oo_constructor
python_advanced_oo_classes_and_dicts->python_basics_python_0150_datatypes_overview_compound
python_advanced_oo_constructor->python_advanced_oo_classes_and_dicts
python_advanced_oo_properties
Properties
python_advanced_oo_properties->python_advanced_oo_classes_and_dicts
python_advanced_oo_str_repr
str() And repr()
python_advanced_oo_str_repr->python_advanced_oo_methods
python_advanced_oo_abc
Abstract Base Classes (abc), And Duck Typing
python_advanced_oo_abc->python_advanced_oo_inheritance
python_advanced_oo_operator_overloading
Operator Overloading
python_advanced_oo_operator_overloading->python_advanced_oo_classes_and_dicts
python_advanced_multithreading_mutex
Race Conditions, and Mutexes
python_advanced_multithreading_basics
Multithreading (Python)
python_advanced_multithreading_mutex->python_advanced_multithreading_basics
python_advanced_multithreading_basics->python_advanced_oo_inheritance
python_advanced_multithreading_exam_questions
Multithreading: Exam Questions
python_advanced_multithreading_exam_questions->python_advanced_multithreading_mutex
python_advanced_multithreading_exam_questions->python_advanced_multithreading_basics
python_db_dbapi2
DBAPI 2
python_db_sqlite3->python_db_dbapi2
python_db_postgres
DBAPI 2: PostgreSQL
python_db_postgres->python_db_dbapi2
python_db_dbapi2->python_basics_python_0220_for
python_db_dbapi2->python_advanced_python_1010_generators_yield
python_db_dbapi2->python_advanced_modules
python_misc_csv->python_basics_python_0500_files
python_misc_csv->python_basics_python_0150_datatypes_overview_compound
python_misc_csv->python_basics_python_0220_for
python_misc_encoding->python_basics_python_0150_datatypes_overview
python_misc_encoding->python_basics_python_0320_strings_methods
python_misc_import
The import Statement (incomplete)
python_misc_import->python_advanced_modules
python_misc_vscode
Visual Studio Code for Python Programming
python_misc_mqtt
MQTT
python_swdev_venv
Virtual Environments
python_misc_mqtt->python_swdev_venv
python_misc_ai_k_means
K-Means
python_misc_ai_machine_learning_intro
Machine Learning: Concepts and Terminology
python_misc_ai_k_means->python_misc_ai_machine_learning_intro
python_misc_ai_linear_regression
Linear Regression
python_misc_ai_k_means->python_misc_ai_linear_regression
python_misc_ai_k_means->python_swdev_venv
python_misc_ai_linear_regression->python_misc_ai_machine_learning_intro
python_misc_ai_linear_regression->python_swdev_venv
python_misc_pandas_iloc
Pandas: Selecting Rows (And Columns) With iloc[]
python_misc_pandas_iloc->python_basics_python_0210_indexing_slicing
python_misc_pandas_indexes
Pandas: Indexes
python_misc_pandas_iloc->python_misc_pandas_indexes
python_misc_pandas_basics
Pandas: Basics (DataFrame And Series)
python_misc_pandas_iloc->python_misc_pandas_basics
python_misc_pandas_indexes->python_misc_pandas_iloc
python_misc_pandas_indexes->python_misc_pandas_basics
python_misc_pandas_loc
Pandas: Selecting Rows (And Columns) With loc[]
python_misc_pandas_indexes->python_misc_pandas_loc
python_misc_pandas_loc->python_basics_python_0210_indexing_slicing
python_misc_pandas_loc->python_misc_pandas_iloc
python_misc_pandas_loc->python_misc_pandas_indexes
python_misc_pandas_loc->python_misc_pandas_basics
python_misc_pandas_mod_col
Pandas: Adding/Modifying Columns
python_misc_pandas_mod_col->python_misc_pandas_basics
python_misc_pandas_filters
Pandas: Filters
python_misc_pandas_filters->python_misc_pandas_indexes
python_misc_pandas_filters->python_misc_pandas_basics
python_misc_pandas_add_rows
Pandas: Adding Rows
python_misc_pandas_add_rows->python_misc_pandas_mod_col
python_drafts_argparse
Commandline Parsing with argparse
python_drafts_argparse->python_basics_python_0139_commandline_argv
python_drafts_setuptools
Package Installation (setuptools)
python_drafts_setuptools->python_swdev_venv
python_swdev_pip
Python Package Index
python_drafts_setuptools->python_swdev_pip
python_drafts_matplotlib
Matplotlib
python_drafts_matplotlib->python_swdev_venv
python_drafts_matplotlib->python_swdev_pip
python_drafts_asyncio
asyncio
python_swdev_venv->python_misc_import
python_swdev_venv->python_swdev_pip
python_swdev_pip->python_misc_import
python_swdev_unittest
The unittest Module
python_swdev_unittest->python_advanced_modules
python_swdev_unittest->python_advanced_oo_inheritance
python_swdev_pytest_intro
pytest Introduction, By Example
python_swdev_pytest_intro->python_advanced_modules
cxx11_perfect_forwarding
Perfect Forwarding
cxx11_new_language_features_move_pf_overview
Lvalues, Rvalues, And Moving
cxx11_perfect_forwarding->cxx11_new_language_features_move_pf_overview
cxx11_filesystem
std::filesystem
cxx11_functions_functions_bind
std::bind
cxx11_smart_pointers_closing_words
Smart Pointers: Closing Words
cxx11_functions_functions_bind->cxx11_smart_pointers_closing_words
cxx11_functions_functions_function
std::function
cxx11_functions_functions_function->cxx11_functions_functions_bind
cxx11_smart_pointers_shared_ptr
std::shared_ptr
cxx11_smart_pointers_closing_words->cxx11_smart_pointers_shared_ptr
cxx11_smart_pointers_unique_ptr
std::unique_ptr
cxx11_smart_pointers_closing_words->cxx11_smart_pointers_unique_ptr
cxx11_smart_pointers_introduction
Introduction
cxx11_new_language_features_miscellaneous
Miscellaneous
cxx11_smart_pointers_introduction->cxx11_new_language_features_miscellaneous
cxx11_smart_pointers_shared_ptr->cxx11_smart_pointers_introduction
cxx11_smart_pointers_shared_ptr->cxx11_smart_pointers_unique_ptr
cxx11_smart_pointers_unique_ptr->cxx11_smart_pointers_introduction
cxx11_smart_pointers_introduction_livehack
(Trying To) Handwrite A Smart Pointer Class in C++ Before C++11
cxx11_smart_pointers_introduction_livehack->cxx11_smart_pointers_introduction
cxx11_smart_pointers_weak_ptr
std::weak_ptr
cxx11_smart_pointers_weak_ptr->cxx11_smart_pointers_introduction
cxx11_smart_pointers_weak_ptr->cxx11_smart_pointers_shared_ptr
cxx11_embedded_problems_variant_manual_if
std::variant (Manual Virtual Dispatch, Using if)
cxx11_embedded_problems_unrelated
Unrelated (Duck-Typed)
cxx11_embedded_problems_variant_manual_if->cxx11_embedded_problems_unrelated
cxx11_miscellaneous_variant
New-Style Union: std::variant
cxx11_embedded_problems_variant_manual_if->cxx11_miscellaneous_variant
cxx11_embedded_problems_related_no_virtual
Non-Virtual, But Related
cxx11_embedded_problems_unrelated->cxx11_embedded_problems_related_no_virtual
cxx11_embedded_problems_variant_automatic_visit
std::variant (Automatic Virtual Dispatch Using Template Method)
cxx11_embedded_problems_variant_manual_visit
std::variant (Manual Virtual Dispatch, Using std::visit)
cxx11_embedded_problems_variant_automatic_visit->cxx11_embedded_problems_variant_manual_visit
cxx11_embedded_problems_variant_manual_visit->cxx11_embedded_problems_variant_manual_if
cxx11_embedded_problems_virtual_vs_nonvirtual
Replacing virtual With std::variant<> (In Real Life)
cxx11_embedded_problems_virtual_vs_nonvirtual->cxx11_miscellaneous_variant
cxx03_inheritance_oo_interface
C++ “Interfaces”
cxx11_embedded_problems_virtual_vs_nonvirtual->cxx03_inheritance_oo_interface
cxx11_embedded_problems_classic_virtual
Classic Virtual
cxx11_embedded_problems_classic_virtual->cxx03_inheritance_oo_interface
cxx11_embedded_problems_related_no_virtual->cxx11_embedded_problems_classic_virtual
cxx11_miscellaneous_any
A Better void*: std::any
cxx11_new_language_features_miscellaneous->cxx11_new_language_features_move_pf_overview
cxx11_new_language_features_auto
Duck Typing (Err, auto) Without A Duck
cxx11_new_language_features_strongly_typed_enums
Strongly Typed enum
cxx11_new_language_features_auto->cxx11_new_language_features_strongly_typed_enums
cxx11_new_language_features_range_based_for
Range Based for Loops: Introduction
cxx11_new_language_features_brace_initialization_intro
Brace Initialization: Introduction
cxx11_new_language_features_range_based_for->cxx11_new_language_features_brace_initialization_intro
cxx11_new_language_features_delete
= delete
cxx11_new_language_features_default
= default
cxx11_new_language_features_constexpr
constexpr
cxx11_new_language_features_final
final
cxx11_new_language_features_delegating_ctor
Delegating Constructor
cxx11_new_language_features_delegating_ctor->cxx11_new_language_features_range_based_for
cxx11_new_language_features_modules
Modules
cxx11_new_language_features_livehack_smartptr_move
SmartPtr With Move Semantics
cxx11_new_language_features_livehack_smartptr_move->cxx11_smart_pointers_introduction_livehack
cxx11_new_language_features_livehack_smartptr_move->cxx11_new_language_features_move_pf_overview
cxx11_new_language_features_override
override
cxx11_new_language_features_range_based_for_map
Case Study: Range Based for On std::map
cxx11_new_language_features_range_based_for_map->cxx11_new_language_features_range_based_for
cxx11_new_language_features_structured_binding
Tuple Unpacking (Err, Structured Binding)
cxx11_new_language_features_structured_binding->cxx11_new_language_features_auto
c_program_sanity_discrete_values
Discrete Values - enum
cxx11_new_language_features_strongly_typed_enums->c_program_sanity_discrete_values
cxx11_new_language_features_lambda_lambda_capture
Lambda: More Capturing
cxx11_new_language_features_lambda_lambda
Lambda
cxx11_new_language_features_lambda_lambda_capture->cxx11_new_language_features_lambda_lambda
cxx11_new_language_features_lambda_lambda_is_functor
Live Hacking: Handwritten Functors (Too Much Boilerplate)
cxx11_new_language_features_lambda_lambda_is_functor_pitfall
Live Hacking: Handwritten Functors, And Capturing By Reference (Pitfalls)
cxx11_new_language_features_lambda_lambda_is_functor_pitfall->cxx11_new_language_features_lambda_lambda_is_functor
cxx11_new_language_features_coroutines_intro
Coroutines: An Overview
cxx11_new_language_features_concepts_links
Concepts: Links
cxx11_new_language_features_concepts_intro
Concepts: Overview
cxx11_new_language_features_concepts_links->cxx11_new_language_features_concepts_intro
cxx11_new_language_features_concepts_writing_concepts
Writing Your Own Concepts
cxx11_new_language_features_concepts_writing_concepts->cxx11_new_language_features_concepts_intro
cxx11_new_language_features_move_pf_livehack_using_string_move
Using Move Semantics In Own Code
cxx11_new_language_features_move_pf_livehack_string_move
Implementing Move Semantics (class String, Live Hacked)
cxx11_new_language_features_move_pf_livehack_using_string_move->cxx11_new_language_features_move_pf_livehack_string_move
cxx11_new_language_features_move_pf_livehack_using_string_move->cxx11_new_language_features_move_pf_overview
cxx11_new_language_features_move_pf_livehack_string_move->cxx11_new_language_features_move_pf_overview
cxx11_new_language_features_move_pf_overview->cxx11_smart_pointers_unique_ptr
cxx03_functions_and_methods_references
References
cxx11_new_language_features_move_pf_overview->cxx03_functions_and_methods_references
cxx03_data_encapsulation_object_copy
Object Copy (And Resource Management): There Be Dragons
cxx11_new_language_features_move_pf_overview->cxx03_data_encapsulation_object_copy
cxx11_new_language_features_move_pf_afterword
Afterword, Further Reading
cxx11_new_language_features_move_pf_afterword->cxx11_perfect_forwarding
cxx11_new_language_features_move_pf_afterword->cxx11_new_language_features_move_pf_livehack_using_string_move
cxx11_new_language_features_ranges_links
Ranges And Views: Links
cxx11_new_language_features_ranges_intro
Ranges: Overview
cxx11_new_language_features_ranges_links->cxx11_new_language_features_ranges_intro
cxx11_new_language_features_ranges_good_bad
Ranges And Views: Good Or Bad?
cxx11_new_language_features_ranges_links->cxx11_new_language_features_ranges_good_bad
cxx11_new_language_features_brace_initialization_mess
Brace Initialization: A Mess
cxx11_new_language_features_brace_initialization_mess->cxx11_new_language_features_brace_initialization_intro
cxx11_new_language_features_brace_initialization_implementor_view
std::initializer_list: Brace Initialization, Implementor’s View
cxx11_new_language_features_brace_initialization_mess->cxx11_new_language_features_brace_initialization_implementor_view
cxx11_new_language_features_brace_initialization_intro->cxx11_new_language_features_auto
cxx11_multithreading_atomics
std::atomic
cxx11_multithreading_race_conditions
Race Conditions
cxx11_multithreading_atomics->cxx11_multithreading_race_conditions
cxx11_multithreading_race_conditions->linux_sysprog_posix_threads_exercise_pthcreate_racecondition
cxx11_multithreading_thread
Threads in C++
cxx11_multithreading_race_conditions->cxx11_multithreading_thread
cxx11_multithreading_promise_future
std::promise and std::future (And Some std::chrono) (Some Live Hacking)
cxx11_multithreading_promise_future->cxx11_multithreading_thread
cxx11_multithreading_thread->linux_sysprog_posix_threads_lifecycle
cxx11_multithreading_introduction
Threads Introduction
cxx11_multithreading_thread->cxx11_multithreading_introduction
cxx11_multithreading_scoped_locking
Scoped Locking
cxx11_multithreading_mutex
std::mutex And Friends
cxx11_multithreading_scoped_locking->cxx11_multithreading_mutex
cxx11_multithreading_mutex->linux_sysprog_posix_threads_mutex
cxx11_multithreading_mutex->cxx11_multithreading_race_conditions
cxx11_multithreading_introduction->cxx11_functions_functions_function
cxx11_multithreading_condition_variable
std::condition_variable (Live Hacking Multithreaded Queue)
cxx11_multithreading_condition_variable->linux_sysprog_posix_threads_condition_variable
cxx11_multithreading_condition_variable->cxx11_multithreading_promise_future
cxx11_multithreading_condition_variable->cxx11_multithreading_mutex
cxx11_multithreading_chrono
std::chrono
cxx11_introduction_overview_livehacking
A Live-Hacked Tour Around The New C++
cxx11_exercises_bag_copy
Exercise: Bag Of Items, By Copy
cxx11_exercises_bag_copy->cxx11_new_language_features_auto
cxx11_exercises_bag_copy->cxx11_new_language_features_range_based_for
cxx11_exercises_bag_shared
Exercise: Bag Of Items, By Shared Reference
cxx11_exercises_bag_shared->cxx11_smart_pointers_shared_ptr
cxx11_exercises_bag_shared->cxx11_smart_pointers_weak_ptr
cxx11_exercises_bag_shared->cxx11_new_language_features_auto
cxx11_exercises_bag_shared->cxx11_new_language_features_range_based_for
cxx11_exercises_bag_unique
Exercise: Bag Of Items, By Unique Reference
cxx11_exercises_bag_shared->cxx11_exercises_bag_unique
cxx11_exercises_bag_unique->cxx11_smart_pointers_unique_ptr
cxx11_exercises_bag_unique->cxx11_new_language_features_auto
cxx11_exercises_bag_unique->cxx11_new_language_features_range_based_for
cxx11_exercises_bag_unique->cxx11_exercises_bag_copy
cxx03_introduction
Introduction
c_introduction_installation
Installation
cxx03_introduction->c_introduction_installation
cxx03_inheritance_oo_virtual_method
Virtual Methods
cxx03_inheritance_oo_interface->cxx03_inheritance_oo_virtual_method
cxx03_inheritance_oo_virtual_destructor
Virtual Destructors
cxx03_inheritance_oo_interface->cxx03_inheritance_oo_virtual_destructor
cxx03_inheritance_oo_polymorphism
Polymorphic Usage Of Objects
cxx03_inheritance_oo_interface->cxx03_inheritance_oo_polymorphism
cxx03_inheritance_oo_private_protected
Inheritance: private, protected (Implementation Inheritance)
cxx03_inheritance_oo_basics
Inheritance Basics
cxx03_inheritance_oo_private_protected->cxx03_inheritance_oo_basics
cxx03_data_encapsulation_classes_objects
Classes and Objects
cxx03_inheritance_oo_basics->cxx03_data_encapsulation_classes_objects
cxx03_inheritance_oo_virtual_method->cxx03_inheritance_oo_basics
cxx03_inheritance_oo_destructor
Destructors And Inheritance
cxx03_inheritance_oo_destructor->cxx03_inheritance_oo_basics
cxx03_data_encapsulation_ctor_dtor
More Constructors, Destructors
cxx03_inheritance_oo_destructor->cxx03_data_encapsulation_ctor_dtor
cxx03_inheritance_oo_virtual_destructor->cxx03_inheritance_oo_virtual_method
cxx03_inheritance_oo_virtual_destructor->cxx03_inheritance_oo_destructor
cxx03_inheritance_oo_virtual_destructor->cxx03_inheritance_oo_polymorphism
cxx03_inheritance_oo_polymorphism->cxx03_inheritance_oo_virtual_method
cxx03_functions_and_methods_this
this
cxx03_functions_and_methods_references->cxx03_functions_and_methods_this
cxx03_functions_and_methods_methods
Methods
cxx03_functions_and_methods_overloading
Overloading
cxx03_functions_and_methods_methods->cxx03_functions_and_methods_overloading
cxx03_functions_and_methods_static
static Methods
cxx03_functions_and_methods_static->cxx03_functions_and_methods_references
cxx03_functions_and_methods_operators
Operator Overloading
cxx03_functions_and_methods_operators->cxx03_functions_and_methods_static
cxx03_functions_and_methods_exercise_class_rectangle
Exercise (FH): class rectangle
cxx03_functions_and_methods_exercise_class_point
Exercise (FH): class point
cxx03_functions_and_methods_exercise_class_rectangle->cxx03_functions_and_methods_exercise_class_point
cxx03_functions_and_methods_exercise_class_cuboid
Exercise (FH): class cuboid
cxx03_functions_and_methods_exercise_class_point3d
Exercise (FH): class point3d
cxx03_functions_and_methods_exercise_class_cuboid->cxx03_functions_and_methods_exercise_class_point3d
cxx03_functions_and_methods_exercise_class_point3d->cxx03_functions_and_methods_exercise_class_point
cxx03_functions_and_methods_static_member_variables
static Member Variables
cxx03_functions_and_methods_static_member_variables->cxx03_functions_and_methods_static
cxx03_functions_and_methods_this->cxx03_functions_and_methods_methods
cxx03_functions_and_methods_overloading->cxx03_data_encapsulation_classes_objects
cxx03_data_encapsulation_object_copy->cxx03_data_encapsulation_ctor_dtor
cxx03_data_encapsulation_classes_objects->cxx03_introduction
cxx03_data_encapsulation_c
Object Oriented Programming In Good Ol’ C
cxx03_data_encapsulation_classes_objects->cxx03_data_encapsulation_c
cxx03_data_encapsulation_initializer_list
Constructors: Member Initialization
cxx03_data_encapsulation_ctor_custom
Custom Constructor
cxx03_data_encapsulation_initializer_list->cxx03_data_encapsulation_ctor_custom
cxx03_data_encapsulation_ctor_custom->cxx03_data_encapsulation_classes_objects
cxx03_data_encapsulation_c->cxx03_introduction
cxx03_data_encapsulation_ctor_default
Default Constructor
cxx03_data_encapsulation_ctor_default->cxx03_data_encapsulation_ctor_custom
cxx03_data_encapsulation_ctor_dtor->cxx03_data_encapsulation_ctor_custom
cxx03_data_encapsulation_ctor_dtor->cxx03_data_encapsulation_ctor_default
cxx03_data_encapsulation_copy_basics
Copy Constructor, Assignment Operator
cxx03_data_encapsulation_copy_basics->cxx03_data_encapsulation_ctor_custom
cxx03_data_encapsulation_copy_basics->cxx03_data_encapsulation_ctor_default
cxx03_stl_vector_copy_etc
std::vector (And std::copy())
cxx03_stl_basics
Standard Template Library: Basics
cxx03_stl_vector_copy_etc->cxx03_stl_basics
cxx03_templates_class_templates
Class Templates
cxx03_stl_basics->cxx03_templates_class_templates
cxx03_stl_associative_containers_map
std::map
cxx03_stl_associative_containers_basics
Associative Containers
cxx03_stl_associative_containers_map->cxx03_stl_associative_containers_basics
cxx03_stl_associative_containers_basics->cxx03_stl_basics
cxx03_stl_associative_containers_multimap
multimap<>
cxx03_stl_associative_containers_multimap->cxx03_stl_associative_containers_basics
cxx03_stl_algorithm_copy
copy<>
cxx03_stl_algorithm_copy->cxx03_stl_basics
cxx03_stl_algorithm_find
find<>: Sequential Search, by Equality
cxx03_stl_algorithm_find->cxx03_stl_basics
cxx03_stl_algorithm_lower_bound
lower_bound<>: On Sorted Sequence
cxx03_stl_algorithm_lower_bound->cxx03_stl_basics
cxx03_stl_algorithm_binary_search
binary_search<>: On Sorted Sequence
cxx03_stl_algorithm_lower_bound->cxx03_stl_algorithm_binary_search
cxx03_stl_algorithm_sort
sort<>
cxx03_stl_algorithm_lower_bound->cxx03_stl_algorithm_sort
cxx03_stl_algorithm_binary_search->cxx03_stl_basics
cxx03_stl_algorithm_binary_search->cxx03_stl_algorithm_sort
cxx03_stl_algorithm_sort->cxx03_stl_basics
cxx03_stl_algorithm_find_if
find_if<>: Sequential Search, Customizable
cxx03_stl_algorithm_find_if->cxx03_stl_algorithm_find
cxx03_stl_algorithm_for_each
for_each<>
cxx03_stl_algorithm_for_each->cxx03_stl_basics
cxx03_stl_algorithm_reverse
reverse<>: Reversing In-Place
cxx03_stl_algorithm_reverse->cxx03_stl_basics
cxx03_stl_algorithm_reverse_copy
reverse_copy<>: Copying and Reversing
cxx03_stl_algorithm_reverse_copy->cxx03_stl_basics
cxx03_stl_sequential_containers_list
list<>
cxx03_stl_sequential_containers_basics
Sequential Containers
cxx03_stl_sequential_containers_list->cxx03_stl_sequential_containers_basics
cxx03_stl_sequential_containers_basics->cxx03_stl_basics
cxx03_stl_sequential_containers_vector
vector<>
cxx03_stl_sequential_containers_vector->cxx03_stl_sequential_containers_basics
cxx03_stl_allocator_basics
Allocator Basics
cxx03_stl_exercises_reverse_string_exercise
Exercise: Reverse a String
cxx03_stl_exercises_reverse_string_solution
Solution: Reverse a String
cxx03_stl_exercises_reverse_string_solution->cxx03_stl_algorithm_reverse
cxx03_stl_exercises_reverse_string_solution->cxx03_stl_algorithm_reverse_copy
cxx03_stl_exercises_reverse_string_solution->cxx03_stl_exercises_reverse_string_exercise
cxx03_templates_function_templates
Function Templates
cxx03_templates_class_templates->cxx03_templates_function_templates
cxx03_exceptions_try_catch
try - catch
cxx03_templates_function_templates->cxx03_exceptions_try_catch
cxx03_exceptions_try_catch->cxx03_data_encapsulation_classes_objects
cxx03_exceptions_basics
Basics
cxx03_exceptions_try_catch->cxx03_exceptions_basics
cxx03_standard_library_miscellanea_string
std::string
cxx03_exercises_userdb_user_const
Exercise: Use const
cxx03_exercises_userdb_user_const->cxx03_functions_and_methods_references
cxx03_exercises_userdb_user_access_methods
Exercise: Access Methods for Members
cxx03_exercises_userdb_user_const->cxx03_exercises_userdb_user_access_methods
cxx03_exercises_userdb_user_access_methods->cxx03_functions_and_methods_methods
cxx03_exercises_userdb_user_simple_method
Exercise: Simple Method (Users Age By n Years)
cxx03_exercises_userdb_user_access_methods->cxx03_exercises_userdb_user_simple_method
cxx03_exercises_userdb_user_simple_method->cxx03_functions_and_methods_methods
cxx03_exercises_userdb_user_const_members
Exercise: const Members
cxx03_exercises_userdb_user_simple_method->cxx03_exercises_userdb_user_const_members
cxx03_exercises_userdb_userdb_search_notfound_exception
Exercise: Search, “User Not Found” Exception
cxx03_exercises_userdb_userdb_search_notfound_exception->cxx03_exceptions_try_catch
cxx03_exercises_userdb_userdb_search_find_if
Exercise: Search a User By Lastname (std::find_if)
cxx03_exercises_userdb_userdb_search_notfound_exception->cxx03_exercises_userdb_userdb_search_find_if
cxx03_exercises_userdb_userdb_search
Exercise: Search a User By Lastname
cxx03_exercises_userdb_userdb_search_find_if->cxx03_exercises_userdb_userdb_search
cxx03_exercises_userdb_user_const_members->cxx03_data_encapsulation_ctor_dtor
cxx03_exercises_userdb_user_ctor
Exercise: Transform struct User Into A Class
cxx03_exercises_userdb_user_const_members->cxx03_exercises_userdb_user_ctor
cxx03_exercises_userdb_userdb_insert
Exercise: Insert a User into UserDB
cxx03_exercises_userdb_userdb_search->cxx03_exercises_userdb_userdb_insert
cxx03_exercises_userdb_userdb_insert->cxx03_stl_basics
cxx03_exercises_userdb_userdb_vector_basic
Exercise: Use std::vector in UserDB
cxx03_exercises_userdb_userdb_insert->cxx03_exercises_userdb_userdb_vector_basic
cxx03_exercises_userdb_userdb_vector_basic->cxx03_stl_basics
cxx03_exercises_userdb_user_default_ctor
Exercise: Default Constructor (was: Arrays of Objects)
cxx03_exercises_userdb_userdb_vector_basic->cxx03_exercises_userdb_user_default_ctor
cxx03_exercises_userdb_user_default_ctor->cxx03_data_encapsulation_ctor_dtor
cxx03_exercises_userdb_user_default_ctor->cxx03_exercises_userdb_user_const
cxx03_exercises_userdb_user_ctor->cxx03_data_encapsulation_ctor_custom
cxx03_exercises_userdb_user_ctor->cxx03_standard_library_miscellanea_string
cxx03_exercises_misc_american_flag
Exercise: Paint the American Flag Onto Standard Output
cxx03_exercises_misc_passwd_parser
Exercise: Parse A Line From /etc/passwd
cxx03_exercises_misc_passwd_parser->cxx03_exceptions_try_catch
cxx03_exercises_misc_passwd_parser->cxx03_standard_library_miscellanea_string
cxx03_exercises_misc_sum_integers_from_stdin
Exercise: Sum of Integers Coming From cin
cxx03_exercises_misc_fh_moodle_quiz
FH/Moodle Quiz: C++
cxx03_exercises_misc_fh_moodle_quiz->cxx03_functions_and_methods_overloading
cxx03_dynamic_memory_todo
Dynamic Memory (To Be Done)
c_program_sanity_integral_types
Know Your Integers
c_program_sanity_discrete_values->c_program_sanity_integral_types
c_program_sanity_valgrind
valgrind
c_program_sanity_explicit_type_safety
Explict Type Safety
c_program_sanity_valgrind->c_program_sanity_explicit_type_safety
c_program_sanity_const
Correctness - const
c_program_sanity_static
Visibility - static
c_program_sanity_const->c_program_sanity_static
c_program_sanity_static->c_program_sanity_discrete_values
c_program_sanity_introduction
Sanity and Readabilty
c_program_sanity_integral_types->c_program_sanity_introduction
c_advanced_language_features_alignment
Alignment
c_program_sanity_introduction->c_advanced_language_features_alignment
c_program_sanity_struct_initialization
Struct Initialization
c_program_sanity_explicit_type_safety->c_program_sanity_struct_initialization
c_program_sanity_struct_initialization->c_program_sanity_const
c_pointers_and_arrays_pointers_and_arrays
Pointers and Arrays
c_pointers_and_arrays_exercise_swap
Exercise: Function That Swaps Two Variables
c_pointers_and_arrays_pointers_and_arrays->c_pointers_and_arrays_exercise_swap
c_pointers_and_arrays_pointers_and_function_arguments
Pointers as Function Parameters
c_pointers_and_arrays_exercise_swap->c_pointers_and_arrays_pointers_and_function_arguments
c_pointers_and_arrays_pointers_and_addresses
Pointers and Addresses
c_pointers_and_arrays_pointers_and_function_arguments->c_pointers_and_arrays_pointers_and_addresses
c_pointers_and_arrays_command_line_arguments
Commandline Arguments
c_pointers_and_arrays_command_line_arguments->c_pointers_and_arrays_pointers_and_arrays
c_functions_and_program_structure_c_preprocessor_advanced
C Preprocessor: More
c_pointers_and_arrays_pointers_and_addresses->c_functions_and_program_structure_c_preprocessor_advanced
c_functions_and_program_structure_c_preprocessor
C Preprocessor: Basics
c_functions_and_program_structure_c_preprocessor_advanced->c_functions_and_program_structure_c_preprocessor
c_functions_and_program_structure_static_variables
Static Variables
c_functions_and_program_structure_c_preprocessor->c_functions_and_program_structure_static_variables
c_functions_and_program_structure_header_files
Header Files
c_functions_and_program_structure_static_variables->c_functions_and_program_structure_header_files
c_functions_and_program_structure_basics
Basics
c_program_flow_goto_and_labels
goto and Labels
c_functions_and_program_structure_basics->c_program_flow_goto_and_labels
c_functions_and_program_structure_external_variables
Extern/Global Variables
c_functions_and_program_structure_header_files->c_functions_and_program_structure_external_variables
c_functions_and_program_structure_external_variables->c_functions_and_program_structure_basics
c_types_operators_expressions_constants
Constants
c_types_operators_expressions_datatypes_size
Data Types, Sizes
c_types_operators_expressions_constants->c_types_operators_expressions_datatypes_size
c_types_operators_expressions_variable_names
Variable Names
c_types_operators_expressions_datatypes_size->c_types_operators_expressions_variable_names
c_types_operators_expressions_arithmetic_operators
Arithmetic Operators
c_types_operators_expressions_declarations
Variable Definitions
c_types_operators_expressions_arithmetic_operators->c_types_operators_expressions_declarations
c_types_operators_expressions_declarations->c_types_operators_expressions_constants
c_types_operators_expressions_increment_decrement_operators
Increment, Decrement
c_types_operators_expressions_type_conversions
Type Conversions
c_types_operators_expressions_increment_decrement_operators->c_types_operators_expressions_type_conversions
c_types_operators_expressions_relational_logical_operators
Relational and Logical Operators
c_types_operators_expressions_type_conversions->c_types_operators_expressions_relational_logical_operators
c_types_operators_expressions_precedence_and_order_of_evaluation
Precedence, Associativity
c_types_operators_expressions_conditional_expressions
?: - Conditional Expression
c_types_operators_expressions_precedence_and_order_of_evaluation->c_types_operators_expressions_conditional_expressions
c_types_operators_expressions_assignment_operators_and_expressions
Assignment with Calculation
c_types_operators_expressions_conditional_expressions->c_types_operators_expressions_assignment_operators_and_expressions
c_types_operators_expressions_introduction
Type System
c_types_operators_expressions_variable_names->c_types_operators_expressions_introduction
c_types_operators_expressions_relational_logical_operators->c_types_operators_expressions_arithmetic_operators
c_types_operators_expressions_bit_operators
Bit-Operators
c_types_operators_expressions_exercise_string_reduce
Exercise: Copy and Reduce String
c_types_operators_expressions_bit_operators->c_types_operators_expressions_exercise_string_reduce
c_types_operators_expressions_exercise_string_reduce->c_types_operators_expressions_increment_decrement_operators
c_introduction_external_variables_and_scope
Lifetime of Variables
c_types_operators_expressions_introduction->c_introduction_external_variables_and_scope
c_types_operators_expressions_assignment_operators_and_expressions->c_types_operators_expressions_bit_operators
c_introduction_exercise_string_read_line
Exercise: Read Line Into String from stdin
c_introduction_external_variables_and_scope->c_introduction_exercise_string_read_line
c_introduction_functions
Functions
c_introduction_exercise_histogram
Exercise: Character Histogram
c_introduction_functions->c_introduction_exercise_histogram
c_introduction_arrays
Arrays
c_introduction_exercise_histogram->c_introduction_arrays
c_introduction_character_arrays
Character Arrays
c_introduction_exercise_string_read_line->c_introduction_character_arrays
c_introduction_exercise_power_declaration
Exercise: Forward Declaration
c_introduction_character_arrays->c_introduction_exercise_power_declaration
c_introduction_introduction
Introduction
c_introduction_introduction->c_introduction_installation
c_introduction_exercise_power_declaration->c_introduction_functions
c_introduction_hello_world
Hello World
c_introduction_hello_world->c_introduction_introduction
c_introduction_exercise_fahrenheit_cpp
Exercise: Fahrenheit Table Using Macros
c_introduction_cpp_symbolic_constants
Symbolic Constants
c_introduction_exercise_fahrenheit_cpp->c_introduction_cpp_symbolic_constants
c_introduction_exercise_fahrenheit_for
Exercise: Fahrenheit Table Using for
c_introduction_cpp_symbolic_constants->c_introduction_exercise_fahrenheit_for
c_introduction_for_loop
for Loops
c_introduction_exercise_fahrenheit_for->c_introduction_for_loop
c_introduction_variables_and_arithmetic_expressions
Variables and Arithmetic
c_introduction_variables_and_arithmetic_expressions->c_introduction_hello_world
c_introduction_character_io
Character I/O
c_introduction_character_io->c_introduction_exercise_fahrenheit_cpp
c_introduction_exercise_wc
Exercise: wc For The Poor
c_introduction_arrays->c_introduction_exercise_wc
c_introduction_exercise_fahrenheit_float
Exercise: A Better Fahrenheit Table
c_introduction_for_loop->c_introduction_exercise_fahrenheit_float
c_introduction_exercise_fahrenheit_float->c_introduction_variables_and_arithmetic_expressions
c_introduction_exercise_wc->c_introduction_character_io
c_structures_basics
struct: Basics
c_structures_basics->c_pointers_and_arrays_command_line_arguments
c_structures_typedef
typedef: Type Alias
c_structures_structures_and_functions
struct: Functions
c_structures_typedef->c_structures_structures_and_functions
c_structures_structures_and_functions->c_structures_basics
c_performance_memory
Optimizations: Memory Optimizations
c_performance_computebound
Optimizations: Compute Bound Code
c_performance_memory->c_performance_computebound
c_performance_introduction
Optimization
c_performance_computebound->c_performance_introduction
c_performance_introduction->c_program_sanity_valgrind
c_program_flow_break_and_continue
break and continue
c_program_flow_goto_and_labels->c_program_flow_break_and_continue
c_program_flow_loops_do_while
Loops: do - while
c_program_flow_loops_while_and_for
Loops: while and for
c_program_flow_loops_do_while->c_program_flow_loops_while_and_for
c_program_flow_switch
switch
c_program_flow_loops_while_and_for->c_program_flow_switch
c_program_flow_break_and_continue->c_program_flow_loops_do_while
c_program_flow_else_if
else - if
c_program_flow_if_else
if - else
c_program_flow_else_if->c_program_flow_if_else
c_program_flow_statements_and_blocks
Statements and Blocks
c_program_flow_if_else->c_program_flow_statements_and_blocks
c_program_flow_switch->c_program_flow_else_if
c_program_flow_statements_and_blocks->c_types_operators_expressions_precedence_and_order_of_evaluation
c_profiling_oprofile
oprofile
c_profiling_callgrind
callgrind
c_profiling_oprofile->c_profiling_callgrind
c_profiling_gprof
GNU Profiler - gprof
c_profiling_callgrind->c_profiling_gprof
c_profiling_introduction
Introduction
c_profiling_gprof->c_profiling_introduction
c_profiling_introduction->c_performance_memory
c_memory_exercise_linked_list
Singly Linked List
c_memory_malloc
Dynamic Memory
c_memory_exercise_linked_list->c_memory_malloc
c_memory_malloc->c_structures_typedef
c_advanced_language_features_atomic
Compiler Intrinsics
c_advanced_language_features_alignment->c_advanced_language_features_atomic
c_advanced_language_features_volatile
Volatile
c_advanced_language_features_volatile->c_memory_exercise_linked_list
c_advanced_language_features_atomic->c_advanced_language_features_volatile
project_xxx_dirty_upgrade
Dirty Upgrade Path
project_xxx_debian_config
Get Debian 10 Kernel Config
project_xxx_dirty_upgrade->project_xxx_debian_config
project_xxx_yocto_kernel
Extract Kernel from Intel Yocto BSP
project_xxx_dirty_upgrade->project_xxx_yocto_kernel
project_xxx_hardware_bringup
Yocto Kernel Bringup on Customer Hardware
project_xxx_hardware_bringup->project_xxx_dirty_upgrade
project_xxx_wait_hardware
Wait for Customer Hardware
project_xxx_hardware_bringup->project_xxx_wait_hardware
project_xxx_debian_kernel_package
Finish: Debian Kernel Package etc.
project_xxx_debian_kernel_package->project_xxx_dirty_upgrade
project_xxx_debian_kernel_package->project_xxx_hardware_bringup
project_xxx_audio_chip
Audio Chip Bringup
project_xxx_debian_kernel_package->project_xxx_audio_chip
project_xxx_audio_chip->project_xxx_hardware_bringup
cxx_class_template
C++: Class Templates
cxx_inheritance_virtual
C++: Inheritance, Interfaces, virtual
cxx_dynamic_memory
C++: Dynamic Memory
cxx_ownership_raii
C++: Ownership/RAII
cxx_global_initialization
C++: Global Objects Initialization
cxx_stl_container_intro
C++: STL Containers (Intro)
cxx_templates_vs_interfaces
C++: Templates vs. Interfaces
cxx_exercises_sensor_interface
Exercise: Sensor Interface
cxx_exercises_sensor_interface->linux_toolchain_cmake_local
cxx_exercises_sensor_interface->cxx03_inheritance_oo_interface
cxx_exercises_sensor_w1_factory
Exercise: OneWire Sensor Factory
cxx_exercises_sensor_w1
Exercise: OneWire Sensor Class
cxx_exercises_sensor_w1_factory->cxx_exercises_sensor_w1
cxx_exercises_sensor_w1->linux_sysprog_fileio_exercise_w1_sensor
cxx_exercises_sensor_w1->cxx_exercises_sensor_interface
cxx_exercises_sensor_mock_nopoly
Exercise: MockSensor_nopoly (Non-Polymorphic)
cxx_exercises_sensor_mock_nopoly->linux_toolchain_cmake_local
cxx_exercises_sensor_mock_nopoly->cxx03_data_encapsulation_classes_objects
cxx_exercises_sensor_avg_nopoly
Exercise: AveragingSensor_nopoly (Non-Polymorphic)
cxx_exercises_sensor_avg_nopoly->linux_toolchain_cmake_local
cxx_exercises_sensor_avg_nopoly->cxx03_data_encapsulation_classes_objects
cxx_exercises_sensor_avg_nopoly->cxx03_data_encapsulation_initializer_list
cxx_exercises_sensor_avg_nopoly->cxx_exercises_sensor_mock_nopoly
cxx_exercises_hysteresis_nopoly
Exercise: Hysteresis_nopoly (Non-Polymorphic)
cxx_exercises_hysteresis_nopoly->linux_toolchain_cmake_local
cxx_exercises_hysteresis_nopoly->cxx03_data_encapsulation_classes_objects
cxx_exercises_hysteresis_nopoly->cxx_exercises_sensor_mock_nopoly
cxx_exercises_switch_mock_nopoly
Exercise: Mocking Switch (Non-Polymorphic)
cxx_exercises_hysteresis_nopoly->cxx_exercises_switch_mock_nopoly
cxx_exercises_switch_mock_nopoly->linux_toolchain_cmake_local
cxx_exercises_switch_mock_nopoly->cxx03_data_encapsulation_classes_objects
cxx_exercises_sensor_random_nopoly
Exercise: RandomSensor_nopoly (Non-Polymorphic)
cxx_exercises_sensor_random_nopoly->linux_toolchain_cmake_local
cxx_exercises_sensor_random_nopoly->cxx03_data_encapsulation_classes_objects
cxx_exercises_sensor_random_nopoly->cxx03_data_encapsulation_initializer_list
cxx_exercises_sensor_const_nopoly
Exercise: ConstantSensor_nopoly (Non-Polymorphic)
cxx_exercises_sensor_random_nopoly->cxx_exercises_sensor_const_nopoly
cxx_exercises_sensor_const_nopoly->linux_toolchain_cmake_local
cxx_exercises_sensor_const_nopoly->cxx03_data_encapsulation_classes_objects
cxx_exercises_display_led_stripe_nopoly
Exercise: LEDStripeDisplay_nopoly (Non-Polymorphic)
cxx_exercises_display_led_stripe_nopoly->linux_toolchain_cmake_local
cxx_exercises_display_led_stripe_nopoly->cxx03_data_encapsulation_classes_objects
cxx_exercises_display_led_stripe_nopoly->cxx_exercises_sensor_mock_nopoly
cxx_exercises_display_led_stripe_nopoly->cxx_exercises_switch_mock_nopoly
cxx_exercises_oo_shapes
OO Basics, Interfaces (Shapes)
cxx_exercises_oo_shapes->cxx03_inheritance_oo_interface
cxx_exercises_oo_shapes->cxx03_functions_and_methods_methods
cxx_exercises_oo_shapes->cxx03_functions_and_methods_static
cxx_exercises_oo_shapes->cxx03_functions_and_methods_operators
cxx_exercises_oo_shapes->cxx03_data_encapsulation_ctor_custom
cxx_exercises_stl_map
Exercise: std::map<>
cxx_exercises_stl_map->cxx03_stl_associative_containers_map
cxx_exercises_stl_uniq
Exercise: Uniquify A Sequence
cxx_exercises_stl_filter_odd
Exercise: Filter Odd Elements
cxx_exercises_stl_algo
Exercise: Algorithms
cxx_exercises_stl_algo->cxx03_stl_vector_copy_etc
cxx_exercises_stl_algo->cxx03_stl_algorithm_copy
cxx_exercises_stl_algo->cxx03_stl_algorithm_find
cxx_exercises_stl_filter_generic
Exercise: Generic Filter
cxx_exercises_stl_vector
Exercise: std::vector<>
cxx_exercises_stl_vector->cxx03_stl_vector_copy_etc
cxx_exercises_stl_filter_greater_10
Exercise: Filter Elements Greater Than 10
cxx_exercises_stl_sensor_repository_remove_sunny
Remove - Sunny Case
cxx_exercises_stl_sensor_repository_insert_sunny
Insert - Sunny Case
cxx_exercises_stl_sensor_repository_remove_sunny->cxx_exercises_stl_sensor_repository_insert_sunny
cxx_exercises_stl_sensor_repository_insert_sunny->cxx_exercises_stl_map
cxx_exercises_stl_sensor_repository_insert_no_overwrite
Insert - Not Overwriting Existing Elements
cxx_exercises_stl_sensor_repository_insert_no_overwrite->cxx_exercises_stl_sensor_repository_insert_sunny
cxx_exercises_stl_sensor_repository_memory_leaks
Memory Leaks?
cxx_exercises_stl_sensor_repository_memory_leaks->cxx_exercises_stl_sensor_repository_remove_sunny
cxx_exercises_stl_sensor_repository_memory_leaks->cxx_exercises_stl_sensor_repository_insert_sunny
cxx_exercises_stl_sensor_repository_memory_leaks->cxx_exercises_stl_sensor_repository_insert_no_overwrite
cxx_exercises_stl_sensor_repository_lookup_not_found
Lookup - Not Found
cxx_exercises_stl_sensor_repository_memory_leaks->cxx_exercises_stl_sensor_repository_lookup_not_found
cxx_exercises_stl_sensor_repository_lookup_sunny
Lookup - Sunny Case
cxx_exercises_stl_sensor_repository_memory_leaks->cxx_exercises_stl_sensor_repository_lookup_sunny
cxx_exercises_stl_sensor_repository_remove_not_found
Remove - Not Found
cxx_exercises_stl_sensor_repository_memory_leaks->cxx_exercises_stl_sensor_repository_remove_not_found
cxx_exercises_stl_sensor_repository_size_const
.size() Is const
cxx_exercises_stl_sensor_repository_memory_leaks->cxx_exercises_stl_sensor_repository_size_const
cxx_exercises_stl_sensor_repository_lookup_not_found->cxx_exercises_stl_sensor_repository_lookup_sunny
cxx_exercises_stl_sensor_repository_lookup_sunny->cxx_exercises_stl_sensor_repository_insert_sunny
cxx_exercises_stl_sensor_repository_remove_not_found->cxx_exercises_stl_sensor_repository_remove_sunny
cxx_exercises_stl_sensor_repository_size_const->cxx_exercises_stl_sensor_repository_insert_sunny
cxx_exercises_design_patterns_composite
Exercise: Composite
cxx_exercises_design_patterns_composite->cxx_exercises_sensor_interface
cxx_design_patterns_composite
Composite
cxx_exercises_design_patterns_composite->cxx_design_patterns_composite
cxx_exercises_design_patterns_interpreter_and_adapter
Exercise: Interpreter Combined With Adapter (And A Proxy)
cxx_exercises_design_patterns_interpreter_basic
Exercise: Arithmetic Expression Interpreter
cxx_exercises_design_patterns_interpreter_and_adapter->cxx_exercises_design_patterns_interpreter_basic
cxx_design_patterns_adapter
Adapter
cxx_exercises_design_patterns_interpreter_and_adapter->cxx_design_patterns_adapter
cxx_design_patterns_interpreter
Interpreter
cxx_exercises_design_patterns_interpreter_and_adapter->cxx_design_patterns_interpreter
cxx_design_patterns_sensor_hierarchy
Exercise Foundation: Sensor Hierarchy
cxx_exercises_design_patterns_interpreter_and_adapter->cxx_design_patterns_sensor_hierarchy
cxx_exercises_design_patterns_interpreter_basic->cxx03_inheritance_oo_interface
cxx_design_patterns_uml
UML Short Introduction
cxx_exercises_design_patterns_interpreter_basic->cxx_design_patterns_uml
cxx_exercises_design_patterns_interpreter_basic->cxx_design_patterns_interpreter
cxx_exercises_design_patterns_command
Exercise: Command
cxx_design_patterns_command
Command
cxx_exercises_design_patterns_command->cxx_design_patterns_command
cxx_exercises_design_patterns_observer
Exercise: Adapter
cxx_design_patterns_observer
Observer
cxx_exercises_design_patterns_observer->cxx_design_patterns_observer
cxx_exercises_design_patterns_proxy_remote
Exercise: Proxy (Remote Thermometer)
cxx_exercises_design_patterns_proxy_remote->cxx_exercises_sensor_interface
cxx_exercises_design_patterns_adapter
Exercise: Adapter
cxx_exercises_design_patterns_proxy_remote->cxx_exercises_design_patterns_adapter
cxx_exercises_design_patterns_proxy_round
Exercise: Proxy (Rounding Thermometer)
cxx_exercises_design_patterns_proxy_remote->cxx_exercises_design_patterns_proxy_round
cxx_exercises_design_patterns_proxy_remote->cxx_design_patterns_uml
cxx_exercises_design_patterns_proxy_remote->cxx_design_patterns_sensor_hierarchy
cxx_design_patterns_proxy
Proxy
cxx_exercises_design_patterns_proxy_remote->cxx_design_patterns_proxy
cxx_exercises_design_patterns_singleton_flexible_strict
Exercise: Singleton (Flexible And Strict)
cxx_exercises_design_patterns_singleton_flexible
Exercise: Singleton (Flexible)
cxx_exercises_design_patterns_singleton_flexible_strict->cxx_exercises_design_patterns_singleton_flexible
cxx_exercises_design_patterns_singleton_inflexible
Exercise: Singleton (Inflexible)
cxx_exercises_design_patterns_singleton_flexible_strict->cxx_exercises_design_patterns_singleton_inflexible
cxx_design_patterns_singleton
Singleton
cxx_exercises_design_patterns_singleton_flexible_strict->cxx_design_patterns_singleton
cxx_exercises_design_patterns_singleton_flexible_strict->cxx_design_patterns_uml
cxx_exercises_design_patterns_abstract_factory
Exercise: Abstract Factory
cxx_exercises_design_patterns_abstract_factory->cxx_exercises_sensor_interface
cxx_design_patterns_abstract_factory
Abstract Factory
cxx_exercises_design_patterns_abstract_factory->cxx_design_patterns_abstract_factory
cxx_exercises_design_patterns_singleton_flexible->cxx_exercises_design_patterns_singleton_inflexible
cxx_exercises_design_patterns_singleton_flexible->cxx_design_patterns_singleton
cxx_exercises_design_patterns_singleton_flexible->cxx_design_patterns_uml
cxx_exercises_design_patterns_adapter->cxx_exercises_sensor_interface
cxx_exercises_design_patterns_adapter->cxx_design_patterns_adapter
cxx_exercises_design_patterns_proxy_round->cxx_exercises_sensor_interface
cxx_exercises_design_patterns_proxy_round->cxx_design_patterns_uml
cxx_exercises_design_patterns_proxy_round->cxx_design_patterns_sensor_hierarchy
cxx_exercises_design_patterns_proxy_round->cxx_design_patterns_proxy
cxx_exercises_design_patterns_decorator
Exercise: Decorator
cxx_exercises_design_patterns_decorator->cxx_exercises_sensor_interface
cxx_design_patterns_decorator
Decorator
cxx_exercises_design_patterns_decorator->cxx_design_patterns_decorator
cxx_exercises_design_patterns_singleton_inflexible->cxx_design_patterns_singleton
cxx_exercises_design_patterns_singleton_inflexible->cxx_design_patterns_uml
cxx_exercises_design_patterns_solutions_composite
Solution: Composite
cxx_exercises_design_patterns_solutions_composite->cxx_exercises_design_patterns_composite
cxx_exercises_design_patterns_solutions_interpreter_and_adapter
Solution: Interpreter Combined With Adapter (And A Proxy)
cxx_exercises_design_patterns_solutions_interpreter_and_adapter->cxx_exercises_design_patterns_interpreter_and_adapter
cxx_exercises_design_patterns_solutions_interpreter_basic
Solution: Arithmetic Expression Interpreter
cxx_exercises_design_patterns_solutions_interpreter_basic->cxx_exercises_design_patterns_interpreter_basic
cxx_exercises_design_patterns_solutions_command
Solution: Command
cxx_exercises_design_patterns_solutions_command->cxx_exercises_design_patterns_command
cxx_exercises_design_patterns_solutions_observer
Solution: Observer
cxx_exercises_design_patterns_solutions_observer->cxx_exercises_design_patterns_observer
cxx_exercises_design_patterns_solutions_proxy_remote
Solution: Proxy (Remote Thermometer)
cxx_exercises_design_patterns_solutions_proxy_remote->cxx_exercises_design_patterns_proxy_remote
cxx_exercises_design_patterns_solutions_singleton_flexible_strict
Solution: Singleton (Flexible And Strict)
cxx_exercises_design_patterns_solutions_singleton_flexible_strict->cxx_exercises_design_patterns_singleton_flexible_strict
cxx_exercises_design_patterns_solutions_abstract_factory
Solution: Abstract Factory
cxx_exercises_design_patterns_solutions_abstract_factory->cxx_exercises_design_patterns_abstract_factory
cxx_exercises_design_patterns_solutions_singleton_flexible
Solution: Singleton (Flexible)
cxx_exercises_design_patterns_solutions_singleton_flexible->cxx_exercises_design_patterns_singleton_flexible
cxx_exercises_design_patterns_solutions_adapter
Solution: Adapter
cxx_exercises_design_patterns_solutions_adapter->cxx_exercises_design_patterns_adapter
cxx_exercises_design_patterns_solutions_proxy_round
Solution: Proxy (Rounding Thermometer)
cxx_exercises_design_patterns_solutions_proxy_round->cxx_exercises_design_patterns_proxy_round
cxx_exercises_design_patterns_solutions_decorator
Solution: Decorator
cxx_exercises_design_patterns_solutions_decorator->cxx_exercises_design_patterns_decorator
cxx_exercises_design_patterns_solutions_singleton_inflexible
Solution: Singleton (Inflexible)
cxx_exercises_design_patterns_solutions_singleton_inflexible->cxx_exercises_design_patterns_singleton_inflexible
cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo
Exercise (FH): Introducing a Sensor Class
cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo->cxx03_data_encapsulation_classes_objects
cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo_loop_function
Exercise (FH): Extract Measurement Loop Into Function
cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo_loop_function->cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo
cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo_no_polymorphism
Exercise (FH): Replace Sensor
cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo_no_polymorphism->cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo_loop_function
cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo_random_sensor
Exercise (FH): Write A Sensor Class: RandomSensor
cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo_random_sensor->cxx_exercises_fh_sensor_first_try_exercise_FH_sensor_oo
cxx_design_patterns_command->cxx03_inheritance_oo_interface
cxx_design_patterns_command->cxx_design_patterns_uml
cxx_design_patterns_command->cxx_design_patterns_composite
cxx_design_patterns_decorator->cxx03_inheritance_oo_interface
cxx_design_patterns_decorator->cxx_design_patterns_uml
cxx_design_patterns_decorator->cxx_design_patterns_adapter
cxx_design_patterns_decorator->cxx_design_patterns_sensor_hierarchy
cxx_design_patterns_observer->cxx03_inheritance_oo_interface
cxx_design_patterns_observer->cxx_design_patterns_uml
cxx_design_patterns_singleton->cxx03_inheritance_oo_interface
cxx_design_patterns_singleton->cxx_design_patterns_uml
cxx_design_patterns_uml->cxx03_inheritance_oo_interface
cxx_design_patterns_adapter->cxx03_inheritance_oo_interface
cxx_design_patterns_adapter->cxx_design_patterns_uml
cxx_design_patterns_adapter->cxx_design_patterns_sensor_hierarchy
cxx_design_patterns_interpreter->cxx03_inheritance_oo_interface
cxx_design_patterns_interpreter->cxx_design_patterns_uml
cxx_design_patterns_sensor_hierarchy->cxx03_inheritance_oo_interface
cxx_design_patterns_sensor_hierarchy->cxx_design_patterns_uml
cxx_design_patterns_proxy->cxx03_inheritance_oo_interface
cxx_design_patterns_proxy->cxx_design_patterns_uml
cxx_design_patterns_proxy->cxx_design_patterns_sensor_hierarchy
cxx_design_patterns_abstract_factory->cxx03_inheritance_oo_interface
cxx_design_patterns_abstract_factory->cxx_design_patterns_singleton
cxx_design_patterns_abstract_factory->cxx_design_patterns_uml
cxx_design_patterns_abstract_factory->cxx_design_patterns_sensor_hierarchy
cxx_design_patterns_composite->cxx03_inheritance_oo_interface
cxx_design_patterns_composite->cxx_exercises_design_patterns_proxy_round
cxx_design_patterns_composite->cxx_design_patterns_uml
cxx_design_patterns_composite->cxx_design_patterns_sensor_hierarchy
cxx_design_patterns_composite->cxx_design_patterns_proxy
cxx_design_patterns_oo_principles
OO Design Principles
cxx_design_patterns_oo_principles->cxx03_inheritance_oo_interface
cxx_design_patterns_oo_principles->cxx_design_patterns_uml
cxx_design_patterns_heating_screenplay
Case Study/Livehacking: Heating Control (Reading Sensors)
cxx_design_patterns_heating_screenplay->cxx_design_patterns_uml
cxx_design_patterns_heating_screenplay->cxx_design_patterns_adapter
cxx_design_patterns_heating_screenplay->cxx_design_patterns_sensor_hierarchy