All posts

  1. .vimrc
  2. 12 rules for living
  3. 15 notes on testing software
  4. 2022 favorites to date
  5. A common trap for people entering programming jobs
  6. A quick argument for naming all software prototypes after birds
  7. All posts
  8. An argument from Jimmy Koppel
  9. Books I like more than other people do
  10. How I got into programming
  11. How academics can find non-academic work
  12. Listening notes: Jason Strasser on the Risk of Ruin podcast
  13. Listening notes: Kate Grace on The Morning Shakeout
  14. Listening notes: Russ Roberts and Tyler Cowen on reading
  15. Listening notes: Test and Code 191
  16. Listening notes: The Pragmatic Programmer
  17. Most recent posts
  18. My information diet
  19. Nate Meyvis
  20. New site design
  21. Notes on a Bryan Cantrill talk
  22. Notes on parenting
  23. Notes on writing a static site generator
  24. On (non-software) dependency management
  25. On Anki's database
  26. On Bryan Caplan's spreadsheets
  27. On Conversations with Tyler
  28. On Excel, context, and talent
  29. On accidentally starting a newsletter
  30. On actually reading the book
  31. On capturing thoughts
  32. On checklists, again
  33. On coordinating intrapersonal skill levels
  34. On dependencies
  35. On dependencies in small projects
  36. On distributing reading time
  37. On editing text
  38. On estimating the value of GitHub Copilot
  39. On having philosophy in your life
  40. On improving data-adjacent code
  41. On learning Vim
  42. On linear scans
  43. On long books
  44. On middlebrow books
  45. On poker's comparative advantage
  46. On poker's comparative disadvantage
  47. On preparing for coding interviews
  48. On productivity
  49. On quadratic complexity
  50. On ranking things
  51. On ranking things
  52. On reading The Diff
  53. On reading canonical literature
  54. On recovering
  55. On scarcity and regionality
  56. On self-experimentation in spaced repetition
  57. On studying for a new job in software
  58. On studying for your upcoming job: objections and replies
  59. On talking to think better
  60. On task management
  61. On the death of new music
  62. On the scarcity of context
  63. On type safety in natural language
  64. On using Anki
  65. On using Anki, again
  66. On using a Kindle
  67. On viewquakes
  68. On winning auctions
  69. Podcasting FAQ
  70. Python task manager from scratch, part 0: Introduction
  71. Python task manager from scratch, part 10: Task objects
  72. Python task manager from scratch, part 11: First bugfix
  73. Python task manager from scratch, part 12: A Task repository
  74. Python task manager from scratch, part 13: Fix a major mistake
  75. Python task manager from scratch, part 14: Make an interface
  76. Python task manager from scratch, part 15: Prepare the way
  77. Python task manager from scratch, part 16: Making a first Web display
  78. Python task manager from scratch, part 17: Generating some HTML
  79. Python task manager from scratch, part 18: Adding a feature
  80. Python task manager from scratch, part 19: Preparing the way II
  81. Python task manager from scratch, part 1: First steps
  82. Python task manager from scratch, part 20: Adding a form
  83. Python task manager from scratch, part 21: Preparing the way III
  84. Python task manager from scratch, part 22: Another Task field
  85. Python task manager from scratch, part 23: Retrieving tasks by UUID
  86. Python task manager from scratch, part 24: Supporting Task modification
  87. Python task manager from scratch, part 25: Handling a bug
  88. Python task manager from scratch, part 26: Adding task-completion functionality
  89. Python task manager from scratch, part 27: Using a real database
  90. Python task manager from scratch, part 28: Taking stock
  91. Python task manager from scratch, part 29: Cosmetic improvements
  92. Python task manager from scratch, part 2: First cleanup!
  93. Python task manager from scratch, part 30: Adding a feature I want
  94. Python task manager from scratch, part 31: Adding some style
  95. Python task manager from scratch, part 32: More Task properties
  96. Python task manager from scratch, part 33: Updating the persistence logic for tasks
  97. Python task manager from scratch, part 34: Adding styles based on task states
  98. Python task manager from scratch, part 35: Listing tasks from the command line
  99. Python task manager from scratch, part 36: Preparing for recurring tasks
  100. Python task manager from scratch, part 37: Fixing our coordinator
  101. Python task manager from scratch, part 38: Add a license
  102. Python task manager from scratch, part 39: Thinking about interfaces, again
  103. Python task manager from scratch, part 3: Separating the data
  104. Python task manager from scratch, part 40: Persisting task coordinators
  105. Python task manager from scratch, part 41: Setting up event handling
  106. Python task manager from scratch, part 42: Resolving a circular import
  107. Python task manager from scratch, part 43: Preparing the way IV
  108. Python task manager from scratch, part 44: Implementing repeating tasks
  109. Python task manager from scratch, part 45: Supporting environments
  110. Python task manager from scratch, part 46: Getting handlers under test
  111. Python task manager from scratch, part 47: Tidying up the front end
  112. Python task manager from scratch, part 4: Making functions
  113. Python task manager from scratch, part 5: Setting up version control
  114. Python task manager from scratch, part 6: Adding a .gitignore
  115. Python task manager from scratch, part 7: Adding and removing tasks
  116. Python task manager from scratch, part 8: Requirements management
  117. Python task manager from scratch, part 9: First tests
  118. Reading notes: A Philosophy of Software Design
  119. Reading notes: A Widow For One Year
  120. Reading notes: From Front Porch to Back Seat
  121. Reading notes: How to Change
  122. Reading notes: How to Fail at Almost Everything and Still Win Big
  123. Reading notes: Patterns of Software
  124. Reading notes: Talent
  125. Reading notes: The Inner Game of Tennis
  126. Reading notes: The Manager's Path
  127. Reading notes: The Score Takes Care of Itself
  128. Reading notes: The Three-Body Problem
  129. Reading notes: The Tim Tebow CFL Chronicles
  130. Rubber duck text editing
  131. Skills for academics
  132. Software FAQ
  133. Software design resources
  134. The 100 books nearest to my heart
  135. The Ideal of the Open Mind
  136. The Lawnmower Essay and the Problems of Philosophy
  137. Veery: a Python project from scratch
  138. Viewquake: Decisionmaking is overrated
  139. Viewquake: interpreting obvious mistakes

Home page