Entries from 2012-01-01 to 1 year

COMFRK VOL.4 始まります(CV:田村ゆかり)

COMFRK は今年の冬も出るのです。出るのです!去年に同じく三日目「東Y16a」です。既刊もあります。今回は、Scala のマクロを利用して、Scala コードから Javascript コードを生成するお話を書きました。 ちょっと尺とか何も考えずに書いたのでごにょごにょ……

IntelliJ Idea で scala 2.10-RC の macro/reflection について調べるためにしておくと良い設定

情報量ほとんどないんですが、一応書いておきます。生存報告のようなものです。普通に新規に Scala のプロジェクト作っても、デフォルトの設定だと Project Structure -> Modules -> Dependencies -> scala-library には scala-reflect.jar も scala-reflect…

Scala 勉強会 in 本郷で色々発表してきました

88 回、89 回、90 回と発表してきました。基本的に勉強会というのは、時間の割にはそんなに勉強にならないので、どうせなら発表すべきだと思ってるのですが、結構疲れちゃうし、難しいですね。発表内容も半分は仕事内容に関係してるので、発表のための特別勉…

Re:小分けの処理とまとめた処理をまとめたい

http://d.hatena.ne.jp/RiSK/20121027/1351317259頑張って javascript 語で書くよん。 function string_to_write_proc(str) { return function() { document.write(str); }; }; function proc_binop(lhs, rhs) { return function() { lhs(); rhs(); }; }; fu…

困った例外さん

ついらーで例外についてちょっと長いやりとりがありました。長いので、気になる人だけ続きをどうぞ。やりとりが長いだけで内容自体は大したことないです。

implicit conversion と type class

第5回 スタートHaskell2という 5 なのか 2 なのかはっきりしろみたいな勉強会があったようです。そこで Haskell と Scala という LT を id:xuwei さんがされたようです。行ってないのでなんともかんともですが…さて LT のスライドは前述の通り既に公開されて…

Play 2.0.3 で BodyParser を含めたアクションのテストを行う

久しぶりの更新です。Play 2.0(2.0.3) で、ルーターとアクションのテストを行いたい時は普通以下のように書きます。ドキュメントからの引用です。 "respond to the index Action" in { val Some(result) = routeAndCall(FakeRequest(GET, "/Bob")) status(re…

overload で邪魔な type erasure をなんとかする

型レの話書くの忘れてた…まあいいか。値を何かしらでラップするみたいなことは、まれによくあります。 trait Nanka { type Rep[T] } trait Add extends Nanka { def add(lhs: Rep[Int], rhs: Rep[Int]) def add(lhs: Rep[Int], rhs: Rep[Double]) ... } でま…

type level programming in scala introduction

もう旬を逃した感が少しありますが JavaOne Tokyo の JVM 言語 BOF で、よしださんが Scala 型レベルプログラミングという LT をされました。ボクはその場では聞けなかったのですが、後日 Scala 勉強会第 76 回で聞く機会がありました。JavaOne では 5 分間…

android-plugin で useProguard := true でなければならない理由

なんてことはない、普通にこの問題のためでした。しかし useProguard := false な時に dx で失敗するのでなく、実行時に ClassNotFound になる理由はこの行が原因でした。これはあんまりだよ!予め ProGuard で android 用に shrink しておいた scala-librar…

既存の Android プロジェクトに sbt + android-plugin で scala コードを追加する

java で Android アプリケーションを書くのが嫌になりました。矢張り java より scala でしょう。一から作る場合は giter8 で適当にやれば、特に問題なくできるわけですが、既存のプロジェクトに scala コードを追加する場合、どうやればいいかよく分からな…

sum type in Java

ってどうするのが Java らしいのかなあみたいな。 public class Base { public static class A { ... } public static class B { ... } private A a; private B b; private Base(A a, B b) { this.a = a; this.b = b; } public static Base createA(...) { r…

android 2.2 で Calendar#setTimeZone が使えない問題と workaround

android 2.2 まで Calendar#setTimeZone メソッドや、Calendar.getInstance メソッドの引数による TimeZone の指定が正しく動作しないという問題がありました。http://code.google.com/p/android/issues/detail?id=6184より詳細には、何かしらの TimeZone を…

自分が中二レベルであることを証明する

coq

旧聞になりますが「大学生の4人に1人「平均」分からず 数学基本調査、論理力欠如明確に」より引用。 「偶数に奇数を足すと必ず奇数になる」ことを数式と文章で説明する中2レベルの問題 ということらしいので coq を使って自分が中二レベルあることを証明…

Initial Values を利用して Nothing 型の値を作ることは可能か

どうでもいい話な上に長いので、暇な人だけどうぞ。

virtualizing pattern matcher について話しました

Scala 勉強会第 67 回で virtualizing pattern matcher について話しました。スライドはこちら。まあ、まだまだ開発中という感じですね。追記:完全に仕様が変わりました。scala-virtualized の仕様に近くなったのかなあ。

higher-kind type parameter に渡せるもの

小ネタです。以下のトレイトの型パラメタに渡せるのはどのようなものか。 class T[M[_]] 型パラメタを一つ取るジェネリックなクラス。トレイトでもいいけど。これは普通。 class C[A] class TC extends T[C] 型パラメタを二つ取るジェネリックなクラスで、片…

Paginate されたコンテンツを処理する

Paginate されたコンテンツを必要な分だけ取ってくる、みたいな javascript + jQuery の code snippet です。特に面白いものではないです。 function get_recursive(gen_url, proc, need_more, cont, acc) { var aux = function(acc, count) { // 変な need_…

ヘルプ!Scala はアイドル

追記:trunk では直っているようです http://groups.google.com/group/scala-language/browse_thread/thread/3652db621ae18cd5 まあでもメソッドのシグネチャはちゃんと書いたほうがいいよネグループではない。アイドルグループなのは Lisp(LISP) です。それ…

jQuery versus invalid html

なんの変哲もない以下のコード。 var a = $('html').find('some selector'); $.get(document.URL, function(html) { var b = $(html).find('some selector'); }); a の結果と b の結果が異なる、といったら驚きますよね。ところが現実は非情です。ページによ…

COMFRK VOL.3 「今夜は俺とお前でマルチパラダイムだからな」訂正と補足

いくつか誤植やら何やらが報告されています。ケジメ!ケジメ!いやでも実際大変でしたし…スイマセン… 9 ページ目、ナゾの url これはなんなんでしょうね…ナゾです。 10 ページ目、let ret て let rec の typo じゃないの? typo じゃないです!紛らわしかっ…