Skip to content

Instantly share code, notes, and snippets.

View akr4's full-sized avatar

UEDA Akira akr4

  • Tokyo, Japan
View GitHub Profile
@akr4
akr4 / gist:1297895
Created October 19, 2011 10:12 — forked from seratch/gist:1295847
#daimonscala 19-1 "JSON parser"
// obj ::= "{" [members] "}".
// arr ::= "[" [values] "]".
// value ::= obj | arr | stringLiteral | floatingPointNumber | "null" | "true" | "false".
// values ::= value { "," value }.
// members ::= member { "," member }.
// member ::= stringLiteral ":" value.
object Main {
import util.parsing.combinator._
@akr4
akr4 / gist:1297970
Created October 19, 2011 10:57 — forked from seratch/gist:1297691
#daimonscala 19-2 "Apache access_log(combined) parser"
object LogParser {
import java.net._
import org.joda.time.DateTime
import org.joda.time.format.DateTimeFormat
case class Access(
ipAddress: InetAddress,
ident: String,
user: String,
@akr4
akr4 / gist:1480650
Created December 15, 2011 10:32
netty WordCount Server https://gist.github.com/1477900 用の build.sbt
scalaVersion := "2.9.1"
resolvers ++= Seq(
"jboss.org" at "http://repository.jboss.org/nexus/content/groups/public/"
)
libraryDependencies ++= Seq(
"org.jboss.netty" % "netty" % "3.2.7.Final"
)
val model = new FileDataModel(new File("data/ml-100k/ua.base"))
lazy val slopeOne = new RecommenderBuilder {
def buildRecommender(model: DataModel) = new SlopeOneRecommender(model)
}
@akr4
akr4 / gist:1503641
Created December 20, 2011 22:39
ネストしたコレクション Stream[Iterator[_]] を 1 つの iterator で lazy に走査する
scala> val a = (1 to 100).grouped(10).map(_.iterator)
a: Iterator[Iterator[Int]] = non-empty iterator
scala> val b = Stream.continually{ print("#"); a.next }.take(10)
#b: scala.collection.immutable.Stream[Iterator[Int]] = Stream(non-empty iterator, ?)
scala> val c = b.iterator.flatten
c: Iterator[Int] = non-empty iterator
scala> c.foreach(print)
@akr4
akr4 / gist:1604256
Created January 13, 2012 02:15
Console StopWatch
while (true) {
readLine
println("start")
val start = System.currentTimeMillis
readLine
val end = System.currentTimeMillis
println("end")
println("%.1f".format( (end - start).toDouble / 1000))
}
@akr4
akr4 / gist:2136168
Created March 20, 2012 14:28
レーベンシュタイン距離を計算する
object Levenshtein {
def calc(a: String, b: String): Int = {
val d = Array.ofDim[Int](a.size + 1, b.size + 1)
// initialization
for (i <- 0 to a.size) d(i)(0) = i
for (j <- 0 to b.size) d(0)(j) = j
for (
i <- 1 to a.size;
@akr4
akr4 / gist:2279505
Created April 1, 2012 23:44
Scala + Rome で RSS 出力
package com.fourseasonszoo.niboshi
import com.sun.syndication.io._
import com.sun.syndication.feed.synd._
import scala.collection.JavaConverters._
import org.scala_tools.time.Imports._
import scalax.io._
import java.io.StringWriter
object Main extends App {
@akr4
akr4 / gist:2324183
Created April 7, 2012 00:11
カレントディレクトリ以下で mvn clean する
import scala.sys.process._
for (pom <- ("find . -name pom.xml" !!) split "\n") {
"mvn -f " + pom + " clean" run
}