Weeknote 4: Debugging Tools

I’m switching the gears a bit at work and instead of working on databases, I’ll be working on a new internal developer tool for making sense of some timeseries data. That is what has been on my mind this week.

Essentially I’m making a debugging tool. What’s the bar for a successful debugging tool? At least it must be better than printf.

There are endless articles where experienced engineers admit that they debug software by inserting printf calls instead of reaching for a debugger like gdb. I do it, too, and printf debugging has a couple of pretty big upsides compared to more powerful tools.

  • You already know how to do it and how it works. Printing is one of the first thing you learn when you start learning programming.
  • It works almost everywhere.
  • It fits into your existing workflow – just add a line of code and re-run your code or tests.
  • The performance penalty is small and you control where you incur it.

I’ve tried the Python debugger integration in VS Code a few times and it has not been a success. The instructions for setting it up were cryptic and I wasn’t sure if it’s going to work. It made the whole program very very slow, not just the parts that I wanted to debug. The control flow is difficult to understand when you step through async code. Ultimately I gave up.

It’s tough to beat printf on its own turf, but when it comes to timeseries data, printf has a weakness: it’s difficult to analyze series of long lists of numbers by just printing them out. Having a graph would help a lot.

Now, there’s an abundance of tools for visualizing timeseries data. I hope to make use of some them. Certainly I’m not going to implement my own plotting library. The problem for me to solve is how to integrate them so smoothly in our developers’ workflows that they actually want to use them.

Literary pondering: On being aimless

I’m reading Pussikaljaromaani by Mikko Rimminen. Published in 2004, it’s a novel that chronicles how three good-for-nothings spend a summer day in the Kallio district of Helsinki.

In the spring I went to see Waiting for Godot, the play by Samuel Beckett. In the play, the two main characters Vladimir and Estragon, well, wait for Godot whom they’re supposed to meet any moment now.

What these two works have in common is that in both, the protagonists are spending time. Nay, they are killing time. They have no aim, no goals, other than to pass time. They are idle.

After seeing Waiting for Godot, I found it difficult to relate to but I couldn’t explain why. Now with Pussikiljaromaani, I understand it better: it is the aimlessness. But why is it an issue? I don’t know yet and it bothers me a bit. This thought is still in progress; eventually there will be a conclusion.

My recommendation this week, in so far there is any, is to find a cultural work that is widely appreciated and that you don’t get and ponder why.

Photo: Sea waves are hitting some rocks that are right on the sea level somewhere west of Hanko.


Comments or questions? Send me an e-mail.