Skip to content

Instantly share code, notes, and snippets.

@thewisenerd
thewisenerd / intercept.py
Created May 22, 2023 17:01
com.azure.azure-cosmos request charge logging
# - run with `mitmdump -s intercept.py -q`
# - clear counters with
# curl -sx localhost:8080 http://example.com/clear | jq
# - show counters with
# curl -sx localhost:8080 http://example.com/show | jq
import json
import typing
import mitmproxy.http
import java.util.Base64
private data class ContinuationDebugPart(
val a: Int,
val b: Int,
val key: String
) {
override fun toString(): String {
return "[$a!$b!$key]"
@thewisenerd
thewisenerd / not-alert.py
Last active July 19, 2023 03:40
send slack alert if output file doesn't see any additions for 5 minutes
import glob
import json
import os
import sys
import time
import typing
import urllib.request
period_in_seconds = 60
watch_time_seconds = 300
#include <assert.h>
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#define ONE_MB (1024 * 1024)
#define SLEEP_BUF_DEFAULT 16 // wait 1s every N MB
#define SLEEP_BUF_MIN 0
#define SLEEP_BUF_MAX (1024 * 1024) // surely nobody has 1 TB lying around
import * as openpgp from 'openpgp';
import {Octokit} from "@octokit/rest";
const privateKeyArmored: string = `-----BEGIN PGP PRIVATE KEY BLOCK-----
HAHAHAHA did you really think
-----END PGP PRIVATE KEY BLOCK-----
`;
async function createEmptyCommit(
octokit: Octokit,
@thewisenerd
thewisenerd / Dockerfile
Created January 18, 2024 14:17
docker stretch ca-certificates letsencrypt
# Update stretch repositories
RUN sed -i -e 's/deb.debian.org/archive.debian.org/g' \
-e 's|security.debian.org|archive.debian.org|g' \
-e '/stretch-updates/d' /etc/apt/sources.list
# LetsEncrypt DST Root CA X3 expired on 2021-09-30
# https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
RUN sed -i '/^mozilla\/DST_Root_CA_X3.crt$/ s/^/!/' /etc/ca-certificates.conf
RUN update-ca-certificates
@thewisenerd
thewisenerd / env.ts
Created February 12, 2024 14:20
hello process.env
// src/lib/env.ts
export function env(envKey: string): string | undefined {
if (typeof window === 'undefined') {
console.error("[__NEXT_PUBLIC__] env() is not expected to be invoked on the server. this is a recoverable bug.");
return process.env[envKey];
}
if (!('__NEXT_PUBLIC__' in window)) {
console.error("[__NEXT_PUBLIC__] window.__NEXT_PUBLIC__ is not defined. this is a bug.");
return undefined;
}
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
logging.basicConfig(
handlers=[ch],
level=logging.ERROR,
format='%(levelname)-8s [%(asctime)s.%(msecs)03d] %(name)s: %(message)s',
const defaults = {
'a': 1
};
const foo = (flag = false) => {
let headers: any = defaults;
if (flag) {
headers['b'] = 2;
}
return headers;
@thewisenerd
thewisenerd / adx-hc-export.js
Created March 28, 2024 02:16
export Azure Data Explorer chart output as a PNG
'use strict';
(() => {
let filename = 'adx-' + Date.now() + '.png';
let lightModeBg = 'white';
let darkModeBg = '#1b1a19';
let dl = (url, name) => {
let link = document.createElement('a');