Skip to content

Instantly share code, notes, and snippets.

Avatar
🤓

Ferdinand Mütsch muety

🤓
View GitHub Profile
@muety
muety / track.php
Last active May 31, 2022
OwnTracks receiver script
View track.php
<?php
$data = file_get_contents('php://input');
$json = json_decode($data);
header("Content-type: application/json");
if ($json->_type !== 'location') {
return;
}
@muety
muety / rclone_sync.txt
Last active May 6, 2022
Automated Google Drive sync for Linux using rclone
View rclone_sync.txt
Script that will trigger a local to remote sync when any changes below your local Google Drive folder occur - but at max. every 10 minutes - and a remote to local sync every x (e.g. 30 minutes) via a cron job.
0. Install rclone and configure it for Google Drive
1. Create files listed below
2. Configure rclone_watch_local.sh to be run on startup (e.g. using a systemd service unit)
3. Add a cron job that runs rclone_remote2local.sh every x (e.g. 30) minutes
----------------------
rclone_local2remote.sh
----------------------
View mouse_tracker.py
#!/usr/bin/python
# TODO: https://stackoverflow.com/a/58840987/3112139
import os
import stat
import time
import logging
import asyncio
from dataclasses import dataclass
View dqn_cartpole.py
# Inspired by https://keon.io/deep-q-learning/
import random
import gym
import math
import numpy as np
from collections import deque
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
View get_rast_tile.pgsql
-- https://livebook.manning.com/book/postgis-in-action-second-edition/chapter-17/242
-- with a couple of bugs fixed
CREATE OR REPLACE FUNCTION get_rast_tile(
param_format text, -- e.g. 'image/png'
param_width integer, -- e.g. 256
param_height integer, -- e.g. 256
param_srid integer, -- e.g. 'EPSG:3857'
param_bbox text, -- e.g. '660415.9243839228,3713005.085980721,665307.8941941742,3717897.0557909757' in EPSG:3857
param_schema text,
@muety
muety / fetch.js
Created Mar 6, 2017
Get image as base64 string using node-fetch
View fetch.js
'use strict';
const fetch = require('node-fetch')
, base64stream = require('base64-stream');
const URL = 'https://www.google.de/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png';
fetch(URL)
.then((res) => {
return new Promise((resolve, reject) => {
View PGMap.php
// https://livebook.manning.com/book/postgis-in-action-second-edition/chapter-17/242
// https://gist.github.com/muety/9e3a6d0ad2bb5890c081670e0c4fc044
<?php
define("DSN", "host=localhost dbname=postgis_in_action user=postgis_in_action port=5432 password=whatever");
$param_format = $_REQUEST['FORMAT'];
$param_width = (int) $_REQUEST['WIDTH'];
$param_height = (int) $_REQUEST['HEIGHT'];
$param_bbox = $_REQUEST['BBOX'];
$param_schema = $_REQUEST['SCHEMA'];
@muety
muety / whatsapp_to_telegram.py
Last active Sep 16, 2021
A script to help you migrate your whole WhatsApp chat history with a person to Telegram
View whatsapp_to_telegram.py
#!/bin/python
import os
import re
import shutil
# A script to help you migrate your whole WhatsApp chat history with a person to Telegram
# Instructions
# 1. Install "Backup WhatsApp Chats" extenstion to Chrome
@muety
muety / localssh.sh
Created Dec 3, 2020
Reverse tunneling to localhost using SSH (ngrok alternative)
View localssh.sh
#!/bin/bash
# Requires 'GatewayPorts clientspecified' to be set in /etc/ssh/sshd_config
HOST="muetsch.io"
REMOTE_PORT="8080"
REMOTE_BIND_V4="127.0.0.1"
PROXY_URL="https://local.muetsch.io"
echo -e "----------- localssh -----------"
View qcartpole.py
# Inspired by https://medium.com/@tuzzer/cart-pole-balancing-with-q-learning-b54c6068d947
import gym
import numpy as np
import math
from collections import deque
class QCartPoleSolver():
def __init__(self, buckets=(1, 1, 6, 12,), n_episodes=1000, n_win_ticks=195, min_alpha=0.1, min_epsilon=0.1, gamma=1.0, ada_divisor=25, max_env_steps=None, quiet=False, monitor=False):
self.buckets = buckets # down-scaling feature space to discrete range