Skip to content

Instantly share code, notes, and snippets.

View ctheune's full-sized avatar

Christian Theune ctheune

View GitHub Profile
@ctheune
ctheune / component.py
Created May 21, 2021 07:03
batou example for managing system stuff with a traditional package manager
from batou.component import Component
from batou.lib.archive import Extract
from batou.lib.download import Download
from batou.lib.file import File
from batou.utils import Address
import os.path
import socket
import xmlrpc.client
@ctheune
ctheune / Pflegeanleitung.md
Last active April 11, 2020 22:22
Hefe pflegen

Frische Hefe selbst pflegen

  • 7g Hefe (getrocknet, frisch, oder schon selbst gepflegt)
  • 15g Zucker (oder Honig)
  • 100g Mehl
  • 100g lauwarmes Wasser

Alles gut mischen (z.B. 1 Minute in der Kitchen-Aid mit dem Mischer auf niedrigster Stufe) und dann 12-24 Stunden bedeckt stehen lassen. Dann abfüllen und in den Kühlschrank. Mit der Dauer experimentiere ich aktuell noch um die Triebstärke an die gewohnte Frischhefe anzugleichen.

import uuid
import execnet
import remote
import time
import asyncio
loop = None
@ctheune
ctheune / label.py
Last active October 15, 2022 15:46
Parse Snipe IT label HTML and create nice PDF for Zebra ZD420
from reportlab.graphics.barcode import code39, code128, code93
from reportlab.graphics.barcode import eanbc, qr, usps
from reportlab.graphics.shapes import Drawing
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import mm
from reportlab.pdfgen import canvas
from reportlab.graphics import renderPDF
from reportlab.lib.units import inch
from reportlab.platypus import Paragraph, Frame
from reportlab.lib.styles import getSampleStyleSheet
Hallo,
ich bin mit dem Service rund um eine Störung sowie Details meines Vertrags
absolut unzufrieden. Nach der Art wie mein Fall bisher behandelt wurde fühle ich
mich sogar arglistig betrogen. Im Rahmen der normalen Service-Abläufe wurde mir
bisher nur "friss oder stirb" kommuniziert.
Zur Störung:
Am Samstag, d. 10. Juni fiel im Laufe der Nacht die Internetanbindung aus. Das
@ctheune
ctheune / gist:e1ed0c52b8abc3efb812
Created March 14, 2016 19:12
Ewiger Speiseplan Q2/2016
Di/Do sind Vegetarisch
Fr gibt's Fisch
Samstag ist "Cheat Day"
Sonntag kommt der aufwändige Kram dran
1 Wirsing-Rouladen
2 Kartoffelsuppe
3 Pilzgeschnetzeltes mit Kürbisstampf
4 Risotto
5 Fischragout mit Couscous
{ config, lib, pkgs, ... }:
let
fcio = config.fcio;
optionalAttr = set: name: default:
if builtins.hasAttr name set then set.${name} else default;
enc_roles = optionalAttr fcio.enc "classes" [];
@ctheune
ctheune / timetravel.py
Created February 3, 2015 13:29
Timetravel in unit tests
def test_something(now):
# now is a mock returned by a custom pytest fixture
with TimeTravel(now, datetime(2010, 1, 1)):
do_something_in_the_past()
do_something_at_the_regular_mocked_time()
class TimeTravel(object):
@ctheune
ctheune / keybase.md
Last active August 29, 2015 14:14
keybase.md

Keybase proof

I hereby claim:

  • I am ctheune on github.
  • I am theuni (https://keybase.io/theuni) on keybase.
  • I have a public key whose fingerprint is E02B F441 9BDA 49E4 C981 3A71 ABA1 F252 A97C 62CE

To claim this, I am signing this object:

@ctheune
ctheune / gist:6883842
Last active December 24, 2015 23:58
Debugging kernel issues with perf. Specifically used some of those for debugging our KVM networking issue. Extracted from instructions here: http://comments.gmane.org/gmane.comp.emulators.kvm.devel/113211
This is using perf 3.4 which seems to be a little old and missing some options.
Establish probes and start recording:
$ perf probe start_xmit
$ perf probe virtqueue_kick
$ perf record -a -e net:net_dev_xmit -e net:net_dev_queue -e probe:start_xmit -e probe:virtqueue_kick -R&
[...attempt to transmit packets inside guest...]