Skip to content

Instantly share code, notes, and snippets.

View sfan5's full-sized avatar

sfan5

  • Germany
  • 07:26 (UTC +02:00)
View GitHub Profile
@sfan5
sfan5 / bfi.rs
Last active August 29, 2015 14:05
Brainfuck Interpreter in Rust
use std::error::Error;
use std::fs::File;
use std::io::Read;
use std::io::Write;
use std::io;
use std::env;
fn write_u8<T: io::Write>(mut obj: &mut T, x: u8) {
let mut a: [u8; 1];
@sfan5
sfan5 / bf2c.py
Created August 31, 2014 15:05
Compiles Brainfuck to C || Warning: This not the best code I have written.
#!/usr/bin/env python2
import sys
def multstr(n,st):
o = ""
for i in range(0,n):
o += st
return o
def unpack_opts(s, t):
@sfan5
sfan5 / share-network.sh
Last active August 29, 2015 14:05
Allows you to easily share your internet connection with a machine connected via LAN (act as a router)
#!/bin/bash -e
if [ $# -ne 2 ]; then
echo "Usage: share-network.sh <internal interface> <external interface>"
exit 1
fi
sudo whoami >/dev/null # Make sudo cache the password
mkdir share-network$$
cd share-network$$
cat >dnsmasq.conf <<HEREDOC
@sfan5
sfan5 / record.sh
Created September 8, 2014 16:18
Records a window
#!/bin/bash -e
CRF=21
ABITRATE=256k
FILENAME=recording`date +%d-%m-%Y_%H.%M`.mp4
CMD=`xwininfo | awk '/Width/{printf"ffmpeg -f x11grab -s "$2"x"}/Height/{printf$2" -i '$DISPLAY'"}/Corners/{gsub(/\+/,",",$2);sub(/,/,"+",$2);print$2" -f alsa -i pulse -c:v libx264 -preset ultrafast -crf 0 -c:a copy"}'`
CMD="${CMD} -vf scale='iw+mod(iw,2):ih+mod(ih,2)' _tmp_record.nut"
# -vf scale='iw+mod(iw,2):ih+mod(ih,2)' makes sure the width and height are diviseable by 2 (needed for libx264)
echo "Press ^C to stop recording"
@sfan5
sfan5 / image2xterm.py
Last active July 13, 2020 18:24
Converts images into color sequences (xterm-256color)
#!/usr/bin/env python3
import sys
import getopt
from PIL import Image
xterm256colors = [ # http://pln.jonas.me/xterm-colors
(0, (0x00, 0x00, 0x00)), # SYSTEM
(1, (0x80, 0x00, 0x00)), # SYSTEM
(2, (0x00, 0x80, 0x00)), # SYSTEM
(3, (0x80, 0x80, 0x00)), # SYSTEM
@sfan5
sfan5 / desmume-wav.patch
Created March 14, 2015 21:27
Sound recording directly from DeSmuME (w/o any UI, it just does it)
--- desmume-0.9.10/src/sndsdl.cpp.orig 2013-11-28 01:37:18.797021001 +0100
+++ desmume-0.9.10/src/sndsdl.cpp 2015-03-14 22:24:04.184578448 +0100
@@ -16,6 +16,7 @@
along with the this software. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@sfan5
sfan5 / 0readme.txt
Last active August 29, 2015 14:24
Use CloudFlare ddos-protected sites from other programs (by going through nginx)
What you need:
* nginx
* dependencies to build CutyCapt (http://cutycapt.sourceforge.net/)
Steps:
* build CutyCapt with CutyCapt.patch applied and copy the executable somewhere
* install nginx and edit the config as outlined in nginx.conf
* change the paths to nginx, the nginx config and the patched cutycapt in renewcf.sh
* start nginx
* ensure that renewcf.sh runs every 55 minutes
@sfan5
sfan5 / build-cubicsdr.sh
Created July 18, 2015 14:54
Builds CubicSDR (statically linked with liquid-dsp)
#!/bin/bash -e
CORES=4
OUTDIR=/tmp/cubicsdr_install
CUBICSDR_STABLE=1 # 1 for latest tagged version or 0 for git HEAD
[ -d CubicSDR ] && (cd CubicSDR && git pull) || git clone https://github.com/cjcliffe/CubicSDR
[ -d liquid-dsp ] && (cd liquid-dsp && git pull) || git clone https://github.com/jgaeddert/liquid-dsp
cd liquid-dsp
@sfan5
sfan5 / build-waifu2x-cpp.sh
Last active June 18, 2023 14:30
Builds waifu2x-converter-cpp statically linked with a minimal OpenCV build
#!/bin/bash -e
OUTDIR=/tmp/waifu2x-cpp_install
OPENCV_VER=4.7.0
[ -d waifu2x-converter-cpp ] && (cd waifu2x-converter-cpp && git pull) || git clone https://github.com/DeadSix27/waifu2x-converter-cpp
[ -f opencv-$OPENCV_VER.tar.gz ] || wget https://github.com/opencv/opencv/archive/$OPENCV_VER.tar.gz -O opencv-$OPENCV_VER.tar.gz
[ -d opencv-$OPENCV_VER ] || tar -xaf opencv-$OPENCV_VER.tar.gz
cd opencv-$OPENCV_VER
@sfan5
sfan5 / nginx-hdrimg.patch
Last active October 31, 2016 14:34
Add randomly selected header icons to generated autoindexes in nginx
--- nginx-1.10.2/src/http/modules/ngx_http_autoindex_module.c.orig 2016-10-18 17:03:14.000000000 +0200
+++ nginx-1.10.2/src/http/modules/ngx_http_autoindex_module.c 2016-10-31 15:31:31.873696354 +0100
@@ -54,6 +54,10 @@
#define NGX_HTTP_AUTOINDEX_NAME_LEN 50
+#define NGX_HTTP_AUTOINDEX_HDRIMG_COUNT 4 // indexing starts at zero
+#define NGX_HTTP_AUTOINDEX_HDRIMG_SIZE "96px"
+#define NGX_HTTP_AUTOINDEX_HDRIMG_UPRE "/_/h"
+#define NGX_HTTP_AUTOINDEX_HDRIMG_UPOST ".png"