Skip to content

Instantly share code, notes, and snippets.

@reox
reox / downloader.sh
Last active February 11, 2017 23:28
Download Alpha Centauri Episodes
# first get all xml files with the download link
for url in $(curl http://www.br.de/fernsehen/ard-alpha/sendungen/alpha-centauri/alle-videos/index.html | egrep -o 'href="(.*[^"])" .* title="zur Übersicht' | awk -F "\"" '{ print $2 }'); do
for videourl in $(curl http://www.br.de/$url | egrep -o 'href="(.*[^"])" .* title="zum Video' | awk -F "\"" '{ print $2 }'); do
xmlfile=$(curl http://www.br.de/$videourl | egrep -o "dataUrl:'(.*[^'])'" | awk -F "'" '{ print $2 }')
wget http://www.br.de/$xmlfile
done
done
# second get the actual file
for file in *.xml; do
@reox
reox / git-pull.sh
Created November 25, 2015 15:37
Cozy way to wait for a fellow to push the changes... just play jeopardy music until git pull succed!
#!/bin/sh
# Get jeopardy.mp4 from:
# clive https://www.youtube.com/watch?v=0Wi8Fv0AJA4
# ffmpeg -i <file> -vn -acodec copy "jeopardy.mp"
mpv -loop $(dirname $0)/jeopardy.mp4 >/dev/null 2>&1 &
PID=$!
while [ "$(git pull)" = "Already up-to-date." ]; do
echo -n "."
@reox
reox / multiprocessing_stub.py
Created February 9, 2016 13:05
A Stub for multiprocessing, also handles Ctrl+C correctly and kills childs
import sys
from argparse import ArgumentParser
from multiprocessing import Queue, Array
import multiprocessing
import signal
import os
import time
# this signal handler terminates the child-process on SIGINT or SIGTERM event
@reox
reox / sehnenlänge.R
Created March 4, 2016 09:13
Kreissegment Verhalten von Sehnenlänge und Segmenthöhe
radius <- function(h, s){
# Abbruchbedingung
h <- ifelse(h > s/2, NaN, h)
n <- ((4 * h^2) + s^2) / (8 * h)
return( n )
}
library(ggplot2)
@reox
reox / latestversion.py
Last active March 28, 2016 12:01
Get the latest version of folders named like v23.42.1337
versions = filter(lambda x: re.match(r"^v[0-9]+\.[0-9]+\.[0-9]+$", x), os.listdir(path))
# The short form for:
# Take the version code like 1.2.197 and create a number out of it: 100020197 (every code part has 4 digits)
# Then sort it numerically and take the last one, which should be the largest number
last_version = sorted(versions, key=lambda x: sum(map(lambda x: 10 ** ((2-x[0]) * 4) * x[1], enumerate(map(int, x[1:].split("."))))))[-1]
@reox
reox / make_backup.sh
Created March 28, 2016 11:58
Bup Backup using a remote BUP_DIR
#!/bin/bash
# creake a backup of several folders using bup
# Using $TARGET as $BUP_DIR
TARGET=/mnt/backup
FOLDERS="/etc /root /home /srv /var"
LOGFILE="$TARGET/logs/$(date +%Y%m%d_%H%M%S).log"
(
flock -n 200
@reox
reox / setdatetime.sh
Created August 8, 2016 16:45
Set the Time on a Canon Camera with gphoto2
# This is very simple but I always forget it...
gphoto2 --set-config datetime=$(date +%s)
@reox
reox / new_debian_kvm.sh
Last active March 31, 2018 20:17
Create a new Debian container for KVM and import it using virt-install
#!/bin/bash
set -e
# Name of the VM
IMAGE=some-fancy-name
# IP address for VM
IP="192.168.122.30"
MIRROR=http://mirror.hetzner.de/debian/packages
PACKAGES="openssh-server htop vim"
@reox
reox / virt-import-win7-from-virtualbox.sh
Created March 10, 2017 13:12
Import a Windows 7 VM from Virtualbox
# Unfortunately virtio seems to not work with win8 (it seems to work with windows 10)
virt-install --import --memory 4096 --vcpus 1 --name win8 --os-variant win8 --disk ~/VirtualBox\ VMs/Windows/Windows-disk1.vmdk,format=vmdk
@reox
reox / bend_tube.scad
Last active June 2, 2021 18:52
Create a bend tube in OpenSCAD. Work ONLY with openscad >=2016, as the angle parameter in rotate_extrude was introduced there.
// fine mesh
fn = 1000;
// epsilon for clean intersection
eps = 0.1;
module tube(inner=5, outer=10, angle=45, length=250){
// we want the thing in z direction, thus we rotate on x axis