They mean holding the Command key when pressing the comma key, which should work.
HN user
nkantar
https://nkantar.com
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.
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
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!
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.
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/ 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/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
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/ 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/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.
That’s pretty cool, thanks for sharing!
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.
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).
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
Fairly low frequency, Python, general tech, and some personal-ish stuff occasionally.
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 service around it (and even registered domains undorthe.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.
---
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.
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.
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.
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.
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!
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!
I misspell it as Githug far more often…
Many years ago I dropped out of a Computer Science university program for a variety of reasons, but primarily because I was too disinterested to try all that hard. After a lifetime of computering, having started tinkering at 8, I simply had no alternative plan.
I took an aptitude test administered by the Johnson O’Connor Research Foundation[0] and the results were interesting and somewhat new to me. Of the many different potential career paths it indicated I would be good at, I chose design, and a few years later graduated with a Bachelor of Arts in Graphic Design/Visual Communication.
I was pretty OK as a design student, with a definite natural knack for it and learned skills that built on top of that foundation, so I tried my best to get a design job. With my web background, however, I got two contract gigs to write code instead, and then dove in after realizing I could succeed even without a CS degree. It’s been a decade now and I’m a reasonably senior software engineer who’s worked on a bunch of different stuff, and I love it.
My design background still comes in handy from time to time, especially the general problem solving skills I learned. It’s also a nice complementary set of skills for someone working on the web. And I probably wouldn’t have had that experience without the aptitude test that suggested I might be good at design.
Sure, I’m merely my own sample size of one, but that’s made me a big believer in aptitude testing results as useful information.