Skip to content

Instantly share code, notes, and snippets.

View Improve Akka HTTP DSL with the help of

Akka HTTP DSL in continuation-passing style

Akka HTTP provides a powerful Scala DSL to create routes to handle HTTP requests. The DSL contains a set of Directives to extract information or manipulate requests or responses.

For example, the following cpsRoute accepts a GET request and extracts query parameters p1 and p2 with the help of get and parameters directive. If an HTTP client send a GET request to the URL /?p1=Hello&p2=World, it will receive the response of plain text Hello, World!.

import akka.http.scaladsl.server._, Directives._
def cpsRoute: Route = {
  get {
    parameters("p1", "p2") { (p1, p2) =>
Atry /
Last active Nov 13, 2017 — forked from TerrorJack/
trait CNNs
extends com.thoughtworks.deeplearning.plugins.INDArrayLayers
with com.thoughtworks.deeplearning.plugins.ImplicitsSingleton
with com.thoughtworks.deeplearning.plugins.Training
with com.thoughtworks.deeplearning.plugins.Operators {
import org.nd4j.linalg.api.ndarray.INDArray
import org.nd4j.linalg.convolution.Convolution
import org.nd4j.linalg.util.ArrayUtil
import org.nd4j.linalg.factory.Nd4j
import org.nd4j.linalg.api.ops.impl.transforms.IsMax
Atry /
Last active Jul 27, 2017 — forked from TerrorJack/
trait L2Regularization extends com.thoughtworks.deeplearning.plugins.INDArrayWeights {
import org.nd4j.linalg.api.ndarray.INDArray
val l2Regularization: Double
trait INDArrayOptimizerApi extends super.INDArrayOptimizerApi {
this: INDArrayOptimizer =>
abstract override def delta: INDArray = {
import org.nd4s.Implicits._ + * l2Regularization
Atry /
Last active Jul 31, 2017 — forked from TerrorJack/
trait L1Regularization extends INDArrayWeights {
val l1Regularization: Double
trait INDArrayOptimizerApi extends super.INDArrayOptimizerApi {
this: INDArrayOptimizer =>
abstract override def delta: INDArray = {
import org.nd4s.Implicits._
import org.nd4j.linalg.ops.transforms.Transforms + Transforms.sign( * l1Regularization
Atry / HListWitness.scala
Created Mar 3, 2017
A universal type class that includes all shapeless.HList operations
View HListWitness.scala
import shapeless._
import shapeless.ops.hlist.ZipWithIndex.Helper
import shapeless.poly._
import shapeless.ops.hlist.{
Atry / Output
Created Oct 17, 2016 — forked from fiadliel/Output
Example for sbt-api-mappings bug
View Output
$ sbt doc
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1G; support was removed in 8.0
[info] Loading global plugins from /home/xxx/.sbt/0.13/plugins
[info] Loading project definition from /home/xxx/sbt_api_mappings/project
[info] Set current project to sbt_api_mappings (in build file:/home/xxx/sbt_api_mappings/)
scala.MatchError: scala-compiler-2.12.0-RC1.jar (of class java.lang.String)
at com.thoughtworks.sbtApiMappings.ApiMappings$$anonfun$projectSettings$3$$anonfun$apply$2.apply(ApiMappings.scala:41)
at com.thoughtworks.sbtApiMappings.ApiMappings$$anonfun$projectSettings$3$$anonfun$apply$2.apply(ApiMappings.scala:39)
at scala.collection.TraversableLike$WithFilter$$anonfun$map$2.apply(TraversableLike.scala:722)
at scala.collection.immutable.List.foreach(List.scala:318)
View Benchmark for List.reverseIterator
scala> def test(size: Int, iterations: Int): Unit = {
| println(s"size of the list: $size")
| println(s"number of iterations: $iterations")
| val list = (0 until size).toList
| @volatile var dontOptimizeMe: Any = 0
| def bufferReverseIterator[A](list: List[A]) = {
| list.toBuffer.reverseIterator
| }
| def arrayReverseIterator[A](list: List[A]) = {
| val array = new Array[Any](list.size)
View AkkaHttpCorsSupport.scala
import akka.http.scaladsl.model.HttpHeader
import akka.http.scaladsl.model.HttpMethods._
import akka.http.scaladsl.model.HttpResponse
import akka.http.scaladsl.model.headers.`Access-Control-Allow-Credentials`
import akka.http.scaladsl.model.headers.`Access-Control-Allow-Methods`
import akka.http.scaladsl.model.headers.`Access-Control-Allow-Origin`
import akka.http.scaladsl.model.headers.Origin
import akka.http.scaladsl.server.Directive0
import akka.http.scaladsl.server.Directives._
import akka.http.scaladsl.server.MethodRejection
Atry / RDDasMonadPlus.scala
Created Apr 6, 2016 — forked from suhailshergill/RDDasMonadPlus.scala
having monad instances for RDD like things
View RDDasMonadPlus.scala
object RDDasMonadPlus {
import org.apache.spark.{ SparkContext }
import org.apache.spark.rdd.RDD
import scalaz._
import Scalaz._
import scala.reflect.ClassTag
// RDDMPlus is the type for which we will define the Monad instance. it can be
// constructed from an RDD using the RDDClassTag constructor. this
// implementation is based on insights from
View Zhihu37118044.scala
object Zhihu37118044 {
def printDeep(vector: IndexedSeq[_]) {
import scalaz.std.indexedSeq._
import scalaz.syntax.traverse._
((0 until 100):IxSq[Int]).foldLeftM[IxSq, Any](vector) {
case (vector: IxSq[Any], _) =>
case (value: Any , _) =>
You can’t perform that action at this time.