Skip to content

Instantly share code, notes, and snippets.

View nfriedly's full-sized avatar
👾
Invading space

Nathan Friedly nfriedly

👾
Invading space
View GitHub Profile
@nfriedly
nfriedly / log-all-fs-writes.js
Last active August 29, 2015 14:26
Log all fs.write* operations with a stack trace in node.js
// Stick this in the top of your main app.js/server.js/whatever file.
// Any time one of the below fs.* methods are called anywher in the app or dependencies,
// this code will log the details including the method, arguments, and a stack trace.
// It will then complete the write as normal.
var fs = require('fs');
['write','writeSync','writeFile','writeFileSync', 'appendFile', 'appendFileSync','createWriteStream'].forEach(function(fn){
fs['real'+fn] = fs[fn];
fs[fn] = function() {
var e = new Error();
@nfriedly
nfriedly / html-iconv-stream.js
Created July 1, 2015 20:27
iconv html stream decoder (reads charset from <meta> tag, uses it to decode document to utf8)
// buffers a stream of html untill it sees a charset meta tag (or opening <?xml tag with an encoding)
// then it creates an iconv-lite decoder for the charset and sends all data (the buffer and any future data) through it, emiting node.js-friendly utf8
// if it cannot find a charset by the time the </head> tag is reached, it gives up and just calls .toString() on each chunk hoping that it's in a format that node.js can read
// based on iconv-lite's decodeStream
// todo: clean this up, add some tests, and stick it on npm
// == Decoder stream =======================================================
function HTMLDecodeStream(options) {
this.buff = new Buffer([]);
this.isBuffering = true;
@nfriedly
nfriedly / index.js
Created May 7, 2015 01:08
streaming opus decoder
var fs = require('fs');
var watson = require('watson-developer-cloud');
var ogg = require('ogg');
var opus = require('./opus_stream.js');
var wav = require('wav');
var Speaker = require('speaker');
var oggDecoder = new ogg.Decoder();
@nfriedly
nfriedly / log.txt
Created October 17, 2014 19:48
MiniCMS error
info: Welcome to DocPad v6.69.1 (local installation: c:\Users\IBM_ADMIN\watson-developer-cloud\node_modules\docpad)
notice: If everyone who saw this message donated $1/week, maintaining DocPad would become sustainable: http://docpad.org/donate
info: Contribute: http://docpad.org/docs/contribute
info: Plugins: eco, minicms, mongodb
info: Environment: development
info: Watching setup starting...
info: Watching setup
error: An error occured:
Error: The task [action runner ➞ watch] just completed, but it had already completed earlier, this is unexpected. State information is:
{ error:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<p>Goal: <img src="http://sl-interview.s3.amazonaws.com/goal.png" style="max-width: 100%" /> </p>
<div id="popup"></div>
@nfriedly
nfriedly / testcode.js
Created September 22, 2012 16:02
JSHint ignores the `indent:` option hwen it's passed in globally
// contrived example. This file uses 3 spaces for indentation
function doStuff() {
console.log("Stuff!");
}
@nfriedly
nfriedly / ddg-google-da.xml
Created May 6, 2012 20:31
DDGG: Duck Duck Go + Google Suggest in Danish
<?xml version="1.0"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Duck Duck Go + Google Suggest</ShortName>
<Description>Duck Duck Go + Google Suggest</Description>
<Image height="16" width="16" type="image/x-icon">http://duckduckgo.com/favicon.ico</Image>
<Url type="text/html" method="get" template="http://duckduckgo.com/?q={searchTerms}"/>
<Url type="application/x-suggestions+json" template="http://google.com/complete/search?output=firefox&amp;q={searchTerms}&amp;hl=da"/>
<Url rel="suggestions" type="application/x-suggestions+xml" template="http://google.com/complete/search?q={searchTerms}&amp;client=ie8&amp;mw={ie:maxWidth}&amp;sh={ie:sectionHeight}&amp;rh={ie:rowHeight}&amp;inputencoding={inputEncoding}&amp;outputencoding={outputEncoding}&amp;hl=da" />
</OpenSearchDescription>
@nfriedly
nfriedly / hack.sh
Created April 4, 2012 03:32 — forked from erikh/hack.sh
OSX For Hackers
#!/usr/bin/env sh
##
# This is script with usefull tips taken from:
# https://github.com/mathiasbynens/dotfiles/blob/master/.osx
#
# install it:
# curl -sL https://raw.github.com/gist/2108403/hack.sh | sh
#
@nfriedly
nfriedly / fb_graph_aip_results.js
Created January 19, 2012 19:51
FB Graph API: ?ids=username,pagename&fields=name,picture looses picture field for page
// If you ask for a username before a pagename in the ?ids= Graph API,
// it looses the picture field for all pages.
// A few examples:
// http://graph.facebook.com/?ids=nfriedly&fields=picture,name works correctly:
{
"nfriedly": {
"name": "Nathan Friedly",
"id": "215902661",
@nfriedly
nfriedly / all_fixed.js
Created January 10, 2012 22:26
FB long graph query fix
FB.ApiServer.flash = function(b, e, c, d, a){
if (!window.FB_OnXdHttpResult) window.FB_OnXdHttpResult = function(g, f) {
FB.ApiServer._callbacks[g](decodeURIComponent(f));
};
FB.Flash.onReady(function() {
if (b === 'graph') d.suppress_http_code = 1;
var h = FB.getDomain(b) + e,
f = FB.QS.encode(d);
if (c === 'get') {
if (h.length + f.length > 2000) {