Skip to content

Instantly share code, notes, and snippets.

View eplawless's full-sized avatar

Eric Lawless eplawless

View GitHub Profile
@eplawless
eplawless / selectListOfMostRecent.js
Last active August 29, 2015 14:02
selectListOfMostRecent
var Rx = require('rx');
(function(exports) {
function shiftLeft(list, value) {
var result = list.slice(1);
result.push(value);
return result;
}
@eplawless
eplawless / refcount.js
Created February 12, 2015 18:38
The semantic I expected from .publish().refCount()
var Rx = require('rx');
function RefCountObservable(source) {
this._source = source;
}
RefCountObservable.prototype = Object.create(Rx.Observable.prototype);
RefCountObservable.prototype._refCount = 0;
RefCountObservable.prototype._subject = null;
@eplawless
eplawless / Navigation.js
Last active August 29, 2015 14:23
react router injection
import getNavigation from './getNavigation';
import React from 'react';
export default getNavigation({ React });
@eplawless
eplawless / gist:1256645
Created October 1, 2011 20:51
0x stuff
template <typename uint_t>
uint_t
PointKDTreeImplImpl<uint_t>::partitionAroundMedian(
uint_t idxBegin,
uint_t idxEnd,
KDTreeAxis axis)
{
uint_t halfSize = (idxEnd - idxBegin) / 2;
uint_t idxMedian = idxBegin + halfSize;
@eplawless
eplawless / output.txt
Last active April 18, 2016 05:15
Node's TCP sockets hardcode SO_REUSEADDR by default and this cannot be changed
Using IPv4 unspecified address 0.0.0.0
Using IPv6 unspecified address ::
Interface lo0 has address ::1
Interface lo0 has address 127.0.0.1
Interface lo0 has address fe80::1%lo0
Interface en0 has address 192.168.1.7
Starting too many servers on port 4567...
Listening on 0.0.0.0 port 4567
Listening on :: port 4567
Listening on ::1 port 4567
@eplawless
eplawless / node-is-a-liar-snippet-1.js
Created April 18, 2016 05:46
Let's open up a TCP server on port 4000!
var net = require('net');
var server = net.createServer();
server.listen(4000, function() {
console.log('Listening on port 4000!');
});
server.on('error', function(error) {
console.error('Help!', error);
});
@eplawless
eplawless / node-is-a-liar-snippet-3.js
Created April 18, 2016 08:53
Get all local host addresses
var os = require('os');
function getLocalHosts() {
var hosts = ['0.0.0.0', '::'];
var interfaces = os.networkInterfaces();
Object.keys(interfaces).forEach(function(interfaceName) {
var interface = interfaces[interfaceName];
interface.forEach(function(info) {
var address = info.address;
// append the interface name onto link-local IPv6 addresses
[ '0.0.0.0',
'::',
'::1',
'127.0.0.1',
'fe80::1%lo0',
'192.168.1.7' ]
@eplawless
eplawless / node-is-a-liar-snippet-4.js
Last active April 18, 2016 22:00
Implementation of "get next available TCP port"
var net = require('net');
var os = require('os');
function getLocalHosts() {
var hosts = ['0.0.0.0', '::'];
var interfaces = os.networkInterfaces();
Object.keys(interfaces).forEach(function(interfaceName) {
var interface = interfaces[interfaceName];
interface.forEach(function(info) {
var address = info.address;
@eplawless
eplawless / enum-class-hack.cpp
Created October 19, 2018 15:52
Hack to get type-safe enum classes with implicit conversion to int.
#include <iostream>
#define ENUM_CLASS(Name, ...) \
struct Name { \
static int sCounter; \
int mValue; \
Name() : mValue(++Name::sCounter) {} \
operator int() { return mValue; } \
static Name __VA_ARGS__; \
}; \