Tag

Programming

22 articles

2026

  1. Iterator Pattern

    Explains the GoF design pattern Iterator and its relevance in modern programming languages.

    Programming
  2. Learning How to Use Claude Code Agent View

    Provides an overview and usage guide of the Agent View feature added to Claude Code, based on official documentation and videos.

    Programming
  3. Open a GitHub Repository in the Browser from the Terminal

    Using the GitHub CLI's gh browse command to open the current repository directly in a browser from the terminal.

    Programming
  4. Weekly Report (5)

    Weekly Report

    Weekly Report
  5. Weekly Report (4)

    Weekly Report

    Weekly Report
  6. Weekly Report (3)

    Weekly Report

    Weekly Report
  7. Weekly Report (2)

    Weekly Report

    Weekly Report
  8. Weekly Report (1)

    Weekly Report

    Weekly Report
  9. About the `<` Symbol for Inheritance

    Using the question of why Ruby's inheritance uses `<` as a starting point to intuitively connect it to subtyping in type theory.

    Programming

2025

  1. Cleaning Branches After Squash and Merge

    Why squash-and-merged branches can't be bulk-deleted with git pull --prune, and why -D is needed instead of -d.

    Programming
  2. Impressions After Improving My Blog with Cursor

    Reflecting on how using Cursor to improve this blog's code changed my perception of how practical LLM-assisted coding has become.

    Programming
  3. Learning GitHub Copilot Agent Mode

    Looking at Vibe Coding as context, then learning how to use GitHub Copilot's Agent mode and sharing impressions from trying it.

    Programming
  4. Reader Monad

    Reimplementing the Reader monad sample from "All About Monads" in Scala using Cats.

    Programming
  5. A Way to Remember compare/compareTo

    An easy way to remember what negative, zero, and positive return values mean for compare/compareTo, comparing docs across languages.

    Programming

2024

  1. A Gentle Tour of Java Optional for People Who Want to Understand It Better

    Explaining what map/flatMap on Optional and Stream really mean, building toward the concept of a Functor from scratch.

    Programming
  2. Trying ForkJoinPool

    Exploring how ForkJoinPool, the engine behind CompletableFuture and Stream's parallel processing, works by writing code with it.

    Programming
  3. Relearning Scala (Environment Setup)

    Setting up an Emacs development environment while relearning Scala 3, with some personal thoughts on why Scala fell out of fashion.

    Programming
  4. About Optional

    Framing Java's Optional as part of the lineage of Haskell's Maybe, and clarifying how to use it in line with its design intent.

    Programming
  5. Pitfalls of Collectors#toMap

    Explaining why Collectors#toMap throws on duplicate keys when converting a Stream to a Map, and how to avoid it with a merge function.

    Programming
  6. Bean Validation @Pattern Specification

    Explaining why ^ and $ are unnecessary in the regexp of Bean Validation's @Pattern annotation, debunking a commonly copied wrong example.

    Programming
  7. The Trap of Stream#toList()

    A detailed look at the difference between Stream#toList() and Collectors.toList() in Java 16, and the trap of its immutable result.

    Programming

2023

  1. Building a Blog with Astro

    Trying Astro v3 for this blog and checking what changed since v1/v2, including relative-path image webp conversion and CJK line-break fixes.

    Programming