HN user

josh3736

197 karma

https://josh3736.net

Posts1
Comments49
View on HN

It's the filesystem filter drivers that slow things down, not the filesystem drivers (ie NTFS) themselves.

Filter drivers sit a layer above the filesystem driver and allow you to hook file operations to do things like antivirus scanning, transparent encryption and compression, realtime backups, and implement virtual files (à la Dropbox and OneDrive cloud files that are deleted from local storage and JIT downloaded when accessed).

Those are all useful features, but you pay for the extensibility with performance.

To answer your question, obviously no—at least not in a default configuration—but all that stuff can be disabled if you're so inclined, which would leave you with a Microsoft operating system featuring NTFS without the filters and Defender.

But I'm not sure what point you're trying to make. Different operating systems make different trade-offs?

My (possibly uninformed) understanding at the time was that it was Docker, not solely filesystem performance.

WSL1's file performance is pretty much as good as it gets on Windows, since open(2), read(2), etc are all translated directly in-kernel from Linux to Windows API calls. It's still slower than a real Linux kernel since Windows' filesystem filter drivers add a lot of overhead to every operation, and Windows Defender and its realtime scanning in particular makes it 10x worse. (NTFS itself is fine.)

WSL1's filesystem situation is now "fixed" by Dev Drive, which is just a new partition with most filters disabled and Defender is put in to a different mode where scanning is asynchronous instead of blocking every open(2).

WSL2's mounts of Windows disks still has to deal with all of the above, plus the overhead of serializing every operation over a VM socket, which is largely fixed by what this article describes. So even if you've enabled virtiofs to speed up WSL2's cross-VM transfers, you're still going to hit the same Windows filesystem caveats that apply to WSL1 and native Windows apps.

On the other hand, the WSL2 in-VM ext filesystem (ie, the / mount) will be the fastest to Linux apps since it never touches the Windows side, but accessing those files from Windows sucks since they're buried in a VHD image, accessed over a slow 9p (I think) network-like mount on \\wsl.localhost\distro\

All of that to say filesystem perf may or may not have been a factor in the switch from WSL1's very cool NT persona architecture to WSL2's decidedly more boring VM design, but it was pretty clear that Docker was the real showstopper.

Devs needed to run containers, and WSL1 couldn't (and still can't) do it.

I imagine Microsoft took a look at what it would take to implement container support in the NT kernel to the point that Docker would work, and decided it was simply too much work when they could just slap a VM in and get the entire Linux kernel API surface for free. So thus we got WSL2.

I still use WSL1 for light work like running ssh, since there's basically no overhead at all (5 MB of RAM total to run ssh), compared to needing to run an entire second OS in WSL2. And as long as you don't need any containers, even heavier work runs nicely on WSL1 since there's no VM overhead or network NAT shenanigans.

But if you need containers, you need WSL2.

What wasn't immediately clear to me is that you're meant to set up Raspberry Pis with a Pi camera attached, and that serves as the camera device. This then provides E2E encryption directly between the Pi and the Secluso mobile app via a cloud relay service that just shovels the encrypted bytes.

Contrast with https://frigate.video/, which is a locally installed NVR server that pulls camera feeds over the LAN (from a very wide range of off-the-shelf IP cameras) and does all kinds of really neat local processing to do things like (optionally hardware-accelerated) object and audio detection, face recognition, ALPR, semantic search over recorded video, and more — while still maintaining similar privacy guarantees.

It's great that you've done reproducible builds for camera firmware, since that means you don't have to trust a shady IP camera vendor to be competent. Of course, with off-the-shelf stuff, you can largely avoid the security issues there by putting your cameras on a VLAN that can only reach your NVR.

What I don't get is why there needs to be a cloud relay involved at all. If you're fully E2E encrypted anyway, just have the app communicate directly with the camera via STUN.

I see you're planning on selling the preassembled hardware. There's definitely something to be said for "buy this device, download app, done" ease of setup for the wider market that meaningfully improves their privacy over Ring/Nest/et al. But for the power user and self-hosting crowd, I think Frigate makes a lot more sense.

the company prevent you from working in any open source work, including personal ones without a written permission, and everything you do will be the company property on or off duty

PSA: If you're in California, these kinds of employment contract terms are (mostly) illegal and unenforceable.

Labor Code 2870 outright invalidates any employment contract provision which attempts to claim ownership of IP rights to anything “that the employee developed entirely on his or her own time without using the employer’s equipment, supplies, facilities, or trade secret information” unless it relates to the employer's business or results from other work performed for the employer.

Labor Code 96(k) prohibits employers for disciplining or firing an employee who engages in “lawful conduct occurring during nonworking hours away from the employer’s premises,” with an exception for contracts that prohibit conduct by the employee that is in direct conflict with the employer’s “essential enterprise-related interests.”

So blanket prohibitions are out. If you're doing something that closely relates to your employer's products/business or could be construed as a conflict of interest, that's when you should consider written permission, but a company can't say “no” unless it actually relates to the company's business.

California is relatively unique in these worker protections, and they're a big reason why Silicon Valley became what it is.

It has been a long time since I've done this, but:

If your Android is rooted, it's pretty easy to get tethering working. There's magisk modules that can fix the TTL problem and/or disable the hidden carrier-installed software that Android will ask for permission before enabling tethering.

Agreed the website is poorly organized, but if you click About, you get that paragraph:

https://tvheadend.org/p/about

Tvheadend is the leading TV streaming server and recorder for Linux supporting ATSC, DVB-C/C2, DVB-S/S2, DVB-T/T2, ISDB-T, IPTV, SAT>IP and HDHomeRun input sources. Tvheadend outputs HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streams, and can ingest multiple Electronic Program Guide (EPG) formats including over-the-air (OTA) broadcast data for DVB and ATSC, and OpenTV extensions like XMLTV and PyXML.

So it's a DVR project in the vein of TiVo and Windows Media Center.

Untitled story 4 months ago

There's no reason you have to run ESPHome on your Home Assistant server.

It's offered as a HA a̵d̵d̵o̵n̵ app for ease of use (makes it a one-click install), but you can also just `pip install esphome` or use the provided Docker image and get the exact same UI, but with everything (including compilation) running on your much beefier laptop.

So your binaries get compiled quickly and you can still do the OTAs directly from your laptop. HA needn't be involved.

0HN

You can still install the whole kit and caboodle using pip in a Python virtual environment, but why would you?

This is how I did it, instead of the container or HA OS in a VM.

If you want the simplicity of everything preconfigured, managed, and hands-off, go with HA OS, whether in a VM on a beefier machine, standalone, or the HA Green/Yellow dedicated hardware.

But if you already have a home server and want to add HA, I found just pip installing to be easier than dealing with the container.

Maybe I'm just the silly type that enjoys fiddling with Linux, but I'd argue that it actually makes more sense to install HA bare metal over a container. HA doesn't actually have any major dependencies outside of what pip installs, so setup wasn't any more annoying than via container. And then you never have to deal with container annoyances like passing hardware through to it or weird failures and misconfigurations.

Contrast this with https://frigate.video/, which has so many fragile native dependencies and a super complex stack that trying to install manually is an exercise in futility. I gave up and used the container.

Sure, but this article spends paragraphs talking about the (real) problems with TCP, then suggests that the solution is a UDP-based transport with WireGuard-ish crypto.

…but there's a giant guaranteed-and-ordered-delivery-sized hole in that argument, which is my point. The article never addresses what you lose when going from TCP to UDP. You can't just swap out your app's TCP-based comms with this and call it a day; you're now entirely responsible for dealing with packet loss, order, and congestion if that's important to your application. Why DIY all that if you could just use QUIC?

Granted I haven't personally tried to run QUIC on embedded hardware, so I can't speak to its weight, but I do see someone did it¹ on an ESP32 (ngtcp2 + wolfSSL), so it can be done with < 300 kB of RAM.

I wonder how much RAM this WireGuard-based approach requires. The implementation here is in .NET, so not exactly appropriate for light hardware either.

Regarding browser support for UDP, you'll never get raw UDP for obvious reasons, but the WebTransport API² gives you lowish-level access to UDP-style (unreliable and unordered) datagrams with server connections, and I believe WebRTC can give you those semantics with peers.

¹ https://www.emqx.com/en/blog/can-esp32-run-mqtt-over-quic

² https://developer.mozilla.org/en-US/docs/Web/API/WebTranspor...

The much more likely culprit is your VPN server's port. If it's running on some no-name port (such as the default 51820), that's likely to get throttled.

I'd bet that switching your VPN server port to 443 would solve the problem, since HTTP/3 runs on 443/udp.

This is a clever reuse of WireGuard's cryptographic design, and may indeed make sense as a way to slap some low-overhead encryption on top of your app's existing UDP packets.

However, it's definitely not a replacement for TCP in the way the article implies. WireGuard-the-VPN works because the TCP inside of it handles retransmission and flow control. Going raw WireGuard means that's now entirely up to you.

So this might be a good choice if you're doing something realtime where a small number of dropped packets don't particularly matter (such as the sensor updates the article illustrates).

But if you still need all your packets in order, this is probably a bad idea. Instead, I'd consider using QUIC (HTTP/3's UDP protocol), which brings many of the benefits here (including migration of connections across source IP address and no head-of-line-blocking between streams multiplexed inside the connection) without sacrificing TCP's reliability guarantees. And as the protocol powering 75% of web browsing¹, is a pretty safe choice of transport.

¹ https://blog.apnic.net/2025/06/17/a-quic-progress-report/

This is an… interesting choice for archival purposes. What exactly do you think makes HFS+'s reliability better? The only thing I can think of is that HFS+ has journaling while FAT and derivatives do not, but that doesn't particularly matter after the data is on the disk and it's cleanly unmounted (which should be a safe assumption in most archival scenarios).

The Linux HFS+ driver is basically unmaintained, and cannot write to journaled disks. On Windows, the only choice a paid driver. I guess it's fine if you're strictly a Mac user, but it's a real problem if you need to access the disk on another machine. Even if you don't, I still wouldn't trust Apple for long-term support of anything.

Meanwhile exFAT has native support on Windows, Mac, and Linux, and there are drivers for BSDs and others.

So 20 years down the line, you'll certainly have something that can read an exFAT drive without much if any pain, regardless of which platform you're using at the time. HFS+? Who knows.

That said, I'd consider ZFS or btrfs for HDD archival. Granted broad (Mac/Windows) support is weaker than FAT, but at least the filesystems are completely open source. But what really makes them interesting is their automatic data checksumming to detect (and possibly repair) bitrot, which is particularly useful for archival.

It does really depend on how much data you want to store, but if you've got a lot of it…

Tape.

Obviously extreme prosumer, but for long-term archival of lots of data, LTO tape wins in several ways:

- Discs just aren't actually that high capacity relative to modern HDD capacities. BD XL maxes out at 128 GB, while there are now 30 TB HDDs readily available. That's 240 discs per HDD. Modern LTO tapes store 12-18 TB, or 2-3 tapes per HDD.

- Anything flash-based is a bad choice for long-term storage. SSDs are very fast, but also (relatively) expensive at 15-20¢/GB. Reputable SD cards are in the same neighborhood. Despite the OP redditor's results here, flash is only expected to retain data for 5-10 years.

- Tape is the absolute lowest cost-per-GB you can find of any storage medium. At the moment, LTO 8/9 tape can be had on Amazon for ½¢/GB. Compare with BD-R at 2¢/GB, or BR-R XL M-disc at 15¢/GB. HDDs (spinning rust) are 2-3¢/GB.

- Consider also write speed. LTO can write 300+ MB/s. BD 16x maxes out around 68 MB/s.

- Manufacturers rate tapes for 30 years sitting on a shelf, and it wouldn't be surprising if they still read after 50 years¹. Plain BD-R lasts 5-20 years. M-disc is the interesting outlier, rated 100-1000 years.

Of course, the biggest problem with tape is the drives. While the media is dirt cheap, the drives are crazy expensive. It looks like you can pick up a used LTO-6 drive (2.5 TB tapes) on ebay for around $500. A brand new LTO-9 drive (18 TB tapes) will be $4000-5000.

In terms of breakeven points, a used LTO-6 drive + tapes beats plain BD after about 25 TB. Because of the cost of M-discs, they stop making sense after 1-2 TB. Purely on cost, a brand new LTO-9 drive + tapes doesn't beat used LTO-6 + tapes until about 800 TB (LTO-9 tape is ½¢/GB while LTO-6 tape is 1¢/GB), but there's definitely a point in there where the larger capacity of LTO-9 makes dealing with the physical media a whole lot easier.

So if you're looking for long-term storage for your photo album, a M-disc BD XL is probably a good choice. If you only have a few hundred GB of data, a couple discs + burner can be had for $300 or so, and you can be pretty sure your mom could manage to read the disc if necessary.

But if you're looking to back up your 100 TB homelab NAS, discs are not really feasible. You'll have to spend the next month swapping discs every 25 minutes², and then deal with your new thousand disc collection. Here's where a used LTO-6 drive makes a lot of sense. This is a real sweet spot if you can find a decent drive; all-in you'd spend about $1500 to back up your 100 TB.

This is what I do to backup my NAS — found an old LTO-6 drive and got a bunch of tapes. The drive plugs in to a SAS port (you might need a HBA PCI card, $50), and that's pretty much it. Linux has the drivers built in; it will show up as /dev/st0 and you can just point tar³ at it.

Finally, just to compare with cloud options, storing that 100 TB in AWS Glacier Deep Archive would run you slightly over $100/mo, so you're ahead with your own tapes after little over a year. Oh and don't forget to set aside an extra $8000 for data transfer fees should you ever actually want to retrieve your data lol.

---

¹ eg the Unix v4 tape that was recently found and successfully read after 52 years — https://news.ycombinator.com/item?id=45840321

² Or get a disc-swapping robot, but those run $4000-5000, at which point… you're better off with a brand new tape drive.

³ Thus using the Tape ARchiver program for its original purpose. Use -M to span tapes, tar will prompt you to swap.

Maybe the motherboard? Could that have a speaker built into it? That must be terrible for acoustics, but maybe useful for a little beep when something is wrong?

Yes, it was called the PC Speaker, and that's pretty much exactly what it was used for. https://en.wikipedia.org/wiki/PC_speaker

It was standard equipment through the (mid?) 90s, and completely independent of the (optional) PCM sound card.

Now PCM sound is built in to motherboards and the PC Speaker long ago faded into irrelevance. Modern motherboards don't even have headers to connect a PC Speaker. Some motherboards will emulate the PC Speaker over the built in sound output, but of course you need speakers plugged in and on to hear those beeps.

Let's Encrypt has nothing to do with this problem (of Certificate Transparency logs leaking domain names).

CA/B Forum policy requires every CA to publish every issued certificate in the CT logs.

So if you want a TLS certificate that's trusted by browsers, the domain name has to be published to the world, and it doesn't matter where you got your certificate, you are going to start getting requests from automated vulnerability scanners looking to exploit poorly configured or un-updated software.

Wildcards are used to work around this, since what gets published is *.example.com instead of nas.example.com, super-secret-docs.example.com, etc — but as this article shows, there are other ways that your domain name can leak.

So yes, you should use Let's Encrypt, since paying for a cert from some other CA does nothing useful.

Httpwtf? (2021) 2 years ago

You already can stream bodies as they're generated with chunked encoding; trailers aren't really needed for that.

Cookies might be useful, but I guess you could do

    <script>document.cookie = '…'</script>
right before the closing `</body>` if you really needed to set cookies late in the game.

I'd love to see something to send content hashes (that browsers would actually verify), replacing the obsolete `Content-MD5`. Maybe `Integrity`, matching the `integrity` HTML attribute used in SRI? It could be a header (for static content) or trailer (for dynamic content).

Httpwtf? (2021) 2 years ago

In addition to needing to be able to change your mind about the status code (which is really important), the latter simply won't work.

Pretty much every HTTP middlebox (proxies, CDNs, etc) treats HTTP headers as a unit, buffering them up until complete (ie receiving `\r\n\r\n` in HTTP/1 and a HEADERS or CONTINUATION frame with the END_HEADERS flag set in HTTP/2). Once complete, the middlebox applies its logic based on the complete header set, and only then does it flush the headers to the client.

So if you slow-roll your headers, they'll just sit in your CDN's buffer until your time-consuming processing has finished, and only then will the browser see anything (along with the first chunk of HTML), making the whole exercise futile.

This is why the 103 is useful. A reasonable middlebox will pass the 103 along to the client as soon as the header block is complete.

I think it's just you.

The first paragraph is clear to me. There is a law that allows workers to sue employers. There's a group trying to repeal it. Presumably repeal benefits businesses at the expense of workers. A political compromise has stopped the repeal efforts.

To this native speaker, "headed off" is a perfectly cromulent term: https://books.google.com/ngrams/graph?content=headed+off Even if it's not something you might hear in everyday speech, I'd say it's commonly used in political journalism.

The article itself is written well enough, provides enough background and context to give you a general idea of what's happening without editorializing. In other words, it's decent journalism.

It's almost certainly the real estate taxes.

In California, Prop 13 makes real estate tax effectively de minimis (especially if you bought a long time ago), and the higher income tax rates make up for that.

Texas rates are higher and there's no limitation on their growth.

This difference is obscured if you're a renter.

Opened my editor this morning to be greeted by a notification being abused to show an advertisement for Prisma's paid services.

I get it, money is no longer free and VCs want returns, so we've all gotta make a buck, but this is a breach of trust.

I really hate the idea that we're going to need adblock for our editors…

SF for 10 years

In this reporter's humble opinion, it's wild how dissonant the narrative about this city is with the reality on the ground. If you ask our relatives who watch too much cable news, they think we live in doom loop hellscape on the verge of total collapse. Yet when we go out and walk around different parts of the city… it's mostly nice. There's plenty of people out and about; it feels like things have recovered from pandemic-era decline.

Of course there are problem areas that do look like the Bell Riots might pop off at any moment, and I really do hope we find a way to address those problems. But the truth is, that makes up a small part of the city, and even in the sketchiest parts of SOMA, the homeless population et al will for the most part leave you alone; it's not particularly unsafe.

Pros: Lots to do. You can walk most places you'd want to go. Weather is always great. If you're in tech, it's the center of the universe, and the place you're most likely to maximize your career options. Plenty of meetups/events for every niche where you can meet people, network, etc.

Cons: Expensive, but that's why the salaries are higher. I'm told that if you're single, the dating scene is a nightmare. Not exactly an easy place for families either unless you've already won the startup lottery. I don't really see this discussed, and maybe it's a little uncomfortable to admit, but there is definitely a degree of having to be able to "make it", and not everyone can.

I’d like to find a model to apply in my HOA to slow or reverse the corporate takeover of my community…

I'm on the board of my condo building's HOA. 5 or 6 years ago, we passed a rule that requires 50% of units building-wide to be owner-occupied. Once the limit is reached, there's a waiting list for anyone who wants to rent their unit. (Meaning you must wait until an owner moves back in or sells their unit.) There's also a hardship waiver at the board's discretion.

The PE/RE investment firms won't touch units with this rule in place; a unit they can't rent makes no revenue and is a waste of capital for them.

Note that this (or any kind of arrangement meant to discourage these kinds of buyers) gets contentious when someone is selling, especially if they're struggling to find a buyer. We recently had someone who needed to sell quickly, had interest from some kind of firm, but no offers from normal buyers (ie human people) due to the soft market. The firm made an offer contingent on the HOA rescinding the rental rule. We were very much not inclined to do so, so there was a lot of tension until the sellers finally got an offer from humans.

(This is not meant to insinuate that PE firms are run by non-humans. Evidence remains inconclusive.)

Of course, this rule can also spook human buyers, but IME once the details and reasoning for the rule is explained, it isn't usually a blocker.

Of course one needs to assess the relative risks of your different options, and no one said that investing is risk-free. However, I must disagree with this premise.

What exactly is the "much higher" risk of having vs not having a mortgage? There shouldn't be any management overhead; put it on autopay and you don't need to think about it. I'm guessing you mean the risk of default in the event you find yourself unable to make the monthly payments, and consequentially losing your house.

Sure, the type of person who thinks solely in terms of monthly payments and wins a big chunk of change in the lotto would be well-advised to pay off their mortgage because (speaking in generalizations) they aren't making great financial decisions in the first place.

If you manage your finances prudently, I don't see simply having a mortgage as a major factor when comparing the risks of investing excess cash vs paying down the mortgage.

In a nightmare scenario, where you've invested all your excess cash and then find yourself unable to make mortgage payments in a down market, you still have the investments to draw on. Sure, you may be rather unhappy about taking a 20% haircut every month to make your mortgage payment, but you won't lose your house.

Plus, you'd still have other options in this scenario. Maybe you can negotiate temporarily reduced or interest-only payments. After all, your bank would probably prefer to not risk losing a sizeable chunk of their principal in a foreclosure. In a more systemic crash, maybe there's government assistance, deferment, or the like available (eg see 2008's https://en.wikipedia.org/wiki/Housing_and_Economic_Recovery_...).

And just because one doesn't have a mortgage doesn't make you immune to the risk of losing your home. You're still on the hook for property tax payments, and failing to manage those will end the same way.

Of course, this all assumes you're otherwise making good financial decisions anyway. Your mortgage should be affordable when you're making 100% of your normal and expected salary, and that you haven't bought too much house because you suddenly find yourself making 200%.

We should also understand that not everyone approaches personal finance the same way. I simply don't view a mortgage as some kind of existential stressor, and cannot relate to the "emotional burden" you allude to. It's just one other line item in the budget.

On the other hand, my other half hates even thinking about finances, and would certainly get anxious thinking about and trying to manage this kind of stuff — that's why I deal with it :)

For someone like that, I can understand how eliminating a mortgage can have value to them, for the reasons you describe. However, we must admit that this isn't exactly a rational thing, and it's not doing anyone any favors to pretend otherwise.

Let's run some basic numbers:

With a $1m loan at 4% APR over 30 years, you will end up paying $719k in interest.

This $1m loan will have a monthly payment of $4,774. Let's say you were to double your monthly mortgage payment, and pay $9.5k every month. This would get you paid off in ~11 years, and reduce your total interest paid to $232k, a 'return' of $487k over a decade.

On the other hand, if you paid your mortgage for 30 years and you invested your extra $4,774 (assuming VTI's average historical return of 9.81%), you'd end up with $10.5m, a return of $8.8m over 30 years.

Now contrast with paying off your mortgage in 11 years and then investing $9.5k every month for the following 19 years. You'll end up with $6.4m, a return of $4.2m.

$487k in interest savings + $4.2m of investment returns = $4.7m total return

Is paying your mortgage off early really worth $4,100,000 to you?

This very much depends, and probably isn't a good idea. Mortgages are some of the cheapest loans you can get.

You'll almost always be better off putting your extra cash into index funds instead of overpaying a mortgage.

Index funds historically return ~7% long-term, while your mortgage will likely be 3-5%. By overpaying a mortgage, you're missing out on an extra 2-4%: it's better to pay ~4% in order to get a gain of ~7% elsewhere.

Not to mention that every cent you put in to your mortgage is now locked in to your home equity, meaning it's difficult to access that money if you need it. You can sell your stock holdings and have the cash in a matter of days. Accessing the money you put in to mortgage repayment probably means taking out a HELOC or similar, which takes time and requires getting approved for the loan. If you're in a particularly bad situation, this might not even be plausible. And you'll pay extra interest for the privilege of accessing your own wealth.

On top of all of that, the tax implications are bad too. Long-term capital gains rates are low. Mortgage interest you pay is deductible. You lose both those benefits by overpaying your mortgage instead of investing the cash.

Of course, in fairness, early repaying a mortgage is a guaranteed return of 4%, while investing in the markets carries risk. However, in OP's situation—where they likely won't need any of this extra cash on short notice—you can ride out down markets and sell once they've recovered.

Wefunder | Software Engineer + | San Francisco | Full-time Wefunder is building a new stock market for startups, opening angel investing to the public. Anyone can invest as little as $100 in startups they love. Our pitch: https://wefunder.com/wefunder

We're growing like crazy: https://wefunder.com/pbc

We're looking for frontend, full-stack, and backend engineers of all levels. We're in particular need of senior engineers (or beyond).

Location: Wefunder's recently reopened HQ is in San Francisco. We will strongly prefer candidates who live in the SF Bay Area or want to relocate, but we're also open to fully-remote candidates who have a proven track record of working remotely effectively. We will consider senior-level candidates requiring visa sponsorship.

Full description & apply: https://jobs.lever.co/Wefunder/cf0fdd96-f95f-4c55-a036-81ebc...

I also recently appeared on the Chasing Squirrels podcast and talked about some of the things we're working on, our upcoming challenges, and what the hiring process is like: https://www.buzzsprout.com/1424242/8744729-136-josh-dague-vp...

The answer is "it depends" on the particular city, county, and/or state.

Florida is a little unusual in that state law makes a very wide range of information public and easy to get. In this case, the town has actually posted all the relevant documents on their website (https://www.townofsurfsidefl.gov/departments-services/town-c...), so you can just click that link to get the plans.

Other places have varying levels of access to building documents. In SF, for example, DBI maintains plans and other documents, but state law prohibits reproduction without the property owner's consent. A member of the public can, however, make an appointment to view the plans in the DBI office. (https://sfdbi.org/DOP)

But generally, yes, all buildings' plans are maintained by (usually) the county-level office that issues permits.