HNHacker News
TopNewBestAskShowJobs

hansvm

5,665 karma · joined December 22, 2019

submissionscomments
hansvm··on Just bury your trash: What if everything we know about recycling is wrong?
I bet you're right. Why though? I've gotten thousands of uses out of mine. Even if you shop infrequently that just means they'll wear out more slowly, so surely that's viable for everyone else, maybe with a 7yr break-even point for an every-2-week shopper?
hansvm··on GPU World
I'm not sure what else might happen, but at a minimum the Babel Fish will finally be real, even without internet.
hansvm··on GPU World
I'd be surprised if the 3 judges share a common language other than English at the requisite level for judging writing.
hansvm··on GPU World
It probably just literally doesn't work for most people. If you click through, see a broken page, and see that the top comment thinks the way in which it's broken is interesting, that'll probably be more interesting to engage with than the contents of the page.
hansvm··on GPU World
I have a fully functional, updated Chrome derivative with all the features enabled, and they went out of their way to dynamically load a

  Update your browser to access this website
message as the only visible content rather than test features (which they're clearly doing to GP, so how much work would it be to properly use that feature testing as the main tool for compatability checking) or just letting the browser try to load it -- displaying one of those big-tech "update your browser now" nag messages if they really feel the need to be annoying.
hansvm··on Terence Tao explains 6 essential mathematical concepts [video]
Being good at a thing and explaining it well are different skills. Part of the problem is that you have to empathize with your audience when explaining. It's not sufficient to break a problem down into its essence; its "essence" varies depending on who you're talking to.

An example from something I've had to iterate on: When explaining an event loop multiprocessing runtime sort of thing, I eventually found I had to hand-wave "and your CPU hates that" to establish an appropriate premise to the problem and solution (referring to item-by-item dynamic dispatch with a large number of task types as the specific demon which needed to be slain while discussing that subset of the design). People in the know didn't need more understanding. People not in the know were happy to brush their lack of microarchitectural understanding under the rug. With that premise, both crowds were able to understand what followed.

That wasn't my first attempt. I have a bad habit of trying to explain those missing details as well, especially when it's clear the listener doesn't know them yet -- trying to get them into a position where they could've built the thing themselves -- but that only lands well with like 1-5% of people I've met.

Critically, agreeing with you, that's a communication failure, not an engineering failure. I understood the problem just as well in both cases; I just didn't understand the full extent of the people problem.

hansvm··on 2004 RuneScape fit a multiplayer RPG into 56k dial-up
The other comments hit the big ones (didn't have to download, had a free tier, didn't have significant irreversible character choices, had meaningful solo or quasi-social activities, etc), but I think a major contributing factor was it appearing on miniclip.
hansvm··on 2004 RuneScape fit a multiplayer RPG into 56k dial-up
It's a trade-off, especially for longer paths, especially when you count the cost of server RAM cache misses.
hansvm··on 2004 RuneScape fit a multiplayer RPG into 56k dial-up
It's gotten pretty good (finally good enough that you can observe it in the game's macroeconomics), but if you're any good as a programmer then it's no work whatsoever to build something which can bypass it indefinitely.
hansvm··on Continuous Diffusion Language Models (CDLM's)
But... there weren't. The other "players," China included, had duck all to show for it. Did they have the same potential capabilities? Sure, maybe. It wasn't just a profitability thing though. Their models sucked. China is being singled out in that comment because their models are exceptional, with very few competitors, so when you're talking about a history of the competition not being any good you _have_ to acknowledge one of the only good present-day models.
hansvm··on Zig: Pointer Stability for ArrayLists
I use it in a lot of places where I know the max capacity ahead of time -- ensureCapacity() followed by a lot of *AssumeCapacity()-styled commands. It's convenient for all of the ... convenience ... methods (append() requires some bookkeeping somewhere, appendSlice() requires more, and so on). In those usages, it's basically syntactic sugar over a slice. That's not a perfect solution, but it's reasonably good often enough that I keep doing it.

The proposed change doesn't do much for me personally (memory safety is ensured in other ways, and if it weren't I wouldn't be annoyed debugging the allocator-observed errors), but I could see myself using it at some other point in time for the same class of usages, or I could see other people relying on it when they choose that class of coding.

hansvm··on Judge rules Trump administration’s blacklisting of Anthropic was illegal
I can answer your direct question if you'd like, but I'm actually missing what I think is some larger point in why you asked it. Would you be okay elaborating please?
hansvm··on State of the Map 2026
Fiat never works for linguistic shifts. That order is about as likely to work as telling a kid to stop saying "six seven."
hansvm··on Judge rules Trump administration’s blacklisting of Anthropic was illegal
> they have the capability

I think the whole problem is that they don't. Their systems are wholly unsuitable for _fully_ automated killing. Random schools and fishermen don't need to die because an administration stubbornly refuses to properly confront reality.

hansvm··on CEO fired developers to make room for AI. Developers create open source AI CEO
Not in the slightest. I didn't touch the voting functionality and tried to be as nice as possible. I saw an opportunity to make somebody's life better for reasons it didn't seem they were aware of, since their speech seemed similar enough to certain AI idioms that I thought it would be demonized, and the fact that they wrote it anyway suggests they didn't know.

As I'm looking at it right now, there might be some nuance I'm missing in how HN works, but the post doesn't seem to be greyed out or anything, suggesting that if it is being downvoted then the upvotes are counterbalancing sufficiently.

> banning speech patterns

AI is prevalent and often bad. Society is reacting quickly but maybe not quickly enough. Blanket speech "bans" are part of that. Is that bad? Eh. It's not ideal. It's to be expected though. I work with the society I'm given, not the one I should have.

hansvm··on CEO fired developers to make room for AI. Developers create open source AI CEO
> can AI do <hard thing>

Not yet. Maybe soon. I'm not placing bets on timelines.

> What do CEOs do

No clue. I'm not there yet. Maybe it's critical. Maybe nothing.

> and other managers

There are a lot of bad managers. I'm halfway not terrible. A significant part of my job is setting technical direction in the same way I did as a staff+ engineer but without the overhead of asking somebody else's permission. Another large part is the "shit shield" function -- somebody thinks they want something, and they either find themselves blocked by me or immediately satisfied with whatever code I'm able to cook up between meetings, not breaking the team's concentration. A huge part is basically just being a teacher, and I love teaching (if it weren't so pessimized by society that might actually be my career). A large part of it is navigating organizational nonsense (for "reasons," I'm rambling, ask if you're curious). And... whatever. My job didn't get easier going into management. Not all of it should have to exist in the abstract, but in any specific company it's still an important function.

hansvm··on CEO fired developers to make room for AI. Developers create open source AI CEO
> An <overinflated point> is XYZ. This matters.

You're probably totally innocent, but this comes across as being AI-written, especially in the context of an AI problem and when your response is pro-AI. For the next 3-12 months (maybe more, we'll see), I suspect you'll have a lot more success if you shy away from those speech patterns.

hansvm··on GitHub Outage Tracker: Is GitHub Cooked?
The phrasing could have been better, but we've talked as a team about cancelling a $100k/yr contract nearly half a dozen times the last year, and the only thing keeping us from doing so is various "compliance" issues, and to a lesser degree the friction from physically moving. That's a tenuous moat, and if I were a GH PM I'd probably want to know that the current instability is somewhere near critical mass.
hansvm··on Where did all the public bathrooms go?
Per dollar recovered or per future fare-jumped dollar prevented?

Edit: This plays into something I observe in most "data-driven" organizations. Having a statistic available about recovery costs makes it easy to shift the conversation toward that statistic, when you actually ought to be asking questions about (in this case) the causal impact of that intervention on the subway's overall profitability, the need for easily available public transit and whether there ought to be a fare in the first place, the public good (or maybe harm -- the point is that we ought to be discussing it one way or the other) done by using fare-jumping collections as a mechanism for training people to be less antisocial in other aspects of their lives, or whether that obscene cost of fare collection is actually a reasonable baseline and should be improved. Your statistic, while interesting, is almost useless when trying to figure out what we should do next, at least by itself, and when paired with human psychology it can be actively harmful.

hansvm··on Google Workspace thinks my domain is an email provider (2025)
I can give racknerd a +1 by the way (compute rental in my case, not email). Prices are good, machines are machines, support exists and is helpful even for off-the-beaten-path issues, and so far they still exist despite seemingly being a small player. I'd use them again (I don't have many points of comparison though, so take this review with a grain of salt).
hansvm··on To become a better writer, read as much as you can
"Style" is complicated to copy in both cases if you don't know what you're looking for.

In music, you have voicing sparsity, changes in voice count, preferred pitch ranges, tension/release cadences, embellishments, richness, playfulness, and a host of other characteristics. Rachmaninoff, for example (among other things), favours active, moving octaves quite deep in the base, extremely rich chords in the middle treble, simple (local) rythymic patterns, and expanding simple ideas like repeated arpeggios into large parts of a piece. He has more voices than other pieces typical of his time, though they tend to be combined somewhat simply when contrasted with counterpoint exercises and other techniques typically involving fewer voices.

In writing, you have sentence length, sentence complexity (they're different), typical volume used to express an idea, specific word choices, whether you tend to observe concrete or abstract ideas, the level of "truth" in your statements (in many flavours -- deadpan humour being quite different from a boldfaced lie directed toward the reader), technique choice used for signposting, willingness to violate "rules," and so on. If you picked even one project proposal from me at $WORK, you could reliably separate it from those written by hundreds of other engineers just by a few quirks -- habitually providing one level of motivation deeper than is typically expressed in technical writing (not just what we're doing, but what we're not doing and why we made that choice), a tendency to use British spellings and US words, a pattern of contracting any verb tense, sometimes with multiple apostrophes (e.g., "there'll've been"), refusing to terminate a non-exhaustive list without informing the reader that it's non-exhaustive, and so on. If you look at the reasons and motivations for one of those quirks, it's that I tend to have complete ideas (in technical domains) and want to express them completely and have found that every missing detail causes eventual problems -- only tempered by the fact that the requisite length tends also to cause important details to be overlooked on a casual read, which provides a mild damper on length. Understanding that motivation makes it easy to apply it as if you were me even when you don't have concrete examples regarding specific quirk/scenario interactions.

hansvm··on Felony charges for citizen deleting phone data at US Border
> how can I say that

The exact way I did, with an additional clause afterward appropriately scoping the statement and thereby not stating something overly broad :) The point is that destroying evidence, by itself, is not a crime. Additional elements are required.

> irrelevant to some other question

That's true. I just saw something not quite true (your police on the porch example) and thought somebody might find the extra nuance interesting.

Interestingly, digital vs physical _does_ also matter a little in a few ways (e.g., whether it's even evidence in the first place if it's digital). However, as that's worked its way through the court system over the years, it is practically true that in most cases you're right, at least as it pertains to this charge AFAICT; digital evidence has similar properties to physical evidence in the eyes of the courts.

hansvm··on Felony charges for citizen deleting phone data at US Border
No, "knowingly" destroying evidence associated with that investigation is illegal. After a lawsuit is served, yes, it's probably pretty easy to prove ill intent. Opening an investigation may or may not suffice, and whether the police were in investigation mode is not the whole question. The prosecution has many individual elements they need to prove, _including_ intent.
hansvm··on Felony charges for citizen deleting phone data at US Border
Not necessarily, no, it's not clear that the person knew they had that duty. If you strongly believe the search is illegal, e.g. after being denied a lawyer, you might not think you're destroying evidence illegally.
hansvm··on Felony charges for citizen deleting phone data at US Border
Destroying evidence is legal all day long, even with the law waiting out front, unless some other precondition is attached to that evidence destroying. One thing that makes it illegal is (over-simplifying) destroying it when you knew you had a duty to retain it.

To the legal search example, suppose the police frequently stop by your house to discuss neighborhood gremlins. If they happened to accidentally see the boxes of evidence you'd be in trouble. You're allowed to destroy them though, and you might have a habit of destroying evidence for each of these gremlin chats. Doing so is legal.

Later, the police show up with a warrant (your example). If you think you're doing your normal gremlin evidence destroying and not blocking that warrant, destroying that evidence is still legal even with the police waiting on your porch to legally, forcibly search your house. The _intent_ behind your actions, at least in this case, is a core component of the crime.

Mind you, nobody will believe you, so you'll still have a hard time in court proving it (this is mildly in your favour because it's actually the prosecution's duty to prove your intent rather than your duty to prove lack of intent, but they're not exactly going to have a hard time convincing a jury that when you destroyed a bunch of evidence with police on your porch with a warrant it was because of that warrant), but it's still legal.

hansvm··on Grand jury declines to indict Ohio man charged with destroying Flock camera
The term "voter" seems relevant -- in my conversations with conservatives, they care quite a bit. In the way they conduct themselves (ignoring voting), they care quite a bit. It's only the voting in which there's an obvious disconnect. Ignoring that risks applying the wrong fixes to the wrong places.
hansvm··on TigerBeetle Core System Architecture: Deconstructing Performance Engineering
Ha, I was explaining this just yesterday to a few people at $WORK (I'm not at TB, though we do use a bunch of Zig in prod).

"Multiprocessing" (multiple CPU cores independently executing and only able to coordinate via some message-passing system -- a definition which encompasses both multi-core CPUs and horizontally scaled distributed systems, contrasting slightly with the normal definition) is challenging for a few reasons.

Firstly, the details are an open math question, but I'll blindly state that some problems aren't amenable to parallelization. I.e., no algorithm can meaningfully improve performance via parallelization no matter the implementation. Think through how you would more quickly compute hash(hash(hash(hash(...)))) for example. The serial dependency makes things challenging. That isn't too dissimilar to the problem TB faces.

Secondly, message passing is expensive. If the only way two CPU cores can coordinate is through a multi-level cache, at best you're incurring ~tens of nanoseconds of latency per message. Contrast that with a base rate of 512 bytes processed per nanosecond with enough attention to detail on typical modern server hardware (4 pipelined AVX512 instructions at 2GHz). Messages are several orders of magnitude worse than your normal work, so if you need very many of them then you're hosed from a performance perspective (worse with longer delays, like networked computers). Even very parallelizable problems at an abstract level can suffer performance losses by trying to add even one extra core. This blog post [0] doesn't perfectly capture the idea, but it's close (and a fun read regardless).

Thirdly, message passing is an insanely complicated programming abstraction to reason about. My first two points were more about what TB was saying -- realities of modern hardware -- but the programmer experience is important too (even if you don't believe that post-2020, the LLM experience doesn't differ much from the human experience; bad code begets more bad code, slowly). The core mechanism for correctness in most software is being able to reason about "this thing is true, therefore that thing is true" and iterating. You rely on invariants like "this is sorted" to build other working theories. The invariants in multiprocessing code are much more nebulous and less amenable to accidental discovery, also less amenable to being able to build or compose them into other stronger invariants as you add code. The main reason for that is that you know almost nothing about the relative order of those messages with respect to each processer's view of which instructions happened when (and for purely multi-core "multiprocessing" the story is even worse; while my description of message-passing being the core primitive is correct, that's not what's exposed to you as a programmer, and different memory models can have even weirder interleavings than your code would naively suggest -- i.e., your code is being decomposed into smaller subunits than even a single assembly instruction, and the message passing happens at that level). The combinatorial explosion (an exponential explosion really, but big numbers either way) of states you might be interacting with makes it very difficult to understand _anything_ about the system you're examining. That's why you see a handful of primitives used over and over -- if you can decompose your problem into a parallel map plus an associative reduce then you can probably figure out some way to make it better through parallelization (not always, especially if the framework is too generic, see the linked blog post [0] if you weren't enticed to read it previously). If you can't decompose it into know primitives then it's an open research problem every time.

The crux of that third point (and we could definitely add more explanation and additional problems) is that there's a huge cost to multiprocessing. You have to be buying something substantial to even want to reach for it, else you have to be in one of the "easy" problem spaces where somebody else has done the hard work (e.g., stateless webservers).

TB isn't that. Their whole raison d'être is state management, and not in a way that's easily amenable to parallelization.

[0] https://adamdrake.com/command-line-tools-can-be-235x-faster-...

hansvm··on Abdominal fat predicts heart disease risk better than BMI
Yep, that's right. Denominated in some fixed weight and any fixed fat percentage the delta is the same (e.g., if my weight is exactly 150lb or 200lb or 250lb and, at some concrete weight, I evaluate my real BMI at X and my naive BMI at Y, then the delta Y-X is independent of my target 20%.

But my target is to waffle around 20% or so on average.

hansvm··on Civic Hygiene – avoid building technologies that could be used by a police state (2013)
> you can't possibly be saying XYZ...rant about XYZ, among other things

No, obviously that's not what they're saying. There must be some reasonable interpretation then, right? Let's look at the chat thread and see what we can find.

> be very cautious about evil uses of seemingly safe technology when developing initial capabilities

>> that's super hard since most things can be repurposed

>>> (your other comment) it's actually easy though, just look at how we could repurpose these death machines

>>>> (their comment) but...that's wildly inefficient

The subtext to their answer is going an entire opposite direction to your rant. People are saying that turning anything into a killing machine is easy, and their comment is saying that doing so is sometimes Pareto-suboptimal, and so wildly so that no semi-rational-at-least-a-little-bit-sometimes military is going to bother trying to weaponize your silicone basting brush or what have you.

They're not saying that you should mass-murder people, as you, yourself speculated.

hansvm··on Simplifying and Refactoring Introductory Calculus (2018)
That same idea applies very nicely to other ideas of math too. Take Konig's Lemma (every infinite, locally finite, connected graph has an infinite path) as an example. The nonstandard proof goes something like:

1. For every natural, you can find a path of that length.

2. Therefore (nonstandard chicanery), for every hypernatural you can find a hyperpath of that hyperlength. Pick one for some infinite hypernatural.

3. Restricting that hyperpath to the original graph yields the infinite normal path you were looking for.

Whole problems melt away entirely as soon as you don't have to worry about clumsy "limit-based" approaches.

← PreviousPage 3 of 34Next →