HNHacker News
TopNewBestAskShowJobs

drbawb

1,021 karma · joined January 16, 2012

drbawb - Hacker - interested in Go, Java, JavaScript, and Ruby. - My goal is to help explain and expand computing whenever the opportunity presents itself.
submissionscomments
drbawb··on “Computer security 80% solved if we deprecate technology shown in this graphic”
As far as I'm aware it's mostly a hack to avoid UAC elevation. If your goal is to get Chrome onto as many computers as possible: you have to be able to install without admin privs. (Also, even if the user can elevate themselves, I imagine the conversion rate is marginally better if you can avoid the "scary" UAC prompt. The conversion rate is definitely better if an unprivileged user can avoid invoking the wrath of their IT admins/policy.)
drbawb··on Displayport: A Better Video Interface
>Imagine how annoying it would be on a laptop?

>That would be an absolutely brain dead way of working.

For starters: the experience I want on my laptop is not the same as the experience I want on my desktop. I have two monitors at home, sometimes I like to turn off the wing-monitor when I am watching a movie on the center screen. (To avoid distraction, and also minimize glare, etc.) That doesn't mean I want those windows rearranged: that's probably going to interfere w/ the movie that is playing, fuck up my desktop wallpapers, icons, window sizes, etc. The whole point of turning off the monitor is to hide those distractions.

Also not all window managers suck as badly as Mac OS and Windows. By default I have odd-numbered virtual desktops go to the left montior, and even-numbered virtual desktops go to the right monitor. If I want to move a viewport to another monitor, I renumber it accordingly, and all the windows move to that monitor: complete w/ their proportional positions and sizes.

The idea that _a device hotplug event_ would change how my virtual desktops are laid out is so absurd to me that I switched operating systems to avoid the default Windows behavior. So maybe consider that paradigms and workflows other than "a docked laptop" exist before calling people braindead?

drbawb··on Displayport: A Better Video Interface
>There's a weird interaction with BIOS power on. The boot display drivers I have freak out if they aren't the active display and fail. I solve this by switching the KVM before I turn the computer on. After everything is booted into an OS, it works fine to switch.

Do you have an AMD GPU by any chance? I have the level1tech 2-head DP 1.4 KVM, with an AMD RX 560 on a Linux host, and after updating to kernel 6.4 recently my computer now boots fine without a monitor attached.

I had a similar issue where a display had to be _on_ and _connected_ (i.e: active on the KVM) at boot time, or the GPU wouldn't work at all. I could get in via SSH, so I tried various amdgpu recovery options, poking the device to reset it, reloading the kernel modules, etc., and never had any luck. I just lived with the quirk. It was problematic because if you left home with the KVM selected on the Windows guest, and needed to reboot the Linux host remotely, you'd come home to a non-functional Linux desktop.

drbawb··on We replaced Firecracker with QEMU
> An OS isn't large. Your spotify/slack/browser instance is of comparable size.

A fairly recent Windows 11 Pro image is ~26GB unpacked and 141k dirents. After finishing OOBE it's already running like >100 processes, >1000 threads, and >100k handles. My Chrome install is ~600MB and 115 dirents. (Not including UserData.) It runs ~1 process per tab. Comparable in scope and complexity? That's debatable, but I tend to agree that modern browsers are pretty similar in scope to what an OS should be. (The other day my "web browser" flashed the firmware on the microcontroller for my keyboard.)

They're not even close to "being comparable in size," although I guess that says more about Windows.

drbawb··on We replaced Firecracker with QEMU
The second I read "shared block cache" my brain went to containers.

If you want data colocated on the same filesystem, then put it on the same filesystem. VMs suck, nobody spins up a whole fabricated IBM-compatible PC and gaslights their executable because they want to.[1] They do it because their OS (a) doesn't have containers, (b) doesn't provide strong enough isolation between containers, or (c) the host kernel can't run their workload. (Different ISA, different syscalls, different executable format, etc.)

Anyone who has ever tried to run heavyweight VMs atop a snapshotting volume already knows the idea of "shared blocks" is a fantasy; as soon as you do one large update inside the guest the delta between your volume clones and the base snapshot grows immensely. That's why Docker et al. has a concept of layers and you describe your desired state as a series of idempotent instructions applied to those layers. That's possible because Docker operates semantically on a filesystem; much harder to do at the level of a block device.

Is the a block containing b"hello, world" part of a program's text section, or part of a user's document? You don't know, because the guest is asking you for an LBA, not a path, not modes, not an ACL, etc. - If you don't know that, the host kernel has no idea how the page should be mapped into memory. Furthermore storing the information to dedup common blocks is non-trivial: go look at the manpage for ZFS' deduplication and it is littered w/ warnings about the performance, memory, and storage implications of dealing with the dedup table.

[1]: https://www.youtube.com/watch?v=coFIEH3vXPw

drbawb··on List of Unix binaries that can be used to bypass local security restrictions
On my system the root account is primarily for upgrades, but also storage administration! ZFS snapshots protects me against silly mistakes like strange permutations of `rm -rf ~/` in day to day operations. Not having root all the time protects me against `zfs destroy -r nagato/data/home/drbawb` which will nuke my home folder, 144 frequent snapshots (15 minute intervals per 36 hours), 14 daily snapshots, 4 weekly snapshots, and 3 monthly snapshots. That would suck. A lot. (I have a file called "RIP", where a drive image used to be mounted, because I got a little too over-zealous with the recursive option on some ZFS commands on a file that had `copies=1`. _RAID is not a backup, snapshots are not a backup, etc._)

This also means that theoretically ransomware (running without root) could encrypt my home directory, but apart from doubling the number of blocks used on disk it would have no real impact on my data. (If someone writes a virus that can encrypt the blocks inside a ZFS partition, without mangling ZFS data structures beyond repair, then I'll be more impressed than angry. Not even the ZFS devs can rewrite block pointers on a running filesystem.[1])

That being said ZFS has an awesome feature called delegation which lets you run a subset of commands without root permissions. I use it sparingly, mostly to allow unprivileged backups. (Each host gets a login on my backup server, and can only create/destroy datasets that are children of a host-specific dataset. So `nagato` can `zfs destroy -r backup/hosts/nagato` but not `zfs destroy -r backup/hosts` or `zfs destroy -r backup/hosts/someone-else`.)

[1]: https://www.youtube.com/watch?v=G2vIdPmsnTI#t=44m53s

drbawb··on OpenRC is a dependency-based init system for Unix-like systems
I tried to setup a Gentoo system for fun last weekend. (Crazy idea of a "fun weekend," I know.) I got to selecting a profile and wondered why there was no `systemd-hardened` profile. I was googling to try and understand what the hardened profiles do and found this thread[1] which said: "My personal opinion, having read many of the threads I've referred you to is that systemd and security go together like windows and security. That is, its an oxymoron."

Maybe we have different ideas of what constitutes flaming, but to me comparing somebody's choice of operating software to the "W-word", in a linux distro support forum, is about as inflammatory as it gets. Saying that systemd is insecure-by0definition is also quite rude. This is several years old, and I'm sure things have changed in the intervening years, but as a perfectly happy systemd user I can say that thread definitely left a sour taste in my mouth, at least initially.

[1]: https://forums.gentoo.org/viewtopic-t-1029642-start-0.html

drbawb··on Is ORM still an anti-pattern?
jOOQ was one of the first times in my career where I (a junior, at the time) went to bat and convinced my company to shell out for a commercially licensed library. Our application was basically nothing but complex queries; getting our ORM, Hibernate 3 back then, to do anything sane & performantly was a nightmare.

Those licenses were money well spent for developer productivity alone, but honestly they've probably paid for themselves multiple times over just in terms of "energy usage at runtime" cost.

It's not always ORMs, but it's a pattern I see over-and-over again, somebody that doesn't know SQL tries to abstract away all the uncomfortable (to them) parts of SQL. It always ends up as an unmaintainable and non-performant disaster. _It's relations all the way down._ If you're going to fight SQL at every turn, you're better off using something other than SQL to store your data. (I still die a little inside every time I open up a SPROC that's just a giant cursor. Won't somebody _please_ think of the sets?)

drbawb··on OpenBSD: Shutdown/reboot now require membership of group _shutdown
>I guess you need a beefier cable/pins in the US, as you're drawing more current at a lower voltage.

No, we just accept slow-as-piss kettles.[1] (Our plugs aren't great, either, it's pretty common for a spark to jump the gap of the leads while you're plugging it in.)

High wattage appliances here have an effective max of like 1.8kW on a single-phase 120V outlet, it makes for pretty useless space heaters and kettles. You could probably beat our kettles with an induction cooktop just by virtue of the stove being able to use two phases.

Truly it's a tragedy for those of us addicted to our hot beverages.

[1]: https://www.youtube.com/watch?v=_yMMTVVJI4c

drbawb··on I don't need your query language
Every time I have used an ORM I end up supplementing or replacing it with a "query DSL" like jOOQ, Linq, Arel, Ecto, diesel, etc. I seem to have the opposite problem of OP: I don't often find myself wanting to hydrate some complex object graph, what I really want is some small fraction of what constitutes "an object": "get me the distinct values of this column, sorted by another column", or "get me a list of user IDs and e-mails that are subscribed to this topic", etc. Trivial to do in SQL, and much faster to do that sort of thing _in the database_, where the data is already _memory/cache resident._

ORMs, by design, bring unnecessary data over the wire for the sake of inflating parts of an object graph you don't care about 90% of the time. Most of that data will either be unused, or you are going to transform and then discard anyways. If you go out of your way to actually optimize out unused fields: now you're passing around objects with nulled-out references around your application, which is just a disaster waiting to happen.

Having a query DSL that actually maps result sets to your language's type system is the only way I've found to actually write robust, performant, maintainable code. My result sets being "too big cartesian disasters" is just not a problem I have, because I don't think in objects. I ask the database for what I want to get the job done.

drbawb··on APIs for content sites must be free
>Then there'd actually be a reason to get gilded up ...

I have to imagine reddit has already thought of this and come up with some justification for why it won't work - because the proposed strategy is just so incredibly lazy. Ultimately I suspect the data somehow suggests (a) the network provider has to provide free access in order to sustain the criticality of the social network, and (b) charging for something that other people are getting for free (a la twitter's 8$ checkmarks, reddit gold, etc.) is just not a very viable product strategy.

So Reddit has decided to stick 3rd party devs with the thorny problem of direct-monetization of users, wherein their cost to the developer is usage-billed while the revenue to the developer is presumably fixed; meanwhile Reddit can cash the checks from their mobile ads.

drbawb··on APIs for content sites must be free
>if I were to run a web forum then I must provide an API or data dump to download the posts created by the users

It's implicitly provided by hosting the forum, blog, etc. at a publicly accessible URL. HTTP is an API, HTML is a data interchange format. There's this weird idea (which I've seen parroted both in this article, and in u/spez's discourse on the topic) that "scraping" is somehow evil and bad, when it's actually an intentional feature of the web. Scraping is quite literally how Google built its search empire. It seems to me, now that the major players are sufficiently centralized and entrenched, they want to turn scraping into a boogeyman so nobody can follow in their wake.

The advantage of providing a "real" API is to (a) limit scope narrower than an account/session, and (b) eliminate the overhead implicit in laying out the content for human eyeballs; reducing processing costs for both the server and client.

I find it somewhat hypocritical for Reddit et al. to provide the former for free, and charge for the latter, when the latter is explicitly designed to optimize their costs.

drbawb··on I booted Linux 293k times in 21 hours
>Then you have those types who put their machine into hibernate/sleep with 100+ Chrome tabs open and never do a full boot ritual.

I would never suspend to RAM or disk, far too error-prone in my experience. (Plus serializing out 128GiB of RAM is not great.) I just leave my machine running "all the time." My most recently retired disks (WD Black 6TB) have 309 power cycles with ~57,382 power-on hours. Seems like that works out to rebooting a little less than once per week. That tracks: I usually do kernel updates on the weekend, just in case the system doesn't want to reboot unattended.

drbawb··on Show HN: Non.io, a Reddit-like platform Ive been working on for the last 4 years
>Moderation will be extremely important to prevent low-effort memes and content regurgitation and the like from saturating your main channels

This idea more or less surfaces in the book "Fall; or, Dodge in Hell", where in the not-too-distant future the internet is so polluted that you are pretty much expected to hire a full-time "editor" to curate your social media feed. This doesn't scale particularly well, of course, so in reality particularly wealthy families hire an editor to present a cohesive stream of social media to their whole family-tree. Meanwhile the masses typically subscribe to an "off the shelf" stream (or several?) that most closely matches their tastes.

drbawb··on I Still Use Windows 95 (2008)
>Something as simple as Win+Shift+S is an amazing improvement

Just now I hit that chord once to try the feature out , it came up but I hit "escape" to cancel the interaction. Now, typing the chord a second time, Windows no longer brings up the snipping UI. If I can find a show-stopping bug in an "amazing improvement" in five seconds then, I'm sorry, but it's not an improvement.

Ditto with the new Windows Terminal: occasionally connecting via SSH to a box already running `tmux` will just crash the renderer. Of course crashing the renderer (a fairly fatal error for a terminal emulator) doesn't tear down the program (!?!) so the renderer continues to crash once per frame drawn, every time you say OK to dismiss the error, until you terminate the program.

I cannot even think of something new in Windows 10 or 11 that has not, at some point, given me grief. The new task manager refresh, maybe, but I still have to dive into Resource Monitor (Vista) multiple times weekly, so even that improvement is not so good that it displaces its predecessors.

This is software that costs 100s (Windows, Office) or 1000s (VS) of dollars, and they can't even get it right. I generally like surreal humor, but we are way beyond absurd at this point.

drbawb··on The Leverage of LLMs for Individuals
>you realize that there's a wide range of solutions with some spectrum of a fit to your situation

I ran into this the other day and it's made me very leery about using chatGPT for learning things I don't already know. I moved on from toy examples and tried getting it to write a program in a domain I was already intimately familiar with: I immediately realized that this thing is going to help people churn out all sorts of code that is a poor fit for the surrounding system or ecosystem.

Basically I had it write a program in Elixir as a GenServer. After that was done I asked it how I could integrate that solution into a Phoenix web application. I had to hold chatGPT's hand, so to speak, as we evolved the solution from:

(1) Spawning (and linking!) the GenServer to a controller i.e. in response to a web request.

(2) Spawning and linking the GenServer to the application but outside the supervision tree.

(3) Spawning the GenServer inside a supervision tree.

Now technically the application could have worked, more or less, if you ran it at any one of those intermediate steps. However only the last solution is the robust and idiomatic one. It felt almost like a constraint solver to me: we iteratively arrived at the right answer by adding more and more constraints to the solution. The problem, as it relates to a novice, is that they don't have a list of constraints rattling around in their head. (Language idioms, best practices, framework knowledge, system architecture knowledge, etc.)

The insidious thing here is that 1 or 2 are syntactically valid programs. If you try to beat 1 and 2 into submission you're going to have a subtly broken system, one that makes a lot of Elixir programmers very sad.

---

I'll be watching the Khan Academy guys pretty closely, because they seem to have put a lot of thought into how students could use these systems safely and effectively.[1] I think the answer is going to be we need AIs that are aimed at professionals, and AIs that are aimed at education. The hard part will be that somehow we need to direct people to use one appropriate to their skill level.

[1]: https://www.ted.com/talks/sal_khan_how_ai_could_save_not_des...

drbawb··on Tell HN: We should start to add “ai.txt” as we do for “robots.txt”
It's not actually contradictory at all when you consider the root of the issue is about power asymmetry between individual creators and the corporations. Copyright terms were lobbied for, and primarily benefit the large corporations. They're symbolic of corporate overreach, that's why they're unpopular.

Meanwhile, now that the laws are inconvenient for them, tech companies are straight up ignoring labeling their training data to respect IP law. Labeling the data would be expensive, thereby eroding profits. The loss of usable data would also harm the efficacy of their models, and the time spent classifying the data will hamper their iteration time.

The ideas are only dissonant if you are looking at the trees (copyright term, DMCA, right to repair, etc.) and not the forest: which is a class struggle between a few thousand billionaires versus the rest of humanity.

drbawb··on Check if your IKEA chair is compatible with your screen
I have this same issue. Not an IKEA chair, but it is a similarly cheap office chair from some big box store. It only affects my external monitors connected to my TB3 adapter. I figured out the cause pretty quick, mostly because I assumed my monitors weren't averse to the curse words that spew from my mouth after such an "ESD event."
drbawb··on Microsoft plugging more ads into Windows 11 Start Menu
>"Thinking realistically, every software I use with the notable exception of Windows and DaVinci Resolve switched to a subscription model. If Microsoft doesn't do that and pushes its OneDrive and 365 subs via the task bar every now and then I'm personally okay with that. Better than paying $$$ every month just to use the OS."

OneDrive and Office is the subscription for Windows. Having worked in a repair shop I can tell you that the layperson thinks the OS is synonymous with "their data" and "their applications." If you said to them verbatim that you're "reinstalling their OS", and you give them back a computer with all their "Recently Used" menus empty, missing programs, all default settings, browser favorites are gone, their Outlook PST is missing, and the Office Key you ripped off the machine was an OEM license that won't activate through normal channels: that individual is going to be very cross with you.

Turns out it's really hard to sell retail customers "nothing for something", and to the average person an empty Windows install is useless. Gate their productivity suite (input) and storage (output) behind a subscription, though, and suddenly you have a customer hooked for life.

I've also seen this playout with Apple Users: their iCloud subscription lapses, or their storage on the free tier runs out, and it stops syncing photos and videos. Eventually the phone takes a dive in the ocean, or a toilet, or just dies of old age. The user goes to the Apple store and is emotionally devastated when they sign in to iCloud on their new phone only to find it is missing the last year of their life. Users aren't going to swear off Apple products, the backup and usability story on Android is a nightmare by comparison, they're just going to let the Genius Bar upsell them into the $2.99 protection racket.

---

It's also worth noting that Windows Enterprise is already a subscription. To use Enterprise (GA servicing channel) you need to have an Windows E3/E5 license, or active Software Assurance. The problem is these subscriptions only work because Microsoft has the power to audit VL customers, and those customers tend to have the pockets to pay up remediation or legal fees. _The only reason Windows Home/Pro are not subscriptions is because Microsoft never figured out the economics of auditing retail consumers._

If consumers are leasing their storage and programs from you, though, it turns out you don't need to audit them.

drbawb··on I spent a week without IPv4 to understand IPv6 transition mechanisms
EUI64 means that random space is effectively reduced to just 48-bits of real entropy, <40 bits if you start making assumptions about device vendors. For example maybe the attacker has a VMWare exploit: enumerating that OUI (00:50:56) leaves them with just 24-bits of address space to scan, a measly 1GiB of traffic.

It's security through obscurity at best, i.e: not security. You shouldn't be relying on size of address space to protect you from anything. An IDS/IPS that alerts on abnormal ICMP behavior will be useful whether an attack is 1GiB of traffic in size or 1024EiB of traffic in size. (Also you don't even need automated scanning to find some juicy targets: I've seen a lot of routers on the edge of a prefix configured at ::1/64 and ::2/64 for instance.)

drbawb··on Mac OS Ventura Issues
I feel like it's not just Mac OS. I bought an iPad Mini 6, my first Apple device since an iPhone 4S. I am frankly astounded at how buggy the OS is, how annoying gestural based UX is, etc. These are just from memory:

1. Holding the "keyboard close" button to select an option from the context menu occasionally triggers the "Quick Note" gesture.

1a. Sometimes that options menu closes without even triggering the quick note gesture

1b. Similarly that button is overloaded to move the split/undocked keyboard, but it doesn't always recognize whether you are trying to move the keyboard or open the menu.

2. If you press in the middle of the Safari address bar it will usually be misrecognized as hitting the dropdown for the window management options.

3. If you pull out and subsequently dock the pencil often I find the pencil context menu refuses to go away. You have to engage in the following ritual: (1) open the mini keyboard from the tray, (2) hide the keyboard, (3) minimize the tray, (4) tap some text input before it will finally realize you're not using the Apple pencil anymore. (Which it knows you can't possibly be holding, because it's _charging it._)

4. If video scrubbing controls are at the bottom of the screen (as they typically are) then trying to use them will almost always result in entering the dock/app-switching routine.

4a. Similarly I've found in Safari that it is obstinate that any swipe near the edges of the screen is a "back/forward" gesture, and definitely not you trying to hit the damn slider right under your fingertip. (This largely seems to be a Safari issue, sliders elsewhere in the OS seem fine; but this is a big problem considering every browser is just clothes-over-Safari.)

5. Some apps behave very strangely with the different keyboard modes. Discord seems to be a prime offender. For example: the relatively large undocked/split keyboard behaves as an overlay, obscuring what is beneath it. However the very small floating keyboard, _literally designed to be an unobtrusive overlay_, will have Discord create whitespace for it. (Try putting the floating keyboard in the top corner and you'll end up with ~one line of message history.)

6. When Discord is in "slide over" mode, and the keyboard is docked, hitting their emoji picker will bring it up docked to the bottom left corner. However instead of being the full width of the screen/keyboard it will instead be the width of the slide-over window. (!?!)

7. Similarly I've had it where Spotify after being converted from a "slide-over" window to a full-screen app will have the player controls misaligned and the play/skip buttons will be completely obscured. (Couldn't seem to fix this without a restart of the app.)

8. I'm sure this is by design, but the iOS 16 duplicate image detection doesn't work if [one of] the duplicates are tagged with the Hidden flag. I would very much like to save space even if it means an extra button press hidden in a menu to "reveal hidden duplicates" or something like that. (Since the processing is allegedly on-device I don't really mind it going through my "hidden" photos, considering they're just rows in a SQLite DB w/ a boolean field set to true.)

9. Apple Pencil w/ Scribble turned on it's a total crapshoot if you're going to make a selection or type some random "i", "'", ";", etc.

10. If other media is playing, or was playing recently, the keyboard "clacky" sounds often play louder than their usual volume. However it's not consistently louder: it's like it oscillates between whatever the keyboard volume is vs. whatever your media volume is.

I'm sure I remember my older iDevices with rose-colored glasses, but the lack of refinement in this current UX is mildly infuriating at times. I mean you've got to get the basics right, and I don't know what's more fundamental than keyboards and window management. That's literally the primary input/output of your OS. I feel like if Steve Jobs ran into even a fraction of this list he would've thrown the damn iPad like a frisbee. _I don't have the luxury of doing that because it's far too expensive._

drbawb··on What’s in a PR statement: LastPass breach explained
It's a tradeoff based on convenience. I use Linux, Windows, Android, and iOS on a daily basis; using some combination of SyncThing, OneDrive, Google Workspaces, and iCloud. Getting an offline-first PW manager to work correctly and consistently across those devices, operating systems, and services is no easy feat. Doubly so if you actually want proper integration with the OS & browser keychain.

At some point the closest you'll get is a self-hosted BitWarden instance, in which case you are basically running LastPass/1Password/et al. yourself anyways. Then you have to ask yourself (a) can you host it cheaper than a monthly subscription of a competing service, and (b) can you maintain that instance better _in your free time_ than some engineers that get paid to do it every day?

The answer to (a) for me is definitely not, my colo bill is much larger than a 1pass subscription, and (b) is also probably a big fat no considering there were concerns in this article I hadn't even thought of. So ultimately I'm happy paying a nominal fee for someone to keep up w/ the ever changing landscape of OS/browser integrations & minefield of security pitfalls regarding credential storage.

I wish there was some elegant way to magically kept all my devices in sync, that was portable & standardized, but the reality is modern vendors seem more interested in creating silos than standards.

---

However there are things I don't put in my 1pass, despite it having great support for them, because I consider the alternatives more convenient or secure:

(1) My PGP/SSH keys are on a YubiKey

(2) My 2FA TOTP codes are on that YubiKey or some other authenticator

(3) My 2FA backup codes are on an encrypted volume. That secret is not stored in 1pass.

(4) My critical services (DNS, e-mail) require hardware backed 2FA.

The theory being even if you steal my PW vault you can't own my DNS, without my DNS you can't own my MX, and without my MX you can't truly own my online identity.

drbawb··on A Linux Evening
Not sure if this would help, but I recently learned about a product called iMazing[1] that lets you browse and edit iTunes backups.

You can't access the whole filesystem of a running iDevice with it, but you can access the whole filesystem of the backup. So I suspect it might be possible for you to clean-up the backup offline & then restore it. (At a minimum it should enable you to extract the valuable contents out of the backup and manually restore it on top of a clean iOS install.)

I've used it with some success to extract info from the photos database. I just wish they had a consumer-facing (read: more affordable/perpetually licensed) version of their CLI tool.

[1]: https://imazing.com/

drbawb··on Apple introduces end-to-end encryption for backups
The problem is that a stream cipher is going to have some per-object uniqueness (a salt, IV, etc.), so by design even if you feed it related input blocks you will get different output blocks. This is, of course, antithetical to deduplication: so you need to check/store the hash of the input before it goes through the cipher.

The presentation about ZFS' native encryption[1] covers many of these sorts of trade-offs necessary to do full-disk encryption at scale.

[1]: https://www.youtube.com/watch?v=frnLiXclAMo

drbawb··on Apple introduces end-to-end encryption for backups
> . . . as long as only TLS (no application-level encryption) is being used.

Therein lies the rub: the payload itself is protected by an encryption scheme where the keys are intentionally being withheld by either party. In the case of Apple's proposed CSAM detection Apple would be withholding the secret in the form of the unblinded database's derivation key. In the case of Advanced Data Protection the user's key lives in the SEP, unknown to Apple.

By design the interior of the "safety vouchers" cannot be inspected, supposedly not even by Apple, unless you are in possession of (a) dozens of matching vouchers and (b) the unblinded database. So on the wire you're just going to see opaque encrypted containers representing a photo destined for iCloud.

drbawb··on Apple introduces end-to-end encryption for backups
>The abandoned plan was perceptual hashing, which should return the same hash for very similar photos . . .

Is there any proof they actually abandoned this? NeuralHash seems alive and well in iOS 16[1]. Supposedly the rest of the machinery around comparing these hashes to a blind database, encrypting those matches, and sending them to Apple et al. to be reviewed has all been axed. However that's not exactly trivial to verify since Photos is closed source.

[1]: https://support.apple.com/guide/iphone/find-and-delete-dupli...

drbawb··on Designing Windows 95’s User Interface (2018)
>Microsoft tries to compete with Apple’s integrated hardware-software experience with their Surface line, but in the context of general wide-spread Windows usage, that’s really more like vanity hardware.

What I fail to understand is how MS apparently missed the part where Apple has clearly delineated OSes for their different hardware. You have iOS, iPad OS, macOS, tvOS, etc. Even the phone and tablet, which are nominally the same man-machine interface, are somewhat differentiated.

Why is MS so hellbent on making Windows a jack of all trades?

drbawb··on PC shipments fall at fastest rate ever
It's honestly getting hard for me to justify having a more powerful PC. I have a Threadripper build (3960x) with a 2080 Super, along with 2x 3.5" drives, 2x SATA SSDs, and 3x NVMe drives. The thing draws like 200-250W at idle. Closer to 400-500W under moderate gaming. I'm looking at upgrading to a 4090 since gaming at 4K is pretty "meh" on a 2080. The embargo lifted today and I've been skimming the review: it looks like these cards will draw 500W continuous _by themselves._ So I'd be looking at potentially 700W+ from the wall.

My A/C failed this year and I became acutely aware of just how much heat my current workstation is pumping into my room. Even with the A/C running my room is about 5-10degF hotter than the rest of the house. So for me I'm starting to run into thermal constraints; there's also the noise factor. All my PCIe bandwidth comes at a hefty price: which is that the sTRX4 chipset is actively cooled with a pathetically tiny fan.

Perhaps it's just part of being older and wiser, but I'm starting to be more enthused about the process/efficiency refinements rather than the generational performance leaps. I'm actually thinking about "downsizing" significantly with my 2024-rig. (The threadripper is still a beast though, it will probably get racked in a 4U case as my next home server.)

Who knows though, maybe I'll figure out how to reject the heat outside my domicile and go balls to the wall with a 64c/128t monster. I guess it all depends on if AMD decides to release another HEDT chipset by 2024.

drbawb··on ZFS 2.1.6
Yes, I have Arch on a ZFS root pool. rEFInd + ZFSBootMenu to boot it. The only thing I don't use ZFS for is a Windows (gaming) VM. I tried numerous different setups to keep the NTFS disk image on a zpool, but it's ultimately pretty hard to beat the performance of PCIe passthrough for a modern NVMe drive. I use syncoid/sanoid + ZFS delegations for backup management.

No real complaints except that it complicates updating Arch: kernel updates usually have to be delayed 24-48 hours while the ZFS packages get rebuilt, or in some cases patched upstream. syncoid/sanoid also poses a problem because it relies on a few Perl packages from the AUR that are a pain to rebuild.

I know the Arch devs loathe people doing partial updates, but occasionally delaying a kernel update for the sake of ZFS has yet to bite me in the ass. I would strongly advise against DKMS, though. Use a binary module or build the package yourself. The majority of problems I had with Arch+ZFS boiled down to misuse of zfs-dkms.

drbawb··on Using the same Arch Linux installation for a decade
I have a similar experience, though only now am I faced with the existential crisis that "2013" is going to be "a decade ago" in a few months. My Arch Linux install started life as a VMWare Workstation image. It made it through two major init systems (sysvinit -> systemd), different audio subsystems (alsa -> pulseaudio -> pipewire), different WMs (gnome2 -> kde4 -> i3 -> sway), three filesystems (ext3 -> ext4, ext4 -> brtfs -> ext4, then ext4 -> zfs), several different versions of VMWare Workstation (7 through 14 I believe), different storage substrates, etc. It's also lived on three different uArchs (AMD Bulldozer c. 2012, Intel Skylake c. 2016, and Ryzen c. 2020) but VMWare abstracted most of that away, of course.

Eventually I got fed up with Windows and decided to `zfs send` the install to a real disk and booted it on bare metal. It has been my daily driver since then for the last 2 years or so. (I did drop into the Arch installer a last year to unfuck my bootloader while trying to get rEFInd & ZFS Boot Menu to work, but that was just building a new initramfs; I haven't run "pacstrap" since I built the image c. 2013.)

The flexibility this operating system has provided me with is nothing short of amazing. I do have to say though: since switching to Wayland + the in-kernel AMDGPU driver, I can't remember the last time my system was rendered unbootable. (Excepting the one time I tried to change my bootloader, but that's user error.) In hindsight I feel like the vast majority of Arch's reputation for breaking systems is overblown, and the blame rests mostly on DKMS + NVidia's proprietary drivers.

← PreviousPage 2 of 13Next →