We have very precise rules over how our Git commit messages must be formatted. This format leads to easier to read commit history.
Each commit message consists of a header, a body, and a footer.
<header>
/* | |
* RC4 symmetric cipher encryption/decryption | |
* | |
* @license Public Domain | |
* @param string key - secret key for encryption/decryption | |
* @param string str - string to be encrypted/decrypted | |
* @return string | |
*/ | |
function rc4(key, str) { | |
var s = [], j = 0, x, res = ''; |
/* | |
* RC4 symmetric cipher encryption/decryption | |
* | |
* @license Public Domain | |
* @param string key - secret key for encryption/decryption | |
* @param string str - string to be encrypted/decrypted | |
* @return string | |
*/ | |
function rc4(key, str) { | |
var s = [], j = 0, x, res = ''; |
// use (16 chars of) 'password' to encrypt 'plaintext' | |
function encrypt(plaintext, password) { | |
var v = new Array(2), k = new Array(4), s = "", i; | |
plaintext = escape(plaintext); // use escape() so only have single-byte chars to encode | |
// build key directly from 1st 16 chars of password | |
for (var i=0; i<4; i++) k[i] = Str4ToLong(password.slice(i*4,(i+1)*4)); |
/* | |
JavaScript Caesar shift | |
by Evan Hahn (evanhahn.com) | |
"Encrypt" like this: | |
caesarShift('Attack at dawn!', 12); // Returns "Mffmow mf pmiz!" | |
And "decrypt" like this: |
// XORCipher - Super simple encryption using XOR and Base64 | |
// | |
// Depends on [Underscore](http://underscorejs.org/). | |
// | |
// As a warning, this is **not** a secure encryption algorythm. It uses a very | |
// simplistic keystore and will be easy to crack. | |
// | |
// The Base64 algorythm is a modification of the one used in phpjs.org | |
// * http://phpjs.org/functions/base64_encode/ | |
// * http://phpjs.org/functions/base64_decode/ |
@mixin hideScrollbar { | |
// https://blogs.msdn.microsoft.com/kurlak/2013/11/03/hiding-vertical-scrollbars-with-pure-css-in-chrome-ie-6-firefox-opera-and-safari/ | |
// There is a CSS rule that can hide scrollbars in Webkit-based browsers (Chrome and Safari). | |
&::-webkit-scrollbar { | |
width: 0 !important | |
} | |
// There is a CSS rule that can hide scrollbars in IE 10+. | |
-ms-overflow-style: none; | |
// Use -ms-autohiding-scrollbar if you wish to display on hover. |
// FUN METHOD | |
/** | |
* Remove duplicates from an array of objects in javascript | |
* @param arr - Array of objects | |
* @param prop - Property of each object to compare | |
* @returns {Array} | |
*/ | |
function removeDuplicates( arr, prop ) { | |
let obj = {}; | |
return Object.keys(arr.reduce((prev, next) => { |
// deep copy: | |
// String, Number, undefined, null, Set, Map, typed Array, Object, Boolean, RegExp, Date, ArrayBuffer, Node | |
// Functions, Properties of types: (Primitive, Symbol) | |
// shallow copy (by reference): | |
// WeakMap, WeakSet, Symbol | |
// increased compatibility: IE, Node | |
var $jscomp = $jscomp || {}; | |
$jscomp.scope = {}; | |
$jscomp.ASSUME_ES5 = !1; | |
$jscomp.defineProperty = $jscomp.ASSUME_ES5 || "function" == typeof Object.defineProperties ? Object.defineProperty : function(a, b, c) { |