All posts

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

Home page