Skip to content

Instantly share code, notes, and snippets.

View color-utils.sh
# Taken from https://github.com/zeit/hyper-site/issues/31
function printcolors() {
echo
echo -e "\033[0mNC (No color)"
echo -e "\033[1;37mWHITE \033[0;30mBLACK"
echo -e "\033[0;34mBLUE \033[1;34mLIGHT_BLUE"
echo -e "\033[0;32mGREEN \033[1;32mLIGHT_GREEN"
echo -e "\033[0;36mCYAN \033[1;36mLIGHT_CYAN"
echo -e "\033[0;31mRED \033[1;31mLIGHT_RED"
@tomasdev
tomasdev / how-to-patch-examples.sh
Last active Jan 21, 2020
Guide to patch - diff (How to use patch)
View how-to-patch-examples.sh
# Create a patch file
diff -u file.old file.new > file.patch
# Apply a patch
patch < file.patch
# Create a backup before applying patch
patch -b < file.patch
# Create a versioned backup before applying patch
@tomasdev
tomasdev / gif.sh
Last active Sep 3, 2020
Video to GIF converter (uses ffmpeg)
View gif.sh
#!/bin/bash
printable_colours=256
# DEFAULTS
SIZE=480
FPS=15
LENGTH=2
# Report usage
usage() {
@tomasdev
tomasdev / numbers.js
Created Nov 7, 2019
poorly performance pandigital fractions
View numbers.js
var unique = n => Array.from(new Set((n+'').split(''))).length === (n+'').length
var possibilities1 = []
var possibilities2 = []
var combos = []
for (var i = 1234; i < 9876; i++) {
if (!(i+'').includes('0') && unique(i)) possibilities1.push(i)
}
for (var i = 12345; i < 98765; i++) {
@tomasdev
tomasdev / utils.js
Created Nov 15, 2018
Utilities for easing and animation ala jquery but vanilla javascript
View utils.js
// easing equations from https://github.com/danro/easing-js/blob/master/easing.js
export const EASING = {
linear: x => x,
easeOut: x => Math.sin(x * (Math.PI / 2)),
easeInOut: x => (-0.5 * (Math.cos(Math.PI * x) - 1)),
easeInOutQuint: x => (x /= 0.5) < 1 ? 0.5 * Math.pow(x, 5) : 0.5 * (Math.pow((x - 2), 5) + 2)
};
export const animate = (method, ms = 1000, ease = EASING.easeInOut) => {
const now = () => (window.performance || Date).now();
@tomasdev
tomasdev / mp4-to-gif.sh
Created Feb 9, 2018
MP4 to GIF using FFMPEG
View mp4-to-gif.sh
# Step 1: define video
export VIDEO=name.mp4
# Step 2: create palette to have a better image quality result
ffmpeg -i $VIDEO -vf fps=15,scale=320:-1:flags=lanczos,palettegen palette.png
# Step 3: use the palette to convert the mp4 to gif
ffmpeg -i $VIDEO -i palette.png -filter_complex "fps=15,scale=400:-1:flags=lanczos[x];[x][1:v]paletteuse" $VIDEO.gif
@tomasdev
tomasdev / uuid-v4.js
Last active Feb 26, 2018
JavaScript UUID Generation using RFC4122 v4 (Random)
View uuid-v4.js
// UPDATE: shorter, non RFC compatible, but safe enough version
function guid() {
const s4 = () => Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
}
// Based off https://github.com/kelektiv/node-uuid
View snapchat-bug-post.js
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
View .hyper.js
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
const foregroundColor = '#f0f8f2';
const backgroundColor = '#272822';
module.exports = {
config: {
// choose either `'stable'` for receiving highly polished,
@tomasdev
tomasdev / script.md
Last active Dec 13, 2017
JavaScript dominant color for image
View script.md

Inspired by manu.ninja approach there's a front-end (or nodejs if using node-canvas) equivalent without using GraphicsMagick:

const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
const image = new Image();
image.onload = () => {
    canvas.width = image.width;
    canvas.height = image.height;
    context.drawImage(image, 0, 0, 1, 1);
You can’t perform that action at this time.