2013-01-01から1年間の記事一覧

ekmett と scalaz

ekmett 勉強会やろう(提案)2013-03-14 23:17:22 via Janettertwitter上でいろいろあってekmett 勉強会 開催決定! 「ekmett勉強会だがHaskell勉強会とは書いてない」「ekmettはScalazのコミッターである」「ekmettは、実はgithub上にScalaのリポジトリがい…

Play2.1.0 の models と controllers の package object がうざい問題

ちなみに、最新版では改善されてます。*1https://github.com/playframework/Play20/blob/2.1.0/framework/src/play/src/main/scala/play/api/models/package.scala *1: https://github.com/playframework/Play20/pull/735

sbt の Task で、メインの任意のメソッドを実行してその結果を取得する

だいぶニッチな需要な気がしますが、つまり メインのコードやライブラリに依存した処理なので、project/ 以下のScalaファイルに色々書くだけでは無理*1 sbtのデフォルトでは、(task経由で)mainメソッドを実行させることはできても、その結果を直接Scalaのオ…

Squerylの使用感とScala ActiveRecord

追記: 作者の方から、丁寧な回答をコメントでもらったので、ちゃんと読むといいよ! いくつかblogに書いたり、tweetしているように最近Squeryl使ってます。 そして、今日2013年3月2日Scala Conference in JapanでScala ActiveRecordの発表を聞いて来ましたht…

scala.PartialFunction condOpt を使おう

scalaz の |> みたいに、自身をpimpして、かつFunction1ではなくPartialFunction[A,B] を受け取って、Option[B]を返すものがほしい・・・2013-02-18 16:26:55 via web pimpするやつじゃないけど、標準であるじゃん URL URL2013-02-18 16:30:07 via webという…

sbtで同じライブラリの異なるversionが複数存在するのを検知する方法

sbt

sbtのversionは0.12.2です(0.12系なら同じだと思いますが) conflictWarning := ConflictWarning.strict("global")

SqeurylのKeyedEntityの変位指定とuncheckedVariance

SquerylのKeyedEntityhttps://github.com/max-l/Squeryl/blob/0.9.5-6/src/main/scala/org/squeryl/KeyedEntity.scala#L20-L61を継承して拡張しようとしたら問題にぶつかったので、考えたことをメモ。はっきりした結論はでてません。だれか教えてください。…

Scalaにおける括弧()と中括弧{}の違い (squerylでハマった備忘録)

主にSqueryl( version 0.9.5-6 )の例で話しますが、括弧の違いの話はSquerylに限らずScala一般的な話です。

Scalaでコンパイル時に正規表現をチェックする「マクロかつString Interpolation」

「マクロかつString Interpolation」って何言ってるかわからないですが、つまりそういうことです(どういうことだ)。String Interpolationの中で、マクロ呼べばできるんですね。*1 このblog post *1:構文木を自分で組み立てないといけなくなって、単なるマク…

Play2.1のfunctional packageのApplicativeを使う

Play2.1内部に、独自の Functor URL とか Applicative URL とか Monoid URL が追加されていて味わい深いですね・・・2012-11-18 01:16:51 via webというわけで、Play2.1から独自のFunctorとかApplicativeとかAlternative(ApplicativePlus)があるので簡単にOp…

Play2 の QueryStringBindable, PathBindable を使うべきとき

Play 2.x の QueryStringBindable, PathBindable について コメントした。それと、もっと細かい疑問というか反論(?)というかイマイチまだ懐疑的なところがあるので、あとでblogに書くか・・・ URL "Play 2.x の QueryStringBindable, PathBindable について"…

Scala2.10.0 の REPL で、呼べないはずの private なメソッドが呼べてしまう件

http://stackoverflow.com/questions/14831330Scala 開発してる中の人がひろってくれないかな・・・。 (bugだとしたら) issue は登録済みなのだろうか。2.10.1-RC1でも同じだった。

Play2.1.0のライブラリの依存関係のgraph

数日前にtweetしたけど、一応blogにも。http://xuwei-k.github.com/play2.1-RC4-dependency-graph.html追記2.0.4もつくったよ http://xuwei-k.github.com/play2.0.4-dependency-graph.html

sbt を使わずに、ivyのcacheのjarを使用して、ScalaのREPLを起動する

Scalaのディストリビューションの中に入っているシェルスクリプトの必要な部分をとりだして、ちょっと改造しただけ

Scala で出来るだけ短い構文で print デバックしたい

なんだかんだいって、printデバックって汎用的でいざという時につかえて便利なので(というかIDEのデバッガとかをscalaで使う気になれないので)普段からよくつかいます。 が、printlnって7文字ながい。(しかも括弧を付ける必要もある)

Play2.1.0で、異なるURLに対して同じメソッドを割り当てると、"unreachable code"というwarningが出る件

routesに

Play 2.1 のテスト中に、OutOfMemoryError などが出てテストが途中で止まる場合の対策

OutOfMemoryErrorでなくても、stacktraceにObjectOutputStreamがどうとか、java.net.SocketException: Socket closedとか、見慣れないよくわからないstacktrace出る場合もあります。かつ、テストが途中で止まっても、最終的な結果はsuccessと表示される場合…

publishされていないscalaのcompiler pluginをsbtから使う方法

普通Scalaのcompiler pluginを使う場合、リポジトリにpublishされていれば

最近のdispatchについての説明や、dispatch reboot の Scala 2.10対応について

Scala界隈でわりと有名(?)なdispatchというhttpクライアントライブラリがあります。 そして、現在通称dispatch-classicと、通称reboot(もしくは単にdispatchとも呼ぶ?)の2種類あります。

lift-json 2.5-M4 が、間違って specs2 に compile scope で依存してる件

追記 この問題が解決している新しいversionが出ているので、そちらを使いましょう

Haskell の partitionEithers を(汎用化したものを) Scala で

Haskell の partitionEithers っぽいものが欲しくなって、ググッたらこれ URL にたどり着いたけど、この議論の結論(現状のScalazに存在するのか?など含めて)がよくわからない・・・あとでゆっくり読むか・・・2013-01-28 16:09:29 via web結局現在のScalaz …

Scaladoc 生成時に、外部のScaladocへリンクをする

数年前からissueはあったようですが、ようやく2.10.0からできるようになりました。https://github.com/scala/scala/blob/v2.10.0/src/compiler/scala/tools/nsc/doc/Settings.scala#L197-L201たとえば、Scala本体のScaladocにリンクさせるには、*1 sbtだと以…

Play2 本体の build 時間を短縮する方法

Play2.1-RC2ぐらいの時点の情報なので、将来ビルドの部分の設定変わって、この情報役に立たなくなってるかもしれません。Play2.1では、ビルドにsbtを使っているのにも関わらず、(ちょっと試しにビルドする人にとっては)色々と面倒なことになっていて、単にsb…

Scala 2.10.0 では implicit value class の implicit の優先順位付けが不可能な件

What's the usual way to do implicit prioritization with implicit value classes? Value classes are not allowed to be inside a trait.2013-01-15 22:54:58 via web言われるまで気づかなかったし、他にこの件について言ってる人を(少なくとも自分は)見…

sbt の build.scala でも Seq[ Setting[_] ] を作るときには、seq を使おう?

追記: 残念ながらsbt 0.13 以降 deprecatedです・・・ https://github.com/sbt/sbt/blob/v0.13.0/main/src/main/scala/sbt/Defaults.scala#L1541-L1542 Seqじゃなくseqという、小文字なのがポイントです。*1 *1:Seqは、Scala標準のもの

unfiltered.filter.Planify を Scala 2.10.0 で使うと実行時に java.lang.VerifyError が発生する

以下のようなものを実行すると

Scala2.10.0 で Scaladoc の細かいバグに遭遇したけど、最新版では直ってた

Scalaz にわりと大きい pull request がきていたので、勝手にレビューというか、間違い探しをする↓とりあえずひとつ見つける*1↓Scala 2.10.0 では、細かい警告を大量に出してくれるようになっているので、あえて 2.10.0 でコンパイルとScaladoc生成をしてみ…

変数名自身の名前のStringを束縛するScalaのマクロ

なんかわかりづらいですが、つまり以下のコードを実行すると val foo, bar, baz = const println(foo) println(bar) println(baz) 順に foo, bar, baz が表示されます。正確にはコンパイラ内部のAPIにアクセスしてるので、単なるマクロというより、コンパイ…

Unboxed Tagged Types の落とし穴

ご存知の通り(?)以下のような血みどろなマサカリが飛び交っていましたがtwitter の bijection というライブラリの名前問題まぁその話の本体についてはおいておいて、その副産物というか、そのpull request欄のコメントにて、面白い有用な話を見つけたのでメ…

Playがvimのテンポラリファイルなどの余計なファイル変更を検知するのを修正する

Play2.0.4の時点で、Hoge.scala.html というような Scala Templateのファイル変更を検知するために以下のようになってる。https://github.com/playframework/Play20/blob/2.0.4/framework/src/sbt-plugin/src/main/scala/PlaySettings.scala#L110追記:2.1.0…