Skip to content

Instantly share code, notes, and snippets.

View msiemens's full-sized avatar

Markus Siemens msiemens

View GitHub Profile
@msiemens
msiemens / detectFlash.js
Created August 8, 2012 16:26
Single Line Flash Detection in Javascript
var hasFlash = navigator.mimeTypes&&navigator.mimeTypes.length?Array.prototype.slice.call(navigator.mimeTypes).some(function(a){return"application/x-shockwave-flash"==a.type}):/MSIE/.test(navigator.userAgent)?eval("try{new ActiveXObject('ShockwaveFlash.ShockwaveFlash')&&!0}catch(e){!1};"):!1;
/^Author:/ {
author = $2
commits[author] += 1
commits["tot"] += 1
}
/^[0-9]/ {
more[author] += $1
less[author] += $2
file[author] += 1
@msiemens
msiemens / style.css
Last active December 12, 2015 12:09
body{
color:#444;
font-family:Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman',
"Hiragino Sans GB", "STXihei", "微软雅黑", serif;
font-size:12px;
line-height:1.5em;
background:#fefefe;
width: 45em;
margin: 10px auto;
padding: 1em;
@msiemens
msiemens / gist:5143963
Created March 12, 2013 15:40
A simple Python file caching decorator, caching the function's response till the given file has been changed.
import os
import inspect
from functools import wraps
_file_cache = {}
def cache_file(path):
def cache_is_fresh(name):
@msiemens
msiemens / gist:5362936
Last active December 16, 2015 02:29
Nosetests Assertion Methods
assertion_methods = [
'assert_almost_equal(s)'
'assert_dict_contains_subset',
'assert_dict_equal',
'assert_equal(s)',
'assert_false',
'assert_greater',
'assert_greater_equal',
'assert_in',
'assert_is',
@msiemens
msiemens / gist:5363828
Last active December 16, 2015 02:39
Python Sphinx Inline Docs
def func(arg1, arg2):
"""
Summary.
Long explanation...
:param arg1: Descr for arg1
:type arg1: arg1 type
:param arg2: Descr for arg2
@msiemens
msiemens / pre-commit.sh
Last active February 26, 2017 02:33
My git pre-commit hook
#!/bin/bash
# Git pre-commit hook
#####################
#
# - check for whitespace problems (trailing spaces, ...)
# - check for lines with 'FIXME'
# - running tests
# - running code style check (pep8) on modified files
# - designed for Windows, for Linux replace `> NUL` with `> /dev/null`
MOV [5] 0
JEQ 90 [5] 100
APRINT 46
MOV [8] 0
RANDOM [6]
MOV [2] [6]
MOV [3] 2
MOV [1] 25
JMP 125
MOV [6] [0]
@msiemens
msiemens / setup.py
Created September 5, 2013 09:50
setup.py: Load requires from requirements.txt
try:
from pip.req import parse_requirements
except ImportError:
def requirements(f):
reqs = open(f, 'r').read().splitlines()
reqs = [r for r in reqs if not r.strip().startswith('#')]
return reqs
else:
def requirements(f):
install_reqs = parse_requirements(f)
@msiemens
msiemens / gist:6672efc032769758423b
Last active August 29, 2015 14:01
SymPy Fourier Series
def fourier_series(f, frange, t, t_0):
k = symbols('k', integer=True, positive=True, zero=False)
a_k = 2/t_0*(integrate(f * cos(2*pi/t_0*k*t), [t, frange[0], frange[1]]))
a_k = [a_k.subs(k, i) for i in range(1, 10)]
b_k = 2/t_0*(integrate(f * sin(2*pi/t_0*k*t), [t, -t_0/2, t_0/2]))
b_k = [b_k.subs(k, i) for i in range(1, 10)]
# Amplitude