HNHacker News
TopNewBestAskShowJobs

deivid

750 karma · joined August 10, 2017

I have a computer-related blog at https://blog.davidv.dev/

You can contact me at hello+hn@davidv.dev

submissionscomments
deivid··on Hands-On Introduction to Unikernels
This is really well written, thanks for sharing.

I didn't understand the point of using Unikraft though, if you can boot linux in much less than 150ms, with a far less exotic environment

deivid··on Interactive eBPF
I wanted to add all kind of exercises, but I'm not sure what's a good way of presenting a deployment exercise.

On libbcc specifically, I'm not sure it's worth it, CO-RE / BTF is where things are heading, and any reasonably new kernel supports it (<5 years old)

deivid··on Interactive eBPF
Thanks for sharing my site!

I've been thinking about building a platform like this for a while, and it was quite fun to build.

Let me know if you have questions or ideas for new exercises.

deivid··on OLED, Not for Me
Downsizing from a 27" 5k to a 24" 4k, could not find anything besides a new company called JAPANNEXT (they are French)
deivid··on Static Allocation for Compilers
It's an interesting idea. I'm butchering TCC (tiny c compiler) for a side project/experiment, and using arenas sped it up 2x. This of course requires the memory limit to be specified in advance, but for my situation that's fine.
deivid··on Rex is a safe kernel extension framework that allows Rust in the place of eBPF
IMO eBPF is best viewed as a mechanism that allows you to load "arbitrary" code in specific kernel paths, while guaranteeing that the kernel won't hang or crash.

That's it. Though I said "arbitrary" because the program has to pass the verifier, which limits valid programs to ones where it can make the stability guarantees.

deivid··on Ask HN: What Are You Working On? (December 2025)
I'm not sure it'll be a serious project, but the main goal is to use it in CI or dev, where setting up postgres is kind of a pain.

I got it to work already by setting up the global context in single-user mode (like postgres --single) and exposing bindings for SPI operations.

Yesterday night I got extensions working, but as this project builds as a static archive, the extensions also have to be part of the build. Both plpgsql and pgvector worked fine.

The bigger challenge is dealing with global state -- comparing the pre-start and post-shutdown state of the process memory, about 200 globals change state. Been slowly making progress to get restarts working

deivid··on Ask HN: What Are You Working On? (December 2025)
Building postgres server as a library. Some early success, but initdb and in-process restarts are much harder than expected
deivid··on Ask HN: Is starting a personal blog still worth it in the age of AI?
I've been writing on my blog for 9 years. Still feel the same blockers you do on every new post.

For me, the main motivation is that I enjoy reading other people's blogs, and hopefully my posts give someone ekse a similar enjoyment

I had a few attempts to lower the bar (tags for low effort, short and shitpost so far), but it feels like a crutch and hasn't worked long term for me.

deivid··on Driving TFEL with RP2040: Offloading the CPU step by step (2021)
These screens look amazing, but $1500-2500 is a bit much. Any other screens with this monichrome CRT style?
deivid··on JetKVM – Control any computer remotely
I've had this project idea in my list for a while, I even implemented thr software side (an option rom for the pci card) but the hardware side is quite difficult to get started. My plan was to get an FPGA with a hard pci core to do this, but I don't even know what to buy.

I got a cheap Tang Mega 238k but I never managed to even get the PCI examples working (and couldn't even adjust BAR settings)

deivid··on An Update on TinyKVM
Well it was released on Linux in 2007, so it's meant Kernel Virtual Machine for at least 18 years

See: https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine

deivid··on The Linux Boot Process: From Power Button to Kernel
Really nice post, some months ago I also wrote about linux boot, but a bit more focused on the IO side (what's on disk, how is it loaded), here: https://blog.davidv.dev/posts/booting-x86-64/
deivid··on An Update on TinyKVM
This is amazing! I am also a little bit obsessed with fast-booting kvm for per-request isolation, and have managed to get Linux to pid1 in 3.6ms, I am starting to go a little insane because I don't know how to measure the rest of the CPU time (would love a flamegraph somehow) -- the ftrace data just... confuses me
deivid··on Go subtleties
C at least has const ptr. In go I've seen pointers mutated 7 levels down the callstack. And of course, the rest of the sphagetti depended on those side effects.

C is so limited that you would try to avoid mutation and even complex datastructures.

Go is "powerful" enough to let you shoot yourself much harder.

Go with `const` and NonNull<ptr> (call it a reference if you need) would be a much nicer language

deivid··on Ilo – a Forth system running on UEFI
you probably should set the serial port speed
deivid··on F-Droid and Google’s developer registration decree
FDroid owns the keys for any app submitted without reproducible builds. But I believe they would prefer 100% reproducible builds and to own no keys
deivid··on F-Droid and Google’s developer registration decree
Fdroid need to build the apps themselves to ensure they match the upstream source. They've moved away from owning the keys by recommending reproducible builds, however reproducible builds are hard and many app authors don't do it
deivid··on Implementing UI translation in SumatraPDF, a C++ Windows application
Have you noticed context issues in the translated values?

Just translating literally does not always work.

I am building an Android application and facing this issue. I've been thinking about going down the rabbit hole and linking each text to be translated to a screenshot or similar thing, so that the user sees their proposed translation in context

deivid··on Ask HN: What is the actual state of Linux phones?
I want it to work, but I gave up on it as my main device for now. I developed a few apps for Ubuntu Touch, but it's always very far behind Ubuntu. They are about to release 24.04.

I will probably continue developing my apps, but it's not really moving forward.

deivid··on Revamping an Old TV as a Gift (2019)
It's been a while, but building this was an interesting experience.

At the time, it was pretty far outside my comfort zone and I had a looming deadline (dad's birthday). Writing the software to work "as I intended" turned out to be much harder than I'd expected, so I ended up hacking things and making single 8-hour long video for each channel (with some persistence, so on next boot it'd continue from where it was)

On the positive side, Dad loved it, and keeping the tuner (the channel dial) with some high resistance made the TV feel as if it was truly an original TV.

Unexpectedly, everybody loved the ads that I added! I think my family mostly felt nostalgic about them

deivid··on Linux phones are more important now than ever
I had this old patchset: https://github.com/DavidVentura/scrcpy/tree/dev

Which added vnc support directly onto scrcpy, so I could leave a tablet plugged in to my headless server and access the tablet remotely via VNC

The alternative was to use X11vnc but it was janky and had some issues, plus higher cpu usage

deivid··on Linux phones are more important now than ever
Mine no longer allows website login without phone 2FA. Considering finding a new bank.
deivid··on Linux phones are more important now than ever
Have you tried scrcpy? https://github.com/Genymobile/scrcpy

I ran this with a custom fork to expose the device screen as a VNC server for years, no problems

deivid··on Light Sleep: Waking VMs in 200ms with eBPF and snapshots
From my experience with firecracker, you need to send a signal to the VMM that can be used to indicate the process is "ready" (and the snapshot can be taken).

I assume that every runtime must be forked to add such signal right before calling into usercode

deivid··on Light Sleep: Waking VMs in 200ms with eBPF and snapshots
Great post. Not sure if 200ms is fast though, you can definitely boot from zero to pid1 in <10ms.

I guess it depends on the workload, if you are snapshotting an already-loaded Python program, the time savings are huge, but if it's a program with fast startup, it's probably slower to snapshot.

> Waking up instantly on real traffic without breaking clients

is this for new TCP connections? Or also for connections opened prior to sleep?

deivid··on What's New with Firefox 142
The models[0] are open and great, I find them so useful that I ended up making an Android app[1] just to have them available also outside of Firefox.

[0]: https://github.com/mozilla/firefox-translations-models/

[1]: https://github.com/davidventura/firefox-translator

deivid··on My Retro TVs
Some years ago I got hit by the retro TV bug and made one for my dad's 50th birthday [0].

It's fairly simple to put a Pi inside a tv and hook it up, but it does feel almost like the real thing

[0]: https://blog.davidv.dev/posts/revamping-an-old-tv-as-a-gift/

deivid··on I accidentally became PureGym’s unofficial Apple Wallet developer
Great article, I went through something similar with TrainMore in The Netherlands, where they replaced an NFC key fob with a similarly refreshing QR code (but this one rotates every 30 seconds)

In my case, I didn't make a native app because I don't use the wallet integration.

I wrote about it here: https://blog.davidv.dev/posts/trainmore-re/

deivid··on RISC-V single-board computer for less than 40 euros
Maybe the memory of my Pi2 is better than reality.

I have a VisionFive2 as part of my lab (next to some arm and x86 sbc), with an nvme disk, and it's unbearably slow. It's still useful for testing platform compatibility, but I wouldn't recommend it to anyone.

← PreviousPage 2 of 8Next →