Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The pocket guide to debugging (jvns.ca)
394 points by guiambros on Dec 22, 2022 | hide | past | favorite | 46 comments


As the author, I don't think this really makes sense on the front page of HN since you have to pay to read the zine.

I am doing a giveaway for folks who can't afford the zine though -- if $12 is a lot of money for you but you think the debugging advice in there would be helpful, you can use code BUYONEGIVEONE at checkout to get the PDF version for free. (it'll ask you for a billing address but if you dislike sharing your address unnecessarily like I do, you can just put a fake address)


It's on the front page, because when we see jvns.ca we know it's a good link :)

Keep it up, and many thanks!


Yeah, Julia makes the best zines and guides. The technical content and style is gold.


> I don't think this really makes sense on the front page of HN since you have to pay to read the zine.

You are being too humble :) Great work deserves attention and payment.

I just ordered the 12 pack of physical print version zines + PDFs :D

https://wizardzines.com/zines/all-the-zines/

It includes the pocket guide to debugging zine, and 11 other zines!


I have the box set of some of your other zines, so I instantly bought two copies (as I did with the box set). One is for my twelve year old daughter who's been fascinated by your stuff for years, and one to take to work, where it will constantly be lent out to other people.

Love your work. Always fascinates me to see how people approach simplifying something complicated. These remind me of a feeling I also get when I'm reading Scott McCloud: comics are vastly underrated for educational content.


Hi. As a student from a non-first world country I really appreciate things like this (I’m pretty sure I got previous zines of yours for free in the past).


Just a suggestion: Perhaps you could also sell the print version on Amazon? They print books on demand. This would be very nice for us in Europe because it eliminates the highly problematic customs step from the process.


Unfortunately I've done a bunch of research into this and I've never been able to find a print-on-demand service that prints the zines in a way that I was happy with. Print on demand is easier for regular books, but the booklet format is a bit weird.

The customs situation is a pain though, I wish I had a better solution.


Thanks for looking into it in any case, I appreciate it!


Publish collection of all zines as a single book?


There is a sample content, and for high-quality stuff it is perfectly fine to share paid content.

It is not like everyone is obligated to follow freeware/freemium/patronage business model.


I'm getting "This discount has reached its usage limit". People are so fast


Yes I'm having the same issue


The initial 1000 copies ran out, but I just added a few hundred extra so it should work now.

(the way it works is that I add 1 copy to give away for every 1 copy sold, but it's a manual process)


I'd also highlight that the author offers the option to buy the zine paying the "purchase parity price" for your country. It is a truly great initiative that other authors should follow. I'm a developer from Brazil and some "cheap" prices aren't that cheap for us.


Julia Evans also share great content in Twitter: https://twitter.com/b0rk

She is an author that I love to support.


Do you have a pdf-only variant for the 12-pack? I looked around and didn't find it, I might have missed it. Hence asking. I don't really need printed version, so don't really want to waste paper.

I have been following your blogs and zines for years now. Keep up the good work and vibes. Peace.



>As the author, I don't think this really makes sense on the front page of HN since you have to pay to read the zine.

I think it is okay since paywalled articles reach HN front page too. Also, if you had submitted this yourself as a Show HN, the guide (https://news.ycombinator.com/showhn.html) says "For books, a sample chapter is ok." - and https://wizardzines.com/zines/debugging-guide/ does have samples


It makes, I was not aware of these gems.

Just bought the 12 pdf pack to show to my 7-yo girl that what I do sometimes is "fun" (and a refresher for some of the topics for myself).

Thanks!


Thank you for this, Merry Christmas.


Just the table of contents is gold. Would make a poster from it.


Thank you for the free zine! I found out that a discount is also available in my region, bought the 12-pack.


Bought! I've been seeing your tweets about this, and am so excited to get my hands on a print version!


I've been looking for something like this, thanks!


Thank you for your kindness!


Thanks a lot.


>reproduce the bug / reduce randomness

In every app I do I abstract time and scheduling/threading away, to be able to run any domain logic in a deterministic and as fast as possible way (i.e. the clock jumps to next event/treatment time instead of having to wait for it).

It's such a bliss for testing and debugging (can run hours in seconds, turn on all logs safely, rule out threading issues by reproducing with a single thread, etc.), it's a shame it's not a built-in feature in most (any?) languages or their core libraries clock/scheduling APIs.


I recently discovered the joy of abstracting away time. I write a lot of software in Go for work. This library, https://github.com/benbjohnson/clock, provides a Clock interface that can be used for creating either clocks with the same interface as the standard "time" module, or to create a mock clock that increments to the next tick on any and all tickers defined in the app. It really makes unit tests go faster, though it can be tricky to get the code right.


I’d love to hear more about this. Which languages do you normally work in? Any recommended reading about this topic/approach?


>Which languages do you normally work in?

I work mostly in Java, and started to do it in C/Ada, but anything Turing-complete should be fine.

>Any recommended reading about this topic/approach?

I learnt it implementing HLA norm for distributed simulations (https://en.wikipedia.org/wiki/High_Level_Architecture), but most of HLA is about distributed work synchronization, if you stay local you just need to retain the idea of advancing the time discretely from software, instead of having it flow uncontrollably with hardware ticks.

Here is a previous comment I made on the same topic: https://news.ycombinator.com/item?id=22390113 You can find links to code in my (other) comment in the linked InfoQ article. In particular you can try out clocks/schedulers provided by jolikit's SchedulingHelper class, with various kinds of SchedulingType: HARD (time = f(system_time)), SOFT_HARD_BASED (virtual time trying to keep up/down with a HARD master clock), and SOFT_AFAP (virtual time jumping instantly between works).


I bought the zine 12-pack recently and have loved each one. I also printed out the strace one - it's actually one of my favorites! So this one was a no-brainer to order. I've intentionally not opened the pdf because I don't want to spoil it for when my print copy arrives :)


Ah! bless the author! The TOC reads as a action list, I think I will buy this content. It looks like fun, easy read.

I've done all of those steps on that action list, and have thoroughly enjoyed the time I spent debugging (not really).

So many fond memories spending weeks on a bug only to change one line of code. Joy.


Nice!! Debugging definitely doesn't get enough love! Especially not on HN.


A comic-zine about debugging, you say? https://multicians.org/thvv/threeq.html


Great suggestions:

- "reread the error message" (please remember to do it, do it again, ...and again)

- "take a night break" (It's wonderful how a night of good sleep can solve your bugs)


i coached my sister through her first steps as a software developer. ignoring the error messages was a real issue at first!


Just bought the 12-pack version. I love Julia's website.


Since people seem to be rating your book, I'll give it a purchase, as this'll probably be useful for me. You got me with the discount for being in Trinidad and Tobago haha, which I don't actually need cause I actually live in Canada, I'm just in my home country for vacation.

Anyways, as a self-taught junior developer, I'm always looking for ways to become a better programmer, so thank you for this :)


Awesome! My mom is from Trinidad so I always love hearing from folks from there :)


I haven't read the full thing but one thing you can do is institutionalize some of this stuff. The screenshot here especially:

https://wizardzines.com/zines/debugging-guide/samples/2-tiny...

You can institutionalize this practice at your org in some ways. At my org we have:

* strawman apps for our cloud systems and our windows services to practice deployments and startup/shutdown behavior without having to wait to compile full apps

* alwaysfails and alwayspasses tests in our test projects for confirming how test frameworks behave and our test reporting/logging function

* to some extent, health check pages on apps can hold limited tests https://www.thoughtworks.com/radar/techniques/health-check-p...

Maybe the zine encourages that, haven't read it yet, but looking forward to digging in based on recognizing this strategy.


Is there something like this that’s Python focused?


There's this by Andreas Zeller: https://www.debuggingbook.org/, it's an interactive free book with implementations of a bunch of different debugging tools in Python


Really cool idea! Instantly bought this for me and my wife when I saw this.


Is this for children or developmentally disabled adults?


Yes.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: