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 / mainIoTF.lua
Last active October 28, 2016 19:18
Connect ESP8266 to IBM IoT Foundation and publish data via MQTT (NodeMCU Firmware)
-- see https://developer.ibm.com/recipes/tutorials/connect-espressif-esp8266-to-ibm-iot-foundation/ for more information
orgID = "quickstart" -- IoT Foundation organization ID replace this with your own after creating an IoT service in bluemix
broker = "quickstart.messaging.internetofthings.ibmcloud.com" -- IP or hostname of Quickstart IoTF service
mqttPort = 1883 -- MQTT port (default 1883)
userID = "" -- optional. Set to "use-token-auth" for token auth
userPWD = "" -- optional. Put token here for token auth
macID= wifi.sta.getmac():gsub('-','') -- set this manually if needed. Just hex digits, no collons/spaces/dashes/etc.
clientID = "d:quickstart:esp8266:"..macID -- Device ID
count = 0 -- Test number of mqtt_do cycles
@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",