Skip to content

Instantly share code, notes, and snippets.

View dmdavis's full-sized avatar

Dale Davis dmdavis

  • San Jose, CA
View GitHub Profile
@dmdavis
dmdavis / utc_to_local.py
Created March 20, 2014 18:31
Example of converting UTC to local time using python-dateutil
#!/usr/bin/env python
# encoding: utf-8
"""
utc_to_local.py
Example of converting UTC to local time using python-dateutil.
https://pypi.python.org/pypi/python-dateutil
"""
from datetime import datetime
@dmdavis
dmdavis / human_readable_time_delta.py
Created June 25, 2013 20:27
Human-readable time delta.
from collections import namedtuple
human_delta = namedtuple('human_delta',
['days', 'hours', 'minutes', 'seconds'])
human_delta.__str__ = lambda self: \
'%d days, %d hours, %d minutes, %d seconds' % \
(self.days, self.hours, self.minutes, self.seconds)
def convert_timedelta(duration):
days, seconds = duration.days, duration.seconds
@dmdavis
dmdavis / dice_probabilities.csv
Created April 3, 2013 19:32
Output of swdiceprob.py as a CSV file.
Exploding Die
Target d4 d6 d8 d10 d12
1 1 1 1 1 1
2 0.75 0.833333333 0.875 0.9 0.916666667
3 0.5 0.666666667 0.75 0.8 0.833333333
4 0.25 0.5 0.625 0.7 0.75
5 0.25 0.333333333 0.5 0.6 0.666666667
6 0.1875 0.166666667 0.375 0.5 0.583333333
7 0.125 0.166666667 0.25 0.4 0.5
8 0.0625 0.138888889 0.125 0.3 0.416666667
@dmdavis
dmdavis / swdiceprob.py
Created April 3, 2013 19:29
Functions for calculating Savage Worlds dice probabilities.
#!/usr/bin/env python
# encoding: utf-8
"""
swdiceprob.py
Functions for calculating Savage Worlds dice probabilities.
Copyright (c) 2012-2013 Dale Davis. All rights reserved.
Redistribution and use in source and binary forms, with or without
@dmdavis
dmdavis / utf-8_gzip.py
Created August 22, 2012 15:18
Python: Compress a UTF-8 file using GZIP compression
def compress_utf8_file(fullpath, delete_original = True):
"""Compress a UTF-8 encoded file using GZIP compression named *.gz. If `delete_original` is `True` [default: True],
the original file specified by `delete_original` is removed after compression."""
with codecs.open(fullpath, 'r', 'utf-8') as fin:
with gzip.open(fullpath + '.gz', 'wb') as fout:
for line in fin:
fout.write(unicode(line).encode('utf-8'))
if delete_original:
os.remove(fullpath)
@dmdavis
dmdavis / peg_dice.js
Created June 4, 2012 21:35
Simple PEG.js dice roller
start
= additive
additive
= left:dice "+" right:additive { return left + right; }
/ left:dice "-" right:additive { return left - right; }
/ dice
dice
= left:primary "d" right:primary { var s = 0; for(var i = 0; i < left; i++ ) { s += Math.floor(Math.random() * right) + 1; } return s; }
@dmdavis
dmdavis / mysql_time_format.php
Created May 29, 2012 20:39
DateInterval to MySQL TIME format string
$dateInterval->format('%H:%I:%S');
@dmdavis
dmdavis / remove_on_update.sql
Created May 25, 2012 19:52
Remove ON UPDATE from MySQL Timestamp column
-- From http://www.fakebeing.com/projects/remove-on-update-from-mysql-timestamp-column/
ALTER TABLE mytable CHANGE columnName columnName TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
@dmdavis
dmdavis / auto_timestamp.sql
Created May 10, 2012 14:58
Automatic MySql Timestamps
-- Limited to one default TIMESTAMP column per table
-- See http://stackoverflow.com/questions/4489548/why-there-can-be-only-one-timestamp-column-with-current-timestamp-in-default-cla
CREATE TABLE my_table (
-- some columns
updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
@dmdavis
dmdavis / gist:2636204
Created May 8, 2012 15:19
Homebrew PyQt 4.9.1 make failure (Qt 4.8.1)
$ brew instal -vd pyqt
==> Downloading http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-mac-gpl-4.9.1.tar.gz
Already downloaded: /Users/dale/Library/Caches/Homebrew/pyqt-4.9.1.tar.gz
/usr/bin/tar xf /Users/dale/Library/Caches/Homebrew/pyqt-4.9.1.tar.gz
==> python ./configure.py --confirm-license --bindir=/usr/local/Cellar/pyqt/4.9.1/bin --destdir=/usr/local/Cellar/pyqt/4.9.1/lib/python2.7/site-packages --sipdir=/usr/local/Cellar/pyqt/4.9.1/share/sip
python ./configure.py --confirm-license --bindir=/usr/local/Cellar/pyqt/4.9.1/bin --destdir=/usr/local/Cellar/pyqt/4.9.1/lib/python2.7/site-packages --sipdir=/usr/local/Cellar/pyqt/4.9.1/share/sip
Determining the layout of your Qt installation...
This is the GPL version of PyQt 4.9.1 (licensed under the GNU General Public
License) for Python 2.7.3 on darwin.
Found the license file pyqt-gpl.sip.