Blog Posts

2026

OSScreenObserver: Giving AI Agents Eyes and Hands on Your Desktop

15 minute read

Published:

Most AI agents, whether a large language model assistant running locally or a cloud-hosted agentic framework, have no reliable way to see or interact with the desktop applications running on the machine they are supposed to be helping with. They can read files, call APIs, and run shell commands, but they cannot observe that a dialog box appeared, that a form field is waiting for input, or that an application is in a specific state. OSScreenObserver is a prototype that changes that. It exposes the operating system’s UI accessibility tree, textual descriptions from multiple sources, and ASCII spatial sketches of the current screen layout through two simultaneous interfaces: a browser-based web inspector for humans and an MCP sees are always consistent.

A Private AI Knowledge Base: Obsidian, GitHub Sync, and Cross-Platform AI Context

38 minute read

Published:

For the past year I have been building a knowledge management system with a specific design constraint in mind: every AI system I work with, whether a cloud-hosted assistant, a local agentic coding tool, or an automated GitHub Action, should be able to read the same authoritative description of who I am, what I am working on, and how I want to interact. More importantly, those systems should be able to write back into the knowledge base and have their work appear seamlessly in Obsidian on my local machine the next time I open the app. The proliferation of capable AI tools in 2025-2026 made both sides of this problem, reading and writing, tractable in a way they had not been before. This post documents the architecture I settled on: an Obsidian vault hosted on GitHub, synchronized via the Gitless Sync plugin, structured around three canonical files that any AI system can read and act on, and organized into a curated wiki that agents can query, extend, and maintain across platforms.

Building a Private AI Stack: From Mini PC to Autonomous Agents

45 minute read

Published:

For the past several years I have been thinking carefully about what it means to run AI infrastructure that I actually own, control, and understand from the ground up. The rapid proliferation of frontier model APIs, agentic coding tools, and open-weight model releases in 2025-2026 finally made this tractable at a price and complexity point that a single person could manage. This post documents the architecture I settled on: a self-hosted, Docker-based stack running on a mini PC, unified by a single OpenAI-compatible model gateway, and surfaced through a collection of local inference servers, agentic CLI tools, autonomous agent frameworks, open-source Cowork alternatives, and a task-bounded command harness built around structured queues. My goals were privacy, sovereignty, reproducibility, and the ability to swap components without rebuilding everything from scratch.

Cognitive Loop Kernel: A Local-First Multi-Agent Development Harness

21 minute read

Published:

The emergence of capable code-generation models has prompted a wave of experiments in autonomous software development, where LLM agents plan, implement, test, and revise code with minimal human intervention. Most of these systems, however, rely on cloud orchestration services, opaque runtimes, or monolithic agent designs that make it difficult to inspect, customize, or extend the underlying behavior. The Cognitive Loop Kernel (CLK) is a local-first, multi-agent development harness that attempts to address these constraints directly. You give it an idea, and a dynamically assembled team of agents iterates that idea into a working system through repeated agentic development cycles, all under your local filesystem.

2025

Setting Up AREDN on a Mikrotik hAp to use 44net

13 minute read

Published:

This guide will walk you through setting up a Mikrotik hAp device (I used a hAp ac2) to use 44net addresses, bridging AREDN and 44net services between the two networks. I set up the hAp to broadcast a WiFi hotspot SSID that, when connected to a client, enables access to both 44net and to AREDN resources simultaneously. I use 44net Connect (formerly 44net.cloud) to route a network allocation they assigned to me through a Wireguard tunnel that they also assigned. The tunnel can be configured through their portal to route to the network. It is likely also possible to do this by decapsulating the ipencap packets from the raspberry pi directly, and using a traditional 44net subnet allocation, but this setup enables me to take the hAp setup to mobile deployments, without worring about the NAT configuration or my ability to forward ipencap traffic at my destination.

Setting Up 44net on a Mikrotik Using 44net.cloud for ipencap Forwarding

10 minute read

Published:

This guide will walk you through setting up a Mikrotik router with a 44net network allocation using Wireguard to 44net.cloud in order to receive ipip encapsulated packets from the UCSD 44net router. This way, you do not need to be able to forward these packets through your home router or have native IP Protocol 4 support to access 44net. In this setup, I used a Mikrotik hAp ac2 lite.

Setting Up HBLink for a Private DMR Network with HBlink

6 minute read

Published:

This guide walks you through setting up HBLink for a private DMR network, including configuring a Parrot (echo test) repeater and talkgroup. Ensure that you have administrative access to your server and basic knowledge of Python.

2023

Using ChatGPT to Write Code

7 minute read

Published:

I’ve been asked occasionally about my opinion about generative AI tools such as Chat GPT and their potential to disrupt the way we design and create. While I think there is a risk that fundamental knowledge and skill may erode as they are abstracted away by tools like these, I also think these tools create wonderful “jumping off points” for prototyping ideas. We still need a technically educated population to a) know what questions to ask, b) ask them in a precise way, and c) validate the results.

2022

Remake Learning Day: Equitable CS Education for Broader Workforce Preparation through Design Thinking and Ubiquitous Platforms

24 minute read

Published:

In this article, we will explore tools that enable students to leverage technology in informal contexts that facilitate problem solving in preparation for diverse workforce pathways. Technical solutions and automation aren’t just for Computer Science majors, and there exists a variety of platforms that support exploration and learning as well as productive applications of computing. Our goal is to democratize computing skillsets across all disciplines, and to give students the tools they need to bring computing and technology to their favorite subjects. This has the potential to enhance teaching and learning broadly, and to facilitate participation in computing with inexpensive (or free!) no-code or ubiquitous-code platforms.

2021

Replit in the Classroom

6 minute read

Published:

In this workshop, we will explore opportunities to utilize Replit in the classroom for both small classroom exercises and assignments. We will integrate Replit projects with additional tools and techniques including GitHub Classroom and POGIL instructional methods.

2020

Using GitHub Classroom

15 minute read

Published:

In this article, we’ll explore GitHub classroom as a tool to manage classroom assignments. GitHub classroom creates assignments that students “accept” as git repositories. They can work with their repository on any computer and synchronize or backup their work to the GitHub cloud. Using GitHub practices like Pull Requests, students can request help from the instructor and receive line-by-line feedback right in the repository, all while developing good habits in the use of git repositories. Instructors can automate downloading and grading through scripting or through the GitHub Classroom Assistant tool. In addition, assignments can be specified as group assignments, which create shared repositories as you organize students (or as they self-organize) into teams. GitHub classroom also allows you to tie your assignments to a “starter repository” in which you can post boilerplate materials or code, instructions, rubrics, and FAQs that you can evolve over time.

Using Git with GitHub

6 minute read

Published:

In this article, we’ll summarize some basic operations using the git version control system using the GitHub platform.

2019

Pop, The Question Podcast (S3-E19)

less than 1 minute read

Published:

I sat down with Dr. Melinda Lewis from the Penoni Honors College at Drexel University to talk about computing and its ubiquitous place in our culture, and the need for inclusivity in the field.

CSTA Philly

less than 1 minute read

Published:

Drexel is an institutional member of CSTA Philly, an active group in developing curriculum, sharing ideas, and broadening the reach of computing across educational disciplines.

2016