Skip to content

Instantly share code, notes, and snippets.

@svenk
svenk / Gendernsternchen und Markdown in Python3
Last active November 12, 2019 10:24
Gendernsternchen und Markdown
Das Gendersternchen funktioniert nicht gut zusammen mit Markdown. Folgender
Regexp liefert ein Preprocessing, was es ermöglicht, ohne einen anderen
Markdown-Dialekt zu wählen (Regulärer Ausdruck in Python):
> for x in ["Gender*nnen","foo *bar* baz", "foo *bar*baz", "Und *das* ist wirklich Mensch*nnen *und* toll."]:
> print(re.sub(r"(^|\s)(\w+)\*([^.\s]*\w+)($|\s)", r"\1\2\*\3\4", x))
Gender\*nnen
foo *bar* baz
foo *bar*baz
(* Allow for nicer print output *)
SetOptions[SelectedNotebook[],
PrintingStyleEnvironment -> "Printout", ShowSyntaxStyles -> True]
@svenk
svenk / scripd-scraping.py
Created January 29, 2020 11:49
Scribd JPG scraping
#!/usr/bin/env python3
# Scraping non-downloadable books/documents
# by downloading them as JPG files
# Public Domain.
import requests, json, sys
# Attention, token changes regularly... You should copy all ~10 minutes from Firebug
@svenk
svenk / index.php
Created February 10, 2020 09:56
Share secrets public over the web
<?php
// Enforce HTTPS
if($_SERVER["HTTPS"] != "on") { header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); exit(); }
?>
<!doctype html>
<html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<body style="padding:5%; font-family: sans-serif">
<h1>Some secret</h1>
@svenk
svenk / spin-the-bottle.php
Last active December 31, 2020 15:40
"Spin the bottle" with Zoom using the Zoom Webhook API
<html>
<meta charset="utf-8">
<title>Genie in a Bottle</title>
<meta author="SvenK">
<meta date="31.12.2020">
<?php
# First of all, this is supposed only to work for a specific
# room. Fix the room id here:
@svenk
svenk / pomodoro-report.py
Created January 13, 2021 20:33
Simple logging
#!/usr/bin/env python
import os, re, sys
from os import path
from pathlib import Path
from datetime import datetime, timedelta
from prompt_toolkit import prompt # bundled with iPython
from prompt_toolkit.completion import WordCompleter
@svenk
svenk / generate_blankpdf.sh
Last active March 25, 2021 20:48
Insert blank (white) pages between each page in a PDF file from shell
#!/bin/bash
base64 -d <<BASE | gunzip > blank.pdf
H4sICAEz+lIAA2JsYW5rLnBkZgCNVE1P20AQpa16WXEk970goCXsh712XCGkxB8RIgiU5ECbcjDO
AqHBRs66Cr32RvsTKvXSX1CpVZF6Kn+g6qWnnntHcO9snJCUILWW7PW+ed55b2bk+W0vKLIVE81f
fLj4evH54j3imOJk7witrpKajA/UITYAqZOg01UyJUE3VNKTUdKWa2uop1IZHqP+O+O70Vz8/ahJ
t+nMx1px8/rt3HJt9np57qx+/u3T3OWX+wVUuNr99Xqz8ONN4co9q809vyzcP58JH87+RDJuD0+C
N50cGUMVlnEDmWNhzdMTSXa29o5kpBBpZHtKA0GSHiNSqST9Fi462OQUW9TU6wrDu4hU0yQ7ga8b
pJmGce8kTGUcnRK3QTz5shPJerVCNrBKM+1sZL6E7nCOJq0/mIHr3h0exFiwW8Z0RSCMMYnCwSuc
MOLZN7xJtDT+OkhihTWrjkaudRFS8KZBrdbvq2pDgUAI+NWGwGIU2U6TqCFVi0CrSVP2FVk/Dg+k
@svenk
svenk / extract.c
Created February 6, 2017 20:55
Convert a GIMP exported Header file back to a PNM Image which can be viewed with any program
#include "The-GIMP-exported-file.h"
#include <stdio.h>
/* This code converts a GIMP C export back to a readable PNM Image. Such
header file looks like
static const struct {
unsigned int width;
unsigned int height;
unsigned int bytes_per_pixel; // 2:RGB16, 3:RGB, 4:RGBA
@svenk
svenk / mbox-to-csv.py
Last active September 2, 2021 04:08
Email inboxes (mbox) to CSV
#!/usr/bin/env python3
# A python3 script to read an mbox file (extension to Maildir is trivial thanks to
# mailbox module) and writes out certain headers as CSV file.
# On large mbox files (say 5GB) it is slow because... it's Python.
# The script deals with some cornercases (encoding, newlines, ...) which I found in
# 100K emails. Otherwise, the builtin python mail libraries provide robustness.
#
# It processes roughly 110K (5GB mbox) mails in 2:35mins on my laptop and produces
# a 19MB CSV file.
@svenk
svenk / Wie groß ist SIETE (Hemmes Mathematisches Rätsel).ipynb
Created May 12, 2022 12:16
Wie groß ist SIETE (Hemmes Mathematisches Rätsel)
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.