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

バッチファイルでフォルダ内の JAR ファイルすべてをクラスパスに追加する

バッチファイルを二つ作成します。 run.bat - java アプリを実行するバッチファイル addcp.bat - クラスパスの環境変数に JAR ファイルを追加するバッチファイル REM run.bat set CP=classes for %%f in (lib\*.jar) do call addcp.bat %%f java -classpath …

アクタモデルによるプログラミング

Scala でアクタ(scala.actor.Actor)を使ってプログラミングしていると、他のコンポーネントというかアクタに処理を依頼したあと、処理結果が帰ってくるまで待つような書き方をしなくなってくる。 一応、Actor では「!?」を使ってメッセージそ送信することで…

PartialFunction

PartialFunction - syttruの日記 orElseというのは、PartialFunction同士をつなげて力を合わせるメソッドです。部分的にしか機能しなかったろくでなしの関数たちが、お互い補完しあって協力する関数を作ることができます。 var superPf = (pf1 orElse pf2 or…

メッセージングによるシステム

アクターモデルを考えるときに、参考になったのでメモ。 同期的非対称性と非同期的対称性 - Ouobpo 名前がいったい何だというの? - Ouobpoこの記事自体はアクターモデルについての内容ではないですが、メッセージの送受信により動作するシステムならば同様…

XML 要素の削除方法

先月社会復帰したのですが、ついに仕事で Flex を使うことになりました。Java と比べると ActionScript での XML 操作は格段に楽になっています。 Java の場合、DOM の実装を選択可能なこともあってか、かならず DocumentBuilder とか Document を経由してい…

Maven で複数のソースディレクトリを扱う

Mavenのソースディレクトリやっと解決 - まとばと Maven2で複数のソースディレクトリを扱う方法が不明だったけど、http://mojo.codehaus.org/ の Build Helperで出来るみたい。pom.xmlに以下のように記述すればOK。 これで、S2JDBC-Gen で生成したソースを、…

サブドメインでもメール受信

user@domain.tld でも user@host.domain.tld でも、user ユーザのメールとして受信されるように Postfix を設定しました。 mydestination にサブドメインを表す ".domain.tld" を追加する方法ではうまくいかなかったため、正規表現を使用しました。/etc/post…

VirtualHost + SSL

昨日の続きで、名前ベースのバーチャルホストで SSL が使えるようにします。 バーチャルホストの設定ファイルを記述 ポート 80(http) と 443(https) それぞれに対して、バーチャルホストを設定します。http 用と https 用とで、内容が同じになる部分を二箇所…

オレオレ証明書設定手順

毎回ググっているので、メモっておく。 参考にしたのは、http://www.stackasterisk.jp/tech/systemConstruction/apache09_03.jsp#3_2 環境は CentOS 5.1 だったと思う。あと Apache2 秘密鍵作成 /etc/pki/tls/private 以下にサーバ用の秘密鍵作成。 [root@ge…

アクターモデルでの、アクターの粒度に悩む

※自分用メモ アクターモデルを利用した場合に、それぞれのアクターはどのような粒度とするのが良いのか? なんとなく理解したこと 単にスレッドの代替として使用するのであれば並列化したいところにだけ使えば良い 実装方法の一つでしかない 並列化そのもの…

implicit parameters の使い方

implicit conversions に続いて、implicit parameters も使ってみました。以下、implicit parameters を使用している関数の例。 abstract class Foo def foo(msg: String)(implicit p: Foo) = println(msg + p)implicit parameters の引数リストは一番最後に…

implicit conversions とブロックの組み合わせは失敗する?

java のスレッドを利用せざるを得ないときに、スッキリ記述できるかと思い、以下のように implicit を使ってみたのですがうまくいきませんでした。 object Sample { implicit def block2Thread(block: => Unit) = new Thread { override def run = block } d…

scala.actors.remote について

Actor をリモート呼び出しできるようにする機能ですが、いまいち使いづらいです。 内部で例外を握りつぶしているらしく、接続に失敗していても気付きません。なので、RMI を使用した簡易版を自分で作ってみました。 package scala.actors.rmi import java.rm…

sbaz について

ぐぐった限りでは Ruby でいうところの gem みたいなものらしいです。scala に関係する、ライブラリやツール、ドキュメントを管理(インストール、更新、etc...)してくれます。 sbaz でライブラリをインストールすると、scalac や scala の実行時に、ライブラ…

Actor でメッセージのマルチキャスト/ブロードキャスト

上述の link ですが、てっきりアクタをグループ化して、メッセージのマルチキャストとかが出来るようになるのかと勘違いしてました。 マルチキャスト/ブロードキャストをやりたければ、自前で仲介役のアクタを作るみたいですね。http://www.nabble.com/Scala…

Actor の link について

いまいち何につかうか良くわかっていなかった link ですが、Scala のフォーラムと、2ch でようやく理解しました。http://www.nabble.com/Some-Actor-questions-td8906252.html#a8910854リンクを設定しておくと、リンク先のアクタが終了したときに Exit メッ…

ダックタイピング

Think IT の記事を参考に、Scala でのダックタイピングを試してみた。 http://www.thinkit.co.jp/cert/article/0711/4/3/3.htm object Sample { def foo[T](x: T {def bar: Boolean}): Boolean = x.bar def main(args: Array[String]): Unit = { println(foo…

Actor の勉強

Scala の Actor を勉強している途中で出てきた疑問等。 Actor インスタンスの作成方法 PDFのチュートリアルでは、Actor を継承したクラスを作成し、act メソッドを実装すると説明されていますが、ほとんどの場合は actor 関数を使用します嘘です。作り方次第…

Hello Actor

とりあえず書いてみた。 package actor import scala.actors._ import scala.actors.Actor._ object HelloActor { private val foo = actor { println(">>foo actor") loop { println(">> foo loop") receive { case ('hello, msg) => println("Hello "+msg)…

HSQLDBをスタンドアロン(ファイル)モードで使用

hsqldb をスタンドアロンモード(ファイル)で使用していたときに、ものすごく阿呆なことで長らくはまっていたのでメモ。hsqldb の使用を終了するときには、SQL で "SHUTDOWN" を実行するか、あるいは接続時のURLに shutdown=true をつけておく必要があります…

Eclipse で Ajax

Eclipse ganymede の UpdatesSite につないだら、Rich Ajax Platform SDK (RAP)なるプラグインを発見しました。 RAP 自体1年ほど前からあったようなのですが、いままで気づいていませんでした(汗 RCP と類似のアーキテクチャにより Ajax を使用した開発が可…

DHCPサーバ

家で使うときと、外で使うときとで、ノートパソコンのDNS設定を書き換えていたのですがいい加減面倒です。 なので、家のLAN内にDHCPサーバ立てて、DNSサーバのIPアドレスを配信?するようにしました。*1DHCPサーバ自体のIPアドレスも、DHCPで解決しようとし…

同一ネットワーク内に xinetd で動作している VNC が複数存在する場合の罠?

現在 2 台のサーバ(CentOS)が動作しているのですが、VNC 経由での接続が片方に対してしかできなくて、はまりました。 A と B 2 台のサーバがあったときに、B に接続しにいっても A につながるという現象でした。 原因は Xvnc の引数に -broadcast を指定して…

DHCPv6 Client 下で、任意のDNSを指定 (CentOS 5.1)

IPv4 用の DHCP クライアントを使用している場合に、任意の DNS を指定する方法(というか resolv.conf を上書きさせない方法)は見つけていたのですが、IPv6 用の DHCP クライアント(dhcp6c)の場合はどうすればよいのかがわからなくて放置してました。が、説…

ノートパソコン購入&無線 LAN 導入

つい先日、ノートパソコンを購入しました。軽くて英字配列のキーボードに交換できるという条件で探した結果、VAIO type-t になりました*1。Windows vista がプリンストールされています。ちょっと使いづらいです*2・・・orzせっかくなので、無線 LAN を使え…

PCセットアップ

ようやく一通り終わりそうです。 せっかく、マルチコアのCPUなので仮想PC入れてみてます。 Microsoft が無料で VirtualPC というのを出しているので、いままで使っていたPCのWin2kを入れてみます。 とくに何やるというわけではないのですが、VirtualPCで遊ん…

本日の行動

今日はyosiwo氏にさそわれて、全く知らない人達のライブにいってきました。 オタオタしいライブでした。久々に、ハロコンを思い出しました・・・PPPHとか。 あと、ひさびさに秋葉原にも。メイドのビラ配りがものすごく多いですね。ニーソ堪能。

PC届いた

家にかえったら、先日たのんだPCが届いてました。 これから組み立てです。Core2Quadです( ・∀・)

Scala による Web フレームワーク

なにやら lift(http://liftweb.net/)なるものがあるらしい。 そのうち、案件でも関数型言語が使われるようになってくるのかな。楽しみです。

「Emacsを使うのはやめようよ」

http://builder.japan.zdnet.com/news/story/0,3800079086,20370724,00.htmムーアの法則が15回適用できるというのがすべてを物語っていると思った。 テレタイプをつかっていないでしょってのが、ちょっとワラタ(w