Last active
August 29, 2015 14:02
-
-
Save tangmi/4b925f20495c8f6794b5 to your computer and use it in GitHub Desktop.
happy birthday henry! run this in node!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var msg = msgf(); | |
var fn = msg.split('').slice(msg.length - 12, msg.length).join(''); | |
var jout = process.stdout; | |
var w = jout.columns; | |
var msgw = 0; | |
function repeat(ch, times) { | |
var out = []; | |
for (var i = 0; i < times; i++) { | |
out.push(ch); | |
} | |
return out.join(''); | |
} | |
var lines = msg.replace(fn, '').split(/happy10birthday1/g).map(function(line) { | |
var out = []; | |
line.split(/happy/g).forEach(function(el) { | |
var parts = el.split(/birthday/g) | |
if (el) { | |
out.push({ | |
c: String[fn](parts[0]), | |
t: parts[1] | |
}); | |
} | |
}); | |
return out; | |
}).map(function(line) { | |
var actual = []; | |
line.forEach(function(el) { | |
actual.push(repeat(el.c, el.t)); | |
}); | |
return actual.join(''); | |
}); | |
lines.pop(); | |
lines.forEach(function(line) { | |
msgw = line.length; | |
}); | |
lines.unshift(''); | |
function goto(x, y) { | |
jout.write('\033[' + y + ';' + x + 'f'); | |
} | |
var x = 0; | |
function draw() { | |
jout.write('\033[2J\n'); | |
goto(1, 1); | |
lines.forEach(function(line) { | |
jout.write(line.substr(x, w)); | |
if (x + w >= line.length) { | |
jout.write(line.substr(0, w - (msgw - x))); | |
} | |
jout.write('\n'); | |
}); | |
x++; | |
x = x % msgw; | |
} | |
function render() { | |
draw(); | |
setTimeout(render, 75); | |
} | |
draw(); | |
setTimeout(render, 750); | |
function msgf() { | |
return 'happy32birthday1happy95birthday3happy32birthday2happy95birthday3happy32birthday2happy95birthday8happy32birthday2happy95birthday8happy32birthday2happy95birthday8happy32birthday2happy95birthday3happy32birthday4happy95birthday3happy32birthday6happy95birthday8happy32birthday2happy95birthday3happy32birthday2happy95birthday8happy32birthday2happy95birthday9happy32birthday2happy95birthday3happy32birthday2happy95birthday3happy32birthday2happy95birthday8happy32birthday2happy95birthday8happy32birthday6happy95birthday3happy32birthday4happy95birthday3happy32birthday6happy95birthday3happy32birthday2happy95birthday3happy32birthday2happy95birthday7happy32birthday3happy95birthday8happy32birthday3happy95birthday8happy32birthday6happy95birthday3happy32birthday4happy95birthday3happy32birthday1happy95birthday3happy32birthday7happy10birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday2happy47birthday1happy32birthday2happy47birthday1happy124birthday1happy32birthday4happy124birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy95birthday3happy32birthday3happy95birthday3happy92birthday2happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday3happy95birthday3happy32birthday1happy92birthday1happy124birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy32birthday4happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday2happy47birthday1happy32birthday2happy47birthday1happy124birthday1happy32birthday4happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy95birthday3happy32birthday1happy92birthday1happy32birthday1happy124birthday1happy92birthday1happy32birthday3happy95birthday3happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy32birthday4happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday2happy47birthday1happy32birthday2happy47birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday6happy10birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday3happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy47birthday1happy32birthday2happy47birthday1happy32birthday1happy47birthday1happy32birthday4happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday1happy47birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy95birthday3happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy95birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday3happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy95birthday1happy124birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday3happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy47birthday1happy32birthday2happy47birthday1happy32birthday1happy47birthday1happy32birthday4happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday3happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday2happy47birthday1happy124birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday2happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday3happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy47birthday1happy32birthday2happy47birthday1happy32birthday1happy124birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday5happy10birthday1happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday4happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday4happy92birthday1happy32birthday1happy92birthday1happy32birthday4happy47birthday1happy32birthday1happy47birthday1happy32birthday6happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday1happy32birthday2happy95birthday1happy92birthday1happy32birthday3happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday2happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy32birthday3happy92birthday1happy32birthday1happy92birthday1happy32birthday4happy47birthday1happy32birthday1happy47birthday1happy32birthday6happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday2happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy95birthday1happy124birthday1happy47birthday1happy95birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday2happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday3happy95birthday1happy32birthday2happy95birthday1happy92birthday1happy32birthday3happy92birthday1happy32birthday1happy92birthday1happy32birthday4happy47birthday1happy32birthday1happy47birthday1happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday4happy10birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy95birthday3happy124birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy95birthday3happy124birthday1happy92birthday1happy47birthday1happy32birthday2happy47birthday1happy32birthday2happy47birthday1happy32birthday8happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy124birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday2happy32birthday2happy92birthday1happy124birthday1happy32birthday3happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy95birthday1happy92birthday2happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday3happy92birthday1happy47birthday1happy32birthday2happy47birthday1happy32birthday2happy47birthday1happy32birthday8happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy95birthday1happy124birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday2happy32birthday1happy92birthday1happy32birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday2happy92birthday2happy32birthday2happy92birthday1happy124birthday1happy32birthday3happy92birthday1happy47birthday1happy32birthday2happy47birthday1happy32birthday2happy47birthday1happy32birthday3happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday3happy10birthday1happy32birthday3happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday4happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy95birthday2happy47birthday1happy32birthday2happy47birthday1happy32birthday1happy47birthday1happy32birthday11happy92birthday1happy32birthday1happy92birthday1happy95birthday7happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday2happy32birthday1happy95birthday1happy92birthday1happy32birthday4happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday7happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy95birthday2happy47birthday1happy32birthday2happy47birthday1happy32birthday1happy47birthday1happy32birthday11happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday7happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday2happy32birthday1happy92birthday1happy95birthday2happy92birthday1happy32birthday1happy92birthday1happy95birthday2happy92birthday2happy32birthday1happy95birthday1happy92birthday1happy32birthday1happy95birthday2happy47birthday1happy32birthday2happy47birthday1happy32birthday1happy47birthday1happy32birthday6happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy32birthday3happy10birthday1happy32birthday4happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy32birthday5happy92birthday1happy124birthday1happy95birthday2happy124birthday2happy92birthday1happy95birthday3happy47birthday1happy32birthday1happy47birthday1happy32birthday13happy92birthday1happy124birthday1happy95birthday7happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy32birthday4happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy32birthday2happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday7happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy95birthday3happy47birthday1happy32birthday1happy47birthday1happy32birthday13happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday7happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy32birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy92birthday1happy95birthday3happy47birthday1happy32birthday1happy47birthday1happy32birthday11happy95birthday3happy32birthday1happy10birthday1happy32birthday39happy92birthday1happy124birthday1happy95birthday3happy124birthday1happy47birthday1happy32birthday79happy92birthday1happy124birthday1happy95birthday3happy124birthday1happy47birthday1happy32birthday54happy92birthday1happy124birthday1happy95birthday3happy124birthday1happy47birthday1happy32birthday11happy124birthday1happy92birthday1happy95birthday2happy92birthday1happy10birthday1happy32birthday204happy92birthday1happy124birthday1happy95birthday2happy124birthday1happy10birthday1fromCharCode'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment