When releasing software, there are two aspects that can ver very challenging: managing changes and communicating those changes to users. Semantic Versioning SemVer is a widely adopted system that addresses both of these challenges by providing a clear and consistent way to version software, both the one you write and the dependencies you consume. This post will cover the fundamentals of SemVer, how to apply it in your projects and some tools to help automate the process What is SemVer? Semantic Versioning, often abbreviated as SemVer, is a standardized versioning system for software. It provides a strict set of rules...
Java has always been a complicated choice for me. While the language is robust, the ecosystem has fragmented into disparate paradigms—Spring, Jakarta EE, Android, JavaFX—each with its own conventions and deployment strategies. This often mirrors the fragmentation found in the JavaScript web ecosystem. However, when I began architecting the TEI Visual Editor, Java was the only viable choice. The XML processing stack required for this project Saxon, Jing, Apache FOP, Apache Ant is deeply rooted in the Java ecosystem. A browser-only solution was ruled out due to specific technical constraints. This post outlines the architectural decisions, technical constraints, and implementation...
Qualitative coding transforms unstructured text interviews, field notes into structured data to reveal patterns. When combined with XML Extensible Markup Language, you create a dataset that is both human-readable and machine-computable. This post outlines effective coding strategies and an XML-based workflow for anthropological and usability studies, along with code examples for extracting insights. Coding Strategies Here are four high-value strategies for anthropological and usability studies. Attribute Coding The "Who" and "Where" Goal: Log essential descriptors about the participant or the setting. When to use: At the very beginning of the file or session. Application: Anthropology: Demographics Age, Clan, Village. Usability:...
My background is in humanities and I've never stopped researching how to integrate technology into humanities research. XML has been a core technology in this space for decades. In this post, I will explore why XML remains relevant for humanities scholars, what it is, and how to use it effectively. Is XML a good tool for humanities? Yes, absolutely. XML eXtensible Markup Language is currently the undisputed "gold standard" for text-based Digital Humanities DH research and long-term digital preservation. While newer, lightweight formats like JSON JavaScript Object Notation currently dominate modern web development and API data transfer, XML remains superior...
XML eXtensible Markup Language has been a foundational technology for data representation and exchange since its inception in the late 1990s. However, with the rise of alternative data formats like JSON JavaScript Object Notation and YAML YAML Ain't Markup Language, many developers question whether XML remains relevant in today's technology landscape. This post explores the current relevance of XML, its strengths and weaknesses, the modern landscape of XML technologies, and the scenarios where it continues to be the superior choice. What is XML? XML is a markup language that defines a set of rules for encoding documents in a format...
When working with publishing content in the future, the hardest thing is to keep track of when things are scheduled to go live. The Eleventy Publishing Calendar Plugin provides a visual calendar interface to help content creators and editors see their publishing schedule at a glance. This post provides an explainer of the Eleventy Publishing Calendar Plugin, breaking down the code into its key components and explaining the process step by step. Overview The plugin creates a graphical calendar view for Eleventy's publishing schedule. It gathers post metadata, groups posts by date, and generates an HTML grid calendar with navigation...
Like many developers, I hoard digital content—articles, papers, code snippets, and videos. Over time, organization became a significant friction point. My solution was to build a Digital Object Repository: a centralized system to store, organize, and interact with this data. Rather than building a static archive, I leveraged the OpenAI API to enhance the repository with active features: content summarization, semantic search, and an interactive Q&A system. This post details the architectural decisions, technical constraints, and implementation strategies used to build this full-stack application. Phase 1: Project Scaffolding & Core Backend The project required a containerized, multi-service architecture to manage...
AI introduces a new development paradigm. While using prompts seems simple, it's a classic 'garbage in, garbage out' system. The nuance of crafting a good prompt is the single biggest factor in getting a usable result, and most of us start by getting it wrong. What is Prompt Engineering? > Prompt engineering is the art and science of designing and optimizing prompts to guide AI models, particularly LLMs, towards generating the desired responses. By carefully crafting prompts, you provide the model with context, instructions, and examples that help it understand your intent and respond in a meaningful way. Think of...
There are some use cases where building an AI application as a Chrome extension is the best way to deliver value to users. Using a Chrome extension and its associated APIs provides capabilities that a standalone web app or a native application cannot match. In this post we'll explore what types of AI applications are best suited for the extension format, why that is, and provide a complete example of a simple AI-powered Chrome extension, an "AI Right-Click Summarizer," that you can build and run yourself. Why Build AI Applications as Chrome Extensions? Building an AI application as a Chrome...
Chrome, and all browsers, support extensions, which are small software programs that customize the browsing experience. They enable users to tailor Chrome functionality and behavior to individual needs or preferences. As I research Chrome V3 extensions to build AI tools, I thought I'd take a look at how to build a simple Chrome extension from scratch using Manifest V3. This post will guide you through creating a basic "Focus Mode" extension that toggles a sepia background on the current webpage to help reduce distractions. We will cover the essential concepts: 1. manifest.json: The core file that tells Chrome what your...