Writing

Book reviews, reading lists, writing craft, fiction announcements, publishing process, “not on the shelves”, book recommendations, and writing tools.

2026-05-26Summer Projects
2026-03-27Another Modest Proposal
2026-03-26Classifying Research Software
2026-03-25A Modest Proposal
2026-03-15Distributed Systems Design by Example
2026-03-08Cognitive Pollution
2026-02-08104 Days
2025-12-30Discrete Events
2025-10-18One Small Command
2025-09-18Time Spent on Hardening
2025-09-12Searching for Closure
2025-09-05Mastodon and Webbly
2025-09-04If I Retired
2025-05-19Some Testing Answers
2025-04-20A Testing Question
2025-04-14No More Encyclopedias
2025-03-29Tooling for Snailz
2025-01-26Human Connection
2025-01-15Charlie Brown
2025-01-08Division of Labor
2025-01-02Crunch Mode
2024-12-30Cross One Off My List
2024-12-28Engagement
2024-12-14Snailz
2024-12-03Software Engineering Management Books
2024-11-30Another Static Site Generator for Lessons
2024-11-18Milner on Invention
2024-11-10What Worked Last Time?
2024-10-14Case Studies in Open X
2024-09-12Labels for Technical Writing Projects
2024-08-21Teaching Workshop in September 2024
2024-08-12Tutorials I Would Like to Attend
2024-06-14Human-Scale Software
2024-06-14Narconomics and Big Tech
2024-06-02Micro NWIT
2024-05-11Volume Two
2024-05-07Code for Thought Interview
2024-04-26Software Design by Example in Python 26: A Debugger
2024-04-25Software Design by Example in Python 25: A Virtual Machine
2024-04-22Software Design by Example in Python 22: Serving Web Pages
2024-04-22Background Knowledge
2024-04-18Software Design by Example in Python 18: A Database
2024-04-16Software Design by Example in Python 16: Object Persistence
2024-04-14Software Design by Example in Python 14: Page Layout
2024-04-13Software Design by Example in Python 13: A Code Linter
2024-04-12Software Design by Example in Python 12: A Template Expander
2024-04-11Software Design by Example in Python 11: An HTML Validator
2024-04-11What I Need in a Static Site Generator
2024-04-10Software Design by Example in Python 10: A File Archiver
2024-04-05Software Design by Example in Python 5: Parsing Text
2024-04-04Software Design by Example in Python 4: Matching Patterns
2024-04-01Software Design by Example in Python 1: Introduction
2024-03-30Governance Revisited
2024-03-21NWIT Retrospective
2024-03-17Governing a Book
2024-03-15Thinking About Lessons
2024-03-03Current Projects
2024-01-24Working Backwards
2024-01-23The Votes Are In
2024-01-20Including Boilerplate Files in Jekyll
2024-01-13What's the Scratch of the Social Sciences?
2024-01-05What Features of Python Do I Use?
2024-01-03The Other Examples
2023-12-29Reading List
2023-12-24Wrapping Up the Year
2023-11-25LLMs and Institutional Knowledge
2023-11-21One Damned Thing After Another
2023-11-01How to Reach the Unconverted?
2023-09-13Adventures in Publishing
2023-08-27The Weizenbaum Test
2023-08-20Ad Astra Simul
2023-08-13The BS in 'Leadership BS'
2023-08-10Language and Library Features for Teaching
2023-08-10Writing a Technical Book
2023-07-21Resurrecting the Tidynomicon
2023-07-20Explaining Code
2023-07-16Tooling a Book
2023-06-13Making a Book
2023-06-12Chapter Dependencies
2023-06-12Book Extensions
2023-04-11Fundraising Talks
2023-04-10Dressed in Hand-Me-Down Clothes
2023-03-24Code Complexity
2023-03-22Workshop Proposal: Organizational Change
2023-03-12Building a Book
2023-02-23It Will Never Work in Theory: April 2023 Lightning Talks
2023-02-13Soup, Then Prayers
2023-02-06A Book I Overlooked
2023-01-29Software Design by Example Summary
2023-01-29Styling Diagrams for Software Design by Example
2023-01-29Would You Take This Class?
2023-01-26Software Design by Example 20: Debugger
2023-01-25Software Design by Example 19: Virtual Machine
2023-01-24Commands I Use
2023-01-18Software Design by Example 14: Style Checker
2023-01-18Another Standard Model
2023-01-17Software Design by Example 13: Module Loader
2023-01-14Do These Tools Exist?
2023-01-13Software Design by Example 11: Layout Engine
2023-01-12Software Design by Example 10: Build Manager
2023-01-11Software Design by Example 9: Page Templates
2023-01-10Software Design by Example 8: Parsing Expressions
2023-01-09Software Design by Example 7: Pattern Matching
2023-01-07Two Picture Books
2023-01-06Software Design by Example 6: Data Tables
2023-01-05Software Design by Example 5: File Backup
2023-01-04Software Design by Example 4: Unit Testing
2023-01-03Software Design by Example 3: Asynchronous Programming
2023-01-01Plans for the Year
2023-01-01Software Design by Example 1: Introduction
2022-12-28Reading List
2022-12-27Stories
2022-12-24Comes Round Again
2022-12-17The Compassionate Programmer
2022-12-14Teaching in the Third Dimension
2022-12-10This Year's Books
2022-12-04I Want a Memory Diagram Generator
2022-11-30What I Want for Code in Textbooks
2022-11-20Journal of Comprehensible Explanations
2022-11-18Debuggable Explanations
2022-11-13The Notebook Not Taken
2022-11-01Listening Means Changing Your Mind
2022-10-24Software Design by Example
2022-06-20How to Write a Technical Book (Part 2)
2022-06-20Dev Ed Book Club
2022-06-19How to Write a Technical Book
2022-05-08A Language for Teaching
2022-04-21Software Design by Example
2022-02-2512 Quick Tips for Software Design
2022-02-01What I Would Change in Lox for Teaching
2021-12-31Comes Round Again
2021-11-14Maddy Roo
2021-09-23More Thoughts on Document Compilers
2021-08-24Textbooks (Alone) Are Not Enough
2021-08-18Software Design Webinar
2021-06-25A Proficiency Test for Research Software Engineers
2021-06-19A Magic USB Drive
2021-04-17Nine Weeks Off
2021-04-17Choose Your Own Adventure
2021-04-17You Say Dumbing Down, I Say Inviting In
2021-04-17Building a Book (Part 3)
2021-03-27The Ghosts in the Debugging
2021-03-25Paying for Drinks
2021-03-10Building a Book (Part 2)
2021-03-09Books for Africa
2021-03-04Staying Safe Online
2021-02-19Blinkered Visions
2021-02-15On Spec
2021-02-12Last Day at RStudio
2021-02-10Building a Book
2021-01-27JoVE But Not For Me
2021-01-27The Essence of Teaching
2021-01-25How I Write a Technical Book
2021-01-19Data Dictionaries
2021-01-18How to Write a Memo
2021-01-17Punchcards Considered Harmful
2021-01-09Pickled Carrots
2021-01-06And Should I Fall Behind
2020-12-04Productivity and Collective Action
2020-10-21Tools
2020-09-14We're Creating the Future
2020-09-10Ten Quick Tips for Teaching with Participatory Live Coding
2020-08-16Give It All Away
2020-08-07Hi Greg, It's Your Conscience Speaking
2020-07-19Slither.io, the Two Sigmas, and Customer Support
2020-06-20June 2020 Papers
2020-02-06JavaScript for Data Science
2019-12-31Correlations
2019-11-05Power is Always Suspicious of Fun
2019-11-03Ten Simple Rules That Are Missing
2019-08-06RIP Toni Morrison
2019-07-05A Modest Proposal
2019-06-24Chapter Summaries
2019-06-20Typography
2019-06-16Chunks versus Functions
2019-05-28Checking-Driven Development
2019-05-23Bottle of Light
2019-05-13Buzzfeed on DataCamp
2019-05-11Positive and Negative Openness
2019-04-22Already Mostly There
2019-04-22DataCamp Clarifications
2019-04-21Contrarians
2019-04-14The People You Have
2019-03-31What I Didn't Tweet in March
2019-03-27You Should Talk to HR
2019-03-12Reviewing Lessons
2019-03-10The Tool I Want
2019-02-25Making It Work in Practice
2019-02-16Late Binding
2019-02-11Examples Wanted for Code Review
2019-01-31Things I Didn't Tweet This Month
2019-01-26The Elements of Programming Writing Style
2018-12-31How Feasible is a Harassment Canary?
2018-12-30Harper: Lesson Discovery and Aggregation
2018-12-29Data Wrangling with JavaScript
2018-12-27Use Case Maps Revisited
2018-12-20PETE, PRIMM, and Monsters
2018-12-17Thirteen Percent and Counting
2018-12-08The Third Wall
2018-12-02One Last Step
2018-11-29Teaching as a Telenovela
2018-11-28My To-Don't List
2018-11-16Non-Standard Evaluation in R
2018-11-09Building Powerful Community Organizations
2018-10-31Credit and Respect
2018-10-26Formatting Functions
2018-10-25Amazon Makes Me Sad
2018-09-18Teaching Ethics
2018-09-16What Works for Women at Work
2018-08-31High and Low, One by One or All Together
2018-07-17Link Rot
2018-07-15Teaching Tech Together
2018-04-12Is This a Notional Machine for Python?
2018-03-26The Senior Professor's Handbook
2018-03-24Grand Unified Editor Theory
2018-03-09Tables
2018-02-18Teaching Programming in the Wild
2018-01-07Book Club
2017-12-27Data Visualization as Industrial Design
2017-12-27Explanation-Oriented Programming
2017-12-24Petzold's Rules Revisited
2017-12-23Holiday Reads
2017-12-21Ten Simple Rules for Talking People Into Things
2017-12-17Teaching for Learning
2017-11-24Common Misconceptions
2017-11-22Diff and Merge for ProseMirror
2017-11-17Freakonomics, But For Good
2017-11-11Not on the Shelves: 20th Anniversary Edition
2017-11-04Books for Programmers
2017-09-13Long Thoughts
2017-09-08Bridge and Evolution
2017-05-22Numerical JavaScript
2017-04-30Still Waiting
2016-11-13Stuff That Actually Matters
2016-11-01A Reproducibility Reading List
2016-10-29The Rest Is Yet To Come
2016-10-19Given Infinite Minions
2016-10-04And Now There Are Three
2016-09-27The Markov Test
2016-09-18Show Me Your Model
2016-09-12Collaborative Choral Software Exegesis
2016-09-10The Discussion Book
2016-09-05We Still Can't Have Nice Things Together
2016-08-26What I Didn't Learn in a CS Degree
2016-08-04Etsy for Teaching
2016-08-04Not Much of a Conversation
2016-08-02Heuristic Evaluation for Novice Programming Systems
2016-07-19Publishing Our Lessons, Version 2016.06
2016-07-17Commonization
2016-07-12500 Lines
2016-05-19Get Better But Not Change
2016-03-21Registers
2016-02-24Books Away
2016-02-19More of a Difference Than You Realize
2016-02-16A Counterpoint to Collaborative Lesson Design
2016-02-15Designing Lessons Collaboratively
2016-01-21Our Introduction to Git Has Been Published
2016-01-13A New Book from Mark Guzdial
2015-12-28Plans for 2016
2015-12-26New Words Needed
2015-12-20Pushing Ahead in Puget Sound
2015-12-06My Literature Problems
2015-11-15CourseSource: A(nother) New Hope
2015-09-30Citation Format
2015-09-26Plus Ça Change
2015-09-16Software Engineering Practices in Science
2015-09-13How Teaching Knowledge Is Transferred
2015-09-06Unwritten and Undone
2015-08-14Checking What We Teach
2015-08-12Publishing, Metadata, and Being Ahead of the Curve
2015-07-01Pushing Back
2015-06-24Using Jekyll for Lessons
2015-04-17Publishing Our Lessons
2015-04-13The Future Then and Now
2015-04-13Good Enough Practices in Scientific Computing
2015-01-17Orwell, Dickens, and How We'll Know We're Done
2015-01-14Practical Computing for Biologists (and Other Scientists)
2015-01-05Cathedrals, Bazaars, and In Between
2015-01-02Books You May Enjoy
2015-01-01Things I Won't Do This Year
2014-12-18All I Want for Christmas is a Pull Request…
2014-12-03Plans for 2015: Lessons
2014-10-30Why We Don't Teach Testing (Even Though We'd Like To)
2014-10-29Pandoc and Building Pages
2014-10-27Lost in Space
2014-10-27British Library Courses
2014-10-23A New Lesson Template, Version 2
2014-10-20Beautiful Lessons
2014-09-18A Proposal for Topic Maintainers
2014-09-16Mentioned in the Paris Review
2014-09-15Stray Thoughts
2014-06-05Collected Links
2014-05-05A Multi-Site Sprint in July
2014-04-23Import Lesson
2014-04-06Bridging the Writing Gap
2014-04-05Does Continuous Publication Require Continuous Attention?
2014-03-27Building a Minimal Online Presence
2014-03-27One of Our Inspirations
2014-03-23Not on the Shelves
2014-03-19Empirical Software Engineering Papers
2014-03-14You and Jimi Hendrix
2014-03-14A Letter from John von Neumann
2014-01-15Publishing on the Web
2014-01-07'Best Practices' Has Been Published
2014-01-07We Need More of These
2013-09-05Still
2013-09-02Introducing Citation Files
2013-08-30Open Access Button Hackathon is Sept 7-8
2013-08-23Two Cheers for GitHub
2013-08-12Offering a New Order
2013-07-26Report on the Indiana Bootcamp
2013-07-18Data Science Workflows
2013-07-05Sloan Foundation Proposal Round 2
2013-06-17Salk Institute Feedback
2013-06-13Problems with Pandoc
2013-05-24Browsercast
2013-05-02A Rational Computing Process: How and Why to Fake It
2013-04-19Spreadsheets, Retractions, and Bias
2013-03-24Using the IPython Notebook as a Teaching Tool
2013-02-09The Larch Environment
2013-02-01A Bunch of Bootcamps
2013-01-22Record and Playback in the IPython Notebook
2013-01-09The Last Policeman
2013-01-07Citation, Please
2013-01-04Advice From a Newbie No More
2012-12-16You've Shown Me the C, Now Where's the Python?
2012-12-08ElmCity Reaches Toronto
2012-12-06Two Solitudes Illustrated
2012-11-27Alpha Testing Ideas for the IPython Notebook
2012-11-19Who Wants To Build a Faded Example Tool for the IPython Notebook?
2012-11-17Updating Our Reading List
2012-11-16Who Wants To Write a Little Code?
2012-11-05Who Decides?
2012-11-02I'd Like an Argument, Please
2012-10-28Usability Testing and Instructional Design
2012-10-25Prime Numbers, Biologists, and Data Visualization
2012-10-01What Would You Like in an Instructor's Guide?
2012-09-30The Real Hard Work
2012-09-09A Few Books I've Enjoyed Recently
2012-09-04Final Results of Demographic Survey
2012-08-14Interview about Software Carpentry (and Education)
2012-08-14Cover Stories
2012-07-22IPython Notebook + Towtruck + Etherpad + Slide Drive = Win
2012-07-18Eyes, Brains, and Fingers
2012-06-15This Week's Tutorials
2012-06-07Ten Simple Rules
2012-06-04What Skills Are Required to Implement Open Access?
2012-05-18The Most Important Scientific Result Published in the Last Year
2012-05-15Fooling the Internet
2012-05-14Why We Built It
2012-05-12Feedback from Michigan State
2012-05-10Fish and Bugs
2012-05-08Architecture of Open Source Applications: Volume 2
2012-04-28Stop Me If You've Heard This One
2012-04-14We're Neutral (but Not Really)
2012-04-06Greener Grass
2012-04-03A Four-Day Curriculum
2012-04-03Seventy Years After
2012-03-18Informed Choice and the Audrey Test
2012-03-15The Audrey Test
2012-03-09What's the Model, Kenneth?
2012-03-01ULP (or, This is tricky and perhaps profound)
2012-03-01Why I Think 'YouTube for Textbooks' is a Bad Idea
2012-02-22What Deep Thoughts Look Like
2012-02-19A Flash (well, MP4) from the Past
2012-02-14New Kinds of Content
2012-02-13Formatting Revisited
2012-02-02Bullshit, Appropriation, and Technology in Education
2012-01-23A Better Solution to the Final Problem
2011-12-30Fork, Merge, and Share
2011-11-30The Greatest Story Never Told
2011-11-30Where's My Shell?
2011-11-29Rewind
2011-11-14Two Steps Forward, Two Steps Back?
2011-11-08The Ladder of Abstraction and the Future of Online Teaching
2011-11-02The 1970s Called…
2011-10-31D is for Digital
2011-10-24Demand Fair Play for Fauja Singh
2011-10-21What I Like Doing
2011-10-05D Is For Digital
2011-09-22And Then…
2011-09-17The Simplest Web That Could Possibly Work
2011-08-25AOSA Volume 2 Roster
2011-08-06Muriel (Jo) Campbell: 1930-2011
2011-06-29It Will Never Work in Theory
2011-06-12If You're Going to Teach an Undergrad Intro to Software Engineering…
2011-06-07Practical Computing for Everyone (not just biologists)
2011-06-07Blueprints Are Not Architecture
2011-05-28You Doesn't Exist
2011-05-28So What's It Like Publishing a Book Yourself?
2011-05-26How We Got Here, and Where We're Going
2011-05-23The Architecture of Open Source Applications is Now Available
2011-05-19Beta Book
2011-05-18Catalog Models Like Views and Controllers
2011-05-06The Architecture of Open Source Applications
2011-04-26Competence
2011-04-08Table of Contents
2011-02-24An Easy Place to Start: Systems Programming
2011-02-09Let's Talk
2011-01-10McConnell Responds to Bossavit
2011-01-05We Are the Frogs
2010-12-30In the Home Stretch
2010-12-29Tagging and Debugging
2010-12-27You're Never Too Old for Space Camp
2010-12-27Elimination
2010-12-20I Still Read
2010-12-14Presents for the Holidays
2010-11-30We're Number Six!
2010-11-22Michael Feathers on 'Making Software'
2010-11-16Ratios and Rework
2010-10-28An Uncertain Thing
2010-10-20Give The Patrons What They Want
2010-10-19Peter Norvig on Python
2010-10-18They're All Small Devices Now
2010-10-14Nature Article on Scientific Programming
2010-09-18The Stupid, It Still Burns
2010-09-05Games I'll Never Make
2010-08-16'Still' in On Spec
2010-07-19BP Buying Up Scientists
2010-07-18An Interview with Hans Petter Langtangen
2010-07-10HPC and Programmability
2010-06-24SIAM News Article About Software Carpentry
2010-06-20A Damn Good Book
2010-05-27A Few Things You May Not Have Known About Andrew Wakefield
2010-05-23Word Is Spreading
2010-05-20The Architecture of Open Source Applications
2010-04-21Ill-Informed Commentary Considered Harmful
2010-04-12Professors *Can* Teach Open Source
2010-03-31This is History? This is Science?
2010-03-29What's Not on the Reading List
2010-03-26Instructional Design
2010-03-18Testing With Random Data
2010-03-17Natural Language Wins (Kind Of)
2010-03-15Master of Science in Applied Computing
2010-03-11How Much Of This Should Scientists Understand?
2010-03-11Don't Ask, Don't Tell—Really
2010-03-11The Past Is Still Here Too, and It Too Is Unevenly Distributed
2010-03-02What We've Learned
2010-03-01Universe of Stone
2010-02-28Panton Principles
2010-02-24Twitter Makes Rhinos Of Us All
2010-02-09TestDrive
2010-02-03Dumber Is Productiver
2010-01-20We Can Only Interview the Survivors
2010-01-19How Are The Mighty Fallen
2010-01-12Quiet Time
2010-01-10Code vs. Messages
2009-12-30Holiday Reading
2009-12-11Peter Watts Needs Your Help
2009-12-11Reflectus
2009-11-26Feedback on the Python Book
2009-11-13The Definition of 'Exotic'
2009-11-13WWTD?
2009-11-13Packaging
2009-11-05The Greatest Failing of High School Science
2009-10-23Pictures in Pages
2009-10-21Creating New Niches
2009-10-17My Lack of Artistic Ability is a Real Handicap
2009-10-13A Less Frequent World
2009-10-05Portals Paper Online
2009-09-21Another Reason to Care About Provenance
2009-09-10New Book Project
2009-09-07Upgrading Their Plots
2009-08-31Different Weights, Different Answers
2009-08-30Discussing the Balance
2009-08-25Our Experiences Switching to Python
2009-08-24Science and JoVE
2009-08-15It's Like Not Wearing Your Cleats in the House
2009-08-06American Scientist Article on How Scientists Use Computers
2009-07-27A Challenge for Modellers
2009-07-26Martin Fenner on SciBarCamp
2009-07-22Day 7: Lots More Objects
2009-07-21Elsevier's Future, Version 0.1
2009-07-16Data Collaboration
2009-07-15Science 2.0 talks in Toronto July 29
2009-07-09Goodbye, Pages
2009-06-21Cathedrals and Limits
2009-06-17Subsistence Farmers With Cellphones
2009-06-15Crunch Mode and Burnout
2009-06-01Guido van Rossum reviews 'Practical Programming'
2009-05-14OCR for Line Drawings?
2009-05-13A Package Just Arrived
2009-05-12Error Handling
2009-05-12Beautiful Testing
2009-05-05'Practical Programming' Is Available
2009-04-23The Penalty For Dishonesty Is Often Borne By Others
2009-04-16Current Reading Queue
2009-03-31Reassurance Cuddles for CEOs
2009-03-30User Stories
2009-03-25A Short History of Software Engineering
2009-03-25Umm… Remind Me How We Do This?
2009-03-25Recent Reading
2009-03-22Why I Read Less Science Fiction Than I Used To
2009-03-10Things I'd Like to Accomplish (Version 2)
2009-03-08I Wish I'd Thought of That
2009-03-06Good Talk by Charles Petzold
2009-03-02Open Science and Autism's False Prophets
2009-02-18Papers
2009-02-18Computer Supported Collaborative Science
2009-02-15Reading Update
2009-02-12Jason Cohen Thinks Aloud
2009-02-11History Is Written By The Victors
2009-02-05A Story's Not Really Over…
2009-01-28Congratulations to Samira, Jeremy, and Carolyn
2009-01-26Where My Time Is Going
2009-01-21Text Is Still King
2009-01-212008 Smiley Award
2009-01-21Intellectual Infidelity
2009-01-14Making Up Grading Schemes
2009-01-13When Is A Book Finished?
2009-01-11Where My Time Goes
2008-12-29Profs on Facebook
2008-12-26Things I'd Like To Finish In the Next 489 Days
2008-12-18Carl Zimmer, Faces, and Letter Writing Campaigns
2008-12-08Monkeys, Bananas, and a Fire Hose
2008-12-07Sold Another Story
2008-12-04Python 3.0 is Out (But We're Not Using It Yet)
2008-12-03Advertising for 'Bottle of Light'
2008-11-30Igor, Connect the Electrodes!
2008-10-31It's Not You, It's Me
2008-10-19Two Others
2008-10-10So Far Behind
2008-09-15How do I enlarge a fizzbar without overwriting the user's snibbit?
2008-09-04Science 2.0: the Future of Online Tools for Scientists
2008-08-26Summer's End
2008-08-07Putting a Face to a Name
2008-08-06Tony, Dan, LanSchool, and Doing the Right Thing
2008-07-25Name This Book!
2008-07-17Up On Stage
2008-07-09Yes, Our Students Are Still Busy
2008-07-09Portrait of the Author
2008-06-27As We Head Into the Holiday Weekend…
2008-06-23Navigating IRC Logs, Nested Forms, Et Cetera
2008-06-14CBC Podcasts
2008-06-13Another Week of Progress
2008-06-12Where the Time Goes
2008-06-10Deleting Roles
2008-06-06Faking Results
2008-06-01Three Weeks In
2008-05-27Reminded of the Difference Once Again
2008-05-12Aaaand They're Off!
2008-05-05Those Who Will Not Learn From History…
2008-05-04Programming for Historians
2008-05-01MathWorks Visit
2008-04-29An Interview with Donald Knuth
2008-04-18Consulting Course Videos
2008-04-17Introducing Stack Overflow
2008-04-12A Rare Triple
2008-04-09Morning Routine
2008-04-07Always Outnumbered, Always Outgunned
2008-04-03Real World Data Causes Perl
2008-03-27Reality Tree
2008-03-21For The Record
2008-03-15SIGCSE Day 3
2008-03-15Streetknit + Spins & Needles
2008-03-13SIGCSE Day 1
2008-03-12On My Way To SIGCSE'08
2008-03-08Why Developers Don't Do Code Reviews
2008-03-07Controlled Release
2008-03-06Avenir vs. Ryerson
2008-03-04Beautiful Code Panel at SD West
2008-03-04Writing Is a Drug
2008-02-20Today's Politicians Lead Boring Lives
2008-02-19Six Books for a Canadian Winter
2008-02-19February Code Sprint: Day 1
2008-02-06Another Reminder
2008-02-06The First Check
2008-02-04You're Not Allowed To Use What You Learn In This Book
2008-01-08Apparently We're Doing Well
2008-01-08Where the Puck Is, Part 5
2008-01-04Code Sprint Day 1
2008-01-02One, Two, Three
2008-01-01Bubbles
2008-01-01Best of 2007
2007-12-27Cover for 'A Bottle of Light'
2007-12-16Count 'Em
2007-12-15Prepping for Next Term
2007-12-13The Other Kind of 'Cycles'
2007-12-09Switching to Zep
2007-12-09Python Supercomputing Statistics
2007-12-02Knitting a Home
2007-11-23Really Scary
2007-11-10We're Number Ten!
2007-10-26The Burning Man of HPC
2007-10-22But Not For Me
2007-10-10Citizen Lab Guide to Bypassing Censorship
2007-10-02On Spec Again
2007-09-23Two and a Half Books
2007-09-18DrProject's First Review
2007-09-12Jon Udell has the Best Job in the World
2007-09-10Russian and Korean
2007-09-02Managing, Reviewing, and RESTing
2007-09-01Short Stories Are a Form of Their Own
2007-08-29More Beautiful Code News
2007-08-09Late Night Thoughts on Re-Reading Terry Pratchett
2007-08-07A Review and an Explanation
2007-08-01JBoss vs. Django and What IronRuby Really Means
2007-07-30Udell on Beautiful Code (and 'narrating the work')
2007-07-24You Can Never Start Recruiting Too Early
2007-07-18Number One in Programming
2007-07-11Matt Doar Likes Beautiful Code
2007-06-28Today
2007-06-18Lack of Female Authors in Beautiful Code
2007-06-18Beatrice Worsley
2007-06-17Two Books of a Different Kind
2007-06-16Thanks, Jay
2007-06-09Home Stretch for Beautiful Code
2007-06-06Java Ecosystems for Python Programmers
2007-06-05Asimov's Other Law
2007-05-22Teaching Software Architecture
2007-05-12Holding Steady
2007-05-02Chronicle-Recorder and Debugging
2007-04-25Code Review Tools
2007-03-27Beautiful Code: Chapter by Chapter
2007-03-19Sign Error => Five Papers Retracted
2007-03-12What I Missed Most by Not Going to SIGCSE
2007-03-11Internet Self-Publishing as a Mirror for our Species
2007-03-10Beautiful Code
2007-02-27A Book That Should Be Read More Widely
2007-02-19Bitten Again
2007-02-10Tomorrow is Evolution Sunday
2007-01-31Why Ethics Matter
2007-01-21Debugging Trick
2007-01-21Udell on use experience vs. user experience
2007-01-18Structured Online Laboratory Notebooks
2007-01-13Pervasive Computing, Horror, and the Double Chin Effect
2007-01-12Abstraction, Compression, and Errors
2006-12-18Further Thoughts on Filing Bugs
2006-12-07Writing a Book
2006-11-30Not on the Shelves (Version 3)
2006-11-09Can't Get (Directly) There From Here
2006-11-05Small Scale Real-World Requirements
2006-10-28DrProject Internals: Security Part 2
2006-10-27DrProject Internals: Security Part 1
2006-10-23DrProject Internals: Setting the Stage
2006-10-17The Last of September's Reading
2006-10-04It's Spreading
2006-09-27An Unrepresentative DemoCamp
2006-09-14CASCON Workshops
2006-09-07Superficially Plausible Business Plan #31
2006-09-07Step 4: Respect
2006-08-30CSC49X: Figuring Out Where the Goalposts Are
2006-08-23Python Web Frameworks (Yet Again)
2006-08-07Naive SQL(ite) Question
2006-07-19Evidence-Based Software Engineering
2006-07-19Books I Want Someone to Write #23
2006-07-15Another Database Design Question
2006-06-27Next… Design by Contract? (Please)
2006-06-27Why DrProject Is Slow
2006-06-23The ACM's Top 25
2006-05-05Book Review: Code Quality
2006-04-16Bobet on Tushingham
2006-04-13Strong Typing, Unit Testing, and Science
2006-03-31Where Next for DrProject?
2006-03-30Head Rush Black Belt Secret Hacks of the [buzzword] Zen Masters!
2006-03-30The Next Phase New Wave Tool Craze
2006-03-27The Real Convergence
2006-03-262020 Hype
2006-03-05Monad and Greasemonkey
2006-02-21State of DrProject
2006-02-11Of DocFests, Marketing Hype, and DrProject
2006-02-04Project Assets
2006-01-17George Cukor, Hugo Weaving, and Gene Kelly
2006-01-03Petzold's Rules for Writing a Technical Book
2006-01-03DrProject kickoff
2005-12-23Procrastination: One of the Few Things in Life Nicer Than Toast
2005-12-21Choosing Sides
2005-12-11Maintaining Correctness
2005-12-08Ruby Book Sales Surpass Python
2005-12-05Guidance on Running Undergraduate Software Projects
2005-11-24Fogel's Producing Open Source Software
2005-10-27You Need a Debugger to Change the World
2005-10-18Next Steps
2005-08-22Slow Imports
2005-06-20Another DDJ Editorial
2005-04-25Data Crunching
2005-04-13Mapping Human History
2005-03-25Fasten Your Seatbelts
2005-03-15Pythoneers at SIGSCSE
2005-03-13Reading the Fine Print
2005-03-11Code reviews
2005-02-09Good Writing vs. Bad Writing
2005-01-08Managing Student Projects Using Blogging: First Impressions
2004-10-06Ten Big Ones
2004-09-13Guards! Guards!
2004-09-13Subversion Grief and Usability Testing
2004-09-02Book Review: Joel on Software
2004-06-25Getting Balls Rolling in the Real World
2004-06-22The New Standard Model