Skip to content

Instantly share code, notes, and snippets.

View groundwater's full-sized avatar
:electron:
Performing Alchemy

Groundwater groundwater

:electron:
Performing Alchemy
View GitHub Profile
@groundwater
groundwater / Application.scala
Created August 24, 2012 20:46
Action that parses protocol buffers
object Put extends Controller {
def index = DecodeProtobuf(classOf[MyProtobuf]) { stack :MyProtobuf =>
Action {
// do something with stack
}
}
}
@groundwater
groundwater / gist:3457225
Created August 24, 2012 23:33
Today's Record Stack Trace
java.io.FilterInputStream.read(FilterInputStream.java:116)
java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:221)
scalax.io.ResourceAdapting$ReadableChannelAdapter.read(ResourceAdapting.scala:75)
scalax.io.support.FileUtils$.copy(FileUtils.scala:130)
scalax.io.traversable.Sliceable.toArray(Sliceable.scala:75)
scalax.io.traversable.ByteResourceTraversable$$anonfun$toArray$2.apply(ByteResourceTraversable.scala:50)
scalax.io.traversable.ByteResourceTraversable$$anonfun$toArray$2.apply(ByteResourceTraversable.scala:50)
scalax.io.CloseableIterator$.withIterator(CloseableIterator.scala:124)
scalax.io.traversable.ByteResourceTraversable.toArray(ByteResourceTraversable.scala:50)
scalax.io.Input$class.byteArray(Input.scala:81)
@groundwater
groundwater / Model.proto
Created August 27, 2012 08:29
Protobuf Schema Generator
message Client {
required string uuid = 5;
optional string accountid = 1;
optional string email = 2;
optional string status = 3;
optional AccessToken token = 4;
required int64 amount = 6;
}
everyauth.everymodule.submodule('c9')
.get('callbackPath',
'the url that c9 returns')
.step('findOrCreateUser')
.accepts('req res next')
.promises(null)
.callbackPath('/auth/c9')
.findOrCreateUser(function(req, res, next){
console.log("c9 Auth");
})
@groundwater
groundwater / client.js
Created October 27, 2012 21:24
ZeroMQ Async Weirdness
var zmq = require('zmq')
function sockit(name){
var sock = zmq.socket('req');
sock.connect('tcp://127.0.0.1:9000');
sock.on('message', function(res){
console.log("%s: %s",name,res.toString())
});
return sock;
}
@groundwater
groundwater / axon-bug.js
Created October 29, 2012 21:28
Message Buffering Bug
var axon = require('axon')
var PORT1 = 8900;
var PORT2 = 8901;
var push1 = axon.socket('push')
push1.bind(PORT1)
var push2 = axon.socket('push')
push2.bind(PORT2)
@groundwater
groundwater / keypress.js
Created October 30, 2012 03:08
Capture a Single Key Press Event
process.openStdin()
process.stdin.setRawMode(true)
process.stdin.on('data',function(key){
console.log(key.toString())
})
// you can omit DI for _light_ dependencies
var async = require('async');
module.exports.inject = function( dependencies ){
// no direct require of _heavy_ dependencies
var mysql = dependencies.mysql;
var redis = dependencies.redis;
// do whatever

A Typical Module Layout

package.json
  {
    "main": "index.js"
    ...
  }
index.js
  var lib = require('lib');
function Database(mysql,config){
this.mysql = mysql;
this.config = config;
// setup mysql connection based on config
}
Database.prototype.get = function(){
// return an open mysql handle