Skip to content

Instantly share code, notes, and snippets.

View josfaber's full-sized avatar
🏠
Working from home

Jos josfaber

🏠
Working from home
View GitHub Profile
@josfaber
josfaber / string-utils.js
Last active November 20, 2021 16:01
string utils
/**
* return a random, unique-ish id
*/
function guid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
return v.toString(16);
});
}
@josfaber
josfaber / outcomes.js
Last active November 20, 2021 16:02
Number of possible combinations
/**
* returns the number of possible combinations for given number of participants
* (e.g. 6 soccer teams have to play 15 matches to have everyone playing every other once)
*/
function numCombinations(participants) {
return 0.5 * participants * (participants-1);
}
@josfaber
josfaber / Dockerfile
Created November 20, 2021 16:02
Custom Wordpress docker image with headers enabled
FROM wordpress:php7.4-apache
RUN a2enmod rewrite && a2enmod headers
@josfaber
josfaber / docker-compose.yml
Last active November 20, 2021 16:05
Docker compose for custom Wordpress image and MySQL database
version: '3.1'
services:
wp:
container_name: wordpress
build: .
ports:
- 8080:80
restart: always
@josfaber
josfaber / dist.js
Last active November 20, 2021 16:05
Geocoordinates lat long distance
/**
* returns the distance between two lat long coordinates
* (uses degToRad and radToDeg functions below)
*/
function latlongdist(lat1, long1, lat2, long2) {
var theta = long1 - long2;
var miles = (Math.sin(degToRad(lat1)) * Math.sin(degToRad(lat2))) + (Math.cos(degToRad(lat1)) * Math.cos(degToRad(lat2)) * Math.cos(degToRad(theta)));
miles = radToDeg(Math.acos(miles)) * 60 * 1.1515;
var feet = miles * 5280;
var yards = feet / 3;
@josfaber
josfaber / import.sh
Last active November 20, 2021 19:13
Import database into docker mysql
docker exec -i mysql_container mysql -uroot -prootpassword dbname < ./dbdump.sql
@josfaber
josfaber / debug-menu-items.php
Created November 22, 2021 10:10
Wordpress debug menu items
add_action( 'admin_init', 'wpse_136058_debug_admin_menu' );
function wpse_136058_debug_admin_menu() {
echo '<pre>' . print_r( $GLOBALS[ 'menu' ], TRUE) . '</pre>';
}
@josfaber
josfaber / this-is-not-a-js-file.js
Last active November 22, 2021 15:15
Simple project setup es6/scss
// package.json
{
"name": "waarom",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"dependencies": {},
"devDependencies": {
"@babel/core": "^7.16.0",
@josfaber
josfaber / encoding.txt
Created November 22, 2021 23:08
Transparent video encoding from ProRes 4444 + alpha with ffmpeg
HEVC + alpha (Safari)
ffmpeg -i in.mov -c:v hevc_videotoolbox -allow_sw 1 -alpha_quality 0.75 -vtag hvc1 out.mp4
VP9 + alpha (Rest of browsers)
ffmpeg -i in.mov -c:v libvpx -b:v 2000k -auto-alt-ref 0 -pix_fmt yuva420p out.webm
@josfaber
josfaber / datetostr.js
Created November 23, 2021 11:10
Date formatter with Intl
const dateToStr = (input) => {
if (input.length !== 6) {
return "wrong date syntax, use YYYYMM";
}
const parts = input.match(/([0-9]{4})([0-9]{2})/);
if (!parts) {
return "wrong date syntax, use YYYYMM";
}