Skip to content

Instantly share code, notes, and snippets.

View earonesty's full-sized avatar
🎹
Piano

earonesty

🎹
Piano
View GitHub Profile
# very simple RPC server in python
import sys, json
from http.server import BaseHTTPRequestHandler, HTTPServer
import urllib.parse as urlparse
import threading
import logging
log = logging.getLogger(__name__)
class ApiError(Exception):
@earonesty
earonesty / varlib.py
Last active December 18, 2017 19:26
import inspect, os, ctypes
class dicttemp:
def __init__(self, obj, changes):
self.obj = obj
self.save = {}
for var, val in changes.items():
if var in obj:
self.save[var] = obj[var]
else:
@earonesty
earonesty / pyt.py
Last active February 12, 2018 13:45
python template expander ... based on format strings
#!/bin/env python3.6
import os, sys, json
from argparse import ArgumentParser
def main():
parser = ArgumentParser(description='Python template expander. \
Make a template with a format string syntax and environment vars, arguments and config file vars are expanded.')
export PROMPT_COMMAND='if [ "$(id -u)" -ne 0 ]; then echo "$(date "+%Y-%m-%d.%H:%M:%S") $(pwd) $(history 1)" >> ~/.bash.log; fi'
function hh() {
grep "$1" ~/.bash.log
}
@earonesty
earonesty / hex_decompose.py
Last active January 29, 2019 20:25
decompose integer into hex flags
# or visit: https://earonesty.github.io/decompose_hex.html
def hex_decompose(flag):
b = bin(flag)[2:]
for i in range(len(b)):
if int(b[i]):
x = len(b) - i - 1
y = '1' + ('0' * x)
print(hex(int(y,2)))
#pragma once
#include <codecvt>
#include <condition_variable>
#include <fstream>
#include <iostream>
#include <locale>
#include <memory>
#include <mutex>
#include <ostream>
@earonesty
earonesty / README.md
Last active June 22, 2021 18:39
Convert a djinni input file to a node cpp bindings file. Load the resulting lib directly in node.

USAGE:

python3 node_bindings.py djinni.yml <namespace> node/node.cpp
yarn
mkdir -p build-node
cd build-node; \
    cmake .. -DCMAKE_BUILD_TYPE=Release -DNODE=yes; \
    cmake --build . -j

node node/test.js

@earonesty
earonesty / deadlyexes.py
Created May 7, 2019 22:40
Monitor class for healthz maintenance
import time
import logging
import threading
log = logging.getLogger(__name__)
class MonitorInstance:
def __init__(self, parent, label, func, threshold, active, metric):
self.parent = parent
self.label = label
self.func = func
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.ciphers import ( Cipher, algorithms, modes )
import os
nonce = os.urandom(16)
key = os.urandom(32)
mode = modes.GCM(nonce, None)
@earonesty
earonesty / muxer.py
Last active August 6, 2019 14:07
Python Generator Multiplexter
import queue
from threading import Lock
from collections import namedtuple
class Muxer():
Entry = namedtuple('Entry', 'genref listeners, lock')
already = {}
top_lock = Lock()