play-json で snake_case な json を camelCase な case class にマッピングする

play-json を使えば json を case class にマッピングすることは簡単にできますが、json のキーがそのまま case class のフィールドに対応するため、snake_case な json API を case class にマッピングするためには、case class のフィールドも snake_case …

PHP のトレイトに気をつける

PHP

普段 Scala でトレイトを使いまくってるけれども PHP にも 5.4 からトレイトが入った。 trait の良いところは多重継承のできない言語で多重継承っぽいことができることだ。 use, use とつけていけば、いくらでも追加できる。DRY に書けてよいことだ。 対して…

漏水工事した

9月、入院エンジョイしてたら漏水が発覚して引っ張りだされました。 自宅が漏水してるらしく一時外出…— Toshiyuki Takahashi (@tototoshi) September 9, 2014 うち(3階)からの漏水で2階の部屋の天井が落ち、1階の駐車場まで雨漏りしていました。 自分だけで…

Play 2.4 の Module の作り方と Plugin からの移行について

Play 2.4 では今までの Plugin の仕組みが deprecated となり、 新たに Module という仕組みが導入されています。 Module はこれまた新たに導入された Runtime Dependency Injection の上に乗っかっています。 Play では Guice をデフォルトの DI 実装として…

sbt でファイル変更をフックしてコンソールをクリアしつつコンパイルする

Scala Advent Calendar 2014 の 12 日目です。 sbt で ~compile でファイル変更をフックしてコンパイルは皆さんよくやってると思いますが、 ~ ;eval "\u001B[2J\u001B[0\u003B0H" ;compile とにするとコンソールをクリアしつつコンパイル続行するのでちょっ…

Heroku で JDK のバージョンを指定する

Heroku でサポートされている JDK は 1.6, 1.7, 1.8 です。 今ではデフォルトは 1.8 ですが、古いアプリではどうやらそのまま 1.6 が使われているようです。 JDK のバージョンを指定したいときには system.properties というファイルを使います。 java.runti…

scala-csv 1.1.0 をリリースしました

https://github.com/tototoshi/scala-csv scala-csv 1.0.0 ではパーサーをパーサーコンビネータで実装していましたが、巨大なファイルをパースしたときにパフォーマンスで問題があったので、パーサーコンビネータをやめて var をふんだんに使った実装に書き…

Play で Scalate を使う

play-scalate っていう名前のプラグインはいろんな人が書き散らかしてて github 検索するとボロボロ出てくるんですが、ついうっかり仲間に加わってしまいました。 https://github.com/tototoshi/play-scalate build.sbt に設定すれば libraryDependencies ++…

RFC 的には text/* のデフォルトエンコーディングは ISO-8859-1

以下のような、日本語のデータを text/csv という Content-Type で返す Play アプリケーションで、 GET /test controllers.Application.test package controllers import play.api._ import play.api.mvc._ import play.api.libs.iteratee.Enumerator import…

テンプレートエンジン Night で Scala のテンプレートエンジンの紹介をしました

テンプレートエンジンNight on Zusaar テンプレートエンジン Night という不穏なイベントで Twirl を中心に Scala のテンプレートエンジンの紹介をしました。 Scala を知らない or そんなにやってない人向けの発表です。 スライドにはあまり内容詰め込んでな…

Scala 2.11.3 が生まれる前に死んでしまった話

↓に関して、https://gitter.im/scalajp/public で盛り上がってた内容をまとめました。 Scala2.11.3がでたけど絶対使っちゃダメです - scalaとか・・・ なぜこんなことになってしまうのだろう(未調査) https://github.com/skinny-framework/skinny-framewor…

Slick でテーブル定義のコードを自動生成する

Slick 2系では experimental 扱いではありますが、コード生成の機能が含まれていて、 めんどうなテーブル定義のコードを自動生成することができます。ちょっとやってみましょう。 テスト用のテーブル、こんな感じです。 slickcodegenexample=# CREATE TABLE …

ScalaJP の Gitter がオープンしました

ScalaJP のメーリングリストでも流れていますが、 Gitter という Github と連携して使えるチャットサービスを利用して、Scala の日本語チャットルームができました。(kawachi さんが作ったのかな?)すでに 60 人くらい参加しているようです。 https://gitter.…

ScalaMatsuri の運営に参加した感想

ScalaMatsuri の運営やってみての感想を書いておきます。そろそろ振り返りのミーティングもあるし。 ScalaMatsuri は体調のせいでほぼ参加できなかったので感想ありません(悲)。 ScalaMatsuri の意義について 今年 400 人も集まってしまったのは、オダスキー…

退院しました

退院ヤッター! 普段あまり医療のお世話にならずニュースとかだけで医療に接していると、すごいなあ最近の医療は進歩しているなあと思うけれど、実際入院して見るとそうでもないですね。腸の状態とか内視鏡入れなくてもわかるようになってて欲しいとか思うけ…

入院しています

9/1から入院しています。 各方面ご迷惑をおかけしております。申し訳ありません。 ゴールデンウィークのころからお腹の調子が悪く、腹痛と下痢、血便で困っていました。近所の病院(代々木病院)に通っていたのですが、なかなか改善せず、代々木病院も全然話を…

YAPC 2日目に行ってきました

YAPC初めて行きました。 1日目も行きたかったんだけど、諸事情(2つ前のエントリ参照)により来週から入院することになってしまい、ドタバタしたため行けませんでした。2日目も午後から参加です。PHP のやつ聞きたかったけど残念。 一番良かったのは Github の…

「メンテナンス大変なのでサービス閉じたいです」

Web サービスの会社にはイケイケなサービスの陰に隠れて、かつてイケイケだったけど今はイケテナイサービス、とか、ぶっちゃけ最初っからあんまりやる気なかった☆サービス、これどこで拾ってきちゃったのサービス、などなど、惰性で続いちゃってるようなサー…

WEB+DB Press 82 に PHP の記事を書きました

PHP

WEB+DB PRESS Vol.82作者: 山口徹,Jxck,佐々木大輔,横路隆,加来純一,山本伶,大平武志,米川健一,坂本登史文,若原祥正,和久田龍,平栗遵宜,伊藤直也,佐藤太一,高橋俊幸,海野弘成,五嶋壮晃,佐藤歩,吉村総一郎,橋本翔,舘野祐一,中島聡,渡邊恵太,はまちや2,竹原,河…

Feedly と Github timeline を twitter に流すようにした

Feedly を Twitter に流す 昔は Google Reader があったころは RSS をチェックしていたんだけれど、Google Reader が終了して Feedly を使うようになってからは見ることがほとんどなくなった。別に Feedly が気に入らないのが理由ではなく、その頃にはもう T…

Python/Flask と Backbone.js で Markdown エディタを作った

Atom はまだいまいちだし、Sublime Text は使ってると金を要求してくるし、emacs はそろそろ引退かな。Markdown 書くのに Mou とかは便利だけど、長い文章を書いてるとだんだんもっさりしてくる。と、普段使いのテキストエディタをどれにすればいいかここの…

Scala.js が sbt プロジェクト以外でも使えるようになっていた

Scala.js 0.5.0 では standalone 版が配布されるようになりました。 http://www.scala-js.org/news/2014/06/13/announcing-scalajs-0.5.0/ これで sbt プロジェクトでなくても Scala.js が使えるようになりました。 以下の URL で配布されています。 http://…

PHP の file_get_contents は get どころか post も put も delete も upload もできる

PHP

stream_context_create と組み合わせて使います。 手元でてきとーに動かしてた REST API とかで試してます。 get 普通ですね。 array( 'method'=> 'POST', 'header'=> 'Content-type: application/json; ch…

Scala.js を情報商材風に説明する

天下一altJS武闘会 で Scala.js の紹介をしました。 Scala.js 楽しいよって言っても全く流行る気配ないので、 情報商材風のスライドを作ってみました。洗脳されちゃって下さい。 http://tototoshi.github.io/slides/tenka1altjs-scalajs/ fork元を明示したい…

Play 2.4 と Dependency Injection

Play 2.3 が出たばっかで 2.4 の話をします。 前置き: Scala での DI Scala では DI についてのベストプラクティスと言える方法はなく、まだ意見が分かれている状態です。大きく割ると DI コンテナなどを使った動的な DI と、cake pattern, implicit paramet…

middleman で簡単なドキュメントサイトを作る

play-flyway のドキュメントサイトを作るのに middleman を使った。そのメモ。 インストール $ gem install middleman 最低限のコマンド middleman init でひな形を作成。 $ middleman init website ... create website/.gitignore create website/config.rb…

play-flyway 1.1.0 をリリースしました

tototoshi/play-flyway Play 2.3 用に play-flyway 1.1.0 をリリースしました。 pull-req 下さった皆様ありがとうございました。 変更点 Play 2.3.0 対応 Scala 2.10, 2.11 でのクロスビルド Flyway のアップデート (2.3 -> 3.0) Delay initialization by fe…

Play 2.3 がリリースされたので変更点と試し方を説明します

http://www.playframework.com/documentation/2.3.x/Highlights23 https://groups.google.com/forum/#!msg/play-framework/bTvJbeR_zvU/J3reqk6Xo4AJ 変更点は以下の通り 新規プロジェクトを作るのに今までは play new コマンドを使っていたけれど Typesafe …

Play で Scala.js を使う

Play meetup では Play や Scala のフレームワークの歴史みたいな話をしていましたが、本当はこのネタで LT をするつもりでした。諸事情によりってやつです。 さて Play で Scala.js をサポートしようぜって話は少し前からありますが、今のところまだ進展は…

Play 2 meetup を開催しました & スライドまとめ

ドワンゴさんを会場としてお借りして Play meetup を行いました。ありがとうございました! http://connpass.com/event/6020/ 発表資料をTLから拾ってまとめましたのでどうぞ。 Play と Scala のこれまでとこれから/@tototoshi (開会挨拶的なもので特に面白…