Archives
All the articles I've archived.
GALE: Of Battlefields and Their Duality
An exploration of Gale, interlaced graphs, and a complete implementation in bash and lisp.
DOMINEERING: The Geometry of Gridlock
An exploration of Domineering, surreal numbers, and a complete implementation in bash and lisp.
HACKENBUSH: The Severed Root
An exploration of Hackenbush, surreal numbers, and a complete implementation in bash and lisp.
Intercepted Transmission: TAU-047-23-B
An intercepted extrasolar transmission containing a terrestrial analysis of human vertical gradient formation.
GOOFSPIEL: Determinist's Bane
An exploration of Goofspiel, mixed strategies, and a complete Bash implementation.
WUZI QI: From Shadows to Shackles
An exploration of Wuzi Qi, proof-number search, and a complete Bash implementation.
Magma Code: Searching for Symmetric Incidence Structures in Finite Fields
A script written in Magma to search for difference sets and almost difference sets in finite fields.
NIM: The Thief and the Warhead
An exploration of NIM, combinatorial game theory, and a complete Bash implementation.
DOTS AND BOXES: The Double Crossing
An exploration of Dots and Boxes, combinatorial game theory, and a complete implementation in bash and lisp.
DAWSON'S KAYLES: The Impartial Rank
An exploration of Dawson's Kayles, combinatorial game theory, and a complete implementation in bash and lisp.
Simple Message Encoder and Decoder in Python
A quick note and code snippet demonstrating how to generate keys and encrypt or decrypt messages using Python's cryptography library.
Asteroids Game in Python (CodeSkulptor)
A complete Asteroids clone written in Python using the simplegui library for CodeSkulptor.
Blackjack Game in Python (CodeSkulptor)
A complete Blackjack game written in Python using the simplegui library for CodeSkulptor.
Circle Fractal in Racket
A small Racket/Scheme script using the 2htdp/image library to recursively generate a simple circle fractal.
Simple Command-Line Phonebook in Python
A quick note and code snippet for a simple command-line phonebook application in Python that reads and writes to a CSV file.
'Guess the Number' Game in Python (CodeSkulptor)
A simple 'Guess the Number' game written in Python using the simplegui library for CodeSkulptor.
A LISP/Scheme Interpreter in Python
A Python implementation of a LISP/Scheme interpreter, modeled after Peter Norvig's lis.py.
Memory Game in Python (CodeSkulptor)
A complete Memory puzzle game written in Python using the simplegui library for CodeSkulptor.
Interactive Raindrop Simulation in Racket
A small interactive simulation in Racket using the 2htdp/universe library that spawns falling raindrops on mouse clicks.
Simple Text Editor in Racket
An interactive command-line/GUI text editor implementation in Racket using the 2htdp/universe library.
Factoring Polynomials with Berlekamp's Algorithm in Sage
A quick demonstration of how to factor a polynomial over a finite field using Berlekamp's algorithm in Sage.
Cubic Spline Interpolation in Sage
A demonstration of how to write and plot a natural cubic spline interpolation algorithm using Numpy and SageMath.
Notes from China: Bibliography
Notes from China: Bibliography.
Notes from China: Chapter 0: Preamble
The introduction and strategic framework.
Notes from China: Chapter 1: 瞒天过海: Deceive the Heavens to Cross the Ocean
The first stratagem: Deceive the Heavens to Cross the Ocean.
Notes from China: Chapter 10: 笑里藏刀: Hide a Knife Behind a Smile
The tenth stratagem: Hide a Knife Behind a Smile.
Notes from China: Chapter 11: 李代桃僵: Sacrifice the Plum Tree to Preserve the Peach Tree
The eleventh stratagem: Sacrifice the Plum Tree to Preserve the Peach Tree.
Notes from China: Chapter 12: 顺手牵羊: Lead Away a Goat in Passing
The twelfth stratagem: Lead Away a Goat in Passing.
Notes from China: Chapter 13: 打草惊蛇: Beat the Grass to Startle the Snake
The thirteenth stratagem: Beat the Grass to Startle the Snake.
Notes from China: Chapter 14: 借尸还魂: Borrow a Corpse to Resurrect the Soul
The fourteenth stratagem: Borrow a Corpse to Resurrect the Soul.
Notes from China: Chapter 15: 调虎离山: Lure the Tiger Out of the Mountains
The fifteenth stratagem: Lure the Tiger Out of the Mountains.
Notes from China: Chapter 16: 欲擒故纵: In Order to Capture, One Must Let Loose
The sixteenth stratagem: In Order to Capture, One Must Let Loose.
Notes from China: Chapter 17: 抛砖引玉: Cast Out a Brick to Secure Jade
The seventeenth stratagem: Cast Out a Brick to Secure Jade.
Notes from China: Chapter 18: 擒贼擒王: Defeat the Enemy by Capturing Its Chief
The eighteenth stratagem: Defeat the Enemy by Capturing Its Chief.
Notes from China: Chapter 19: 釜底抽薪: Remove the Firewood from Under the Pot
The nineteenth stratagem: Remove the Firewood from Under the Pot.
Notes from China: Chapter 2: 围魏救赵: Besiege Wei to Rescue Zhao
The second stratagem: Besiege Wei to Rescue Zhao.
Notes from China: Chapter 20: 混水摸鱼: Disturb the Water to Catch a Fish
The twentieth stratagem: Disturb the Water to Catch a Fish.
Notes from China: Chapter 21: 金蝉脱壳: The Golden Cicada Sloughs off Its Shell
The twenty-first stratagem: The Golden Cicada Sloughs off Its Shell.
Notes from China: Chapter 22: 关门捉贼: Shut the Door to Catch the Thief
The twenty-second stratagem: Shut the Door to Catch the Thief.
Notes from China: Chapter 23: 远交近攻: Befriend a Distant State While Attacking a Neighbor
The twenty-third stratagem: Befriend a Distant State While Attacking a Neighbor.
Notes from China: Chapter 24: 假道伐虢: Obtain Safe Passage to Conquer the State of Guo
The twenty-fourth stratagem: Obtain Safe Passage to Conquer the State of Guo.
Notes from China: Chapter 25: 偷梁换柱: Replace the Beams with Rotten Timbers
The twenty-fifth stratagem: Replace the Beams with Rotten Timbers.
Notes from China: Chapter 26: 指桑骂槐: Point at the Mulberry Tree While Cursing the Locust Tree
The twenty-sixth stratagem: Sacrifice the Plum Tree to Preserve the Peach Tree.
Notes from China: Chapter 27: 假痴不癫: Feign Madness but Keep Your Balance
The twenty-seventh stratagem: Feign Madness but Keep Your Balance.
Notes from China: Chapter 28: 上屋抽梯: Remove the Ladder Once the Enemy Has Ascended to the Roof
The twenty-eighth stratagem: Remove the Ladder Once the Enemy Has Ascended to the Roof.
Notes from China: Chapter 29: 树上开花: Deck the Tree With False Blossoms
The twenty-ninth stratagem: Deck the Tree With False Blossoms.
Notes from China: Chapter 3: 借刀杀人: Kill with a Borrowed Knife
The third stratagem: Kill with a Borrowed Knife.
Notes from China: Chapter 30: 反客为主: Make the Host and the Guest Exchange Roles
The eleventh stratagem: Make the Host and the Guest Exchange Roles.
Notes from China: Chapter 31: 美人计: The Beauty Trap (Honey Trap)
The thirty-first stratagem: The Beauty Trap (Honey Trap).
Notes from China: Chapter 32: 空城计: The Empty City Stratagem
The eleventh stratagem: The Empty City Stratagem.
Notes from China: Chapter 33: 反间计: Let the Enemy's Own Spy Sow Discord in the Enemy Camp
The eleventh stratagem: Let the Enemy's Own Spy Sow Discord in the Enemy Camp.
Notes from China: Chapter 34: 苦肉计: Inflict Injury On One's Self to Win the Enemy's Trust
The thirty-fourth stratagem: Inflict Injury On One's Self to Win the Enemy's Trust.
Notes from China: Chapter 35: 连环计: Chain Stratagems
The eleventh stratagem: Chain Stratagems.
Notes from China: Chapter 36: 走为上: If All Else Fails, Retreat
The eleventh stratagem: If All Else Fails, Retreat.
Notes from China: Chapter 37: Chen Ping's First Strategy
The eleventh stratagem: Chen Ping's First Strategy.
Notes from China: Chapter 38: Chen Ping's Second Strategy
The thirty-eighth stratagem: Chen Ping's Second Strategy.
Notes from China: Chapter 39: Chen Ping's Third Strategy
The thirty-ninth stratagem: Chen Ping's Third Strategy.
Notes from China: Chapter 4: 以逸待劳: Wait at Leisure While the Enemy Labors
The fourth stratagem: Wait at Leisure While the Enemy Labors.
Notes from China: Chapter 40: Chen Ping's Fourth Strategy
The fourtieth stratagem: Chen Ping's Fourth Strategy.
Notes from China: Chapter 41: Chen Ping's Fifth Strategy
The fourty-first stratagem: Chen Ping's Fifth Strategy.
Notes from China: Chapter 5: 趁火打劫: Loot a Burning House
The fifth stratagem: Loot a Burning House.
Notes from China: Chapter 6: 声东击西: Make a Feint in the East While Attacking in the West
The sixth stratagem: Make a Feint in the East While Attacking in the West.
Notes from China: Chapter 7: 无中生有: Create Something out of Nothing
The seventh stratagem: Create Something out of Nothing.
Notes from China: Chapter 8: 暗渡陈仓: Openly Repair the Gallery Roads, but Sneak Through the Passage of Chencang
The eighth stratagem: Openly Repair the Gallery Roads, but Sneak Through the Passage of Chencang.
Notes from China: Chapter 9: 隔岸观火: Watch the Fires Burning from Across the River
The ninth stratagem: Watch the Fires Burning from Across the River.
Magma Code: Searching for 1 1/2-Designs in Cyclic Codes
A script written in Magma to search for 1 1/2-designs in cyclic codes, which correspond to directed strongly regular graphs.
Magma Code: Searching for Incidence Structures in Non-Abelian Groups
A script written in Magma computational algebra system to search for incidence structures and difference sets in non-Abelian groups.