Skip to content

Instantly share code, notes, and snippets.

View alessioalex's full-sized avatar

Alexandru Vlăduţu alessioalex

View GitHub Profile
@alessioalex
alessioalex / example.js
Created November 22, 2014 13:11
CSV-streaming-parser
"use strict";
// CSV data downloaded from the following url:
// http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv
var fs = require('fs');
var csv = require('csv-parser');
var FilterStream = require('./filter-stream');
var Table = require('cli-table');
var bubbleError = require('bubble-stream-error').bubble;
@alessioalex
alessioalex / decrypt.js
Created November 22, 2014 13:17
encryption-stream
"use strict";
var fs = require('fs');
var zlib = require('zlib');
var crypto = require('crypto');
var gzip = zlib.createGunzip();
var rs = fs.createReadStream('llorem.txt.gz.encrypted');
var password = new Buffer('password here');
@alessioalex
alessioalex / simple-parallel-control-flow.js
Created November 22, 2014 13:47
simple-parallel-control-flow.js
// simplest control flow function ever for async parallel functions
var doParallel = function(counter, cb) {
return function() {
// counter reached 0
if (!--counter) {
cb();
}
};
};
@alessioalex
alessioalex / request-hn.js
Created November 22, 2014 14:05
request-hn.js
var request = require('request');
var cheerio = require('cheerio');
request('https://news.ycombinator.com/', function(err, res, body) {
if (err) {
throw err;
}
var $ = cheerio.load(body);
var results = [];
@alessioalex
alessioalex / streaming-crawler.js
Created November 22, 2014 14:36
streaming-crawler.js that reads articles from first X pages
var request = require('request');
var cheerio = require('cheerio');
var select = require('html-select');
var tokenize = require('html-tokenize');
var counter = 0;
function crawl(page, stopAt, cb) {
counter++;
@alessioalex
alessioalex / http-debugging-proxy.js
Created November 22, 2014 14:47
http-debugging-proxy.js
var fs = require('fs');
var http = require('http');
var httpProxy = require('http-proxy');
//
// Create a proxy server with custom application logic
//
var proxy = httpProxy.createProxyServer({});
//
@alessioalex
alessioalex / exotics.md
Last active August 29, 2015 14:19
Destiny exotic weapons checklist (pre-HoW)
@alessioalex
alessioalex / reddit.js
Created May 8, 2015 09:04
reddit cli node app
"use strict";
var growl = require('growl');
var request = require('request');
var argv = require('minimist')(process.argv.slice(2));
var JSONStream = require('JSONStream');
var assert = require('assert');
var through = require('through');
var ms = require('ms');
var chalk = require('chalk');
@alessioalex
alessioalex / zombies.js
Created May 18, 2015 09:39
zombie processes nodejs
// http://stackoverflow.com/questions/12871740/how-to-detach-spawned-child-process-in-a-node-js-script
// https://nodejs.org/api/child_process.html#child_process_options_detached
// var fs = require('fs');
// var out = fs.openSync('./out.log', 'a');
// var err = fs.openSync('./out.log', 'a');
var cp = require('child_process');
// var child = cp.spawn('node', ['zombie.js'], { detached: true, stdio: [ 'ignore', out, err ] });
var child = cp.spawn('node', ['zombie.js'], { detached: true, stdio: [ 'ignore' /* stdin */, 'ignore' /* stdout */, 'ignore' /* stderr */ ] });
$ cat test.js
function foo () { while (true) { } }
function bar () { return foo(); }
bar();
$ node test.js &
$ gdb attach $(pidof node)
0x00000bf778c63d5f in ?? ()
(gdb) b v8::internal::Runtime_StackGuard
Breakpoint 1 at 0x84a1f0
(gdb) print 'v8::V8::TerminateExecution'(0)