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

thread

このモジュールはマルチスレッド(別名 軽量プロセス (light-weight processes)またはタスク(tasks)) に用いられる低レベルプリミティブを提供します -- グローバルデータ空間を共有するマルチスレッドを制御します。同期のための単純なロック(別名 mutexesま…

例外

うーん、例外ってなんだろうなー。

またやられた〜

threading.Thread クラスは, start() っていう関数を持ってる.なので,このクラスを継承したクラスは, start っていう名前の値を持ってはいけない. スクリプト言語というかオブジェクト指向に慣れてないので,こういうエラーがでたときに原因を探すのが…

Bisimulation

Pi

Bisimulation は,お互いがお互いを simulate するものかと思っていたのだけど,そうじゃなかったらしい. つまり, P と Q が bisimilar であることを判定するのに, P が Q を simulate し,かつ Q が P を simulate することを確認すればいい,というわけ…

Mobility Workbench もどき

Mobility Workbench もどきを作っている。もちろん Haskell で。1日とちょいでとりあえずステップ実行まではできるようになった。 あとは structural congruence を使った簡単化とかをやれば(ステップ実行に関してだけは)本家に遜色ない。 > agent P(a,b) = …

Standard ML

Standard ML って Robin Milner が定義した言語だったのか…。じゃあもっと敬意を払わないといかんな。

Userjs

今日は Opera を 9.5 にしてから動かなくなっていた Userjs を直してやろうということで取り組んでいましたが、失敗しました。うーん、腰痛いわ。 GM_xmlhttpRequest がおかしい気がするんだけど、理由はよくわからない。困ったなー。

Mobility Workbench の Sigma, Bsigma, Pi

Pi

またも id:syd_syd さんに教えていただく。 しばらく遊んでいたところ Sigma, Bsigma, Pi の使い方は理解できたが、その意味はわかっていない。やっぱり本を読んで勉強しないといけない。 直感的には、 Sigma は送信データにマッチし、 Bsigma はプロセス内…

Python インタプリタ

インデントを考慮したパースとかはまぁ普通にできそうだとして、オブジェクト指向な言語の VM っていろいろとどうやるんだろーなーとかふと思った。なんだかめんどくさそうだな…。 あとでちゃんと考えてみよ。

Hennessy-Milner logic

Hennessy-Milner logic は、プロセスの性質を表現するための論理式。ちょっと複雑な性質を表現するためには Recursive Hennessy-Milner logic を使うことになる*1。これに関する資料が少ないので一応。 id:syd_syd さんに非常に感謝。 π計算のモデルチェッカ…

名前をつけよう

卒論で作ったやつにそろそろ名前をつけないといけない。いいのが思いつかない。

押忍!闘え!応援団メソッド

これおもしろい。だれか研究会でやってください。 http://madscientist.jp/~ikegami/diary/20061119.html#p09

卒論進捗

サンプルプログラムはほぼ完成。 ただ、 windowOnIdle で登録したアクション(消費者)が、なかなか実行されないという問題点が。複数のスレッドで生産者と消費者がひとつのキューを扱うのだけど、 idle イベントが発生した段階でキューにデータがないと、なか…

関数内関数を外に出すには

f a b = a where g = b f a b = a g b = b こういうふうに変形したいわけですな。 今までやってきた方法だとだめな気がしてきた…。ちょっとゆっくり考えてみよう。 f の中で g を呼んだり、その逆をやったりするとややこしくなってくる。

挫折しそう

Pi

π計算でプログラム書くのは死ぬほどめんどくせぇぇ…。絶対に、なんかのツールによるサポートが必要と思われる。

Opera と fswiki

Opera で fswiki にログインできなくなってしまった。念のためクッキーとかも削除してみたが変化無し。いつからかはわからんけど、たぶんβにしてから。

お客様

研究室にお客様(?)がいらっしゃった。その人の研究と自分のはやや近い気がするので、なんか聞けたらなぁと思うのだが、こちらに話すネタがないし、そもそも言語の壁がある。やっぱり英語って難しいね。なんにも話せなかったよ。 "My name is ..." のあと、フ…

バグ

前に書いたコードにバグを発見した。で、ソースを読みなおしてたら明らかに無駄なことをやってたので、がっつり書き直すことにした。むむ、前書いたときは頭が寝てたんじゃないだろうか。かなりコードが短くなって、軽量化したはず。でも、他のバグが入って…

バグとれた

うーん、疲れた。眠い。

π計算

Pi

π計算でキャンセルできるファイルコピーユーティリティを書く、というのをやっている。ちょっとした頭の体操。 Haskell を勉強し始めた頃と近いものを感じるかもしれない。 非同期π計算だと、送信をしたあとには何もできないという制約がつく。チャネル a で…

できた

適当なままずるずると書き続けてコピーをキャンセルできるようにした。wxHaskell をいろいろ試しながらやってるのでどっか変なコードになってるかも。

wxHaskell のサンプル

プログレスバーを出す感じにしてみた。またしても投げやり。けど wxHaskell の資料が少ないので、公開しておけば少しはほかの人の役に立つかもしれない。プログレスバーはダイアログなのでちょっと扱いづらい。

Button は Window なのか

知らなかった…。 ボタンを disable にする関数が見つからないわけだ。windowDisable ってやつを使えばいいのかー。

ファイルコピー

突然だけど、ちゃんと活動していることを示す(誰に?)ためにコードを貼付けておく。 ディレクトリを指定するとコピーするというだけの投げやりプログラム。ソースもいろいろ投げやり。動けばなんでもいーや的な。1週間以内にはこれが GUI っぽくなる予定です…

getopt 便利

getopt が便利。 ていうか python 便利。こう考えるとやはり Haskell は LL ではない。Java + Eclipse は LL 。

Opera と spotlight

Thunderbird を使うことにしたので spotlight を再び切った。(Mail.app は spotlight が動いてないとメールの検索ができない) そしたら、なぜか Opera の CPU 使用率が激減。関係あるのかわからんけど。

thunderbird

使ってみた。けど、検索フォルダ(スマートフォルダみたいなやつ)がおかしい。一度みた新着メールが表示されなくなる(検索するとでてくる)。 わけがわからん。 - 何度も再起動したりアカウントを作りなおしたりしてたら直ったみたい。ますますわけわからん。

global

消費者生産者。 import threading, Queue, random, sys queue = Queue.Queue() signal = True def consumer(): while signal: x = queue.get() print x def producer(): while signal: queue.put(random.randint(1,100)) def main(): global signal p = thre…

Python は二度刺す

& はビット論理積。普通の論理積は and で。

Swing

Eclipse って楽だな。こんなに簡単に GUI のプログラムが書けるとは思わなかった。ただ、自分のノートだと微妙にもっさりするのが残念なところ。Opera と Eclipse でぎりぎり。他になにか起動するとゴリゴリという音とともに残念な結果に。あと画面が小さい…