>

Hi there 👋

Welcome to my blog.

Building a Data-Driven City: Integrating Housing, Safety, and Deprivation Metrics with Python

This post details how to build an interactive urban planning visualization system using Python, Geopandas, and Folium by integrating housing pipelines, crime data, and socioeconomic metrics.

December 3, 2025 · 7 min · 1444 words · Tategoto Azarasi

Importing My University Timetable into a Personal Calendar: A Hands-On Journey Through Manual API Exploration and iCalendar Generation

Learn how to reverse-engineer a university’s private timetable API using browser developer tools and write a Python script to convert the JSON data into a universally importable iCalendar (.ics) file for your personal calendar.

November 9, 2025 · 15 min · 3004 words · Tategoto Azarasi

Building a TypeScript Video Downloader for Complex, Anti-Scraping Websites

How to build a robust video downloader from scratch with TypeScript, Node.js, and Playwright, capable of handling complex anti-scraping mechanisms, dynamic content loading, and network race conditions.

November 9, 2025 · 19 min · 3970 words · Tategoto Azarasi

Uol 2025 Wk3 && LeetCode Biweekly Contest 168 Solutions

Weak Vertices The Problem In graph theory, the structural integrity of a network can often be analyzed by identifying fundamental shapes within it, such as triangles. A triangle provides rigidity and is a common motif in many applications. This problem asks us to identify vertices that are not part of any triangle. A vertex i is defined as being part of a triangle if it has two distinct neighbors, j and k, which are also neighbors of each other. Our task is to find all vertices that do not satisfy this condition, which the problem statement refers to as “weak vertices.” The graph is given to us in the form of an adjacency matrix. ...

October 25, 2025 · 56 min · 11743 words · Tategoto Azarasi

Uol 2025 Wk2 Solutions

Recount Problem The recent schoolboard elections were hotly contested: a proposal to swap school start times for elementary and high school students, a controversial new dress code proposal that bans athletic clothes in school, and a proposal to raise real-estate taxes to pay for a new football practice facility, and the list goes on and on. It is now hours after the polls have closed and a winner has yet to emerge! ...

October 1, 2025 · 19 min · 3838 words · Tategoto Azarasi

Discovering a Delete-Your-Files-and-Run Level Bug in debtap

A deep-dive investigation into the Arch Linux tool debtap reveals how a well-intentioned typo fix accidentally activated a catastrophic rm -rf bug that deleted all files in the current working directory.

August 6, 2025 · 10 min · 2059 words · Tategoto Azarasi

Troubleshooting a Stubborn DMIC on a ThinkBook 16 G7+ ASP with Linux

Detailed troubleshooting process for fixing a silent digital microphone on a Lenovo ThinkBook 16 G7+ ASP (AMD Ryzen AI 9) laptop running Linux, primarily resolved by adding the kernel module parameter options snd_sof_amd_common enable_pdm=1.

May 24, 2025 · 16 min · 3208 words · Tategoto Azarasi

Delving into Anki Cards: Demystifying Templates for Data Extraction and Practical Application

Uncover techniques to demystify complex Anki card templates using Puppeteer and JSDOM for accurate data extraction from dynamically rendered content and facilitate migration.

May 16, 2025 · 28 min · 5771 words · Tategoto Azarasi

Automating Online Grading with Tampermonkey and AI

Discover how a Tampermonkey userscript was developed using Baidu Ernie AI to automate scoring and commenting for online short-answer homework, significantly reducing repetitive grading tasks for educators.

May 2, 2025 · 26 min · 5389 words · Tategoto Azarasi

Matrix Multiplication Performance Benchmark: from Triple Loops to 100+ GFLOPS on AMD Ryzen AI + Radeon

An in-depth benchmark comparing the performance of 11 matrix multiplication implementations (Naive, CPU multi-core/SIMD/BLAS, GPU via OpenCL/HIP/Vulkan) on AMD Ryzen AI + Radeon, revealing vast performance gaps and optimization insights.

April 19, 2025 · 50 min · 10476 words · Tategoto Azarasi