Skip to content

Instantly share code, notes, and snippets.

@tangmi
Last active August 29, 2015 14:02
Show Gist options
  • Save tangmi/4b925f20495c8f6794b5 to your computer and use it in GitHub Desktop.
Save tangmi/4b925f20495c8f6794b5 to your computer and use it in GitHub Desktop.
happy birthday henry! run this in node!
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