Hi there 👋

I’m bobuhiro11. I’m interested in virtualization.

How I Use AI

Let me jot down how I’m using AI as of March 2026. This is a fast-moving space, so it might be fun to look back on later. Coding I use Claude Code, Codex, and GitHub Copilot CLI without any strong preference. All of them are on paid plans or their equivalents. There are small differences between them, but all produce code of satisfying quality. My customization is minimal — just a few allow/deny-tool rules, some MCP settings, and a handful of custom slash commands....

March 6, 2026

Using Shift+Enter in Alacritty+Tmux

Here are some tips for getting Shift+Enter to insert a newline while typing prompts in Claude Code or Codex CLI. By default it didn’t work properly when combining Alacritty with Tmux, so I configured each as shown below. Claude Code and some other tools offer a built-in setup command like /terminal-setup, but that didn’t seem to do the trick for me. First, add the following to your Alacritty config file alacritty....

February 27, 2026

Reading Notes on "Issues Driven"

This is a book I bought several years ago and left unread, but when I read it, the content really resonated with me. Being highly productive doesn’t mean you can complete tasks faster than others or handle a large volume. Time (and many other things) is finite, so identifying the right problems to solve is important. You can’t become a highly productive person by working to your limits or competing on work hours....

January 22, 2026

Ishigaki Island Marathon 2026

On 2026/01/18, I ran a half marathon on Ishigaki Island. It seems it was usually rainy in past years, but this year there was only a little rain before the start, and after that it was cloudy. I think it was about 20°C, but it didn’t particularly affect my running. Since I hurt my knee and retired in the previous marathon, and recently even light running sometimes caused the same pain, I decided to aim for completion without pushing myself....

January 21, 2026

97 Things Every Programmer Should Know - Reading Notes

I was reading 97 Things Every Programmer Should Know in my spare time. Here are notes on what caught my attention. Technical debt must be repaid immediately in the next iteration. Otherwise, the interest will accumulate. You must resist the impulse and temptation to rewrite from scratch. Make the most of existing code. When adding new changes, improve at least one place. Writing code is designing. It’s not mechanical work, but creative work....

December 25, 2024

Learning eBPF Reading Notes

I read Learning eBPF, so I’d like to leave some reading notes. This book was released last year and I’ve been wanting to read it for a while. lizrice/learning-ebpf - github.com has abundant sample code for reference. I’ll just note things that caught my attention personally, without paying much attention to context. BCC It starts with an example using BCC. Using bpf_trace_printk() allows you to output text to the pseudo-file /sys/kernel/debug/tracing/trace_pipe....

December 5, 2024

Using SRv6 with OVS

OVS (Open vSwitch) 3.2 added support for SRv61, so let’s try using it. To put it simply, you create a port with type=srv6 as shown below. Since it’s implemented using the same framework as existing tunneling protocols like VXLAN and Geneve, you specify both tunnel endpoints (corresponding to SIDs on both sides in SRv6) with options:remote_ip and options:local_ip. In addition to these, SRv6 has a special option options:srv6_segs to set intermediate routers as a Segment List....

March 29, 2024

Ansible Practical Guide [Basic Edition] 4th Edition Reading Notes

Apparently I studied Ansible in 2016 1, but I completely forgot, so I read Ansible Practical Guide 4th Edition [Basic Edition] again. I’ll note down what caught my attention. Playbook Hierarchy One Playbook consists of several Plays. A Play consists of four sections: Targets, Vars, Tasks, and Handlers. Targets and Tasks are basic sections, used to specify target hosts and a list of tasks to execute, respectively. Vars and Handlers are auxiliary sections, used to specify variables and execution control (for example, restarting systemd services), respectively....

December 1, 2023

Learning Kubebuilder: Reading Notes

I read Learning Kubebuilder. It was a concise and well-organized resource that taught me a lot. My impression after reading is that Custom Resources (CRs) have high flexibility, making them tempting to create, but carelessly increasing their number makes them unmanageable. I felt it’s probably best to adopt them only for issues that fundamentally cannot be realized without CRs, and to create and use them minimally. For example, regarding the MarkdownView used as an example here, in reality it would be better to realize it with a combination of standard resources rather than a CR....

September 29, 2023

Running SRv6 L3VPN with Mininet

I conducted an experiment to run SRv6 L3VPN in Mininet 1. The script is here. I was able to run it with a small configuration as shown in the diagram, so I’d like to introduce it here. Two routers (r1 and r2) are responsible for Encap/Decap with SRv6, and they exchange L3VPN information between r1 and r2 via eBGP. r1 and r2 each have two VRFs (vrf10 and vrf20), and tenants are separated by VRF (Tenant10 and Tenant20)....

July 7, 2023

Created a TRex Wrapper

First, let me introduce TRex. TRex 1 is a software-implemented traffic generator that supports two modes: Stateful/Stateless. Stateless is a mode for generating packet sequences to a stateless target DUT (Device Under Test), and can be used as a performance measurement tool for switching and routing. Although TRex has many features, personally I often need to generate simple TCP/IP packet sequences while changing their size, so I created autotrex 2 as a wrapper for TRex....

June 9, 2023

Reading Notes on "CPU Introduction for Programmers"

This was an excellent book with key points organized in a very clear way. I was especially pleased that it included experimental sample code written in assembly 1. Even if you know concepts theoretically, running them gives you a deeper understanding. Here I’ll leave some miscellaneous notes for myself. Assembly Notation Intel syntax is easier to understand than AT&T syntax. I feel the same way. In Intel syntax, the destination comes on the left side....

May 18, 2023

Building a Virtual Environment on Intel NUC 12 Pro

I bought an Intel NUC 12 Pro 1 as a development machine and installed Proxmox VE 2. Until now, I was using an old Thinkpad as a development machine, so I think it’s become more comfortable. The specs are like this. I wanted to prioritize memory and disk, so I went with more. On the other hand, I didn’t care much about core count, so I chose the i3 model. I considered a vPro-equipped model, but I passed on it because of limited availability and the assumption that virtualization would reduce the frequency of remote management operations....

May 1, 2023

Installing LUA4-U3-AGTE-NBK Driver

It seems I broke something under /lib/modules while playing with a privileged container. I’m not sure why, but when going out from this machine to the outside, it sometimes connects and sometimes doesn’t. I’m using a BUFFALO LUA4-U3-AGTE-NBK 1 adapter that receives Ethernet as USB Type-A, and the driver for it seems suspicious. The log looks like this. ubuntu2004thinkpad:~$ dmesg IPv6: ADDRCONF(NETDEV_CHANGE): enx9096f349a025: link becomes ready usb 3-1: USB disconnect, device number 45 ax88179_178a 3-1:1....

March 31, 2023

vhost-user Negotiation

Introduction When adapting gokvm to vhost-user, I investigated the initialization part, so I’m leaving it as a memo. The QEMU documentation Vhost-user Protocol 1 summarizes it in detail, but there are parts that can’t be understood without actually running it (exception handling, request order, log output, etc.), so I tried it. After various trial and error, I was able to test it easily with just QEMU and DPDK. Here, I ran QEMU in server mode and DPDK in client mode....

March 8, 2023

Self-Analysis Tools

I found the results of the StrengthsFinder test I took a year ago. I’ll keep it here as it might be useful someday. Furthermore, I found something similar called 16personalities.com today and tried it. StrengthsFinder Conducted on January 18, 2021. You need to buy a book for about 2,000 yen, and the test takes about an hour. 16personalities Conducted on January 31, 2023. You can take the test for free in about 15 minutes....

January 31, 2023

Self-made VMM: u-root-based initrd

Introduction Continuation of gokvm development 1 2 3 4 5 6. As introduced up to last time, by supporting virtio-blk and virtio-net, the virtual machine can now communicate with the outside through IO. This time, I changed the initrd from busybox-based to u-root-based, so I’ll talk about that. 0d89a47f Introduction of u-root-based initrd I received a Pull Request suggesting that a VMM written in Go language should have an initrd also written in Go....

June 13, 2022

virtio-blk Support for Custom VMM

Introduction Continuing gokvm development 1 2 3 4 5. Following the previous virtio-net support, I added support for virtio-blk. The data structure and behavior of virt queue can be reused as is. I’m impressed that Virtio is well designed in this regard. 7389ff59 Adjust Guest Kernel Compile Options To achieve block IO through the filesystem from the guest kernel, I enabled the following options: CONFIG_VIRTIO_BLK=y CONFIG_XFS_FS=y CONFIG_EXT3_FS=y CONFIG_EXT4_FS=y 4f4bbb78 virtio-blk Implementation Now, let’s move on to the main topic of virtio-blk implementation....

April 12, 2022

virtio-net Support for Custom VMM

Introduction Continuing gokvm development 1 2 3 4. Through recent development, I was able to provide a virtual NIC to VMs on gokvm via virtio-net. Networking support was one of the initial goals, so I feel a sense of accomplishment. With this support, VMs on gokvm can now communicate with the host (or the outside via a software switch). It broadens what you can do, such as providing a web server or logging in via SSH, which I think is a major change....

March 18, 2022

PCI Device Support for Custom VMM

Introduction Continuing gokvm development 1 2 3. I’ve been developing to enable VMs on gokvm to handle PCI devices. The road will be long, but ultimately I want to establish IP connectivity between the VM and the outside via virtio-net. At the moment, I was able to get the guest kernel to recognize the virtio-net device as a network interface, so I’ll leave a log up to that point for now....

January 24, 2022