Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am bka9 on github.
  • I am bka9 (https://keybase.io/bka9) on keybase.
  • I have a public key ASBtAdWIgnmVjYDJFJQ9FxHha_Ydsv8uv6dw-qUf1esSbAo

To claim this, I am signing this object:

def f() = Future{
sleep(2000)
println "Calling future."
"Hello World!"
}
def time[A](title: String)(fut: => Future[A])(implicit context: ExecutionContext):Future[A] = {
val timer = System.currentTimeMillis()
fut.onComplete(_ =>
println(s"""${title} took: ${System.currentTimeMillis-timer} ms to complete.""")
@bka9
bka9 / fig.yml
Created November 16, 2014 23:29
Fig Configuration
web:
build: .
command: activator run
ports:
- "9000:9000"
- "3000:3000"
volumes:
- .:/code
links:
- mongo
@bka9
bka9 / Dockerfile
Last active August 29, 2015 14:09
Playframework Dockerfile
FROM ingensi/play-framework:2.3.4
ADD . /repo
WORKDIR /repo
EXPOSE 9000
CMD ["activator", "~run"]
def countOnPage(urls: List(String), search: String) = {
val futureSeq = Future.sequence(urls.map{ url =>
val fStrings : Future[Int] = countOnPage(url,search)
fStrings
})
fStrings.map{ counts =>
counts.foldLeft(0)((total,num) => total + num)
}.recover{
case _ => 0
}
def countOnPage(urls: List(String), search: String) = {
var count = 0
urls.map{ url =>
val fStrings : Future[Int] = countOnPage(url,search)
fStrings.map{ num =>
count = count + num;
}
}
count
@bka9
bka9 / futureNames.scala
Last active August 29, 2015 14:08
Using futures to count children with name
case class Node(name: String, children: List[Node])
def count(node: Node, name: String) = {
if(node.children == null && node.name == name) future{1}
else if(node.children == null) future{0}
else if(node.name == name{
future{
1 + node.children.foldLeft(0)((total,child) => total + count(child,name))
}
}
@bka9
bka9 / countChildren.scala
Last active August 29, 2015 14:08
Iterative approach to counting children with a given name.
case class Node(name: String, children: List[Node])
def count(node: Node, name: String) = {
if(node.children == null && node.name == name) 1
else if(node.children == null) 0
else if(node.name == name{
1 + node.children.foldLeft(0)((total,child) => total + count(child,name))
}
else{
0 + node.children.foldLeft(0)((total,child) => total + count(child,name))