- Sway (fantastic new fancy Thai place, my favorite place this year): https://swayaustin.com/
- Odd Duck (food truck turned nice restaurant): http://oddduckaustin.com/
- Lenoir: http://lenoirrestaurant.com/ (just do HH in their beautiful wine garden)
- NoVa (Rainey St): http://www.novaonrainey.com/
- Eden East (dinner in an urban garden): http://www.edeneastaustin.com/
- Second Bar and Kitchen (2nd Street): http://www.congressaustin.com/
- Foreign and Domestic: http://fndaustin.com/
- Uchi/Uchiko: http://www.uchirestaurants.com/
- Barley Swine: http://barleyswine.com/
- La BBQ (simply the best in Austin proper but out of a trailer): https://www.facebook.com/labbq78704
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Keybase proof | |
I hereby claim: | |
* I am caniszczyk on github. | |
* I am zx (https://keybase.io/zx) on keybase. | |
* I have a public key whose fingerprint is 24B2 D8E1 F36E 2EFC 7ACC FE3B E7FB 2DB9 DF71 84CD | |
To claim this, I am signing this object: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'csv' | |
csvs = (1..13).map{|i| CSV.open("data#{i}.csv", "w")} | |
CSV.foreach("datagrants.csv") do |row| | |
puts row # TODO remove | |
csvs.sample << row | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
There's a metro rail in Austin which is awesome but it doesn't go to many areas yet, they plan on extending the service soon: http://www.capmetro.org/metrorail/ | |
To get an idea of apt pricing, here are some that are being built or are built in decent locations that are a bit "fancier" | |
http://gables.com/parkplaza (used to live there, super fancy though and next to Whole Foods HQ) | |
http://www.coleapts.com/ (great location near Zilker, walkable to SoLa, Zilker Park and downtown) | |
http://gibsonflats.com/ (south lamar, close to zilker and new alamo draft house, newly built) | |
http://www.postproperties.com/community.aspx?community=247600 (fairly newly built) | |
http://www.amli.com/apartments/austin/downtown/austin/300 (older but cheap for its location) | |
http://www.elevenaustin.com/ (newly built on the east side) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
val timelineSvc = Thrift.newIface[TimelineService](...) // #1 | |
val tweetSvc = Thrift.newIface[TweetService](...) | |
val authSvc = Thrift.newIface[AuthService](...) | |
val authFilter = Filter.mk[Req, AuthReq, Res, Res] { (req, svc) => // #2 | |
authSvc.authenticate(req) flatMap svc(_) | |
} | |
val apiService = Service.mk[AuthReq, Res] { req => | |
timelineSvc(req.userId) flatMap {tl => |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ServerBridge[In, Out]( | |
serveTransport: Transport[In, Out] => Unit, | |
) extends SimpleChannelHandler { | |
override def channelOpen( | |
ctx: ChannelHandlerContext, | |
e: ChannelStateEvent | |
){ | |
val channel = e.getChannel | |
val transport = new ChannelTransport[In, Out](channel) // #1 | |
serveTransport(transport) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
case class Netty3Listener[In, Out]( | |
pipelineFactory: ChannelPipelineFactory, | |
channelFactory: ServerChannelFactory | |
bootstrapOptions: Map[String, Object], ... // stats/timeouts/ssl config | |
) extends Listener[In, Out] { | |
def newServerPipelineFactory( | |
statsReceiver: StatsReceiver, newBridge: () => ChannelHandler | |
) = new ChannelPipelineFactory { // #1 | |
def getPipeline() = { | |
val pipeline = pipelineFactory.getPipeline() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
case class Netty3Transporter[In, Out]( | |
pipelineFactory: ChannelPipelineFactory, | |
newChannel: ChannelPipeline => Channel = | |
Netty3Transporter.channelFactory.newChannel(_), | |
newTransport: Channel => Transport[In, Out] = | |
new ChannelTransport[In, Out](_), | |
// various timeout/ssl options | |
) extends ( | |
(SocketAddress, StatsReceiver) => Future[Transport[In, Out]] | |
){ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
object Netty3Transporter { | |
val channelFactory: ChannelFactory = | |
new NioClientSocketChannelFactory( | |
Executor, 1 /*# boss threads*/, WorkerPool, DefaultTimer | |
){ | |
// no-op; unreleasable | |
override def releaseExternalResources() = () | |
} #1 | |
val defaultChannelOptions: Map[String, Object] = Map( | |
"tcpNoDelay" -> java.lang.Boolean.TRUE, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private[netty3] class ChannelConnector[In, Out]( | |
newChannel: () => Channel, | |
newTransport: Channel => Transport[In, Out] | |
) extends (SocketAddress => Future[Transport[In, Out]]) { | |
def apply(addr: SocketAddress): Future[Transport[In, Out]] = { | |
require(addr != null) | |
val ch = try newChannel() catch { | |
case NonFatal(exc) => return Future.exception(exc) #1 | |
} | |
// Transport is now bound to the channel; this is done prior to |
NewerOlder