Skip to content

Instantly share code, notes, and snippets.

🌠

Kevin Chappell kevinchappell

🌠
Block or report user

Report or block kevinchappell

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
@kevinchappell
kevinchappell / getPercent.test.js
Last active Feb 27, 2019
Perforance test between for loop and reduce
View getPercent.test.js
const labels = Array.from({ length: 1000000 }, (v, k) => ({isVerified: Math.random() >= 0.6}))
function getAcceptedPercent1(labels) {
let acceptedCount = 0
const total = labels.length
for (let index = 0; index < total; index++) {
acceptedCount += labels[index].isVerified
}
return Math.round(acceptedCount / total * 100)
View track.js
/**
* Track class
*/
// configure the class for runtime loading
if (!window.fbControls) window.fbControls = []
window.fbControls.push(function(controlClass) {
/**
* Track class
*/
View flattenArray.js
/**
* recursively flatten a nested array
* @param {Array} arr to be flattened
* @return {Array} flattened array
*/
const flattenArray = arr =>
arr.reduce(
(acc, val) => acc.concat(Array.isArray(val) ? flattenArray(val) : val),
[]
);
View throttle.js
/**
* Throttle class provides and easy way for binding
* and throttling events. Helpful for events like window
* scroll that are fired often.
*/
export class Throttle {
/**
* Add an event and register callbacks
* @param {String} event
* @param {Function} cb
View webpack.config.js
const pkg = require('./package.json');
const {resolve} = require('path');
const {BannerPlugin} = require('webpack');
const CompressionPlugin = require('compression-webpack-plugin');
const BabiliPlugin = require('babili-webpack-plugin');
const PRODUCTION = process.argv.includes('-p');
const bannerTemplate = [
`${pkg.name} - ${pkg.homepage}`,
@kevinchappell
kevinchappell / fizzBuzz.js
Created Feb 17, 2017
Configurable FizzBuzz
View fizzBuzz.js
// Tired of seeing if else if else if else in fizzbuzz exercise I created
// this configurable FizzBuzz that uses only one if statement.
// https://jsfiddle.net/kevinchappell/44jrznbj/
/**
* Configurable fizzBuzz
* @param {Object} args
* @param {Number} until number of iterations
* @return {String} output
*/
@kevinchappell
kevinchappell / youtube-upload.sh
Last active Apr 9, 2016
Right-click upload to youtube
View youtube-upload.sh
#!/bin/sh
# youtube-upload
# Dependencies: xclip and [youtube-upload](https://github.com/tokland/youtube-upload)
GREEN='\033[0;32m'
NC='\033[0m' # No Color
read -p 'Title (default filename): ' TITLE # defaults to filename
read -p 'Privacy (public | unlisted | private): ' PRIVACY # defaults to unlisted
@kevinchappell
kevinchappell / vid2gif.sh
Last active Mar 26, 2016
Convert any video to GIF
View vid2gif.sh
#!/bin/sh
# vid2gif - converts videos to gifs
# Usage: Add vid2gif.sh to your PATH then call like:
# $ vid2gif video.mp4 video.gif
#
# To add to context menu, create command that calls:
# $ vid2gif %F %d/%W.gif
# Get custom width and framerate from user input
@kevinchappell
kevinchappell / gulpfile.babel.js
Last active Mar 7, 2016
Font editing with Fontello and Gulp
View gulpfile.babel.js
'use strict';
import gulp from 'gulp';
import gulpPlugins from 'gulp-load-plugins';
import pkg from './package.json';
const files = pkg.config.files;
// Rather than manually defined each gulp plugin we need, gulpPlugins defines them for us.
var plugins = gulpPlugins(),
View Convert to Animated GIF
[Desktop Entry]
Type=Action
TargetLocation=true
ToolbarLabel[en_US]=Convert to Animated GIF
ToolbarLabel[en]=Convert to Animated GIF
ToolbarLabel[C]=Convert to Animated GIF
Name[en_US]=Convert to Animated GIF
Name[en]=Convert to Animated GIF
Name[C]=Convert to Animated GIF
Profiles=profile-zero;
You can’t perform that action at this time.