{"@attributes":{"version":"2.0"},"channel":{"title":"Jacek Galowicz's Blog","description":"Thoughts on programming abd book reviews","link":"https:\/\/galowicz.de\/","language":"en-us","item":[{"title":"Wrapping Algorithms into Iterators","link":"https:\/\/galowicz.de\/blog\/algorithms_in_iterators\/","guid":"https:\/\/galowicz.de\/blog\/algorithms_in_iterators\/"},{"title":"A Nice Way to Manage SDL Resource Lifetime","link":"https:\/\/galowicz.de\/blog\/automatic_resource_release_with_sdl\/","guid":"https:\/\/galowicz.de\/blog\/automatic_resource_release_with_sdl\/"},{"title":"Automatic Testing of Display Resolution and Frame Drop Detection","link":"https:\/\/galowicz.de\/blog\/automatic-testing-of-display-resolution-and-frame-drop-detection\/","guid":"https:\/\/galowicz.de\/blog\/automatic-testing-of-display-resolution-and-frame-drop-detection\/"},{"title":"Book Review: A Philosophy of Software Design","link":"https:\/\/galowicz.de\/blog\/book-review-a-philosophy-of-software-design\/","guid":"https:\/\/galowicz.de\/blog\/book-review-a-philosophy-of-software-design\/"},{"title":"Book Review: Algorithms to Live By - The Computer Science of Human Decisions","link":"https:\/\/galowicz.de\/blog\/book-review-algorithms-to-live-by\/","guid":"https:\/\/galowicz.de\/blog\/book-review-algorithms-to-live-by\/"},{"title":"Book Review: Basic Forms of Anxiety","link":"https:\/\/galowicz.de\/blog\/book-review-basic-forms-of-anxiety\/","guid":"https:\/\/galowicz.de\/blog\/book-review-basic-forms-of-anxiety\/"},{"title":"Book Review: The Culture Map","link":"https:\/\/galowicz.de\/blog\/book-review-the-culture-map\/","guid":"https:\/\/galowicz.de\/blog\/book-review-the-culture-map\/"},{"title":"Book Review: The Phoenix Project","link":"https:\/\/galowicz.de\/blog\/book-review-the-phoenix-project\/","guid":"https:\/\/galowicz.de\/blog\/book-review-the-phoenix-project\/"},{"title":"Compile Time Type Lists","link":"https:\/\/galowicz.de\/blog\/compile_time_type_lists\/","guid":"https:\/\/galowicz.de\/blog\/compile_time_type_lists\/"},{"title":"Const References to Temporary Objects","link":"https:\/\/galowicz.de\/blog\/const_reference_to_temporary_object\/","guid":"https:\/\/galowicz.de\/blog\/const_reference_to_temporary_object\/"},{"title":"Constructing Parameterized Matrices with GNU Octave","link":"https:\/\/galowicz.de\/blog\/constructing-parameterized-matrices-with-gnu-octave\/","guid":"https:\/\/galowicz.de\/blog\/constructing-parameterized-matrices-with-gnu-octave\/"},{"title":"Transformations between User Input\/Output and Type Lists","link":"https:\/\/galowicz.de\/blog\/converting_between_c_strings_and_type_lists\/","guid":"https:\/\/galowicz.de\/blog\/converting_between_c_strings_and_type_lists\/"},{"title":"Executing Brainfuck at Compile Time with C++ Templates","link":"https:\/\/galowicz.de\/blog\/cpp_template_compile_time_brainfuck_interpreter\/","guid":"https:\/\/galowicz.de\/blog\/cpp_template_compile_time_brainfuck_interpreter\/"},{"title":"Type List Compile Time Performance","link":"https:\/\/galowicz.de\/blog\/cpp_template_type_list_performance\/","guid":"https:\/\/galowicz.de\/blog\/cpp_template_type_list_performance\/"},{"title":"(Qt)Quick C++ Project Setup with Nix","link":"https:\/\/galowicz.de\/blog\/cpp-qt-qml-nix-setup\/","guid":"https:\/\/galowicz.de\/blog\/cpp-qt-qml-nix-setup\/"},{"title":"C++17 STL Cookbook","link":"https:\/\/galowicz.de\/blog\/cpp17_stl_cookbook\/","guid":"https:\/\/galowicz.de\/blog\/cpp17_stl_cookbook\/"},{"title":"Do Not Fear Recursion","link":"https:\/\/galowicz.de\/blog\/dont_fear_recursion\/","guid":"https:\/\/galowicz.de\/blog\/dont_fear_recursion\/"},{"title":"How Does the Typical SFINAE Type Trait Work?","link":"https:\/\/galowicz.de\/blog\/how_do_sfinae_traits_work\/","guid":"https:\/\/galowicz.de\/blog\/how_do_sfinae_traits_work\/"},{"title":"How to Use the CRTP to Reduce Duplication","link":"https:\/\/galowicz.de\/blog\/how_to_use_crtp_to_reduce_duplication\/","guid":"https:\/\/galowicz.de\/blog\/how_to_use_crtp_to_reduce_duplication\/"},{"title":"Useful type traits with if_compiles semantics","link":"https:\/\/galowicz.de\/blog\/if_compiles_type_traits\/","guid":"https:\/\/galowicz.de\/blog\/if_compiles_type_traits\/"},{"title":"Generating Integer Sequences at Compile Time","link":"https:\/\/galowicz.de\/blog\/integer_sequences_at_compile_time\/","guid":"https:\/\/galowicz.de\/blog\/integer_sequences_at_compile_time\/"},{"title":"Managing libraries with Nix","link":"https:\/\/galowicz.de\/blog\/managing_libraries_with_nix\/","guid":"https:\/\/galowicz.de\/blog\/managing_libraries_with_nix\/"},{"title":"Mixed C++ Monorepo Project Structure Development and Build Workflow","link":"https:\/\/galowicz.de\/blog\/mixed-cpp-monorepo-project\/","guid":"https:\/\/galowicz.de\/blog\/mixed-cpp-monorepo-project\/"},{"title":"NixOS Community Oceansprint 2021 Report","link":"https:\/\/galowicz.de\/blog\/nix-community-oceansprint-report\/","guid":"https:\/\/galowicz.de\/blog\/nix-community-oceansprint-report\/"},{"title":"NixOS Community Oceansprint late 2022 Report","link":"https:\/\/galowicz.de\/blog\/nix-community-oceansprint3-report\/","guid":"https:\/\/galowicz.de\/blog\/nix-community-oceansprint3-report\/"},{"title":"ON_EXIT - Combining Automatic Destruction and Lambdas","link":"https:\/\/galowicz.de\/blog\/on_exit_macro\/","guid":"https:\/\/galowicz.de\/blog\/on_exit_macro\/"},{"title":"Iterators are also part of the C++ zero cost abstractions","link":"https:\/\/galowicz.de\/blog\/order2_iterator\/","guid":"https:\/\/galowicz.de\/blog\/order2_iterator\/"},{"title":"Simple(r) Heterogeneous Mapping of Records in Purescript","link":"https:\/\/galowicz.de\/blog\/purescript-heterogeneous-map\/","guid":"https:\/\/galowicz.de\/blog\/purescript-heterogeneous-map\/"},{"title":"Interpolation of Records of Values in Purescript","link":"https:\/\/galowicz.de\/blog\/purescript-interpolation-of-records\/","guid":"https:\/\/galowicz.de\/blog\/purescript-interpolation-of-records\/"},{"title":"Python Style printf for C++ with pprintpp","link":"https:\/\/galowicz.de\/blog\/python_style_printf_for_cpp\/","guid":"https:\/\/galowicz.de\/blog\/python_style_printf_for_cpp\/"},{"title":"Quick VMs with NixOS","link":"https:\/\/galowicz.de\/blog\/quick-vms-with-nixos\/","guid":"https:\/\/galowicz.de\/blog\/quick-vms-with-nixos\/"},{"title":"A reinterpret_cast Trap","link":"https:\/\/galowicz.de\/blog\/reinterpret_cast_trap\/","guid":"https:\/\/galowicz.de\/blog\/reinterpret_cast_trap\/"},{"title":"A __FILE__ Macro Which Does Not Contain the Whole Source File Path","link":"https:\/\/galowicz.de\/blog\/short_file_macro\/","guid":"https:\/\/galowicz.de\/blog\/short_file_macro\/"},{"title":"Simple Project Documentation with MkDocs, PlantUML, and PlantUML-C4 Integration","link":"https:\/\/galowicz.de\/blog\/simple-documentation-with-mkdocs-plantuml-c4-integration\/","guid":"https:\/\/galowicz.de\/blog\/simple-documentation-with-mkdocs-plantuml-c4-integration\/"},{"title":"Single-Command Server Bootstrapping","link":"https:\/\/galowicz.de\/blog\/single-command-server-bootstrap\/","guid":"https:\/\/galowicz.de\/blog\/single-command-server-bootstrap\/"},{"title":"Static Polymorphy in C++","link":"https:\/\/galowicz.de\/blog\/static_polymorphy\/","guid":"https:\/\/galowicz.de\/blog\/static_polymorphy\/"},{"title":"Template Metaprogramming Basics","link":"https:\/\/galowicz.de\/blog\/template_meta_programming_basics\/","guid":"https:\/\/galowicz.de\/blog\/template_meta_programming_basics\/"},{"title":"Implementing a Turing Tape for Use at Compile Time","link":"https:\/\/galowicz.de\/blog\/turing_tape_with_type_lists\/","guid":"https:\/\/galowicz.de\/blog\/turing_tape_with_type_lists\/"},{"title":"Setting up a C++ project environment with nix","link":"https:\/\/galowicz.de\/blog\/tutorial_nix_cpp_setup\/","guid":"https:\/\/galowicz.de\/blog\/tutorial_nix_cpp_setup\/"},{"title":"Uncaught Exceptions in C++","link":"https:\/\/galowicz.de\/blog\/uncaught_exceptions_in_cpp\/","guid":"https:\/\/galowicz.de\/blog\/uncaught_exceptions_in_cpp\/"},{"title":"Filtering Unique Items from Heterogeneous Lists at Compile Time","link":"https:\/\/galowicz.de\/blog\/unique-heterogeneous-typelists\/","guid":"https:\/\/galowicz.de\/blog\/unique-heterogeneous-typelists\/"},{"title":"What is a Type Trait?","link":"https:\/\/galowicz.de\/blog\/what_is_a_type_trait\/","guid":"https:\/\/galowicz.de\/blog\/what_is_a_type_trait\/"}]}}