Skip to content

Instantly share code, notes, and snippets.

View cemeyer's full-sized avatar

Conrad Meyer cemeyer

  • Seattle, Washington
View GitHub Profile
@cemeyer
cemeyer / man2html.pl
Created October 17, 2015 23:16
Convert the raw output of man(1) to HTML-ish
#!/usr/bin/env perl
# Extracted from 2-clause BSDL https://www.freebsd.org/cgi/man.cgi/source
#
# Usage example:
# $ man 3 tree | path/to/man2html.pl > tree.3.html
# encode unknown text data for using as HTML,
# treats ^H as overstrike ala nroff.
sub encode_data {
@cemeyer
cemeyer / gist:74e4493d639fc60608fa
Last active November 13, 2015 00:22
xor_speed hang
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
cemeyer / ⁄etc⁄logrotate.conf
Last active October 22, 2023 12:06
Sane logrotate.conf settings
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
compress
compresscmd /bin/zstd
compressext .zst
compressoptions -18 -T0 --rm
@cemeyer
cemeyer / stream_errorhandling_hack.py
Created December 2, 2018 00:41
[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
cemeyer / setx.py
Created January 13, 2019 00:38
Python2.7 'set -x' alike
# Use like: python setx.py my_python_program [args...]
#
# my_python_program can be a literal path to a file (e.g., foo.py), or the unqualified
# name of a Python program in PATH. In the latter case, setx.py 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
cemeyer / nailgun.py
Created January 18, 2019 02:20
Poor man's nailgun, for when some imports are stupid slow
# Other code goes here
def run():
pass
# ...
def main():
global nailgun
while True:
try: