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)
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.
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.
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.
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 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 :)
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 :)
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
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
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)