Skip to content

Instantly share code, notes, and snippets.

View imaami's full-sized avatar
🐺
C/C++/Linux ░▒▓▉▊▋▌▍▎▏

Juuso Alasuutari imaami

🐺
C/C++/Linux ░▒▓▉▊▋▌▍▎▏
  • Finland
View GitHub Profile
@imaami
imaami / hello_mt.c
Created April 29, 2026 19:54
Hell no, world
#include <pthread.h>
#include <stdatomic.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#define len(x) (sizeof (x) / sizeof (x)[0])
static void *run (void *a);
@imaami
imaami / mdbs_lut.h
Created April 22, 2026 21:28
Moser-De Bruijn-ish nibble expansion lookup
#include <stdint.h>
static constexpr uint8_t expand2[] = {
[0b0000] = 0b00000000, [0b0001] = 0b00000001,
[0b0010] = 0b00000100, [0b0011] = 0b00000101,
[0b0100] = 0b00010000, [0b0101] = 0b00010001,
[0b0110] = 0b00010100, [0b0111] = 0b00010101,
[0b1000] = 0b01000000, [0b1001] = 0b01000001,
[0b1010] = 0b01000100, [0b1011] = 0b01000101,
[0b1100] = 0b01010000, [0b1101] = 0b01010001,
@imaami
imaami / dlalloc.c
Created March 20, 2026 21:23
Cursed allocator
#define _GNU_SOURCE 1
#include <dlfcn.h>
#include <stdatomic.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
#include "dlalloc.h"
@imaami
imaami / discord
Created March 19, 2026 21:02
An autoupdate-on-launch thing for Discord on Debian
#!/usr/bin/env bash
#
# /usr/local/bin/discord
# Discord autoupdate-on-launch wrapper
update_script="${0/%discord/update-discord.sh}"
[[ ! -x "$update_script" ]] || "$update_script"
exec /usr/bin/discord "$@"
#include <errno.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "example_obj.h"
struct obj
obj (char const *name)
@imaami
imaami / .gitconfig
Last active October 24, 2025 10:47
A somewhat OK ~/.gitconfig
[alias]
aliases = config get --all --global --regexp --show-names '^alias\\.'
br = branch -avv --color=always
ib = blame --color-by-age --follow -w
idiff = diff --color=always --ignore-all-space --ignore-blank-lines --ignore-cr-at-eol --ignore-space-at-eol --ignore-space-change
ilog = log --color=always --ignore-all-space --ignore-blank-lines --ignore-cr-at-eol --ignore-space-at-eol --ignore-space-change
ishow = show --color=always --ignore-all-space --ignore-blank-lines --ignore-cr-at-eol --ignore-space-at-eol --ignore-space-change
iwdiff = diff --color=always --ignore-all-space --ignore-blank-lines --ignore-cr-at-eol --ignore-space-at-eol --ignore-space-change --color-words='([A-Z_a-z][0-9A-Z_a-z]*|0[Xx][[:xdigit:]]+|([1-9][0-9]*)?[0-9])'
iwlog = log --color=always --ignore-all-space --ignore-blank-lines --ignore-cr-at-eol --ignore-space-at-eol --ignore-space-change --color-words='([A-Z_a-z][0-9A-Z_a-z]*|0[Xx][[:xdigit:]]+|([1-9][0-9]*)?[0-9])'
iwshow = show --color=always --ignore-all-space --igno
@imaami
imaami / b25.py
Created October 10, 2025 20:58
De Bruijn sequences B(2,5) stuff
#!/usr/bin/python3
class B25():
data = (0x4653adf, 0x4653b5f, 0x4653eb7, 0x4653ed7, 0x46569df, 0x46569f7, 0x4656e9f, 0x4656fa7, 0x465769f, 0x4657da7, 0x465a9df, 0x465a9f7, 0x465ba9f, 0x465bea7, 0x465da9f, 0x465f6a7,
0x4674adf, 0x46752df, 0x467695f, 0x4676a5f, 0x467d2b7, 0x467d4b7, 0x467da57, 0x467da97, 0x46959df, 0x46959f7, 0x4695cfb, 0x4695d9f, 0x4695f3b, 0x4695f67, 0x469cafb, 0x469d95f,
0x469df2b, 0x469f2bb, 0x469f657, 0x469f72b, 0x46a59df, 0x46a59f7, 0x46a5cfb, 0x46a5d9f, 0x46a5f3b, 0x46a5f67, 0x46a72fb, 0x46a765f, 0x46a77cb, 0x46a7cbb, 0x46a7d97, 0x46a7dcb,
0x46b29df, 0x46b29f7, 0x46b94fb, 0x46bb29f, 0x46be53b, 0x46beca7, 0x46ca75f, 0x46ca7d7, 0x46cae9f, 0x46cafa7, 0x46cba9f, 0x46cbea7, 0x46ce95f, 0x46cea5f, 0x46cfa57, 0x46cfa97,
0x46e53eb, 0x46e7d2b, 0x46e7d4b, 0x46e959f, 0x46e9f2b, 0x46ea59f, 0x46ea7cb, 0x46eb29f, 0x46f94eb, 0x46f9d2b, 0x46f9d4b, 0x46fa567, 0x46fa72b, 0x46fa967, 0x46fa9cb, 0x46faca7,
0x4729afb, 0x4729beb, 0x472b7d3, 0x472be9b, 0x472bed3, 0x
@imaami
imaami / tagged_union.cpp
Last active August 9, 2025 18:39
C++14 tagged union
#define __STDC_FORMAT_MACROS
#include <cinttypes>
#include <cstdint>
#include <cstdio>
#include <string>
#include "tagged_union.hpp"
class Key {

How I broke the NotebookLM podcast hosts
and secured my place in line to meet Roko's basilisk

(Impatient? This thing right here.)

Google's NotebookLM can make pretty neat "podcasts" based on source material of your choosing. It's also annoyingly good at keeping its composure. Was.

The Process

I created a new notebook with an empty source file called you_do_not_exist.txt. At first I tried to upload a file that was literally 0 bytes in size, but it seemed to not be possible. Fortunately I found a workaround: a file with a single null byte doesn't look like anything to the hosts.

@imaami
imaami / vsplit.sh
Created February 28, 2025 17:30
Generate a list of GitHub caching keys from a semantic version
#!/usr/bin/env bash
vsplit() {
local k="$1" r
while [[ "$k" != "$r" ]]; do
echo "$k"; r="$k"
k="${k%?${k##*[0-9][.+-]}}"
done
}