Skip to content

Instantly share code, notes, and snippets.

Avatar
😶
boop

andreas andreasvirkus

😶
boop
View GitHub Profile
@andreasvirkus
andreasvirkus / canvasStitch.js
Created Dec 14, 2019
Stitch together 2 images and screenshot them
View canvasStitch.js
export const screenshot = (canvasRef, base, avatar) => {
const ctx = canvasRef.getContext('2d')
const imageObj1 = new Image()
const imageObj2 = new Image()
imageObj1.src = base.src
imageObj1.onload = () => {
ctx.drawImage(imageObj1, 0, 0, base.height, base.width)
imageObj2.src = avatar.src
imageObj2.onload = () => {
ctx.drawImage(imageObj2, avatar.left, avatar.top, avatar.height, avatar.width)
View sqrt.go
package main
import (
"fmt"
"math"
)
const round = 1000000.0
func Sqrt(x float64) float64 {
@andreasvirkus
andreasvirkus / train-time-bookmarklet.js
Last active Dec 1, 2019
train-time-bookmarklet.js
View train-time-bookmarklet.js
javascript:(()=>{const e=new Date,t=(e.getDate()+'').padStart(2,'0'),l=e.getMonth()+1;let n=`https://elron.pilet.ee/et/otsing/Tondi/Pääsküla/${`${e.getFullYear()}-${l}-${t}`}`;location.href=n})();
View keyboardShortcutMapper.js
onKeydown(e) {
const { toggleSidebar, next, previous } = this.props;
const keyMapping = new Map([
[ 83, toggleSidebar ], // user presses the s button
[ 37, next ], // user presses the right arrow
[ 39, previous ] // user presses the left arrow
]);
if (keyMapping.has(e.which)) {
@andreasvirkus
andreasvirkus / array.js
Created Oct 11, 2019
A collection of utility functions to manipulate arrays
View array.js
/**
* Uses the Durstenfeld shuffle algorithm,
* a modern optimized version of the Fisher-Yates
* (aka Knuth) shuffle.
*
* http://en.wikipedia.org/wiki/Fisher-Yates_shuffle#The_modern_algorithm
*
* @param {Array} Array to shuffle
* @return {Array} Shuffled array
*/
View consoleGreeting.js
console.log('%c 👋 Salutations, hax0r.\nFeel free to look around. FYI, you\'ll have a better view of the code over at GitHub: \nhttps://github.com/andreasvirkus/cottage', 'background: #223; color: #bada55');
View promisify.js
// Needs spread operator (... notation)
export const promisify = (fn) => {
return (...args) => {
return new Promise((resolve, reject) => {
fn(...args, (err, res) => {
if (err) return reject(err)
return resolve(res)
})
})
}
View password.js
/**
* Medium-strength regex checks if the password contains 2 of:
* - lowercase alphabetical char
* - uppercase alphabetical char
* - numerical character
* - minimum of 6 characters
*
* Strong-strength regex checks if the password contains all of:
* - lowercase alphabetical char
* - uppercase alphabetical char
View webpackChunks.js
// See an excellent explanation over at
// https://medium.com/hackernoon/the-100-correct-way-to-split-your-chunks-with-webpack-f8a9df5b7758
optimization: {
runtimeChunk: 'single',
splitChunks: {
chunks: 'all',
maxInitialRequests: Infinity,
// Default is 30kB, let's set it to 5kB
minSize: 5000,
cacheGroups: {
View Extension_reloader.md

Extension reloader

This will watch a Chrome extension's file directory, compile a hash based on the file names and date and reload the extension/add-on when the directory undergoes changes.

Compatible with Webpack and any other type of build setup! 📦

Usage

Add the script to your extension's manifest.json

You can’t perform that action at this time.