# atsushi (blogs) — RSS Amplifier

Recent posts from the 1 feeds in the RSS Amplifier directory that cover atsushi.

Page: <https://rssamplifier.com/topics/atsushi/blogs>  
Feed: <https://rssamplifier.com/topics/atsushi/blogs.md>

---

## [Bazel Skyframe explained](https://yatsushi.com/blog/bazel-skyframe-explained/)

_2026-05-06 · Atsushi Yamamoto_

The term "Skyframe" comes up often as you dig deeper into Bazel internals. However, the available explanations are pretty confusing and I found myself re-reading the Skyframe documentation multiple times. I've looked around the source code just enough to get the essence of it, so this post summarizes what I've learned. We'll explore what Skyframe is and how it's implemented (at a very high level).…

## [Cypress vs Playwright: Architecture deep dive](https://yatsushi.com/blog/cypress-vs-playwright/)

_2026-04-10 · Atsushi Yamamoto_

While researching the differences between Cypress and Playwright, I was surprised by the lack of articles covering their architectures. Most of the articles were either not in-depth enough or slightly outdated. This is my attempt to document what I learned. We'll cover Cypress first, then Playwright, then compare both in terms of performance and flakiness. Cypress architecture Cypress has three…

## [Python's pty.spawn() demystified](https://yatsushi.com/blog/python-pty-spawn-demystified/)

_2025-10-06 · Atsushi Yamamoto_

When I saw pty.spawn() for the first time, I thought "ok so it starts a new process in a new PTY. Easy." The implementation, however, was far from simple. For example in this simple gist : $ python3 py\_pty\_simple.py \[PARENT\] Spawning child in PTY... \[CHILD\] Running in PTY, press Ctrl+C... ^C \[CHILD\] Caught SIGINT, exiting... \[PARENT\] pty.spawn() returned, press Ctrl+C... ^C \[PARENT\] Caught SIGINT,…

## [Tips & tricks for migrating to Hugo](https://yatsushi.com/blog/tips-for-migrating-to-hugo/)

_2025-09-05 · Atsushi Yamamoto_

I migrated this site from Jekyll to Hugo over the course of a week during my between-jobs break! There were a couple of issues with the previous version: It forked a Jekyll bootstrapper ( jekyll-now ) which felt like an unnecessary layer of abstraction. The theme I picked back in 2016 felt cluttered, and I wanted to make it simple & text focused. Comments were hosted on Disqus which I don't use…

