Skip to content

Instantly share code, notes, and snippets.

View tdr2d's full-sized avatar

Thomas Ducrot tdr2d

View GitHub Profile
@tdr2d
tdr2d / setup_mysql_ddb.sh
Created November 21, 2017 12:46
Create a new mysql ddb, create new user with password, grant user all priviledges
#!/bin/bash
if [ $# -lt 3 ]; then
echo "usage: ./setup_ddb.sh db_name db_username db_password"
exit 1
fi
DB_NAME="$1";
DB_USERNAME="$2";
DB_PASSWORD="$3";
@tdr2d
tdr2d / rsync_default.sh
Created January 20, 2018 22:50
Default rsync deployment file
#!/usr/bin/env bash
rsync -avz --exclude-from '.rsync-exclude-list.txt' \
-e "ssh -i ~/.ssh/[ssh key]" \
--progress * \
-t [USER]@[IP]:~/[dest]
@tdr2d
tdr2d / web_worker_function_wrapper.js
Last active August 24, 2018 14:00
Run a function into a web worker instance
/**
* @argument callback function
* @argument arg argument
* @argument onMessageCallback function
* usage: runInWorker(function(e){return JSON.parse(e);}, '{"name": "toto"}', console.log);
**/
function runInWorker(callback, arg, onMessageCallback){
var blob = new Blob(['onmessage=function(_e){postMessage('+ callback.toString() + '(_e)); close();']);
var worker = new Worker(URL.createObjectURL(blob));
worker.onmessage = onMessageCallback;
@tdr2d
tdr2d / docker-mysql.sh
Created August 27, 2018 14:56
Docker runner for mysql, accessible from host
#!/usr/bin/env bash
sudo docker run --rm -p 3306:3306 --name=mysql \
-e MYSQL_ROOT_PASSWORD="1234" \
-e MYSQL_DATABASE="test" \
-e MYSQL_USER="test" \
-e MYSQL_PASSWORD="1234" \
-d mysql/mysql-server --default-authentication-plugin=mysql_native_password
sudo docker logs -f mysql
@tdr2d
tdr2d / sort_algorithms.py
Last active August 19, 2019 11:03
Quick sort, and Insert sort, Bubble sort, Merge sort algorithms
#!/usr/bin/env python
# Using a pivot
# Place value lower than pivot to the left, greater to the right
# Sort left and right recursively
def quick_sort(arr):
less, equal, greater = [], [], []
if len(arr) > 1:
pivot = arr[0]
@tdr2d
tdr2d / youtube-dl.sh
Last active January 2, 2020 16:41
Youtube-dl, Udemy-dl cheat code
#!/usr/bin/env bash
set -e
### Youtube
URLS=(
"https://www.youtube.com/watch?v=YbH1E2R9TOM"
"https://www.youtube.com/watch?v=fdNYW23Vm_c"
"https://www.youtube.com/watch?v=gh0faLFKl3w"
"https://www.youtube.com/watch?v=Homukj0sBYU"
@tdr2d
tdr2d / utils.js
Created February 16, 2021 18:25
Javascript vanilla utils
function serializeForm(form) { // Serialize inputs values into json object
var obj = {};
var formData = new FormData(form);
for (var key of formData.keys()) {
obj[key] = formData.get(key);
}
return obj;
};
@tdr2d
tdr2d / docker_cleanup.sh
Last active March 10, 2021 01:37
Remove all unused docker containers, remove all docker volumes, cleanup networks
#!/usr/bin/env bash
removevolumes() {
sudo docker volume rm $(sudo docker volume ls -qf dangling=true)
sudo docker volume ls -qf dangling=true | xargs -r sudo docker volume rm
}
removenetwork() {
sudo docker network ls
sudo docker network ls | grep "bridge"
@tdr2d
tdr2d / watcher_config_bug.sh
Last active September 3, 2021 21:51
watcher config bug
#!/bin/sh
# Increase max user watches
# Option 1: Sysctl
sudo sysctl fs.inotify.max_user_watches=1048576
sudo nano /etc/sysctl.d/99-sysctl.conf
sudo sysctl --system
# Option 2
@tdr2d
tdr2d / ffmpeg-VP9-encoder.sh
Last active November 9, 2022 17:13
ffmpeg - convert videos using the VP9 codec - prepare multiple resolutions for DASH
#!/usr/bin/env bash
# Prepare the videos to be used over http with the MPEG-DASH protocol
# The vp9 codec is used for the videos because h265 is not supported by chrome and h264 is too big
# This script generates webm files
## DOCS
# https://developers.google.com/media/vp9/settings/vod/
# https://developer.mozilla.org/en-US/docs/Web/HTML/DASH_Adaptive_Streaming_for_HTML_5_Video
# http://wiki.webmproject.org/adaptive-streaming/instructions-to-playback-adaptive-webm-using-dash