Web pages/apps
- Redesigning my browser homepage
- A searchable dashboard for a CSV report of third-party software acquisition requests (guest:guest)
- A web-based dashboard visualization of my Obsidian notes network
- A “weather dashboard” page
- A Pierre Pollievre Slogan Generator for the 2025 campaign
- A better Obsidian notes network visualizer
- A tool for reviewing Badges issued by badges.ucalgary.ca
- A tool for counting pages listed in a website’s sitemap.xml file
- An embeddable Asteroids animation
- A not-quite-working web page for sonifying the structure of any URL
- A playable version of Asteroids: AIsteroids
- A simple web tool to convert HTML to Markdown syntax
- A simple web tool to convert fuel economy from L/100km to mpg
- A timesheet tracking and reporting app for Janice to use.
- A graphr web app for creating and sharing node/connection diagrams
- Standalone Comments - a self-contained comment management tool for use with static websites. It’s integrated with my Hugo website.
- A mockup of a “Reflection Cards” web application to explore the idea of using something that as part of our 2026 UCalgary Conference on Postsecondary Learning & Teaching
- Historical Photos - a standalone webthing inspired by Alan’s chrome extension, but as a web page that can work in any browser.
- CBT Worksheets
- Flocker - a basic particle flocking animation that makes a good ambient display
- Image Resizer - automatically resize any image by URL, cache the result. (and integrated into my Hugo theme)
- LLM Simulator - intended for my dashboard display thing, to show kinda what an LLM is doing (and figuring the Westworld clip of Maeve’s dialogue tree is pretty NSFW, so…)
- word-to-markdown converter - convert complex formatting from Word into Markdown for use in Obsidian
- randomizer - takes a list of items (one per line) and generates a randomized list
- ditherer - takes an image (URL or file) and applies Atkinson 1-bit dithering
- Values Identifier - a tool built for our team retreat, to facilitate a reflective activity
- a silly canvas-based vector animation doodad that was then integrated with my custom Hugo theme just because I thought it was funny.
- a collaborative “paint by numbers” thing, where everyone viewing the page is colouring together.
- a self-hosted, lightweight project management application (PHP and SQLite, no Node.js or Rails or other nonsense)
- Forgotten Archive - a zork-like game completely designed and built by Claude Code with a single prompt.
- Crema - a self-hosted CRM application without the business/sales/transaction focus of bigger CRM tools.
- A mockup of an RSS interface
- A mockup of a resizable and interactive Land Acknowledgement Widget for use in Brightspace.
- Course Community - a non-LMS platform to use in courses, providing a suite of tools to foster community and collaboration within the course. Works as a standalone application and can integrate with an LMS such as Brightspace through LTI.
- CSS Colour Themer - a tool to create palettes of CSS variables given an image (or multiple images).
Hugo
- A “blogroll” that uses my NetNewsWire subscriptions .opml file
- A custom Hugo theme based on 1980s-era terminal displays
- a page that lists all external links mentioned in the last 100 posts
- Another theme with a more “typeset” look (which also has light, dark, “terminal”, and “hypercard” themes)
- A shell script that uses pandoc to convert legacy .html content files (from process of exporting from WordPress) into .md files
- Hugo Manager - a macOS application for managing and publishing Hugo websites
- Hugo Lightweight Search - a new API-driven search engine that runs on the server and is blazingly fast and scalable
- A python script to visualize content posting over time (see example, using Google Antigravity)
Obsidian
- A plugin for Obsidian to better work with meeting agendas
- Attempted to build a custom LLM tool to find connections between notes
- Content template for “Daily Note” that includes a dataview to list all notes created or modified on that day.
- A “Today” view that shows notes created/edited today, as well as Tasks from those notes.
- A Folders dataviewjs index of all [[zettelkasten]] numbered folders. (deleted because the Numbered Folders Index plugin is much better)
- A plugin to build an index of all numbered folders with links to their folder-notes at Numbered Folders Index.
- Added custom CSS to enable select notes to be displayed full-width
- A python script to automatically create Obsidian notes for items starred in NetNewsWire
- Obsidian Related Notes plugin - uses an LLM running locally in Ollama to index all notes and display a sidebar of related notes based on vector similarity.
- Topics - a streamlined interface for finding my Topics notes and anything they’re related to
- People - a streamlined interface for finding my Person notes and anything they’re related to
Applications
- PhotoBlogger - A macOS application for photoblogging with Hugo
- Claude Code Log Viewer - for parsing, displaying, and exporting markdown of Claude Code project conversation histories.
- Hugo Manager - a macOS application for managing and publishing Hugo websites
- Brightspace Course Coach - a macOS application that uses the Brightspace API and Ollama local LLM to provide a socratic coach chatbot interface for students to engage with their course materials.
- logger - a Python script to process apache log files, generating visualizations about traffic, with a focus on “how much of this is just botslop?”
- chrome-intelligence - a Chrome extension to make it easier to use Apple Intelligence’s Writing Tools when editing text.
Information / Analysis
- NotebookLM summarizes my dissertation - D’Arcy Norman, PhD
- Pulling together information about several campus platforms to help onboard a new team member
- Converting my markdown CV into a LaTeX-formatted resume
- Providing a super-high-level summary of a book that I had no interest in actually reading
- Writing and revising HR-related documents - this has been a huge time-saver, given the typical week-or-two delay for feedback on these kinds of documents
- Visualizing a .csv export of a Teams list of projects in “Stuff ’n Thingz”
- A python script to analyze apache webserver logs to determine the proportion of human vs. bot traffic
- A TL;DR summary of my dissertation (using Claude 4 Opus)
- An Excel lookup formula to match course codes (like “HIST”) with faculty names (like “Arts”) that are mapped out in another sheet to build a chart for TI Unit Review on Registrar’s Office data on courses scheduled in the TI from 2018-2025.
- A “classroom analytics dashboard” - using Claude Code to build an interactive visualization of the TI 2018-2025 classroom scheduling data.
Misc other stuff
- Designing an optimal AI communication language (haven’t tested this, but it looks potentially useful)
- Transcribing handwritten notes and whiteboards into Markdown for use in Obsidian (using the iPhone app)
- Pulling together some arguments for/against the ITIL “business vs. service” separation to help think that through
- Acting as an “executive coach” to help me think through various topics without just “solving” them for me
- Developing a plan/agenda for a campus community session on generative AI use and needs/infrastructure
- Refining/editing my resume and cover letter
- Summarizing and identifying key items to review a tenure-and-promotion package
- Got 100% on a quiz in a Brightspace course (using Perplexity’s Comet browser)
- Generating a “report” with examples of successful Digital Transformation initiatives (it produced a decent overview with 14 case studies of companies, governments, and universities that have engaged in Dx)