Skip to content

Instantly share code, notes, and snippets.

View mshroyer's full-sized avatar

Mark Shroyer mshroyer

View GitHub Profile
#include "ti86asm.inc"
; ===========================
; Emblem 86 version 1.1 gamma
; ===========================
; Mark's new label
; This is an 86 assembly program that allows users to draw a custom emblem for
; their calculators (on-calc) and install it in a user-interrupt routine so that
; it will be constantly present in the upper-right corners of their screens.
@mshroyer
mshroyer / keybase.md
Created May 26, 2017 06:13
Keybase verification

Keybase proof

I hereby claim:

  • I am mshroyer on github.
  • I am mshroyer (https://keybase.io/mshroyer) on keybase.
  • I have a public key ASBE2vOmDs6o0yxIi8V0LhJEAoCtkDuXe3QqM8VJPib5hQo

To claim this, I am signing this object:

@mshroyer
mshroyer / icalendar_todos.py
Created December 28, 2016 16:46
Extract plaintext TODOs from Remember the Milk (RTM) iCalendar export
#!/usr/bin/env python3
import argparse
import functools
import icalendar
import operator
import re
TAGS_PATTERN = re.compile(r'Tags: ([\w\d]+(?:, [\w\d]+)*)')
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);
}