<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on Markus Le</title><link>https://anhkhoa.dev/</link><description>Recent content in Home on Markus Le</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 01 Aug 2026 00:00:00 +0930</lastBuildDate><atom:link href="https://anhkhoa.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>VegaHed</title><link>https://anhkhoa.dev/project/vegahed/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0930</pubDate><guid>https://anhkhoa.dev/project/vegahed/</guid><description>&lt;figure class="pg-figure pg-figure-end"&gt;
 
&lt;img class="pg-image rounded" src="https://anhkhoa.dev/vegahed.png" alt="" loading="lazy" style="width:30rem;" width="2938" height="1674"&gt;

&lt;/figure&gt;

&lt;h1 id="project-overview"&gt;Project Overview&lt;/h1&gt;
&lt;p&gt;VegaHed is a full-stack web application inspired by the &lt;em&gt;One Piece&lt;/em&gt; character Vegapunk, who consumed a fruit that allows him to remember everything he has ever read. However, the more knowledge he acquires, the larger his head becomes. With his intelligence, he invented Punk Record — a system that stores his knowledge on a server and links with his brain, allowing him to keep learning without worrying about the physical limits of his head.&lt;/p&gt;</description></item><item><title>Wumpus World Agent</title><link>https://anhkhoa.dev/project/wumpusworld/</link><pubDate>Wed, 29 Jul 2026 00:00:00 +0930</pubDate><guid>https://anhkhoa.dev/project/wumpusworld/</guid><description>&lt;blockquote&gt;
&lt;h3 id="zero-ml-dependencies"&gt;Zero ML dependencies&lt;/h3&gt;
&lt;p&gt;No neural network. No reinforcement learning. No training data, no reward
function, not one learned parameter. The agent imports &lt;code&gt;argparse&lt;/code&gt; and
&lt;code&gt;collections&lt;/code&gt;, and solves the cave by &lt;strong&gt;rule-based inference alone&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="skill-tags" style="margin-bottom:var(--space-6);"&gt;
 &lt;span class="tag tag-outline"&gt;No neural network&lt;/span&gt;
 &lt;span class="tag tag-outline"&gt;No RL&lt;/span&gt;
 &lt;span class="tag tag-outline"&gt;No training data&lt;/span&gt;
 &lt;span class="tag tag-outline"&gt;Correct on the first cave&lt;/span&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What is mine here.&lt;/strong&gt; This is a university assignment. The Pygame emulator,
the cave generator and the scoring were provided by the course. Everything the
agent does, all of the perception, inference and planning in &lt;code&gt;my_agent.py&lt;/code&gt;, is
my own work.&lt;/p&gt;</description></item><item><title>AI Text Detector</title><link>https://anhkhoa.dev/project/aitextdetector/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0930</pubDate><guid>https://anhkhoa.dev/project/aitextdetector/</guid><description>&lt;blockquote&gt;
&lt;p&gt;🏆 A group project. &lt;strong&gt;Our team took first prize&lt;/strong&gt; in the Neural Network and
Deep Learning course competition.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="project-overview"&gt;Project Overview&lt;/h1&gt;
&lt;p&gt;A binary classifier that decides whether a short piece of text was written by a
person or generated by a language model. The working domain was food and
restaurant reviews: short pieces, averaging around 68 words, with the occasional
non-English or code-switched fragment mixed in.&lt;/p&gt;
&lt;p&gt;Two things made it interesting. The first was &lt;strong&gt;compute&lt;/strong&gt;: everything had to
train on a single free-tier GPU, which ruled out throwing the biggest available
model at the problem. The second was &lt;strong&gt;generalisation&lt;/strong&gt;: a detector that scores
well on its own validation split is easy, one that survives text from unseen
generators and adversarial tricks is not.&lt;/p&gt;</description></item><item><title>#SkillHub.md: Agent Skill Registry</title><link>https://anhkhoa.dev/project/agentskillregistry/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0930</pubDate><guid>https://anhkhoa.dev/project/agentskillregistry/</guid><description>&lt;figure class="pg-figure pg-figure-end"&gt;
 
&lt;img class="pg-image rounded" src="https://anhkhoa.dev/skillhub-color.png" alt="" loading="lazy" style="width:18rem;" width="346" height="298"&gt;

&lt;/figure&gt;

&lt;h1 id="project-overview"&gt;Project Overview&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;#SkillHub.md&lt;/strong&gt; is a Single-Page Application (SPA) built for the &lt;strong&gt;2026 Product Cadet Challenge&lt;/strong&gt; by &lt;a href="https://insightfactory.ai"&gt;insightfactory.ai&lt;/a&gt;. It lets users upload, manage, and share markdown-based skill files for AI agents like Claude Code — the files contain instructions and metadata that guide agents in performing specific tasks.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;h3 id="essential"&gt;Essential&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;User authentication with username/password&lt;/li&gt;
&lt;li&gt;Upload markdown skill files (private by default) with automatic frontmatter parsing (&lt;code&gt;name&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt;, &lt;code&gt;allowed-tools&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Edit and delete skill files&lt;/li&gt;
&lt;li&gt;Tag assignment and management&lt;/li&gt;
&lt;li&gt;Publish skills as public and browse/search/download public skills from other users&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="nice-to-have"&gt;Nice-to-Have&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Download and view count tracking&lt;/li&gt;
&lt;li&gt;Version history with last-edited timestamps&lt;/li&gt;
&lt;li&gt;GitHub-style diff viewer between versions&lt;/li&gt;
&lt;li&gt;Clone public skills with source attribution&lt;/li&gt;
&lt;li&gt;Analytics dashboard (activity trends, top tags)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="tech-stack"&gt;Tech Stack&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Layer&lt;/th&gt;
					&lt;th&gt;Technology&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Frontend&lt;/td&gt;
					&lt;td&gt;Vite + React + Tailwind CSS&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Backend&lt;/td&gt;
					&lt;td&gt;FastAPI (Python)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Database&lt;/td&gt;
					&lt;td&gt;SQLite&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Infra&lt;/td&gt;
					&lt;td&gt;Docker + Docker Compose&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Architecture:&lt;/strong&gt; SPA with a dedicated REST API backend. FastAPI was chosen for strong typing, async support, and auto-generated Swagger docs. React + Vite for fast iteration; SQLite for simplicity with a storage-agnostic design ready for future migration.&lt;/p&gt;</description></item><item><title>MarJazz: Jazz Piano Generation</title><link>https://anhkhoa.dev/project/marjazz/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0930</pubDate><guid>https://anhkhoa.dev/project/marjazz/</guid><description>&lt;figure class="pg-figure pg-figure-end"&gt;
 
&lt;img class="pg-image rounded" src="https://anhkhoa.dev/marjazz-pitch.png" alt="" loading="lazy" style="width:32rem;" width="1200" height="600"&gt;

&lt;/figure&gt;

&lt;h1 id="project-overview"&gt;Project Overview&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;MarJazz&lt;/strong&gt; is a deep learning model for autoregressive MIDI music generation, trained on solo jazz piano performances from the &lt;a href="https://github.com/datasets/pijama"&gt;PiJAMA dataset&lt;/a&gt;. The model uses a dual-block LSTM architecture with REMI tokenisation to generate coherent ~60-second jazz piano pieces.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Token IDs → Embedding (128-dim)
 ↓
LSTM Block 1 → Dropout → LayerNorm (pitch contour, rhythm)
 ↓
LSTM Block 2 → Dropout → LayerNorm (phrases, harmony)
 ↓
MLP Head (GELU) → Dropout → LayerNorm
 ↓
Linear → Logits (vocab_size)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Tokenisation:&lt;/strong&gt; REMI (REvamped MIDI-derived) — encodes music as &lt;code&gt;Bar&lt;/code&gt;, &lt;code&gt;Position&lt;/code&gt;, &lt;code&gt;Pitch&lt;/code&gt;, &lt;code&gt;Velocity&lt;/code&gt;, and &lt;code&gt;Duration&lt;/code&gt; tokens, preserving bar-level structure essential for jazz phrasing.&lt;/p&gt;</description></item><item><title>🦆 NexusS: Merging Study Sessions</title><link>https://anhkhoa.dev/project/nexuss/</link><pubDate>Mon, 01 Sep 2025 14:18:10 +0930</pubDate><guid>https://anhkhoa.dev/project/nexuss/</guid><description>&lt;p&gt;🚀 &lt;strong&gt;Built in 34 Hours&lt;/strong&gt;&lt;br&gt;
🏆 BIG Hackathon Project&lt;br&gt;
✨ Theme: &lt;em&gt;Merger&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Merge your study. Meet your people.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-project-overview"&gt;🌟 Project Overview&lt;/h2&gt;
&lt;p&gt;NexusS was built in under &lt;strong&gt;34 hours&lt;/strong&gt; for the &lt;a href="https://big.devpost.com/"&gt;BIG Hackathon&lt;/a&gt;, hosted by the &lt;a href="https://csclub.org.au/"&gt;Computer Science Club (CS Club), University of Adelaide&lt;/a&gt; and the &lt;a href="https://usasa.sa.edu.au/clubs/join/upc/"&gt;UniSA Programming Community (UPC), University of South Australia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The idea is simple:&lt;/p&gt;
&lt;p&gt;NexusS helps students &lt;strong&gt;merge independent study sessions&lt;/strong&gt; by connecting them with others nearby.&lt;/p&gt;
&lt;h3 id="-with-nexuss-students-can"&gt;✨ With NexusS, students can:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;🔎 &lt;strong&gt;Discover nearby study sessions&lt;/strong&gt; based on courses or interests&lt;/li&gt;
&lt;li&gt;📍 &lt;strong&gt;Drop by and join&lt;/strong&gt; sessions happening around them&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Host a session&lt;/strong&gt; by marking their location and inviting others&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NexusS helps university students find study buddies — and maybe even new friends.&lt;/p&gt;</description></item><item><title>MyEvents</title><link>https://anhkhoa.dev/project/myevents/</link><pubDate>Tue, 01 Jul 2025 14:18:10 +0930</pubDate><guid>https://anhkhoa.dev/project/myevents/</guid><description>&lt;h1 id="project-overview"&gt;Project Overview&lt;/h1&gt;
&lt;figure class="pg-figure pg-figure-end"&gt;
 
&lt;img class="pg-image rounded" src="https://anhkhoa.dev/myevent-1.png" alt="" loading="lazy" style="width:35rem;" width="2928" height="1674"&gt;

&lt;/figure&gt;

&lt;p&gt;Every day, the University of Adelaide and its student clubs host dozens of events-from social mixers and pub crawls to career expos and skill-building workshops. These activities are scattered across Instagram, Facebook and various faculty websites, making it difficult for students-especially first‑years - to stay informed. As a result, many valuable opportunities are missed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MyEvents&lt;/strong&gt; is a centralized, university‑focused platform (think Eventbrite for Adelaide Uni) that enables verified students and staff to:&lt;/p&gt;</description></item><item><title>Portfolio</title><link>https://anhkhoa.dev/project/portfolio/</link><pubDate>Tue, 01 Jul 2025 14:17:12 +0930</pubDate><guid>https://anhkhoa.dev/project/portfolio/</guid><description>&lt;p&gt;This portfolio was built using Hugo and Paige as an experiment to explore a new tool.&lt;/p&gt;</description></item></channel></rss>