Skip to content

Instantly share code, notes, and snippets.

Shipping up to Boston

Christoph Gerneth c7h

View GitHub Profile
c7h /
Created Sep 6, 2018
Read an I2C Portexpander
printf "76543210 76543210\n"
while :
v=$(i2cget -y 0 $ADDRESS 0x00 w)
echo ${v: -4:4} | xxd -r -p | xxd -b | awk '{split($0,a," "); printf "%s %s\r", a[2], a[3]}'
View rotarydial.ino
/* Rotary Dial encoder
encode the rotary dial of an old analog phone.
by Christoph Gerneth
const int active_pin = 2;
const int pulse_pin = 3;
int number_counter = 0;
int last_pulse_state = 0; // last state of the rotary dial pulser
int last_active_state = 0;
c7h / gist:cbba43f1c3d58250f9c9fc7bd39ebba7
Created Jul 17, 2017
major and annoying differences between module versions of Pythons JSON Library
View gist:cbba43f1c3d58250f9c9fc7bd39ebba7
Two versions of the same library behave completely different :-/
the PI
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> try:

Keybase proof

I hereby claim:

  • I am c7h on github.
  • I am c7h ( on keybase.
  • I have a public key ASCdetH8IgkxSS8N_CBwRxZhqthPiFpK-iGS4vlIn1vtUQo

To claim this, I am signing this object:

c7h / gist:8670768
Last active Jan 4, 2016
Hashmap Example - Understanding Hashmap - linear probing
View gist:8670768
#!/usr/bin/env python
#Hashmap example
#Author: Christoph Gerneth
#usage: python map-size x y STR_1 [STR_2 STR_3 .. STR_N]
#x and y are K_x K_y (Glaviner Standard values for Hashfunction
#example python 13 1 3 Petrus Andreas Jakobus Johannes Phillippus Bartholomaus Thomas Matthaus Jakobus Thaddaus Simon Judas
import sys
chars_start = int(sys.argv[2])
chars_end = int(sys.argv[3])
c7h / gist:6421212
Created Sep 3, 2013
read methods from module, starting with a given string and return a list
View gist:6421212
def read_funcs_from_module(self, functionname_prefix, module):
"""read methods from module, starting with a given string and return a list"""
moduleValues = module.__dict__.values()
functions_in_module = filter(lambda obj: hasattr(obj, '__call__'), moduleValues)
matching_functions = filter(lambda k: k.__name__.startswith(functionname_prefix), functions_in_module)
return matching_functions
c7h / gist:5943777
Last active Dec 19, 2015
different usage of SQL's stored functions and stored procedures
View gist:5943777
-- schema for exchange:
CREATE TABLE exchange(cur VARCHAR(3), rate DECIMAL(12,3));
INSERT INTO exchange VALUES ("eur", 1.00), ("usd", 1.28), ("czk", 25.98);
-- stored procedure
CREATE PROCEDURE exrate(IN cur_in DECIMAL(12,3), IN currency VARCHAR(3), OUT cur_out DECIMAL(12,3))
SET course = (SELECT rate FROM exchange WHERE cur = currency);
c7h / gist:5526802
Last active Dec 17, 2015
authenticates user at HI-PLAN
View gist:5526802
import requests
def authenticate(username, password, fh="fhin"):
'authenticates' user at hiplan-app
@return: session id
@raise LoginFailedException: if login fails
url = ""
values = {
c7h / gist:5521563
Created May 5, 2013 image download script (via firefox bookmarks)
View gist:5521563
#! /usr/bin/env python
Created on 05.05.2013
@author: christoph gerneth
ugly, short hack!
read in firefox bookmarks and
download images from
View gist:5396518
import sys
import csv
def convert(filename):
reader = csv.reader(open(filename, 'rb'))
for row in reader:
You can’t perform that action at this time.