All Posts

Thoughts on coding, music, and creative projects.

April 20, 2026

KidsUI: A Small UI Kit for Kids

I built a small UI kit for kid-friendly web projects because I keep needing cheerful, simple components for my daughter, her kindergarten, and a few educational apps I want to make later.

April 04, 2026

Moving Assets to Cloudflare R2

Stop committing MP3s and PDFs to Git. Serve them from R2 instead—zero egress fees, local development still works, and your repo shrinks by 30MB.

March 30, 2026

Adding Newsletter Subscriptions

A double opt-in newsletter for a Rails blog. Two models, two mailers, one rake task, and no third-party service.

March 26, 2026

Designing the Favicon

How two brackets, two AI tools, and a bit of stubbornness led to this site's favicon.

March 25, 2026

Markdown Syntax Showcase

A demo post showing the Markdown and KaTeX syntax supported by Perron and kramdown.

August 14, 2024

How does Javascript handles inheritance?

I have been programming javascript for years and for sure I used the inheritance features from js. But what a shame that I still don't understand it. And I would like to understand it more by the end of this post.

August 12, 2024

Nature of Code with d3.js

This post is a personal follow up to the book The nature of code. Instead of using p5.js from the book, I decide to use d3.js.

January 24, 2023

Using shadowsocks with utun interface

Shadowsocks could help to proxy the network traffic to your remote server. However, with the development of shadowsocks-rust, now it has a new mode which utilizes the unix tun interface feature.