/Debugging

A Debugging Manifesto

- Julia Evans tl;dr: Julia discusses the attitude and approach to take when debugging, explaining the following: (1) Inspect, don’t squash. (2) Being stuck is temporary. (3) Trust nobody and nothing. (4) It’s probably your code. (5) Don’t go it alone. (6) There’s always a reason. (7) Build your toolkit. (8) It can be an adventure.

featured in #375


Tips For Analyzing Logs

- Julia Evans tl;dr: 14 useful tips including the following: (1) Search for the request’s ID - often log lines will include a request ID and searching for the request ID of a failed request will show all the log lines for that request. (2) Build a timeline - keeping all of the information straight in your head can get confusing, so keeping a debugging document where I copy and paste bits of information.

featured in #374


Twenty Five Thousand Dollars Of Funny Money

tl;dr: "I had been at the company something like six weeks and had changed a line of source code to fix a bug (logging), to uncover another bug (wrong argument count), to enable yet another bug (wrong units, and zero type safety) that gave 25 grand worth of funny money to anyone who clicked! And I had clicked! And I got a friend to click! And other people got it too!"

featured in #372


Debugging Mysterious Traffic From Boardman, OR

tl;dr: "A quick Google search revealed that Boardman, OR hosts a large AWS data center. Turns out that because Boardman has access to electricity from hydropower, it is cheaper than other data centers and is therefore preferred by many."

featured in #369


Some Ways To Get Better At Debugging

- Julia Evans tl;dr: Julia read some papers on debugging and found the following categorization very helpful, elaborating on each of the following categories: (1) Learn the codebase. (2) Learn the system. (3) Learn your tools. (4) Learn strategies. (5) Get experience.

featured in #349


Modern Web Debugging In Chrome DevTools

- Bramus Van Damme Victor Porof tl;dr: "As an author, you want to see and debug the code that you wrote, not the deployed code. To make up for it, you can now have the tree show the authored code instead. This makes the tree more closely resemble source files you get to see in your IDE, and these files are now separated from the deployed code." The authors discuss how this works and other additions to Chrome's DevTools. 

featured in #348


Weird Monitor Bugs People Sent Me In The Last 5 Years

- Alin Panaitiu tl;dr: "I get tons of email about Lunar, a macOS app for getting intelligent adaptive brightness on external monitors. A lot of these complain about bugs, but sometimes, after a good multi day chase, I conclude it’s actually a monitor bug. I try to help and provide a workaround whenever I can. But anyway, here’s a small collection of those bugs."

featured in #347


The Apple GPU And The Impossible Bug

- Alyssa Rosenzweig tl;dr: Alyssa dives into the rabbit hole uncovered by reverse-engineering AGX to build open source graphics drivers. "The driver fails to render large amounts of geometry. Spinning a cube is fine, low polygon geometry is okay, but detailed models won’t render. Instead, the GPU renders only part of the model and then faults."

featured in #317


The Worst Bug Ever - Randomly Losing Your Best Players

- Ron Little tl;dr: "Imagine discovering a serious bug in production immediately after releasing your game. Imagine this bug hurts only your paying customers. Imagine it freezes the game immediately after players complete in-app purchases... This is the worst bug I have ever dealt with in 30 years of programming. This is a story of how we tracked it down and worked with Unity to fix it."

featured in #312


A Cursed Bug

- Nelson Elhage tl;dr: "This is the story of a bug we recently put to rest; a bug which, from our very first inklings of its existence, I repeatedly described as “cursed.” Now that we understand it, I want to share just how delightfully cursed it was."

featured in #295