Javaではスレッドごとにサーブレットが動いているが、ScalaでActor使ってサーブレットを並列動作させるというのはどうだろう。軽量プロセスならオーバーヘッドも少ないだろうし、どうにかこうにかかゆいとこに手が届く仕組みにならないだろうか。まあ、ただの思い付きです。Liftは普通のサーブレットなのかな。どうなんだろう。
最近ScalaのLiftフレームワークについてちょっと調べているのだが、
これがなかなか面白い。
MVCのControllerからViewを呼び出すタイプではなく、
ViewにSnippetという部品を埋め込んでサーバサイドの処理を行うフレームワークなのだ。
ControllerがSnippetに置き換わって、ViewをベースにSnippetの集合を構築する。
これは面白いかも。詳細はまた後日。
てっきり標準のJVMと同じく世代別GCを使っているのかと思っていました。
だからオブジェクトを使い捨てていると、アプリケーションの動作遅延が起きやすかったんですね!
ちなみにマーク&スイープ方式はGCが走っていない時の動作速度が高速らしいです。
世代別GCの方式はARMプロセッサの上で走らせるにはヘビーなのかな?
http://itpro.nikkeibp.co.jp/article/COLUMN/20100802/350937/
どうやら今はこんなものがWebで公開されているらしいです。いい時代になったものですね。
http://www.color-fortuna.com/color_scheme_genelator2/
色相差を大きめに振るとちょっとセンスがいい感じの配色っぽくなって素晴らしい。色相に困った時はこれを使おう。
きちんと投稿がツイッターのつぶやきに反映されているかな?
DBのコネクションプーリングが一番ポピュラーな使い方だと思われる、オブジェクトプーリングのやり方について。
OpenGLの描画オブジェクト管理にオブジェクトプーリングを使ってみたんだが、オブジェクトを使いまわす時に死んでいるオブジェクトを探すいい方法が思いつかない。オブジェクトにvalidフラグを立てておいて、フラグが立ってない奴をforループで探すような仕様にしているのだが、明らかに効率が悪いよなーこれ・・・。死んでいるオブジェクトと生きているオブジェクトを別のリストで管理するのが一番手っ取り早いだろうか・・・?いまいちいい方法が思い浮かばない。
Cajaの仕様が変わっててビルドできないようです。
これどうしたらいいんだろう?Mavenは便利だけど、こういうことがあるとキツいよなあ・・・。
なんか無茶苦茶になってる。なぜかhttp://の前に//がついてたりとか、同じパラメータが2個以上あったりとか、セキュリティトークンがなぜか付属してたりとか(しかも内容はただのゴミ文字)、バグバグすぎる。一体どうしちゃったんだ?
とりあえず正規表現で置換して対応したりするけど、これどうしようもないよ。最悪だ。
Shindigをアップデートしようと思ったのだが、なぜだか今までルートコンテキストに置かなくてもきちんと動作していたはずなのに、アップデート後のShindigは動作しなくなっていた。仕方ないのでなんとかルートコンテキストに置く方法を調査。
調べてみるとあら簡単。名前をROOT.warとしてwebappsディレクトリに配置してやればよい。もちろんWebマネージャからもデプロイ可能なので、楽ちん楽ちん。
Pattern pattern = Pattern.compile("http://(.*\\.)+.*/.*(\\s|\\z)"); Matcher matcher = pattern.matcher(str); matcher.replaceAll("<a href="$0">$0</a>");
正規表現で条件に一致した文字列を置換先の文字列に仕込むやり方を使ってみました。色々と応用が効きそうなのでもうちょい正規表現は勉強しなきゃなあ。