Skip to content

Instantly share code, notes, and snippets.

View m3g4p0p's full-sized avatar
💭
waits until idle

m3g4p0p

💭
waits until idle
View GitHub Profile
@m3g4p0p
m3g4p0p / abort-request.js
Created September 12, 2018 17:52
Abort requests w/o event emitter
const express = require('express')
const app = express()
const tokenTable = {}
const getMeaningOfLife = token => new Promise((resolve, reject) => {
tokenTable[token] = () => {
global.clearTimeout(handle)
reject(new Error('aborted ' + token))
}
!function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=17)}([function(t,e){var i={clone:function(t){var e={};for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},cloneArray:function(t){for(var e=[],r=0;r<t.length;r++)e.push(i.clone(t[r]));return e},cloneHashOfHash:function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]=i.clone(t[r]));return e},cloneHashOfArrayOfHash:function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]=i.cloneArray(t[r]));return e},gsub:function(t,e,i){return t.split(e).join(i)},strip:function(t){return t.replace(
@m3g4p0p
m3g4p0p / README.md
Last active November 9, 2018 18:58
Bootstrap card table

Bootstrap card table PoC

Download zip file, then

yarn install
yarn build
@m3g4p0p
m3g4p0p / modal.js
Last active May 7, 2018 10:28
A simple modal module using from-html https://github.com/m3g4p0p/from-html.js
import fromHTML from 'from-html'
import './modal.scss'
/**
* @class Modal
*/
export default class Modal {
/**
* @constructs Modal
@m3g4p0p
m3g4p0p / scroll-slide-plugin.js
Created February 26, 2018 19:07
jQuery plugin for scroll slides
$.fn.scrollSlide = function (fadeDuration) {
var $slides = this
var $window = $(window)
var $document = $(document)
var isAnimating = false
var currentSlide = 0
var toggleIsAnimating = function (forceValue) {
isAnimating = forceValue === undefined ? !isAnimating : forceValue
}
@m3g4p0p
m3g4p0p / scroll-slide.js
Last active November 28, 2018 15:13
Cycle through slide using the scroll wheel
var FADE_DURATION = 100
// The slides; should be hidden initially except for the
// first one via CSS
var $slides = $('.scroll-slide')
var $window = $(window)
var $document = $(document)
var isAnimating = false
var currentSlide = 0
<?php
if (isset($_POST['comment'])) {
echo replaceWords($_POST['comment']);
} else {
echo renderForm();
}
function replaceWords($comment) {
$bad_words = ['fuck', 'shit', 'pussy'];
@m3g4p0p
m3g4p0p / bind-once.js
Created November 6, 2017 17:55
Bind functions to instances in a way that maintains strict equality when done multiple times
const bindings = new WeakMap()
const getFns = context => {
if (!bindings.has(context)) {
bindings.set(context, {})
}
return bindings.get(context)
}
@m3g4p0p
m3g4p0p / upload-recording.js
Last active April 20, 2020 23:04
Record a video with the web cam and upload it to the server
const video = document.querySelector('video')
const start = document.querySelector('.start')
const stop = document.querySelector('.stop')
const upload = document.querySelector('.upload')
const initRecorder = stream => {
const recorder = new MediaRecorder(stream)
let blob
video.srcObject = stream
@m3g4p0p
m3g4p0p / watch-your-back.js
Last active April 4, 2024 17:11
Capture a video stream and play it with some delay
const DELAY = 2000
const videos = []
const hide = el => el.style.display = 'none'
const show = el => el.style.display = 'block'
const showAndHideOthers = ({ target }) => {
window.requestAnimationFrame(() => {
videos.forEach(hide)
show(target)