読者です 読者をやめる 読者になる 読者になる

seratch's weblog in Japanese

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

Skinny Framework Getting Started 日本語版

この記事は Scala福岡2016 - connpass でのハンズオン向けの入門記事です。 JDK (Java SE Development Kit) インストール http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Oracle 社の Web サイトにアクセスして、Lic…

Skinny Meetup Tokyo 2 を開催しました #skinnyjp

Skinny Framework 2.0 をリリースして一ヶ月弱、@yusuke さんのご厚意により、東池袋のサムライズムのオフィスをお借りして Skinny Meetup Tokyo の第 2 回を開催させていただきました。 skinnyjp.doorkeeper.jp 当日使ったスライドはこちら。 Skinny Meetup…

ScalikeJDBC / Skinny Framework グッズ 2015 春モデル

SUZURI 最高 去年から GMO ペパボさんの suzuri.jp を利用して Skinny Framework のロゴをプリントしたマグカップを販売しています。 !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id…

Future についての私見

Scala - DBから単一SELECTする関数の型をFuture[何]にすれば良いのか悩む - Qiitaqiita.com この記事を読んで、記事の本筋からはそれますが、前から思っていたことをつぶやいたのでまとめておきます。 前後関係がある Future 処理を一つの処理として抽出すれ…

Java を Scala の中で使うこと

ScalikeJDBC は手軽なはず ScalaでORマッパーというとSlickやScalikeJDBC等色々あるが、ほんとにちょっとしたツールを作りたいだけならばもっと手軽にやりたいと思うはず。 ScalaでDBを使った小物ツールをサクッと作れるJDBI - 気まぐれラボラトリィ 手軽で…

Anorm についてのふりかえり

Twitter 上でのやりとりを読んでいて、Anorm は 2.4 から Play Framework 本体からは分離されたとはいえ Play チームがメンテし続けるであろうライブラリであることには変わりないので、機能の比較以前にそういったバックアップ体制を重視するなら Anorm を…

specs2 で unresolved dependency: org.scalaz.stream#scalaz-stream_2.11;0.5a: not found

こんな感じのエラーになってググってここにたどり着いたでしょうか? [info] Resolving org.scalaz.stream#scalaz-stream_2.11;0.5a ... [warn] module not found: org.scalaz.stream#scalaz-stream_2.11;0.5a [warn] ==== local: tried [warn] /Users/k-ser…

Scalate の公式サイトが GH pages に移行

Scala の老舗テンプレートエンジンで私自身 Skinny Framework のコアなコンポーネントとして利用している Scalate のウェブサイト http://scalate.fusesource.org これが閉じることになったらしく GitHub pages に移行しました。今日になってアクセスしてみ…

ScalaMatsuri ふりかえり(今更)

何となく ScalaMatsuri のふりかえりでもしてみようかという気分になりました。自分の中での整理という感じなので、あまり面白みはないかもしれません。 Scala と私 というところで見直してみたけど、私の Scala への関わり方は以下のスライドに全てあらわれ…

Scala DB ライブラリ事情(2014/06 版)

最初に調べてから一年経ったので、また GitHub スター数の推移を見てみました*1。というか、こういうの自動化するサービスがあるといい気がしてきたけど。。 DB ライブラリ 順位 名前 2013/06 2013/07 2013/08 2013/09 2013/10 2014/06 総増減 1 Slick 613 6…

JJUG CCC 2014 Spring で登壇しました #jjug_ccc

JJUG CCC 2014 Spring – R2-4 Skinny Framework で始める Scala http://www.java-users.jp/?page_id=1048#R2-4 プレゼン資料 [Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24 from Kazuhiro Sera 感想など 運営の皆様ありがとうございました…

Skinny Framework 1.0.0-RC1 をリリース

English? This is an article for Japanese developers. English article is here: http://blog.seratch.net/post/77537302500/try-skinny-framework-1-0-0-rc1 Release Candidate 1 Skinny Framework 1.0.0-RC1 をリリースしました。基本的にはこれからは大…

NHK 番組表 API の Scala クライアント

http://api-portal.nhk.or.jp/ja 正式な開始は 1/27 みたいだけど、API キーも発行できるみたいだし、ひまつぶしに Scala クライアントを書いてみました。 実装は・・カッとなってやった感満載なので、気になる人は pull request とかいただければうれしいで…

Play ドキュメントを Skinny で書くと - The template engine

これは Play framework 2.x Scala Advent Calendar 2013 の 18 日目です。 http://www.adventar.org/calendars/114 なお、この記事で触れる Play は 2.2.1、Skinny は 0.9.20 です。両者とも最新バージョンでは API や仕様が変更になっている場合があります…

Play ドキュメントを Skinny で書くと - Manipulating Results, Session and Flash scopes, Content negotiation

これは Play framework 2.x Scala Advent Calendar 2013 の 13 日目です。 http://www.adventar.org/calendars/114 なお、この記事で触れる Play は 2.2.1、Skinny は 0.9.20 です。両者とも最新バージョンでは API や仕様が変更になっている場合があります…

Play ドキュメントを Skinny で書くと - HTTP routing

これは Play framework 2.x Scala Advent Calendar 2013 の 11 日目です。 http://www.adventar.org/calendars/114 毎日こんな感じになりますけど、本当にそれでいいんでしょうか? なお、この記事で触れる Play は 2.2.1、Skinny は 0.9.20 です。両者とも…

Play ドキュメントを Skinny で書くと - Actions, Controllers and Results

これは Play framework 2.x Scala Advent Calendar 2013 の 10 日目です。 http://www.adventar.org/calendars/114 ご存知の方もいらっしゃるかと思いますが、私は Skinny Framework というのをつくっています。これは Servlet ベースのフルスタックな Web …

3 分でできる Play2 で Skinny ORM を使う手順 #play_ja

これは Play framework 2.x Scala Advent Calendar 2013 の 8 日目です。 http://www.adventar.org/calendars/114 ご存知の方もいるかと思いますが、私は Skinny Framework というフレームワークをつくっています。これのコンポーネントは基本的に Skinny Fr…

Typesafe Activator について #scalajp #play_ja

Advent Calendar! この記事は Play framework 2.x Scala Advent Calendar 2013 の 4 日目です。 http://www.adventar.org/calendars/114 Activator については前に書いたことがある 7 月に Typesafe Activator のテンプレートをつくってみたというブログ記事…

怖い Scala で LT しました #fud_scala

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

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…

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

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

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 なのに盛り過ぎだったのでか…

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 #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 の 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 については最近だとこちらの記事などが参考になります。…