Skip to content

Instantly share code, notes, and snippets.

Mathieu 'p01' Henri p01

View GitHub Profile
@p01
p01 / index.html
Last active Sep 26, 2018
Face detection in 280 bytes
View index.html
<canvas id=a><video id=v><svg onload="navigator.getUserMedia({video:1},n=m=>{v.src=top.URL.createObjectURL(m);setInterval(async(c=a.getContext`2d`)=>{c.drawImage(v,0,0,208,150);for(i of await new FaceDetector().detect(a))with(i.boundingBox)c.strokeRect(x,y,width,height)},9)},n)">
@p01
p01 / demo.js
Last active Mar 25, 2016
JS1k 2016: THE SECRET OF MENTAL ISLAND
View demo.js
for(_='024z),v33$22:atQon!,4GddKKKJ99@@bbJK?rocess>ect(`qq_kk^0,Z37YllX^^^WmlkmXXWVhhU5511mm☁",ff77rrrqomq__(n[parseInt("c.fiX,Text("Z:0)cc*MQh.sin(x/,1,c.globalAlpha=,R`Zxz,aaoo ii Klo@ @ Style="#K"[0|s%264],35)]*s&1) orqo ,c.f!t="pppppx serif"x+=Y)n=[35,YG1G6G9,,58,62,65,73,82,93,98101723313947658596,:Z2$,247,262,2,294,$ZY0],A=new AudioC!text,C=A.creQeScriptP>or(a.width=1zvs=ZC.c!n`A.destinQi!vC.!audiop>=functi!(l){for(b=l.outputBuer.getChannelDQa(x=0va.height=YZ214"Y0v46f".1162:740Y:054,002",x=0;x<1z;x++,s+=6.25/A.sampleRQe)R`x,$0+MQh.min(27)+4vb[x]=JV oqssss_q o VWWW^ lkjl ^ Xmsmsrs_ WU tt_qrorXXXXXXXjjUUUUfh+fi Kjo KJ@ 66enK@bb$bbfidg44cf4444cf@ jjfi@Jfk@dh?44dk00:$88ggbb@@@@@97?J UK-1),Y0);B4B"16THE SECRET OF"G8Z98)62MENTAL"G2050)ISLAND"G8096)}';G=/[-U-Z^-`>-@JKG!Q:$vz]/.exec(_);)with(_.split(G))_=join(shift());eval(_)
@p01
p01 / index.html
Last active Jan 31, 2016
LIVE code at FRAMSIA - 20160127
View index.html
<style>
#b {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(circle, #345, #201);
}
@p01
p01 / live-coding-at-SG.html
Last active Nov 26, 2015
Live coding at Creative Coding Singapore
View live-coding-at-SG.html
<style>
#b {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(circle, #000, #123);
}
@p01
p01 / dirty_trigo.js
Last active Nov 6, 2016
Find approximation of trigonometric value
View dirty_trigo.js
onchange = function(e) {
try {
var value = eval(expression.value);
var TWO_PI = Math.PI * 2;
var minError = TWO_PI;
var results = [];
for(var i=0; i < 1e4; i++) {
var error = Math.abs(value - (i % TWO_PI));
if (error < minError) {
@p01
p01 / index.html
Last active Aug 29, 2015
JS1k 2015 Invitation
View index.html
<!doctype html>
<html>
<head>
<title>JS1k 2015 Invitation by Mathieu 'p01' Henri</title>
<meta charset="utf-8" />
<meta name="author" content="Mathieu 'p01' Henri, @p01"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<style>
html, body { margin: 0; padding: 0; border: 0; }
#c { display: block; } /* kill scrollbars from hell */
@p01
p01 / List_of_demos.md
Last active Aug 29, 2015
List of demos in the Monster Audio-Visual demos in a TCP packet talk at JSConf EU 2014
@p01
p01 / viewer_snippet.js
Last active Aug 29, 2015
PDF.js profile slow pages
View viewer_snippet.js
/*
* Copy this gist into a snippet of the Sources panel of the DevTool and run it to profile slow pages
* Alternatively the PDFView.PROFILE_THRESHOLD can be set in `ms`
*/
// threshold in ms to keep/discard CPU profile
PDFView.PROFILE_THRESHOLD = 500;
PDFView.renderHighestPriority = function pdfViewRenderHighestPriority_patched(currentlyVisiblePages) {
if (PDFView.idleTimeout) {
@p01
p01 / quack.js
Created Jan 12, 2014
Conditional breakpoint after X iterations of a loop
View quack.js
// Example of conditional breakpoint ( in code ) after X iterations
for(var i=0, __iterations_left_before_break=50; (--__iterations_left_before_break||debugger),i<1e5;i++)
{
// body of the loop
}
/*
To do the same in devtool, you can put a breakpoint on the first statement of the loop,
right-click on the breakpoint > Edit condition.
@p01
p01 / prodScreenshot.user.js
Created Aug 24, 2012
pouet.net.user.js - prodScreenshot.user.js
View prodScreenshot.user.js
// ==UserScript==
// @name prodScreenshot
// @description Add the corresponding thumbnail inside each link to a prod.
// @include http://pouet.net/*
// @exclude http://pouet.net/
// @exclude http://pouet.net/index.php*
// @include http://www.pouet.net/*
// @exclude http://www.pouet.net/
// @exclude http://www.pouet.net/index.php*
// ==/UserScript==
You can’t perform that action at this time.