<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: nkantar</title><link>https://news.ycombinator.com/user?id=nkantar</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Apr 2026 19:51:25 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nkantar" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nkantar in "Claude Code: Now in Beta in Zed"]]></title><description><![CDATA[
<p>They mean holding the Command key when pressing the comma key, which should work.</p>
]]></description><pubDate>Thu, 04 Sep 2025 03:38:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45123271</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=45123271</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45123271</guid></item><item><title><![CDATA[New comment by nkantar in "Static sites with Python, uv, Caddy, and Docker"]]></title><description><![CDATA[
<p>Hi! Thanks for the kind words! I’m not taking the comments to heart, though I might write a follow-up post explaining why I chose this stack to pre-empt the surprising number of assumptions, and I might keep this in my for other, future posts.<p>I’m glad this lead to some learning for you! Some of the comments did that for me, which is great.</p>
]]></description><pubDate>Sun, 24 Aug 2025 06:53:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45001961</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=45001961</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45001961</guid></item><item><title><![CDATA[New comment by nkantar in "Static sites with Python, uv, Caddy, and Docker"]]></title><description><![CDATA[
<p>Author (not OP) here. In hindsight, I wish I’d explained “the why” mostly to save so many folks in this thread from making lots of assumptions. The third paragraph in this comment touches on that: <a href="https://news.ycombinator.com/item?id=44993875">https://news.ycombinator.com/item?id=44993875</a></p>
]]></description><pubDate>Sun, 24 Aug 2025 00:36:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=45000250</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=45000250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45000250</guid></item><item><title><![CDATA[New comment by nkantar in "Static sites with Python, uv, Caddy, and Docker"]]></title><description><![CDATA[
<p>Author (not OP) here. It hadn’t really occurred to me to optimize the Dockerfile in this way because of how rarely the build is run in the first place, but I’m absolutely going to do this, since the ratio of code changes to content changes will definitely skew heavily toward the latter, and it just seems like a good habit anyway. Thanks for reminding me, and even explaining how to do it!</p>
]]></description><pubDate>Sun, 24 Aug 2025 00:31:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45000227</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=45000227</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45000227</guid></item><item><title><![CDATA[New comment by nkantar in "Static sites with Python, uv, Caddy, and Docker"]]></title><description><![CDATA[
<p>Author—though not OP—here. I’ll try to broadly address the questions, which are all fair.<p>Broadly speaking, I explicitly wanted to stay in the Coolify world. Coolify is a self-hostable PaaS platform—though I use the Cloud service, as I mentioned—and I really like the abstraction it provides. I haven’t had to SSH into my server for anything since I set it up—I just add repos through the web UI and things deploy and show up in my browser.<p>Yes, static sites certainly could—and arguably even should—be done way simpler than this. But I have other things I want to deploy on the same infrastructure, things that aren’t static sites, and for which containers make a whole lot more sense. Simplicity can be “each thing is simple in isolation”, but it can also be “all things are consistent with each other”, and in this case I chose the latter.<p>If this standardization on this kind of abstraction weren’t a priority, this would indeed be a pretty inefficient way of doing this. In fact, I arrived at my current setup by doing what you suggested—setting up a server without containers, building sites directly on it, and serving them from a single reverse proxy instance—and the amount of automation I found myself writing was a bit tedious. The final nail in the coffin for that approach was realizing I’d have to solve web apps with multiple processes in some other way regardless.</p>
]]></description><pubDate>Sat, 23 Aug 2025 06:53:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=44993875</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=44993875</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44993875</guid></item><item><title><![CDATA[New comment by nkantar in "Ask HN: Who wants to be hired? (January 2024)"]]></title><description><![CDATA[
<p><p><pre><code>    Location: Los Angeles, CA, USA
    Remote: Yes, exclusively
    Willing to relocate: No
    Technologies: Python, AWS, TypeScript, open to others
    Résumé/CV: https://nkantar.com/resume
    Email: hn@nkantar.com
    More: https://nkantar.com/blog/2023/08/hire-me-v202308/</code></pre></p>
]]></description><pubDate>Tue, 02 Jan 2024 17:58:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=38844652</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=38844652</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38844652</guid></item><item><title><![CDATA[New comment by nkantar in "Ask HN: Who wants to be hired? (December 2023)"]]></title><description><![CDATA[
<p><p><pre><code>    Location: Los Angeles, CA, USA
    Remote: Yes, exclusively
    Willing to relocate: No
    Technologies: Python, AWS, TypeScript, open to others
    Résumé/CV: https://nkantar.com/resume
    Email: hn@nkantar.com
    More: https://nkantar.com/blog/2023/08/hire-me-v202308/</code></pre></p>
]]></description><pubDate>Mon, 04 Dec 2023 21:57:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=38523719</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=38523719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38523719</guid></item><item><title><![CDATA[New comment by nkantar in "Skyfield: Elegant Astronomy for Python"]]></title><description><![CDATA[
<p>If anyone wants a fun story, Brandon Rhodes is a wonderful storyteller, and this talk involves the linked library as well: <a href="https://www.youtube.com/watch?v=cYHP3oRGjG8" rel="nofollow noreferrer">https://www.youtube.com/watch?v=cYHP3oRGjG8</a></p>
]]></description><pubDate>Fri, 01 Dec 2023 05:27:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=38483495</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=38483495</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38483495</guid></item><item><title><![CDATA[New comment by nkantar in "Ask HN: Who wants to be hired? (November 2023)"]]></title><description><![CDATA[
<p><p><pre><code>    Location: Los Angeles, CA, USA
    Remote: Yes, exclusively
    Willing to relocate: No
    Technologies: Python, AWS, TypeScript, open to others
    Résumé/CV: https://nkantar.com/resume
    Email: hn@nkantar.com
    More: https://nkantar.com/blog/2023/08/hire-me-v202308/</code></pre></p>
]]></description><pubDate>Wed, 01 Nov 2023 17:55:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=38102135</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=38102135</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38102135</guid></item><item><title><![CDATA[New comment by nkantar in "Ask HN: Who wants to be hired? (October 2023)"]]></title><description><![CDATA[
<p><p><pre><code>    Location: Los Angeles, CA, USA
    Remote: Yes, exclusively
    Willing to relocate: No
    Technologies: Python, AWS, TypeScript, open to others
    Résumé/CV: https://nkantar.com/resume
    Email: hn@nkantar.com
    More: https://nkantar.com/blog/2023/08/hire-me-v202308/</code></pre></p>
]]></description><pubDate>Thu, 12 Oct 2023 18:16:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=37860825</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=37860825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37860825</guid></item><item><title><![CDATA[New comment by nkantar in "My Unhealthy Relationship with Keyboards"]]></title><description><![CDATA[
<p>My experimentation largely ended when I got an ErgoDox EZ a few years ago. Ergonomic + ortholinear has been life changing, and it’s hard to go back, even for relatively short bursts on the built-in laptop keyboard itself.<p>I recently got an OLKB Planck to see if I like it enough to travel with it, as the ErgoDox is a bit hefty for that use case.</p>
]]></description><pubDate>Wed, 27 Sep 2023 15:43:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=37676349</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=37676349</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37676349</guid></item><item><title><![CDATA[Favorite Command Line Tools]]></title><description><![CDATA[
<p>Article URL: <a href="https://nkantar.com/blog/2023/09/fave-cli-tools/">https://nkantar.com/blog/2023/09/fave-cli-tools/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=37571146">https://news.ycombinator.com/item?id=37571146</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 19 Sep 2023 15:18:02 +0000</pubDate><link>https://nkantar.com/blog/2023/09/fave-cli-tools/</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=37571146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37571146</guid></item><item><title><![CDATA[New comment by nkantar in "Tell HN: Stripe Destroyed Our Business after 7 months of building our product"]]></title><description><![CDATA[
<p>It feels—and I fully understand feelings are fishy—like this has become an extremely common problem.<p>If someone asked me what to use for payments on a new project, I don’t think I’d feel comfortable suggesting Stripe, based solely on what I keep reading about the company on HN. That itself also feels a bit weird, especially without a clear alternative.<p>I myself have used Stripe for a few tiny things over the years, and have never had an issue, but I’d be surprised if I’ve put more than $100 total through the platform.<p>---<p>Edit: The comments some have about the legitimacy of the OP’s business may make this particular case a non-issue, to be fair.</p>
]]></description><pubDate>Sun, 17 Sep 2023 16:22:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=37546715</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=37546715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37546715</guid></item><item><title><![CDATA[New comment by nkantar in "I paid for Sublime Text"]]></title><description><![CDATA[
<p>That’s pretty cool, thanks for sharing!</p>
]]></description><pubDate>Thu, 14 Sep 2023 13:30:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=37508781</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=37508781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37508781</guid></item><item><title><![CDATA[New comment by nkantar in "I paid for Sublime Text"]]></title><description><![CDATA[
<p>I had this exact thought when I first started using Fantastical a bit over a year ago. Would 100% be interested, even for my relatively easy needs.</p>
]]></description><pubDate>Thu, 14 Sep 2023 02:09:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=37504109</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=37504109</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37504109</guid></item><item><title><![CDATA[New comment by nkantar in "I paid for Sublime Text"]]></title><description><![CDATA[
<p>Ha, amusing read—thanks for the chuckle.<p>I paid for Sublime Text 3 while I was still using it. Even though I switched away (to Vim/Neovim, then Kakoune, then Helix), I don’t regret it at all. It was a fantastic tool I used for about two to three years, and it brought me far more value than the $70 it asked for in return.<p>In fact, I’ve since bought a ton of other software when it’s proven useful more than the free alternatives. I’m particularly happy when it’s sold by a small team, just like Sublime. Some favorites I currently have installed: Acorn, Fantastical, Ivory, Monodraw, Things, Transmit, and Tweetbot (RIP).</p>
]]></description><pubDate>Thu, 14 Sep 2023 02:03:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=37504071</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=37504071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37504071</guid></item><item><title><![CDATA[New comment by nkantar in "Ask HN: Who wants to be hired? (September 2023)"]]></title><description><![CDATA[
<p>Location: Los Angeles, CA, USA<p>Remote: Yes, exclusively<p>Willing to relocate: No<p>Technologies: Python, AWS, TypeScript, open to others<p>Résumé/CV: <a href="https://nkantar.com/resume" rel="nofollow noreferrer">https://nkantar.com/resume</a><p>Email: hn@nkantar.com<p>More: <a href="https://nkantar.com/blog/2023/08/hire-me-v202308/" rel="nofollow noreferrer">https://nkantar.com/blog/2023/08/hire-me-v202308/</a></p>
]]></description><pubDate>Fri, 01 Sep 2023 22:43:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=37356918</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=37356918</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37356918</guid></item><item><title><![CDATA[New comment by nkantar in "Ask HN: Could you share your personal blog here?"]]></title><description><![CDATA[
<p><a href="https://nkantar.com/blog/" rel="nofollow noreferrer">https://nkantar.com/blog/</a><p>Fairly low frequency, Python, general tech, and some personal-ish stuff occasionally.</p>
]]></description><pubDate>Thu, 06 Jul 2023 00:30:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=36609269</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=36609269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36609269</guid></item><item><title><![CDATA[New comment by nkantar in "Ask HN: Who got hired from HN?"]]></title><description><![CDATA[
<p>Years ago I was relocating to the Bay Area for personal reasons and asked someone I knew if he had any recruiter recommendations. He didn’t, but he was a YC founder, so he posted my details in a corner of HN reserved for them. I woke up to quite a few emails in my inbox, and one of them ended up being a match. Learned a ton from being employee #3, after the two founders.<p>I think I generally have a more skeptical view of HN than most others posting in this thread, but the value and uniqueness of parts of this community isn’t lost on me, especially with that personal experience.</p>
]]></description><pubDate>Fri, 02 Jun 2023 17:16:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=36167983</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=36167983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36167983</guid></item><item><title><![CDATA[New comment by nkantar in "Ask HN: Most interesting tech you built for just yourself?"]]></title><description><![CDATA[
<p>I’ve got a few that I think are interesting enough to share.<p>When I was getting divorced a few years ago, I had to wait out the mandatory six month waiting period (aka “cooling off” period). Since I had the actual date the divorce would be finalized, I wrote a script and scheduled it to send me a countdown every morning at 4am. For a few months upon waking up I was greeted by an SMS with the ever decreasing number. I called it my freedom counter and loved watching people I told about it go from curious to mildly uncomfortable to amused.<p>Years later I repurposed the idea and made a wedding day countdown. This one started counting up after the big day, for continuous joy.<p>At some point I started building a ridiculously tiny SaaS service around it (and even registered domains undorthe.wedding and dothe.wedding), but never got around to finishing and launching it.<p>---<p>I’ve been tracking my weight daily since 2019. I used to just add an entry to an Airtable base, but the free plan has a per-base entry limit I’ve long surpassed.<p>I didn’t want to pay $10/mo just for that one thing, so I built a solution which let me send an SMS with the daily weight to a Twilio number, which then sent a request to an API endpoint I built, which then stored it in a TinyDB file on the server, which I then backed up to Backblaze using restic. The code behind the endpoint also sent me a graph of the last two weeks worth of entries, and the date I last weight that much or less.<p>I then decided to decommission the server hosting the endpoint, and in order to avoid having to pay for something else rebuilt it as a combination of Airtable and GH Actions. I have a base in which I enter the daily weight, then a GH Action fires a few hours later, and it gets all the entries in the base, reads a TinyDB file from a separate repo, updates relevant records, updates the TinyDB file, and deletes old entries from the Airtable base. This is now costing me $0, which is fun in its own right.<p>---<p>I started working from home during the pandemic, and my living room worked quite well as a personal office while I was single, living with just a cat. As my wife and I moved in together, there have been some challenges with working from a shared space, and we particularly found a need to communicate when I’m on a video call.<p>I used the Circuit Playground Express I got at PyCon 2019 as an on-air light. It was plugged into my computer, which exposed it as a USB drive, and it ran an infinite loop that set the LEDs to red if I was on a call and green if I wasn’t. I wrote a script that would detect the presence of a Zoom call process to do that automatically, and then another to manually toggle the flag using xbar.<p>---<p>EDIT: I thought of one I actually wrote for work! We’re a small team and were discussing making our on-call rotation official some time ago. Since we were starting from scratch, I suggested we try daily rotations (instead of the customary weekly ones), largely based on some things I’d read right here on HN. We don’t yet use any tooling beyond a manually managed Google Calendar, so I wrote a script to generate a fair schedule (e.g., no one gets stuck with all Fridays) and output importable files for both the shared calendar and people’s individual ones. We’ve used it for a few periods of time, and it seems to be good enough for our needs.</p>
]]></description><pubDate>Fri, 28 Apr 2023 17:32:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=35744475</link><dc:creator>nkantar</dc:creator><comments>https://news.ycombinator.com/item?id=35744475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35744475</guid></item></channel></rss>