HNHacker News
TopNewBestAskShowJobs

mholt

11,919 karma · joined May 8, 2013

I'm the author of the Caddy web server. https://caddyserver.com

Twitter: https://twitter.com/mholt6

Personal: https://matt.life

[ my public key: https://keybase.io/mholt; my proof: https://keybase.io/mholt/sigs/X_pNtQp3_Et_7qwkBKVjmZv4dl7vP8bX83hu4N9lyz8 ]

(I do not use Keybase)

submissionscomments
mholt··on GitHub is down again
We can of course host our code elsewhere, the problem is the community is kind of locked-in. It would be very "expensive" to move, and would have to be very worthwhile. So far the math doesn't support that kind of change.

Usually an outage is not a big deal, I can still work locally. Today I just happen to be in a very GH-centric workflow with the security reports and such.

I'm curious how other maintainers maintain productivity during GH outages.

mholt··on GitHub is down again
Of course they're down while I'm trying to address a "High severity" security bug in Caddy but all I'm getting is a unicorn when loading the report.

(Actually there's 3 I'm currently working, but 2 are patched already, still closing the feedback loop though.)

I have a 2-hour window right now that is toddler free. I'm worried that the outage will delay the feedback loop with the reporter(s) into tomorrow and ultimately delay the patches.

I can't complain though -- GitHub sustains most of my livelihood so I can provide for my family through its Sponsors program, and I'm not a paying customer. (And yet, paying would not prevent the outage.) Overall I'm very grateful for GitHub.

mholt··on Waymo robotaxi hits a child near an elementary school in Santa Monica
The autonomous vehicle should know what it can't know, like children coming out from behind obstructions. Humans have this intuitive sense. Apparently autonomous systems do not, and do not drive carefully, or slower, or give more space, in those situations. Does it know that it's in a school zone? (Hopefully.) Does it know that school is starting or getting out? (Probably not.) Should it? (Absolutely yes.)

This is the fault of the software and company implementing it.

mholt··on Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)
I'm getting the same error, but ://gpu shows that WebGPU is "Hardware accelerated"
mholt··on Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)
Hmm, I'm getting "Failed to request WebGPU adapter. No compatible adapter found. This may occur if no GPU is available or WebGPU is disabled." but brave://flags reports that WebGPU is "Hardware accelerated." Any way for me to try this out?
mholt··on 6-Day and IP Address Certificates Are Generally Available
They are not in control of the US president.
mholt··on 6-Day and IP Address Certificates Are Generally Available
LE has 2 primary production data centers: https://letsencrypt.status.io/

But in general, one of the points of ACME is to eliminate dependence on a single provider, and prevent vendor lock-in. ACME clients should ideally support multiple ACME CAs.

For example, Caddy defaults to both LE and ZeroSSL. Users can additionally configure other CAs like Google Trust Services.

This document discusses several failure modes to consider: https://github.com/https-dev/docs/blob/master/acme-ops.md#if...

mholt··on 6-Day and IP Address Certificates Are Generally Available
It's less about IP address transience, and more about IP address control. Rarely does the operator of a website or service control the IP address. It's to limit the CA's risk.
mholt··on 6-Day and IP Address Certificates Are Generally Available
We've supported it for about a year!
mholt··on 6-Day and IP Address Certificates Are Generally Available
It works, but as another comment mentioned there may be quirks with IP certs, specifically IPv6, that I hope will be fixed by v2.11.
mholt··on Show HN: Rocket Launch and Orbit Simulator
Don't rockets also start with the same horizontal velocity though, since nothing canceled it out when it got off the launch pad?

It would be like jumping, and finding yourself ~250-400 meters away from where you lept by the time you landed.

That said, neat project, and way fun learning experience. Good job.

mholt··on We are discontinuing the dark web report
Discover (Card/Bank) also announced recently that they are stopping their dark web report service. I wonder if they just used Google, or if it's a coincidence...
mholt··on Astrophotographer snaps skydiver falling in front of the sun
I get the whole scarcity thing -- and I've even asked Andrew about this -- because if I'm willing to give him my money after saving up for it, but it sells out first, wouldn't he make more money if he took mine then?

But, I guess we just have to have an art budget with some money already set aside if we want to jump on opportunities when artists do this. I respect it, but yes it's a bit inconvenient.

PS. The full, uncropped shot is even more incredible IMO: https://cosmicbackground.io/cdn/shop/files/Overhead_black_li...

mholt··on SSL Configuration Generator
Great question. Servers should ship with secure defaults.
mholt··on How to fix subsystem request failed on channel 0
Make Error Messages Great Again

(Sorry, I hate that it has a political reference, but it's really how I feel about this. How the heck is that error message supposed to mean anything to anyone?)

mholt··on Users Stuck in YubiKey Re-Enrollment Loop on X (Twitter)
I am stuck in this loop as well. All devices, all attempts to clear cookies, log out and back in, etc, don't work.
mholt··on Perkeep – Personal storage system for life
Thanks for the mention!

Indeed, big fan of the idea of Perkeep, and its authors (I learned a lot about writing network code in Go from reading from Brad Fitzpatrick's contributions.)

Where Perkeep uses a super cool blob server design that abstracts the underlying storage, Timelinize keeps things simpler by just using regular files on disk and a sqlite DB for the index (and to contain small text items, so as not to litter your file system).

Perkeep's storage architecture is probably more well thought-out. Timelinize's is still developing, but I think in principle I prefer to keep it simple.

I'm also hoping that, with time, Timelinize will be more accessible to a broader, less-technical audience.

mholt··on Myna: Monospace typeface designed for symbol-heavy programming languages
I definitely increase my font size, so I'm not straining my eyes. Any monitor with a lower than about 120 PPI causes me strain, unless I really boost the size. For example I read HN at anywhere from 150-200%.
mholt··on Honda's ASIMO (2021)
I remember learning about Asimo in grade school. It felt like the future! Robots would be assisting me in daily life when I grew up.

Then like the space shuttle, it just disappeared. I feel like there was Asimo.... and then nothing for decades until now.

Sure I can have a robot do my dishes, but it's still more efficient to just use a dishwasher appliance.

mholt··on How memory maps (mmap) deliver faster file access in Go
I believe it's being returned by the FS driver, not mmap() necessarily. I think I knew what instruction it was when I was debugging it but don't remember right now. (I could probably dig through my LLM history and get it though.)

And yeah, I knew AI is useless, I try to avoid it, but when I'm way over my head it's better than nothing (it did lead me to the workaround that I mentioned in my previous comment).

mholt··on How memory maps (mmap) deliver faster file access in Go
I'd love to be wrong, but the address it's referring to is the correct address from the error / stack trace.

I honestly don't know anything about this. There's no search results for my error. ChatGPT and Claude and Grok all agreed one way or another, with various prompts.

Would be happy to have some help verifying any of this. I just know that disabling WAL mode, and not using Mac's ExFAT driver, both fixed the error reliably.

mholt··on How memory maps (mmap) deliver faster file access in Go
Just this month, I've learned the hard way that some file systems do not play well with mmap: https://github.com/mattn/go-sqlite3/issues/1355

In my case, it seems that Mac's ExFAT driver is incompatible with sqlite's WAL mode because the driver returned a memory address that is misaligned on ARM64. Most bizarre error I've encountered in years.

So, uh, mind your file systems, kids!

mholt··on OpenMaxIO: Forked UI for MinIO Object Storage
Wait'll you hear about:

- https://github.com/WedgeServer/wedge

- https://github.com/tmpim/casket

Both forks of Caddy...

mholt··on Radios, how do they work? (2024)
I got my amateur radio license last year, and this is precisely why I haven't been able to do much with it: seemingly all the guides, even the license study materials, use vocabulary I'm not familiar with. I have two CS degrees and a solid foundation in math, but I can't understand how radios work because of vocabulary more than the math.

My uncle who's been building his own radios for over 60 years, tried to explain to me how antennas work, and even to him it comes down to "black magic".

I'm told the way they work is not really intuitive, so you just have to math it out.

Maybe I should have gotten an EE degree.

mholt··on Go subtleties
The extended standard lib is pretty great, but definitely can't keep the Go compatibility promise, so it's good that it's separate.
mholt··on Next Steps for the Caddy Project Maintainership
Hey HN. Thanks for all the love and feedback. It's kind of a bittersweet decision; turning off notifications feels like closing your windows so you have to deliberately go outside to see what's going on. I like having the windows open. But too much was blowing in! Now I can better manage what I take on.

Anyway, I'm hoping this will help the project scale better on the development side. The community has shown that it can be responsible. Thanks for being a great part of it over the last 10+ years.

mholt··on Next Steps for the Caddy Project Maintainership
Just saw that come in. Thank you!
mholt··on Next Steps for the Caddy Project Maintainership
Haha, hi Mike!

(He and I were coworkers for a time.)

mholt··on Show HN: Timelinize – Privately organize your own data from everywhere, locally
I dunno. M1 might be fine, I just haven't tested it with an M1. If you enable semantic features, it does use a large model (not necessarily an LLM) for embeddings; but regardless it will generate thumbnails for images and videos, and transcode videos for playback, so a good GPU is helpful.
mholt··on Show HN: Timelinize – Privately organize your own data from everywhere, locally
That's just the joy of Go. But, I do wish I could have made this one a perfectly static application. I don't know if it is possible.
← PreviousPage 2 of 34Next →