HNHacker News
TopNewBestAskShowJobs

evmar

6,887 karma · joined June 7, 2011

https://neugierig.org

evan.martin@gmail.com

My posts on HN: https://news.ycombinator.com/from?site=neugierig.org

submissionscomments
evmar··on Haskell WebAssembly in the Browser
It think you might not need to go via CString to get to the browser, given that the browser side doesn't care about NUL termination either. I think you could use Data.ByteString.Internal to grab the ForeignPtr/length out of the BS constructor directly.
evmar··on Windows 11 will happily execute a binary compiled 30 years ago
Working on https://github.com/evmar/retrowin32, I disassembled one old demo that wouldn't run on my native Windows machine -- turns out it was requesting 320x200 fullscreen resolution and aborting if it couldn't get it. (Not sure why the Windows machine wouldn't do it...)
evmar··on Emulating x86 on X64 on Aarch64
Wow, you are thorough! I just include the date as metadata in the post input file and typed it wrong this time. I don't have any scheduling feature, the whole thing is incredibly manual ("make" followed by "rsync" to publish). I don't publish my blog's source because it includes other things like unpublished drafts.
evmar··on Emulating x86 on X64 on Aarch64
It makes some sense to me. To support 64-bit x86 they need to ship 64-bit x86 versions of lots of system libraries, which itself is probably kind of a hassle and a waste of disk space for many users. Supporting 32-bit x86 would require an additional copy of all that code.

Meanwhile I imagine most of the software people might want to run is 64-bit x86 anyway; 32-bit x86 is these days really only a thing you care about for old games, which is pretty esoteric. If Wine can be made to support it then that keeps the support load limited to Wine.

evmar··on Emulating x86 on X64 on Aarch64
Thanks, fixed.
evmar··on Emulating x86 on X64 on Aarch64
The post says '64-bit x86 ("x86-64" or "x64")' which is also roughly what the first sentence of Wikipedia has to say about it. I personally picked it just because it was shorter to type and easily understood in context.
evmar··on I went to 50 different dentists: almost all gave a different diagnosis (1997)
(Wife is a dentist.) There are a lot of immoral people out there, but "see the dentist only if there is evidence of a problem" is a bad strategy.

Tooth decay is a slow process and the treatments slowly ramp up in invasiveness: when it's minor you can use sealant (like painting over it), if it progresses you get a filling (with some minor drilling), if that progresses you get a root canal (drilling out the whole nerve and replacing the bulk of the tooth). You may only reach the threshold of feeling pain at the point of needing a root canal when it can be preventable earlier.

(I do suspect hygienists are capable of spotting most of this but my impression is they're not licensed to diagnose.)

evmar··on I went to 50 different dentists: almost all gave a different diagnosis (1997)
My wife was shocked to learn in dental school how many people were there focused on the money. From her experience I learned that dentistry in particular is a profession that has a low investment / high payoff ratio. Relative to medical school dental school is easier to get into and shorter, and unscrupulous dentists can extract a lot of money out of patients.

PS: I feel compelled to share her best advice re oral hygiene:

"You only need to floss the teeth you want to keep."

evmar··on Treemaps are awesome
I often use treemaps for quick datavis on hierarchical data, like this (ancient) analysis of Chrome binary size: https://neugierig.org/software/chromium/bloat/.

As part of that made a little web-based treemap widget called "webtreemap" and published a version that I use in unix pipelines. It accepts data on stdin and dumps self-contained HTML on stdout.

    # install program:
    $ npm install --global webtreemap

    # pipe any utility that outputs size+hierarchy data into it:
    $ du | webtreemap > demo.html

    # interact in browser:
    $ open demo.html
evmar··on Olfactory Function Relates to Sexual Experience in Adults
https://xkcd.com/882/
evmar··on Britain Is a Developing Country
The comparison made between the UK and US states is one I was thinking about lately and which prompted me to make a little "compare EU countries to US states" app: https://evmar.github.io/states/

(For example, through it I discovered that Ireland's nearest twin in both land and population is South Carolina.)

Looking at the UK specifically, it's the GDP of California but with almost 2x the population, which comes out to a GDP per capita comparable to Mississippi.

evmar··on TypeScript please give us reflection/runtime types
If anything, the wide range of different approaches to run-time type information listed here is pretty good evidence that there are many different use cases and any approach built in to TS would not cover them all.
evmar··on Show HN: Using C++23 <stacktrace> to get proper crash logs in C++ programs
The code:

    //a decent amount of this was copied/modified from backward.cpp (https://github.com/bombela/backward-cpp)
The license on the other side of that link:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
evmar··on Question the W3C's advice re RSS
It's incredible that this person is still reliably trying to stir up drama about RSS after twenty years.
evmar··on Finally getting two's complement
Also, a monad is just a monoid in the category of endofunctors, so I’m not sure why when people are trying to learn about them they need any more than that. ;)
evmar··on UW CSE 391 – System and Software Tools
I was at UW around the time they were thinking of introducing this. I recall someone saying they'd found that there was a gap between the students who had computer experience and those that didn't -- the latter could be equally smart but lacking in the dumb stuff like how to operate git and it would end up impacting their ability to learn the profound topics.

I recall that opinions like yours were the opposition to it, but it looks like it ended up happening, and I think it's a good idea. In principle a motivated person with no previous access to computers ought to be able to study computer science as well as someone who grew up with them.

evmar··on Blowing up my compile times for dubious benefits
> to make all the constants known at compile time, everything has to be written in a const function. This means: No allocations [...] No for loops

These constants are relatively unchanging relative to the rest of your program. Why not write a code generator (without the above weird restrictions) to compute them once and save the result?

evmar··on Tell HN: Locked Google account reopened after two years
FWIW the tire story is a legend from decades ago: https://press.nordstrom.com/news-releases/news-release-detai...
evmar··on Anchor Brewing Company ends national distribution, kills Christmas Ale
Growing up outside of California I knew their name from a line in this song: https://www.youtube.com/watch?v=6y0R-QccpcQ
evmar··on How Photoshop solved working with files larger than can fit into memory
It was a memory limit imposed by the browser.
evmar··on How Photoshop solved working with files larger than can fit into memory
I worked on some memory stuff for Figma, a similar app, though it's surely changed since I did.

One interesting thing about Photoshop's perspective is that it's fundamentally about "files", which is like a single bytestream that contains all the picture and which must be transferred to the browser to work on. A Figma document also can refer to images, but in a different way. The sum of the document data (like layout) and the image pixels can be extremely large, like gigabytes, but you can transfer those two things separately from server to client.

evmar··on Retrowin32: Async, DLL loading, tracing execution, and Zig
Wow, thanks so much for this link!
evmar··on Oxidizing OCaml: Locality
My understanding is that Go does a similar kind of optimization (where locals that don't escape don't go on the heap) but it does it automatically. This has the positive that you don't need annotations but the negative that you can assume some code is benefitting from the optimization when it isn't and there's no warning about it.

I'm curious whether the authors here considered this. I didn't see any discussion of related work in the post.

evmar··on Is ChatGPT Securities Fraud?
https://archive.is/x3AiC
evmar··on Sensenmann: Code Deletion at Scale
It was kind of an internal joke at Google for German-speaking teams to make German-named projects. (It's maybe only a joke that makes sense to the infamous German sense of humor.)
evmar··on USA Cycling champion dies after being struck by car in San Francisco’s Presidio
Looks like SF averages about one person killed by a car every ten days or so, though bikers are a relatively rare proportion of them:

https://sfgov.org/scorecards/transportation/traffic-fataliti...

(Edit: this comment came out more heartless than I intended! I think this story is a real tragedy. I was just connecting it to the larger tragedy of car culture.)

evmar··on Buck2: Our open source build system
How do the "transitive-sets (tsets)" mentioned here compare to Bazel depsets[1]? Is it the same thing with a different name, or different in some important way?

[1] https://bazel.build/rules/lib/depset

evmar··on My long goodbye to Windows XP (2022)
I was curious so I found the bug where they tracked some of the post-XP cleanup work: https://bugs.chromium.org/p/chromium/issues/detail?id=579196
evmar··on My long goodbye to Windows XP (2022)
They are running a Chrome from 2016, so they are vulnerable to ~every exploit found in Chrome since then.
evmar··on Craziest thing I ever used SQLite for: partial file deduplication (2022)
Coincidentally, I just saw that the "USENIX Test of Time Award" for 2023 was an analysis for deduplication purposes of real-world files. I found Figure 1 particularly interesting in that partial deduplication didn't save much over whole-file based deduplication in practice.

https://www.usenix.org/conferences/test-of-time-awards

← PreviousPage 5 of 27Next →