謎言語使いの徒然

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

OSS

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…

Markdown で書くWiki、MDWiki

MDwiki 見たままだけど、HTML5だけで書くことができるWiki。 ただし、DBを持たないので動的書き換えはできません。同じディレクトリ配下に md ファイルを乗っけて、html ファイルをフロントエンドにすることでHTMLファイルとして表示するコンバーターみたい…

Xitrum web framework 弄ってみた

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

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

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

サーバに色々デプロイしようとしてハマった記録

Chef でローカル仮想マシン上に目的のサービスがデプロイできるようになったので、リモートサーバへのデプロイを実行してみた。 その時、かなり色々つまづいたのでメモ。 iptables は一時的でも切るしかない ssh ポート以外にも何かのポートを使っているらし…

Chef で CentOS に Playframework2.2.x アプリをデプロイする

CentOS5.10 で動作確認。多分 CentOS 6.x もそんな変わらない筈。 段階を踏もうか。 Play アプリをリリース用にコンパイルする Chef を使ってJavaを突っ込む Chef でデプロイ用 Cookbook を作って配置する 起動スクリプトを書いてデプロイする knife solo co…

CentOS5.10 の Vagrant box を作り直し

https://dl.dropboxusercontent.com/u/717203/centos5.10-final.box これ。 名称は変わってない。 キチンと halt とかその他が走るようになってる。 6/23 追記:メンテナンスだるいので削除しました

サービスデプロイのテスト環境を作るか

そろそろアプリをデプロイしようかと思ったのだけど、実はここで一つ問題が発生。 いや、問題と言うほどの問題ではないのかもしれないが、どうせ試行錯誤してセキュリティ的にアレな状態がそこそこ長く続きそうなので、仮想環境できちっと手段を確立してから…

wkhtmltopdf を使ってみる

何者かと言うと、これ。 wkhtmltopdf Webkit で指定したサイトをメモリ上でレンダリングして pdf とか画像に落とすライブラリ。 これを仮想マシンで構築した CentOS6 に突っ込んでみる。 マシンそのものは 6.5 x86_64 を指定。当然 64bit で、とりあえずは D…

google_diff_match_patch

Google 先生で採用している Diff ライブラリ。 https://code.google.com/p/google-diff-match-patch/ jar 配布なしで、ソースでの提供です。Apache2 ライセンスなので、安心して使えますね。 各種言語で可能な限り同じ使い勝手を想定しているのか、命名規則…

Thymeleaf をPlayframework2.2.Xで無理やり使ってみた。

Java のテンプレートエンジン - 謎言語使いの徒然 でさくっと見たテンプレートを、じゃぁPlayframeworkでどうやるんだろうと、ドキュメント眺めながらやってみた。 で、まずはファイルが何処に配置されてるのかを返すクラスを作成。 package utils import or…

Java のテンプレートエンジン

今日 4 年ぶりにSpringを眺めてたら便利そうなのを発見。 http://www.thymeleaf.org/ Spring4 から正式に連携するようになったテンプレートエンジン。Spring 3 でも連携できる。 HTML/XHTML/HTML5 に特化して作られており、タグに属性の形で埋め込みを指定す…

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 使って書くか で作ったのがこれ…

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 がダウンしててドキュメントが…

Scala から MongoDB へアクセスする Casbah を真面目に使ってみる

MongoDBをScalaで触る準備 - 謎言語使いの徒然 でScalaからMongoにアクセスする為のライブラリはインポートしてみたが、使ってなかったので、改めて使ってみる。 MongoDB のデータ構成 まずどんな階層構造でデータを保持してるのかを確認する。 Getting Star…

Ubuntu 13.10 に Riak を入れてScalaから操作してみる

ぶっちゃけ公式読みながらサンプル書いて、ソース読んで、必要以上に難しそうに書いてる箇所を簡略化しただけ。 Riak ほとんど純粋なKVSで、認証機構がないので、ほしければ自力でセキュリティを設定する必要がある。 まぁ IP Tables でいいんじゃないかと思…

Playframework2.2 から scala activerecord を使う

Scala ActiveRecord まずは build.sbt でプラグインを指定Playframework2.2 でまだフォームインテグレーションは試してないけど、O/R として使う分には問題なかったのでメモ。 libraryDependencies ++= Seq( "com.github.aselab" %% "scala-activerecord" % …

Pac4J をPlayframework2.2 に突っ込んでみて挫折(2013/11/01 時点で未対応)

Playframework2.2 になってから projects/Build.scala が抜けて、build.sbt に直接書くようになってるので注意。 っても、sbt 知ってればどうという事もない。 resolvers += "Sonatype snapshots repository" at "https://oss.sonatype.org/content/reposito…

Webjars が何気に便利だった件

公式サイトは http://www.webjars.org/ 何ができるかというと、様々な JavaScript ライブラリの css やら js やらを手動で assets とかに突っ込まなくても利用できるようにしてくれるライブラリ。 知った経緯は TypesafeActivatoer でPlayframeworkのサンプ…

AkkaのMailboxサイズを引っこ抜く

高スペックマシンで普通に余裕があるのは当たり前として、問題は AthronNEO なんてへちょいスペックではたして動くだろうか?(;´∀`) 常時起動できないと集計にならんし、かといって高スペマシンの常時稼働はお財布に厳しい。 仕方がないので10秒ごと位にキ…

ScalaActiveRecoard の 0.2.2 を弄る

ってもそんなに真面目にやる気ないですけどね。sbt の build.sbt に libraryDependencies ++= Seq( "org.scala-lang" % "scala-library" % "2.10.0" % "provided", "org.scala-lang" % "scala-compiler" % "2.10.0", "com.github.aselab" % "scala-activerec…

Twitter4J でざっくりデータを引っこ抜く

事前に https://dev.twitter.com/ でアカウント登録と、アプリケーション登録を済ませておくこと。 参考はこれ使うのはこれhttp://twitter4j.org/ja/index.htmlで、application.conf *1に twitter { consumerKey = "ZZZZZZZZZZZ...." consumerSecret = "AAAA…

Akka のClusterを調べてみる

前回写経して中身を確認してみたが、正直サンプル見たほうが理解が早かった。https://github.com/akka/akka/blob/master/akka-samples/akka-sample-cluster/src/main/scala/sample/cluster/simple/SimpleClusterApp.scala https://github.com/akka/akka/blob…

Akkaのrouterを調べる

とりあえず内容はこれhttp://doc.akka.io/docs/akka/2.2-M3/scala/routing.html A Router is an actor that receives messages and efficiently routes them to other actors, known as its routees. そのままですよね。Actorのインスタンスが複数ある時に、…

BlobをStream保存したくてHector(少なくとも0.8)になくて諦めた

Stream 形式でファイルの入出力できんものかなとか思って調べてみたhttp://grepcode.com/file/repo1.maven.org/maven2/me.prettyprint/hector-core/0.8.0-3/me/prettyprint/cassandra/io/ChunkOutputStream.java何かそれっぽいクラスを発見。けど何かByteArr…

Play2.0 で一部ハマったのでメモ

忘れると色々ヒーヒー言いそうなのでメモ WS.irl("http://localhost/sample/xxxx").withHeader("Content-Type" -> "text/plain").post(byteArray) でバイナリを自身のサービスにファイルを送りつけてもコントローラ側で val sendedBytes = sample.body.asRaw…

Cassandraを窓に突っ込んでみる

ということで、WindowsにCassandraを入れて使ってみる。 Cassandra というのは分散環境に強いBigTableデータベース。ノードを増やせばリニアに性能が上がるという速度・性能重視のDB。 引換に信頼性がトレードオフな状態になっている*1。トランザクションを…

PlayFramework からHectorライブラリ経由でCassandraへアクセスする。

設定自体は簡単なものだった。Build.scala に下記を記載する。 object ApplicationBuild extends Build { val appName = "cassandra-sample" val appVersion = "1.0-SNAPSHOT" val appDependencies = Seq( // Add your project dependencies here, "me.prett…