Skip to content

Instantly share code, notes, and snippets.

View donkirkby's full-sized avatar
🐍

Don Kirkby donkirkby

🐍
View GitHub Profile
@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 / bike_links.md
Last active August 29, 2015 14:20
Backwards bike video
@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 / pinyin_sample.md
Last active September 30, 2016 22:42
Pinyin Cushion Sample

Sample text for Pinyin Cushion.

Demo

你好。我得去。

你好。我得{dei3}去。

Original

此地無銀三百兩

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

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 / log_memory.py
Created July 17, 2017 22:07
Report Python memory usage
import os
from subprocess import check_output, CalledProcessError
from logging import getLogger, basicConfig, INFO
logger = getLogger('main')
def report_progress(message='Progress', progress=0, limit=None):
try:
process_ids = list(map(
from Queue import Empty, Queue
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter, Namespace
from glob import glob
import os
from itertools import count
from threading import Thread
from time import sleep
@donkirkby
donkirkby / bit_plot.py
Created May 30, 2018 18:08
Matplotlib subplots example showing how to avoid overlap between suptitle and tight_layout
from math import ceil
from matplotlib import pyplot as plt
plot_count = 8
column_count = 2
row_count = int(ceil(plot_count/column_count))
fig, subplot_axes = plt.subplots(row_count,
column_count,
squeeze=False,
from pathlib import Path
from matplotlib import pyplot as plt
import pandas as pd
import requests
import seaborn as sn
DATA_PATH = Path('data')
@donkirkby
donkirkby / flags_golf.py
Last active November 29, 2018 19:42
Code golf challenge to produce a maritime signal flag
t=dict(r='<rect x="{}" y="{}" width="{}" height="{}" fill="{}"/>',p='<path d="{}" stroke="{}" stroke-width="{}" stroke-dasharray="{}" fill-rule="{}" fill="{}"/>',c='<circle cx="{}" cy="{}" r="{}" fill="{}"/>')
s=(ord(input()[0])|32)-97
open('a.svg','w').write(f'<svg xmlns="http://www.w3.org/2000/svg" width="60" height="40">{"".join(t[o[0]].format(*(o[1:].split(":")))for o in"r0:0:30:40:#fff;pM 60,0 H 30 V 40 H 60 L 40,20:0:0:0::#003298|pM 60,0 H 0 V 40 H 60 L 40,20:0:0:0::#f00|r0:0:60:40:#039;r0:8:60:24:#fff;r0:16:60:8:#f00|r0:0:60:40:#fbfc01;r0:13.3:60:13.3:#003298|r0:0:60:20:#039;r0:20:60:20:#f00|r0:0:60:40:#fff;pM 30,0 L 0,20 L 30,40 L 60,20:0:0:0::#f00|r0:0:60:40:#ff0;r10:0:10:40:#039;r30:0:10:40:#039;r50:0:10:40:#039|r0:0:30:40:#fff;r30:0:30:40:#f00|r0:0:60:40:#ff0;c30:20:10.7:#000|r0:0:60:40:#039;r0:13.3:60:13.3:#fff|r0:0:30:40:#ff0;r30:0:30:40:#039|pM0,0H60V40H0:0:0:0::#FF0;pM0,20H60V0H30V40H0:0:0:0::#0|r0:0:60:40:#039;pM 0,0 L 60,40 M 0,40 L 60,0:#fff:10:0::#0|r0:0:60:40:#039;pM 0,0 H 60 V 10 H 0 z M