<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: jvns</title><link>https://news.ycombinator.com/user?id=jvns</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 09:21:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jvns" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jvns in "The Most Popular Blogs of Hacker News in 2025"]]></title><description><![CDATA[
<p>From the other side, I’ve fairly often written blog posts that I don’t put much effort into and have no intention of reaching the front page of HN, only to see 12 hours later that somebody submitted it and it’s on the front page.<p>I realize this sounds like a humblebrag but it is not a positive thing for me to have every single thing I write submitted to HN whether it’s relevant to a broad audience or not.</p>
]]></description><pubDate>Sun, 04 Jan 2026 16:30:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46489502</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=46489502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46489502</guid></item><item><title><![CDATA[New comment by jvns in "Modern LaTeX"]]></title><description><![CDATA[
<p>I pay for a tool to convert HTML/CSS into PDFs <a href="https://www.princexml.com/" rel="nofollow">https://www.princexml.com/</a> and it seems to work well. I don't have the best idea of how it compares to the various free options though.</p>
]]></description><pubDate>Mon, 05 May 2025 23:43:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=43900501</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=43900501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43900501</guid></item><item><title><![CDATA[New comment by jvns in "Gumroad’s source is available"]]></title><description><![CDATA[
<p>I tried to grep the code for `api.` to get a sense for all the vendors this codebase is using, and which you'd need to have relationships with to run the code. Here's what I found:<p>payments:<p><pre><code>  https://api.paypal.com 
  https://api.stripe.com
</code></pre>
tax stuff:<p><pre><code>  https://api.taxjar.com
  https://api.vatstack.com (EU VAT)
  https://apiservices.iras.gov.sg
</code></pre>
for iOS app (?):<p><pre><code>  https://api.appstoreconnect.apple.com 
  https://api.storekit.itunes.apple
</code></pre>
AI stuff:<p><pre><code>  https://api.iffy.com  (AI content moderation)
  https://api.helper.ai (AI support)
  https://api.openai.com
</code></pre>
other:<p><pre><code>  https://api.easypost.com  (shipping labels?)
  https://api.sendgrid.com (email)
  https://api.pwnedpasswords.com (haveibeenpwned)
  https://api.worldbank.org (for purchasing power parity?)
  https://api.dropboxapi.com (for "upload from dropbox"?)</code></pre></p>
]]></description><pubDate>Fri, 04 Apr 2025 20:10:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=43587138</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=43587138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43587138</guid></item><item><title><![CDATA[New comment by jvns in "Bitly injecting ads into shortened links"]]></title><description><![CDATA[
<p>Deleted this post because I don't think a random screenshot from my email is a good source for people to refer to. A better source might be the bitly terms of service: <a href="https://bitly.com/pages/terms-of-service" rel="nofollow">https://bitly.com/pages/terms-of-service</a> (1.4 Destination Preview)</p>
]]></description><pubDate>Fri, 14 Feb 2025 16:07:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=43049832</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=43049832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43049832</guid></item><item><title><![CDATA[New comment by jvns in "Oh Shit, Git?"]]></title><description><![CDATA[
<p>Yes! Katie and I made it into a zine because I was such a huge fan of her work on <a href="https://ohshitgit.com/" rel="nofollow">https://ohshitgit.com/</a>. (you'll notice she's a coauthor of the zine)</p>
]]></description><pubDate>Thu, 16 Jan 2025 21:38:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=42731229</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=42731229</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42731229</guid></item><item><title><![CDATA[New comment by jvns in "Migrating Mess with DNS to Use PowerDNS"]]></title><description><![CDATA[
<p>That's a great idea, thanks.</p>
]]></description><pubDate>Mon, 19 Aug 2024 18:49:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=41293642</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=41293642</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41293642</guid></item><item><title><![CDATA[Google Season of Docs 2024]]></title><description><![CDATA[
<p>Article URL: <a href="https://opensource.googleblog.com/2024/02/announcing-google-season-of-docs-2024.html">https://opensource.googleblog.com/2024/02/announcing-google-season-of-docs-2024.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39301741">https://news.ycombinator.com/item?id=39301741</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 08 Feb 2024 13:38:07 +0000</pubDate><link>https://opensource.googleblog.com/2024/02/announcing-google-season-of-docs-2024.html</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=39301741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39301741</guid></item><item><title><![CDATA[New comment by jvns in "ed(1) mastery is a must for a real Unix person"]]></title><description><![CDATA[
<p>That book (Ed Mastery, <a href="https://mwl.io/nonfiction/tools#ed" rel="nofollow noreferrer">https://mwl.io/nonfiction/tools#ed</a>) is an April fool's joke, but it's a real book and I thought it was actually really good. I've still basically never used ed but it was fun to learn about and it helped me understand vim's history a little bit.</p>
]]></description><pubDate>Fri, 15 Dec 2023 16:21:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=38655630</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=38655630</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38655630</guid></item><item><title><![CDATA[New comment by jvns in "Confusing Git Terminology"]]></title><description><![CDATA[
<p>fixed, thanks!</p>
]]></description><pubDate>Thu, 02 Nov 2023 18:28:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=38117942</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=38117942</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38117942</guid></item><item><title><![CDATA[New comment by jvns in "Making Hard Things Easy"]]></title><description><![CDATA[
<p>fixed, thanks!</p>
]]></description><pubDate>Fri, 06 Oct 2023 16:13:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=37792667</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=37792667</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37792667</guid></item><item><title><![CDATA[New comment by jvns in "Behind “Hello World” on Linux"]]></title><description><![CDATA[
<p>Like I said in the blog post, I'd love suggestions for other things I've missed that happen when you run "hello world", _especially_ if there's a way to use a Linux spy tool to trace what exactly is happening.<p>Considering adding a few things that are happening in the kernel and trying to use `bpftrace` to trace them, but I need to figure out how to use bpftrace/kprobes and hunt down the relevant kernel functions.</p>
]]></description><pubDate>Sat, 05 Aug 2023 13:04:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=37011626</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=37011626</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37011626</guid></item><item><title><![CDATA[New comment by jvns in "Why is DNS still hard to learn?"]]></title><description><![CDATA[
<p>Hello! I wrote this post and I have a couple of things to say about this "DNS is not actually hard" take. It took me many years to feel totally comfortable debugging DNS problems, and I wrote this post to explain why I think it was hard for me.<p>I also used to think that "no, actually, it's easy!" was an encouraging response to "this is hard to learn". And I kind of get it! I love DNS! I think it is surprisingly simple in many ways, and I've written about that a lot, for example in <a href="https://implement-dns.wizardzines.com" rel="nofollow noreferrer">https://implement-dns.wizardzines.com</a> which shows you how to implement a toy DNS resolver from scratch in some pretty simple Python code.<p>But over the years I've learned that "no, it's easy to learn!", instead of coming off as an encouraging comment ("you can do it!"), often gets received as "no, it's not hard, actually the problem is that you're dumb". Like, I've been confused about this for years, and you're telling me that, no, actually it's easy? Not that helpful!<p>So I've stopped telling people that, and instead I put a huge amount of work into trying to understand _why_ people find certain things hard and work to help remove some of those barriers.</p>
]]></description><pubDate>Fri, 28 Jul 2023 22:57:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=36914493</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=36914493</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36914493</guid></item><item><title><![CDATA[New comment by jvns in "DNS-Weekend"]]></title><description><![CDATA[
<p>note: it was available before, the only change is that now it's in a github repository instead of a zip file that you download from the website</p>
]]></description><pubDate>Sat, 08 Jul 2023 16:05:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=36645678</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=36645678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36645678</guid></item><item><title><![CDATA[New comment by jvns in "Implement DNS in a Weekend"]]></title><description><![CDATA[
<p>A DNS resolver is both a client and a server -- for example Google's 8.8.8.8 (which this is a toy version of) is a server (you can query it with `dig @8.8.8.8 example.com`), but also a client of the various authoritative DNS servers that it fetches and caches records from.<p>I implemented this as a command line tool because that's much easier to do in a Jupyter notebook environment, but you can also pretty easily transform it into a UDP server running on localhost and query it with dig in the same way that you would with 8.8.8.8. That's one of the bonus exercises at the end (Exercise 7).<p>I might end up bringing "convert it into a server" into the main content though because it's pretty easy to do and I think it makes the whole thing seem more "real".</p>
]]></description><pubDate>Fri, 12 May 2023 18:28:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=35920189</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=35920189</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35920189</guid></item><item><title><![CDATA[New comment by jvns in "Implement DNS in a Weekend"]]></title><description><![CDATA[
<p>thanks, I'll take a look</p>
]]></description><pubDate>Fri, 12 May 2023 15:13:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=35917409</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=35917409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35917409</guid></item><item><title><![CDATA[New comment by jvns in "The pocket guide to debugging"]]></title><description><![CDATA[
<p>There's this by Andreas Zeller: <a href="https://www.debuggingbook.org/" rel="nofollow">https://www.debuggingbook.org/</a>, it's an interactive free book with implementations of a bunch of different debugging tools in Python</p>
]]></description><pubDate>Thu, 22 Dec 2022 13:26:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=34092978</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=34092978</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34092978</guid></item><item><title><![CDATA[New comment by jvns in "The pocket guide to debugging"]]></title><description><![CDATA[
<p>Awesome! My mom is from Trinidad so I always love hearing from folks from there :)</p>
]]></description><pubDate>Thu, 22 Dec 2022 12:38:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=34092703</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=34092703</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34092703</guid></item><item><title><![CDATA[New comment by jvns in "The pocket guide to debugging"]]></title><description><![CDATA[
<p>The initial 1000 copies ran out, but I just added a few hundred extra so it should work now.<p>(the way it works is that I add 1 copy to give away for every 1 copy sold, but it's a manual process)</p>
]]></description><pubDate>Thu, 22 Dec 2022 12:33:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=34092677</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=34092677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34092677</guid></item><item><title><![CDATA[New comment by jvns in "The pocket guide to debugging"]]></title><description><![CDATA[
<p>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.<p>The customs situation is a pain though, I wish I had a better solution.</p>
]]></description><pubDate>Thu, 22 Dec 2022 03:04:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=34089241</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=34089241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34089241</guid></item><item><title><![CDATA[New comment by jvns in "The pocket guide to debugging"]]></title><description><![CDATA[
<p>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.<p>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)</p>
]]></description><pubDate>Thu, 22 Dec 2022 02:01:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=34088814</link><dc:creator>jvns</dc:creator><comments>https://news.ycombinator.com/item?id=34088814</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34088814</guid></item></channel></rss>