Using Port 80/443 without root: Via the Firewall
In Unix/Linux only the root can use ports below 1024. However, listening to the internet is dangerous: If that program has a vulnerability, the bad guys can get root permissions. Therefore, you want to use a way to run the app without root and listen to the below 1024 ports.
There are well known methods:
Use
setuidandsetgidto change the user after binding to the ports.Using a small utility like ttps://github.com/JiriHorky/privbind[
privbind] to launch any program non-root but allow it to bind ports.In Linux, grant the
CAP_NET_BIND_SERVICE capabilityto a program.Use
Dockeror other container systems to bind the port and run under a different user.
OutOfMemoryError: Exit Immediately
TLDR: I highly recommend to use -XX:+ExitOnOutOfMemoryError or -XX:+CrashOnOutOfMemoryError
for Java apps, combined with -XX:HeapDumpPath=path-to-crash-dumps -XX:+HeapDumpOnOutOfMemoryError.
This stops the JVM from trying to limp on when it runs out of memory and provides dumps to analyze
the issue later.
Create Types on Demand and Cecilifier
This post is part of C# Advent Calendar 2025. Visit it for all the awesome upcoming posts!
The traditional C# Advent is here. Usually I give some daily and practical advice. Like testing tips [1] or some outsider view approach to C# [2] here. This time its more about fun with very niche applications.
Provide 'Just In Time' Types & Code?
Learned/Discovered this week: bpftrace, Windows in Docker, Testcontainers & Docker upgrade, Debugging-Tips
A short list of things I’ve learned or discovered this week.
bpftrace: DTrace for Linux
I discovered that bpftrace exists for Linux. It is similar to DTrace, where you instrument your system to debug it. That is great news (to me), because DTrace never made really to mainstream Linux. (Even Windows has it). bpftrace compiles things to eBPF programs to do the tracing, so it works on must Linux flavors.
Found via Brendan Gregg. Its one of the best resources for performance debugging.
Use Mill Build Caching in CI-Builds
Mill build is still my favorite least-hated build tool. (Here is my outdated introduction to it.) In this blog post I show how to use the Mill build to speed up builds on branches.
I am using Bitbucket pipelines in this post. And I’m a newcomer at that =).



