Skip to content

Instantly share code, notes, and snippets.

# A rough demo demo following the instructions
# on https://docs.github.com/en/actions/tutorials/create-actions/create-a-javascript-action
#
define rollup_content =
import commonjs from "@rollup/plugin-commonjs";
import { nodeResolve } from "@rollup/plugin-node-resolve";
const config = {
input: "index.js",
@jordansissel
jordansissel / foo.md
Created October 3, 2025 23:56
docker volumes and overlayfs experiments

With a docker volume

% sudo rm -r /tmp/overlay/upper; mkdir /tmp/overlay/upper
% docker volume create --driver local --opt type=overlay --opt o=lowerdir=/etc,upperdir=/tmp/overlay/upper,workdir=/tmp/overlay/work --opt device=overlay overlay-etc

# I've tried without --privileged, and with --security-opt label=disable, both still relabel all files.
% sudo docker run --volume overlay-etc:/etc2 --privileged ubuntu:latest date

Possibly the worst way to encode json in C?

% emcc example.c -o example.js -s DEFAULT_LIBRARY_FUNCS_TO_INCLUDE='$UTF8ToString,$stringToNewUTF8

% node example.js
JSON: {"name":"Captain Pants","id":0}
@jordansissel
jordansissel / Makefile
Created October 15, 2024 04:59
Non-file dependencies in a Makefile
# 'gem list -i foo' will print 'true' if a gem is already installed. 'false' otherwise
GEMS=clamp rake
# From the GEMS list, generate a list of make targets
TARGETS=$(foreach gem,$(GEMS),gem-$(shell gem list -i $(gem))-$(gem))
build: $(TARGETS)
build:
@echo "=> OK to build"
@jordansissel
jordansissel / main.js
Created December 9, 2022 08:01
Napster URL conversion to Sonos UPnP -- Using node-songs to play music.
const { DeviceDiscovery } = require('sonos');
DeviceDiscovery((device) => {
//console.log('found device at ' + device.host + " - " + device.friendlyName)
device.deviceDescription().then(descr => {
// look for a sonos named "Sonos Roam"
if (descr.friendlyName.match(/Sonos Roam/)) {
console.log(descr);
// Coheed - Vaxis II - first track
@jordansissel
jordansissel / README.md
Last active May 28, 2022 06:43
Reading nested tar files.

What?

Sometimes tar files have tar files, and it might be nice to read the contents of some files several layers deep. Here's how we can do it with Ruby and Python3 with no external dependencies.

Podman save

We can create a layered tar file (a tar file containing other tar files) using docker save or podman save

% podman save fpm-ubuntu-18.04 -o test.tar
@jordansissel
jordansissel / conf
Last active May 19, 2022 08:17
Parsing flags from a file in Clamp in Ruby
--version 1.2.3.4
@jordansissel
jordansissel / OUTPUT
Created November 9, 2021 04:37
pleaserun systemd service extraction with jq
[Unit]
Description=no description given
[Service]
Type=simple
User=root
Group=root
# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.
# Prefixing the path with '-' makes it try to load, but if the file doesn't
# exist, it continues onward.
#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
Display *dpy;
// Below here, Copilot generated the rest.
dpy = XOpenDisplay(NULL);
if (dpy == NULL) {
@jordansissel
jordansissel / output.md
Last active October 18, 2021 05:46
Climate controllers with local network access, according to Home Assistant
% git clone --depth 1 https://github.com/home-assistant/core

Find "climate" support, then look for components with iot_class matching "local"

% grep -l climate */const.py | awk -F/ '{print $1}' | xargs -n1 sh -c 'jq .iot_class $1/manifest.json | grep -q local && echo "* https://www.home-assistant.io/integrations/$1"' -