About

A collection of concise write-ups on small things I learn day to day across a variety of languages and technologies.


All TILs

Jan 31, 2026

Building a One-Person Event Streaming and Recording System

What I Learned

I built a system that balances screen production at the venue with streaming and archive recording at the event site. By physically separating yet network-integrating the different requirements of “never stopping venue progression” (Main System) and “creating high-quality archives” (Sub System), both could be achieved simultaneously. By incorporating long-distance transmission via SDI and one-button control with Bitfocus Companion, the system became robust with minimal chance of operator errors even with a small team.

Nov 30, 2025

Completely Removing Secrets from Git History

What I Learned

Sensitive information (API keys, private keys, configuration files, etc.) that has been accidentally committed continues to remain in Git’s history even with normal deletion. By using git filter-repo, you can rewrite Git history and completely remove sensitive information. However, removing from history does not make already leaked credentials safe, so you must always revoke and reissue the relevant credentials.

Details

Background

Previously, methods using git filter-branch were introduced, but warnings are now issued in the official documentation, and when creating new procedures, the use of git filter-repo is recommended.

Nov 29, 2025

Clean URL Parameters with Bookmarklet

What I Learned

When sharing URLs with others, query parameters and fragments can make URLs long and include unnecessary information. I used to manually delete them, but by combining a bookmarklet with Chrome’s search engine feature, I can now clean URLs using only keyboard shortcuts.

Details

Background

While browsing the web, URLs often have parameters like ?utm_source=... or #section. There are many situations where you want to remove these and have a simple URL, but manually deleting them is tedious. By registering a bookmarklet in Chrome’s search engine feature, you can instantly convert to a clean URL using only keyboard operations.

Nov 28, 2025

Local-Only Git Workflow Guide

What I Learned

I organized a workflow for using Git solely locally, without using remotes like GitHub, aimed at Git beginners and individual developers. Since Git inherently keeps all history locally, understanding local Git before learning about remotes makes it easier to handle and less confusing. Backups (pseudo-remote/mirror) are possible even within local environments.

Details

Benefits of Using Git Locally Only

  • Fewer concepts to learn, easier to study
  • No risk of bothering others
  • Can focus on Git’s essence (managing change history)

1. Basic Operations and Workflow

1-1. Repository Creation and Status Checks

1git init
2git status

1-2. Recording Changes Flow

1git add .
2git commit -m "work description"

1-3. Checking Status and History

1git diff
2git log --oneline --graph --decorate

1-4. Branch Operations

1git switch -c feature
2git switch main
3git branch -d feature

2. Reverting to Past Versions (Recovery Commands)

2-1. Restore Files Only

1git restore filename

2-2. Undo the Last Commit (Keep Work Contents)

1git reset --soft HEAD^

2-3. Rewind Commits and Changes (Destructive)

1git reset --hard HEAD^

2-4. Revert to a Specific Commit

1git reset --hard <commit-id>

2-5. Undo Without Breaking History

1git revert <commit-id>

2-6. Reference Past State

1git switch --detach <commit-id>

3. Backup (Local Pseudo-Remote + Mirror)

Git “remotes” don’t have to be URLs; you can register local folders as remotes.

Nov 27, 2025

Setting Up a Development Environment with WSL2 + Ubuntu + Git

What I Learned

I usually develop on a Mac, but recently I’ve had more opportunities to teach development to Windows users. So I organized the procedure for setting up a development environment on Windows. With the combination of WSL2 + Ubuntu + Git + VS Code, you can build a comfortable Linux development environment on Windows similar to Mac. It’s lighter than virtual machines and file sharing with Windows is smooth.

Nov 19, 2025

How to Fix Unwanted File Changes in a GitHub PR

What I Learned

I learned how to remove unwanted file changes from a specific commit in a Pull Request. By combining git rebase -i and git commit --amend, you can pinpoint and modify past commits while keeping the history clean.

Details

The Problem

When creating a PR and checking the diff, I found that a certain commit had unintentionally changed a file:

D  example/config.yaml    (deleted)

It’s common to accidentally include unrelated changes such as configuration files or documentation in commits. This prevents the PR from being properly reviewed, so I needed to fix only that specific commit.

Nov 10, 2025

Development of AI Idea Generator 'Hirameki Mixer'

What I Learned

I developed “Hirameki Mixer,” an AI invention generation app for a university festival exhibition. It’s an interactive web application that combines two keywords to generate new invention ideas (product name, tagline, and image) using AI. By utilizing Claude Code, I was able to complete the development in about one day.

Details

Project Overview

From two keywords, it automatically generates new invention ideas using Google Vertex AI. The generated inventions can be viewed in a 3D space gallery.

Nov 5, 2025

Git Rebase Interactive

What I Learned

Git’s interactive rebase (git rebase -i) is a powerful tool for cleaning up commit history before pushing changes. It allows you to reorder, squash, edit, or remove commits.

Details

Interactive rebase opens an editor with a list of commits and commands:

1git rebase -i HEAD~3

Available commands:

  • pick - use commit as-is
  • reword - change commit message
  • edit - stop for amending
  • squash - combine with previous commit
  • fixup - like squash but discard commit message
  • drop - remove commit

Example workflow:

Nov 5, 2025

How to Use Hugo Archetypes

What I Learned

Hugo archetypes are template files that help you quickly create new content with pre-defined front matter and structure. They save time and ensure consistency across your content.

Details

Archetypes in Hugo work like blueprints for your content. When you run hugo new, Hugo looks for an archetype file matching your content type and uses it as a template.

For example, with our TIL archetype at archetypes/til.md:

1hugo new content/tils/my-new-til.md --kind til

This creates a new file with: