謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

Scala

引数パースライブラリの SCOPT(3.6.0) 使ってみた

紹介するのはこれ github.com 依存はこれだけ libraryDependencies ++= Seq( "com.github.scopt" %% "scopt" % "3.6.0" ) で、引数を格納するクラスをこんな風に用意して import java.io.File case class Config(javaDocXml: File, junitResultDir: File) パ…

sbt を jar にしてみた

つっても何の事は無い。 github.com これ突っ込んだだけ。 project/plugins.sbt に下記を追加して addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.4") build.sbt でざっくり指定するだけ。 name := "Example" version := "1.0-SNAPSHOT" scalaVersio…

Playframework2.5 で Slack3 弄ってみる

まずはアプリケーション仕様 今回は特に何も考えず、Evolution で突っ込んだ文字列を画面に表示するだけ。 ジンプルなことは良いことだ。 教科書はこれ PlaySlick - 2.5.x Playframework プロジェクト作成 いつものこと activator new play-scala を選択する…

Playframework 2.5 で足りてなさそうなセキュリティヘッダ設定を追加する

セキュリティヘッダなんて、ヘッダに組み込むだけのものなので、ザクッと。 package filters import javax.inject.{Inject, Singleton} import akka.stream.Materializer import play.api.Configuration import play.api.mvc.{Filter, RequestHeader, Result…

Scala 関数型デザイン&プログラミング:Exercize3.16-3.23

Scala 関数型デザイン&プログラミング:Exercize3.2 - 3.13 - 謎言語使いの徒然 の続き。 Exercise 3.16 各要素に +1 したリストを返す関数を作れ。 なんか仕様的に map 関数に似てるなーと思った。 とりあえず フォイ def map[A, B](as: List[A], func: A =>…

Scala 関数型デザイン&プログラミング:Exercize3.14-15

相変わらず教科書はこれ。 Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/03/20メディア: 単行本…

Scala 関数型デザイン&プログラミング:Exercize3.2 - 3.13

前回 からの続き 教本はこれ Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/03/20メディア: 単行…

Scala 関数型デザイン&プログラミング:Exercize2.2 - 2.5

引き続き勉強がてら Exercise をやってみる。 Scala関数型デザイン&プログラミング―Scalazコントリビューターによる関数型徹底ガイド作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/04/30メディア: Kindle版…

Scala 関数型デザイン&プログラミング:Exercize2.1

真面目にやろうかと思った。 書籍はこれ Scala関数型デザイン&プログラミング―Scalazコントリビューターによる関数型徹底ガイド作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/04/30メディア: Kindle版この…

Play2.4 でネストしたJsonをバインドする

何で今更かというと、これつかえねーかなと思ったから。 最初は、Forms でのバインドをしようとしたのだけど、早速フォーラムが見つかりました。 キーワードは Play recursive form https://groups.google.com/forum/#!topic/play-framework/Ya1hPmR2QtY こ…

Java/Scala 比較。一定期間の曜日ごとの購買集計

単純なお題。 標準出力から、日数と、その日数に応じた日々の購買金額が入力されたとき、曜日ごとの集計額を計算しなさい。 ただし日数は 7 の倍数であることが保証され、曜日の先頭は日曜日である。 入力例: 14 日間を指定、各日付の購買数は、下記の通り…

Kuromoji 形態素解析を使ってみた

ぶっちゃけこれ kuromoji - japanese morphological analyzerwww.atilika.org Scala2.11.6 +SBT 0.13.x で使ってみたログ。 まずは build.sbt libraryDependencies ++= Seq( "org.atilika.kuromoji" % "kuromoji" % "0.7.7" ) にこんなん書いて、 import org…

play framework で react.js やろうとしてみたメモ

Playframework に ReactJS 突っ込もうかと思ったのだが、そもそもが JSX ベースの開発だ。 Playframework のデフォは Coffee しか対応していない。 他の人はどうしてるのかなぁと思って調べてみたが ssorallen/react-playgithub.com なんてのがあった。 中で…

フォームヘルパーをタグ調整する(Play 2.3.x)

何がしたかったかと言うと、Bootstrap の形状にうまく乗せたかった。 で、試行錯誤して自分で使っててまぁ違和感がなくなったのでメモ書き Playframework の Form については本家を参照すべし。 まず、Playframework の helper で吐き出すと、デフォルトは以…

K-平均法

データを分類する為のアルゴリズム。 データの分類にはデンドログラムというアルゴリズムが有名。 デンドログラムとは 何らかの評価関数で、全ての要素間の類似度を計算する。 最も類似していると判定される二つをまとめて、平均値を持った1要素とする 「全…

ランダムフォレストを実装する

ランダムフォレスト? 実装してみた感じ、教師ありデータから分類・学習し、その後に与えられた未知のデータに対して、識別・分類を行うアルゴリズム。 正答率は 7-8 割位が目安。余り複雑な学習はできない。他のアルゴリズムと組み合わせて使うといい感じに…

Xitrum web framework 弄ってみた

何か ScalaJP で Xitrum という単語があったので使ってみた。 まず新しいプロジェクトを作ろうか。 curl -L -o xitrum-new.zip https://github.com/xitrum-framework/xitrum-new/archive/master.zip 後は解凍して終わり。 インストールが必要ないのは楽でい…

Tanimoto関数でを勉強してみる

で、Tanimoto 関数は何かというと、T=Nc/(Na + Nb - Nc) で、ブックマークの情報で例にすると、A さんのお気に入りブックマーク数を Na、B さんのお気に入りブックマーク数を Nb、二人が共通してお気に入りに入れているブックマークを Nc としていると。 つ…

HikariCP + ScalaActiveRecord + MySQL5.1 をやってみた

何故にメモかというと、HikariCP がそもそもサンプル無さ過ぎて地獄を見たから。 まずは基本的な ScalaActiveRecord アプリを作る Play のサンプルアプリケーションをまずは作る。 play new HikariSample ウィザードくらいは任せた。 で、速攻、 ScalaActive…

可変長の追加フォームを作成する

可変長のフォームに対応する - 謎言語使いの徒然 の続き。 ついでだから動的にフォームを突っ込んでみる。 まずは build.sbt に下記を突っ込む。 coffeescriptOptions := Seq("bare") Coffee コードをコンパイルする際に、ラップをしない操作。 で、coffee …

Blog からいい感じに名詞を抽出したい

オライリー先生の課題で Blog ごとの比較とクラスタリングをするという例題があって、例題が英語だったので、日本語で対応しようとがんばってた。 日本語というだけで一気に難易度が上がる。 英語圏は空白でパースするだけで済む筈ですが、日本語だと形態素…

Playframework へのアクセス全部に共通のセキュリティヘッダを食わせる

まぁやってる事は ServletFilter とあんまり変わらない。 まずは適当にフィルタを作る。 コピペで安心はモットーです(2.2.1 で確認他のバージョンは知らん) package utils import play.api.mvc.{RequestHeader, Filter} import scala.concurrent.Future impo…

ログイン必須のアクション定義

ログインしてなかったら…という処理は皆書く筈。 Playframework 2.1 あたりから Security クラスが出来たらしい。 当然 2.2 でも使えるのでメモ。 package controllers.helpers import play.api.mvc._ import controllers.routes trait LoginController { se…

Scala_curl で HTTP クライアントを作ってみる

このエントリは Scala Advent Calendar の 22 日目になります。 事の始まりは Playframework の WS を使いにくいと感じたこと。 multipart/form-data in WS POST そもそも、WS で multipart を想定していないとのことでした。 そして、その下で動いてる Asyn…

Scala っぽいHTTPクライアント作ってみた

https://github.com/m3dev/curly これの作りがすごいなーと思ったけど、 微妙に対応しきれてない類のものがあったの 自分で作ろうか パケットを自力で書くとか正気の沙汰じゃない!? Java 対応捨てて Scala で ApacheCommons 使って書くか で作ったのがこれ…

Playframework2.2 でファイルアップロードとか

結構みんな探しそう、、、というかきっとアクセス増えそうというあざとい意図で書いてみる。 で、HTTPからファイルを送信するパターンは二つ。 純粋に HTTP Request body にバイナリ突っ込む方法これは単純ですよね。 // routes に追加 // POST /simple cont…

Play2.2.1のWSがもう少しどうにかならんかと思って解析してみた

経緯:試しに書いたらこんなことになり、フォーラムでは対応してないとか言ってて、じゃぁテストとかどうすんだろう?とか思ったらこの辺 で テストで「WS.url で multipart 飛ばせないの?」→「FakeRequest作りこんでテストして」とかそういう話があったの…

Scala2.10.3 から Redis 弄ってみた

scala-redis https://github.com/debasishg/scala-redis Maven のURLも無いし、ドキュメントはそのままビルドしてそうな感じだったので、clone して publpish-local して使った。 Apache2 ライセンスなので、ソース取り込むのが正解かもしれない。jar 配布っ…

ScalaCheck のジェネレータをムリクリ突っ込んでみた

まず、(ScalaCheck)http://www.scalacheck.org/というのがテストツールの一種。 ブラックボックステスト用のツールで、ランダムに値を生成して関数の挙動を見るというものだ。 sbt 定義は scalaVersion := "2.10.2" resolvers ++= Seq( "Sonatype OSS" at "h…

Salat でMongoDBのデータをCaseClassにマップする

Scala から MongoDB へアクセスする Casbah を真面目に使ってみる - 謎言語使いの徒然 の続き。 CaseClass にマップさえできればいい(極論それ以外はKVSだけあればどうとでもなる) Lift-mongodb にしようかと思ったら assembla がダウンしててドキュメントが…