Skip to content

Instantly share code, notes, and snippets.

🎯
Focusing

Alexander Elias vokeio

🎯
Focusing
Block or report user

Report or block vokeio

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View video.md

Convert mp4 to webm

ffmpeg -i input.mp4 -vcodec libvpx -qmin 0 -qmax 50 -crf 10 -b:v 1M -acodec libvorbis output.webm

Convert webm to mp4

ffmpeg -i input.webm -vcodec libx264 output.mp4
@vokeio
vokeio / avrdude-flash.sh
Created Sep 5, 2018 — forked from nooges/avrdude-flash.sh
Script for flashing .hex file onto Pro Micro with avrdude
View avrdude-flash.sh
#!/usr/bin/env bash
MCU=atmega32u4
if grep -q -s Microsoft /proc/version; then
echo 'ERROR: Pro Micros can not be flashed within the Windows Subsystem for Linux (WSL) currently. Instead, take the .hex file generated and flash it using AVRDUDE, AVRDUDESS, or XLoader.'
exit 1
fi
if [ "$#" -ne 1 ]; then
@vokeio
vokeio / LetsEncrypt.md
Created Aug 24, 2018 — forked from davestevens/LetsEncrypt.md
Let’s Encrypt setup for Apache, NGINX & Node.js
View LetsEncrypt.md

Let's Encrypt

Examples of getting certificates from Let's Encrypt working on Apache, NGINX and Node.js servers.

Obtain certificates

I chose to use the manual method, you have to make a file available to verify you own the domain. Follow the commands from running

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
@vokeio
vokeio / client.js
Last active Aug 21, 2018 — forked from agrueneberg/client.html
HMAC Signature Verification
View client.js
const Http = require('http');
const Crypto = require('crypto');
const query = 'key=value';
const sharedSecret = 'secret';
const signature = Crypto.createHmac('sha256', sharedSecret).update(query).digest('hex');
Http.get({
port: 8000,
@vokeio
vokeio / encryption.js
Created Mar 8, 2018 — forked from vlucas/encryption.js
Stronger Encryption and Decryption in Node.js
View encryption.js
'use strict';
const crypto = require('crypto');
const ENCRYPTION_KEY = process.env.ENCRYPTION_KEY; // Must be 256 bytes (32 characters)
const IV_LENGTH = 16; // For AES, this is always 16
function encrypt(text) {
let iv = crypto.randomBytes(IV_LENGTH);
let cipher = crypto.createCipheriv('aes-256-cbc', new Buffer(ENCRYPTION_KEY), iv);
View promise-async-each.js
function each (condition, method, context, index) {
index = index === undefined ? 0 : index;
if (condition.call(context, index)) {
return Promise.resolve().then(function () {
return method.call(context, index);
}).then(each.bind(null, condition, method, context, index+1));
} else {
return Promise.resolve();
}
View test-object-loop.js
var object = {}, i = 0;
while (i++ < 100000) {
object['user' + i] = i;
}
// fastest
console.time('keys for');
var result;
var keys = Object.keys(object);
@vokeio
vokeio / umd.js
Created Feb 16, 2017
A better way then umd
View umd.js
var NAME = '';
var MODULE = {} || function () {};
(function (t, n, m) {
if (typeof m === 'function') m = m(t);
if (typeof t.define !== 'undefined') t.define([n], m);
else if (typeof t.module !== 'undefined') t.module.exports = m;
else if (typeof t.window !== 'undefined') t.window[n] = m;
else return m;
@vokeio
vokeio / manipulate-object.js
Created Feb 8, 2017
Object Manipulation Object
View manipulate-object.js
function getByPath(object, path) {
var keys = path.replace('[', '.').replace(']', '').split('.');
var last = keys.length - 1;
var obj = object;
for (var i = 0; i < last; i++) {
var prop = keys[i];
if (!obj[prop]) return undefined;
obj = obj[prop];
You can’t perform that action at this time.