seratch's weblog in Japanese

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

java.util.Date の ISO 8601 準拠な datetime 出力

http://stackoverflow.com/questions/2201925/converting-iso8601-compliant-string-to-java-util-date 何が問題かというと java.util.Date 型のオブジェクトを「yyyy-MM-dd'T'HH:mm:ssZ」で出力したものは「2010-01-01T12:00:00+01:00」ではなく「2010-01-0…

ScalikeJDBC の新しい DSL

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

Ninja デモアプリの maven archetype を試す #ninja_ja

スルーしていましたが Ninja 1.4 が 5/3 にリリースされていました。 今回のリリースから maven artchetype の提供が開始されています。 http://www.ninjaframework.org/documentation/getting_started.html 早速やってみました。 mvn archetype:generate -D…

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…

Play1 の後継? Ninja Web Framework #ninja_ja

Ninja web framework というのが、少し試したところ、なかなか好印象だったのでご紹介します。Play1 に強く影響されているフレームワークなのですが、このまま育っていけば Play1 の後継候補(or 超える)に十分なれると思いました。 http://www.ninjaframew…

Type Dynamic を type safe に扱う方法

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

Maven の dependency にもっと新しいバージョンが出ているか調べる

あまり新しいネタかどうかは考えず、こういう小ネタも書きとめていこうかと。 Maven プロジェクトの dependency の version は特にアクティブに開発されていないプロジェクトだと放置されがち(テストが充実してないと余計に)ですが、それ以上に「そもそも…

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

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

Jersey 1.x の Content-Type に charset を指定する

Jersey 1.x の話です(2.x はまだ出てないですが、この記事が古くなってしまうことも想定して)。 通常は「@Produces(MediaType.APPLICATION_JSON)」だけだと「;charset=UTF-8」のような文字コード指定はつかないのでちょっと不便です。「@Produces("applica…

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 とかでよいのではという感じになっていま…

Gistub を MOONGIFT さんに取り上げていただきました

この度、MOONGIFT さんに Gistub を取り上げていただき、多くの方に試していただく機会を得ることができました。 http://www.moongift.jp/2013/02/20130205/ https://github.com/seratch/gistub Gistub は私の勤務先の社内で使うためだけにつくったものだっ…

FasterCSV と Ruby 1.9

The Ruby Toolbox だと CSV パーサーの第一候補に「FasterCSV」がでてきますが https://www.ruby-toolbox.com/categories/CSV_Parsers http://fastercsv.rubyforge.org/ 実際使おうとすると NotImplementedError が発生します。 NotImplementedError: Please…

Jersey(JAX-RS)で JSON レスポンスのキー名を snake_case にする方法

もっといいやり方がありそうな気もしますが。 import org.codehaus.jackson.jaxrs.Annotations; import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.PropertyNami…

org.codehaus.plexus.util.Scanner がない問題の解決

Maven でこんなのが出たら・・ [INFO] Internal error in the plugin manager executing goal 'com.mysema.maven:apt-maven-plugin:1.0.4:process': Unable to load the mojo 'com.mysema.maven:apt-maven-plugin:1.0.4:process' in the plugin 'com.mysema.…

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…

第一回 JetBrainsユーザーグループ #jbugj に参加しました

火曜日に「第一回 JetBrainsユーザーグループ #jbugj」に参加しました。id:sue445 さんの発表にあった Command + Shift + A が便利すぎて足を向けて寝られません。 私自身と JetBrains の関わりは Java、Scala で IntelliJ IDEA Ruby で RubyMine という感じ…

どんな 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 当初は…

JAXB RI の NPE バグ回避に jaxb-impl 2.2.5 以上を使う

JDK 標準で使えて便利な JAXB ですが http://jaxb.java.net/guide/Which_JAXB_RI_is_included_in_which_JDK_.html こんなのを踏んでしまって途方にくれかけました。 java.lang.NullPointerException at com.sun.xml.internal.bind.v2.runtime.output.Encoded…

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 でさくっと整形するの…

Gistub という社内 gist をつくりました

gist はとても便利ですが、社内にもあるといいよねという話があって、とりあえず Heso を使っていたのですがhttps://github.com/lanius/hesoどうせならということで(?)空いた時間を見つけて自分でもつくってみました。simplecov でカバレッジ 100% 達成し…

JGit を Scala から使う

イマドキの現場で使えるJavaライブラリ事情 from takezoe こちらのスライドを読んでいて気になったので JGit でちょっとサンプルを書いてみました。http://www.eclipse.org/jgit/http://jgit.info/javadoc/何かいいアイデアが思いついたら JGit を使った何か…

Java のライブラリをいくつか公開しました

最近、仕事で書いた Java のライブラリをいくつか整理して GitHub で公開しましたので紹介します。 Method Cache Interceptor https://github.com/m3dev/method-cache-interceptorAOP でメソッドの戻り値をキャッシュして、次の呼び出しからはもしキャッシュ…

Dallish という memcached 用 Ruby ツール

Dallish という Ruby ライブラリを書きました。https://github.com/seratch/dallishこれは memcached のキーの一覧を取得したり、正規表現で絞り込んだり、正規表現で指定したキーのキャッシュを一括削除する、といったことができるものです。名前の由来とな…