Skip to content

Instantly share code, notes, and snippets.

View donkirkby's full-sized avatar
🐍

Don Kirkby donkirkby

🐍
View GitHub Profile

Product Name

Short blurb about what your product does.

[![NPM Version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Downloads Stats][npm-downloads]][npm-url]

One to two paragraph statement about your product and what it does. This template is based on Dan Bader's [blog post].

screenshot

@donkirkby
donkirkby / pinyin_sample.md
Last active September 30, 2016 22:42
Pinyin Cushion Sample

Sample text for Pinyin Cushion.

Demo

你好。我得去。

你好。我得{dei3}去。

Original

此地無銀三百兩

木匠老趙是個老實人,快四十歲了還沒結婚。他能做桌子,椅子,床,櫃子,也常常幫人修理門窗。手藝雖然不是很精細,做出來的東西卻很結實,很牢固。

@donkirkby
donkirkby / subiterate.py
Last active August 29, 2015 14:21
Subprocess output iteration
import subprocess
p = subprocess.Popen(['ping', '-c', '10', 'google.com'], stdout=subprocess.PIPE)
print 'Started.'
use_iterator = False
if use_iterator:
# This is buffered, so waits for several pings.
for line in p.stdout:
print line,
@donkirkby
donkirkby / bike_links.md
Last active August 29, 2015 14:20
Backwards bike video
@donkirkby
donkirkby / tkfields.py
Last active August 29, 2015 14:19
Tkinter example of calculation based on text fields
# Trivial example adapted from a CodeSkulptor example:
# http://www.codeskulptor.org/#user39_dAIPAbXbfU_0.py
from Tkinter import Button, E, Entry, Frame, Label, StringVar, Tk, W
class Application(Frame):
def get_initials(self):
initials = (self.first_name.get()[:1].upper() +
self.last_name.get()[:1].upper())
print "Initials:", initials
@donkirkby
donkirkby / stack_tracker.py
Created April 20, 2015 18:38
Record all different call stacks that arrive at a method
from collections import Counter
import traceback
stack_counts = Counter()
def record(limit=10):
stack = traceback.extract_stack(limit=limit+1)[:-1]
stack_report = '\n'.join(map(str, stack))
stack_counts[stack_report] += 1
@donkirkby
donkirkby / udjango.py
Last active July 5, 2016 17:16
𝜇Django - a minimal, but runnable, Django snippet
# Tested with Django 1.9.2
import sys
import django
from django.apps import apps
from django.apps.config import AppConfig
from django.conf import settings
from django.db import connections, models, DEFAULT_DB_ALIAS
from django.db.models.base import ModelBase
@donkirkby
donkirkby / beowulf_top.sh
Last active January 7, 2016 00:09
Report processes with top CPU across a Beowulf cluster.
{ bpsh -pa ps -eo pcpu,pid,user,args ; bpsh -p -1 ps -eo pcpu,pid,user,args | bpstat -P -1 | sed -e 's/^ */ /' ; } | sort -g -k2 -r | head -30
@donkirkby
donkirkby / polling_mpi.py
Last active August 29, 2015 14:14
Example that shows how to wait for an MPI message without pegging the CPU to 100%.
#!/usr/bin/env python
from mpi4py import MPI
import logging
import time
import sys
def polling_receive(comm, source):
# Set this to 0 for maximum responsiveness, but that will peg CPU to 100%
@donkirkby
donkirkby / aln2fasta.py
Created January 23, 2015 19:49
Convert aligned reads CSV to FASTA format
import argparse
import csv
import itertools
from operator import itemgetter
parser = argparse.ArgumentParser()
parser.add_argument('aligned',
type=argparse.FileType('rU'),
help='aligned reads CSV file')
parser.add_argument('--out',