Skip to content

Instantly share code, notes, and snippets.

Nadav Samet thesamet

Block or report user

Report or block thesamet

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View EnumEncoder.scala
case class DeserializeEnumExpression[T](child: Expression)(implicit clsTag: ClassTag[T]) extends UnaryExpression with NonSQLExpression {
override def nullable: Boolean = true
override protected def doGenCode(ctx: CodegenContext,
ev: ExprCode): ExprCode = {
val inputObject = child.genCode(ctx)
val javaType = ctx.javaType(dataType)
val code =
s"""
View scalapb.proto
syntax = "proto3";
package scalapb;
option java_package = "com.trueaccord.scalapb";
import "google/protobuf/descriptor.proto";
message ScalaPbOptions {
// If set then it overrides the java_package and package.
@thesamet
thesamet / ScalaPbSerializer.scala
Last active Aug 30, 2019
Akka serializer for ScalaPB messages
View ScalaPbSerializer.scala
package protoser
import java.util.concurrent.atomic.AtomicReference
import akka.actor.ExtendedActorSystem
import akka.serialization.BaseSerializer
import com.trueaccord.scalapb.GeneratedMessageCompanion
class ScalaPbSerializer(val system: ExtendedActorSystem) extends BaseSerializer {
private val classToCompanionMapRef = new AtomicReference[Map[Class[_], GeneratedMessageCompanion[_]]](Map.empty)
@thesamet
thesamet / lvm-raid-ephemeral.yaml
Last active Sep 26, 2016
Create raid0 LVM on EC2 ephemeral storage with Ansible.
View lvm-raid-ephemeral.yaml
---
# Create a RAID0 LVM through all ephemeral devices and mounts it.
- hosts: all
gather_facts: false
become: true
tasks:
- apt: name=lvm2 state=present
# On ubuntu, sometimes first ephemeral is already mounted in /mnt.
- mount: name=/mnt src=/dev/xvdb fstype=ext4 state=absent
@thesamet
thesamet / bay-scala-jobs
Last active Jun 29, 2016 — forked from ymasory/bay-scala-jobs
Companies hiring Scala developers in the Bay Area.
View bay-scala-jobs
Companies hiring Scala developers in the Bay Area.
Created in response to a thread on scala-base.
My favorites:
- CloudPhysics
- Wordnik
Unbiased list:
- 10Gen
- Audax Health
@thesamet
thesamet / ReverseProxy.scala
Created Nov 5, 2014
Reverse-proxy in Play!
View ReverseProxy.scala
def reverseProxy = Action.async(parse.raw) {
request: Request[RawBuffer] =>
// Create the request to the upstream server:
val proxyRequest =
WS.url("http://localhost:8887" + request.path)
.withFollowRedirects(false)
.withMethod(request.method)
.withVirtualHost("localhost:9000")
.withHeaders(flattenMultiMap(request.headers.toMap): _*)
.withQueryString(request.queryString.mapValues(_.head).toSeq: _*)
@thesamet
thesamet / gist:8104952
Created Dec 23, 2013
Angular directive that notifies when it detects element size change.
View gist:8104952
// Calls a function when a change in an element size is detected.
// Uses polling, since there is currently no way to detect resize
// events with CSS flow (without resorting to JQuery UI Resize)
.directive('taOnResize', function($interval) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var oldWidth = undefined;
var oldHeight = undefined;
var stop = $interval(function() {
@thesamet
thesamet / gist:7419702
Created Nov 11, 2013
Filter JS serialization
View gist:7419702
package controllers
import play.api.libs.json.Json
class Test {
case class Filter(id: Int, table: String, name: String, Type: String, structure: String)
implicit val filterWrites = Json.writes[Filter]
You can’t perform that action at this time.