News for hackers. Stuff that matters.

nkantar

Re:Claude Code: Now in Beta in Zed on Wednesday September 03, 2025 @11:38PM (#45123271)
They mean holding the Command key when pressing the comma key, which should work.
Re:Static Sites with Python, uv, Caddy, and Docker on Sunday August 24, 2025 @02:53AM (#45001961)
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.

I’m glad this lead to some learning for you! Some of the comments did that for me, which is great.

Re:Static Sites with Python, uv, Caddy, and Docker on Saturday August 23, 2025 @08:36PM (#45000250)
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: https://news.ycombinator.com/item?id=44993875
Re:Static Sites with Python, uv, Caddy, and Docker on Saturday August 23, 2025 @08:31PM (#45000227)
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!
Re:Static Sites with Python, uv, Caddy, and Docker on Saturday August 23, 2025 @02:53AM (#44993875)
Author—though not OP—here. I’ll try to broadly address the questions, which are all fair.

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.

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.

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.

Re:Ask HN: Who wants to be hired? (January 2024) on Tuesday January 02, 2024 @12:58PM (#38844652)

    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: [email protected]
    More: https://nkantar.com/blog/2023/08/hire-me-v202308/
Re:Ask HN: Who wants to be hired? (December 2023) on Monday December 04, 2023 @04:57PM (#38523719)

    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: [email protected]
    More: https://nkantar.com/blog/2023/08/hire-me-v202308/
Re:Skyfield: Elegant Astronomy for Python on Friday December 01, 2023 @12:27AM (#38483495)
If anyone wants a fun story, Brandon Rhodes is a wonderful storyteller, and this talk involves the linked library as well: https://www.youtube.com/watch?v=cYHP3oRGjG8
Re:Ask HN: Who wants to be hired? (November 2023) on Wednesday November 01, 2023 @01:55PM (#38102135)

    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: [email protected]
    More: https://nkantar.com/blog/2023/08/hire-me-v202308/
Re:Ask HN: Who wants to be hired? (October 2023) on Thursday October 12, 2023 @02:16PM (#37860825)

    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: [email protected]
    More: https://nkantar.com/blog/2023/08/hire-me-v202308/
Re:My Unhealthy Relationship with Keyboards ⌨ on Wednesday September 27, 2023 @11:43AM (#37676349)
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.

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.

It feels—and I fully understand feelings are fishy—like this has become an extremely common problem.

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.

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.

---

Edit: The comments some have about the legitimacy of the OP’s business may make this particular case a non-issue, to be fair.

Re:I shamefully paid for Sublime Text on Thursday September 14, 2023 @09:30AM (#37508781)
That’s pretty cool, thanks for sharing!
Re:I shamefully paid for Sublime Text on Wednesday September 13, 2023 @10:09PM (#37504109)
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.
Re:I shamefully paid for Sublime Text on Wednesday September 13, 2023 @10:03PM (#37504071)
Ha, amusing read—thanks for the chuckle.

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.

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

Re:Ask HN: Who wants to be hired? (September 2023) on Friday September 01, 2023 @06:43PM (#37356918)
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: [email protected]

More: https://nkantar.com/blog/2023/08/hire-me-v202308/

Re:Ask HN: Could you share your personal blog here? on Wednesday July 05, 2023 @08:30PM (#36609269)
https://nkantar.com/blog/

Fairly low frequency, Python, general tech, and some personal-ish stuff occasionally.

Re:Ask HN: Who Got Hired? on Friday June 02, 2023 @01:16PM (#36167983)
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.

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.

I’ve got a few that I think are interesting enough to share.

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.

Years later I repurposed the idea and made a wedding day countdown. This one started counting up after the big day, for continuous joy.

At some point I started building a ridiculously tiny SaaS around it (and even registered domains undothe.wedding and dothe.wedding), but never got around to finishing and launching it.

---

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.

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.

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.

---

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.

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.

Re:Everything Is a Practice on Thursday April 06, 2023 @07:04PM (#35475733)
This is one of my favorite quote and last year I learned it wasn’t actually Aristotle’s: https://medium.com/the-mission/my-favourite-quote-of-all-tim...
In addition to immense personal satisfaction, I’ve found the following benefits to maintaining a website, specifically with a blog:

- I conducted two job hunts publicly, and each time I published a "hire me" post that I could use as a sort of generic cover letter. It helped me flesh out what I was looking for, and what a potential employer should be looking for in order for my employment there to make sense. It also resulted in some extremely high quality interviews in instances where the hiring manager took the time to read through them, and in one case eventual long-term employment, which is still ongoing.

- After I gave a talk at several meetups and a conference, I published a post that both linked to the recording and was also a written version. Every so often an appropriate opportunity to share finds me, and I’m glad to have it ready. I’ve gotten very positive, grateful feedback on this from several relative newcomers to programming specifically, and one of them eventually directly reached out with a job opportunity.

- I’ve referenced several of my posts long after publishing them, as they were notes on something I had figured out but would forget each time. Private notes could also work here, but publishing them publicly encouraged me to be thorough.

- The platform I use for the site has changed a number of times over the years, but most of the iterations have been some sort of Python based static site generator or dynamic web app. Back when I started maintaining it in 2014, I was quite new to Python, and building and rebuilding the site definitely taught me things that have come in handy at work.

I’m sure there are other direct effects I’m forgetting, and a plethora of indirect ones. I consider it an extremely worthwhile effort.

Re:Apple is convinced my dog is stalking me on Wednesday February 22, 2023 @11:47AM (#34898382)
I recently bought a few AirTags to track our vehicles—two bicycles, a motorcycle, and a car—and have been fairly disappointed.

The inability to pair to a family plan (or even just multiple individual accounts) makes it useless for anything we share, like the aforementioned car. Ditto for our pets, which would be at least somewhat appealing if that weren’t an issue.

I’ve put them on the vehicles we don’t share, and have been mostly amused when I ride somewhere and walk away from the bike. I suppose it’s good I haven’t really tested it any more than that.

I’d order quite a few more if we could share them, but as it is I’ll even replace the ones we have in use if I happen across an alternative that fits the bill.

I also removed the speakers[0] to make them slightly harder to pinpoint in case of actual theft.

[0]: https://www.youtube.com/watch?v=AY-CGheQ53M

That doesn’t account for the loss of goodwill, risky strategy!
I love that one, and this perhaps more educational take: https://www.reddit.com/r/ProgrammerHumor/comments/pafo1v/und...

(direct) https://i.redd.it/e7ltreiv98j71.png

I do both.

Publicly, I write a blog[0] mostly about random technology things. I don’t think I’ve ever published anything too controversial, but I’m also very privileged and have a tiny audience comprised mostly by people I know. I do this primarily because I enjoy it. The main con I’ve experienced so far has been pressure to write things worth reading.

Privately, I journal as a form of self-reflection, something I’ve done on and off for a few years now, both independently and in conjunction with therapy. It’s been helpful having a space to ask myself embarrassing questions without any repercussions. The main con has been the guilt I feel when I neglect this habit.

[0]: https://nkantar.com/blog

Re:Ask HN: What Are You Working on This Year? on Tuesday January 03, 2023 @12:13AM (#34227964)
Presuming the question is primarily aimed at software/technology, I’m working on an email checker for the macOS menu bar. (Shameless plug: there’s a sketch and an extremely low volume newsletter available for anyone interested in eventual progress.[0])

More broadly but still related, tomorrow I start as a Squad Lead at work, which will be my first foray into any sort of people management. Excited to learn new types of skills!

[0]: https://binarywidgets.com

Re:P-22 Has Died on Sunday December 18, 2022 @10:25PM (#34048040)
In this city full of transients, P-22 was a true Angeleno. Sleep well, big kitty, and thank you for everything you’ve done for local wildlife awareness.
Thank you for Hurl—I started using it a few months ago and it’s been a delight!
Re:Guthib on Friday October 14, 2022 @12:39PM (#33205805)
I misspell it as Githug far more often…

Older »