Skip to content

Blog — page 11

568 posts on software development, newest first. Browse by topic:Rust, Go, Python, JavaScript & web, AI & data, DevOps & tooling, Mobile & Android, .NET & C#, C++ & systems, LaTeX, Investing, Everything else.

  1. GoConcurrency in Go: goroutines, channels and selectStart goroutines, wait for them with sync.WaitGroup, pass data over channels, wait on several channels with select, and build a small concurrent request processor.
  2. GoReading and writing files in Go, and handling errorsRead and write files with the os package, stream large files, and handle Go errors: returning them, wrapping with %w, and checking with errors.Is.
  3. GoWeb development in Go: net/http routing and html/templateBuild a small web server with Go's standard library: register handlers, route by method and path wildcard, and render HTML safely with html/template.
  4. GoProcessing WAV audio in Go with go-audioRead a WAV file with go-audio/wav, apply gain and a low-pass filter, find the dominant frequency with a gonum FFT, and write the result back to WAV.
  5. RustUsing Rust's type system to catch bugs: newtypes, enums and traitsThree Rust type-system techniques that turn runtime bugs into compile errors: newtypes for units, enums for errors, and traits for shared behaviour.
  6. RustRust match expressions: destructuring, guards, ranges, @ bindings and or-patternsHow Rust's match works: exhaustiveness checking, destructuring enums, match guards, range patterns, @ bindings and or-patterns, with runnable examples.
  7. GoWhy Go: where it came from, what it's good at, and how to install itGo's origins at Google, the language features that matter day to day, the jobs it suits and doesn't, and installing it on Windows, macOS and Linux.
  8. PythonTranscribing and subtitling YouTube videos with Whisper, yt-dlp and GradioA Gradio app that downloads a YouTube video with yt-dlp, transcribes or translates it with OpenAI Whisper, writes an SRT file, and burns the subtitles in with ffmpeg.
  9. Everything elseJUnit basics: writing and running unit tests in JavaWrite and run JUnit Jupiter tests in Java, covering the Maven dependency, lifecycle annotations, assertions, parameterized tests and what changed in JUnit 6.
  10. JavaScript & webBuilding a custom WordPress theme: files, the Loop, and publishingNotes from building a rough Tailwind-styled WordPress theme, covering the theme files, a post-card Loop, its bugs, and where to publish it.
  11. AI & dataSix ChatGPT prompts I use for code review, commit messages and blog draftsCopy-paste ChatGPT prompts for rewriting code to a style guide, writing tests, explaining code, writing commit messages and test notes, and drafting blog posts.
  12. JavaScript & webAn endless road animation for a car in React and CSSMake a car look like it is driving forever by scrolling dashed road markings with a CSS keyframe animation inside a small React component.

© 2026 David Li · Home · Blog · RSS ·Classic site · Built with Astro, Starlight and three.js · Logos:Font Awesome Free (CC BY 4.0)