Scala

Jettyでサーバ起動

とりあえず、動くところまではいきました。 import java.io.PrintWriter import javax.servlet.http.HttpServlet import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse import org.mortbay.jetty.Connector import …

BufferedImageのSerialize

結構大変だぁ! と言うことであっさり方向転換して、 Jetty6を使ってRESTで通信してみることにした。 現在Jetty6.1.7をダウンロード中なのですが、 なんだかとってもサーバが遅いのね・・・

Remote Actor

すぐ終わると思ってたのだが、 ・Remote Actorとは、Serializeできるオブジェクトしか、やりとりできない。 にぶつかった。Serializableをimplementするにはどうすればよいんだ?面倒になったので、今日はこれまで。

テストも書いてゆこう

ということで、とりあえずメモ。JUnit 5 Google Code Archive - Long-term storage for Google Code Project Hosting. Google Code Archive - Long-term storage for Google Code Project Hosting.

連番画像作成アプリ(Actor版)

Actorを利用して、マルチコア環境で高速化する(はずの)ものにしてみた。「actor { ... }」って、Rubyのthreadの様に書けるので便利ね、 この場合「loop { ... }」の存在が生きてくるように感じる。あと、senderがあるので、 erlangみたいに、わざわざself…

実践1:連番画像を作成する

今まで作った、クラスを使って、 (少し)実用的なプログラムを作ってみた。 実行すると、カレントディレクトリ内の 「images」ディレクトリ内に、画像を自動作成します。後は、これをなんらかのツールで動画にするのだが、 いっそのこと、JMFでもつかって、…

関数定義について

def hoge() { "hoge" } と def piyo() = { "piyo" } の違いは def hoge() { "hoge" } は返り値が無い。 ということ。ブロックに名前を付けている(バインドしている)感じかな? 対話環境で実験するとわかりやすい。もちろん、戻り値を明記した場合は、 def …

sprintf

Scalaでのちょうどいいsprintf実装がみつからなかったので、 java.lang.String.format を少し使い易くしてみた。まったく、パターンマッチ様々な感じ。args:List[a]と書かなければならないところは完全に理解していないけど、 いまのところはスルーしておく…

コンストラクタ

クラスのコンストラクタの中では、valや、if..elseなどが(きっと他にもいろいろ)使えない模様。実はこちらのページを参考にタイムコードを表すクラスと書いてみたのだけれど、 上記の制限(仕様?)にぶちあたりまして、 んでしょうがないから、ファクトリ…

疑問など

今まで少しいじってきて、感じたことをメモ Actorクラスのact関数の定義のしかたについての疑問 act関数を def act() = { : } だけでなく def act() { : } と「=」が無くてもよいのはなぜ?(仕様書を見てもわからん??) 無名関数を引数に関数を呼ぶときの…

Scala de image

勉強をかねて作り中 以下のように画像生成できる奴 import ryugate.image._ import java.io.File import java.awt.Color object graph_test extends Application { val img = new Image(300,200) img.process { g.setFont("IPAGothic", Font.BOLD, 20) g.set…

FizzBuzz

を書いてみた object fizzbuzz extends Application { def main(n:int, ans:List[String]):List[String] = n match { case 0 => ans case _ if (n%3 == 0) && (n%5 == 0) => main(n-1, "Fizz Buzz" :: ans) case _ if (n%3 == 0) => main(n-1, "Fizz" :: ans…

Actors Ring

今度はRingにしてみた。 import scala.actors._ import scala.actors.Actor._ import java.lang.management._ object actor_ring extends Application { class myactor(no:int, nb:Actor, d:Boolean) extends Actor { var neighbour:Actor = nb var dec:bool…

Scalaな新年

新年早々、Scalaでの実験を繰り返す。 かなり、わかってきた。 200万のプロセス(Actor)をチェインしての実験などをしてみる。 ヒープのサイズを768M程度にしてやれば問題なく動く模様。コンパイルが面倒になったので、 ついでにRakeの実習も兼ねられて…