<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pimpal</title>
    <link>https://majiehong.com/</link>
    <description>Notes on software, systems and the occasional book.</description>
    <language>en</language>
    <generator>pimpal</generator>
    <atom:link href="https://majiehong.com/index.xml" rel="self" type="application/rss+xml"></atom:link>
    <item>
      <title>Localhost Development: ip, ports &amp; co.</title>
      <link>https://majiehong.com/2026-01-19_localhost_dev/</link>
      <guid isPermaLink="true">https://majiehong.com/2026-01-19_localhost_dev/</guid>
      <pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate>
      <description>Explaining loopback addresses, port ranges, reverse proxies and safe binding choices for local and containerised services.</description>
    </item>
    <item>
      <title>Review: Before the coffee gets cold</title>
      <link>https://majiehong.com/2025-08-31_review_before_the_coffee_gets_cold/</link>
      <guid isPermaLink="true">https://majiehong.com/2025-08-31_review_before_the_coffee_gets_cold/</guid>
      <pubDate>Sun, 31 Aug 2025 00:00:00 +0000</pubDate>
      <description>Reviewing a Tokyo café&#39;s rule-bound time-travel stories about relationships, regret, emotional warmth and acceptance.</description>
    </item>
    <item>
      <title>Review: Project Hail Mary</title>
      <link>https://majiehong.com/2025-08-10_review_project_hail_mary/</link>
      <guid isPermaLink="true">https://majiehong.com/2025-08-10_review_project_hail_mary/</guid>
      <pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate>
      <description>Reviewing a survival story built on human-alien collaboration, scientific problem-solving and accessible, tightly paced prose.</description>
    </item>
    <item>
      <title>Revue : Nausicaä de la vallée du vent — Tomes 1 à 7</title>
      <link>https://majiehong.com/2025-08-03_revue_nausicaa_de_la_vallee_du_vent/</link>
      <guid isPermaLink="true">https://majiehong.com/2025-08-03_revue_nausicaa_de_la_vallee_du_vent/</guid>
      <pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate>
      <description>Analyse des thèmes écologiques et politiques du manga, de sa traduction et de ses écarts avec le film de Miyazaki.</description>
    </item>
    <item>
      <title>Decluterring Methods</title>
      <link>https://majiehong.com/2025-02-23_declutter_methods/</link>
      <guid isPermaLink="true">https://majiehong.com/2025-02-23_declutter_methods/</guid>
      <pubDate>Sun, 23 Feb 2025 00:00:00 +0000</pubDate>
      <description>Comparing KonMari, Danshari and waste-reduction principles while balancing the practical and emotional value of possessions.</description>
    </item>
    <item>
      <title>Perl: A Better Cross-Platform CLI Tool Across Unix Systems</title>
      <link>https://majiehong.com/2024-08-24_perl_better_cross_platform_tool/</link>
      <guid isPermaLink="true">https://majiehong.com/2024-08-24_perl_better_cross_platform_tool/</guid>
      <pubDate>Sat, 24 Aug 2024 00:00:00 +0000</pubDate>
      <description>Using portable Perl one-liners instead of incompatible GNU and BSD variants of grep, sed and awk.</description>
    </item>
    <item>
      <title>Python: fastest way to check if a string matches a simple pattern</title>
      <link>https://majiehong.com/2024-05-26_python_match_regexps/</link>
      <guid isPermaLink="true">https://majiehong.com/2024-05-26_python_match_regexps/</guid>
      <pubDate>Sun, 26 May 2024 00:00:00 +0000</pubDate>
      <description>Benchmarking regular expressions and lower-level alternatives for validating simple patterns in Python strings.</description>
    </item>
    <item>
      <title>The case of songs playing longer than their lengths</title>
      <link>https://majiehong.com/2024-05-17_case_incorrect_song_length/</link>
      <guid isPermaLink="true">https://majiehong.com/2024-05-17_case_incorrect_song_length/</guid>
      <pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate>
      <description>Tracing misleading song durations to chapter metadata and fixing iOS and QuickTime playback with an ffmpeg option.</description>
    </item>
    <item>
      <title>Powershell: Great but Inconsistent</title>
      <link>https://majiehong.com/2024-05-01_powershell_inconsistencies/</link>
      <guid isPermaLink="true">https://majiehong.com/2024-05-01_powershell_inconsistencies/</guid>
      <pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate>
      <description>Examining PowerShell&#39;s object pipelines, inconsistent parameter binding, iteration choices and awkward JSON defaults.</description>
    </item>
    <item>
      <title>How does the bluetooth stack works?</title>
      <link>https://majiehong.com/2023-11-25_how_does_the_bluetooth_stack_works/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-11-25_how_does_the_bluetooth_stack_works/</guid>
      <pubDate>Sat, 25 Nov 2023 00:00:00 +0000</pubDate>
      <description>Surveying Bluetooth networks, protocols, pairing, profiles, Linux audio integration and packet-capture limitations.</description>
    </item>
    <item>
      <title>Using Caddy webserver to mock a backend</title>
      <link>https://majiehong.com/2023-10-29_using_caddy_webserver_to_mock_backend/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-10-29_using_caddy_webserver_to_mock_backend/</guid>
      <pubDate>Sun, 29 Oct 2023 00:00:00 +0000</pubDate>
      <description>Using a compact Caddy configuration to mock endpoints with query matching, JSON files and custom status responses.</description>
    </item>
    <item>
      <title>HTTP Authentication: a client-server story</title>
      <link>https://majiehong.com/2023-10-01_http_authentication/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-10-01_http_authentication/</guid>
      <pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate>
      <description>Explaining how HTTP clients answer authentication challenges using schemes, realms and authorization headers.</description>
    </item>
    <item>
      <title>Learning from your shell history</title>
      <link>https://majiehong.com/2023-08-27_learning_from_shell_history/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-08-27_learning_from_shell_history/</guid>
      <pubDate>Sun, 27 Aug 2023 00:00:00 +0000</pubDate>
      <description>Analysing command frequencies and arguments in shell history to reveal opportunities for aliases and workflow automation.</description>
    </item>
    <item>
      <title>Webservers: overview and migration from Apache httpd to Caddy</title>
      <link>https://majiehong.com/2023-08-12_webserver_httpd_caddy/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-08-12_webserver_httpd_caddy/</guid>
      <pubDate>Sat, 12 Aug 2023 00:00:00 +0000</pubDate>
      <description>Reviewing an Apache configuration failure, comparing open-source web servers and presenting a clearer Caddy setup.</description>
    </item>
    <item>
      <title>TN5250 Terminal UI: retrospective and Web UI attempt</title>
      <link>https://majiehong.com/2023-06-29_terminal_ui_web/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-06-29_terminal_ui_web/</guid>
      <pubDate>Thu, 29 Jun 2023 00:00:00 +0000</pubDate>
      <description>Examining keyboard-friendly terminal interface conventions and evaluating a CSS-based web interface inspired by them.</description>
    </item>
    <item>
      <title>Maven: lifecycles, phases, bindings and plugins</title>
      <link>https://majiehong.com/2023-05-08_maven_lifecycles_phases_and_plugins/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-05-08_maven_lifecycles_phases_and_plugins/</guid>
      <pubDate>Mon, 08 May 2023 00:00:00 +0000</pubDate>
      <description>Explaining Maven&#39;s lifecycles, phase-to-plugin bindings, execution order, default goals and direct plugin invocation.</description>
    </item>
    <item>
      <title>State of GTK 3 and 4 programming in Python</title>
      <link>https://majiehong.com/2023-04-15_state_of_gtk_programming_in_python/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-04-15_state_of_gtk_programming_in_python/</guid>
      <pubDate>Sat, 15 Apr 2023 00:00:00 +0000</pubDate>
      <description>Assessing GTK4&#39;s API while detailing weaknesses in Python documentation, tooling, autocomplete and migration support.</description>
    </item>
    <item>
      <title>SQL: Speed difference when GROUP BY and WINDOW functions are equivalent</title>
      <link>https://majiehong.com/2023-04-07_sql_group_by_window_speed_when_equivalent/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-04-07_sql_group_by_window_speed_when_equivalent/</guid>
      <pubDate>Fri, 07 Apr 2023 00:00:00 +0000</pubDate>
      <description>Comparing equivalent SQLite aggregation queries and explaining why GROUP BY has a simpler plan than a window function.</description>
    </item>
    <item>
      <title>Java to Native Code: it&#39;s so easy (uber jar)</title>
      <link>https://majiehong.com/2023-02-05_java_to_native_code_so_easy_uber_jar/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-02-05_java_to_native_code_so_easy_uber_jar/</guid>
      <pubDate>Sun, 05 Feb 2023 00:00:00 +0000</pubDate>
      <description>Building a Picocli application as an executable fat JAR, then compiling it into a native binary with GraalVM.</description>
    </item>
    <item>
      <title>Java to Native Code: it&#39;s so easy (no dependencies)</title>
      <link>https://majiehong.com/2023-01-21_java_to_native_code_so_easy_no_deps/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-21_java_to_native_code_so_easy_no_deps/</guid>
      <pubDate>Sat, 21 Jan 2023 00:00:00 +0000</pubDate>
      <description>Turning a dependency-free Java source file into a static executable with javac and GraalVM Native Image.</description>
    </item>
    <item>
      <title>Hanukkah of Data 2022: Puzzle 1</title>
      <link>https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_1/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_1/</guid>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      <description>Using Java, SQLite and T9 keypad conversion to identify a customer whose surname encodes to their telephone number.</description>
    </item>
    <item>
      <title>Hanukkah of Data 2022: Puzzle 2</title>
      <link>https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_2/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_2/</guid>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      <description>Combining SQL and Java filtering to find 2017 rug-cleaner buyers whose two-part names have the initials J.D.</description>
    </item>
    <item>
      <title>Hanukkah of Data 2022: Puzzle 3</title>
      <link>https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_3/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_3/</guid>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      <description>Using SQLite to isolate a nearby customer by ZIP code, Aries birth dates and Chinese zodiac Dog years.</description>
    </item>
    <item>
      <title>Hanukkah of Data 2022: Puzzle 4</title>
      <link>https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_4/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_4/</guid>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      <description>Identifying a habitual early-morning pastry buyer by grouping bakery orders and ranking customers by frequency.</description>
    </item>
    <item>
      <title>Hanukkah of Data 2022: Puzzle 5</title>
      <link>https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_5/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_5/</guid>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      <description>Finding a prolific cat owner by querying pet-product purchases in Queens Village and ranking repeat customers.</description>
    </item>
    <item>
      <title>Hanukkah of Data 2022: Puzzle 6</title>
      <link>https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_6/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_6/</guid>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      <description>Locating an avid coupon user by comparing retail and wholesale prices and ranking below-cost purchases by customer.</description>
    </item>
    <item>
      <title>Hanukkah of Data 2022: Puzzle 7</title>
      <link>https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_7/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_7/</guid>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      <description>Using sequential order IDs and SQL joins to find a male customer who bought a differently coloured item immediately afterward.</description>
    </item>
    <item>
      <title>Hanukkah of Data 2022: Puzzle 8</title>
      <link>https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_8/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-08_hanukkah_of_data_2022_puzzle_8/</guid>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      <description>Ranking customers by purchases of Noah&#39;s collectible products to identify someone who repeatedly acquired complete sets.</description>
    </item>
    <item>
      <title>Splitting a file on lines matching a pattern</title>
      <link>https://majiehong.com/2023-01-05_splitting_file_by_lines/</link>
      <guid isPermaLink="true">https://majiehong.com/2023-01-05_splitting_file_by_lines/</guid>
      <pubDate>Thu, 05 Jan 2023 00:00:00 +0000</pubDate>
      <description>Comparing csplit, awk, jq and Java approaches for dividing text files whenever a line matches a regular expression.</description>
    </item>
    <item>
      <title>Handcrafting a Docker Image</title>
      <link>https://majiehong.com/2022-09-04_handcrafting_a_docker_image/</link>
      <guid isPermaLink="true">https://majiehong.com/2022-09-04_handcrafting_a_docker_image/</guid>
      <pubDate>Sun, 04 Sep 2022 00:00:00 +0000</pubDate>
      <description>Building a minimal single-layer Docker image by packaging a static binary and generating the required archives and metadata.</description>
    </item>
    <item>
      <title>Truly Static Binaries</title>
      <link>https://majiehong.com/2022-08-21_static_binary/</link>
      <guid isPermaLink="true">https://majiehong.com/2022-08-21_static_binary/</guid>
      <pubDate>Sun, 21 Aug 2022 00:00:00 +0000</pubDate>
      <description>Testing whether popular Linux executables are dependency-free and demonstrating how to build a truly static binary.</description>
    </item>
    <item>
      <title>The German Deposit System</title>
      <link>https://majiehong.com/2022-04-15_deposit_system_in_germany/</link>
      <guid isPermaLink="true">https://majiehong.com/2022-04-15_deposit_system_in_germany/</guid>
      <pubDate>Fri, 15 Apr 2022 00:00:00 +0000</pubDate>
      <description>Explaining how Germany&#39;s bottle deposits encourage reuse, affect consumers and producers and may evolve across Europe.</description>
    </item>
    <item>
      <title>Reducing this blog size again</title>
      <link>https://majiehong.com/2021-09-12_reducing_this_blog_size_again/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-09-12_reducing_this_blog_size_again/</guid>
      <pubDate>Sun, 12 Sep 2021 00:00:00 +0000</pubDate>
      <description>Replacing client-side syntax highlighting with Asciidoctor and Rouge to save browser work and support users without JavaScript.</description>
    </item>
    <item>
      <title>Experience Being Deaf</title>
      <link>https://majiehong.com/2021-08-31_experience_being_deaf/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-08-31_experience_being_deaf/</guid>
      <pubDate>Tue, 31 Aug 2021 00:00:00 +0000</pubDate>
      <description>Using travel without the local language to illustrate barriers deaf people face in healthcare, support, entertainment and calls.</description>
    </item>
    <item>
      <title>Slow NixOS Startup</title>
      <link>https://majiehong.com/2021-07-30_slow_nixos_startup/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-07-30_slow_nixos_startup/</guid>
      <pubDate>Fri, 30 Jul 2021 00:00:00 +0000</pubDate>
      <description>Using systemd boot analysis to find network delays in NixOS and reduce startup time through targeted configuration changes.</description>
    </item>
    <item>
      <title>Backup Strategy with Borg</title>
      <link>https://majiehong.com/2021-07-17_backup_strategy_with_borg/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-07-17_backup_strategy_with_borg/</guid>
      <pubDate>Sat, 17 Jul 2021 00:00:00 +0000</pubDate>
      <description>Building an encrypted, deduplicated Linux backup workflow with Borg, SSHFS, a NAS, pruning rules and systemd timers.</description>
    </item>
    <item>
      <title>Mockito&#39;s performance cost</title>
      <link>https://majiehong.com/2021-07-11_mockito_performance_cost/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-07-11_mockito_performance_cost/</guid>
      <pubDate>Sun, 11 Jul 2021 00:00:00 +0000</pubDate>
      <description>Benchmarking Java tests to show that mocking simple data objects can be dramatically slower than using real instances.</description>
    </item>
    <item>
      <title>Altruistic Design</title>
      <link>https://majiehong.com/2021-04-21_altruistic_design/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-04-21_altruistic_design/</guid>
      <pubDate>Wed, 21 Apr 2021 00:00:00 +0000</pubDate>
      <description>Defining humane design through usability, accessibility and user experience that reduce suffering instead of manipulating people.</description>
    </item>
    <item>
      <title>When will Unicode be full?</title>
      <link>https://majiehong.com/2021-04-02_when_unicode_full/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-04-02_when_unicode_full/</guid>
      <pubDate>Fri, 02 Apr 2021 00:00:00 +0000</pubDate>
      <description>Using Unicode&#39;s fixed capacity and historical growth rate to estimate when the encoding could become full.</description>
    </item>
    <item>
      <title>FZF: how to use jqplay.org in a terminal</title>
      <link>https://majiehong.com/2021-03-08_fzf_jq_play_locally/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-03-08_fzf_jq_play_locally/</guid>
      <pubDate>Mon, 08 Mar 2021 00:00:00 +0000</pubDate>
      <description>Combining fzf previews with jq to interactively compose and test JSON queries in a fast, private terminal environment.</description>
    </item>
    <item>
      <title>FZF: interactivity as a service or how to make ssh interactive</title>
      <link>https://majiehong.com/2021-03-03_fzf_interactivity_ssh/</link>
      <guid isPermaLink="true">https://majiehong.com/2021-03-03_fzf_interactivity_ssh/</guid>
      <pubDate>Wed, 03 Mar 2021 00:00:00 +0000</pubDate>
      <description>Using fzf to add reusable interactivity to command-line tools by filtering a host list before launching SSH.</description>
    </item>
    <item>
      <title>The problem with using exceptions for validation</title>
      <link>https://majiehong.com/2020-12-22_the_issue_with_exception_for_validation/</link>
      <guid isPermaLink="true">https://majiehong.com/2020-12-22_the_issue_with_exception_for_validation/</guid>
      <pubDate>Tue, 22 Dec 2020 00:00:00 +0000</pubDate>
      <description>Showing how exception-based input validation stops at the first error and complicates returning every failure together.</description>
    </item>
    <item>
      <title>Stop abusing regexps, use parser combinators instead</title>
      <link>https://majiehong.com/2020-12-16_parser_combinators_over_regexps/</link>
      <guid isPermaLink="true">https://majiehong.com/2020-12-16_parser_combinators_over_regexps/</guid>
      <pubDate>Wed, 16 Dec 2020 00:00:00 +0000</pubDate>
      <description>Comparing Python regex and parser-combinator implementations for clearer validation, composition and error reporting.</description>
    </item>
    <item>
      <title>Reducing this blog size</title>
      <link>https://majiehong.com/2020-10-04_reducing_this_blog_size/</link>
      <guid isPermaLink="true">https://majiehong.com/2020-10-04_reducing_this_blog_size/</guid>
      <pubDate>Sun, 04 Oct 2020 00:00:00 +0000</pubDate>
      <description>Optimising images, themes, CSS and JavaScript to reduce the blog&#39;s transfers, load time and carbon footprint.</description>
    </item>
    <item>
      <title>Essence of astronomy binoculars shopping</title>
      <link>https://majiehong.com/2020-09-20_essence_of_astronomy_binoculars_shopping/</link>
      <guid isPermaLink="true">https://majiehong.com/2020-09-20_essence_of_astronomy_binoculars_shopping/</guid>
      <pubDate>Sun, 20 Sep 2020 00:00:00 +0000</pubDate>
      <description>Relating pupil size, objective diameter and magnification to select binocular specifications suitable for astronomy.</description>
    </item>
    <item>
      <title>Make UIs Fast Again</title>
      <link>https://majiehong.com/2020-09-01_make_ui_fast_again/</link>
      <guid isPermaLink="true">https://majiehong.com/2020-09-01_make_ui_fast_again/</guid>
      <pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate>
      <description>Comparing client architectures to explain how locality and asynchronous work can reduce user-interface latency.</description>
    </item>
    <item>
      <title>JSON processing with Jq made simpler</title>
      <link>https://majiehong.com/2020-06-11_json_processing_with_jq_made_simpler/</link>
      <guid isPermaLink="true">https://majiehong.com/2020-06-11_json_processing_with_jq_made_simpler/</guid>
      <pubDate>Thu, 11 Jun 2020 00:00:00 +0000</pubDate>
      <description>Teaching jq through formatting, filtering, modifying and constructing JSON with practical command-line examples.</description>
    </item>
    <item>
      <title>Reliability of Sequential Layers</title>
      <link>https://majiehong.com/2020-03-06_layers_and_reliability/</link>
      <guid isPermaLink="true">https://majiehong.com/2020-03-06_layers_and_reliability/</guid>
      <pubDate>Fri, 06 Mar 2020 00:00:00 +0000</pubDate>
      <description>Modelling sequential processing layers with probability to show how each dependency affects a system&#39;s reliability.</description>
    </item>
    <item>
      <title>Anything as a service: business ideas</title>
      <link>https://majiehong.com/2019-11-01_anything_as_a_service/</link>
      <guid isPermaLink="true">https://majiehong.com/2019-11-01_anything_as_a_service/</guid>
      <pubDate>Fri, 01 Nov 2019 00:00:00 +0000</pubDate>
      <description>Turning owned tasks and products into services as a pattern for generating practical start-up ideas.</description>
    </item>
    <item>
      <title>From Example-based unit-tests to property testing</title>
      <link>https://majiehong.com/2019-08-18_property_based_testing/</link>
      <guid isPermaLink="true">https://majiehong.com/2019-08-18_property_based_testing/</guid>
      <pubDate>Sun, 18 Aug 2019 00:00:00 +0000</pubDate>
      <description>Using a Kotlin uppercase function to show how generated inputs and invariants uncover cases missed by example-based tests.</description>
    </item>
    <item>
      <title>How Many Unit-tests?</title>
      <link>https://majiehong.com/2019-08-04_number_of_unit_tests/</link>
      <guid isPermaLink="true">https://majiehong.com/2019-08-04_number_of_unit_tests/</guid>
      <pubDate>Sun, 04 Aug 2019 00:00:00 +0000</pubDate>
      <description>Examining test coverage, cyclomatic complexity and combinatorial testing to estimate how many tests software needs.</description>
    </item>
    <item>
      <title>Java: The Expression Problem &amp; Object Algebras</title>
      <link>https://majiehong.com/2019-04-22_java_expression_problem/</link>
      <guid isPermaLink="true">https://majiehong.com/2019-04-22_java_expression_problem/</guid>
      <pubDate>Mon, 22 Apr 2019 00:00:00 +0000</pubDate>
      <description>Exploring extensibility trade-offs in object-oriented and functional code, then implementing object algebras in Java.</description>
    </item>
    <item>
      <title>Book review: Humble Pi, by Matt Parker</title>
      <link>https://majiehong.com/2019-04-14_book_review_humble_pi/</link>
      <guid isPermaLink="true">https://majiehong.com/2019-04-14_book_review_humble_pi/</guid>
      <pubDate>Sun, 14 Apr 2019 00:00:00 +0000</pubDate>
      <description>Reviewing Matt Parker&#39;s humorous collection of consequential mathematical mistakes and comparing it with his video work.</description>
    </item>
    <item>
      <title>Java: refactoring logic &amp; impure functions for unit-tests</title>
      <link>https://majiehong.com/2019-01-31_java_refactoring_impurity/</link>
      <guid isPermaLink="true">https://majiehong.com/2019-01-31_java_refactoring_impurity/</guid>
      <pubDate>Thu, 31 Jan 2019 00:00:00 +0000</pubDate>
      <description>Separating file-system side effects from Java business logic through dependency injection to make code unit-testable.</description>
    </item>
    <item>
      <title>Life&#39;s Short</title>
      <link>https://majiehong.com/2019-01-06_life_short/</link>
      <guid isPermaLink="true">https://majiehong.com/2019-01-06_life_short/</guid>
      <pubDate>Sun, 06 Jan 2019 00:00:00 +0000</pubDate>
      <description>Reflecting on the brevity of human life and using our limited time to benefit ourselves and other people.</description>
    </item>
    <item>
      <title>When will we be ready to talk with aliens?</title>
      <link>https://majiehong.com/2018-07-22_getting_ready_for_alien_communication/</link>
      <guid isPermaLink="true">https://majiehong.com/2018-07-22_getting_ready_for_alien_communication/</guid>
      <pubDate>Sun, 22 Jul 2018 00:00:00 +0000</pubDate>
      <description>Measuring readiness for alien contact through our ability to communicate across languages, animals, plants and fungi.</description>
    </item>
    <item>
      <title>How to live long and prosper</title>
      <link>https://majiehong.com/2018-06-17_how_to_live_your_life/</link>
      <guid isPermaLink="true">https://majiehong.com/2018-06-17_how_to_live_your_life/</guid>
      <pubDate>Sun, 17 Jun 2018 00:00:00 +0000</pubDate>
      <description>Summarising WHO guidance on physical activity and nutrition for improving health, preventing disease and living longer.</description>
    </item>
    <item>
      <title>Beyond Foreign Function Interfaces</title>
      <link>https://majiehong.com/2018-06-09_beyond_ffi/</link>
      <guid isPermaLink="true">https://majiehong.com/2018-06-09_beyond_ffi/</guid>
      <pubDate>Sat, 09 Jun 2018 00:00:00 +0000</pubDate>
      <description>Making the case for generalising foreign function interfaces and simplifying code reuse across language boundaries.</description>
    </item>
  </channel>
</rss>
