seratch's weblog in Japanese

About Scala, Java and Ruby programming in Japaense. If you need English information, go to http://blog.seratch.net/

Scala

ScalaTest 1.9.1 の MockitoSugar は使うべきでない

Scala で直接 Mockito を使おうとしたこんなコードで import org.scalatest._ import mock.MockitoSugar import org.mockito.Mockito._ class SomeSpec extends FlatSpec with MockitoSugar { it should "judge a valid session" in { val req = mock[HttpSe…

ScalikeJDBC の SQL ログ出力

ScalikeJDBC には ActiveRecord のように実際に発行した SQL とその実行時間をログに出す、もしくはスロークエリだけを出す、といった機能があります。また、SQL を以下のように整形することもできます。 ScalikeJDBC を実際に試したことのない方のためにス…

ScalikeJDBC の新しい DSL

ScalikeJDBC に新しく SQL を組み立てるための DSL を追加しようとしています。次のリリースバージョンを 1.6.0 とし、scalikejdbc-interpolation でこの DSL が利用可能になる想定です。手前味噌ですが「なかなか便利なのでは?」と思っています。 (追記:…

ScalikeJDBC と SQL インジェクション

SQLInterpolation ScalikeJDBC の SQLInterpolation では以下のような形でクエリを書きます。 val input = "Chris" val (u, c) = (User.syntax("u"), Company.syntax("c")) val foundUser: Option[User] = sql""" select ${u.result.*}, ${c.result.*} from …

sbt-idea 1.2.0 はバグッてるから使うな

sbt-idea 1.2.0 はおかしなファイルを吐きます。IntelliJ IDEA で project ディレクトリしか表示されない状態になっていたら、これが原因である可能性が高いです。 解決方法としては 1.3.0 以上を使ってください。 addSbtPlugin("com.github.mpeltonen" % "s…

Type Dynamic を type safe に扱う方法

Type Dynamic とは? Scala 2.10 から Type Dynamic という動的なメソッド/フィールド呼び出し機能が追加されました*1。 http://docs.scala-lang.org/sips/pending/type-dynamic.html これは動的なのでコンパイルチェックの恩恵を受けることは出来ません。…

Scala REPL を提供するアプリケーション Scala Notebook

Scala Notebook というアプリがなかなか面白いです。 https://github.com/Bridgewater/scala-notebook The IPython Notebook http://ipython.org/notebook.html に触発されて作った Scala の REPL を提供する Web アプリケーションとのことです。サーバは un…

SQLSyntaxSupport による DRY な SQL ライフ

ScalikeJDBC Interpolation 1.4.7 から experimental 扱いで SQLSyntaxSupport という機能が追加されました。この記事ではこの機能の概要について紹介します。 https://github.com/seratch/scalikejdbc/tree/develop/scalikejdbc-interpolation SQLInterpola…

ScalikeJDBC での SQL デバッグログのフォーマット機能

ScalikeJDBC 1.4.7 をリリースしました。 http://notes.implicit.ly/post/44143927672/scalikejdbc-1-4-7 https://github.com/seratch/scalikejdbc 目玉となる SQLSyntaxSupport という機能を説明する記事を書くのは少し時間がかかるので、まずは小ネタから…

Java 8 で Scala のような何かを使う

Java 8 では JSR 335: Lambda Expressions が取り入れられます。 これを使うと Pure Java でありながら「どう見ても Scala」というコードが書けるようになります。 主に私がメンテナンスしている ScalaFlavor4J というライブラリがあります。 https://github…

LTSV ブームにのっかって Scala のパーサーを書きました

「Scala ならそれ parser combinator でできるよ」ということでパーサーを書きました。 https://github.com/seratch/ltsv4s もっと型にマッピングしたくなる気もしますが、目的は主にログのパースですし、まずは Map とかでよいのではという感じになっていま…

ScalikeJDBC にユニットテストサポートを追加

ScalikeJDBC Cookbook を書いていて、テスト毎に終わったら自動でロールバックという仕組みは標準で提供してもよいかなと感じたので、実装してリリースしました。別の jar になっているので test スコープで追加してご利用ください。 https://github.com/ser…

ScalikeJDBC Cookbook を Kindle ストアで販売開始

ScalikeJDBC Cookbook を Kindle ストアで販売開始しました。 ScalikeJDBC Cookbook 日本語版作者: 瀬良和弘出版社/メーカー: Wet-Print Publishing発売日: 2013/01/01メディア: Kindle版購入: 1人 クリック: 14回この商品を含むブログを見る 元ネタは GitHu…

どんな DB にも接続できる? dbconsole

dbconsole という新しいツールを公開しました。 これは DB 接続のための sbt console です。 https://github.com/seratch/scalikejdbc/tree/master/scalikejdbc-cli インストールは簡単です。Windows にはまだ対応していません。 (2012/12/12 追記) id:rab…

Typesafe Developer Contest にエントリしました

Typesafe Developer Contest にエントリしました。 http://typesafe.com/resources/developer-contest といってもシンプルな HTTP API サーバの実装と、そのベンチマーク結果だけなのですが。 https://github.com/seratch/typesafe-dev-contest-entry 当初は…

ScalikeJDBC 1.4.0 リリース

ScalikeJDBC 1.4.0 をリリースしました。 https://github.com/seratch/scalikejdbc/issues?milestone=14&state=closed http://notes.implicit.ly/post/35684464311/scalikejdbc-1-4-0 基本的に既存のコードの挙動を変えるものではありませんが WrappedResult…

Scala で XML を整形する

人間が読める状態でない XML を整形したいとき、整形してくれる Web サービスはたくさんあるものの、仕事で扱ってるデータなどであれば、そういうところに食わせるわけにはいきません。 こういうとき Scala の scala.xml.PrettyPrinter でさくっと整形するの…

第3回Playframework勉強会 #play_ja での LT

Play20 プラグイン、モジュールについてと ScalikeJDBC の紹介、 #akskscala の参加者募集について話しました。見ての通り、枚数大杉なのでとにかく 5 分で話すのに精一杯という感じで、かなり駆け足でしたが。 プラガブル Play20 Scala View more presentat…

英語ブログ

ちょっと前から英語でブログを書いています*1。http://blog.seratch.net/主に Scala の情報やつくっているもののリリース情報などを書いていくつもりです。興味を持っていただける方は Tumblr で follow したり RSS フィードをチェックいただければと思いま…

Generalized type constraints in ScalikeJDBC

ScalikeJDBC の SQL ビルダーを Generalized type constraints を使った実装に変更しました。1.3.0 としてリリースされています。 Generalized type constraints って? Generalized type constraints については最近だとこちらの記事などが参考になります。…

#akskscala で Effective Scala 読書会をやりました

#akskscala 38 で Effective Scala を読みました。http://atnd.org/events/29295以下はその時に使った要点を箇条書きにした資料です。 Learning from "Effective Scala" View more presentations from Kazuhiro Sera なかなか気づきが多く、勉強になりました…

scala-testgen を testgenerator に改名しました

scala-testgenというテスト自動生成ツールをつくりました http://d.hatena.ne.jp/seratch2/20111027/1319729947上記の scala-testgen ですが、この度「testgenerator」という名前に改名したものを 1.1.0 としてリリースしています。https://github.com/serat…

#finagle_hack で ZooKeeperServerSetCluster を使ったデモをつくりました

ZooKeeperServerSetCluster を使って Finagle サーバのクラスタをつくってみました。まずはデモをご覧ください。発表会のときに動画を用意しておけばよかったのですが、そこまで手が回りませんでした。 個々の Finagle サーバはそれぞれ単体のサーバとして立…

Yet Another DB Access Library for Scala

これは何? ScalikeJDBC は私が開発している Scala で書かれた DB アクセスライブラリです。最低限実現したいと思っていた機能は一通り実装し、実際に使いながらある程度の品質になったという感触を得たため、version 1.0.0 としてリリースしました。https:/…

ScalikeJDBC の mapper を自動生成する sbt プラグインをつくりました

私が開発している ScalikeJDBC は JDBC をラップしているだけのシンプルな DB アクセスライブラリです。https://github.com/seratch/scalikejdbcこういた類のものはその分融通は利くという利点がある反面、単純で決まりきった処理(PK検索やCRUD処理)にもそ…

ScalikeJDBC に新しい API を追加しました

ScalikeJDBC という Scala のシンプルな JDBC ラッパーを開発しているのですが、今回新しい API を追加してみました。https://github.com/seratch/scalikejdbc 経緯 元々の DBSession を使った API は、当時 Twitter の Querulous というライブラリが気に入…

#akskscala 36 は Play20 ハンズオンをやりました

全くたいした内容ではないですが、一応 Play20 はじめての方向けに簡単な説明をしました。http://www.slideshare.net/seratch/getting-started-with-play20 Getting started with Play20 View more presentations from Kazuhiro Sera 私も Anorm 以外の部分…

Mac での Play20 開発環境構築は brew install play だけ

書くまでもない感じですが、以下のように Homebrew だけですぐに play コマンドを使えるようになります。https://github.com/mxcl/homebrew/wiki/installation $ /usr/bin/ruby -e "$(/usr/bin/curl -fksSL https://raw.github.com/mxcl/homebrew/master/Lib…

conscript で入れた sbt が動かない問題の回避

まずお読みください conscript 0.3.4 (この記事時点での最新)までの問題で、次のリリース以降では修正済であることがわかりました。 回避方法 cs harrah/xsbt --branch v0.11.2上記のようにして cs で入れた sbt を起動すると Error during sbt execution:…

ScalikeJDBC と Anorm の連携

Scala で ScalikeJDBC という JDBC ラッパーを開発しています。http://ls.implicit.ly/seratch/scalikejdbchttp://github.com/seratch/scalikejdbcAnorm と連携はできるのですが、以下のようにしないといけないという問題があってイマイチでした。 import an…