- C-a == Ctrl-a
- M-a == Alt-a
:q close
:w write/saves
:wa[!] write/save all windows [force]
:wq write/save and close
/************************************************************************ | |
Name: XGrid | |
Version: 1.0.0 | |
License: MPL-2.0 | |
Author: Alexander Elias | |
Email: [email protected] | |
This Source Code Form is subject to the terms of the Mozilla Public | |
License, v. 2.0. If a copy of the MPL was not distributed with this | |
file, You can obtain one at http://mozilla.org/MPL/2.0/. | |
************************************************************************/ |
#!/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 |
import { createCipheriv, createDecipheriv, randomBytes } from "crypto"; | |
const ENCRYPTION_KEY: string = process.env.ENCRYPTION_KEY || ""; // Must be 256 bits (32 characters) | |
const IV_LENGTH: number = 16; // For AES, this is always 16 | |
/** | |
* Will generate valid encryption keys for use | |
* Not used in the code below, but generate one and store it in ENV for your own purposes | |
*/ | |
export function keyGen() { |
"use strict"; | |
let looper = (callback) => { | |
let n = 2000000; | |
while (n > 0) { | |
callback(n); | |
n--; | |
} | |
} |
var crypto = require('crypto'); | |
// larger numbers mean better security, less | |
var config = { | |
// size of the generated hash | |
hashBytes: 32, | |
// larger salt means hashed passwords are more resistant to rainbow table, but | |
// you get diminishing returns pretty fast | |
saltBytes: 16, | |
// more iterations means an attacker has to take longer to brute force an |
// this is now a module: | |
// https://github.com/WebReflection/backtick-template#es2015-backticks-for-es3-engines-- | |
var template = require('backtick-template'); | |
// just string | |
const info = 'template'; | |
`some ${info}` === template('some ${info}', {info}); |
/** | |
* An accelerometer object for detecting device orientation | |
* and motion (if supported) | |
* | |
* Chrome 7+, Firefox 6+, IE11+, iOS Safari 4.0+, Android Browser 3.0, Blackberry 10.0 | |
* http://caniuse.com/#feat=deviceorientation | |
* | |
* The DeviceOrientationEvent.alpha value represents the motion of the device around the z axis, | |
* represented in degrees with values ranging from 0 to 360. | |
* |
Test the performance of TreeWalker compared to other DOM walker methods. Ran each test 1000 times. Try it yourself.
Method Total ms Average ms
document.TreeWalker 911 0.911
Iterative Traverser 2945 2.945