2025-09-12

Lobsters Interview with Susam

A programmer shares insights on computing, mathematics, and software development, detailing experiences with Lisp, Emacs, and various programming languages while emphasizing the importance of vocabulary-driven development and mathematical thinking in software design.

Original archive.is archive.ph web.archive.org

Log in to get one-click access to archived versions of this article.

read comments on news aggregators:

Related articles

AI Coding

Programming AI is fundamentally similar to a compiler, with English being a poor input language choice due to its imprecision and non-deterministic nature. While AI tools can enhance programming workflows through improved search and pattern recognition, the current hype around AI coding overlooks its limitations and the need for better programming languages and tools.

Emacs: a paradigm shift

An exploration of Emacs' extensibility through a practical example of customizing org-mode's sorting behavior, demonstrating how Emacs encourages deep customization and provides powerful tools like advice-add for system modification. The article showcases how to implement automatic sorting of org-mode entries using buffer-local settings, highlighting Emacs' unique approach to user customization.

Fixing my gripes with GitHub using Gleam and a Raspberry Pi

A developer created a custom solution using Gleam and a Raspberry Pi Zero to monitor GitHub PR conflicts and mergeability status. The system uses GitHub's GraphQL API to fetch PR data and displays it through a simple web interface, solving the inconvenience of manually checking each PR's status.

A Digital Darwin Adventure with Mating Melodies

A developer explores the parallels between biological evolution and musical patterns by creating a 'melody breeder' digital playground and a musical version of Conway's Game of Life. The project demonstrates how cultural elements like music and trends follow evolutionary patterns similar to biological systems, supported by research in cultural evolution and neuroscience.

Many Hard Leetcode Problems are Easy Constraint Problems

The article explores how complex programming interview problems, often requiring dynamic programming solutions, can be simplified using constraint solvers like MiniZinc or Z3. Several common interview questions are demonstrated with their constraint solver implementations, showing how these tools can handle increasingly complex requirements with minimal code changes.

The Inspection Paradox is Everywhere

The inspection paradox occurs when sampling methods systematically oversample larger instances, leading to biased perceptions across various domains like class sizes, flight occupancy, and social networks. Through multiple real-world examples and data analysis, the phenomenon demonstrates how observers often experience skewed distributions that differ significantly from actual statistics. Statistical awareness of this paradox is crucial for accurate data interpretation and experimental design.

Solving SICP

A detailed analysis of solving the SICP problem set reveals it requires 729 hours over 8 months, involving 6 programming languages and 9 software tools, tracking time spent per exercise and difficulty distribution. The analysis provides valuable data on course workload estimation, student motivation tracking, and curriculum design improvements.

Block Breakers

A hands-on educational resource focused on block cipher cryptanalysis, with a particular emphasis on attacking AES. The course provides guided exercises and practical implementations rather than theoretical knowledge, making complex cryptography concepts more approachable.

Effective Rust

A comprehensive guide presenting 35 specific methods to enhance Rust programming practices, covering essential topics from type systems to FFI boundaries. The guide is structured into six main sections, focusing on types, traits, concepts, dependencies, tooling, and advanced Rust features. Each item provides detailed insights for writing more effective and maintainable Rust code.