HNHacker News
TopNewBestAskShowJobs

cweagans

1,850 karma · joined February 21, 2014

You can reach me at me@(my nick) dot net
submissionscomments
cweagans··on Ask HN: Who wants to be hired? (March 2025)
I worked with Nathan a couple years ago (Hi Nathan!) -- if you can hire him, you absolutely should. He'd be an amazing addition to any team.
cweagans··on Ask HN: How do I get good at math as a 42yo with kids?
The same way you become good at anything at any point in your life: decide you want to and then put in the deliberate/consistent practice to make it happen. Set aside 15-20 minutes per day, work through Khan Academy, Math Academy, or a precalculus textbook, and then (the hard part) keep doing that.
cweagans··on Ask HN: Would you still choose Ruby on Rails for a startup in 2025?
Rails or Laravel, take your pick. Personally, I've been using Laravel + Filament. It's so fast to get up and running with & it doesn't hamstring you when you want to do anything more complex.
cweagans··on Ask HN: Best dedicated server in the US
I have a VPS with Crunchbits and I’ve been pretty happy with it. They also have dedicated servers: https://www.crunchbits.com/dedicated#Plans

Same story with Racknerd: https://www.racknerd.com/dedicated-servers (they have new years deals rn too!)

cweagans··on Yadm: Yet Another Dotfiles Manager
Pretty sure there are a couple of aliases that you could create to get you the workflow you want. I just edit my files on disk, chezmoi add file, then periodically fit commit and push them. You could create a post add hook to automatically git add/commit/push + I’m reasonably sure there’s a chezmoi command to list all tracked files, so you could iterate through all of them and do whatever you want with them.
cweagans··on Yadm: Yet Another Dotfiles Manager
The workflow that you show in your repository is really not that different from Chezmoi. If you configure a post-add hook in Chezmoi (https://www.chezmoi.io/reference/configuration-file/hooks/), you can do `chezmoi add ~/.config/whatever/whatever.conf` and have the file auto-added to the Chezomi git repo + push it to some remote if you'd like.

yadm made it difficult for me to take specific actions when a file changed. For example, I configure a lot of macOS settings in my dotfiles (https://github.com/cweagans/dotfiles/tree/main/dot_config/ma...). When any of the JSONC files change, I need to run a script to actually apply them (https://github.com/cweagans/dotfiles/blob/main/.chezmoiscrip...), but I don't want to do that unconditionally. Chezmoi tracks that state for me and only runs the script when needed. Ditto with the macOS config profile (https://github.com/cweagans/dotfiles/blob/main/dot_config/ma... and https://github.com/cweagans/dotfiles/blob/main/.chezmoiscrip... respectively).

I was also not thrilled about the idea of shipping an encrypted blob of important secrets around. I want my dotfiles to be public, so it's much nicer when the tool I use for managing my dotfiles natively integrates with 1password. Much of the templating functionality that I use from chezmoi is specifically for pulling stuff out of 1password.

Finally, the yadm "alternate files" functionality is nice, but I didn't really care about alternates for different OSes or hostnames or whatever. I wanted some configuration for my work machine(s) and some configuration for my personal machine(s) - that's it. That's the only distinction I care about. Chezmoi made it easy to prompt for the type of machine + change the things that get configured accordingly when bootstrapping a new machine (https://github.com/cweagans/dotfiles/blob/main/.chezmoi.toml...).

cweagans··on Ask HN: How do you work with people who are "not quite smart"?
> What I'm talking about is people below average when it comes to understanding concepts, or conceptualizing altogether. Their intuition is always twisted and wrong. Completely lack critical feedback. Work needs to be decomposed for them in extremely precise steps if you want anything to happen.

Consider that the statement "their intuition is always twisted and wrong" is itself probably wrong. Their intuition is based on their professional and personal experiences. Two different people with different experience are not going to have the same intuition and that's okay. It's not productive to turn that into a personal judgement ("this person arrived at a different conclusion than I did - let's figure out why" is very different from "this person is an unteachable idiot")

Personally, I'd consider this an opportunity to help develop somebody's talent. I happen to find mentoring to be a very fulfilling part of the job though, so I lean into it a bit more than is strictly necessary. I'd probably start approaching this as a teaching problem, rather than a collaboration problem. If _telling_ this person something doesn't work, _show_ them. If that doesn't work, get some hands-on time by pairing with them on some tasks (in whatever configuration works -- try letting them navigate or drive, and you fill the other role).

If all of those things fail, go to your manager with something along these lines:

"I've been working with so-and-so on some things that they got stuck on. It has impacted the time that I have available for the work that is assigned to me. I'm happy to continue doing that if you're okay with the time investment (roughly x hours over the past month)."

If it's really impacting your work, they'll probably ask why it's taking so much time, so follow up with something like:

"In pairing with them, I've identified some knowledge gaps around x, y, and z -- the time spent is not just on the task at hand, but also in mentoring/teaching to get them up to speed in those areas. If it's too much time, we could consider investing in some training on those topics to get them up to speed independently. Once that foundation is laid, I think our pairing sessions could go much faster (or potentially be eliminated altogether). Alternatively, we could try pairing them with somebody else on the team -- it's possible that I'm not explaining things in a way that works for them."

Give them a lot of grace and focus on leveling up the team as a whole, rather than remedying your personal situation. You'll likely get more engagement from your manager that way, since your manager ostensibly _also_ wants to level up the team as a whole.

cweagans··on Yadm: Yet Another Dotfiles Manager
Yes, it does. https://yadm.io/docs/alternates#

I used yadm for a while. I switched to Chezmoi (https://www.chezmoi.io) though. Same ideas, but much better execution IMO.

cweagans··on A Note from Our Executive Director
If you have a 7 day expiration, some sysadmin is going to set up the renewal check on a weekly cron job. When the cert renewal fails, they don't have any time to act. 6 day expiration = you run the check daily. If something fails to renew, you might have a little more notice.
cweagans··on Show HN: Checkmate, a server and infrastructure monitoring application
At risk of sounding like the dropbox/rsync guy, is this materially different from what you can accomplish with Prometheus, the Blackbox exporter, (optionally) the node exporter, and Grafana?
cweagans··on NASA's Europa Clipper: Miles Down, Instruments Deploying
All of NASA uses PowerPoint a lot.
cweagans··on How I configure my Git identities
You don't need to specify your key file like that if you've got your keys loaded into an SSH agent. Or even better, IMO: use 1Password or similar that can both store your keys securely _and_ can be used directly as an SSH agent. That way, your SSH keys never need to be stored on disk in the first place.
cweagans··on My company has banned the use of Jetbrains IDEs internally
IMO, emacs isn't a real option when you're talking about a group of developers. The people for whom emacs is a real option likely already use emacs (same with (n)vim), but that choice is made at the individual level, rather than at the team level.

It's unlikely that a given team/workplace is going to roll out dev tooling that is just a pile of elisp. With VS Code, you can drop a couple of JSON files into your project, commit and push them, and then everyone has a preconfigured set of tools that match the needs of that project.

cweagans··on My company has banned the use of Jetbrains IDEs internally
It's not a stretch. The job market is terrible and has been for some time. I was 400-500 applications into my job hunt when I *finally* found something and that was at the end of 2022. It has gotten worse since then.
cweagans··on My company has banned the use of Jetbrains IDEs internally
I don't think anyone is arguing that emacs is *incapable* of being a good editor for Go and Python. I personally just don't want to. These same reasons are as applicable to emacs as they are to (neo)vim (which I used as my daily driver for a while).

1. I don't really want to bother with a DSL for configuring my editor (even if the language is usable outside of that context for other things)

2. I don't have time to bother with maintaining extensive configuration to get the level of code completion/refactoring/etc that I expect from a modern IDE (nor do I want to have to stop what I'm trying to work on to debug a problem with my config)

3. I don't want to have to research various plugins and stuff to provide functionality that I get out of the box with VS Code (or other editors)

4. I don't want to have a bespoke environment that only I understand when I'm trying to collaborate with my teammates

Don't get me wrong: I think digging into emacs and/or (neo)vim is a valuable thing to do and that everybody probably *should* do it at some point (even if only as an academic exercise), but to assert that they are a viable path for everyone is ignoring the reality that some people simply aren't interested in investing that time/effort into getting their tools working.

One can argue whether or not that stance is a good one or not, but you're just debating personal preferences and priorities at that point.

cweagans··on What scripts have you built to stand up a new server?
Do you have this published somewhere? I might be interested in collaborating if you're interested :)
cweagans··on Hacker Fab
How much is custom silicon from an established fab for the average person? I suspect that even a small run would be more than $50k, but I don’t have any point of reference.
cweagans··on An Idaho health department isn't allowed to give Covid vaccines anymore
Can confirm. I lived in one of the counties managed by SW District Health and it's an entirely different world. The crazies coming out in the lead up to the 2016 election didn't phase me at all: I grew up with them and they were no different then.
cweagans··on How were 70s versions of games like Pong built without a programmable computer?
Also try nandgame.com
cweagans··on GnuCash 5.9
> US banking is a shitshow which is decades European banking, addressing that would benefit everyone.

The problem that I (and many business owners) are solving for right now is not one of federal policy, but rather an economic one: I like to have food on the table to eat. I care very little about whether or not I'm doing that in a way that satisfies open source zealots.

If there's an open source option that lets me do what I need to do in an equal or better way, then sure: happy to go that route. But I'm not doing something in a clunky, nonstandard way just for the lulz.

cweagans··on Ask HN: Platform for 11 year old to create video games?
Humble Bundle has a Godot bundle is available for the next day or so. That might be a good one to look at if you're ok with leaning into code a bit (gdscript is very very similar to python). https://www.humblebundle.com/software/learn-godot-43-complet...

Also check out the RPG Maker bundle. That's pretty point-and-click. You can have something basic up and running in a couple minutes (literally just paint your tiles onto a map and click Go and you'll have a little jrpg). If you use the newest version, you can script it in Javascript. One major selling point here is that their "runtime package" (RTP) comes with a TON of game assets to use, so you don't have to track down/make art if you don't want to (you can, but I often get blocked on art when I'm playing with game dev). https://www.humblebundle.com/software/gotcha-gotcha-presents...

GBStudio is another good (free) one to look at. It's point and click for the most part and if you get a flash cart, you can play your game on a real Gameboy. Definitely not gonna be the most flashy, but it's a good exercise in making something fun with limited resources available. https://www.gbstudio.dev

GDevelop is another no-/low-code option: https://gdevelop.io

Defold is another scripting-heavy option (Lua): https://defold.com

cweagans··on Coffee Stats – Maximize Caffeine Intake and Get to Bed at Night
1mg should really be the max dosage that is available. Most people should take 0.3mg.

https://www.lesswrong.com/posts/E4cKD9iTWHaE7f3AJ/melatonin-...

cweagans··on Pay your share – open-source Pledge
According to https://opensourcepledge.com/join/, it appears that Open Source Pledge doesn't actually collect money. They are simply a listing page for companies that have met some criteria for open source donations.
cweagans··on Docker Desktop Alternative
Oh neat! Thanks for the tip!
cweagans··on Docker Desktop Alternative
Is there anything you can actually _do_ with the Apple GPUs outside of macOS? I know the Asahi Linux person was working on a driver for it, but is it in a useful state?
cweagans··on Show HN: Container Desktop – Podman Desktop Companion
Another enthusiastic +1 for OrbStack. It's fantastic.
cweagans··on Show HN: A CLI tool I made to self-host any app with two commands on a VPS
Sure, Dokku is still valuable without it. I've seen a ton of recommendations over the years to "just use Dokku" when people ask about simple hosting setups for their side hustle or whatever though. In that context, Dokku isn't really a viable option unless backups are in place - ideally OOTB. Without having backups OOTB, the idea of Dokku being a really easy way to get going is a little bit diluted, don't you think?

I sort of see it the same way as "just install Linux Mint, it's great, you'll love it", but when something doesn't work, it's "oh yeah, just open the terminal and ________": opening the terminal is the _last_ thing people want to do if they just wanna read their email or whatever.

cweagans··on Show HN: A CLI tool I made to self-host any app with two commands on a VPS
I don't think that's true. I opened https://github.com/dokku/dokku/issues/5008 a while back and Jose didn't seem to disagree.

Addressing your argument directly though: you know that if you spin up a Postgres database for your app, you need to dump the database to disk to back it up (or if you wanna get fancy, you can do a delta from the last backup + a full backup periodically). Anytime a Postgres database exists, you know the steps you need to take to backup that service.

Same with persistent file storage on disk: if you have a directory of files, you need a snapshot of all of those files.

Each _service_ can know how to back itself up. If you tell a Dokku _app_ to back itself up, what you really mean is that each _service_ attached to that app should do whatever it needs to do to create a backup. Then, dokku only needs to collate all of the various backup outputs, include a copy of the git repository that drives the app, tar/zstd it, and write it to disk.

As you pointed out, the user should probably be able to control the backup cadence, where those backups are shipped off to, the retention period, whether or not they are encrypted, etc, but the actual mechanics of performing a backup aren't exactly rocket science. All of the user configurable values can have reasonable defaults too -- they can/should Just Work (tm). There's value in having that work OOTB even if the backups are just being written to disk on the actual Dokku machine somewhere.

cweagans··on Safe C++
Swift runs on windows and linux too. It’s not limited to Apple devices by any means.
cweagans··on The workers have spoken: They're staying home
_Companies_ largely don't need people to be in-office, but if _you_ need to be in an office setting, why not find a coworking space?
← PreviousPage 5 of 32Next →