Learning Log2 entries
Public Working Notebook

The
Log

A dated chronological feed of what I’m reading, building, and figuring out as I develop this curriculum and pursue a three-paper research program with Jeff Anderson. The point is not polish — it is recency. If a thought is worth ten minutes of writing, it lives here.

Tags#a11y#habit#process#seo#site#teach_cs
2 entries
Build

Per-course Open Graph cards + accessibility pass on teach_cs

Shipped per-course OG image generation so sharing /courses/cs180-intro-ai now renders a branded card with the course number and accent color. Same iteration also added a global focus-visible ring, skip-to-main link, ARIA roles for course detail tabs (with arrow-key nav), an active-page highlight in the navbar, and an EducationalOrganization JSON-LD block on the homepage. The site is now keyboard-navigable end to end and shareable on a per-course basis.

#teach_cs#site#a11y#seo
View commit on GitHub
Meta

Started a public learning log

Added /log as a single chronological surface for what I'm reading, building, and figuring out. The goal is twofold: develop a weekly capture habit, and give Jeff Anderson a single URL to bookmark for visible progress. The format is intentionally minimal — a TypeScript file I edit and push. No CMS, no markdown processor, no friction. If a thought is worth ten minutes of writing, it lives here.

#site#habit#process
How the log works
How the log works

Entries live in lib/data/log.ts. Add a new object at the top of the array, push, and the entry goes live. No CMS, no markdown processor, no friction. The format is intentionally minimal so the cost of capturing a thought stays under ten minutes.

Entries marked Starter — replace are placeholder content meant to be edited or deleted as real notes accumulate.