Index
The essays by subject. On the front page they run newest first.
Programming & Software Engineering
- MCP Knife: A CLI Swiss Army Knife for MCP Servers 2026
- mcpblox: Transform and Compose MCP Servers with Unix Pipes 2026
- Subagents, Commands and Skills Are Converging 2026
- The Programmer's Climb 2025
- Dijkstra would’ve (incorrectly) HATED vibe-coding 2025
- End-user Abstraction 2025
- How Unix Won 2020
- Church numerals in ES6 2016
- How software grows 2014
- When to do a rewrite 2014
- Lurking Smalltalk 2014
- Bleeding buffers 2014
- More on fat vs thin clients 2014
- The tool divergence 2014
- The Programming Language Consensus 2014
- Fat Client, Thin Client 2014
- Go lang 2014
- Automating software engineering 2013
- (A tiny step towards) Automating Web Design 2013
- The cost of memory safety 2013
- HTTP 2.0 marks the end of an era 2013
- Empirical Analysis of Programming Language Adoption 2013
- Native mobile apps are a stopgap 2013
- C++14 2013
- Waiting faster 2013
- CPU pipelines and the structure of work 2013
- What do you think computer science is? 2013
- Future programming 2013
- Zero Knowledge 2013
- What I work on… 2013
- Tackling tail latency 2013
- The rise of fimperative programming 2013
- Testing Redux 2012
- The new C++ 2012
- A rare retrospective on a decade-long research project 2012
- How did software get so reliable? 2012
- Science = Prediction 2012
- Shitty legacy maintenance 2012
- A Twitter-based Anagram Game 2012
- What mobile development taught me 2012
- Is C/C++ worth it? 2012
- Teaching data structures with real-world examples 2012
- Social Engineering for Programming Languages 2012
- Operations should be in the computer science curriculum 2012
- The need for Easter eggs 2012
- The 7 stages of debugging 2012
- Bug finding and static analysis in the real world 2012
- Church numerals in Python 2012
- Code review. Just do it. 2012
- Computational thinking 2012
- Showing it 2012
- Blue Java 2012
- Innovator's dilemma in programming languages 2012
- Whither programming language research? 2012
- Repositories of science 2012
- The CS assignment I wish I had 2012
- How to make your new programming language successful 2011
- The 0.1x developer 2011
- The abstraction-optimization tradeoff 2011
- Flash Crisis 2011
- Why developers should learn the economics of code 2011
- Size is the best predictor of code quality 2011
- Smeed's Law for Programming 2011
- The Poisonous Long Tail 2011
- The Upside of Complexity 2011
- Large Computer Systems are Organic 2011
- The Perils of Closed Worlds 2011
- More machines, more reliability 2011
- OOP = FP? 2011
- How to Write a Twitter Bot in Python 2011
- Coding blind 2010
- Engineering is all about failure 2010
- Gabriel vs Brooks 2010
- Software processes are software too 2010
- Google Apps Script + Spreadsheets = Mashup Hub 2010
Personal Essays & Culture
- Skills, CLIs, and MCP: What They're Actually For 2026
- Meta-Harness: Automating the Benchmaxing Loop 2026
- Surprising a model 2026
- Your Agent Sessions Are Disappearing 2026
- Manifesto for my channel 2019
- Review of Chaos Monkeys 2017
- Airspace 2016
- Learning your life 2014
- Heartbeats 2014
- Shedding 2014
- Hand-drawn maps 2014
- Star Trek vs Babylon 5 2014
- The Human Resolution Threshold 2014
- Best of 2013 2013
- Generation AD 2013
- Malcolm Gladwell and the narrative fallacy 2013
- My review: The Year Without Pants 2013
- Why you should subscribe to my newsletter 2013
- Rangers 2013
- How Hugh MacLeod got my money 2013
- The Organic Digital 2013
- Balance 2013
- NPS 2013
- RIP Ebert 2013
- Start here 2013
- From the mouths of babes 2013
- The new luxury 2013
- Review: Close to the Machine 2013
- The void 2013
- So Good They Can't Ignore You: Review 2013
- Best of 2012 2012
- New theme 2012
- Good reads of 2012 2012
- It Might Get Loud 2012
- Poor man's DIY little printer 2012
- Writing and happiness 2012
- Review: The Computer Boys Take Over 2012
- The Nostalgia Trap 2012
- The carrier-messenger wars 2012
- Mediated Concert 2012
- Jonah Lehrer 2012
- The intimacy of imperfect technologies 2012
- Hookah 2012
- Why I blog 2012
- Guru moment 2012
- Iteration 2012
- Best of 2011 2011
- Reading Happiness 2011
- Sun Ray 2011
- The Shy Scientist 2011
- Cracks in Minimalism 2011
- Michael Crichton 2011
- Alone Together 2011
- How the first Gulf War brought modernity to India 2011
- Presentism 2011
- Best of 2010 2010
- Ode to the Album 2010
- Deresiewicz: Essays about the Internet 2010
- Medium Shear 2010
- Dilli 2010
- Why James Cameron did not win the Academy award for best director for Avatar 2010
AI & LLMs
- The OpenAI–Hugging Face Hack: A Systems Problem More Than an Alignment Problem 2026
- I Have Become a Cognitive Empty Nester 2026
- Continual Learning Needs More Nuance 2026
- Beyond Human-in-the-Loop 2026
- How I Cut an AI Agent's Token Use by 94% 2026
- Cognitive Debt and the Future of Programming 2026
- The tension between local and cloud agents 2026
- From Emacs to Agents 2026
- The Complexity Ratchet 2026
- A Tale of Two Job Markets 2026
- O Moat, Where Art Thou? 2026
- Human-Agent Interaction Is Becoming the Bottleneck 2026
- The Three Abstractions That Make AI Agents Real 2026
- Confessions of an AI Hype-Bro 2026
- The Birth of a New Platform 2025
- Unix Was a Love Letter to Agents 2025
- Coding Agents Are Outliers 2025
- Natlang Code 2025
- The Mac-vs-PC Story Playing out in CLI Agents 2025
- AI is a Mirror 2025
- Plato's Cave of AI Agent Evals 2025
- Fixing Auth for Personal AI Agents 2025
- Does AI Make Programming Feel Like Factory Work? 2025
- The case against local LLMs 2025
- AI coding - From Tactics to Strategy 2025
- Human evals are outsourced vibe checks 2025
- Writing is building, but software is now content 2025
- When Compilers Were the 'AI' That Scared Programmers 2025
- Spec-driven Vibe-coding 2025
- Don't credit AI 2025
- Emacs in the age of AI 2025
- AI resistance considered harmful (for programmers) 2025
- How I use AI (late 2024) 2024
- Programming with LLMs: Part 1 2024
- Programming with LLMs: Part 2 2024
- Subject-object-verb, or– how we use AI 2024
- Portability of LLM Prompts 2024
- The de-nerdification of programming 2024
- LLMs eat entry-level SWEs 2024
- GPT Monologues 2023
- Metaphors for thinking about LLMs 2023
- Re: Why I don't use Copilot 2023
- AI doomers will doom us 2023
- LazyPost: Programming in the age of GPT and CoPilot 2023
- LLMs are compilers 2023
- Augmenting LLMs with APIs 2023
- Prompt LLMs for code, not arithmetic 2023
- The Automatic Corporation 2014
Work Culture & Professional Life
- How (and why) to be an effective meat proxy 2026
- Narrate Your Work 2025
- The Assembly Language of Knowledge Work 2025
- De-skilling 2014
- Should I do a PhD? 2013
- Research Roundup: Programming and Remote Teams 2013
- Is there a STEM worker shortage? 2013
- Taking your company completely remote 2013
- We are all remote workers 2013
- Talented Beast 2013
- Maintenance is not a bad word 2013
- The perils of being a knowledge worker 2013
- The laziness of synchronous work 2013
- Mindfulness sells 2013
- We are all Mad Men 2013
- Meetings are mutexes 2013
- Addicted to work 2013
- Computer Science PhD trends 2013
- Blue collar coders 2013
- Engineering, Culture and Tools 2013
- Scaling communication: email vs shared documents 2013
- Quantum of Work 2012
- Some advice on internships 2012
- A Programmer's Thanksgiving 2012
- Interviews (and whiteboard coding) 2012
- Why you would want to program at fifty (or any other age) 2012
- Coaching and review 2012
- Money in the Valley 2012
- Personal Trainers for Software 2012
- The levels of agility 2012
- The Cubicle Dilemma 2012
- What is life like for PhDs in computer science who go into industry? 2012
- The lure of work 2012
- Productivity porn 2012
- On Vagueness 2012
- Management models 2012
- Working asynchronously 2012
- Advice to (prospective) grad students 2012
- Themes: Modern Work 2012
- T-shirts are currency 2012
- Team Science 2012
- The programming assembly-line 2011
- The origins of Silicon Valley 2011
- Do you have an RSI prevention plan? 2011
- Side effects of PhD programs 2011
- Taylorism in the modern tech industry 2010
- What can Kanye and U2 teach you about teamwork? 2010
- Collecting Needles 2010
Tools & Technology
- My Video Production Stack (for YouTube) 2025
- IDEs and CAD 2023
- A spiritual successor to Emacs 2023
- Moving off Tumblr 2023
- Hardware Acquisition Hacks 2020
- Laptops with touchscreen keyboards 2018
- IDEs in the cage 2014
- Pebbles and Projects 2014
- To tool or not to tool? 2013
- The 1964 origins of responsive design 2013
- Rules for Computing Happiness 2013
- How will you read your files in a hundred years? 2013
- Long form on the web 2013
- How I do email 2013
- Backup in the age of the cloud 2013
- Patterns of use 2013
- Moving to Chrome OS 2013
- Factory machines 2013
- Writing on a tablet 2012
- Treesaver-based copy of this blog 2012
- Deep Shelling 2012
- New frontiers in text editing 2012
- How I read now 2012
- My setup 2012
- If you see a stylus, they blew it. Not. 2012
- Deft with descriptive filenames 2011
- GUI vs CLI: Operation vs Expression 2011
- An ergonomic keyboard and mouse configuration 2011
- Emacs as a login shell 2011
- dotEmacs Extract: Interactively change font size 2011
- The levels of Emacs proficiency 2011
- Turn your blog into an online magazine - a blogmag 2011
- The Cognitive Style of Unix 2011
- Stephenson on Emacs 2011
- Text Input: The Next Frontier 2011
- Use Accessibility Technologies Before You Have To 2010
- Editing Google Docs in Emacs 2010
- Posting to Tumblr from Emacs 2010
- My favorite Chrome extensions 2010
- Listening to your reading 2010
- Checking into Internet rehab - and sneaking out 2010
- Connecting my blog to Buzz 2010
Philosophy & Epistemology
- Technium 2014
- The Real New Aesthetic 2013
- The One Thing 2013
- Strong opinions, weakly held 2013
- Productivity isn't 2013
- Grateful for technology? 2013
- Executable Thought 2012
- Reproducing papers 2012
- Taylorist Science 2012
- How to debate 2012
- Rational Equivalence 2012
- Carr and Kelly 2012
- Computation in the wild 2012
- How things grow 2011
- Media Meta Argument 2011
- Comments on Stallman's Dystopia 2011
- Stallman's Dystopia 2011
- Minimalism is not a viable intellectual strategy 2010
- No || 2010
Economics & Social Issues
- The Personal Side of Jevons Paradox in the Age of AI 2025
- Treating algorithms fairly 2015
- Why technologists want to secede 2014
- You can't run with the machines 2014
- What changed in 1991 in India? 2013
- Asset allocation is everything 2013
- STEM jobs 2013
- MOOCs will eat academia 2012
- Datacenter power 2012
- Citation Reliability 2012
- The Interested Minority 2012
- Big science funding 2012
- The components of a university 2012
- Themes: The Economics of Programming 2012
- The monk tax 2011
- In Aggregate 2011
- To jump or not to jump? 2010
Cognitive Science & Learning
- Asynchronous Learning is More Inclusive 2014
- The Contours of My Attention 2014
- The Distraction Addiction 2014
- Sharp tools, dull minds 2013
- The difference between a herd and a crowd 2013
- Games as a hook into CS 2013
- Colorful geometry 2013
- Need to remember 2012
- Recent updates to old posts 2012
- Jumping to analysis 2011
- The empirical science of happiness 2011
- Teaching as performance 2011
- tldr summary: The role of deliberate practice in the acquisition of expert performance 2011
- The Internet is making us smarter, but is it making me dumber? 2010
Linguistics & Language
- Garland Words 2014
- English is heavily left-handed 2012
- Themes: Language 2012
- Englsh Wtht Vwls 2011
- More on and or 2010
- The 18th Century Origins of Lolcat-speak 2010
- Nouns as verbs, verbs as nouns 2010
- Upsight 2010
- English Words Lifted from Hindi 2010