Skip to content

Instantly share code, notes, and snippets.


Dan Krause dankrause

View GitHub Profile
View keybase_proof.txt
### Keybase proof
I hereby claim:
* I am dankrause on github.
* I am dankrause ( on keybase.
* I have a public key ASBmYrX3pc6j-rDw3Yfm1F_mBjHX0SLjDc1izIvsgICs7wo
To claim this, I am signing this object:
dankrause / postgresql_recursive.sql
Last active Nov 17, 2021
An example of creating a recursive postgresql query to generate data about parent-child relationships within a single table.
View postgresql_recursive.sql
parent INTEGER
INSERT INTO test (id, parent) VALUES
(1, NULL),
(2, 1),
dankrause / smilebasic.lang
Last active Dec 13, 2017
GTKSourceView syntax highlighting for SmileBASIC
View smilebasic.lang
<?xml version="1.0" encoding="UTF-8"?>
<!-- Place this file in /usr/share/gtksourceview-3.0/language-specs/ -->
<language id="smilebasic" _name="SmileBASIC" version="2.0" _section="Sources">
<property name="mimetypes">text/x-smilebasic</property>
<property name="globs">*.sbas</property>
<property name="line-comment-start">'</property>
dankrause /
Created Feb 28, 2015
An exception wrapper that functions as both a context handler and a decorator
class ExceptionHandler(object):
def __init__(self, callback, *classes):
self._classes = classes
self._callback = callback
self._func = None
def __call__(self, func):
self._func = func
return self._wrapper
def _wrapper(self, *args, **kwargs):
with self:
dankrause /
Last active Aug 29, 2015
Walk through one or more folders looking for files with characters in the filename that python can't automatically encode to utf-8
#!/usr/bin/env python
import os
import sys
if len(sys.argv) < 2:
print "Usage: {0} PATH [PATH ...]".format(sys.argv[0])
for folder in sys.argv[1:]:
for root, dirs, files in os.walk(folder):
dankrause /
Last active Jan 19, 2022
Create a custom tinycore linux iso. Adjust the config at the beginning of the script, or supply a conf as the first arg. Requires xorriso.
set -e
function cleanup() {
# clean up our temp folder
rm -rf "${TMPDIR}"
trap cleanup EXIT
dankrause /
Last active Aug 29, 2015
Toy finite state machine implementation in Python
import itertools
class FSMException(Exception):
class DuplicateRule(FSMException):
class InvalidStateTransition(FSMException):
dankrause /
Last active Aug 29, 2015
An example jobboard client for taskflow
#!/usr/bin/env python
Usage: [options] <jobboard_name> create <name> <details> [options] <jobboard_name> list [options] <jobboard_name> delete <uuid> [options] <jobboard_name> clear
dankrause /
Last active Nov 10, 2021
Simple socket IPC in python
# Copyright 2017 Dan Krause
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
dankrause /
Last active Aug 29, 2015
Toy pub/sub implementation in python
from functools import partial
from fnmatch import fnmatchcase
from collections import defaultdict
class Event(dict):
handlers = defaultdict(list)
def subscribe(cls, *args):
if not callable(args[-1]):