/Debugging

Make Debugging Suck Less. Keep A Logbook. 

- Conor Lamb tl;dr: "Scientists keep logbooks for their findings. Why don’t computer scientists?" Conor shares an example of one and cites these benefits: (1) Enumerate where you are in the bug fixing journey. (2) Keeps you rooted when you have a stack of issues. (3) Makes your future steps clearer. (4) Documents the time and effort spent, helpful to show your team the energy you put in. (5) Documents your eventual success and how it happened.

featured in #284


The Weirdest Bug I've Ever Encountered

- Benjamin Richner tl;dr: Benjamin concludes with what he's learned from debugging: (1) No matter how battle-tested and old the code and how reputable the distributor - the code contains bugs. (2) Old bugs can manifest themselves seemingly out of nowhere, caused by subtle changes in timing or memory layout. (3) Whenever the file system is involved, there is a significant danger that bugs are caused by race conditions. And more. 

featured in #269


100% CPU: My Fault?

- Joseph Mate tl;dr: Joseph received a bug report claiming he "caused 100% CPU util on a VM when it should have been idle." He runs a retrospective on what the issue was and how else it could have been handled.

featured in #259


The Code Worked Differently When The Moon Was Full

- Scott Hanselman tl;dr: Scott walks us through "an interesting and insidious bug," based on a time calculations. This type of bug "can often show themselves later when view through a longer lens and scope of time," and "can show up a lot later than expected."

featured in #256


Should You Estimate Bugs?

tl;dr: There are a few methods of bug estimation, e.g.: (1) Dedicated time per sprint (2) Default estimation, e.g. 1 day/bug (3) Estimation with historical data (4) No estimation. Author argues that company size should affect which approach to go for.

featured in #238


Reasons Why Bugs Might Feel "Impossible"

- Julia Evans tl;dr: Julia outlines 5 reasons why bugs might feel impossible to solve, each of which is explained in detail: (1) The bug is hard to reproduce. (2) You don’t understand the overall system well. (3) It’s hard to get data about the bug. (4) One of your assumptions is wrong. (5) The bug is really complex.

featured in #233


The Weirdest Compiler Bug

- Scott Rasmussen tl;dr: "There are approximately 7.5x10^18 grains of sand on Earth. This story is about finding changes in an equation that has a difference of approximately 1e-18 out of hundreds of billions of calculations."

featured in #224


Ultimate Guide To Python Debugging

- Martin Heinz tl;dr: Using print statements is "far from ideal and there are much better ways to find out what's wrong with your code," explored in this article.

featured in #186


When Debugging, Your Attitude Matters

- Julia Evans tl;dr: Julia started to believe that it was impossible to understand basic CSS concepts, impeding her own ability to learn. After shifting her attitude, she saw a major difference in her ability to learn.

featured in #179


Debug Visualizer

- Henning Dieterichs tl;dr: "Extension for visualizing data structures while debugging. Works best with JavaScript/TypeScript."

featured in #174