Skip to content

Instantly share code, notes, and snippets.

View mccv's full-sized avatar

Mark McBride mccv

View GitHub Profile
val manager = new SimpleHttpConnectionManager(true)
val connectionParams = new HttpConnectionManagerParams()
val connectTimeoutMs = 500
val socketTimeoutMs = 15000
connectionParams.setConnectionTimeout(connectTimeoutMs)
connectionParams.setSoTimeout(socketTimeoutMs)
manager.setParams(connectionParams)
client = new HttpClient(manager)
@mccv
mccv / gist:972337
Created May 14, 2011 15:55
FinagleHands
import com.twitter.concurrent.{ChannelSource, Channel}
import com.twitter.util.Future
class ReliableChannel[A](f: => Channel[B]) extends ChannelSource[A] {
this.serialized {
val that = f
val observer = that.respond { msg =>
Future.join(this.send(msg))
}
that.closes ensure {
@mccv
mccv / CompileThrift.scala
Created June 14, 2011 00:13
SBT 0.10 thrift generation plugin
package com.twitter.sbt
import sbt._
import sbt.Keys._
import sbt.Project.Initialize
import sbt.Process._
import scala.collection.JavaConversions._
import java.io.File
object CompileThrift extends Plugin {
@mccv
mccv / gist:1259343
Created October 3, 2011 15:14
OAuth with finagle streaming
import java.net._
import java.util.UUID
import com.twitter.conversions.time._
import com.twitter.finagle.builder.ClientBuilder
import com.twitter.util._
import java.nio.charset.Charset
import org.jboss.netty.buffer.{ChannelBuffers, ChannelBuffer}
import org.jboss.netty.handler.codec.http._
import com.twitter.finagle.stream.Stream
@mccv
mccv / TestServer.java
Created November 30, 2011 19:45
TestServer.java
/**
* Autogenerated by Thrift
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
*/
package com.twitter.gizzard.testserver.thrift;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
@mccv
mccv / gist:1731910
Created February 3, 2012 19:28
So much matching win
[warn] /Users/mmcbride/projects/xsbt/main/Structure.scala:376: match is not exhaustive!
[warn] missing combination * KNil *
[warn] protected def convertK[M[_],R](f: (M[A],M[B]) => R) = { case a :^: b :^: KNil => f(a,b) }
[warn] ^
[warn] /Users/mmcbride/projects/xsbt/main/Structure.scala:383: match is not exhaustive!
[warn] missing combination * KNil * *
[warn] protected def convertK[M[_],R](f: Fun[M,R]) = { case a :^: b :^: c :^: KNil => f(a,b,c) }
[warn] ^
[warn] /Users/mmcbride/projects/xsbt/main/Structure.scala:390: match is not exhaustive!
@mccv
mccv / scor.html
Created April 24, 2012 20:28
Minimum Viable Futbol Score Widget
<html>
<body>
0-0
</body>
</html>
@mccv
mccv / stats.js
Created April 26, 2012 02:11
Minimum Viable Stats Package for Node
var stats = {
time : function(metric, f) {
f()
},
get_time_ms: function(metric) {
// it's async, so everything is fast
return 0
}
}
@mccv
mccv / gist:2856244
Created June 2, 2012 02:35
feedcat
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMNMMNNNNMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMNNNNNNMNMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNMMMMMNNNNNN
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMNMNMMMMMMMMMMMMNMMMMMMMMMMMMNMMMMMMNMMNMMMMMMMMMMMMMMMMMNMNMMMMMMMMMMMNNNNNNNMMMMMMNNNNNMMNNNNNNNNNNNNNNNNNNMMMMMNNNNNN
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMNNNNMMMMMMMMMMMNNNNNNNNNDDDDNNNNNNNMMMMMMNMMNMMMNMMMMMMMMNNNNNNMMMMMMMNNNNNNNNNNNNNNNNNNNDDDDNMMMMMNNNNNNN
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMNNNNMMMNMMMMMMMMMNNNNNNNNNNNNNNNNNNNMMMMNMNNNNMMNMMMMMMMMNNNNNNMMMMMNNNNNNNNNNNNNNNNNNNNDD8DNNMMMMMNNNNNNN
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMNMMMMMMMNNNNNNMMMMNMMMMMMMMNNNNNNNNNNNNNNNNNNMMMMMMMNNNNMMMMMMMMMMNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNND88DNMMMMMMNNNNNND
MMMMMMMMMMMMMMMMMMM
@mccv
mccv / gist:3251441
Created August 3, 2012 20:55
Reverse Lambda, because fuck the next guy to read this
scala> class Foo {
| def <=: (f: (Int) => Boolean) = f(1)
| }
defined class Foo
scala> val f = new Foo()
f: Foo = Foo@a06812d
scala> { x:Int => true } <=: f
res5: Boolean = true