Skip to content

Instantly share code, notes, and snippets.

View shigeki's full-sized avatar

Shigeki Ohtsu shigeki

View GitHub Profile
@shigeki
shigeki / app.js
Created October 13, 2011 08:42
Testing http.request with socket.io
var app = require('express').createServer(),io = require('socket.io').listen(app),http = require('http');
app.listen(8080);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
var options = {
host: 'www.google.com',
@shigeki
shigeki / Makefile
Created October 28, 2011 05:43
Hello World by libuv
hello_uv: hello_uv.c
gcc -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../libuv/include -o hello_uv hello_uv.c ../libuv/uv.a -pthread -lrt -lm
clean:
rm hello_uv
@shigeki
shigeki / gist:1391018
Created November 24, 2011 10:05
JavaScript で for/while 文を使わないで1から10までの合計を求める方法(node-fibの真似編)
var calc = function(n, callback) {
var sum = function(i, res) {
var func = (n>i) ? sum_tick : function(j,k) {callback(k);};
func(i+1, res+i);
};
var sum_tick = function(i, res) {
process.nextTick(function() { sum(i,res); });
};
sum(1,0);
};
@shigeki
shigeki / gist:1391197
Created November 24, 2011 12:01
JavaScript で for/while 文を使わないで1から10までの合計を求める方法(process.netxtTick()を使わないnode-fibの真似編:実はこっちの方が速かった)
var calc = function(n, callback) {
var sum = function(i, res) {
var func = (n>i) ? sum : function(j,k) {callback(k);};
func(i+1, res+i);
};
sum(1,0);
};
calc(10, function(x) {console.log(x);});
@shigeki
shigeki / core.c
Created December 12, 2011 15:10
libuv fix: option #1
void uv__req_init(uv_req_t* req) {
req->type = UV_UNKNOWN_REQ;
}
void uv_req_init(uv_loop_t* loop, uv_req_t* req) {
loop->counters.req_init++;
uv__req_init(req);
}
@shigeki
shigeki / core.c
Created December 12, 2011 15:17
libuv fix: option #2
uv__req_init((uv_req_t*)handle);
loop->counters.req_init++;
@shigeki
shigeki / http_server.js
Created January 25, 2012 15:49
node module for uv_unref
var unref = require('./build/Release/unref.node').unref;
var http = require('http');
http.createServer(function(req,res){
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Loop Counter='+unref()+'\n');
}).listen(8080);
@shigeki
shigeki / nodetime_sampling.js
Created April 11, 2012 04:42
example to use nodetime module within local environment
// nodetime for local use
var uphttp = require('http');
var nodetime = require('nodetime');
var upload_port = 12345;
nodetime.on('sample', function(sample) {
var upload = uphttp.request({ port: upload_port,
method: 'POST',
path: '/upload'
});
upload.end(JSON.stringify(sample));
@shigeki
shigeki / gist:2427216
Created April 20, 2012 08:59
patch for d.run(fn, argument, ...), d.apply(fn, this, arguments) , d.call(fn, this, argument, ... )
--- a/lib/domain.js
+++ b/lib/domain.js
@@ -136,7 +136,15 @@ Domain.prototype.remove = function(ee) {
};
Domain.prototype.run = function(fn) {
- this.bind(fn)();
+ this.bind(fn).apply(null, Array.prototype.slice.call(arguments,1));
+};
+
@shigeki
shigeki / hello-spdy3.js
Created May 17, 2012 04:10
Hello SPDY by Node-0.7.x
var tls = require('tls');
var fs = require('fs');
var zlib = require('zlib');
var events = require('events');
var util = require('util');
var dictionary = require('./dict.js').dictionary;
var word = '<!DOCTYPE html><html><head><title>Hello SPDY</title></head><body>Hello SPDY</body></html>';
function parseNV_HeaderBlock(buffer) {
var nv = [];