Software

Posts about programming practices, code quality, testing, debugging, version control, build systems, architecture, software design, tools, programming languages, APIs, performance, automation, and the craft of building and maintaining software.

2026-05-31Sojourn Time
2026-05-30Little's Law
2026-05-30How to Not Be Wrong About AI
2026-05-29Queue Formation
2026-05-28Basic Ideas in Queueing Theory
2026-05-27Building a City, Not a Car
2026-05-26Summer Projects
2026-05-20Twelve Ways to Be Wrong About AI-Assisted Coding
2026-04-19asimpy Improvements
2026-04-18asimpy Performance Benchmarking
2026-04-08Lessons from Disaster Management
2026-04-01Current Projects
2026-03-30Project Status
2026-03-28An E-Bike for the Mind
2026-03-27Another Modest Proposal
2026-03-26Classifying Research Software
2026-03-26Feasible
2026-03-26Penguin Geography
2026-03-25A Modest Proposal
2026-03-24Accessibility Improvements
2026-03-15Distributed Systems Design by Example
2026-03-08Cognitive Pollution
2026-02-08104 Days
2026-01-23Updating Snailz
2026-01-18If Not Lessons, Then What?
2026-01-14First-of in asimpy
2026-01-11Trying to Understand asimpy
2026-01-10Introducing asimpy
2026-01-05Next Steps for Simulation
2025-12-30Discrete Events
2025-12-08The Real Hardest Problem
2025-12-07Handling Interruptions
2025-12-06Remembrance
2025-12-04The Effects of Rework
2025-12-03You Have to Cancel
2025-12-03In Search of Sturdiness
2025-11-30Observability
2025-11-29What Changed Revisited
2025-11-28What Changed?
2025-11-27Not Created Equal
2025-11-26Malice and Randomness
2025-11-25You Can't Tell
2025-11-24Analyzing the Simulation
2025-11-23Simulating Multiple Stages
2025-11-22Refactoring the Simulation
2025-11-21Simulating Rework
2025-11-21Looking for Work
2025-11-20Making Sense of Simulation
2025-11-19Simulating a Developer Pool
2025-11-18Starting to Simulate
2025-11-11End of Life Ideas
2025-10-25Cognitive Pollution
2025-10-18One Small Command
2025-10-08Labwork to Leadership
2025-09-18Time Spent on Hardening
2025-09-05Mastodon and Webbly
2025-09-04If I Retired
2025-08-21Things I'm Looking For
2025-08-15Productivity Workshop Ideas
2025-08-13This Week's Posts
2025-07-19Workshops I Want
2025-07-18No Satisfaction
2025-07-16Books For a Talk
2025-05-19Some Testing Answers
2025-05-18Two Thirds of a Language
2025-05-16Appearance on SustainOSS Podcast
2025-05-01We Weren't Ready for the Flood
2025-04-21Lazy Loading a Data Package
2025-04-20A Testing Question
2025-04-18A Dollar a Minute
2025-04-14No More Encyclopedias
2025-04-12Research Threat Models
2025-04-09Congratulations to This Term's Students
2025-03-29Tooling for Snailz
2025-03-15A Poem
2025-03-12Resilience Advice
2025-03-08What We Mean by Software Design
2025-02-17There's Nothin' to Know
2025-01-26Human Connection
2025-01-15Charlie Brown
2025-01-11Fairness
2025-01-11Edinburgh Winter Talk
2025-01-10Grades
2025-01-08Division of Labor
2025-01-07Forming Teams
2025-01-06Making Decisions
2025-01-04Meetings
2025-01-02Crunch Mode
2024-12-30Cross One Off My List
2024-12-29Jimmy Carter
2024-12-28Engagement
2024-12-27Not Very Scalable
2024-12-15Wrapping Up the Year
2024-12-14Snailz
2024-12-14How It Will Be Used
2024-12-08Two Roads, and a Third
2024-12-03Software Engineering Management Books
2024-12-01Never Look Back
2024-11-30Another Static Site Generator for Lessons
2024-11-24Unfinished Projects
2024-11-10What Worked Last Time?
2024-10-28What Would Be in a New AOSA?
2024-10-20A Wish List
2024-10-14Case Studies in Open X
2024-10-12Browsercast Revisited
2024-09-27First Draft of the Webonomicon
2024-09-12Labels for Technical Writing Projects
2024-09-06How I Explain Code
2024-08-21Teaching Workshop in September 2024
2024-08-12Tutorials I Would Like to Attend
2024-07-01Python Software Foundation Board Nomination
2024-06-14Human-Scale Software
2024-06-02Why Are You Still Working?
2024-05-12Reviews Are Coming In
2024-05-11Volume Two
2024-05-07Code for Thought Interview
2024-04-29Where the Time Went
2024-04-27Building Tech Together
2024-04-27Software Design by Example in Python 27: Conclusion
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-24Software Design by Example in Python 24: Undo and Redo
2024-04-23Software Design by Example in Python 23: A File Viewer
2024-04-22Software Design by Example in Python 22: Serving Web Pages
2024-04-22Background Knowledge
2024-04-21Software Design by Example in Python 21: Transferring Files
2024-04-20Software Design by Example in Python 20: A Package Manager
2024-04-19And Now to Lead
2024-04-19Software Design by Example in Python 19: A Build Manager
2024-04-18Software Design by Example in Python 18: A Database
2024-04-18A New Stack
2024-04-17Software Design by Example in Python 17: Binary Data
2024-04-16Software Design by Example in Python 16: Object Persistence
2024-04-15Software Design by Example in Python 15: Performance Profiling
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-09Software Design by Example in Python 9: Protocols
2024-04-08Software Design by Example in Python 8: Functions and Closures
2024-04-07Software Design by Example in Python 7: An Interpreter
2024-04-07In Search of Balls and Sticks
2024-04-06Software Design by Example in Python 6: Running Tests
2024-04-05Software Design by Example in Python 5: Parsing Text
2024-04-05Moving On
2024-04-04Software Design by Example in Python 4: Matching Patterns
2024-04-03Worlds
2024-04-03Software Design by Example in Python 3: Finding Duplicate Files
2024-04-02Software Design by Example in Python 2: Objects and Classes
2024-04-01Software Design by Example in Python 1: Introduction
2024-03-30Governance Revisited
2024-03-27Disk Usage
2024-03-21NWIT Retrospective
2024-03-14Promo Code
2024-03-08Our Process
2024-03-07Labels
2024-03-03Current Projects
2024-03-01Why I Draw
2024-02-25My Last To-Don't List
2024-02-25Community Norms
2024-02-22Code, Cucumbers, and LLMs
2024-02-21A New Metric
2024-02-17Concurrent Examples
2024-02-14A Pair of Interviews
2024-01-24Working Backwards
2024-01-23The Votes Are In
2024-01-20Including Boilerplate Files in Jekyll
2024-01-20Not on the Shelves (2024 Edition)
2024-01-17The First Six Questions
2024-01-13What's the Scratch of the Social Sciences?
2024-01-08Theory and Practice
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-12-12Ultracrepidarian
2023-12-11Meetings, Interruptions, and Power
2023-12-10Research Software Design by Example
2023-12-08Depressing Reading
2023-11-25LLMs and Institutional Knowledge
2023-11-22Seeing Like a Student
2023-11-21One Damned Thing After Another
2023-11-13Replacing Make
2023-11-12Software Design Homework
2023-11-01How to Reach the Unconverted?
2023-10-30Career Planning
2023-10-26BDFL Governance
2023-10-22Building a Ramp
2023-10-15Directions
2023-10-02Two Unfunded Proposals
2023-10-01Software Design by Example (Python edition) Has Shipped
2023-09-28Embedded.fm Podcast Appearance
2023-09-26Hiring an Engineering Manager
2023-09-13Adventures in Publishing
2023-09-09An Approach to Motivating Coding
2023-08-20Teaching Workshops for Rainbow Railroad
2023-08-13I Don't Know What to Think About AI
2023-08-13The BS in 'Leadership BS'
2023-08-10Language and Library Features for Teaching
2023-07-23The Loneliness of the Long Distance Writer
2023-07-21Resurrecting the Tidynomicon
2023-07-20Explaining Code
2023-07-16Tooling a Book
2023-07-12Software Design by Example (Python edition) Now in Beta
2023-07-06Software Design in Python: Status Update
2023-07-05The Carpentries at 25
2023-06-13Making a Book
2023-06-12Chapter Dependencies
2023-06-12Book Extensions
2023-05-02Closing Time
2023-04-27Their First Message
2023-04-24The Old Guy
2023-04-11Fundraising Talks
2023-04-10Dressed in Hand-Me-Down Clothes
2023-03-31Happy Birthday, Maddie
2023-03-24Code Complexity
2023-03-12Building a Book
2023-03-12Rethinking Design Examples
2023-03-11Full of Stars
2023-03-04How Long Does It Take Me?
2023-03-04The Only Features I Need
2023-02-26Provenance Revisited
2023-02-23It Will Never Work in Theory: April 2023 Lightning Talks
2023-02-06A Book I Overlooked
2023-02-04Where the Time Goes
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-27Benchmarking Languages
2023-01-27Software Design by Example: Conclusion
2023-01-26Software Design by Example 20: Debugger
2023-01-25Software Design by Example 19: Virtual Machine
2023-01-24Software Design by Example 18: Package Manager
2023-01-24Commands I Use
2023-01-23Software Design by Example 17: Module Bundler
2023-01-20What Would Entice Them?
2023-01-20Software Design by Example 16: Documentation Generator
2023-01-19Software Design by Example 15: Code Generator
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-17An Amsterdam Kind of Life
2023-01-16Software Design by Example 12: File Interpolator
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-08Somewhere Between Hobbes and Wishful Thinking
2023-01-07Hey! I Wasn't Done Yet!
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-02Software Design by Example 2: Systems Programming
2023-01-01Plans for the Year
2023-01-01Software Design by Example 1: Introduction
2022-12-28Ways to Explain Code
2022-12-28Reading List
2022-12-28Six for the To-Don't List
2022-12-28First Copy
2022-12-27Stories
2022-12-24Comes Round Again
2022-12-19Negotiation Tactics
2022-12-18Sessioncasting
2022-12-17The Compassionate Programmer
2022-12-14Teaching in the Third Dimension
2022-12-04I Want a Memory Diagram Generator
2022-12-01Software Design in Python Glossary
2022-11-30What I Want for Code in Textbooks
2022-11-21Software Design by Example Personas
2022-11-18Debuggable Explanations
2022-11-13A Combinatoric Geometry Problem
2022-11-13The Notebook Not Taken
2022-11-09Getting Closer
2022-10-29Throttling
2022-10-29I Don't Know What to Teach
2022-10-29Escape From the Rest of Us
2022-10-29Learning Objectives for Teaching Workshop
2022-10-26Software Design Homework
2022-10-24Software Design by Example
2022-10-02Empirically Minimal
2022-08-25Thoughts on the Hippocratic License
2022-08-14Empirical Software Engineering Vignettes
2022-08-11Slides for Teaching Tech Together
2022-08-10Hard Problems
2022-07-23Side by Side
2022-07-09Poynting Collector
2022-06-20How to Write a Technical Book (Part 2)
2022-06-19How to Write a Technical Book
2022-06-06Mitigation
2022-05-14The Wes Mongtomery of Software
2022-05-08A Language for Teaching
2022-04-30Four Books I'm Not Writing (Plus One)
2022-04-21Software Design by Example
2022-04-03Tehanu
2022-02-2512 Quick Tips for Software Design
2022-02-01What I Would Change in Lox for Teaching
2022-01-16A Cacaphony of Explanations
2022-01-06In the Karaband
2021-12-31Comes Round Again
2021-12-26Effort Estimation
2021-11-23Not What I Set Out to Do
2021-11-15Setting Up a New Project
2021-11-07What (a subset of) Done Looks Like
2021-10-03Three Weeks Off
2021-09-27Current Project List
2021-09-23More Thoughts on Document Compilers
2021-09-13IQ and Personality Tests
2021-09-07Managing Research Software Projects Workshop
2021-08-18Software Design Webinar
2021-08-05Software Design Rules
2021-07-22Whatever Happened to TidyBlocks?
2021-07-18What Everyone in Tech Should Know About Teaching and Learning
2021-07-17Software Engineering's Greatest Hits
2021-06-25A Proficiency Test for Research Software Engineers
2021-06-19A Magic USB Drive
2021-05-17Two Books
2021-04-20Scorecards
2021-04-19Evening and Morning Routine
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-04-08Lesson Maps
2021-04-07Meals
2021-03-30Joining a Project
2021-03-30The Fourth Tradition
2021-03-27The Ghosts in the Debugging
2021-03-10Building a Book (Part 2)
2021-03-09Books for Africa
2021-03-04Staying Safe Online
2021-02-22Strategies for Change
2021-02-19Blinkered Visions
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-26Dead Last
2021-01-25How I Write a Technical Book
2021-01-23But Can She Type?
2021-01-19Data Dictionaries
2021-01-18Good Enough Teaching
2021-01-18How to Write a Memo
2021-01-17Punchcards Considered Harmful
2021-01-17The Page Is Not The Lesson
2021-01-07Steps in Order
2021-01-03Concept Maps
2020-12-13Product Lifecycle Visualized
2020-11-02A Lightweight Process for Lesson Teams
2020-10-21Tools
2020-10-17Australian Wildlife
2020-10-12Circular Imports
2020-09-14We're Creating the Future
2020-09-13Static Lesson Generators
2020-09-01What Every Community Needs
2020-08-31Governance
2020-08-20Progress
2020-08-16Give It All Away
2020-08-13How to Run a Meeting
2020-08-08A Better Learning Platform
2020-08-04Research Educators
2020-07-31Moth
2020-07-30Save the Humans
2020-07-30Wanted: A Notation for 'Why'
2020-07-28Announcing Glosario
2020-07-26Presentable
2020-07-19Slither.io, the Two Sigmas, and Customer Support
2020-07-18Good Trouble
2020-05-27Marble Race
2020-04-06Teaching Code Review
2020-03-30SIGSOFT Influential Educator Award
2020-02-06JavaScript for Data Science
2020-01-13The Doors Are Quiet Now
2020-01-11Half a Century
2020-01-05Knitting
2020-01-04A Model Experiment
2019-12-31Correlations
2019-12-23Gini Coefficients
2019-12-23Empirical Examples
2019-12-20Terms
2019-12-17Measuring Software Tools
2019-12-13Synchronous Online Active Classes
2019-11-19Cutting Corners
2019-11-19Team Conflict
2019-11-19Allocating Responsibilities
2019-11-13Gage Park
2019-10-30First Do No Harm
2019-10-26Family
2019-10-17So You've Been Fired
2019-10-17Timeline of a Conversation That Never Happened
2019-10-11Proficiency
2019-09-05How Do You Tell?
2019-09-04TidyBlocks Webinar
2019-08-22Finally Real
2019-08-14It Feels Good to be Useful
2019-08-10Exoplanets
2019-08-08Documentation Types
2019-08-05Computational Science Education (1996 edition)
2019-08-04No Support for Hate
2019-08-03Teaching Online
2019-07-22Third Walls and Eighth Bolts
2019-07-15Is This a Notional Machine for R?
2019-07-07Deskilling Learning
2019-07-07A Veteran of a Thousand Language Wars
2019-07-05Patterns in Git
2019-06-20Typography
2019-06-16Chunks versus Functions
2019-06-15Ten Quick Tips for Delivering a Programming Lesson
2019-06-14Software Isn't Sustainable
2019-05-30Software Engineering Revisited
2019-05-28Checking-Driven Development
2019-05-24Words and Hours
2019-05-20Simon Charlie Made This
2019-05-19And Then Another
2019-05-13Buzzfeed on DataCamp
2019-05-11Positive and Negative Openness
2019-05-03Shorter Lines
2019-05-02Sexing Data Science Chickens
2019-04-27From Textbooks to Notebooks and Back
2019-04-22Already Mostly There
2019-04-22DataCamp Clarifications
2019-04-17Learning Curves
2019-04-16What Docs When
2019-04-12Python Flash Cards
2019-04-10What Docs and When
2019-04-06Bootcamps
2019-04-05The Worst Behavior
2019-04-04Not a Hammer
2019-03-31Concept Maps
2019-03-30Online Teaching Setup
2019-03-30Curriculum Roadmap
2019-03-24Occupations
2019-03-21Twelve Weeks, Twelve Tools
2019-03-20Educational Paramedics
2019-03-15Christchurch and Shopify
2019-03-12Reviewing Lessons
2019-03-10The Tool I Want
2019-03-07Learning to Program
2019-02-28Things I Didn't Tweet This Month
2019-02-20Is Code-Along Formative Assessment?
2019-02-20Durations
2019-02-16Late Binding
2019-02-11Examples Wanted for Code Review
2019-02-05Libraries Tell It Like It Is
2019-01-31Things I Didn't Tweet This Month
2019-01-28Computing Skills Books for Researchers
2019-01-26The Elements of Programming Writing Style
2019-01-24The Principle of Least Precision
2019-01-06Not on the Shelves (2019 Edition)
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-26Poor Thinking
2018-12-20PETE, PRIMM, and Monsters
2018-12-17Thirteen Percent and Counting
2018-12-16Speaking of Accessibility
2018-12-14No Straight Pipeline
2018-12-13A Story Line Game for Teaching
2018-12-12Twelve Percent of a Plan
2018-12-12JavaScript versus Data Science
2018-12-08The Third Wall
2018-12-06Analyze That! Very Preliminary Results
2018-12-06Three Courses
2018-12-02Learning from McMaster
2018-12-02One Last Step
2018-11-30Lesson Installation
2018-11-30Scripts
2018-11-28Augmenting Error Messages
2018-11-28My To-Don't List
2018-11-16Non-Standard Evaluation in R
2018-11-15The Real Open Challenges
2018-11-05Abstraction and Comprehension Continued
2018-11-01Twelve Questions
2018-10-26Formatting Functions
2018-10-25Amazon Makes Me Sad
2018-10-24Two Columns
2018-10-18Four Forms of Documentation
2018-10-06Flake and Collins, Mark and Jack and Tobi
2018-09-18Teaching Ethics
2018-09-16Ten Simple Rules for Creating an Effective Lesson
2018-09-05Analyze That!
2018-09-04Joining RStudio
2018-09-04Two Courses
2018-08-28Two Abstracts for Two Audiences
2018-08-18Ten Simple Rules for Creating an Effective Lesson
2018-08-14Our Last Game
2018-08-12The Real Challenge
2018-08-07Three Terms
2018-07-21Weak Failure, Strong Failure, and Butter Tarts
2018-07-17Link Rot
2018-07-05Isaac Ezer's Dragnet
2018-07-05Performance Curves, Curriculum Design, and Trust Revisited
2018-06-20End-User Teachers
2018-06-14One-Day Workshops
2018-05-30Late Night Thoughts
2018-05-11Organize!
2018-04-30GSoC 2018
2018-04-28Version 3 Feedback
2018-04-12Is This a Notional Machine for Python?
2018-04-01Yaks
2018-04-01The Undergraduate Software Project Guide
2018-03-26The Senior Professor's Handbook
2018-03-24Analog is More Satisfying
2018-03-24Grand Unified Editor Theory
2018-03-23Where Does This Come From?
2018-03-20Comments Sought on the Plan for Version 3 of 'How to Teach Programming'
2018-03-17I Can't (Quite) Teach JavaScript
2018-03-16Chariots
2018-03-13A Base Case for Empirical Software Engineering Research
2018-03-11Wanted: A Tool for Figure Labeling Exercises
2018-03-09Budgets
2018-03-09Tables
2018-02-28Workshop on Organizing for Progressive Community Change
2018-02-27I'm Missing
2018-02-18Teaching Programming in the Wild
2018-02-14'Analyze This!' for CS Education
2018-02-13Workshop Benefits
2018-02-12More Dagstuhl
2018-02-10My Dagstuhl
2018-02-07Changes
2018-02-04CarpentryCon 2018
2018-01-15Ten Simple Rules for Being a Good Educational Research Partner
2018-01-15Procedural versus Declarative
2018-01-13Educational Bibliography
2018-01-09Teaching Statistics in the 21st Century
2018-01-03Teaching Tech Together Toronto: January 2018 Meetup
2017-12-30The Year in Review
2017-12-30Wanted: A Workable Lesson Competition
2017-12-27Data Visualization as Industrial Design
2017-12-27Explanation-Oriented Programming
2017-12-24Petzold's Rules Revisited
2017-12-23All the Other Santas
2017-12-17Teaching for Learning
2017-12-15What Does Peripheral Participation in Data Look Like?
2017-12-06Remembrance
2017-12-06The New Standard Model
2017-11-28My Favorite Tool - Asking for Help
2017-11-22Diff and Merge for ProseMirror
2017-11-20Data Science for Software Development
2017-11-11Not on the Shelves: 20th Anniversary Edition
2017-11-05Carpentry For Everyone
2017-11-04Books for Programmers
2017-11-02Once Upon a Time
2017-11-01I'm Probably Wrong Again
2017-10-21Change Strategies
2017-10-21Making Maintainable Lessons
2017-10-16Exercises for Teaching Programming
2017-09-30Git, Graphs, and Software Engineering
2017-09-30The Big Picture Revisited
2017-09-24I'm Tired of Killing Aliens
2017-09-21Dad With His Birdhouses
2017-09-18Disappearing Data
2017-08-01MSR Books
2017-07-21Too Soon and From Unexpected Directions
2017-07-20Hunter S. Thompson, Football, and the GOP
2017-06-22Good Enough Practices in Scientific Computing
2017-05-31How to Teach Programming (And Other Things)
2017-05-22Numerical JavaScript
2017-04-30Still Waiting
2017-02-06A Moral Equivalent of the Turing Test
2017-01-25Stand with Government Scientists
2017-01-08Pennies for Understanding
2017-01-01Blogging
2016-12-242016 in Review
2016-12-14Next Steps
2016-12-05Normal
2016-11-19Open Instructor Training
2016-11-13Stuff That Actually Matters
2016-10-30Close Cousins
2016-10-29The Rest Is Yet To Come
2016-10-23Programming as Theory Building
2016-10-22Library Carpentry is One Year Old
2016-10-20Ten Simple Rules for Digital Data Storage
2016-10-19Given Infinite Minions
2016-10-17Machine Learning with Python
2016-10-11In Memoriam: Hans Petter Langtangen
2016-10-10Beth Duckles on the Practice of Measuring
2016-10-05Request for Review: ESIP's Software Guidelines
2016-10-04And Now There Are Three
2016-10-04Python as a Second Language
2016-09-30Two Studies of Online Communities
2016-09-29Epistocracy as Privilege
2016-09-27Terrified Sheep
2016-09-23Teaching Programming to the Blind
2016-09-21What I Wish I'd Read
2016-09-18Show Me Your Model
2016-09-12Collaborative Choral Software Exegesis
2016-09-10Slides for Two Talks Online
2016-09-05Small Teaching
2016-09-05We Still Can't Have Nice Things Together
2016-08-26What I Didn't Learn in a CS Degree
2016-08-19Ten Ways to Turn Off Learners
2016-08-14Holtzmann
2016-08-08Smooch
2016-08-04Etsy for Teaching
2016-08-04Not Much of a Conversation
2016-08-02How Well Do Developers Understand Open Source Licenses?
2016-08-02Heuristic Evaluation for Novice Programming Systems
2016-08-02Data Carpentry's New Deputy Director of Assessment
2016-08-02Seymour Papert 1928-2016
2016-07-30Library Carpentry in Toronto
2016-07-25Reopening Instructor Training
2016-07-19Lesson Incubation
2016-07-17Commonization
2016-07-12500 Lines
2016-06-10The Superbug in Education
2016-06-04Knitting
2016-05-18Looking for a Model
2016-05-10Accident or Malice
2016-04-29Summarizing Our Lesson Discussion Sessions
2016-04-29Why Teachers Don't Collaborate on Lesson Development
2016-04-24Questions, Answers, and Lessons
2016-04-10Designing a New Novice Python Lesson
2016-04-09For Some Value of 'Just'
2016-04-08Trying to Find a Form
2016-04-01Zen and the Art of Assignment Operators
2016-03-31Throttling
2016-03-21Registers
2016-03-19Continuous Installation Checking
2016-03-13In My Better World
2016-03-05Complexity vs. Subtlety
2016-02-25A Modest Proposal
2016-02-19More of a Difference Than You Realize
2016-02-17Building Software, Building Community: Lessons from the rOpenSci Project
2016-02-16Checking the Balance
2016-02-16Our New Instructor Pipeline
2016-02-15Designing Lessons Collaboratively
2016-02-07Come a Long Way, Got a Long Way to Go
2016-02-02Two Pages of Evidence
2016-01-29Elsewhere on the Web
2016-01-28A New Version of 'Lessons Learned'
2016-01-21Our Introduction to Git Has Been Published
2016-01-09What the Data Says About Novice Programming Mistakes
2016-01-09Change Strategies in STEM Education
2016-01-09Good Communities (Kinds Of)
2016-01-03A Data Programming CS1 Course at the University of Washington
2016-01-03Lessons as Lab Protocols
2015-12-28Maybe I Actually Am An Engineer
2015-12-28Plans for 2016
2015-12-26New Words Needed
2015-12-18Three Flavors of Instructor Training
2015-12-18Instructor Training Checkout Procedure
2015-12-15Educational Engineering
2015-12-11Teaching in Cambridge
2015-12-10Teaching For Loops
2015-12-06How the Year Went
2015-12-06My Literature Problems
2015-11-29Exaptation and the Future of Software Engineering
2015-11-23How I Handle Email
2015-11-20Advances
2015-11-20The Morea Framework
2015-11-16Catch and Release
2015-11-15Miscellaneous Projects
2015-10-27Visualizing Repository Activity
2015-10-23Our Stairs
2015-10-23Ten Simple Rules for Digital Data Storage
2015-10-17Journals as Repositories
2015-10-09Teaching in the Large
2015-10-01Please Welcome Our New Executive Director
2015-09-30Citation Format
2015-09-28Thinking About Teaching
2015-09-26Plus Ça Change
2015-09-16Software Engineering Practices in Science
2015-09-14Rebooting Instructor Training
2015-09-06Unwritten and Undone
2015-09-05Our Lessons Have Now Been Published
2015-09-01Better Teaching Practices
2015-08-31Three Graphs I Would Like to See
2015-08-16Prepping for the Python Lesson
2015-08-14Checking What We Teach
2015-08-13Data Carpentry Receives Grant from the Moore Foundation
2015-08-12Publishing, Metadata, and Being Ahead of the Curve
2015-07-23WiSE Workshop at UC Davis Aug 17-18
2015-07-23A Pair of Workshops
2015-07-20Git as GOTO
2015-07-20Welcome Maneesha and Katarzyna
2015-07-18Top 10 Myths about Teaching CS
2015-07-06Hiring a New Executive Director for Software Carpentry
2015-07-01Pushing Back
2015-06-29What is a Research Software Engineer?
2015-06-26Training Lessons
2015-06-24Using Jekyll for Lessons
2015-06-21Splitting the Shell Window
2015-06-21Research-Based Course Design
2015-06-19Their Names Were
2015-06-18Why I Am Not Excited About Julia
2015-06-17Get More Done in Less Time
2015-06-15Updating the Project List
2015-06-14Routinely Unique
2015-06-14Reverse Engineering CSS
2015-06-13Eroded Away
2015-06-12Warming Up for Version 5.4
2015-06-12Learning in Both Directions
2015-06-10Ursula Le Guin on Capitalism
2015-06-09People You Don't Want On Your Team
2015-06-03Teaching Biocomputing at UT
2015-05-25A Few Articles on Education
2015-05-24ICSE 2015
2015-05-22Coding for Librarians
2015-05-21Experiences with Geoscientists
2015-05-19Online Instructor Training Revisited
2015-04-25Ada Initiative's Ally Skills Workshop
2015-04-25Van Lindberg's Keynote: Say Thanks
2015-04-22The Paradox of Learning Objects
2015-04-21Learning in Both Directions
2015-04-17Library Carpentry
2015-04-17Publishing Our Lessons
2015-04-15Quality Is Free - Getting There Isn't
2015-04-13Good Enough Practices in Scientific Computing
2015-04-11A Project Inception Deck for Research Coding
2015-03-17And Now We Are Three
2015-03-15Teaching Tips
2015-03-02Adding a Contributor Covenant
2015-02-27Improving Instruction
2015-02-27Wrong Is Useful: Lessons as Packages
2015-02-12NeSI Becomes Software Carpentry Affiliate
2015-02-09Plot This
2015-02-03University of Washington Becomes Software Carpentry Partner
2015-02-02iPlant Becomes Software Carpentry Affiliate
2015-02-02Nouns and Verbs
2015-02-02Workshops in March at Lawrence Berkeley Lab
2015-02-02Lab for Data Intensive Biology at UC Davis Joins Software Carpentry as an Affiliate
2015-01-31Announcing 2015 Steering Committee
2015-01-30Interim Steering Committee Meeting: Dec 16, 2014
2015-01-24The Other Ninety Percent
2015-01-22University College London Becomes Software Carpentry Affiliate
2015-01-17Orwell, Dickens, and How We'll Know We're Done
2015-01-14Language Wars and Others
2015-01-14Practical Computing for Biologists (and Other Scientists)
2015-01-13Thanks to RStudio
2015-01-05Cathedrals, Bazaars, and In Between
2015-01-04The Future and Funding of Science
2015-01-02Books You May Enjoy
2014-12-19Interim Steering Committee Meeting: Dec 2, 2014
2014-12-18Standing for Election
2014-12-15Who Are We?
2014-12-09Templates: We Live, We Learn
2014-12-03Plans for 2015: Instructor Training
2014-12-03Our First Election
2014-12-03Software Carpentry Foundation: Governance
2014-12-03Software Carpentry Foundation: Organizational Membership
2014-12-03Plans for 2015: Workshop Organization
2014-12-03Summarizing the News
2014-12-02What About MOOCs?
2014-12-01Goalposts for the Digital Humanities
2014-11-27How to Manage Confidential Data
2014-11-25Translating Software Carpentry into Korean
2014-11-24Congratulations to Data Carpentry
2014-11-22Instructor Training Stats
2014-11-19The New Instructor Post-Assessment Questionnaire
2014-11-18Close Enough for Scientific Work
2014-11-18Interim Board Meeting: Nov 18, 2014
2014-11-11Why It Matters
2014-11-10Sarah Mei on Software Engineering Research
2014-11-07Amdahl's Law and Software Carpentry
2014-11-06You Should Read Juha Sorva's Thesis
2014-11-05Politics for Current Physicsts
2014-11-04Interim Board Meeting: Nov 4, 2014
2014-11-04A 'Joel Test' for Grassroots Programming Groups
2014-11-03Software Carpentry Foundation: FAQ
2014-10-30Why We Don't Teach Testing (Even Though We'd Like To)
2014-10-29Pandoc and Building Pages
2014-10-28Why Software Matters
2014-10-27Shuttleworth Foundation Fellowship Application
2014-10-27Lost in Space
2014-10-27British Library Courses
2014-10-23A New Lesson Template, Version 2
2014-10-22Massuni Kickstarter Has Launched
2014-10-20Beautiful Lessons
2014-10-08Announcing the Creation of the Software Carpentry Foundation
2014-10-04A New Template for Workshop Websites
2014-10-02A Better Software Engineering Course
2014-09-30Interim Board Meeting: Sep 30, 2014
2014-09-29Splitting the Repository
2014-09-28UCOSP as a Model
2014-09-26September 2014 Lab Meeting Report
2014-09-16Interim Board Meeting: Sep 16, 2014
2014-09-16Mentioned in the Paris Review
2014-09-15Stray Thoughts
2014-09-11What Sciences Are There?
2014-09-10Please Help Trans Tech
2014-09-04Building Better Teachers
2014-08-18Conversations About Teaching
2014-08-11Inessential Weirdness in Software Carpentry
2014-08-04Sustainability
2014-07-29Summer Sprint Summary
2014-07-21Using a Package Manager for Lessons and Papers
2014-07-21SciPy 2014 Talks and Lessons
2014-07-05Scientific Groupware Revisited
2014-06-27Summary of June 2014 Lab Meeting
2014-06-27Our IUSE Proposal Was Rejected
2014-06-15An Update on Our Sprint Plans
2014-06-09Planning Our Summer Sprint
2014-06-05Collected Links
2014-05-26Announcing Two More WiSE Bootcamps
2014-05-05A Multi-Site Sprint in July
2014-05-05Playing the Kazoo
2014-05-02How to Improve Instructor Training
2014-05-01Wise as Athena…
2014-04-27PyCon 2014 Videos
2014-04-25April 2014 Lab Meeting
2014-04-24Hand Made
2014-04-23Mr. Biczo Was Right
2014-04-23Import Lesson
2014-04-22GSoC Projects for 2014
2014-04-18Changing the Channel
2014-04-06Bridging the Writing Gap
2014-04-05Does Continuous Publication Require Continuous Attention?
2014-03-30Announcing NBDiff
2014-03-27Changing Our Core Curriculum
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-18Our Original Logo
2014-03-14You and Jimi Hendrix
2014-03-14A Letter from John von Neumann
2014-03-14Everything Old is New Again
2014-03-07Anatole France, Updated
2014-03-04Learn How to Teach People to Program
2014-03-04A Workshop for Librarians at PyCon
2014-03-01Software Carpentry on the CBC
2014-02-25The Open Scoop Challenge
2014-02-21From Training to Engagement
2014-02-19Lessons Learned Has Been Published
2014-02-13Our Biggest Event Ever
2014-02-09An Online Peer Instruction Tool
2014-02-09Wrapping Up Round 7 (and a Reminder About Instructor Training)
2014-01-30Workshops at the Data Science Centers
2014-01-28Workshop for Women in Science and Engineering: April 14-15 at LBL
2014-01-28Workshops at PyCon in Montreal This April
2014-01-28Teaching Online (Sort Of) in 2014
2014-01-24The Other One Per Cent
2014-01-19Why Not a MOOC?
2014-01-15From 0 to 1 to 10
2014-01-15Publishing on the Web
2014-01-14Code Review, Round 2
2014-01-07'Best Practices' Has Been Published
2014-01-07Mental Models and Vicious Circles
2014-01-07We Need More of These
2013-12-31Tools, Conversations, and Cultures
2013-12-25Oxford, One Year On
2013-12-19Andromeda's Advice
2013-12-10There Ought to Be a Badge
2013-12-05Two to the Fifth New Instructors
2013-11-17Thanks from Woods Hole
2013-11-16Creating a Forum
2013-11-16Citing Us In Your CV
2013-11-13Data Science Centers at UCB, UW, and NYU
2013-11-13Women in Tech Workshop at PyData NYC
2013-11-12Report on the PLOS/Mozilla Code Review Pilot
2013-11-10Three Old Men Drinking Tea
2013-11-02Software Carpentry's Scope
2013-10-23A Simple Exercise
2013-10-17The State of Open Science
2013-10-17You Keep Using That Word
2013-10-14Curriculum Design
2013-10-04October 2013 Lab Meeting
2013-10-04Our Biggest Bootcamp Ever at PyCon 2014
2013-09-27The Future: Today
2013-09-26Code and Data for the Social Sciences
2013-09-24To Tell You the Truth…
2013-09-24How Much Testing Is Enough?
2013-09-15PyCon 2014 Proposal
2013-09-02Introducing Citation Files
2013-08-30Open Access Button Hackathon is Sept 7-8
2013-08-25Why Open Access?
2013-08-23Two Cheers for GitHub
2013-08-23Instructor Training Statistics
2013-08-14Summary of Host Survey
2013-08-13What We Cover in Instructor Training
2013-07-28Chillin'
2013-07-26Report on the Indiana Bootcamp
2013-07-19Welcome Our New Instructors
2013-07-19The Fourteenth Anniversary
2013-07-17Biological Computing User Stories
2013-06-20Software Carpentry: Lessons Learned
2013-06-19The Twelve Bar Blues of Open Science
2013-06-13Problems with Pandoc
2013-06-13June 2013 Lab Meeting
2013-06-09Heroes
2013-06-07Is There Only Room for One Utopia?
2013-06-07Running Bootcamps
2013-05-26What Does Done Look Like?
2013-05-26What Does Victory Look Like?
2013-05-25Our Infrastructure
2013-05-24Where We Are (More or Less)
2013-05-24Browsercast
2013-05-14A Mention in Science Careers
2013-05-10Git vs. Subversion and Feedback in General
2013-05-03More Detailed Feeback from Melbourne
2013-05-03Make It Easier to (Re)use Your Data
2013-05-02A Rational Computing Process: How and Why to Fake It
2013-05-02Translucent Badges
2013-05-01Merging is the Real Revolution
2013-04-07Announcing a Bootcamp for Women in Science and Engineering
2013-03-28That's My Secret, Captain…
2013-03-24Using the IPython Notebook as a Teaching Tool
2013-03-17Testing Image Processing
2013-03-17Cumulative Enrollment
2013-03-01Washington Went Well
2013-03-01Alternative Teaching Models
2013-02-28A Software Carpentry Boot Camp for Women in Science and Engineering
2013-02-12Partnering with the SSI
2013-02-10Why Don't I Just Go Ahead And Frame That Debate In A Way That Guarantees I'll Win?
2013-02-09The Larch Environment
2013-02-08Macquarie Went Well
2013-02-03Features and Scope in Open Courseware
2013-01-30Half a Hundred
2013-01-30A Bootcamp at Mozilla
2013-01-28Novelty, Efficiency, and Trust
2013-01-22Record and Playback in the IPython Notebook
2013-01-21Why Web Literacy?
2013-01-11Teaching Commercially
2013-01-09The Last Policeman
2013-01-04Five Things
2012-12-29What Will Programming Look Like in 2020?
2012-12-23Computer Science Curricula 2013
2012-12-21Code of Conduct
2012-12-16You've Shown Me the C, Now Where's the Python?
2012-12-14Would You Like Your Programming Language to Have a Million Users?
2012-12-11Some of the Things We've Learned About Teaching Git
2012-12-09What To Work On In 2013
2012-12-08ElmCity Reaches Toronto
2012-12-06Two Solitudes Illustrated
2012-12-05Who Can Run a Software Carpentry Workshop?
2012-12-05Six Years Later
2012-12-05Sustainability
2012-11-30Good News About Software Carpentry (and More)
2012-11-27Alpha Testing Ideas for the IPython Notebook
2012-11-19The Tool (I Think) We Need To Do Peer Instruction Online
2012-11-19If Udacity is Napster, Who Will Be iTunes?
2012-11-19Who Wants To Build a Faded Example Tool for the IPython Notebook?
2012-11-16Who Wants To Write a Little Code?
2012-11-15This Is What We Do
2012-11-07UCOSP Has Grown
2012-11-05Who Decides?
2012-11-03How to Help at a Bootcamp
2012-11-01Charging and Being Charged
2012-11-01Oxford Wrap-Up (with charts!)
2012-10-31Princess Darth Vader
2012-10-28Usability Testing and Instructional Design
2012-10-27Why This Is Hard (Part Deux)
2012-10-26Counting to Five (or, A Plan for Online Tutorials and What's Wrong With It)
2012-10-25Prime Numbers, Biologists, and Data Visualization
2012-10-24An Apology to the OSC (was: Calling All [Male] Junior Aerospace Engineers)
2012-10-2325 Questions
2012-10-23Key Points
2012-10-22Excel Isn't Intrinsically Evil
2012-10-22Getting Credit
2012-10-21Why Teaching People to Program Is Hard
2012-10-20True in Software, True in Life
2012-10-17I Screwed Up (or, Why Automation Isn't Always a Good Thing)
2012-10-12Rebuilding Redux
2012-10-10Dark Matter, Public Health, and Scientific Computing
2012-10-05Convergent Evolution
2012-10-04Wanted: An Entry-Level Provenance Library
2012-10-04USV's 'Research' on Online Education: Well, That's Depressing
2012-10-03Best Practices for Scientific Computing
2012-10-01What Would You Like in an Instructor's Guide?
2012-09-30The Real Hard Work
2012-09-26Computational Thinking and Ice Floating in Bathtubs
2012-09-20Why This Stuff Is Hard To Teach
2012-09-18What's In Your Stack?
2012-09-16Systematic Curriculum Design
2012-09-16Does Your Software Look Like This?
2012-09-12Patterns Wanted
2012-09-04Free As In Pretty Much Whatever You Want
2012-09-04Final Results of Demographic Survey
2012-09-04Not Really Disjoint
2012-09-02Lifted by the Audience
2012-08-29A Problem With Badges
2012-08-24PyCon 2013 Talks I Would Like To See
2012-08-21Two Solitudes (talk)
2012-08-20What We Talk About When We Talk About Software Carpentry
2012-08-16Alpha Test of Driver's License Exam
2012-08-16Slide-Drive is Live
2012-08-15Is This Really Necessary?
2012-08-14A Question and Answer Matrix for Software Carpentry
2012-08-14Applying Pedagogical Principles in This Course
2012-08-14Interview about Software Carpentry (and Education)
2012-08-01We're Going to Be Busy
2012-07-30Record and Playback
2012-07-28Software Carpentry Needs You!
2012-07-22IPython Notebook + Towtruck + Etherpad + Slide Drive = Win
2012-07-21How Robust Is Your Programming Language?
2012-07-05Independent Assessment of the Past Six Months
2012-06-29That Seems Simple to Me
2012-06-27A Supercomputing Driver's License
2012-06-27Where We Are (June 2012 edition)
2012-06-26Handling Variant Configuration Files
2012-06-18A Busy Week (And Swag!)
2012-06-15This Week's Tutorials
2012-06-14The Past Is Here Too
2012-06-10Where the Time Goes
2012-06-08But the Greatest of These Is…
2012-06-08We Get Mail
2012-06-04Software Carpentry: The E-Book Version?
2012-05-29How to Run a Bootcamp
2012-05-27What to Read If You're Teaching Software Carpentry
2012-05-24Everything You Need to Know About Standardized Testing
2012-05-24No CT Without PL
2012-05-22She Can Ride Her Bike!
2012-05-22Citing Versions
2012-05-20What's Wrong With All This?
2012-05-18The Most Important Scientific Result Published in the Last Year
2012-05-14Why We Built It
2012-05-12Feedback from Michigan State
2012-05-11Teach Teachers What They Use, Teach Kids Where They Are
2012-05-10Fish and Bugs
2012-04-25Slide Drive
2012-04-18Behind the Scenes (or, the Ethics of Cultivating Discontent)
2012-04-17In Search of Prior Arguments
2012-04-17GitHub for Education
2012-04-14We're Neutral (but Not Really)
2012-04-11Lives Lived
2012-04-10Straw Man for Web Programming
2012-04-06On Crossing Australia
2012-04-06Titus Brown Finds a Theme
2012-04-03A Four-Day Curriculum
2012-04-03Maybe That's Why
2012-04-01What to Teach Researchers About the Web
2012-04-01Sending Email Back in Time
2012-03-30Maintaining Momentum
2012-03-30What We Teach in Two Days
2012-03-22Two Questions After the Audrey Test
2012-03-18The Dark Matter of Computational Science
2012-03-18Informed Choice and the Audrey Test
2012-03-16Thank You, Enthought
2012-03-16Wrapping Up the STScI Course
2012-03-15First Homework for Indiana Students (and a few from Ontario)
2012-03-14How We're Doing
2012-03-14Where Next for the Next-Gen Course (and Software Carpentry)?
2012-03-10An Observation
2012-03-05Help Us Write Assessment Questions
2012-03-05Programs as Experimental Apparatus
2012-03-04Performance Curves, Curriculum Design, and Trust
2012-03-03A Week of Retroactive Accountability
2012-03-01Why I Think 'YouTube for Textbooks' is a Bad Idea
2012-02-29Why 'Do Not Track' Matters
2012-02-29Inbound and Outbound for a Day
2012-02-27Frustration (continued)
2012-02-27Badges (Finalized)
2012-02-24Fourth (or Sixth) Online Tutorial
2012-02-22Watch Me: Trial Run
2012-02-22Converting PowerPoint to SVG: Help Needed
2012-02-22Granules of Research
2012-02-21Why Not to Use Python
2012-02-21Assessment Redux
2012-02-19A Flash (well, MP4) from the Past
2012-02-16How They See Us, Part N
2012-02-15And Speaking of New…
2012-02-14Stack Underflow?
2012-02-13Formatting Revisited
2012-02-12Pre-Workshop Questionnaire
2012-02-10Audrey Watters on Software Carpentry
2012-02-09Comparing Software Carpentry to CS Principles
2012-02-03First Online Tutorial
2012-02-02Bullshit, Appropriation, and Technology in Education
2012-02-01Re-doing the Three-Minute Pitch
2012-02-01On Algorithmic Thinking
2012-01-31I Hope Someone Has Already Built This
2012-01-29Terminology
2012-01-29A Browser-Based Programming Tool That's Better Than Many Desktop Tools
2012-01-27Work As Though You Lived in the Early Days of a Better Nation
2012-01-26Never Mind the Content, What About the Format?
2012-01-26Well, That Was Weird
2012-01-25The Big Picture
2012-01-24Badging
2012-01-23Revising the Curriculum
2012-01-23Welcome to Gravenhurst
2012-01-20The First Bootcamp of 2012
2012-01-17Our First Challenges
2012-01-15Why Is This Hard?
2012-01-14So, Greg, What Are You Up To These Days?
2012-01-11Sloan Foundation Grant to Software Carpentry and Mozilla
2012-01-07I Have a Cunning Plan (or, Making Money by Doing Good)
2012-01-04Settings Our Sights a Little Bit Lower
2011-12-31The Fire Last Time
2011-12-31Some Responses to Some Comments
2011-12-30Fork, Merge, and Share
2011-12-24What Success Looks Like Five Years Out
2011-12-24Organizing Instruction and Study to Improve Student Learning
2011-12-21Well, I Think the Gray Makes Me Look Distinguished
2011-12-20What I've Learned So Far
2011-12-20It Just Keeps On Hurting
2011-12-19Na Shledanou
2011-12-16PowerPoint + Visio, but in Javascript?
2011-12-07How to Teach Webcraft and Programming to Free-Range Students
2011-12-06Lest We Forget
2011-12-02Iron Triangles Are Great—Everyone Should Have One
2011-12-01Direct Reports and Self-Directed Learning
2011-11-30Where's My Shell?
2011-11-30Good News and Bad News
2011-11-29Three Short Thoughts
2011-11-29Rewind
2011-11-27Day 27 of Movember 2011
2011-11-18Show Me the Data
2011-11-18Quantifying Installation Costs
2011-11-14Two Steps Forward, Two Steps Back?
2011-11-14Here's What I've Learned So Far
2011-11-14Surviving the Tsunami
2011-11-10Vulgarity Isn't Honesty (or, Who's Welcome Here?)
2011-11-08Happy Birthday
2011-11-08The Ladder of Abstraction and the Future of Online Teaching
2011-11-08The Best vs. the Good
2011-11-01Well That Certainly Got Some Attention
2011-10-31D is for Digital
2011-10-24Demand Fair Play for Fauja Singh
2011-10-22Research Without Walls
2011-10-20My Aspect Ratio Seems to Have Changed
2011-10-19American Scientist Article on Empirical Studies of Software Engineering
2011-10-14The Science Code Manifesto's Five C's
2011-10-11Running Partners
2011-10-06Insufficient Purity Considered Harmful
2011-10-05D Is For Digital
2011-09-27A Buddhist For Three Weeks
2011-09-22We Will Soon Have News
2011-09-22Plus Ca Change…
2011-09-20If Only This Thing Had An Engine!
2011-09-20I'm Not Normally Lost for Words
2011-09-19Past and Future
2011-09-17The Simplest Web That Could Possibly Work
2011-09-16Extensible Programming: A New Hope
2011-09-05Where is the Puck Going to Be?
2011-09-02Teaching Security to Scientists
2011-09-01Renting Cycles Has Never Been Easier
2011-08-25Three Paradigms (or, Why LLC Should Teach Javascript)
2011-08-25AOSA Volume 2 Roster
2011-08-24And We'll Change The World
2011-08-23Jack Layton: 1950-2011
2011-08-22Code Coverage in Lernanta
2011-08-21Today Was a Good Day
2011-08-19You're Going to Show This to People When I'm Grown Up, Aren't You?
2011-08-18Spelling, Fairness, and JavaScript
2011-08-08Introducing Programming a Different Way
2011-08-04Computing in Physics 101: What We're Doing Wrong
2011-07-29Team!
2011-07-29Cheese!
2011-07-24My OSCON'11 Hall of Fame
2011-07-22Software Carpentry in HPCWire
2011-07-20Wait, Not That Bit!
2011-07-15The Finger Is Not The Test
2011-07-13Learning Lernanta
2011-07-12Grown-Up Languages
2011-07-11Architecture of Open Source Applications Webinars July 13 and 20
2011-07-10Stanford Course Went Well
2011-07-09Home Again
2011-07-01Mentioned in Nature Methods
2011-06-29It Will Never Work in Theory
2011-06-26Architecture Stats
2011-06-20Doing the Math
2011-06-15Mostly Pleased, But…
2011-06-14A New Look
2011-06-13It Shouldn't Still Hurt This Much
2011-06-12If You're Going to Teach an Undergrad Intro to Software Engineering…
2011-06-10Hermes FTW
2011-06-07Practical Computing for Everyone (not just biologists)
2011-06-07Blueprints Are Not Architecture
2011-06-04Thanks, Google!
2011-06-04Programming for Scientists at Newcastle University: June 20, 2011
2011-06-03Refactoring Yahoo! Pipes
2011-06-02T Plus 10 Days
2011-05-3185K
2011-05-29Coming Up Next (We Hope)
2011-05-29My New Job
2011-05-28What's There Instead
2011-05-27It's Not Theory vs. Practice, It's Two Solitudes
2011-05-26How We Got Here, and Where We're Going
2011-05-20How Do Actual Software Engineers Perceive Software Engineering Research?
2011-05-18Catalog Models Like Views and Controllers
2011-05-16Greg's New Gig
2011-05-14More Interested in the Asides
2011-04-28Just a Couple of Weeks Away
2011-04-26Competence
2011-04-25Sunday
2011-04-18Holding Up a Mirror
2011-04-08Table of Contents
2011-04-06It's Complicated
2011-03-31Harder Than It Should Be
2011-03-30Practical Computing for Scientists at Stanford
2011-03-24A Better Way to Teach Programming to Scientists
2011-03-22I'd Settle for 0.1%
2011-03-20The Kind of Job I Want
2011-03-1812 Days Ago
2011-03-16Graph Layout, Models vs. Views, and Computational Thinking
2011-03-15A Season of Changes
2011-03-12Dying Breeds
2011-03-11Musing About Reorganization
2011-03-09Who's Cribbing Who?
2011-03-07Literate Programming
2011-03-01Tuple Spaces (or, Good Ideas Don't Always Win)
2011-02-25We Got a Mention in Comm. ACM
2011-02-24An Easy Place to Start: Systems Programming
2011-02-22What Better Looks Like
2011-02-15Top Ten Why Nots
2011-02-11Ground Up, in No Particular Order
2011-02-09Let's Talk
2011-01-28StreetKnit on Canada AM
2011-01-27Bootcamp
2011-01-26Thinking Like the Web
2011-01-26Software Carpentry Sprint in July
2011-01-23A Week of Public Accountability
2011-01-21Scientists Aren't Stupid: Software Is
2011-01-20How to Cite Software Carpentry
2011-01-20MIT Rethinking OpenCourseWare
2011-01-19Making System Administrators' Lives Easier
2011-01-14The Hacker Within
2011-01-10McConnell Responds to Bossavit
2011-01-10Software Carpentry in One Picture and Five Words
2011-01-06Gibson's Law in the Small
2011-01-06What I Learned From Software Carpentry
2011-01-05Cognitive Dissonance
2010-12-31Software Carpentry Bootcamp Jan 12-14 in Madison
2010-12-29Tagging and Debugging
2010-12-29Instead of PowerPoint
2010-12-28Falk and Dierking's 95% Solution
2010-12-27It's a Shame People Don't Get Credit
2010-12-27Open Research Computation
2010-12-27Elimination
2010-12-26Local Subversion Repositories
2010-12-22So How'd I Do?
2010-12-20I Still Read
2010-12-14Presents for the Holidays
2010-12-13Blinkered, Not Graceful
2010-12-06Pins, Balls, and Arbitrary Decisions
2010-12-02Programmer Competency Matrix
2010-12-02Prerequisites (or, When to Say No)
2010-12-02Dr. Tae is Full of Crap
2010-11-30We're Number Six!
2010-11-30End of an Era
2010-11-22Michael Feathers on 'Making Software'
2010-11-16Ratios and Rework
2010-11-12More Good Science
2010-11-09On My Way Home
2010-10-30Dubois on Maintaining Correctness
2010-10-28Feedback at UKMO
2010-10-20Give The Patrons What They Want
2010-10-20Unfortunately Rather Dry
2010-10-19Peter Norvig on Python
2010-10-18They're All Small Devices Now
2010-10-17Ratings Revised
2010-10-14Five Rules for Computational Scientists
2010-10-14Dexy
2010-10-14Nature Article on Scientific Programming
2010-10-08'Making Software' Covers
2010-10-08Yes, We *Can* Design Languages for Human Beings
2010-10-05How Long Is This MP4?
2010-10-04UCOSP: That's Me in the Middle
2010-10-04Total Donations
2010-09-30Tracking Utility and Impact
2010-09-27Knitters Needed!
2010-09-23Software Carpentry at UCSF
2010-09-18The Stupid, It Still Burns
2010-09-17Today
2010-09-15Testing Scientific Software
2010-09-13Will America's Universities Go The Way Of Its Car Companies?
2010-09-12It Shouldn't Hurt This Much
2010-09-05Games I'll Never Make
2010-09-03In Praise of PowerPoint (sort of)
2010-08-26Another Update on What You Want
2010-08-25Three Rules for Supervising Student Programming Projects
2010-08-16Students and Code Review
2010-08-1643% Independent
2010-08-12Interview with Cameron Neylon
2010-08-06Congratulations to Jorge Aranda
2010-08-05Python in CS1 is Growing Fast
2010-08-05Software Carpentry for Audio and Music Researchers
2010-08-05An Answer That Most Students Won't Understand
2010-08-04I'm Still Sort of a Professor
2010-08-03Open Source, Open Science in 1999
2010-07-31Interview with Davor Cubranic
2010-07-29Survey Update
2010-07-28Mark Guzdial on Software Carpentry
2010-07-22An Idea Whose Time Is Long Overdue
2010-07-21Popular, Fast, or Usable: Pick One
2010-07-20Interview with The Hackers Within
2010-07-20A Note on Tools
2010-07-20Closed Feels Weirder Every Day
2010-07-19BP Buying Up Scientists
2010-07-18An Interview with Hans Petter Langtangen
2010-07-16Making Software Now Available on Rough Cuts
2010-07-15Survey Results
2010-07-13Interview: Andrew Lumsdaine of Indiana University
2010-07-10HPC and Programmability
2010-07-08Interview: SciNet's Daniel Gruner
2010-07-07It's Gone to Production
2010-07-06That's, Uh, Pretty Ambitious
2010-06-29The Violas of Programming
2010-06-24A Quote from Marian Petre
2010-06-24SIAM News Article About Software Carpentry
2010-06-24Chas Has Code!
2010-06-24And the Winner Is…
2010-06-21Interview with Microsoft's David Rich
2010-06-18People You Don't Want On Your Team
2010-06-16Is Live Coding Worth It?
2010-06-16A Voice from the Back of the Room
2010-06-14Interview: Mark Plumbley at Queen Mary University of London
2010-06-12The Cowichan Problems
2010-06-11Counting Things
2010-06-11Thought for the Day
2010-06-11Interview: SHARCNET's Hugh Couchman
2010-06-10Interview: Jim Graham of Scimatic
2010-06-07The Big Picture (version 2)
2010-06-07A Concept Map for Software Carpentry
2010-06-04Concept Map
2010-05-27A Few Things You May Not Have Known About Andrew Wakefield
2010-05-27I'm Not a Lawyer…
2010-05-22The Practice of Software Development
2010-05-20The Architecture of Open Source Applications
2010-05-14Why Most Scientists Don't Like Computers
2010-05-07World Record Knitting Attempt Saturday June 12
2010-05-06Articles of Faith
2010-05-04Day 1: Shuffling Sticky Notes Around
2010-05-04Day 2: More Sticky Notes
2010-05-03Thanks For All the Pitches, Too
2010-05-02T Minus One
2010-04-26GSoC 2010
2010-04-25…And Thanks For All The Fish
2010-04-21Ill-Informed Commentary Considered Harmful
2010-04-16File Sharing for Scientists
2010-04-15Scimatic Sponsorship
2010-04-12More on Instructional Design
2010-04-12Perpetuating Imbalance?
2010-04-12The Chilling Effect of the GPL
2010-04-12Professors *Can* Teach Open Source
2010-04-12On the Failure of Inquiry-Based Teaching
2010-04-09PSF Membership
2010-04-08Platforms
2010-04-08Software Carpentry for Economists in Mannheim This Autumn
2010-04-04Feedback and Boundaries
2010-04-03Can You Name the Programming Language?
2010-04-01Simon Singh Wins (and So Does Science)
2010-04-01Models To Imitate
2010-03-31Happy Birthday, Madeleine
2010-03-30Formats
2010-03-30Why Do Students Cheat?
2010-03-29What's Not on the Reading List
2010-03-26Online Delivery
2010-03-26Instructional Design
2010-03-25Software Carpentry Version 4 is a Go!
2010-03-24Ada Lovelace Day
2010-03-22Robin Milner: 1934-2010
2010-03-22Did I Pass?
2010-03-18Wise Daughters and Winter's End
2010-03-18Testing With Random Data
2010-03-18What Do You See?
2010-03-17Natural Language Wins (Kind Of)
2010-03-17You Never Want to Be on the Other Side of the Table From This Guy
2010-03-15Currently Juggling
2010-03-13Bottom-Up, Top-Down, and Back to the Future
2010-03-13Something That Won't Be On The Final Exam
2010-03-11How Much Of This Should Scientists Understand?
2010-03-11What Would You Do For Five Dollars?
2010-03-11Code Review Walkthrough
2010-03-11The Past Is Still Here Too, and It Too Is Unevenly Distributed
2010-03-08Offer, Then Ask
2010-03-04The Tool I Want
2010-03-03More on Computational Thinking
2010-03-02What We've Learned
2010-03-01Universe of Stone
2010-02-28Winter!
2010-02-28Panton Principles
2010-02-24Kafka and American Airlines
2010-02-21PyCon 2010
2010-02-17Rory Tulk on Software Testing
2010-02-16Basie 0.6 Has Been Released
2010-02-15So What Should I Say At PyCon?
2010-02-09TestDrive
2010-02-03This Morning's Conversation With My Cable Service Provider
2010-02-03Dumber Is Productiver
2010-02-02Before We Get Too Excited About Online Education…
2010-02-02Engineering Thinking
2010-02-01Two Steps Up, One Step Back
2010-01-31I Don't Care Until I Can Check
2010-01-25CUSEC 2010
2010-01-20Someone Leaves School, Someone Comes to School
2010-01-20Punctuate! Punctuate! Punctuate!
2010-01-13Podcast with Jon Udell
2010-01-13Whatcha Gonna Do When They Come For You?
2010-01-12Quiet Time
2010-01-12Google and China
2010-01-10More Public Embarrassment About Workflows
2010-01-10Code vs. Messages
2010-01-10How We Got Here, and Where We Are
2010-01-07Projects This Term
2010-01-07The Design of Fossil
2010-01-07Changing Gears
2010-01-07Aranda on SEMAT
2009-12-30Holiday Reading
2009-12-30Osmosis is Just a Fancy Name for Failure
2009-12-30Another Neologism from Jon Udell
2009-12-27Dudley and Butte on Software Skills
2009-12-27Taking Notes
2009-12-23Ottawa Is Only #3
2009-12-23Polymorphism
2009-12-22Fossil + NoSQL ?
2009-12-18Double Standards
2009-12-13If You Look Closely, You'll Find Them Everywhere
2009-12-11A Database And…
2009-12-11Reflectus
2009-12-09Cartagena
2009-12-07Wrapping Up
2009-12-01Minority Rule
2009-11-29Nothing to See Here, Folks---Move Along, Move Along
2009-11-26Caesar's Wife
2009-11-26Feedback on the Python Book
2009-11-24Tutorials Start This Week
2009-11-24Greatest Hits
2009-11-18Special Issue of Computing in Science and Engineering
2009-11-16Bend It 'Til It Breaks
2009-11-16When I Said 'The Last Twenty Years…'
2009-11-13Packaging
2009-11-08Green Web Hosting
2009-11-06Misa Sakamoto on DB2 Technology Explorer
2009-11-05Toronto Innovations Showcase
2009-11-05The Greatest Failing of High School Science
2009-11-02There's No Such Thing As KeepItGoingCamp
2009-11-01Never Mind the Concurrency, What About the Math?
2009-10-29Organizing a Tech Event?
2009-10-25Elsewhere
2009-10-23Pictures in Pages
2009-10-21Sometimes You Can't Even Manage What You *Can* Measure
2009-10-21Should Modeling Be Part of This Course?
2009-10-21Creating New Niches
2009-10-17Take Pity On Your Poor Boss
2009-10-17My Lack of Artistic Ability is a Real Handicap
2009-10-17Lunchbox Games
2009-10-17Meanwhile…
2009-10-16Links and Presentations
2009-10-09Licensure
2009-10-06Pie Charts!
2009-10-06Government 2.0 Project Selection
2009-10-06Comments on Course Reorganization
2009-10-06Asking Yourself Hard Questions
2009-10-05The Hacker Within
2009-10-05Portals Paper Online
2009-10-04Pure Genius
2009-09-29To Read Is To Learn
2009-09-29A Strange Obsession
2009-09-29Good Day, Knitters
2009-09-26Why Don't Students Like School?
2009-09-24Presentation, Presentation, Presentation
2009-09-24Top Up vs. Bottom Down
2009-09-23Applications and Data Sets
2009-09-22Grant Proposal
2009-09-21Want to Go to MIT?
2009-09-21Habit Forming
2009-09-21Another Reason to Care About Provenance
2009-09-16Teaching Computational Thinking on the Web in Just Two Hours
2009-09-15Partial Outline of New Version of Course
2009-09-10New Book Project
2009-09-08Why I Teach (Part 3)
2009-09-06My Other Identities
2009-09-01My Mac Knows That My Thoughts Are Straying
2009-08-30Congratulations to the MarkUs Team
2009-08-25What Processes Do Small Software Teams Use?
2009-08-25Our Experiences Switching to Python
2009-08-25Announcing Basie Version 0.5
2009-08-24Science and JoVE
2009-08-24Wrapping Up the Summer
2009-08-24EveryBlock and Toronto
2009-08-24Splitting Scheme
2009-08-23The Delight Is In The Details, Too
2009-08-21The Big Picture
2009-08-21City Data Projects
2009-08-21Tools for Teams
2009-08-2030 and Counting
2009-08-15Search-Based Software Engineering
2009-08-15Evaluating the Usability of Programming Languages
2009-08-15Anonymizing Student Data
2009-08-02Next Steps
2009-07-31Fall Projects Redux
2009-07-31Day[-2]
2009-07-31A Good Afternoon
2009-07-30Another Good Day
2009-07-29DemoCamp 21
2009-07-29Every Day Is a Big Day…
2009-07-28Day 11 and Day 12
2009-07-27A Challenge for Modellers
2009-07-26Martin Fenner on SciBarCamp
2009-07-26We're Not Even Listed
2009-07-24Day 10 Done - and With It, Week 2
2009-07-24Day 9
2009-07-22Day 7: Lots More Objects
2009-07-22Day 8: Getting It Right
2009-07-21Day 6: Theory and Practice
2009-07-19Day 5
2009-07-17Day 4
2009-07-16Day 3
2009-07-16We're *Supposed* to Be a Little Old Fashioned
2009-07-15Day 2
2009-07-15Science 2.0 talks in Toronto July 29
2009-07-13Aaaand They're Off!
2009-07-12Why I Miss Command-Line Programming
2009-07-12Software Carpentry Starts Tomorrow
2009-06-29Your Brain Thinks Tools Are Part of Your Body
2009-06-29Dru Lavigne on Women in Open Source
2009-06-29Who's Getting My Business
2009-06-24Buckaroo Banzai vs. Search & Replace
2009-06-24At Least It's Not Exponential
2009-06-22Off We Go…
2009-06-21Cathedrals and Limits
2009-06-18Convocation 2009
2009-06-17Subsistence Farmers With Cellphones
2009-06-15Sightings
2009-06-15Crunch Mode and Burnout
2009-06-08Maybe AJAX Can Actually *Solve* a Problem
2009-06-04What (Some Of) My Students Are Up To
2009-06-01Big Code vs. Science 2.0
2009-06-01Guido van Rossum reviews 'Practical Programming'
2009-06-01Leapfrogged Again
2009-06-01Video Abstracts
2009-05-14OCR for Line Drawings?
2009-05-13A Package Just Arrived
2009-05-12Error Handling
2009-05-12Suitable for High School Students
2009-05-12Beautiful Testing
2009-05-07A Fresh Crop of Summer Interns
2009-05-06Project Totem Pole
2009-05-06Spot the Code Sprint
2009-05-05Opening Up Toronto's Data
2009-05-05'Practical Programming' Is Available
2009-05-04RailsBridge
2009-05-01The Week in Review
2009-05-01Quack Remedies Spread Faster *Because* They Don't Work
2009-05-01Congratulations to Zuzel Vera Pacheco
2009-04-29Without the Hot Air
2009-04-23The Penalty For Dishonesty Is Often Borne By Others
2009-04-23What Supervisors Need To Know
2009-04-23We Don't Import Punch Cards Any More
2009-04-17Zero for Six
2009-04-16Current Reading Queue
2009-04-15Getting Ready to Wag the Dog
2009-04-15Database of Empirical Software Engineering Publications
2009-04-14Jon Udell on Computational Thinking
2009-04-09GSoC Stats: The Last 10% Is The Hardest
2009-04-01Software Carpentry in Toronto July 13-31 2009
2009-03-30User Stories
2009-03-29End-of-Term Demos on Tuesday April 14
2009-03-25Inference for R
2009-03-25Seven Signs of Bogus Science
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-22What I'd Like To Do Next
2009-03-19Keywords Speak Louder Than Words
2009-03-18Maciej Cegłowski on Meltdowns
2009-03-15Russian Version of Beautiful Code
2009-03-15Research in Action Showcase on March 24, 2009
2009-03-11Barbara Liskov Wins Turing Award
2009-03-10Things I'd Like to Accomplish (Version 2)
2009-03-08I Wish I'd Thought of That
2009-03-02Open Science and Autism's False Prophets
2009-02-27A Good Week for Weird Fish
2009-02-24Transparent Head, Tubular Eyes
2009-02-23Das Kapital, Computational Thinking, and Productivity
2009-02-22Bugs Everywhere
2009-02-21Code Sprint Wrap-Up
2009-02-19Reading Week Code Sprint
2009-02-18Papers
2009-02-18Computer Supported Collaborative Science
2009-02-15Reading Update
2009-02-12Jason Cohen Thinks Aloud
2009-02-12Maybe Some People Can't Afford Free
2009-02-11History Is Written By The Victors
2009-02-11Thanks, Guys
2009-02-02Theory vs. Practice: Shall E'er the Twain Meet?
2009-02-01Once More Unto the REST
2009-01-28Congratulations to Samira, Jeremy, and Carolyn
2009-01-26Virtualization vs. Web Services
2009-01-26Where My Time Is Going
2009-01-23A New Kind of Big Science
2009-01-21Text Is Still King
2009-01-21Intellectual Infidelity
2009-01-17Graduate Students
2009-01-15Update on This Term's Projects
2009-01-14Beautiful Architecture
2009-01-13When Is A Book Finished?
2009-01-02This Term's Projects
2008-12-31Mocked by a Bar Chart
2008-12-31Time to Freshen It Up
2008-12-31Ontario Energy Savings: Fail
2008-12-29Jumping Genes
2008-12-26How Do You Determine the Health of a Software Development Project?
2008-12-26Things I'd Like To Finish In the Next 489 Days
2008-12-24Diagnosing Home Network Misconfigurations Using Shared Knowledge
2008-12-24A Healthy Dose of Scepticism
2008-12-23Post-Mortem on This Term's Work
2008-12-18We Got Boinged!
2008-12-18Hacking the Rainforest
2008-12-18Carl Zimmer, Faces, and Letter Writing Campaigns
2008-12-18Entry-Level Code Review Procedures?
2008-12-18uTest's Bug Battle
2008-12-18Beautiful Testing
2008-12-18How Far We Got
2008-12-07How Scientists Manage Code
2008-12-04Python 3.0 is Out (But We're Not Using It Yet)
2008-12-03Thanks, Blake
2008-12-03Today Was a Good Day
2008-11-30Igor, Connect the Electrodes!
2008-11-24StreetKnit is Back!
2008-11-20Happy 25th Birthday, TurboPascal
2008-11-18Need Some Help?
2008-11-17Maybe If I Write About Them, They'll Go Away
2008-11-15The Family Has Landed
2008-11-05I Honestly Didn't Think I'd Live to See the Day
2008-10-31It's Not You, It's Me
2008-10-21The Thesis Hat
2008-10-19Two Others
2008-10-16And Search Returns…?
2008-10-10So Far Behind
2008-10-05Another Check for Amnesty International
2008-10-05No, It Isn't Photoshopped
2008-09-19Another Use for Extensible Programming
2008-09-18If It's on the Web…
2008-09-18Risk Budget
2008-09-16Comments in JSON?
2008-09-16Life? Don't Talk to Me About Life…
2008-09-15REST APIs for Batch Operations
2008-09-11Science in the 21st Century
2008-09-10Student Projects This Term
2008-09-08Start of Another Academic Year
2008-09-04Science 2.0: the Future of Online Tools for Scientists
2008-08-22Married
2008-08-12Wrapping Up
2008-08-07Managing Meetings
2008-08-07Putting a Face to a Name
2008-08-06Tony, Dan, LanSchool, and Doing the Right Thing
2008-08-02I'd Really Like To Draw A Picture…
2008-08-02Where Design Fits In
2008-08-01They're Breeding Like Rabbits
2008-07-30Please Pay For Your Copy of Beautiful Code
2008-07-28Home Stretch for Students
2008-07-28Next Lecture?
2008-07-28This Week in Greg
2008-07-25Name This Book!
2008-07-24Fall Courses
2008-07-23Badge of Reproducibility
2008-07-23Quick Quiz to Measure What Scientists Know
2008-07-21It Wasn't *Meant* To Be Funny, But…
2008-07-21Mail Traffic Over Time
2008-07-20DrProject Status Update
2008-07-19Just Another Saturday
2008-07-18A Distributed Single Point of Failure
2008-07-17Nick's Last Day
2008-07-17Up On Stage
2008-07-16A Little Warm…
2008-07-16We Should Have Built This For Them
2008-07-14Paraphrase
2008-07-09Yes, Our Students Are Still Busy
2008-07-07Consulting Course Fall 2008 Needs You!
2008-07-06Traceability in Agile Projects
2008-07-05Why We're Not Switching to Git
2008-07-03But Dad…
2008-07-02Current Projects
2008-07-01Midsummer Resolution
2008-06-27As We Head Into the Holiday Weekend…
2008-06-25Another DrProject Design Question
2008-06-23Navigating IRC Logs, Nested Forms, Et Cetera
2008-06-18Where My Grad Students Are
2008-06-17New Pics
2008-06-15And One That Failed
2008-06-15Another Sample Proposal
2008-06-14CBC Podcasts
2008-06-13Another Week of Progress
2008-06-13What a Proposal Looks Like
2008-06-12Where the Time Goes
2008-06-10Deleting Roles
2008-06-09Directions
2008-06-06Faking Results
2008-06-04A Surprisingly Small Piece of Paper
2008-06-03Three Weeks and Change
2008-06-01Three Weeks In
2008-05-25Interviewed by Jon Udell
2008-05-23For Each, Replace
2008-05-21Why Don't We Do This?
2008-05-16I Will Buy You Lunch…
2008-05-16But I Was Gone Less than 48 Hours!
2008-05-15Another DrProject Design Question
2008-05-14What I'm Reading These Days
2008-05-12Aaaand They're Off!
2008-05-09Where Are They Now?
2008-05-04Summer Indulgences
2008-05-04StreetKnit in the News
2008-05-04Programming for Historians
2008-05-03Stats on Founders
2008-05-03'…But Nobody To Know What It Is'
2008-05-03We're Big In Japan
2008-05-02A Question for the Class
2008-05-02Code Review Coincidences
2008-05-01Joel Is Feeling Grumpy Today
2008-05-01MathWorks Visit
2008-04-29An Interview with Donald Knuth
2008-04-28'I Would Never Have Believed…'
2008-04-25Design Never Ends
2008-04-25DrProject 3.0 Schema
2008-04-21Crowded House
2008-04-21Someone's a Fan
2008-04-18Zis Is Cursed, Zat Is Cursed
2008-04-18Consulting Course Videos
2008-04-17Introducing Stack Overflow
2008-04-15Pogy Travel Crib
2008-04-15Integration Irony
2008-04-11Feature List
2008-04-11Alternatives to DrProject
2008-04-10Three Studies (Maybe Four)
2008-04-09Global Intelligence
2008-04-08Our Own Little DemoCamplet
2008-04-07More DemoCamps
2008-04-07Always Outnumbered, Always Outgunned
2008-04-03Real World Data Causes Perl
2008-04-02Summer Plans for Software Carpentry
2008-03-31Meet the New Flaw
2008-03-30Old Dogs Are Suspicious of New Tricks
2008-03-28An Unexpected Result
2008-03-27Beautiful Code Panel
2008-03-26DemoCamp in the News
2008-03-26Nice Quote
2008-03-24First Steps
2008-03-19StreetKnit in the Press Again
2008-03-17The Struggles of New Graduates
2008-03-15SIGCSE Day 3
2008-03-14SIGCSE Day 2
2008-03-13SIGCSE Day 1
2008-03-12On My Way To SIGCSE'08
2008-03-10New Sins
2008-03-08Why Developers Don't Do Code Reviews
2008-03-06LearnHub Launches with Software Carpentry Front and Center
2008-03-06Journal of Visualized Experiments
2008-03-06A Student-Oriented Software Development Process
2008-03-06Conservation of Happiness
2008-03-06Beautiful Code Wins Jolt Award
2008-03-04Bummer
2008-03-04Beautiful Code Panel at SD West
2008-03-04Writing Is a Drug
2008-02-27Making the World a Better Place
2008-02-26Scientific Groupware Revisited
2008-02-21Teaching Python at the NRC
2008-02-20Where The Puck Is Going To Be (Part 91)
2008-02-20The Dog's Not Barking Again
2008-02-19Six Books for a Canadian Winter
2008-02-19February Code Sprint: Day 1
2008-02-17Graduate Directions
2008-02-15Rationalizing the Admin Interface
2008-02-15Building Filters
2008-02-06Congratulations to David Crow
2008-02-06The First Check
2008-02-04You're Not Allowed To Use What You Learn In This Book
2008-02-02Generating Elegance
2008-01-28First Figure Out What You Want to Change
2008-01-21I Wasn't At CUSEC This Year…
2008-01-17Where My Life Goes
2008-01-15Structural Programming and Rational Metaprogramming
2008-01-12What 'Community' Actually Means
2008-01-12And Speaking of Community…
2008-01-09I've Been Amazoned
2008-01-08Apparently We're Doing Well
2008-01-08Where the Puck Is, Part 5
2008-01-06Code Sprint Day 3
2008-01-05Code Sprint Day 2
2008-01-04Code Sprint Day 1
2008-01-02One, Two, Three
2008-01-01Bubbles
2008-01-01Best of 2007
2007-12-31Grassroots Extensibility
2007-12-31To Do
2007-12-20Beautiful Code Nominated for Jolt Award
2007-12-16Count 'Em
2007-12-15Prepping for Next Term
2007-12-15A Meme I'd Like To Crush
2007-12-14ICSE Workshop List
2007-12-13Welcome Caden to the World
2007-12-13Good News About DrProject
2007-12-09Switching to Zep
2007-12-09Python Supercomputing Statistics
2007-12-04DemoCamp 16: two w00ts
2007-11-29Falling Further Behind
2007-11-28Great Balls Of…Yarn
2007-11-22We Buy It For The Interviews, Honest
2007-11-22StreetKnit in the Star
2007-11-22On Being Bumped Up
2007-11-20…But With A Whimper
2007-11-16Sometimes I Don't Like Our Species Very Much
2007-11-10Why It's Worthwhile
2007-11-10We're Number Ten!
2007-11-08File Under 'Still Not Getting It'
2007-11-06Measurement
2007-10-30Encouraging Collaboration
2007-10-26The Burning Man of HPC
2007-10-25Today Was More Fun
2007-10-24Wrong Again
2007-10-17DemoCamp 15 Lineup
2007-10-17More Fun Than Code
2007-10-17Country Codes of the World
2007-10-17Beautiful Code Sales
2007-10-12A Useful Quotation
2007-10-12Gini Coefficients as a Measure of Team Effort
2007-10-10DrProject Funding Proposal Rejected
2007-10-10Citizen Lab Guide to Bypassing Censorship
2007-10-02Doomed to Repeat It
2007-09-26The Best Part of My Job
2007-09-25Another Sighting of Software Carpentry
2007-09-25Bugs in DrProject
2007-09-18What I Read
2007-09-17Tweaking
2007-09-13The Best Electoral Offer Yet
2007-09-13Ontario Votes on Voting
2007-09-12Jon Udell has the Best Job in the World
2007-09-10Russian and Korean
2007-09-10Randy Pausch
2007-09-02Managing, Reviewing, and RESTing
2007-09-01Short Stories Are a Form of Their Own
2007-08-31Summer 2007 Post Mortem
2007-08-31Back Yard Beautiful
2007-08-29More Beautiful Code News
2007-08-29How and Why We Draw Code
2007-08-29The Sunlight Foundation and Hosted Lifebits
2007-08-29Diagram of Relationships Between Programming Paradigms
2007-08-2949X Projects in the Wild
2007-08-09Help Help—My Soil Is Dry and I Can't Germinate
2007-08-07How I'm Doing
2007-08-07A Review and an Explanation
2007-08-03Michael Feathers on Subtext
2007-08-02Why I Supervise
2007-08-01Our 15 Minutes of Fame
2007-08-01Daaaahling
2007-08-01JBoss vs. Django and What IronRuby Really Means
2007-07-31How Not to Collaborate
2007-07-30Udell on Beautiful Code (and 'narrating the work')
2007-07-30YSlow and the Browser as IDE
2007-07-28To Do for Fall 2007
2007-07-28Let Me See…Is It Control-Shift-J?
2007-07-27Madeleine, Sadie, and Greg
2007-07-25Schema Changes
2007-07-18Number One in Programming
2007-07-16Attacked by Hippos
2007-07-14ITiCSE'07
2007-07-12User Interface Jam Session
2007-07-11Bryan Cantrill on Recursion
2007-07-11Matt Doar Likes Beautiful Code
2007-07-07Beautiful Code Is Number 3
2007-07-04Another Sighting of Software Carpentry
2007-06-28Quinn's Argument: A Swing and a Miss
2007-06-28Today
2007-06-27Two Studies of ASCI (and no, that's not a typo)
2007-06-26The Danger of Danger
2007-06-26Software Carpentry at LLNL
2007-06-26First Sightings
2007-06-22Six Weeks and Counting
2007-06-19The Software Project Coloring Book
2007-06-18Lack of Female Authors in Beautiful Code
2007-06-18Three Years Old
2007-06-17Two Books of a Different Kind
2007-06-16Mass Customization
2007-06-13Does the Future Belong to Javascript?
2007-06-12England: the Three of Us, and Four Generations
2007-06-12If You Need AI, You Need a Simpler System
2007-06-12Go On, Convince Me
2007-06-12Software Games
2007-06-12One Of Those Days
2007-06-11Praising the Good
2007-06-09Home Stretch for Beautiful Code
2007-06-06Java Ecosystems for Python Programmers
2007-05-22Teaching Software Architecture
2007-05-19RailsConf: Plus Ca Change…
2007-05-17Arrrgghh whimper (or, PySqlite, Matplotlib, and paths)
2007-05-12Holding Steady
2007-05-12Half Empty, Half Full
2007-05-05Computational Scientists Still Don't Get It
2007-05-02Chronicle-Recorder and Debugging
2007-04-29Wrapping Up 49X for the Term
2007-04-29Integrating IM into DrProject
2007-04-25Code Review Tools
2007-04-23Guidance on Undergraduate Software Projects
2007-04-20Friday Humor
2007-04-17Summer of DrProject
2007-04-15Jorge Aranda on OLPC
2007-04-13Streetknit and the Scott Mission
2007-04-12One Laptop Per Child
2007-04-12RIP Kurt Vonnegut
2007-04-12The Summer Team
2007-04-05The 50 Most Important White People in IT
2007-04-02Measuring the Value of Modeling
2007-04-01Knowing Where You Are
2007-03-31Madeleine Erica Wilson
2007-03-28Pictures from the Competition
2007-03-27Beautiful Code: Chapter by Chapter
2007-03-26Engineering Strategies & Practice Team Wins Award
2007-03-26Google Summer of Code: Participating Organizations
2007-03-25New Software Engineering Courses at U of T
2007-03-22Maybe We Deserve to Go Under
2007-03-20In memoriam: John Backus
2007-03-14Extensible Programming Has Arrived
2007-03-13Doing the Science
2007-03-12What I Missed Most by Not Going to SIGCSE
2007-03-10Reproducibility of Computational Results
2007-03-10Beautiful Code
2007-03-08Strawman Proposal for a New Ticketing System
2007-03-01What I Missed Most by Not Going to PyCon
2007-02-27A Book That Should Be Read More Widely
2007-02-20Database Schema to Support Customizable/Extensible Application
2007-02-19Bitten Again
2007-02-14BitFrost
2007-02-10DrProject Architecture
2007-02-10Computing with Railroads
2007-02-08Yahoo Pipes (or, What Took You So Long?)
2007-02-07Research in Action: W00t!
2007-02-06DrProject 1.2 Now Available
2007-02-01Blackboard's Patent Pledge
2007-01-31Why Ethics Matter
2007-01-31Why Johnny Can't Calendar
2007-01-26The Trouble with Tech Transfer
2007-01-21Debugging Trick
2007-01-21Udell on use experience vs. user experience
2007-01-21Many Ways to Break
2007-01-19Managing Kids in the Home Office
2007-01-18Structured Online Laboratory Notebooks
2007-01-18Creating Tables in DrProject
2007-01-14No Such Thing As One Program
2007-01-13Pervasive Computing, Horror, and the Double Chin Effect
2007-01-12Abstraction, Compression, and Errors
2007-01-09Jon Udell on Future Tailors
2006-12-29Eleven Weeks to Go
2006-12-21Galcon for the Holidays
2006-12-16Changes to DrProject's Ticketing System
2006-12-05Show Me The Data
2006-11-30Writing Blackboard Plugins
2006-11-28Software Carpentry article in CiSE
2006-11-28Presto and Responsibility
2006-11-27Psiphon in the News Again
2006-11-25DrProject Internals: Email
2006-11-21DemoCamp 11
2006-11-20CSC49X Projects for Winter 2007 (final)
2006-11-19DrProject Internals: Testing
2006-11-16DrProject Internals: Subversion
2006-11-11Requirements as Tickets (or, Hierarchy to the Rescue)
2006-11-11Expressing Temporal 'Type' Information in Programs
2006-11-09Can't Get (Directly) There From Here
2006-11-08CSC49X Projects Winter 2007
2006-11-06DrProject Internals: I Wasn't Quite Done With Tickets
2006-11-05DrProject Internals: Tickets Again
2006-11-05Small Scale Real-World Requirements
2006-11-02Software Carpentry continues to grow
2006-11-01DrProject Internals: Tickets
2006-11-01She's a Girl!
2006-10-31Computational Result Retracted
2006-10-30DrProject Internals: Parting Notes on the Wiki
2006-10-30Jim Waldo: 'On System Design'
2006-10-28DrProject Internals: Security Part 2
2006-10-27DrProject Internals: Security Part 1
2006-10-26German Version of 'Bottleneck'
2006-10-24DemoCamp 10: Congratulations
2006-10-22And I Thought *I* Worried a Lot…
2006-10-20The Baby Just Kicked!
2006-10-17The Last of September's Reading
2006-10-16CSER, Privacy, Agility, and Games
2006-10-06DrProject 1.1 Release Candidate 1
2006-09-27An Unrepresentative DemoCamp
2006-09-23Turnitin and Translucency
2006-09-19The Stradivarius of Coding
2006-09-18Taking Intellisense to the Next Level
2006-09-18A Social Networking Company with a Believable Business Model
2006-09-14Not an Oxymoron
2006-09-14Step N: Deliverables
2006-09-14CASCON Workshops
2006-09-07Superficially Plausible Business Plan #31
2006-09-07Step 4: Respect
2006-09-04Step 3: Your Daily Routine
2006-08-31Step 2: Analysis & Estimation
2006-08-30CSC49X: Figuring Out Where the Goalposts Are
2006-08-25Why Real-World Programming Is Difficult
2006-08-25The Emperor *Still* Has No Brain
2006-08-24EC2: Commoditized Computing
2006-08-23Udell on Debugging
2006-08-23Python Web Frameworks (Yet Again)
2006-08-23Social Spiders
2006-08-23Trac Spam
2006-08-20Revised List of Project Students
2006-08-18When I Rule the World #173: Google's Summer of Code
2006-08-17SciPy'06: First Morning
2006-08-17Oh My God It's Django!
2006-08-16The Trouble With Normal
2006-08-16SciPy and Software Carpentry
2006-08-14DrProject 1.1 Screencast
2006-08-14ITiCSE'06 Readings
2006-08-07Naive SQL(ite) Question
2006-08-04HPCWire Interview on Software Carpentry
2006-08-04It Isn't Progress Until You Can Debug It
2006-08-04An Explosion of Diversity
2006-07-30Update on Extensible Programming
2006-07-26DemoCamp 8
2006-07-24Worms for Fishes
2006-07-20The Neanderthal Genome
2006-07-19Evidence-Based Software Engineering
2006-07-19Books I Want Someone to Write #23
2006-07-18The Camel's Humps Are Very Popular
2006-07-17DrProject 1.0 Final now available
2006-07-17Possible CSC49X Projects for Fall 2006
2006-07-15Another Database Design Question
2006-07-15Screenshots of DrProject 1.0
2006-07-14Software Carpentry 2.0
2006-07-09Reorganizing Our Software Engineering Courses
2006-07-09Someday
2006-07-07Bitten by WGA
2006-07-06What I Know About Playing the Bass
2006-07-05DemoCamp7 (and 8, and 9)
2006-07-03Watching Static and Dynamic Analysis Go Mainstream
2006-06-27Why DrProject Is Slow
2006-06-23Perforce: For beginners only…
2006-06-23The ACM's Top 25
2006-06-19Agility and Romanticism
2006-06-16The Semi-Colon Wars
2006-06-02Summer of Code on One Page
2006-05-05Book Review: Code Quality
2006-05-03Software Carpentry 1111
2006-04-28Corrections Done
2006-04-26DemoCamp5 Redux
2006-04-20What the World Needs Now Is Diffs, Diffs, Diffs
2006-04-19Making Money from Better Software
2006-04-17Zipf's Law of Feedback
2006-04-14Python 3000: What To Leave Out?
2006-04-13Strong Typing, Unit Testing, and Science
2006-04-12BIND Patents
2006-04-11The Ruby Is Always Greener…
2006-04-09341 Words
2006-04-08Post-Mortem on This Term's Projects
2006-04-05Perfection Is Achieved Only on the Point of Collapse
2006-04-04Movie-Plot Threat Contest
2006-03-30Head Rush Black Belt Secret Hacks of the [buzzword] Zen Masters!
2006-03-30The Next Phase New Wave Tool Craze
2006-03-30Sea Code
2006-03-29Showstopper: Hanging Processes
2006-03-27The Real Convergence
2006-03-262020 Hype
2006-03-14DrProject: Transitioning to Kid
2006-03-05Monad and Greasemonkey
2006-03-05Game Play Notation
2006-03-01Usability of Programming Systems
2006-02-27What It Takes to Get Eclipse Out the Door
2006-02-22Python, JavaScript, and Boost
2006-02-21State of DrProject
2006-02-21What Else for Software Carpentry?
2006-02-21DemoCamp: Googling for People
2006-02-20DrProject: Switching to Kid
2006-02-15Entry-Level Requirements Engineering Revisited
2006-02-11Of DocFests, Marketing Hype, and DrProject
2006-02-04Project Assets
2006-02-02Please Tell Me Python Logging Isn't Supposed to Work This Way
2006-01-23They're Getting Smarter
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-29External Programming Interfaces
2005-12-28$67 million a year
2005-12-27New Year's Schedule for Software Carpentry
2005-12-24Review: Why Programs Fail
2005-12-23Procrastination: One of the Few Things in Life Nicer Than Toast
2005-12-22Documents vs. Conversations
2005-12-21Choosing Sides
2005-12-11Evidence
2005-12-09American Scientist article on Software Carpentry
2005-12-08Ruby Book Sales Surpass Python
2005-12-07Perforce to Support DrProject Development
2005-12-07Teaching Computer Science in 2006
2005-12-05Guidance on Running Undergraduate Software Projects
2005-12-02How Do You Want to See Source Code?
2005-11-24A Typical Developer's Typical Day (not humor)
2005-11-24Fogel's Producing Open Source Software
2005-11-04Workshop at AAAS '06
2005-11-04One in Forty Five Isn't Good Enough
2005-10-27You Need a Debugger to Change the World
2005-10-27Why Bad Software Exists
2005-10-25Who Will Clean Out My Inbox After I'm Dead?
2005-10-25Subtext
2005-10-18Next Steps
2005-10-02Buckley's and Jalapenos: Just Say No
2005-09-21Software Carpentry at the AAAS
2005-09-20Day 9
2005-09-14Software Carpentry: First Meeting
2005-08-25Fifty… Million… Calls
2005-08-22Slow Imports
2005-08-22Dawson and Kerr in DDJ
2005-08-22Software Carpentry at Indiana University
2005-08-08Under the Ice
2005-07-29Software Carpentry course in Nature
2005-06-29True North strong, free, and equal
2005-06-20Another DDJ Editorial
2005-06-13Padlock the Ice Cream!
2005-06-13Selling Open Source
2005-06-01Google's Summer of Code
2005-05-15Navigating Source
2005-05-06Dr Requirements
2005-05-04Misdirection and Javascript
2005-04-13Mapping Human History
2005-03-17Jolt Awards 2005
2005-03-15Pythoneers at SIGSCSE
2005-03-13Reading the Fine Print
2005-03-11Code reviews
2005-02-27AJAX: Asynchronous Javascript + XML
2005-02-27RIP Peter Benenson
2005-02-25Possible vs. Feasible vs. Trivial
2005-02-20Technical Writing Decisions
2005-02-18On the Size of Programming Teams
2005-02-14Public Health and Future Email
2005-02-09Good Writing vs. Bad Writing
2005-02-08Trusting Your Customers
2005-02-05Blaise Pascal's Shorter Letter
2005-01-18Extensible Programming Slashdotted (Unfortunately)
2005-01-17Next-Generation Communication and Software Engineering
2005-01-16Python, Typing, and the Scientific Spirit
2005-01-16Canadian Undergraduate Software Engineering Conference
2005-01-12Two Kinds of People…
2005-01-05Why Python?
2005-01-02Quantifying the Learning Curve
2005-01-02Knowing Where You're Going
2004-12-30Python Software Foundation Grant
2004-12-30Why I Teach
2004-12-12Unicode in Action
2004-12-10Greg's Best of 2004
2004-12-09Build Your Own Weather Channel
2004-10-20IBM, Python, and the Blues
2004-10-08Ant + Hibernate: There's More Than One Way to Fix It
2004-10-08Ant + Eclipse = More Pain
2004-10-08Oh, You Mean You Wanted It to *Work*…
2004-10-07Ant + Hibernate = Confusion and Pain
2004-09-20Essential Equipment
2004-09-16The Art of Cutting Corners
2004-09-14Accidental Horizons
2004-09-14All Work and No Play Makes a Dull Team
2004-09-13Guards! Guards!
2004-09-13Subversion Grief and Usability Testing
2004-09-07Better is Harder than New
2004-09-06They're All Eighth Bolts
2004-09-02Book Review: Joel on Software
2004-09-02A Few Simple Rules
2004-09-01Tasks for the Fall
2004-08-30Issue Tracking Systems
2004-08-28The Joel Test
2004-08-18Filters, Performance, and Priorities
2004-08-06Real-time Scheduling
2004-08-04Poor Cousins
2004-07-26The Right Tool for the Job
2004-07-23Preparing for the Next Round
2004-07-21Up and to the Right
2004-07-01Command-Line Power Tools
2004-06-26Code Reviews
2004-06-26Bottom Up and Top Down Meet
2004-06-25Getting Balls Rolling in the Real World
2004-06-22The New Standard Model
2004-06-21Welcome to the Helium Blog