Skip to content

Instantly share code, notes, and snippets.

View davisford's full-sized avatar

Davis Ford davisford

View GitHub Profile
@davisford
davisford / SocketStream.publish.spy.js
Created June 18, 2012 16:03
Using sinon.js to stub net.Socket and SocketStream pub/sub
// Example test that spies on SocketStream.publish.channel() calls
// Using Mocha to drive: http://visionmedia.github.com/mocha/
// sinon.js for stubs/mocks/spies: http://sinonjs.org
// should.js for assertions: https://github.com/visionmedia/should.js
var sinon = require('sinon')
, should = require('should')
, ss = require('socketstream').start();
describe("Spying on SocketStream for testing", function() {
@davisford
davisford / phantom-header.js
Created July 27, 2012 13:45
Phantom/Casper request/response JSON
// how to dump headers and what they look like
casper.on('resource.requested', function (request) {
console.log('Request ' + JSON.stringify(request, undefined, 4));
});
casper.on('resource.received', function (response) {
console.log('Receive ' + JSON.stringify(response, undefined, 4));
});
@davisford
davisford / launch_sublime_from_terminal.markdown
Created September 14, 2012 19:32 — forked from olivierlacan/launch_sublime_from_terminal.markdown
Launch Sublime Text 2 from the Mac OS X Terminal

Launch Sublime Text 2 from the Mac OS X Terminal

Sublime Text 2 ships with a CLI called subl (why not "sublime", go figure). This utility is hidden in the following folder (assuming you installed Sublime in /Applications like normal folk. If this following line opens Sublime Text for you, then bingo, you're ready.

open /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl

You can find more (official) details about subl here: http://www.sublimetext.com/docs/2/osx_command_line.html

Installation

@davisford
davisford / client.c
Created September 19, 2012 20:43
zeromq bad address
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <msgpack.h>
#include <zmq.h>
#include <string.h>
#include <unistd.h>
#include "zhelpers.h"
#include <czmq.h>
#include <errno.h>
@davisford
davisford / CMakeLists.txt
Created September 24, 2012 15:20
CMake static linker issue
project(foo)
SET(CMAKE_EXE_LINKER_FLAGS -static)
# add ZeroMQ library
add_library(imp_zeromq STATIC IMPORTED)
set_property(TARGET imp_zeromq PROPERTY
IMPORTED_LOCATION $ENV{ZEROMQ_HOME}/libzmq.a)
# add C bindings for ZeroMQ library
@davisford
davisford / CMakeLists.txt
Created September 26, 2012 17:16
Issue with CMake cross-compile and find_library()
# add ZeroMQ library
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
if (${CMAKE_CROSSCOMPILING})
# build with Arm / Pi-compiled libraries
find_library(ZEROMQ_LIB zmq ${PROJECT_SOURCE_DIR}/../lib/linux/pi)
find_library(CZMQ_LIB czmq ${PROJECT_SOURCE_DIR}/../lib/linux/pi)
else()
@davisford
davisford / script-log.js
Created September 30, 2012 22:35
phantom cookies puzzle
var page = require('webpage').create(),
fs = require('fs'),
requests = [], responses = [];
phantom.cookiesEnabled = true;
console.log('\n\n cookies we know about before page.open => \n\n' + JSON.stringify(phantom.cookies, null, 2));
// clear log from last time
if (fs.exists('requests.log')) {
fs.remove('requests.log');
}
@davisford
davisford / bcm2835-mock.c
Created October 15, 2012 19:34
mocking hardware with CppUMock
// mock implementation of bcm2835.c library
void bcm2835_spi_transfern(char *buf, uint32_t len)
{
mock_c()->actualCall("bcm2835_spi_transfern")->withParameterOfType("CharBuf", "buf", buf)->withIntParameters("len", len);
}
@davisford
davisford / main.c
Created November 8, 2012 23:06
signals
/**
* toggle flag that controls while loop in main()
*/
static void s_signal_handler (int sig) {
s_interrupted = 1;
}
/**
* trap on SIGINT | SIGTERM
@davisford
davisford / app.jade
Created November 20, 2012 18:54
Flexible Angular Routing + Twitter Bootstrap - composite Views
extends layout
block content
// navbar
div.navbar.navbar-fixed(ng-controller="NavCtrl")
div.navbar-inner
div.container
a.btn.btn-navbar(data-toggle="collapse", data-target=".nav-collapse")
span.icon-bar
a.brand(href="home")