seratch's weblog in Japanese

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

pvm の紹介とその背景について #play_ja

この記事は Play framework 2.x Java and 1.x Advent Calendar 2013 の 2 日目です。元々 12/3 の予定でしたが 12/2 が空いたままで存亡の危機だったので、一日スライドしました。 http://www.adventar.org/calendars/104 pvm とは 今回は pvm(Play Version…

怖い Scala で LT しました #fud_scala

10 月の怖くない Scala 勉強会に対応する形で 11/28 に「怖い Scala」というイベントが開催されました。主催の @yamashiro さん、会場提供いただいたグリー株式会社さん、どうもありがとうございました。 http://connpass.com/event/4112/ これはまさかりを…

Rails4 で response.headers['content-type']

最近 ruby-openid に付属している example の Rails3 アプリをベースに実装を始め、Rails4 にバージョンアップ、微妙な実装箇所を直したり、SReg ではなく AX に対応させるよう修正・・とやっているうちに気がつくとほぼ全部書き換えていた・・!というオチ…

Skinny Framework 導入

を gist に書きました。よかったらご覧ください。はてなブログには gist を埋め込める機能がありますが、コード例のところがきれいに表示できなかったのでリンクを貼るだけにしておきます。 https://gist.github.com/seratch/7382298#file-getting_started_j…

GitHub star 数で見る Scala DB アクセスライブラリ事情(2013/10 版)

定期ポストです。 DB ライブラリ 順位 名前 2013/06 2013/07 2013/08 2013/09 2013/10 総増減 1 Slick 613 638 (+25) 658 (+20) 692 (+34) 707 (+15) +94 2 Squeryl 322 329 (+7) 334 (+5) 338 (+4) 337 (-1) +15 3 postgresql-async 159 187 (+28) 213 (+26…

Rails4 で ERB テンプレートを Haml に移行

したので、手順をメモ。Rails4 固有のアレはなさそうですが Rails4 でやったよというくらいです。 既存の erb ファイルを html2haml で変換して、古い erb ファイルを全部削除。 gem install html2haml cd app/views find . -name '*erb' | xargs ruby -e 'A…

怖くない Scala 勉強会でめんどくさくない Scala について

怖くないScala勉強会 #kwkni_scala http://connpass.com/event/3420/ 怖くないというのは何となく初心者でも大丈夫、みたいな意味だったのかなぁと思いますが、それも多少は考慮はしつつ、前から話したかったことと自分がやっていることを紹介しました。 htt…

Doma + Play 1.2 の場合の DomaConfig

@gakuzzzz に教えていただいたのですが Play 1.2.x で Doma を使う時は Config クラスに Play1 のクラスローダを伝えるために #getClassHelper() を拡張する必要があるようです。これをやっていないと apt で生成した *Impl.java やら domain クラスが Class…

GitHub star 数で見る Scala DB アクセスライブラリ事情(2013/09 版)

定期ポストです。 DB ライブラリ 順位 名前 2013/06 2013/07 2013/08 2013/09 総増減 1 Slick 613 638 (+25) 658 (+20) 692 (+34) +79 2 Squeryl 322 329 (+7) 334 (+5) 338 (+4) +16 3 postgresql-async 159 187 (+28) 213 (+26) 227 (+14) +68 4 Querulous…

歌舞伎座.tech #1 で ScalikeJDBC-Async と Skinny について LT しました #kbkz_tech

ドワンゴさん主催の「歌舞伎座.tech#1」という勉強会で LT をしました。主催・運営いただいた皆様ありがとうございました。懇親会行きたかったですが、明日早いので自重しました。 http://connpass.com/event/3278/ 3 分間の LT なのに盛り過ぎだったのでか…

SQLite3 で適当に運用していた Rails アプリのデータを PostgreSQL に引っ越し

したのでメモ。 まず SQLite3 からデータを dump します。rails db とかで SQLite3 のインタラクティブシェルを起動してファイルに dump します。 sqlite> .output dump.sql sqlite> .dump sqlite> .q この dump.sql をそのまま psql で突っ込むことができれ…

第1回 ElasticSearch 勉強会に参加 #elasticsearchjp

@yusuke さんがブログを書いていたので、思い出したように書いてみます。 http://atnd.org/event/E0018616 主催していただいた @johtani さん、会場提供してくださったリクルート社に感謝します。@johtani さんとは懇親会で初めてお話しできてよかったです。…

aws と aws-sdk の conflict 問題

SimpleDB を ActiveRecord の model で簡単に扱うことを検討するために、以下の simple_record を試そうとしたのですが https://github.com/appoxy/simple_record establish_connection でいきなり以下のような NameError が出て「なんじゃこりゃ」状態。 Na…

GitHub star 数で見る Scala DB アクセスライブラリ事情(2013/08 版)

先月末と今月末で記録したものを公開します。Slick、postgresql-async あたりは増加傾向が顕著ですね。 順位 名前 2013/06 2013/07 2013/08 1 Slick 613 638 (+25) 658 (+20) 2 Squeryl 322 329 (+7) 334 (+5) 3 postgresql-async & mysql-async 159 187 (+2…

別ホストにそのまま redirect する Rack app

こんな config.ru を書いて rackup -D とかしておけばよいですね。 new_hostname = "yetanotherapp" run lambda { |env| request = Rack::Request.new(env) Rack::Response.new {|response| response.redirect("http://#{new_hostname}#{request.path}") } }

java.lang.Integer をもらって Option[Int] をつくるのは要注意

Java との架け橋的なものをつくると一度はハマるところですね。そういえばあまり Web 上で見かけない気がするので書いておきます。 scala> val i: java.lang.Integer = null i: java.lang.Integer = null scala> val opt: Option[Int] = Option(i) java.lang…

ScalikeJDBC で Redshift に SQL を投げる

Amazon Reshift は PostgreSQL JDBC Driver で接続が可能です。 http://docs.aws.amazon.com/redshift/latest/dg/c_redshift-postgres-jdbc.html ということは ScalikeJDBC を使ってクエリを投げられるということを意味します。 ということで実際にやってみ…

Rails 3.2.14 でなぜか rake assets:precompile で DB 接続するようになっていた

Rails 3.2.13 まではそんなことなかったのに 3.2.14 から rake assets:precompile で database.yml の設定に従って DB つなごうとするようになってるんだけど・・— Kazuhiro Sera (@seratch) August 22, 2013 経緯など調べてないですが、挙動としては config…

CORS に対応させるための Servlet Filter

JSON を返す API サーバのレスポンスを CORS に対応させるための Servlet フィルターを書きました。まあ「書いた」というほどのものでもないのですが。 import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException…

初心者の方にこそすすめたい ScalikeJDBC #play_kb

#play_kb 「PlayFramework関西ビギナーズ 第2回 #play_kb」という Play Framework 初心者の方向けの勉強会が行われているようです。素晴らしいですね。 http://www.zusaar.com/event/891003 東京で Scala 界隈の方にお会いすると、名前くらいは知っていただ…

JDBC っぽいけど non-blocking な DB アクセス #scalajp

を実現するライブラリをつくり、週末に公開しました。 概要 ScalikeJDBC の extension という位置づけで ScalikeJDBC-Async という名前です。 https://github.com/seratch/scalikejdbc-async 内部では postgresql-async/mysql-async という Netty ベースの独…

Typesafe Activator のテンプレートをつくってみた

Typesafe Activator は 0.1.1 が出たときに触ってみて 0.2.6 でいうところの Activator UI が今よりも未熟な状態で存在しているだけだったので「自分には関係ないかな」と思っていましたが 0.2.6 を触ってみたところ、その意図がわかったので少し興味を持ち…

GitHub star 数で見る Scala DB アクセスライブラリ事情

以前、こちらでお話しした時のネタだったのですが http://playframeworkja.doorkeeper.jp/events/4219 GitHub、Google Code の star 数で Scala の DB アクセスライブラリのランキングをつくってみました。もちろんたくさん star がついているからといって必…

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 を実際に試したことのない方のためにス…

#RubyKaigi 2013 で LT をしました

RubyKaigi 2013 お疲れ様でした まずは運営関係者の皆様に感謝を述べたいと思います。素晴らしいカンファレンスだったと思います。本当にありがとうございました。そして、これまでの準備も含めて大変お疲れ様でした。 これだけの規模のイベントですから、当…

Jenkins で git flow スタイルの branch 名指定

前に調べたときに Twitter でつぶやいたのですが、自分でも忘れてしまうので転記。 Jenkins で git flow スタイルの branch 名を指定する場合は feature/hogehoge ではなく origin/feature/hogehoge でなければうまくいかない。develop とかは origin つけな…

#augj で Crucible 活用事例を紹介&会社間のエンジニア交流を増やしたい

「Atlassianユーザーグループ@株式会社ロフトワーク(渋谷) #augj」で所属する会社の Crucible 活用事例についてお話しさせていただきました。 http://www.zusaar.com/event/735003 全てのスライドと動画はこちらでご覧頂けます。 http://confluence.atlassia…

JSON をオフラインで手軽に prettify する方法

irb を起動して以下のようにするのが楽かな? require 'open-uri' require 'json' content = open("http://example.com").read puts JSON.pretty_generate(JSON.parse(content)) 追記: 言葉足らずでしたが、これはオフラインで整形したいというニーズがあっ…

jersey-json から jackson 2.2.1 に移行

Jersey 1.x で jersey-json を使って JSON 出力していたのを諸事情により Jackson 2.2.1 に移行してみました。さすがの Jackson ということで特にハマりポイントもなし。 まず pom.xml で依存を変更します。 <dependency> <groupId>com.f…</groupid></dependency>