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

null.asInstanceOf[Int]の仕様

https://github.com/scala/scala-dist/pull/104今までは 実装はデフォルト値返す 仕様には、AnyRef以外はヌルポ投げる(と書いてあったらしい?) と、食い違っていたのが、デフォルト値返すという仕様に変更されたらしいです。実装はもちろん今までどおりでし…

ScalaUtilsというのがちょっとだけ話題になってたので、Scalazで書きなおしてみた

この↓tweetが20くらい、favとRTされてる・・・ ScalaUtils `Or` is the data structure I have been trying to create for months. Easy to use and understand. URL2013-10-21 10:15:01 via iOSs単にScalazのeitherでは・・・というツッコミなど @BigJasonW…

Scalaのリフレクションがついにスレッドセーフになったらしい

これ書いてる2013年10月21日現在、masterのみです。https://github.com/scala/scala/pull/3029 https://issues.scala-lang.org/browse/SI-6240

Scalazの記号メソッドやクラス一覧

基本的にはgrepしただけ。アンダースコア始まり除けば結構減る。解説書こうかとおもったけど、一覧出して、思った以上に数が多くてやる気なくしたすみません・・・。

ScalaのAnyとNothingのKind

retronymさん(Scalaのコミッターの人)が Any and nothing are kind polymorphic in scala. https://groups.google.com/d/msg/scalaz/RTNLhIcFkIc/9uQHD618vDwJと言っていて、深く考えたことなかったけど、そういえばそうなのかーと妙に納得したのでメモして…

twitter社もMonadのtypeclassを作っていた件

https://github.com/twitter/algebird/blob/0.3.0/algebird-core/src/main/scala/com/twitter/algebird/Monad.scala

sbtのメソッド名が"雪だるま"な件

☃https://github.com/sbt/sbt/blob/v0.13.0/main/settings/src/main/scala/sbt/std/InputWrapper.scala#L27Unicode Character 'SNOWMAN' (U+2603) "The user should never see this method because it is compile-time only and only used internally by the…

Scala2.11から、unapplyメソッドの戻り値型の仕様が拡張されます

この変更 https://github.com/scala/scala/pull/2848 すでに2.11.0-M5に入っているので試せます。unapplyとは、パターンマッチの際に使われる特別なメソッド名です。 一言でいうと 「今まではscala.Option型*1を返さないといけなかったが、getとisEmptyとい…

sonatypeに特定のURLでアクセスすると、javadocやscaladocを展開して表示してくれる機能がある件

たとえばScalazだったら以下のURLhttps://oss.sonatype.org/service/local/repositories/releases/archive/org/scalaz/scalaz-core_2.10/7.0.3/scalaz-core_2.10-7.0.3-javadoc.jar/!/index.html#packageこの機能なんなの?あまり使われてるの見たこと無いけ…

precogがソースコード公開した件

これ↓ https://github.com/precog/platformPrecogって何?誰?って思うかもしれませんが、Scala界隈では有名で、知らない人は、まず以前自分が書いたblog見てくださいPrecogIOって会社に、Scalaのスゴイ人がいっぱいでヤバイ こっちもprecogの話でてくる↓ no…

SCCT(Scala Code Coverage Tool)のリポジトリ

*1移行したとか、移譲した、とかではなく、メンテされてないことにしびれを切らして、forkして別にメンテはじめた人が出てきました。 また別のところに移行したらしい。よくわからない https://github.com/SCCT/scct https://github.com/SCCT/sbt-scct *1:今…

sxrが2.10対応してた

sxrは何回かblogでとりあげてます。

ScalazのAlign

Scalaz7.1.0-M3でました。開発中のマイルストーン版なので、7.0.xとも7.1.0-M2などともバイナリ互換性はありません。 気がついたら、7.1.0-M2から7.1.0-M3の半分以上のcommitが自分です。なので、おそらく誰よりも最近の変更点に詳しいです。 あとこんなこと…

play framework 2.2.0 dependency graph

sbt dependency graph plugin で作ったので貼っておく。メインの依存のみ http://xuwei-k.github.io/play2.2.0-dependency-graph.html https://gist.github.com/xuwei-k/6640874 こっち↓は、デフォルトでplayが独自に追加してるdependenciesコマンドによる出…

SetはFunctorではない

SetがFunctorではない理由を延々と説明します。最初これhttp://failex.blogspot.jp/2013/06/fake-theorems-for-free.htmlを訳そうとしましたが、英語力と理解力のなさにより断念し、中途半端な翻訳になるなら、自分なりに書き下そうという結論になりました。…

Scalaz の NaturalTransformation

以下のやりとりなどをして、なんとなく書きたくなったので解説してみます。 @gakuzzzz implicitついてないし、型クラスのインスタンスではなく、「高階レベルの関数」ですね。Id型使いたいだけなら、それ使っていいと思います(なにに使うのか・・・?)2013-0…

Scalaのversion間の非互換について具体的に考える

わりと以前から書いてみたかったことなので、書いてみます。

GLOBALDATAという海外Wifi貸し出す会社利用したら、SQLインジェクションで番号流出してカード番号変更する羽目になった

「イモトのWiFi」という宣伝してるところです 5月頃連絡来る http://www.xcomglobal.co.jp/info/ http://www.globaldata.jp/imotowifi/ google:GLOBALDATA 流出

ScalaとLombokを比べた場合のメリットとデメリット

最近いくつかlombokが話題になってた lombokで快適Java生活 サイバーエージェント公式エンジニアブログ JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 Java特有の冗長なコードを簡潔に記述する「Lombok」 codezine ので、twitterなどでは何度…

Scalaの限定継続が死ぬかもしれないらしい

「限定継続使ったコードで、コンパイラがcrashする」というscala-usersのMLのスレにて、Scala開発者のJason Zauggさんが

sbtでプロジェクトファイルが変更されたらメッセージを表示する

sbtでは、プロジェクトファイル(build.sbtとかproject/build.scalaとかproject/plugin.sbtとか)を書き換えても、プロジェクトをreloadしないと設定が反映されません。デフォルトでは、全くお知らせもエラーも出さずに、reloadするまでずっと古い設定を使い続…

Scalazのバイナリ互換性とmigration-manager

べつにバイナリ互換の話はScalazに限らないですが、Scalazが7.0.xにおいてmigration-managerを使ってバイナリ互換を保つことを実践している数少ないライブラリで、 「どうするとバイナリ互換が崩れるのか」「逆に、バイナリ互換が崩れない変更とは?」 とい…

関数を扱えるだけでは、モナドを表現するには不十分過ぎる

つまりなぜかいきなり高階型の話です。これ 関数を扱えることはどのようにプログラミング言語の能力をあげるかに対する便乗というかツッコミとして。

Scala2.11から、scala-library.jarがxmlやparsersなどに細かく分かれます

2.10のときは、actorが分離されてなおかつdeprecatedになりましたが、2.11でも(当初言っていたとおり)scala-library.jarがscala-xml.jarとscala-parser-combinators.jarの3つにわかれます。

giter8とtypesafe activatorについて思うこと

typesafe stackに組み込まれてたり*1、「play2と統合する話があっのに中途半端に実装したまま」*2になっていたりするgiter8ですが、以下のOCamlの状況と少し似てる部分がある気がしたので、なんとなく書き記しておく。GODI 終了宣言事件に関して *1:その後ty…

gitbucketをherokuで動かしてみた

gitbucketとは、takezoeさんが作ってる、Scalatraで作られているgithubのcloneです。http://gitbucket.herokuapp.com

Scalazで今後やりたいことメモ

単にScalazを使う側の話じゃなく 「Scalaz自体のライブラリ設計を今後どうするか?」 という話です。色々ぼんやりと考えていることがあるので、コミッターになったついでにちょっと書きだしてみる

Zip + Functor = Apply

また細かいtypeclassの話で、それほど重要じゃないけどメモ。 「ZipとUnzipのtypeclassにlawないけど、"Zip + Functor"とか"Zip + Functor + Unzip"なら、law作れるんじゃないの?」

MonadOr

https://github.com/scalaz/scalaz/pull/407自分: OnePlusという最近入ったデータ構造のtypeclassのインスタンスを追加したpull reqをする

flayframework2.2, 2.3へ向けてのissue

この前発表されたRoadmaphttps://docs.google.com/document/d/11sVi1-REAIDFVHvwBrfRt1uXkBzROHQYgmcZNGJtDnA/pubが、それぞれ具体的にissueにしてあったのでメモ。