Skip to content

Instantly share code, notes, and snippets.

View mshroyer's full-sized avatar

Mark Shroyer mshroyer

View GitHub Profile
INGREDIENTS
2 cups buttermilk (Bisquick) baking mix
2/3 cup milk
1/2 cup shredded sharp Cheddar cheese
1/4 cup butter, melted
1/4 tsp garlic powder
DIRECTIONS
@mshroyer
mshroyer / switch.c
Created May 3, 2014 20:07
Example of GCC's -Werror=switch
/*
* gcc -Werror=switch will produce an error for this
*/
#include <stdio.h>
enum language {
ENGLISH,
SPANISH,
GERMAN
@mshroyer
mshroyer / config.json
Last active August 29, 2015 13:59
Bootstrap 3 customization for markshroyer.com
{
"vars": {
"@gray-darker": "lighten(#000, 13.5%)",
"@gray-dark": "lighten(#000, 20%)",
"@gray": "lighten(#000, 33.5%)",
"@gray-light": "lighten(#000, 60%)",
"@gray-lighter": "lighten(#000, 93.5%)",
"@brand-primary": "#070",
"@brand-success": "#5cb85c",
"@brand-info": "#5bc0de",
#!/usr/bin/env python
"""webhook
Implements web hooks for BitBucket, etc. on my Amazon EC2 instance.
"""
__author__ = 'Mark Shroyer'
;; nasm -f elf64 prog.asm && gcc -o prog prog.o
%define under 1000
section .data
output:
db "Result: %lu",10,0
section .text
extern printf
(destructuring-bind (offset in-path out-path) (cdr sb-ext:*posix-argv*)
(with-open-file (in in-path :element-type '(unsigned-byte 8))
(with-open-file (out out-path :direction :output :if-exists :supersede)
(do ((c (make-array 32)) (n 0) (a (parse-integer offset :radix 16) (+ a n)))
((zerop (setq n (read-sequence c in))))
(format out ":~2,'0X~4,'0X00" n a)
(format out "~2,'0X~%" (mod (- (apply #'+ a (ash a -8) n (map 'list (lambda (b) (format out "~2,'0X" b) b) (subseq c 0 n)))) 256)))
(format out ":00000001FF~%"))))
@mshroyer
mshroyer / hexgolf.c
Last active August 29, 2015 13:57
bin2hex golf
int main(int a, char *v[]) {
sscanf(v[1], "%x", &a);
void *fi=fopen(v[2], "r"), *fo=fopen(v[3], "w");
for (unsigned char s=a/256+a, c[32], n; n=fread(c, 1, 32, fi); a+=n, s=a/256+a) {
fprintf(fo, ":%02X%04X00", n, a);
for (int i=0; i<n; s+=c[i++]+1) fprintf(fo, "%02X", c[i]);
fprintf(fo, "%02X\n", (256-s)&255);
}
fputs(":00000001FF\n", fo);
}
@mshroyer
mshroyer / coerce_kiln.py
Last active December 16, 2015 11:29
Python 3.3 script to coerce Kiln Harmony into finishing conversion of a large git repository (e.g. the Linux kernel), simulating multiple presses of the Repair button until the job is done. Requires BeautifulSoup 4, Requests, and pointfree.
#!/usr/bin/env python3
"""Force Kiln Harmony to finish repairing a large repository
I'm currently seeing an issue with Kiln Harmony where an imported Linux
kernel git repository fails partway through translation to Mercurial. It
seems that I can keep clicking the "Repair Repository" button to prod Kiln
into finishing more of the translation, however this is time consuming.
This script automates the process of checking whether the translation of a
@mshroyer
mshroyer / fsck.pl
Created March 28, 2013 22:25
gitolite fsck command
#!/usr/bin/env perl
# gitolite fsck command
#
# Add this to the gitolite commands subdirectory (e.g. on FreeBSD,
# /usr/libexec/gitolite/commands/) and then invoke `gitolite fsck` to run
# integrity checks on your repositories.
#
# Mark Shroyer
# Thu Mar 28 12:16:12 EDT 2013
@mshroyer
mshroyer / snapzfs.sh
Last active December 14, 2015 07:39
Utility script for maintaining rolling snapshots of ZFS datasets on FreeBSD 9.1.
#!/bin/sh
# snapzfs.sh - Maintain rotating ZFS dataset snapshots
#
# Creates, rotates, and prunes rolling snapshots of ZFS datasets. When
# this script is run, the sets defined in the configuration section below
# are snapshot and rotated as necessary depending on the age and number of
# existing snapshots. Written for and tested on FreeBSD 9.1.
#
# Mark Shroyer