HNHacker News
TopNewBestAskShowJobs

emilburzo

1,554 karma · joined October 3, 2014

https://emilburzo.com
submissionscomments
emilburzo··on Today's PHP security release, and how we're strengthening security
The images everyone is waiting for are built by Docker though? So now if you're Docker you have to have a private CI/CD pipeline with all library projects?

It would be great, but it's also something to manage. Just keeping it working with all the changes that happen across all projects would be something.

emilburzo··on Today's PHP security release, and how we're strengthening security
That's... not what I said at all?

But let's go with that scenario, now you have all sorts of problems, from practical to security, like:

- accidentally/maliciously building the wrong thing? there's a patch, people agreed to it, but the wrong commit is built

- building for multiple architectures/versions?

- signing keys on someone's laptop?

- worse, image push/write keys on someone's laptop?

And so on.

emilburzo··on Today's PHP security release, and how we're strengthening security
I can empathize with them, this is actually quite difficult when you're an open source project.

You have your source code public, so you can't commit/push because then you've leaked info.

Your build pipeline is also likely public, so you can't just build from another source code... source.

You can create a private repo, but now you also need to build a private build system.

You don't get the same generous build resources for private repos, so you either:

a) simplify the build to just the essentials

b) pay

Unless you have significant funding, you'll probably go for a).

Now you have to maintain two systems, also with some differences between them.

Plus you need a way to get the build artifacts from the private system to the public one, typically at a fixed point in time.

Any failure/delay (e.g. less powerful build on private repo, errors because you exercise it rarely) causes people to get upset that you didn't respect the announced time.

Maybe you're also using things like image attestation, another can of worms.

emilburzo··on Namecheap just seized and disabled all my domains
> I regret getting a .io domain

Same. Mine's less important than email, more for personal projects with a nice URL, but I still feel the pain of switching.

> I'm looking to move from Namecheap to Porkbun

You can already do this today with your .io and pay ~$52 instead of ~$76. It's what I did a few days ago when I saw the crazy renewal price.

It was way easier to transfer the domain than I expected. And if you host DNS somewhere else, without downtime.

emilburzo··on Wanted to download an ISO, ended up writing a kernel exploit
Because I've done it a million times and wanted to see what the "random number generator" is capable of? Because I have config backups/know how to unbrick?

You should try it, you might be surprised how thorough it is. It certainly checked more things pre/during/post-upgrade than I did to make sure everything goes smoothly. And definitely more than xattt, apparently ;)

emilburzo··on Wanted to download an ISO, ended up writing a kernel exploit
I mean, these days you can just let Claude do it if you don't care for such minutiae... I was skeptical, but it got it done perfectly.

It also discovered my fast roaming settings were incompletely setup and that I was using a 5GHz channel that needed 60s to turn on due to regulations (DFS channels).

emilburzo··on Wanted to download an ISO, ended up writing a kernel exploit
Or, buy a TP-Link router and flash it with OpenWrt. Best of both worlds.
emilburzo··on AirPods 5
If microphone quality matters a lot for your use-case, you might also want to checkout the Anker Soundcore Libery 5 Pro.

(I'm only sharing this because I know how difficult it is to find any information on earbuds with good microphones, Huawei Freebuds 4/5 were the best from my experiments until Anker released the ones above)

emilburzo··on Civilian plane crash in New Mexico tied to military GPS blocking
I actually experienced GPS spoofing while paragliding near Ukraine, luckily in the daytime. I don't even want to imagine it at night on a rescue mission. Condolences to the occupants.

It's quite easy to say "no big deal" while calm in an office, but it's really different when you're busy flying and then there's the extra workload of trying to understand what's happening, attempting to fix it, and so on. Imagine "debug bug in production while driving a car" for a rough comparison, although I guess planes are probably better equipped for loss of GPS?

https://blog.emilburzo.com/2026/06/gps-spoofing-teleported-m...

emilburzo··on GPS spoofing teleported me to Peru, mid-flight
Interesting, so the spoofing is only active during attacks? That explains the short duration.

I am wondering what changed though, since this hasn't happened before in the previous 4 years. More spoofing installations maybe? Higher radio transmitter power?

I'm also very curious, do you have any technical mitigations for this to be able to use your GPS devices? Or is it now just a fact of life?

Sorry for what you are going through.

emilburzo··on The ways we contain Claude across products
It doesn't have any credentials inside the VM though, not even for git, so it could commit but not push. And I manually review/commit/push outside of the VM since I don't want to just dump stuff without reading it first.

But good call-out if someone uses a different workflow.

emilburzo··on The ways we contain Claude across products
I'm still happy with my containment setup[1][2] on linux. The only risk that I see from the article would be the "Exfiltration through an approved domain" one. But in the VM there's (by design) nothing to exfiltrate besides the source code itself, which is less valuable these days.

The major benefit for me with this setup is that the agent can do all of the dev things that I can (install packages, build/run docker images, ...) which is a way faster loop than me trying it manually and then reporting back to the agent.

[1] https://blog.emilburzo.com/2026/01/running-claude-code-dange...

[2] https://news.ycombinator.com/item?id=46690907

emilburzo··on France's aircraft carrier located in real time by Le Monde through fitness app
Yep, that looks like a paraglider circling in a thermal while being drifted due the wind.

Random tracklog example: https://www.xcontest.org/world/en/flights/detail:mattmozza/2...

(zoom in until you see circles on the track line)

emilburzo··on Starlink Mini as a failover
> Romania reportedly has unlimited for 4€ but I don't know which operator.

Orange Yoxo is the only one which has actually-unlimited, all the others have a fine-print somewhere with "up to X GB/month, then bandwidth is severely throttled".

I'm using the 4.9€ plan for a mountain webcam[1] and they have been true to their word, no throttling so far.

[1] https://ignis.maramures.io/

emilburzo··on What Is OAuth?
I've been happily using oauth2-proxy[1] with nginx as an extra layer of authentication to prevent situations where e.g. home-assistant had an unauthenticated RCE.

It's pretty neat since you can have one oauth instances for all virtual hosts, e.g.:

  server {
      [...]   
     
      location /oauth2/ {
          proxy_pass       http://127.0.0.1:8469;
          proxy_set_header Host                   $host;
          proxy_set_header X-Real-IP              $remote_addr;
          proxy_set_header X-Scheme               $scheme;
          proxy_set_header X-Auth-Request-Redirect $request_uri;
      }
  
      location / {
         auth_request /oauth2/auth;
         error_page 401 = /oauth2/sign_in;
  
         [...]
      }
  }

[1] https://github.com/oauth2-proxy/oauth2-proxy
emilburzo··on Hacking Moltbook
> but a bug in VirtualBox is making one core run at 100% the entire time

FYI they fixed it in 7.2.6: https://github.com/VirtualBox/virtualbox/issues/356#issuecom...

emilburzo··on Running Claude Code dangerously (safely)
Hmm, perhaps I'm missing something, so let's go through it step by step and see where the disconnect is:

- There's a cloned 'my-project' git repo on the base OS

- The 'Vagrantfile' is added to the project

- 'vagrant up', 'vagrant ssh' and claude login is run inside the VM

At this stage, besides the source code and the Claude Code token (after logging in), there are no other credentials on the VM: no SSH keys, no DB credentials, no API tokens, nothing.

There is also no need to add:

- SSH keys or GitHub tokens: because git push/pull is handled outside the VM

- DB credentials: because Claude can just install a DB inside the VM and run the project migrations against that isolated instance, not any shared/production database

API tokens can definitely be a problem if you need external service integration. But that's an explicit opt-in decision, you'd have to deliberately add those credentials to the Vagrantfile or sync them in. At that point, yes, you need proper token scoping and permissions.

emilburzo··on Running Claude Code dangerously (safely)
Correct, which I wanted to avoid because:

> Mounting the Docker socket grants the agent full access to your Docker daemon, which has root-level privileges on your system. The agent can start or stop any container, access volumes, and potentially escape the sandbox. Only use this option when you fully trust the code the agent is working with.

https://docs.docker.com/ai/sandboxes/advanced-config/#giving...

emilburzo··on Running Claude Code dangerously (safely)
I tried this approach for a while, but I really wanted it to be able to do anything (install system packages, build/run Docker containers, the works).

With these powers there's a lot less back-and-forth with me running commands, copying the output, pasting it to Claude, etc.

I'm sure you've had the case where you had to instruct someone to do something (e.g. playing tech support with family, helping another engineer, etc). While it helps the other person learn, it feels soooo slow vs just doing it yourself :) And since I don't have to teach the agent, I think this approach makes sense.

emilburzo··on Running Claude Code dangerously (safely)
This was also the direction I was initially headed, but then I realized I wanted one-VM-per-project so it can really do anything it wants on the complete VM. So the blast-from-the-past-Vagrant won because of the Vagrantfile + `vagrant up` easiness.
emilburzo··on Bubblewrap: A nimble way to prevent agents from accessing your .env files
I totally understand, Vagrant and VirtualBox are quite a blast from the past for me as well. But besides the what-are-the-odds bug, it's been smooth sailing.

> VMs with 3D acceleration

I think we don't even need 3D acceleration since Vagrant is running the VMs headless anyways and just ssh-ing in.

> Incus (on Linux hosts)

That looks interesting, though from a quick search it doesn't seem to have a "Vagrantfile" equivalent (is that correct?), but I guess a good old shell script could replace that, even if imperative can be more annoying than declarative.

And since it seems to have a full-VM mode, docker would also work without exposing the host docker socket.

Thanks for the tip, it looks promising, I need to try it out!

emilburzo··on Bubblewrap: A nimble way to prevent agents from accessing your .env files
> [...] and maybe I also want kilo code to run a docker stack for me which it can't in the agent cloud

Yes! I'm surprised more people do not want this capability. Check out my comment above, I think Vagrant might also be what you want.

emilburzo··on Bubblewrap: A nimble way to prevent agents from accessing your .env files
> unsupervised in a VM in the cloud where the agent has root

Why in the cloud and not in a local VM?

I've re-discovered Vagrant and have been using it exactly for this and it's surprisingly effective for my workflows.

https://blog.emilburzo.com/2026/01/running-claude-code-dange...

emilburzo··on Running Claude Code dangerously (safely)
Good point. For me, that was intentional, since all my projects are in git I don't care if it messes something up. Then you get the benefit of being able to use your regular git tooling/flows/whatever, without having to add credentials to the VM.

But if you need something more strict, 'config.vm.synced_folder' also supports 'type rsync', which will copy the source folder at startup to the VM, but then it's on you to sync it back or whatever.

emilburzo··on Show HN: DoNotNotify – Log and intelligently block notifications on Android
Since Android 15, Google Pixel phones have a "notification cooldown" that sort of fixes this. Hopefully it makes it's way to all Android phones at some point.

https://www.androidauthority.com/android-15-notification-coo...

emilburzo··on Precise geolocation via Wi-Fi Positioning System
Already done: https://hackaday.com/2024/11/15/bypassing-airpods-hearing-ai...
emilburzo··on Show HN: Geofenced chat communities anyone can create
For anyone else trying to find the Telegram feature:

> Telegram Announces Removal of "People Nearby" Feature

emilburzo··on Show HN: Geofenced chat communities anyone can create
Back in the day when Direct Connect[1] was a thing, and we all had insane speeds in the metropolitan area (but not so great outside of that), I used to run a DC hub. Which due to said speeds had mostly people that were close by, geographically speaking, and the interactions felt so much more relevant, probably because of the "third thing" you mention, the common interest/background.

So I've also been thinking for a while now: how can that style of community be recreated? There's of course the chicken-and-egg problem until you have traction, but also things like: how big should the community be, geographically? The same size in the US vs EU likely encompasses quite different amounts of people. Should it be anonymous or real identities? Should history be viewable by new members or should it be ephemeral? And so on.

Anyway, interesting prototype, I hope you get some traction!

[1] https://en.wikipedia.org/wiki/Direct_Connect_(protocol)

emilburzo··on A macOS terminal command that tells you if your USB-C cable is bad
+1 here, with the latest Chrome v3 manifest shenanigans, the Pushbullet extension stopped working and the devs said they have no interest in pursuing that (understandable).

I always wanted a dedicated binary anyway, so 1 hour later I got: https://github.com/emilburzo/pushbulleter (10 minutes vibe coding with Claude, 50 minutes reviewing code/small changes, adding CI and so on). And that's just one where I put in the effort of making it open source, as others might benefit, nevermind the many small scripts/tools that I needed just for myself.

So I share the author's sentiments, before I would have considered the "startup cost" too high in an ever busy day to even attempt it. Now after 80% of what I wanted was done for me, the fine tuning didn't feel like much effort.

emilburzo··on Leveling Up My Homelab
If you have another machine with a SSD or at least a fast-ish HDD and want to give it another go, you could try running k3s with an external datastore (e.g. postgres).

That's the setup I've been using on 3 x rPi since 2021 and I'm super happy with it as I can host all my own personal projects, some OSS ones (changedetection, n8n, etc), even longhorn for distributed storage and still have capacity left -- and this with just microSDs (to be fair, A1s, but still).

Page 1 of 14Next →