Skip to content

Instantly share code, notes, and snippets.

@mk30
mk30 / global localwiki changes
Created December 16, 2013 03:40
global recent changes across different localwiki hosted at localwiki.net
var request = require('request');
var concat = require('concat-stream');
var u = 'http://localwiki.net/api/v2/page_version?format=json';
recch(u, 0)
function recch(url, numreq){
request(url).pipe(concat(function (body) {
var obj = JSON.parse(body);
@mk30
mk30 / simpleserver
Created January 1, 2014 19:15
simple blog server
var http = require('http');
var fs = require('fs');
var hyperstream = require('hyperstream');
var article = require('markdown-directory')(__dirname + '/articles');
var server = http.createServer(function (req, res) {
if(req.url == "/"){
fs.readdir(__dirname + '/articles', function (err, files) {
return function (r, w) {
for (var i = 0; i < w.data.length; i += 4) {
w.data[i] = Math.floor((Math.sin(r.data[i])+5));
w.data[i+1] = Math.floor((Math.sin(r.data[i]/40)+1)*5);
w.data[i+2] = Math.floor((Math.sin(r.data[i+1]/8)+1)*255);
w.data[i+3] = 255;
}
}
@mk30
mk30 / gist:9e4e32dfa3a62a1c407a
Created August 7, 2014 23:56
robot night vision
return function (r, w) {
for (var i = 0; i < w.data.length; i += 4) {
w.data[i] = Math.floor((Math.sin(r.data[i])+5));
w.data[i+1] = Math.floor((Math.tan(r.data[i]/125))*5);
w.data[i+2] = Math.floor((Math.sin(r.data[i])));
w.data[i+3] = 255;
}
}
@mk30
mk30 / gist:e15e95d1d99bde151eb6
Created August 8, 2014 00:00
purple green squigglies
return function (r, w) {
for (var i = 0; i < w.data.length; i += 4) {
w.data[i] = Math.floor((Math.sin(r.data[i]))*255);
w.data[i+1] = Math.floor((Math.tan(r.data[i]/80)-1)*255);
w.data[i+2] = Math.floor((Math.sin(r.data[i]))* 20555);
w.data[i+3] = 255;
}
}
@mk30
mk30 / gist:3ed6f050f2bec86e0a68
Created August 8, 2014 00:03
evocative of flames
return function (r, w) {
for (var i = 0; i < w.data.length; i += 4) {
w.data[i] = Math.floor((Math.sin(r.data[i])+5)*255);
w.data[i+1] = Math.floor((Math.tan(r.data[i]/8))*255);
w.data[i+2] = Math.floor((Math.sin(r.data[i])));
w.data[i+3] = 255;
}
}
var loadsvg = require('load-svg');
var createsvg = require('svg-create-element');
function createSprite (elems) {
var bounds = [];
for (var i = 0; i < elems.length; i++) {
elems[i].style.display = 'block';
bounds[i] = elems[i].getBoundingClientRect();
}
var createGame = require('voxel-hello-world')
var game = createGame({
generate: function(x, y, z) {
return y === 1 ? 1 : 0
},
materials: [['grass', 'dirt', 'grass_dirt'], 'brick', 'dirt',
'gold_ore', 'hardened_clay_stained_cyan', ],
})
window.game = game
@mk30
mk30 / gist:565c76be98c7f3953ea5
Created January 30, 2015 01:23
johnny demo 1
master = new AudoContext()
sampleRate = master.sampleRate
jsynth = require('jsynth')
oz = require('oscillators')
amod = requoire('amod')
music = function(t, s, i){
return oz.sine(t, 54 * 2) * amod(.5, .5, t, 1/6)
}
@mk30
mk30 / gist:ba6f19f6b5558f2eefb9
Created January 30, 2015 01:23
johnny demo 2
master = new AudoContext()
sampleRate = master.sampleRate
jsynth = require('jsynth')
oz = requdire('oscillators')
amod = requoire('amod')
mic = require('jsynth-mic')(master)
mic.on('node', function(node){
node.connect(synth)