Skip to main content
2021
2020
94

Sekiro: Shadows Die Twice

Sekiro: Shadows Die Twice is a third-person action-adventure game by From Software. This post traces the two threads of its backstory: Isshin Ashina seizing the land, and the Divine Dragon and the power of immortality.

95

Cracking JRebel in IntelliJ IDEA 2020

A walkthrough of activating JRebel inside IDEA, plus a look at where JVM hot deployment hits its limits and a few compliant alternatives.

96

MySQL Transaction Deadlocks Explained

How concurrent transactions walk step by step into a mutual-waiting standoff: deriving deadlock causes from lock ordering, explaining InnoDB's undo-log-based rollback choice and the wait-for graph detection mechanism, and closing with practical ways to reduce deadlock probability.

97

Notes from Building an IntelliJ IDEA Plugin

Notes from building my own MyBatis SQL log parsing plugin: why I built it, how parameter filling works under the hood, the learning curve of IDEA plugin development, and some takeaways from publishing to the plugin marketplace.

98

Reflections on My First Few Years in Tech

Before I knew it, I had spent several years in the internet industry. Back when I first started learning to code, I was writing demo projects every day — from the simplest Hello World to little games, crawlers, and admin systems — and every new skill brought a real sense of achievement.

99

Distributed Locks and Spring Transaction Ordering: A Subtle Concurrency Bug

A reader used a ZooKeeper distributed lock for ticket-sale deductions, yet the counts still went wrong under high concurrency. The root cause: the lock was released before the transaction committed, letting the next thread read stale data. Here is the reasoning and the fix.

100

How I Think About Java Backend Architecture

Organizing my understanding of Java backend architecture: from coding standards, module decomposition, middleware, and database governance to security, team collaboration, and the evolution toward microservices.