Skip to content

Instantly share code, notes, and snippets.


Conrad Meyer cemeyer

  • Seattle, Washington
View GitHub Profile
cemeyer /
Created Jan 18, 2019
Poor man's nailgun, for when some imports are stupid slow
# Other code goes here
def run():
# ...
def main():
global nailgun
while True:
cemeyer /
Created Jan 13, 2019
Python2.7 'set -x' alike
# Use like: python my_python_program [args...]
# my_python_program can be a literal path to a file (e.g.,, or the unqualified
# name of a Python program in PATH. In the latter case, examines PATH for
# a program with that name.
# Prints every line executed, including the filename and line number.
# This is a hacky prototype for py27; it almost certainly breaks in significant ways on
# non-Unix, or Python3000; and has only been tested on a FreeBSD derivative. It still
cemeyer /
Created Dec 2, 2018
[Unix] Hack: Change the error-handling on a file-like stream in Python3 (e.g., sys.stdout)
import os
import sys
# Re-opens the file-like stream of string 'attr' in parent object 'pobj' with
# the open() builtin parameters 'args' and 'kwargs'. Unix-specific.
# I would love it if there was a better way to do this and I just missed it.
def set_stream_errorh(pobj, attr, *args, **kwargs):
obj = getattr(pobj, attr)
fileno = obj.fileno()
cemeyer / ⁄etc⁄logrotate.conf
Last active Mar 1, 2021
Sane logrotate.conf settings
View ⁄etc⁄logrotate.conf
# create new (empty) log files after rotating old ones
# use date as a suffix of the rotated file
compresscmd /bin/zstd
compressext .zst
compressoptions -18 -T0 --rm
View gist:74e4493d639fc60608fa
Thread 6 (Thread 801e1a800 (LWP 100957)):
#0 do_xor_speed (tmpl=0x9b70c0 <xor_block_8regs>, b1=0x805c68000, b2=0x805c6b000) at crypto/xor.c:84
#1 0x0000000000688a1c in calibrate_xor_blocks () at crypto/xor.c:144
#2 0x0000000000680ac3 in do_one_initcall (fn=0x6889bf <calibrate_xor_blocks>) at init/main.c:794
#3 0x0000000000680c7b in do_initcall_level (level=<optimized out>) at init/main.c:859
#4 do_initcalls () at init/main.c:867
#5 do_basic_setup () at init/main.c:885
#6 kernel_init_freeable () at init/main.c:1010
#7 0x000000000067d799 in kernel_init (unused=0x9b70c0 <xor_block_8regs>) at init/main.c:938
#8 0x0000000000404548 in thread_bootstrap (_tba=0x805c1e138) at arch/lkl/kernel/threads.c:139
cemeyer /
Created Oct 17, 2015
Convert the raw output of man(1) to HTML-ish
#!/usr/bin/env perl
# Extracted from 2-clause BSDL
# Usage example:
# $ man 3 tree | path/to/ > tree.3.html
# encode unknown text data for using as HTML,
# treats ^H as overstrike ala nroff.
sub encode_data {
View gist:64f22e3f7a6b93f1a821
$ ./blah
*** Error in `./blah': free(): invalid next size (fast): 0x0000000001632010 ***
======= Backtrace: =========
cemeyer / mallctl_output.txt
Created Nov 23, 2014
Output from new `mallctl(1)` tool
View mallctl_output.txt
version: 3.6.0-194-gd49cb68b9e8b57169240e16686f4f60d6b5a089f
epoch: 1
thread.arena: 0
thread.allocated: 0
thread.allocatedp: 140346141230912
thread.deallocated: 0
thread.deallocatedp: 140346141230920
thread.tcache.enabled: 1
thread.tcache.flush: <error(1): Operation not permitted> <error(2): No such file or directory>
cemeyer / a.c
Created Jun 12, 2014
basic mmap test
View a.c
#include <sys/mman.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sysexits.h>
View gcj-distribution-fitting.cpp
#pragma warning(disable:4996)
using namespace std;
int w[1001], // instance of vector for creating distribution
C[1001][1001], // histograms per output bucket
O[1001]; // an "output," used only for inputting lines