Skip to content

Instantly share code, notes, and snippets.

Avatar

dan mackinlay danmackinlay

View GitHub Profile
View peakdetect.py
import numpy as np
from math import pi, log
import pylab
from scipy import fft, ifft
from scipy.optimize import curve_fit
i = 10000
x = np.linspace(0, 3.5 * pi, i)
y = (0.3*np.sin(x) + np.sin(1.3 * x) + 0.9 * np.sin(4.2 * x) + 0.06 *
np.random.randn(i))
View mysql2sqlite.sh
#!/bin/sh
# Converts a mysqldump file into a Sqlite 3 compatible file. It also extracts the MySQL `KEY xxxxx` from the
# CREATE block and create them in separate commands _after_ all the INSERTs.
# Awk is choosen because it's fast and portable. You can use gawk, original awk or even the lightning fast mawk.
# The mysqldump file is traversed only once.
# Usage: $ ./mysql2sqlite mysqldump-opts db-name | sqlite3 database.sqlite
# Example: $ ./mysql2sqlite --no-data -u root -pMySecretPassWord myDbase | sqlite3 database.sqlite
@danmackinlay
danmackinlay / long_exposure.py
Last active August 29, 2015 14:12
Dirty hack to fake long exposure from a quicktime movie
View long_exposure.py
import os
import tempfile
import subprocess
import skimage
from skimage import exposure
import skimage.io as io
import argparse
import shutil
import numpy as np
@danmackinlay
danmackinlay / serialization.R
Created February 1, 2015 01:12
pas ssparse matrices between R and Python
View serialization.R
library(rhdf5)
load.sparse.hdf = function (filename, path) {
idx = as.vector(h5read(filename, paste(path, "v_indices", sep="/")))
idxptr = as.vector(h5read(filename, paste(path, "v_indptr", sep="/")))
vals = as.vector(h5read(filename, paste(path, "v_data", sep="/")))
dims = as.vector(h5read(filename, paste(path, "v_datadims", sep="/")))
col.names = h5read(filename, paste(path, "v_col_names", sep="/"))
data = sparseMatrix(
@danmackinlay
danmackinlay / prowl_monitor.py
Created August 26, 2009 04:05
load-monitoring script that pushes notifications to prowl when something goes wrong
View prowl_monitor.py
#!/usr/bin/env python
"""
load-monitoring script that pushes notifications to growl when something goes wrong
requires jacobb's prowlpy http://github.com/jacobb/prowlpy/tree/master - and a prowl
account (http://prowl.weks.net/)
this version, with a "panic" function, is untested.
"""
@danmackinlay
danmackinlay / lock.py
Created August 27, 2009 02:04
django- or FS-based contextmanager-friendly locks for python
View lock.py
"""
various ways of acquiring cross-process locks on a string including a django one
http://www.evanfosmark.com/2009/01/cross-platform-file-locking-support-in-python/
needs test coverage, but won't get it here since I've just removed it from the project.
`with` statement requires python 2.5 or later; these may work as non-with statement doohickeys
django locks require version 1.0 or later to get the "force_insert" argument
"""
@danmackinlay
danmackinlay / mysql_logger.lua
Created August 27, 2009 09:17
quick little script for mysql_proxy's lua interpreter to show you when queies start and end so you can see if some are timing out. helps if you don't have control of the server
View mysql_logger.lua
local log_file = 'mysql.log'
local fh = io.open(log_file, "a+")
function read_query( packet )
if string.byte(packet) == proxy.COM_QUERY then
local query = string.sub(packet, 2)
local q = query
local cutoff = 160
if cutoff < #query then
q = query:sub(1, cutoff) .. "..."
@danmackinlay
danmackinlay / supervisord.ini
Created August 27, 2009 07:10
a supervisord minimal config for running e.g. a persistent process queue.
View supervisord.ini
[program:queuewalker]
command = /project_path/manage.py process_queue
redirect_stderr = true
user=www-data
umask=002
[supervisord]
logfile = /var/log/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
@danmackinlay
danmackinlay / friendfeed_private_syndicator.py
Created September 3, 2009 05:37
syndicates private friend-feed groups with read-only public feeds
View friendfeed_private_syndicator.py
# −*− coding: UTF−8 −*−
"""
quick/dirty private feed exposer
http://friendfeed.com/api/documentation
http://www.dalkescientific.com/Python/PyRSS2Gen.html
http://code.google.com/p/httplib2/
http://labix.org/python-dateutil
"""
import settings
from settings import FF_BASE_URL, FF_API_BASE_URL, FF_REMOTE_KEY, FF_FEED, FF_NICKNAME, FF_CONSUMER_SECRET, OUTPUT_CACHE_DIR, INPUT_CACHE_DIR
View index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>NetCultures blog test</title>
<style type="text/css" media="screen">
#header h1 {
color: pink;
}
#header {