Writing Great Programming Documentation: A Teaching Guide

2025-03-16

This post uses engaging metaphors and storytelling to illustrate the philosophy of writing high-quality technical documentation. The author argues that the core of documentation is 'teaching', not simply providing information. The post critiques the inadequacy of relying solely on source code, tests, or literate programming tools, emphasizing that documentation should be viewed as a gradual learning process, guiding users from initial contact and quick start to in-depth learning and finally to advanced reference. Each stage should be carefully designed to help users become experts. The author also shares personal teaching experiences and suggests treating documentation writing as a teaching process, focusing on user experience and the gradual acquisition of knowledge.

Read more

Tackling Dependency Management Challenges in Common Lisp's Metaobject Protocol

2025-03-01

This article details the author's experience tackling dependency management challenges while working on a Common Lisp library utilizing the Metaobject Protocol (MOP). Through a monitored-class example, the author demonstrates how to elegantly leverage CLOS's Dependent Maintenance Protocol to ensure that subclass monitoring functionality remains consistent even when superclasses are redefined. The article thoroughly explains the use of dependency wrappers and update-dependent methods to guarantee subclasses always inherit the latest monitoring capabilities, even after superclass redefinitions. This is a practical case study of efficient interactive development in Common Lisp, showcasing the language's powerful metaprogramming capabilities and its robust support for interactive development.

Read more
Development Metaobject Protocol