Generated Topic Graph

cluster_c The C Programming Language cluster_c_program_sanity Program Sanity cluster_c_advanced_language_features Advanced Language Features cluster_c_types_operators_expressions Types, Operators, Expressions cluster_c_introduction Introduction cluster_c_memory Memory cluster_c_structures Structures cluster_c_pointers_and_arrays Pointers and Arrays cluster_c_functions_and_program_structure Functions and Program Structure cluster_c_profiling Profiling cluster_c_performance Performance cluster_c_program_flow Program Flow cluster_cxx03 C++ 03 cluster_cxx03_exceptions Exceptions cluster_cxx03_functions_and_methods Functions and Methods cluster_cxx03_data_encapsulation Data Encapsulation cluster_cxx03_inheritance_oo Inheritance and Object Oriented Design cluster_cxx03_dynamic_memory Dynamic Memory Allocation, Resource Management cluster_cxx03_exercises_userdb Exercises: User Database cluster_cxx03_stl Standard Template Library cluster_cxx03_stl_sequential_containers Sequential Containers cluster_cxx03_stl_algorithm Algorithms cluster_cxx03_stl_exercises STL: Exercises cluster_cxx03_stl_exercises_reverse_string Exercise: Reverse A String cluster_cxx03_stl_associative_containers Associative Containers cluster_cxx03_standard_library_miscellanea The Standard Library: Miscellaneous Topics cluster_cxx03_templates Templates cluster_cxx03_exercises_misc Exercises: Miscellaneous cluster_cxx11 C++ 11 cluster_cxx11_new_language_features New Language Features cluster_cxx11_introduction Introduction cluster_cxx11_functions_functions Functions, Functions cluster_cxx11_smart_pointers Smart Pointers cluster_cxx11_multithreading Multithreading cluster_linux Linux cluster_linux_sysprog Linux Systems Programming cluster_linux_sysprog_posix_threads POSIX Threads cluster_linux_sysprog_blocking_io Blocking I/O cluster_linux_sysprog_fileio File I/O cluster_linux_sysprog_process Processes cluster_linux_sysprog_basics Linux Systems Programming: Basics cluster_linux_sysprog_scheduling Scheduling 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: Linux Basics cluster_linux_hardware Linux Hardware Interfaces cluster_linux_hardware_can CAN Bus With Linux And Python cluster_linux_kernel Linux Kernel Driver Development cluster_linux_ssh SSH cluster_linux_ssh_exercises Exercises: SSH cluster_linux_toolchain Toolchain cluster_linux_toolchain_exercises Exercises: Toolchain cluster_linux_toolchain_cross Cross Development cluster_ece19 ECE19: Exercises and Custom Topics cluster_python Python Programming: From Absolute Beginner to Advanced Productivity cluster_python_basics Python: The Language Fundamentals cluster_python_advanced Python: More Language Features cluster_python_advanced_oo Object Oriented Programming cluster_python_advanced_multiprocessing Multiprocessing cluster_python_advanced_multithreading Multithreading cluster_python_db Databases cluster_python_exercises Exercises cluster_python_exercises_legacy Exercises (Legacy) cluster_python_exercises_herdt Exercises (External) cluster_python_exercises_csv CSV and Databases cluster_python_exercises_userdb User Database (Exercise Series) cluster_python_misc Python: Miscellaneous Topics cluster_python_misc_ai Machine Learning, Artificial Intelligence cluster_python_swdev Python: Project/Package Management cluster_python_drafts Python: Draft Topics cluster_unittest Unit Testing cluster_cxx C++: Miscellaneous Live-Hacking 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_clean_code Backlog: What Needs To Change, Or We Will All Die cluster_clean_code_features Features cluster_clean_code_bugs Bugs cluster_clean_code_refactoring Refactoring cluster_project_xxx I2S Audio for a Kontron SMARC Module c_program_sanity_const Correctness - const c_program_sanity_static Visibility - static c_program_sanity_const->c_program_sanity_static c_program_sanity_discrete_values Discrete Values - enum c_program_sanity_static->c_program_sanity_discrete_values c_program_sanity_explicit_type_safety Explict Type Safety 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_program_sanity_introduction Sanity and Readabilty c_advanced_language_features_alignment Alignment c_program_sanity_introduction->c_advanced_language_features_alignment c_program_sanity_valgrind valgrind c_program_sanity_valgrind->c_program_sanity_explicit_type_safety c_program_sanity_integral_types Know Your Integers c_program_sanity_integral_types->c_program_sanity_introduction c_program_sanity_discrete_values->c_program_sanity_integral_types 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_atomic->c_advanced_language_features_volatile c_memory_exercise_linked_list Singly Linked List c_advanced_language_features_volatile->c_memory_exercise_linked_list c_types_operators_expressions_type_conversions 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_arithmetic_operators Arithmetic Operators c_types_operators_expressions_relational_logical_operators->c_types_operators_expressions_arithmetic_operators c_types_operators_expressions_variable_names Variable Names c_types_operators_expressions_introduction Type System c_types_operators_expressions_variable_names->c_types_operators_expressions_introduction c_introduction_external_variables_and_scope Lifetime of Variables c_types_operators_expressions_introduction->c_introduction_external_variables_and_scope c_types_operators_expressions_declarations Variable Definitions c_types_operators_expressions_arithmetic_operators->c_types_operators_expressions_declarations c_types_operators_expressions_constants Constants c_types_operators_expressions_declarations->c_types_operators_expressions_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_datatypes_size->c_types_operators_expressions_variable_names c_types_operators_expressions_conditional_expressions ?: - Conditional Expression 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_bit_operators Bit-Operators c_types_operators_expressions_assignment_operators_and_expressions->c_types_operators_expressions_bit_operators c_types_operators_expressions_increment_decrement_operators Increment, Decrement c_types_operators_expressions_increment_decrement_operators->c_types_operators_expressions_type_conversions 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_precedence_and_order_of_evaluation Precedence, Associativity c_types_operators_expressions_precedence_and_order_of_evaluation->c_types_operators_expressions_conditional_expressions c_types_operators_expressions_exercise_string_reduce->c_types_operators_expressions_increment_decrement_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_for_loop for Loops c_introduction_exercise_fahrenheit_float Exercise: A Better Fahrenheit Table c_introduction_for_loop->c_introduction_exercise_fahrenheit_float c_introduction_variables_and_arithmetic_expressions Variables and Arithmetic c_introduction_exercise_fahrenheit_float->c_introduction_variables_and_arithmetic_expressions c_introduction_cpp_symbolic_constants Symbolic Constants c_introduction_exercise_fahrenheit_for Exercise: Fahrenheit Table Using for c_introduction_cpp_symbolic_constants->c_introduction_exercise_fahrenheit_for c_introduction_exercise_fahrenheit_for->c_introduction_for_loop c_introduction_exercise_power_declaration Exercise: Forward Declaration c_introduction_functions Functions c_introduction_exercise_power_declaration->c_introduction_functions c_introduction_exercise_histogram Exercise: Character Histogram c_introduction_functions->c_introduction_exercise_histogram c_introduction_character_arrays Character Arrays c_introduction_exercise_string_read_line->c_introduction_character_arrays c_introduction_exercise_wc Exercise: wc For The Poor c_introduction_character_io Character I/O c_introduction_exercise_wc->c_introduction_character_io c_introduction_exercise_fahrenheit_cpp Exercise: Fahrenheit Table Using Macros c_introduction_character_io->c_introduction_exercise_fahrenheit_cpp c_introduction_arrays Arrays c_introduction_exercise_histogram->c_introduction_arrays c_introduction_arrays->c_introduction_exercise_wc c_introduction_exercise_fahrenheit_cpp->c_introduction_cpp_symbolic_constants c_introduction_hello_world Hello World c_introduction_variables_and_arithmetic_expressions->c_introduction_hello_world c_introduction_introduction Introduction c_introduction_hello_world->c_introduction_introduction c_introduction_character_arrays->c_introduction_exercise_power_declaration c_introduction_installation Installation c_introduction_introduction->c_introduction_installation c_memory_malloc Dynamic Memory c_memory_exercise_linked_list->c_memory_malloc c_structures_typedef typedef: Type Alias c_memory_malloc->c_structures_typedef c_structures_structures_and_functions struct: Functions c_structures_typedef->c_structures_structures_and_functions c_structures_basics struct: Basics c_structures_structures_and_functions->c_structures_basics c_pointers_and_arrays_command_line_arguments Commandline Arguments c_structures_basics->c_pointers_and_arrays_command_line_arguments c_pointers_and_arrays_pointers_and_addresses Pointers and Addresses 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_pointers_and_arrays_pointers_and_function_arguments Pointers as Function Parameters c_pointers_and_arrays_pointers_and_function_arguments->c_pointers_and_arrays_pointers_and_addresses c_pointers_and_arrays_pointers_and_arrays Pointers and Arrays c_pointers_and_arrays_command_line_arguments->c_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_exercise_swap->c_pointers_and_arrays_pointers_and_function_arguments 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_external_variables Extern/Global Variables c_functions_and_program_structure_basics Basics c_functions_and_program_structure_external_variables->c_functions_and_program_structure_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_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_header_files->c_functions_and_program_structure_external_variables c_profiling_callgrind callgrind c_profiling_gprof GNU Profiler - gprof c_profiling_callgrind->c_profiling_gprof c_profiling_introduction Introduction c_profiling_gprof->c_profiling_introduction c_performance_memory Optimizations: Memory Optimizations c_profiling_introduction->c_performance_memory c_profiling_oprofile oprofile c_profiling_oprofile->c_profiling_callgrind c_performance_computebound Optimizations: Compute Bound Code c_performance_memory->c_performance_computebound c_performance_introduction Optimization c_performance_introduction->c_program_sanity_valgrind c_performance_computebound->c_performance_introduction 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_else_if else - if c_program_flow_switch->c_program_flow_else_if c_program_flow_if_else if - else c_program_flow_else_if->c_program_flow_if_else c_program_flow_break_and_continue break and continue c_program_flow_break_and_continue->c_program_flow_loops_do_while c_program_flow_statements_and_blocks Statements and Blocks c_program_flow_if_else->c_program_flow_statements_and_blocks c_program_flow_statements_and_blocks->c_types_operators_expressions_precedence_and_order_of_evaluation c_program_flow_goto_and_labels->c_program_flow_break_and_continue cxx03_introduction Introduction cxx03_introduction->c_introduction_installation cxx03_exceptions_try_catch try - catch cxx03_exceptions_basics Basics cxx03_exceptions_try_catch->cxx03_exceptions_basics cxx03_functions_and_methods_operators Operator Overloading cxx03_exceptions_basics->cxx03_functions_and_methods_operators cxx03_functions_and_methods_static static cxx03_functions_and_methods_operators->cxx03_functions_and_methods_static 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_const const cxx03_functions_and_methods_const->cxx03_functions_and_methods_methods cxx03_functions_and_methods_references References cxx03_functions_and_methods_this this cxx03_functions_and_methods_references->cxx03_functions_and_methods_this cxx03_data_encapsulation_object_copy Object Copy cxx03_functions_and_methods_overloading->cxx03_data_encapsulation_object_copy cxx03_functions_and_methods_static->cxx03_functions_and_methods_references cxx03_functions_and_methods_this->cxx03_functions_and_methods_const cxx03_data_encapsulation_introduction Introduction: Classes and Objects cxx03_data_encapsulation_introduction->cxx03_introduction cxx03_data_encapsulation_ctor_dtor More Constructors, Destructors cxx03_data_encapsulation_object_copy->cxx03_data_encapsulation_ctor_dtor cxx03_data_encapsulation_ctor_basics Constructor: Basics cxx03_data_encapsulation_ctor_dtor->cxx03_data_encapsulation_ctor_basics cxx03_data_encapsulation_ctor_basics->cxx03_data_encapsulation_introduction cxx03_inheritance_oo_todo Inheritance and OO Design (To Be Done) cxx03_dynamic_memory_todo Dynamic Memory (To Be Done) cxx03_inheritance_oo_todo->cxx03_dynamic_memory_todo cxx03_exercises_userdb_userdb_insert Exercise: Insert a User into UserDB cxx03_exercises_userdb_userdb_vector_basic Exercise: Use std::vector in UserDB cxx03_exercises_userdb_userdb_insert->cxx03_exercises_userdb_userdb_vector_basic cxx03_stl_basics Standard Template Library: Basics cxx03_exercises_userdb_userdb_insert->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_userdb_vector_basic->cxx03_stl_basics cxx03_exercises_userdb_user_simple_method Exercise: Simple Method (Users Age By n Years) 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_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_user_ctor->cxx03_data_encapsulation_ctor_basics cxx03_standard_library_miscellanea_string std::string cxx03_exercises_userdb_user_ctor->cxx03_standard_library_miscellanea_string cxx03_exercises_userdb_user_access_methods Exercise: Access Methods for Members cxx03_exercises_userdb_user_access_methods->cxx03_functions_and_methods_methods cxx03_exercises_userdb_user_access_methods->cxx03_exercises_userdb_user_simple_method cxx03_exercises_userdb_user_const Exercise: Use const cxx03_exercises_userdb_user_const->cxx03_functions_and_methods_const cxx03_exercises_userdb_user_const->cxx03_functions_and_methods_references cxx03_exercises_userdb_user_const->cxx03_exercises_userdb_user_access_methods 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_userdb_search Exercise: Search a User By Lastname cxx03_exercises_userdb_userdb_search->cxx03_exercises_userdb_userdb_insert 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_find_if->cxx03_exercises_userdb_userdb_search cxx03_templates_class_templates Class Templates cxx03_stl_basics->cxx03_templates_class_templates 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_algorithm_sort sort<> cxx03_stl_algorithm_sort->cxx03_stl_basics cxx03_stl_algorithm_lower_bound lower_bound<>: On Sorted Sequence cxx03_stl_algorithm_lower_bound->cxx03_stl_basics cxx03_stl_algorithm_lower_bound->cxx03_stl_algorithm_sort cxx03_stl_algorithm_binary_search binary_search<>: On Sorted Sequence cxx03_stl_algorithm_lower_bound->cxx03_stl_algorithm_binary_search cxx03_stl_algorithm_binary_search->cxx03_stl_basics cxx03_stl_algorithm_binary_search->cxx03_stl_algorithm_sort cxx03_stl_algorithm_copy copy<> cxx03_stl_algorithm_copy->cxx03_stl_basics cxx03_stl_algorithm_find_if find_if<>: Sequential Search, Customizable cxx03_stl_algorithm_find find<>: Sequential Search, by Equality cxx03_stl_algorithm_find_if->cxx03_stl_algorithm_find cxx03_stl_algorithm_find->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_algorithm_for_each for_each<> cxx03_stl_algorithm_for_each->cxx03_stl_basics 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_exercise Exercise: Reverse a String cxx03_stl_exercises_reverse_string_solution->cxx03_stl_exercises_reverse_string_exercise cxx03_stl_associative_containers_multimap multimap<> cxx03_stl_associative_containers_basics Associative Containers cxx03_stl_associative_containers_multimap->cxx03_stl_associative_containers_basics cxx03_stl_associative_containers_basics->cxx03_stl_basics cxx03_stl_associative_containers_map map<> cxx03_stl_associative_containers_map->cxx03_stl_associative_containers_basics cxx03_templates_function_templates Function Templates cxx03_templates_function_templates->cxx03_exceptions_try_catch cxx03_templates_class_templates->cxx03_templates_function_templates cxx03_exercises_misc_sum_integers_from_stdin Exercise: Sum of Integers Coming From cin cxx03_exercises_misc_american_flag Exercise: Paint the American Flag Onto Standard Output cxx11_new_language_features_range_based_for Range Based for Loops cxx11_new_language_features_brace_initialization Brace Initialization cxx11_new_language_features_range_based_for->cxx11_new_language_features_brace_initialization cxx11_new_language_features_auto auto Type Declarations cxx11_new_language_features_brace_initialization->cxx11_new_language_features_auto cxx11_new_language_features_strongly_typed_enums Strongly Typed enum cxx11_new_language_features_strongly_typed_enums->c_program_sanity_discrete_values cxx11_introduction_introduction Introduction cxx11_new_language_features_strongly_typed_enums->cxx11_introduction_introduction 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_auto->cxx11_new_language_features_strongly_typed_enums cxx11_new_language_features_miscellaneous Miscellaneous cxx11_new_language_features_move Moving, “RValue References” cxx11_new_language_features_miscellaneous->cxx11_new_language_features_move cxx11_new_language_features_move->cxx11_new_language_features_delegating_ctor cxx11_introduction_introduction->c_introduction_installation cxx11_functions_functions_function std::function cxx11_functions_functions_bind std::bind cxx11_functions_functions_function->cxx11_functions_functions_bind cxx11_smart_pointers_closing_words Smart Pointers: Closing Words cxx11_functions_functions_bind->cxx11_smart_pointers_closing_words 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_introduction Introduction cxx11_smart_pointers_unique_ptr->cxx11_smart_pointers_introduction cxx11_smart_pointers_introduction->cxx11_new_language_features_miscellaneous cxx11_smart_pointers_shared_ptr->cxx11_smart_pointers_unique_ptr cxx11_multithreading_thread Threads in C++ cxx11_multithreading_introduction Threads Inroduction cxx11_multithreading_thread->cxx11_multithreading_introduction linux_sysprog_posix_threads_lifecycle Thread Life Cycle cxx11_multithreading_thread->linux_sysprog_posix_threads_lifecycle cxx11_multithreading_introduction->cxx11_functions_functions_function cxx11_multithreading_chrono std::chrono cxx11_multithreading_condition_variable Condition Variables cxx11_multithreading_chrono->cxx11_multithreading_condition_variable cxx11_multithreading_locking_atomics Locking and Atomics cxx11_multithreading_condition_variable->cxx11_multithreading_locking_atomics linux_sysprog_posix_threads_condition_variable Communication: Condition Variable cxx11_multithreading_condition_variable->linux_sysprog_posix_threads_condition_variable cxx11_multithreading_race_conditions Race Conditions cxx11_multithreading_locking_atomics->cxx11_multithreading_race_conditions linux_sysprog_posix_threads_mutex Synchronization cxx11_multithreading_locking_atomics->linux_sysprog_posix_threads_mutex cxx11_multithreading_race_conditions->cxx11_multithreading_thread linux_sysprog_posix_threads_exercise_pthcreate_racecondition Thread Creation, Race Condition cxx11_multithreading_race_conditions->linux_sysprog_posix_threads_exercise_pthcreate_racecondition linux_sysprog_events Sysprog: Events linux_sysprog_ipc Sysprog: POSIX IPC linux_sysprog_signals Sysprog: Signals linux_sysprog_posix_threads_basics Basics linux_sysprog_posix_threads_lifecycle->linux_sysprog_posix_threads_basics linux_sysprog_posix_threads_mutex->linux_sysprog_posix_threads_exercise_pthcreate_racecondition linux_sysprog_posix_threads_exercise_pthcreate_racecondition->linux_sysprog_posix_threads_lifecycle linux_sysprog_posix_threads_exercise_mutex Mutex: Solve Load/Modify/Store Conflict linux_sysprog_posix_threads_condition_variable->linux_sysprog_posix_threads_exercise_mutex linux_sysprog_posix_threads_exercise_condition_variable Condition Variable: Message Queue linux_sysprog_posix_threads_exercise_condition_variable->linux_sysprog_posix_threads_condition_variable linux_sysprog_posix_threads_exercise_mutex->linux_sysprog_posix_threads_mutex linux_sysprog_scheduling_basics Scheduling (and Multitasking) linux_sysprog_posix_threads_basics->linux_sysprog_scheduling_basics linux_sysprog_posix_threads_miscellaneous Miscellaneous 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_last_warning Last Warning linux_sysprog_posix_threads_last_warning->linux_sysprog_posix_threads_miscellaneous linux_sysprog_blocking_io_blocking_io_file Blocking I/O (On A File): What is That? 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_timer Blocking I/O: On A Timer? WTF? linux_sysprog_blocking_io_blocking_io_timer->linux_sysprog_blocking_io_blocking_io linux_sysprog_fileio_basics File I/O: Basics linux_sysprog_blocking_io_blocking_io_timer->linux_sysprog_fileio_basics linux_sysprog_blocking_io_blocking_io->linux_sysprog_fileio_basics 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_blocking_io_blocking_io_network->linux_sysprog_fileio_basics linux_sysprog_basics_groupnode Linux Systems Programming: Basics linux_sysprog_fileio_basics->linux_sysprog_basics_groupnode linux_basics_permissions_basics Permissions: Mode, User and Group Ownership linux_sysprog_fileio_basics->linux_basics_permissions_basics linux_sysprog_fileio_example_O_CREAT O_CREAT: Creating A File 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_example_O_CREAT->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_WRONLY->linux_basics_permissions_basics linux_sysprog_fileio_example_O_RDONLY->linux_sysprog_fileio_basics linux_sysprog_fileio_example_O_RDONLY->linux_basics_permissions_basics linux_sysprog_fileio_example_O_EXCL O_EXCL: Creating A File, But Failing If It Already Exists linux_sysprog_fileio_example_O_EXCL->linux_sysprog_fileio_basics linux_sysprog_fileio_example_O_EXCL->linux_sysprog_fileio_example_O_CREAT linux_sysprog_fileio_example_O_EXCL->linux_basics_permissions_basics linux_sysprog_fileio_duplicate Duplicating (Whats Going On?) linux_sysprog_fileio_duplicate->linux_sysprog_fileio_basics 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_example_O_WRONLY linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_example_O_RDONLY linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_duplicate linux_sysprog_fileio_basics_exercise_copy Exercise: Copy A File linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_basics_exercise_copy linux_sysprog_fileio_basics_exercise_hole Exercise: Create File With Hole linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_basics_exercise_hole linux_sysprog_fileio_misc Miscellaneous linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_misc 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_basics_exercise_copy->linux_basics_permissions_basics linux_sysprog_fileio_basics_exercise_hole->linux_sysprog_fileio_basics linux_sysprog_fileio_misc->linux_sysprog_fileio_basics linux_sysprog_process_commandline Process: Arguments, Exit Status linux_sysprog_process_commandline->linux_sysprog_fileio_basics linux_sysprog_basics_syscalls System Calls vs. Library Functions linux_toolchain_basics Toolchain: Basics linux_sysprog_basics_syscalls->linux_toolchain_basics linux_sysprog_basics_groupnode->linux_sysprog_basics_syscalls linux_sysprog_basics_groupnode->linux_sysprog_basics_errorhandling linux_sysprog_basics_errorhandling->linux_sysprog_basics_syscalls linux_sysprog_scheduling_basics->linux_sysprog_blocking_io_blocking_io linux_sysprog_scheduling_exam_questions Scheduling: Exam Questions linux_sysprog_scheduling_realtime Realtime linux_sysprog_scheduling_exam_questions->linux_sysprog_scheduling_realtime linux_sysprog_scheduling_wakeup_latency Wakeup Latency, CPU Frequency (Gotcha) 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_realtime->linux_sysprog_blocking_io_blocking_io 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_processes_and_threads->linux_sysprog_scheduling_basics linux_sysprog_scheduling_realtime_api Realtime API linux_sysprog_scheduling_realtime_api->linux_sysprog_posix_threads_lifecycle linux_sysprog_scheduling_realtime_api->linux_sysprog_posix_threads_mutex linux_sysprog_scheduling_realtime_api->linux_sysprog_scheduling_realtime 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_wsl Windows Subsystem for Linux (WSL) linux_basics_intro_wsl->linux_basics_intro_overview linux_basics_intro_process_tree Process Hierarchy (Parent, Child Process) linux_basics_intro_process_tree->linux_basics_intro_process linux_basics_intro_demo_everything_is_a_file Everything Is A File (Live Demo) linux_basics_intro_demo_everything_is_a_file->linux_sysprog_blocking_io_blocking_io_file linux_basics_intro_demo_everything_is_a_file->linux_basics_intro_overview linux_basics_intro_login Login? What Is That? linux_basics_intro_login->linux_basics_intro_process_tree 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_gzip->linux_basics_archiving_compression_overview linux_basics_archiving_compression_gzip->linux_basics_shell_commandline linux_basics_archiving_compression_overview->linux_basics_shell_commandline linux_basics_shell_commandline->linux_basics_intro_overview 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_paths->linux_basics_shell_commandline linux_basics_shell_cwd->linux_basics_intro_process linux_basics_shell_cwd->linux_basics_shell_commandline linux_basics_shell_cwd->linux_basics_shell_paths 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_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_links Symbolic Links, Hard Links linux_basics_shell_links->linux_basics_shell_ls linux_basics_shell_configfiles Shell Configuration File: ~/.bashrc linux_basics_shell_configfiles->linux_basics_intro_environment 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_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_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_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_copy_tree Exercise: Copy Directory Tree linux_basics_shell_exercises_cp_mv_mkdir_rm_rm_tree->linux_basics_shell_exercises_cp_mv_mkdir_rm_copy_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_mkdir_p_rm_r Exercise: mkdir, rm 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_create_files Exercise: Create Files (I/O Redirection) 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_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_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_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_echo_create_files->linux_basics_shell_exercises_cp_mv_mkdir_rm_mkdir_p_rm_r 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_mkdir_p_rm_r 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_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_mkdir_p_rm_r linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_move_files->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files linux_basics_permissions_basics->linux_basics_shell_ls linux_basics_permissions_setuid_livedemo SetUID: Live Demo linux_basics_permissions_setuid SetUID Programs: passwd, sudo, … linux_basics_permissions_setuid_livedemo->linux_basics_permissions_setuid linux_basics_permissions_setuid->linux_basics_permissions_basics 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_exercises_public_directory Exercise: Create Public Directory linux_basics_permissions_exercises_public_directory->linux_basics_permissions_basics linux_basics_permissions_exercises_credentials Exercise: Determine Your User Credentials linux_basics_permissions_exercises_public_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_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_permissions_exercises_public_directory_question Question: Public Directory linux_basics_permissions_exercises_public_directory_question->linux_basics_permissions_exercises_public_directory 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 Exercise: Create Private Directory linux_basics_permissions_exercises_private_directory_question->linux_basics_permissions_exercises_private_directory linux_basics_permissions_exercises_private_directory->linux_basics_permissions_basics linux_basics_permissions_exercises_private_directory->linux_basics_permissions_exercises_credentials linux_basics_io_redir_pipes_pipes Pipes linux_basics_io_redir_pipes_pipes->linux_basics_shell_commandline linux_basics_io_redir_pipes_io_redir I/O Redirection linux_basics_io_redir_pipes_pipes->linux_basics_io_redir_pipes_io_redir linux_basics_io_redir_pipes_io_redir->linux_basics_shell_commandline linux_basics_io_redir_pipes_exercises Exercises: IO-Redirection, Pipes linux_basics_io_redir_pipes_exercises->linux_basics_io_redir_pipes_pipes 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_io_redir_swap_stdout_stderr->linux_basics_io_redir_pipes_io_redir 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_mkdir_p_rm_r 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_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_mkdir_p_rm_r linux_basics_exercises_FH_SS2022_EXAM_01_G2->linux_basics_shell_exercises_cp_mv_mkdir_rm_echo_create_files linux_hardware_w1 Linux and OneWire (using DS18B20 Temperature Sensor as Slave) linux_hardware_brushless_motor Controlling a Brushless Motor With Raspberry Pi linux_hardware_pwm PWM Userspace Interface (using PCA9685) linux_hardware_brushless_motor->linux_hardware_pwm linux_hardware_i2c Linux and I2C (using LM73 Temperature Sensor as Slave) linux_hardware_can_intro CAN/Linux Basics linux_hardware_can_interfaces CAN Interfaces linux_hardware_can_programming Programming linux_hardware_can_hardware Hardware, Kernel linux_kernel_spinlock_coding Coding: Fix Sleep While Atomic linux_kernel_interrupt_coding Coding: Raspi GPIO Interrupts linux_kernel_spinlock_coding->linux_kernel_interrupt_coding linux_kernel_spinlock Spinlock (vs. Mutex) linux_kernel_spinlock_coding->linux_kernel_spinlock linux_kernel_raspi_kernel_build Raspberry Pi: Building the Kernel linux_kernel_interrupt_coding->linux_kernel_raspi_kernel_build linux_kernel_mutex_coding Coding: Fix Race Condition (Mutex) linux_kernel_interrupt_coding->linux_kernel_mutex_coding linux_kernel_interrupt Interrupts linux_kernel_interrupt_coding->linux_kernel_interrupt linux_kernel_process_vs_atomic Process vs.Atomic Context linux_kernel_spinlock->linux_kernel_process_vs_atomic linux_kernel_timer Timer Management linux_kernel_timer->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_stub_sysprog_dup dup(), fork(), and Reference Counting (Stub) linux_kernel_fedora_module_build Fedora: Building External Kernel Modules linux_kernel_fedora_kernel_build Fedora: Building the Kernel linux_kernel_fedora_module_build->linux_kernel_fedora_kernel_build 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_interrupt->linux_kernel_process_vs_atomic linux_kernel_cdev_refactoring Coding: Refactoring linux_kernel_multiple_devices->linux_kernel_cdev_refactoring linux_kernel_mutex->linux_kernel_process_vs_atomic linux_kernel_list Doubly Linked Lists linux_kernel_cdev_first_functionality Coding: First Functionality linux_kernel_cdev_refactoring->linux_kernel_cdev_first_functionality linux_kernel_cdev_first_functionality->linux_kernel_list linux_kernel_kmalloc Dynamic Memory: kmalloc() linux_kernel_cdev_first_functionality->linux_kernel_kmalloc linux_kernel_cdev_file_operations File Operations on Character Devices linux_kernel_cdev_first_functionality->linux_kernel_cdev_file_operations linux_kernel_modules_hello_world Module Loading, Hello World linux_kernel_modules_hello_world->linux_kernel_fedora_module_build linux_kernel_pci PCI linux_kernel_pci->linux_kernel_interrupt linux_kernel_iomemory IO Memory linux_kernel_pci->linux_kernel_iomemory linux_kernel_dma DMA linux_kernel_pci->linux_kernel_dma linux_kernel_iomemory->linux_kernel_modules_hello_world linux_kernel_dma->linux_kernel_kmalloc linux_kernel_kmalloc->linux_kernel_process_vs_atomic linux_kernel_waitqueue Waiting for Something linux_kernel_waitqueue->linux_kernel_usermem linux_kernel_waitqueue->linux_kernel_cdev_file_operations linux_kernel_cdev_file_operations->linux_kernel_stub_sysprog_dup linux_kernel_cdev_auto Modern Character Devices linux_kernel_cdev_file_operations->linux_kernel_cdev_auto linux_kernel_cdev_manual Character Device Basics linux_kernel_cdev_auto->linux_kernel_cdev_manual linux_kernel_netdev Network Devices linux_kernel_netdev->linux_kernel_interrupt linux_kernel_netdev->linux_kernel_dma linux_kernel_cdev_manual->linux_kernel_modules_hello_world linux_kernel_timer_coding->linux_kernel_spinlock_coding linux_kernel_timer_coding->linux_kernel_timer linux_ssh_key_pair SSH: Public Key Authentication linux_ssh_key_pair->linux_basics_intro_login linux_ssh_basics SSH: Basics linux_ssh_key_pair->linux_ssh_basics linux_ssh_scp SSH: Secure Copy (scp) linux_ssh_scp->linux_ssh_basics linux_ssh_basics->linux_basics_intro_login linux_ssh_sshfs SSH File System (sshfs) linux_ssh_sshfs->linux_ssh_basics linux_ssh_portforwarding SSH: Port Forwarding linux_ssh_portforwarding->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_toolchain_static_library Object Code Archives/Static Libraries linux_toolchain_separate_compilation Zooming In: Separate Compilation, and Linking Statically linux_toolchain_static_library->linux_toolchain_separate_compilation linux_toolchain_basics->linux_basics_shell_file_dir_create_rm linux_toolchain_separate_compilation->linux_toolchain_basics 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_cmake_stub_course Entire CMake Course linux_toolchain_cmake_local->linux_toolchain_cmake_stub_course 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_cross_build Exercise: Build Software Package (Cross, Raspberry) linux_toolchain_exercises_cross_build->linux_toolchain_static_library linux_toolchain_cross_raspberry The Raspberry Toolchain linux_toolchain_exercises_cross_build->linux_toolchain_cross_raspberry 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_exercises_native_build Exercise: Build Software Package (Native) linux_toolchain_exercises_native_build->linux_toolchain_static_library linux_toolchain_cross_raspberry->linux_basics_intro_environment linux_toolchain_cross_raspberry->linux_basics_archiving_compression_tar linux_toolchain_cross_raspberry->linux_ssh_scp linux_toolchain_cross_raspberry->linux_ssh_basics linux_toolchain_cross_raspberry->linux_toolchain_cross_basics linux_toolchain_cross_basics->linux_toolchain_basics ece19_blinklicht_abc GPIO: Blinklicht Interface ece19_blinklicht_oo GPIO: Object Oriented Blinklicht ece19_blinklicht_abc->ece19_blinklicht_oo ece19_blinklicht GPIO: Blinklicht ece19_blinklicht_oo->ece19_blinklicht ece19_blinklicht_unittest GPIO: Blinklicht Unittests ece19_blinklicht_unittest->ece19_blinklicht_abc 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_basics_python_0330_strings_encoding Strings and Encoding python_basics_python_0500_files->python_basics_python_0330_strings_encoding python_basics_python_0450_dictionaries->python_basics_python_0220_for python_basics_python_0150_datatypes_overview_compound Compound Datatypes python_basics_python_0450_dictionaries->python_basics_python_0150_datatypes_overview_compound python_basics_python_0270_functions Functions python_basics_python_0140_variables Variables python_basics_python_0270_functions->python_basics_python_0140_variables python_basics_python_0150_datatypes_overview Datatypes python_basics_python_0270_functions->python_basics_python_0150_datatypes_overview python_basics_python_0130_syntax_etc Syntax etc. python_basics_python_0140_variables->python_basics_python_0130_syntax_etc python_basics_python_0200_sequential_types Sequential Datatypes python_basics_python_0220_for->python_basics_python_0200_sequential_types python_basics_python_0193_while while Loops python_basics_python_0220_for->python_basics_python_0193_while python_basics_python_0200_sequential_types->python_basics_python_0150_datatypes_overview_compound 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_0110_blahblah Blahblah python_basics_python_0120_helloworld Hello World python_basics_python_0130_syntax_etc->python_basics_python_0120_helloworld python_basics_python_0160_boolean Boolean 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_0160_boolean->python_basics_python_0150_datatypes_overview python_basics_python_0170_if->python_basics_python_0160_boolean python_basics_python_0120_helloworld->python_basics_python_0110_blahblah 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_0125_running->python_basics_python_0120_helloworld python_basics_python_0250_refs_flat_deep_copy References, (Im)mutability 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_0150_datatypes_overview->python_basics_python_0140_variables python_basics_python_0150_datatypes_overview_compound->python_basics_python_0150_datatypes_overview python_basics_python_0210_indexing_slicing Indexing and Slicing python_basics_python_0210_indexing_slicing->python_basics_python_0200_sequential_types python_basics_python_0300_strings More About Strings python_basics_python_0330_strings_encoding->python_basics_python_0300_strings python_basics_python_0300_strings->python_basics_python_0200_sequential_types python_basics_python_0300_strings->python_basics_python_0250_refs_flat_deep_copy python_basics_python_0300_strings->python_basics_python_0150_datatypes_overview python_basics_python_0320_strings_methods Miscellaneous String Methods python_basics_python_0320_strings_methods->python_basics_python_0300_strings python_basics_python_0310_strings_formatting String Formatting python_basics_python_0310_strings_formatting->python_basics_python_0300_strings python_basics_python_1000_function_objects Function Objects python_basics_python_1000_function_objects->python_basics_python_0270_functions python_basics_python_0400_lists More About Lists python_basics_python_0400_lists->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_installation Python Installation python_advanced_starargs Positional and Keyword Arguments python_advanced_starargs->python_basics_python_0270_functions python_advanced_exec The exec() Function python_advanced_exec->python_basics_python_0500_files python_advanced_exec->python_basics_python_0450_dictionaries 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_exceptions Exception Handling python_advanced_exceptions->python_basics_python_0270_functions python_advanced_exceptions->python_basics_python_0140_variables python_advanced_oo_basics Object Oriented Programming python_advanced_exceptions->python_advanced_oo_basics python_advanced_iteration_generation Iteration, Comprehensions, and Generators python_advanced_iteration_generation->python_basics_python_0220_for python_advanced_python_1010_generators_yield Iteration, and Generators: the yield Keyword 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_0200_sequential_types python_advanced_python_1010_generators_yield->python_basics_python_0225_range python_advanced_oo_implementation_inheritance From Duck Typing to Implementation Inheritance python_advanced_oo_implementation_inheritance->python_advanced_oo_basics python_advanced_oo_basics->python_basics_python_0450_dictionaries python_advanced_oo_basics->python_basics_python_0270_functions python_advanced_multiprocessing_basics Multiprocessing python_advanced_multiprocessing_basics->python_advanced_oo_basics python_advanced_multithreading_exam_questions Multithreading: Exam Questions python_advanced_multithreading_basics Multithreading (Python) python_advanced_multithreading_exam_questions->python_advanced_multithreading_basics python_advanced_multithreading_mutex Race Conditions, and Mutexes python_advanced_multithreading_exam_questions->python_advanced_multithreading_mutex python_advanced_multithreading_basics->python_advanced_oo_basics python_advanced_multithreading_mutex->python_advanced_multithreading_basics python_db_postgres DBAPI 2: PostgreSQL python_db_dbapi2 DBAPI 2 python_db_postgres->python_db_dbapi2 python_db_dbapi2->python_basics_python_0220_for python_db_dbapi2->python_advanced_modules python_db_dbapi2->python_advanced_python_1010_generators_yield python_db_sqlite3 DBAPI 2: sqlite3 python_db_sqlite3->python_db_dbapi2 python_exercises_legacy_passwd Exercise: Parsing /etc/passwd python_exercises_legacy_passwd->python_basics_python_0500_files python_exercises_legacy_passwd->python_basics_python_0450_dictionaries python_exercises_legacy_passwd->python_basics_python_0139_commandline_argv 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_distill->python_basics_python_0500_files python_exercises_legacy_distill->python_basics_python_0139_commandline_argv python_exercises_legacy_revert Exercise: Reverting Lines of a File python_exercises_legacy_distill->python_exercises_legacy_revert python_exercises_legacy_wc Exercise: Counting Lines, Words, Characters 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_python_0350_exercises->python_basics_python_0300_strings python_exercises_legacy_python_0350_exercises->python_basics_python_0320_strings_methods python_exercises_legacy_python_0350_exercises->python_basics_python_0310_strings_formatting python_exercises_legacy_join_function Exercise: Functions: join() python_exercises_legacy_python_0350_exercises->python_exercises_legacy_join_function python_exercises_legacy_uniq_generator Exercise: Generator: uniq() python_exercises_legacy_uniq_generator->python_advanced_python_1010_generators_yield python_exercises_legacy_uniq_generator->python_exercises_legacy_passwd python_exercises_legacy_uniq_function Exercise: Function: uniq() python_exercises_legacy_uniq_generator->python_exercises_legacy_uniq_function python_exercises_legacy_uniq_function->python_basics_python_0270_functions python_exercises_legacy_uniq_function->python_basics_python_0150_datatypes_overview_compound python_exercises_legacy_function_primeness Exercise: Primeness (Function) python_exercises_legacy_uniq_function->python_exercises_legacy_function_primeness python_exercises_legacy_uniq_plain Exercise: Sort out Duplicates python_exercises_legacy_uniq_function->python_exercises_legacy_uniq_plain python_exercises_legacy_join_function->python_basics_python_0270_functions 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_exercises_legacy_uniq_function 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_0160_boolean 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_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_for_primeness Exercise: Primeness (for) python_exercises_legacy_max_numbers_function->python_exercises_legacy_for_primeness 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_uniq_plain->python_basics_python_0150_datatypes_overview_compound python_exercises_legacy_dict_keyerror Exercise: Dictionary: Errors? python_exercises_legacy_dict_keyerror->python_basics_python_0150_datatypes_overview_compound python_exercises_legacy_cmdline_digit Exercise: Digit to English Word python_exercises_legacy_cmdline_digit->python_basics_python_0120_helloworld python_exercises_legacy_cmdline_digit->python_basics_python_0139_commandline_argv python_exercises_legacy_cmdline_digit->python_basics_python_0150_datatypes_overview_compound python_exercises_legacy_cmdline_digit->python_exercises_legacy_dict_keyerror python_exercises_legacy_while_primeness Exercise: Primeness (while) python_exercises_legacy_while_primeness->python_basics_python_0193_while python_exercises_legacy_while_primeness->python_basics_python_0139_commandline_argv python_exercises_legacy_while_primeness->python_exercises_legacy_cmdline_digit 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_revert->python_basics_python_0500_files python_exercises_legacy_revert->python_basics_python_0139_commandline_argv python_exercises_legacy_revert->python_exercises_legacy_wc python_exercises_legacy_max_numbers->python_basics_python_0140_variables python_exercises_legacy_max_numbers->python_basics_python_0170_if python_exercises_legacy_max_numbers->python_basics_python_0139_commandline_argv python_exercises_legacy_mixed_list_executable Exercise: Mixed List (Executable Program) python_exercises_legacy_max_numbers->python_exercises_legacy_mixed_list_executable python_exercises_legacy_mixed_list_executable->python_basics_python_0140_variables 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_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_exercises_legacy_mixed_list_interactive python_exercises_legacy_python_1011_generators_yield Exercise: Generator: Fibonacci python_exercises_legacy_python_1011_generators_yield->python_advanced_python_1010_generators_yield python_exercises_legacy_python_1011_generators_yield->python_exercises_legacy_uniq_generator python_exercises_herdt_swap Exercise: Swap Two Variables python_exercises_herdt_swap->python_basics_python_0140_variables python_exercises_herdt_swap->python_basics_python_0120_helloworld python_exercises_herdt_swap->python_basics_python_0150_datatypes_overview python_exercises_herdt_boolean Exercise: Boolean Expressions python_exercises_herdt_swap->python_exercises_herdt_boolean python_exercises_herdt_boolean->python_basics_python_0160_boolean 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_0170_if python_exercises_herdt_max_numbers->python_basics_python_0139_commandline_argv python_exercises_herdt_max_numbers->python_exercises_herdt_swap python_exercises_herdt_greeting Exercise: Greeting, Depending on Time of Day python_exercises_herdt_greeting->python_basics_python_0170_if python_exercises_herdt_greeting->python_exercises_herdt_max_numbers python_exercises_herdt_username_password Exercise: Username/Password Check python_exercises_herdt_username_password->python_basics_python_0170_if python_exercises_herdt_username_password->python_exercises_herdt_greeting python_exercises_herdt_while_even_numbers Exercise: Even Numbers (while) python_exercises_herdt_while_even_numbers->python_basics_python_0193_while python_exercises_herdt_while_even_numbers->python_basics_python_0139_commandline_argv python_exercises_herdt_while_even_numbers->python_exercises_herdt_username_password 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_exercises_csv_csv_db->python_db_sqlite3 python_exercises_csv_csv_db->python_exercises_csv_csv_db 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_modules python_exercises_csv_csv_module->python_advanced_python_1010_generators_yield python_misc_csv CSV Files python_exercises_csv_csv_module->python_misc_csv python_exercises_userdb_userdb_module Exercise: Refactoring - Extract Both CSV Formats Into Module python_exercises_userdb_userdb_module->python_advanced_modules 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_csvreader Exercise: Read CSV File (csv.reader) python_exercises_userdb_userdb_module->python_exercises_userdb_csvreader python_exercises_userdb_csvdictreader_function->python_basics_python_0270_functions python_exercises_userdb_csvdictreader Exercise: Read CSV File (csv.dictreader) python_exercises_userdb_csvdictreader_function->python_exercises_userdb_csvdictreader python_exercises_userdb_csvreader->python_basics_python_0139_commandline_argv python_exercises_userdb_csvreader->python_misc_csv 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_user_json Exercise: Convert User Record To JSON And Back python_exercises_userdb_user_json->python_exercises_userdb_userdb_module python_exercises_userdb_mqtt_publish_csv Exercise: MQTT: Publish User Records python_exercises_userdb_mqtt_publish_csv->python_exercises_userdb_user_json 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_misc_csv->python_basics_python_0500_files python_misc_csv->python_basics_python_0220_for python_misc_csv->python_basics_python_0150_datatypes_overview_compound python_misc_import The import Statement (incomplete) python_misc_import->python_advanced_modules python_misc_mqtt MQTT python_swdev_venv Virtual Environments python_misc_mqtt->python_swdev_venv python_misc_special_methods Special Methods, Operator Overloading (incomplete) python_misc_special_methods->python_advanced_oo_basics python_misc_encoding Encoding python_misc_encoding->python_basics_python_0500_files python_misc_encoding->python_basics_python_0150_datatypes_overview python_misc_encoding->python_basics_python_0330_strings_encoding python_misc_vscode Visual Studio Code for Python Programming python_misc_context_manager Context Managers (the with Statement) (incomplete) python_misc_context_manager->python_basics_python_0140_variables python_misc_context_manager->python_advanced_decorators python_misc_context_manager->python_advanced_exceptions python_misc_context_manager->python_advanced_python_1010_generators_yield python_misc_ai_machine_learning_intro Machine Learning: Concepts and Terminology python_misc_ai_k_means K-Means 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_swdev_pytest pytest Introduction, By Example python_swdev_pytest->python_advanced_modules python_swdev_venv->python_misc_import python_swdev_pip Python Package Index 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_basics python_drafts_matplotlib Matplotlib python_drafts_matplotlib->python_swdev_venv python_drafts_matplotlib->python_swdev_pip python_drafts_argparse Commandline Parsing with argparse python_drafts_argparse->python_basics_python_0139_commandline_argv 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 cxx_stl_container_intro C++: STL Containers (Intro) cxx_class_template C++: Class Templates cxx_class_intro C++: Class (Introduction) cxx_class_template->cxx_class_intro cxx_class_intro->c_introduction_installation cxx_templates_vs_interfaces C++: Templates vs. Interfaces cxx_dynamic_memory C++: Dynamic Memory cxx_global_initialization C++: Global Objects Initialization cxx_smart_pointers C++: Smart Pointers cxx_ownership_raii C++: Ownership/RAII cxx_smart_pointers->cxx_ownership_raii cxx_exercises C++: Exercises cxx_inheritance_virtual C++: Inheritance, Interfaces, virtual cxx_lambda C++: Lambda ecproposal_ec2_python_flask Simple Web Programming ecproposal_ec2_python_exercise_sensors EX: Temperature Sensors 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_flask ecproposal_ec2_python_exercise_avg_display EX: Averaging Sensor, Display ecproposal_ec2_python_web_sensors->ecproposal_ec2_python_exercise_avg_display 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_ec1_git Git Introduction 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_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_basics Introduction to Linux and Unix ecproposal_ec1_linux_dev_mgmt->ecproposal_ec1_linux_basics ecproposal_ec1_linux_gpio->ecproposal_ec1_linux_dev_mgmt 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_oo_basics C++: OO Basics ecproposal_ec1_cxx_iface->ecproposal_ec1_cxx_oo_basics ecproposal_ec1_cxx_unittest->ecproposal_ec1_cxx_build ecproposal_ec1_cxx_unittest->ecproposal_ec1_cxx_oo_basics ecproposal_ec1_cxx_oo_basics->ecproposal_ec1_git ecproposal_ec1_cxx_oo_basics->ecproposal_ec1_cxx_build clean_code_features_csv UserDB: Alternative Output Format - CSV clean_code_features_other_indexes Search By Other Indexes clean_code_bugs_find_error UserDB::find() Crashes If User Not Found clean_code_bugs_overwrite_existing_files Existing Files Are Overwritten clean_code_bugs_overwrite_store_content_on_read UserDB::read(): What If Done Twice? clean_code_refactoring_backingstore_interface BackingStore Has Too Many Responsibilities ⟶ Interface clean_code_refactoring_backingstore_monolithic UserDB Has Too Many Responsibilities ⟶ BackingStore clean_code_refactoring_backingstore_interface->clean_code_refactoring_backingstore_monolithic clean_code_refactoring_backingstore_monolithic->clean_code_bugs_overwrite_existing_files clean_code_refactoring_backingstore_monolithic->clean_code_bugs_overwrite_store_content_on_read 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_pass_store_in_ctor Load From BackingStore in Constructor clean_code_refactoring_pass_store_in_ctor->clean_code_bugs_overwrite_existing_files clean_code_refactoring_pass_store_in_ctor->clean_code_bugs_overwrite_store_content_on_read clean_code_refactoring_pass_store_in_ctor->clean_code_refactoring_backingstore_monolithic clean_code_refactoring_store_enum_switch->clean_code_features_csv project_xxx_debian_config Get Debian 10 Kernel Config project_xxx_wait_hardware Wait for Customer Hardware project_xxx_debian_kernel_package Finish: Debian Kernel Package etc. project_xxx_audio_chip Audio Chip Bringup project_xxx_debian_kernel_package->project_xxx_audio_chip project_xxx_dirty_upgrade Dirty Upgrade Path project_xxx_debian_kernel_package->project_xxx_dirty_upgrade project_xxx_hardware_bringup Yocto Kernel Bringup on Customer Hardware project_xxx_debian_kernel_package->project_xxx_hardware_bringup project_xxx_audio_chip->project_xxx_hardware_bringup 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->project_xxx_wait_hardware project_xxx_hardware_bringup->project_xxx_dirty_upgrade