HNHacker News
TopNewBestAskShowJobs

mappu

5,913 karma · joined September 10, 2011

Software engineer, Christchurch, New Zealand.

Spare-time projects wind up here: https://code.ivysaur.me/

submissionscomments
mappu··on Benchmarks for concurrent hash map implementations in Go
A few release cycles back, Swiss Maps became popular (i think, particular thanks to CockroachDB) as a replacement for standard Go map[K]V.

Later, Go's stdlib map implementation was updated to use Swiss Maps internally and everyone benefited.

Do you think the xsync.Map could be considered for upstreaming? Especially if it outperforms sync.Map at all the same use cases.

mappu··on Toyota’s hydrogen-powered Mirai has experienced rapid depreciation
Gaseous form is a problem, but have you seen the Fraunhofer POWERPASTE? I was optimistic when the news was first announced, but that was a decade ago and of course it's not widely used.
mappu··on WolfSSL sucks too, so now what?
Go can create C ABI shared libraries, I think OpenSSL-compatible C bindings to Go's crypto/tls would be a really interesting option.
mappu··on LICENSE: _may be_ licensed to use source code; incorrect license grant
You can see the spirit of what they're going for also with the MIT binaries - that's also like saying the whole project is AGPL, but a loosening for using it as-is.

Given their goals seem to be

- Permissive use without modification, even in combined works ("MIT binaries"); but

- Copyleft with modification, including for the Affero "network hole", or commercial terms

could you suggest a clearer license option? AGPL triggers copyleft across combined works, LGPL doesn't cover the network hole, GPL has both problems. Their goals seem really reasonable, honestly, there should be a simple answer. It seems messy but I like it more than the SSPL/BSL/other neo-licenses.

mappu··on Raspberry Pi Drag Race: Pi 1 to Pi 5 – Performance Comparison
Fun!

    126 Intel N5105, gcc -O2 (Debian)
     98 Neoverse N1, gcc -O2 (Debian) - Oracle Cloud
     63 Snapdragon 8gen3, clang -O2 (Termux) - Xiaomi 14
     59 Ryzen 7600, clang -O2 (MSYS2 / Windows 11)
     48 Ryzen 7600, clang -O2 (Debian)
     45 Ryzen 7600, gcc -O2 (Debian)
mappu··on Show HN: Mist – a lightweight, self-hosted PaaS
Dokku user for a decade here, congrats on shipping, love to see more self-hosted PaaS options like this.

Why are binaries checked into the bin/ directory in the repo?

Compared to Dokku, I like how your LE support is builtin instead of a plugin. Is your main www ingress server an nginx that gets externally configured (like Dokku) or are you using net/http or libcaddy directly?

Dokku has a history of trying to compete with Heroku buildpacks - as a non Heroku/non Ruby developer this never resonated with me and there are a lot of vestigal parts (e.g. .web.1) that i would just put in my own Dockerfile directly. So focusing solely on Dockerfiles i personally feel is a good move.

One issue i faced with Dokku is eventually the build process for my Dockerized app was too memory-intensive to run on the VPS. I switched to running docker build locally, sending the container via `docker export | ssh | docker import`, and having a single `FROM myapp` dockerfile in Dokku. This was not particularly ergonomic to set up. Is it possible you can improve the UX of client-side built containers, or will you focus solely on the GitOps deploy?

mappu··on ChromaDB Explorer
Cool project!

I would hope "native" means at least either CPU-native code (i.e. not Typescript) or OS-native UI (i.e. not Electron) - what did you mean by it here?

mappu··on vLLM large scale serving: DeepSeek 2.2k tok/s/h200 with wide-ep
ZLUDA implements CUDA on top of AMD ROCm - they are explicitly targetting vLLM as their PyTorch compatibility test: https://vosen.github.io/ZLUDA/blog/zluda-update-q4-2025/#pyt...

(PyTorch does also support ROCm generally, it shows up as a CUDA device.)

mappu··on PS5 ROM Keys
More info in https://old.reddit.com/r/PS5_Jailbreak/comments/1q0cwj2/ps5_...
mappu··on OrangePi 6 Plus Review
What is ACPI other than a DTB baked into the firmware/bootloader?

Any SBC could buy an extra flash chip and burn an outdated U-Boot with the manufacturer's DTB baked in. Then U-Boot would boot Linux, just like UEFI does, and Linux would read the firmware's fixed DTB, just like it reads x86 firmware's fixed ACPI tables.

But - cui bono?

You need drivers in your main OS either way. On x86 you are not generally relying on your EFI's drivers for storage, video or networking.

It's actually nice that you can go without, and have one less layer.

mappu··on Guarding My Git Forge Against AI Scrapers
Crawlers will find everything on the internet eventually regardless of subdomain (e.g. from crt.sh logs, or Google finds them from 8.8.8.8 queries).

REQUIRE_SIGNIN_VIEW=true means signin is required for all pages - that's great and definitely stops AI bots. The signin page is very cheap for Gitea to render. However, it is a barrier for the regular human visitors to your site.

'expensive' is a middle-ground that lets normal visitors browse and explore repos, view README, and download release binaries. Signin is only required for "expensive" pageloads, such as viewing file content at specific commits git history.

mappu··on Guarding My Git Forge Against AI Scrapers
Gitea has a builtin defense against this, `REQUIRE_SIGNIN_VIEW=expensive`, that completely stopped AI traffic issues for me and cut my VPS's bandwidth usage by 95%.
mappu··on Golang's big miss on memory arenas
Go exposes raw pointers to the programmer, and its current GC is entirely non-moving. Even excluding cgo, I think a moving one would probably break real programs that rely on pointer values.
mappu··on Bikeshedding, or why I want to build a laptop
Found it, I think - I remember the other part about his mini stove for making tea - https://web.archive.org/web/20150803225629/http://robrhineha...

> I enjoy doing laundry about as much as doing dishes. I get my clothing custom made in China for prices you would not believe and have new ones regularly shipped to me. Shipping is a problem. I wish container ships had nuclear engines but it’s still much more efficient and convenient than retail. Thanks to synthetic fabrics it takes less water to make my clothes than it would to wash them, and I donate my used garments.

I'm sure i remember a few more details, like his claim that black t-shirts worn only once are the most stylish possible garment, but i'm willing to put that part down to the Berenstein Bears effect.

mappu··on Bikeshedding, or why I want to build a laptop
I remember that story. I want to say it was the Soylent drink founder, but Google is steering me astray. Who was it?
mappu··on Framework Sponsors CachyOS
Testing doesn't get timely security updates. Arch is more like Sid anyway.
mappu··on Ask HN: Cloudflare WAF Alternatives?
The ability of a WAF to respond to an 0day incident is rapid rollout, 100% of endpoints, which is a SPOF no matter whether it's done via a big company or by a distributed system.
mappu··on Apple Mini Apps Partner Program
Telegram have a big mini-apps platform.

Chatbots are a major area to regulate. I don't see how it would be possible for Telegram (or Discord, or IRC clients...) to comply with this.

mappu··on Valdi – A cross-platform UI framework that delivers native performance
An AOT TS -> C compiler is fantastic - how much of the language is supported, what are the limitations on TS support? I assume highly dynamic stuff and eval is out-of-scope?
mappu··on FFmpeg dealing with a security researcher
This isn't my place to argue, and certainly he was involved at the time, but LibAV wasn't really "his fork". Reading the full list of names who signed off https://lwn.net/Articles/423703/ I'm more interested in some other names, including darkshikari's deadname and the other heavy hitters of x264.

And if you browse through the ffmpeg mailing list of that historic month https://ffmpeg.org/pipermail/ffmpeg-devel/2011-January/ you'll find his name mostly attached to esoteric video game format patches and not in the big flamewar threads.

Actually - it looks like you can also see in that same month, his post of the first SMUSH codec implementation, that we're discussing in this thread. That's probably a bigger emotional factor than LibAV.

mappu··on FFmpeg dealing with a security researcher
Kostya (ex-FFmpeg developer)'s take on the behaviour of the FFmpeg twitter account: https://codecs.multimedia.cx/2025/11/ffpropaganda/
mappu··on WebAssembly (WASM) arch support for the Linux kernel
That requires an ISA emulation layer, this new implementation doesn't - here, every binary is compiled as wasm, and every child process runs as a new Wasm WebWorker, and the Kernel ABI is exposed as Wasm export functions.

Removing the ISA translation layer has the potential to be massively faster for full-system environments. At the expense of maybe some new bugs.

The performance should ultimately be similar to compiling your userspace application directly as Wasm, but you now get to take advantage of the full kernel ABI instead of just the minimal shims that Emscripten give you / whatever DOM glue you create yourself.

mappu··on CPU cache-friendly data structures in Go
Some languages like Odin, ISPC, and Jai all have annotations that can automatically transform AoS to SoA. A key benefit is you can easily experiment to see if this helps your application, without doing a major refactor.

In https://github.com/golang/go/issues/64926 it was a bridge-too-far for the Go developers (fair enough) but maybe it could still happen one day.

mappu··on OpenZL: An open source format-aware compression framework
Specialization for file formats is not novel (e.g. 7-Zip uses BCJ2 prefiltering to convert x86 opcodes from absolute to relative JMP instructions), nor is embedding specialized decoder bytecode in the archive (e.g. ZPAQ did this and won a lot of Matt Mahoney's benchmarks) but i think OpenZL's execution here, along with the data description and training system, is really fantastic.
mappu··on OpenZL: An open source format-aware compression framework
precomp/antix/... are tools that can bruteforce the original gzip parameters and let you recreate the byte-identical gzip archive.

The output is something like {precomp header}{gzip parameters}{original uncompressed data} which you can then feed to a stronger compressor.

A major use case is if you have a lot of individually gzipped archives with similar internal content, you can precomp them and then use long-range solid compression over all your archives together for massive space savings.

mappu··on The QNX Operating System
Passing the PTE sounds great for big messages (send/recv).

For small messages (open), the userspace malloc is going to have packed small buffers into a single page - so there's a chance you'd need to copy to a new userspace page, the two copies might work out better.

mappu··on Xmonad seeking help for Wayland port (2023)
Wayback is a new Wayland compositor that implements the X11 window manager API on top of a single rootful XWayland session: https://www.phoronix.com/news/Wayback-X11-Wayland . XMonad should run fine inside it.

This gives you the advantage of Wayland's modern display stack and no legacy Xorg code while still running a classic X11 window manager.

The main downside is you have to run all X11-compatible apps, it's unable to manage any Wayland-native applications. But, X11 apps aren't going away any time soon, just the display server.

mappu··on Ask HN: What is the actual state of Linux phones?
The best hardware is probably something with SD845 as this can run mainline Linux. A second-hand Poco F1 running PostmarketOS is pretty cheap and realistic.
mappu··on Intel's E2200 "Mount Morgan" IPU at Hot Chips 2025
This is Intel making a 24 core Neoverse N2 server on TSMC - not their ISA, not their core design, and not their fab
mappu··on KDE launches its own distribution
I'm in a similar boat - i tried the Wayland session in Debian 10 and 11 and lasted less than a day; in Debian 12 i toughed it out for about a week before hitting a showstopper; but this time in Debian 13 i've used it since release without a single nit to pick.
← PreviousPage 2 of 34Next →