トップ 最新 追記

日々の流転


2008-02-01 [長年日記]

λ. Thinkpadのメディアコントロールキーの置き換え

[周辺のキーの写真] 20080124#p01では「Fn + ←」は入れ替えられないと書いたが、20080126#p01のRHG読書会の際に佐野さんに(窓使いの憂鬱で?)メディアコントロールキーのスキャンコードを調べてもらい、無事入れ替えることが出来た。ありがとうございますっ!

以下がスキャンコードの対応表。

0xe010 |◀ (Fn+←)
0xe019 ▶| (Fn+→)
0xe024 ■ (Fn+↑)
0xe022 ▶|| (Fn+↓)

以下はThinkpad X61 が届いたで書いた「CapsのCtrlへの、ブラウザキーの Page Up/Page Down への置き換え」に加えて、「|◀」を Home に置き換えた結果のレジストリ。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,\
  05,00,00,00,\
  1d,00,3a,00,\
  49,e0,6a,e0,\
  51,e0,69,e0,\
  47,e0,10,e0,\
  00,00,00,00
Tags: thinkpad

2008-02-02 [長年日記]

λ. 『Big Bang』 by Simon Singh

ようやく読み終わった。読み始めたのが11月でなので約3ヶ月かかったわけか。ほとんど通勤中に気が向いたときにしか読んでいなかったというのもあるが、さすがにこんだけかかるとなぁ……。次はもっと薄い本にしよう。

Big Bang: The Origin of the Universe (P.S.)(Simon Singh)

Tags:

2008-02-03 [長年日記]

λ. Ruby 1.8.6-p111 on Cygwin

Ruby 1.8.6-p111 をcygwin上でビルドしようとしたら以下のようなエラーが出た。[ruby-dev:32536]の問題で、missing/strftime.cをスナップショットのものと置き換えたら直った。忘れそうなのでメモ。

gcc -g -O2   -DRUBY_EXPORT  -I. -I.  -c ./missing/strftime.c
./missing/strftime.c: In function `strftime':
./missing/strftime.c:193: error: 'timezone' redeclared as different kind of symbol
/usr/include/cygwin/time.h:33: error: previous declaration of 'timezone' was here
make: *** [strftime.o] Error 1

λ. Let's note を親父用マシンに

[Let's note と e-note の比較写真] 作業環境をほぼThinkpadに移行できたので、これまで使っていた Let's note CF-T1 PWAXS を親父用のマシンにする。余計なものを消したり、CapsとCtrlの入れ替えのように変にカスタマイズしていたのを元に戻したり。あと、Norton AntiVirus 2005 が1年以上前に切れていたので、一応 avast! に入れ替えてみる。

それで既定のブラウザもIEに戻そうと思ったのだけど、「Internet Explorer の起動時に、通常使用するブラウザを確認する」を有効にしても確認されなくて、かつフォルダオプションからも変更できなくて、困ってしまった。結局、kamimura-ya.com:既定のブラウザを変更するで紹介されていた、「コントロールパネル」→「アプリケーションの追加と削除」→「プログラムのアクセスと既定の設定」から変更出来た。こんなところにあったとは!

これまで親父の使っていた SOTEC e-note 645Hソーテック PCリサイクル に。ちなみに、こいつには今ではサポートも切れている Windows 98 で動いていたのだった…… さすがにお疲れ様でした。

λ. rjbのスペースの入ったパス対応

JDKをインストールしたのが「Program Files」のようにスペースの入っているパスだと、rjbのビルドに失敗するようなので2行パッチ。 rjb-path-spaces.patch

Tags: ruby

2008-02-04 [長年日記]

λ. Alloyで知識論理を使って論理パズルを解く

bonotakeさんの日記で時々取り上げられているAlloy、パズルを解くのに便利とのことなので、ちょっと週末に遊んでみた。 対象とするのは、以前にSPASSで知識の論理を使って論理パズルを解く?でも取りあげた「赤いぼうし」の問題で、これは以下のような問題。

AさんとBさんがいて、少なくとも一人は赤い帽子を被っていて、赤い帽子を被っていない人は白い帽子を被っている。ただし、二人とも他人の帽子の色は分かるが、自分の被っている帽子の色は分からない。そして、Aさんが「自分の帽子の色が分からない」と発言した。このとき、Bさんの被っている帽子の色は何か? そして、Bさんは自分の被っている帽子の色が分かるか?

この前提となる状況をAlloyでは以下のようにモデル化することが出来る。

-- 世界
sig W {
   K_a: set W, -- 「Aさんが知っている」という様相の到達可能性関係
   K_b: set W, -- 「Bさんが知っている」という様相の到達可能性関係
}

-- 命題: 世界の集合を外延として持つ。
abstract sig Prop { ext: set W }

-- Aさんが赤い帽子を被っているという命題
one sig A_wears_a_redhat extends Prop { }

-- Bさんが赤い帽子を被っているという命題
one sig B_wears_a_redhat extends Prop { }

-- 公理
fact {
   -- K_aは同値関係(K_aはS5様相)
   all w1 : W | all w2 : W {
      (w2 in w1.*K_a or w1 in w2.K_a) implies w2 in w1.K_a
   }

   -- K_bは同値関係(K_bはS5様相)
   all w1 : W | all w2 : W {
      (w2 in w1.*K_b or w1 in w2.K_b) implies w2 in w1.K_b
   }

   all w : W {
      -- どちらかの帽子は赤である
      (w in A_wears_a_redhat.ext or w in B_wears_a_redhat.ext)

      -- AさんはBさんの帽子の色を知っている
      (all w1 : w.K_a | w1 in B_wears_a_redhat.ext) or
      (all w1 : w.K_a | not (w1 in B_wears_a_redhat.ext))

      -- BさんはAさんの帽子の色を知っている
      (all w1 : w.K_b | w1 in A_wears_a_redhat.ext) or
      (all w1 : w.K_b | not (w1 in A_wears_a_redhat.ext))

      -- Aさんは自分の帽子の色が分からない
      not (all w1 : w.K_a | w1 in A_wears_a_redhat.ext)
      not (all w1 : w.K_a | not (w1 in A_wears_a_redhat.ext))
   }

   -- 世界は一つ以上存在
   #W > 0
}

で、まずモデルが存在すること(無矛盾であること)を Alloy Analyzer でチェックする。

pred show() { }
run show for 10 W

これを実行すると以下のような結果とモデルが得られる。

Executing "Run show for 10 W"
   Solver=sat4j Bitwidth=4 MaxSeq=4 Symmetry=20
   11845 vars. 230 primary vars. 21671 clauses. 133ms.
Instance found. Predicate is consistent. 29ms.

[得られたモデル]

B_wears_a_redhatが成り立っている世界があるので、Bさんの帽子がちゃんと決まるとしたら、それは赤の帽子。 なので、assertとcheckを使って反例がないかをチェックする。

assert test1 {
   all w : W | w in B_wears_a_redhat.ext
}
check test1 for 10

Executing "Check test1 for 10"
   Solver=sat4j Bitwidth=4 MaxSeq=7 Symmetry=20
   11935 vars. 240 primary vars. 21825 clauses. 150ms.
   No counterexample found. Assertion may be valid. 19ms.

結果、反例は見つからなかった。 もちろん、より大きなモデルに反例がある可能性はあるけど、まあこの場合には多分大丈夫だろう。

次に、Bさんが「自分は赤い帽子を被っている」ことを知っているかもチェック。

assert test2 {
   all w : W | all w1 : w.K_b | w1 in B_wears_a_redhat.ext
}
check test2 for 10

Executing "Check test2 for 10"
   Solver=sat4j Bitwidth=4 MaxSeq=7 Symmetry=20
   12123 vars. 250 primary vars. 22166 clauses. 133ms.
   No counterexample found. Assertion may be valid. 30ms.

やはり反例は見つからない。

というわけで、どうやらBさんの被っているのは赤い帽子で、しかもBさんもそのことを知っているようです。

参考

λ. 冬景色

冬らしい寒々とした風景をもう少し味わいたかったが、昨日の雪はもうあらかた解けてしまって残念。

[某所の冬景色]

λ. 最終発表会打ち上げ

萩野・服部研の最終発表会後の打ち上げに参加。 OB比率高いよ……

Tags: tom

2008-02-06 [長年日記]

λ. おっぱいチョコ

某会の新人歓迎のゲームで、「おっぱいチョコ」なるものを貰った。 こういうのを考える人はすごいなぁ。

[おっぱいチョコ(哺乳瓶形の容器)] [おっぱいチョコ(チョコ拡大)]

Tags:

2008-02-07 [長年日記]

λ. 正規表現における非包含オペレータの提案 by 田中哲

を読んだ。天泣記 (2008-01-11) より。いつもながらakrさんのこういうセンスは羨ましい。

これが役に立つ例はいくらでもあるとは思うが、最近遭遇したものだと「プレーンテキストをHTMLに変換する際にURLをアンカーにする」処理が直観的に書けそうだと思った。

実際に書いたコード:

def text2html(s)
   re = URI.regexp
   result = ''

   while m = re.match(s)
      result << CGI.escapeHTML(m.pre_match)
      uri = CGI.escapeHTML(m.to_s)
      result << %Q[<a href="#{uri}">#{uri}</a>]
      s = m.post_match
   end
   result << CGI.escapeHTML(s)

   result
end

非包含オペレータがあるとこう書けそう:

def text2html(s)
   s.gsub(/(#{URI.regexp})|!(?:#{URI.regexp})/) {
      if $1
         uri = CGI.escapeHTML($1)
         %Q[<a href="#{uri}>#{uri}</a>]
      else
         CGI.escapeHTML($2)
      end
   }
end

おまけにtDiaryのString#make_linkのコード。 スペースやタブの処理もあるので単純に比較はできないけど、なんというか……

class String
        def make_link
                r = %r<(((http[s]{0,1}|ftp)://[\(\)%#!/0-9a-zA-Z_$@.&+-,'"*=;?:~-]+)|([0-9a-zA-Z_.-]+@[\(\)%!0-9a-zA-Z_$.&+-,'"*-]+\.[\(\)%!0-9a-zA-Z_$.&+-,'"*-]+))>    
                return self.
                        gsub( / /, "\001" ).
                        gsub( /</, "\002" ).
                        gsub( />/, "\003" ).
                        gsub( /&/, '&amp;' ).
                        gsub( /\"/, "\004").
                        gsub( r ){ $1 == $2 ? "<a href=\"#$2\">#$2</a>" : "<a href=\"mailto:#$4\">#$4</a>" }.
                        gsub( /\004/, '&quot;' ).
                        gsub( /\003/, '&gt;' ).
                        gsub( /\002/, '&lt;' ).
                        gsub( /^\001+/ ) { $&.gsub( /\001/, '&nbsp;' ) }.
                        gsub( /\001/, ' ' ).
                        gsub( /\t/, '&nbsp;' * 8 )
        end
end
Tags: 論文

2008-02-09 [長年日記]

λ. Lenovo USB Webカメラ が届いた

クリスマスセールで Thinkpad X61 を注文したときのプレゼントの Lenovo USB Webカメラ (40Y8519) が届いた。思っていたよりも画質も良さそうだし、遊べるかも。ちょうど明日は圏論勉強会だし。

Tags: thinkpad

2008-02-10 [長年日記]

λ. ルービックキューブ

[ルービックキューブ] 先日プレゼントにもらったルービックキューブにはまって夜更かし。きちんとした解き方は色々ありそうだけど、自力でがんばる。一つか二つの面をそろえるのは比較的容易なのだけど、なかなか全ての面をそろえられないなぁ。

ただ、回転先で回転してそれからまた最初の回転を元に戻すなんてことをやっていると、確かに群なんだなぁ、と感じる。

λ. 第三十七回圏論勉強会

今日は圏論勉強会写真

Categories, Types and Structures で計算可能性と領域理論の話に苦しむのに飽きたので、今回から The Haskell Programmer's Guide to the IO Monad — Don't Panic を読むことに。40ページ弱しかなく内容も平易なのですぐに終わるとは思うけど。

Tags: 圏論
本日のツッコミ(全2件) [ツッコミを入れる]

ψ rpf [群なんだなーと感じてみたいんだけど。直感的に。]

ψ さかい [ルービックキューブでの操作は可逆な変形なので、明らかに群ではあるんですけど、直感的にというのはうーん…… # 上で..]


2008-02-11 [長年日記]

λ. MSN Messenger History Merger

デスクトップとラップトップとでメッセンジャの履歴が分かれてしまっていたので、Thinkpadに移行した機会に MSN Messenger History Merger でマージした。メッセンジャの履歴は単純なXMLファイルなので、手でマージするのも難しくはないと思うけど、これはお手軽でいいね。

λ. Tumblr

先日の最終発表の際に、Web系の研究室にいたのにtumblr使ったことないのはどうかと思い、アカウントをとってみた。



2008-02-13 [長年日記]

λ. 『残像に口紅を』

残像に口紅を (中公文庫)(筒井 康隆) を読了。 タイトルの元となった話が思わせぶりだったので、最後はそういう話になるのかと思っていたら、そんなこともなく終わってしまった。

Tags:

λ. つくしのこ

[カモ鍋] 日本酒がこんなに美味しいものだとは知らなかった。色々飲んだので、お酒の名前はあまり覚えていないけど、少し前に知人に教えてもらった「李白」とかを飲んでみた。 料理も美味しかったし、池尻大橋は遠いけど、機会があればまた行ってみたいなぁ。

Tags: tom

2008-02-14 [長年日記]

λ. “Towards open type functions for Haskell” by Tom Schrijvers, Martin Sulzmann, Simon Peyton Jones, and Manuel Chakravarty

を読んだ。

<URL:http://research.microsoft.com/~simonpj/papers/assoc-types/>

λ. プログラムが⊥を返す意味 / プログラムに⊥を渡す意味

萩野先生の情報アーキテクチャ 第4回「領域理論入門」のp.19「最小元の正体」に以下のようにあったのだけど、萩野先生がこれを喋っているのが目に浮かんで……

  • プログラムが⊥を返す意味
    • 答がでない.無理.
    • いくら計算しても止まらない
    • 未定義
  • プログラムに⊥を渡す意味
    • なにも情報がありませんが,計算して!
    • これを使ってはいけませんよ
Tags: tom

2008-02-16 [長年日記]

λ. Alloyでラクトース代謝モデル (AlloyでALP?)

先日、Alloyで知識論理を使って論理パズルを解くで Alloy Analyzer を使ってみて面白かったので、また遊んでみた。 今回の題材は“ProLogICA: a practical system for Abductive Logic Programming”(20080128#p01)に載っていた、大腸菌 E. Coli*1 のラクトース代謝モデルと、それを用いた発想推論。

まず、Alloyによる記述は以下のようになる。

-- 遺伝子 (ラクトースオペロン)
abstract sig Gene { }
abstract sig LactoseOperon extends Gene {
   code : set Enzyme, -- コード化している酵素
}
one sig lacY extends LactoseOperon { }
one sig lacZ extends LactoseOperon { }
fact {
   lacY.code = Permease
   lacZ.code = Galactosidase
}

-- 酵素
abstract sig Enzyme { }
one sig Permease extends Enzyme { }
one sig Galactosidase extends Enzyme { }

-- 糖
abstract sig Sugar {
   amount : lone Amount, -- 現在存在する量
}
one sig Glucose extends Sugar { } -- グルコース
one sig Lactose extends Sugar { } -- ラクトース

-- 量
abstract sig Amount { }
one sig Low extends Amount { }
one sig Medium extends Amount { }
one sig Hi extends Amount { }

-- 大腸菌 E. Coli
one sig EColi {
   feed : set Sugar,   -- 食べている糖
   make : set Enzyme,  -- 作られている酵素
   express : set Gene, -- 発現している遺伝子
}

fact {
   -- ラクトースオペロンはラクトースが存在しグルコースが不足したとき発現
   all g : LactoseOperon |
     g in EColi.express iff
       (Glucose.amount=Low && Lactose.amount=Hi) ||
       (Glucose.amount=Medium && Lactose.amount=Medium)

   -- 酵素はそれをコード化している遺伝子が発現しているときに作られる
   all e : Enzyme |
     e in EColi.make iff
      (some g : LactoseOperon | e in g.code && g in EColi.express)

   -- ラクトースを食べるのは二つの酵素が生産されているとき
   Lactose in EColi.feed iff
     Permease in EColi.make && Galactosidase in EColi.make

   -- グルコースが食べられるためのルールはない
   not (Glucose in EColi.feed)
}

なお、ここではabducibleな述語(amount)以外の述語に関しては、ルール以外で真にならないようにモデル化している。つまり、abducibleでない論理式Aについて、Aを導く規則が A←B と A←C だったら、AlloyがB,Cに関係なくAを真にすることを防ぐために、A⇔(B∨C) という論理式として記述する*2。 というのも、ルールに関係なく真にされてしまうと、「発想推論」にはならないので。

で、E. Coli がラクトースを食べていることを「説明」する仮説を求めるために、そのモデルを作ってみる。

pred goal() { Lactose in EColi.feed }
run goal

結果は以下のようになり、これはabducibleな述語amountを使った仮説 Glucose.amount=Lactose.amount=Medium が得られたことに相当する。 Nextボタンを押すと、Glucose.amount=Low, Lactose.amount=Hi な仮説も得られる。

[結果のモデル]

ALP用のシステムと比較すると、ルールにないものは成り立たないということを明示的に記述せねばならず面倒。また、ALPの望ましい性質である仮説の極小性の保証はない。ただ、ALPのシステムの中には充足可能性のソルバを内部で利用するものもあり、ここではAlloyを使って同様のことをやってみたということで。

Tags: Alloy

*1 「もやしもん」でもお馴染み

*2 言い換えるとcompletion semantics (完備化意味論)にしたがって解釈している。


2008-02-17 [長年日記]

λ. PDFの余白をpdfcropで削除する。

論文などのPDFを印刷するとき、特に一枚の紙に複数ページを印刷するときには、「余白を削除して拡大すれば読みやすくなるのになぁ」と思うことが良くある。Acrobatのトリミング機能を使えば余白を削除できるのは知っていたのだけど、そのためにAcrobatを買うのも面倒くさい。……と思っていたら、pdfcropというフリーのツールを発見。

PDFCROP takes a PDF file as input, calculates the BoundingBox for each page by the help of ghostscript and generates a output PDF file with removed margins.

処理に失敗するPDFファイルもある*1けど、これは便利!

【追記】 <URL:http://pdfcrop.sourceforge.net/> という別のツールもあるようだ。

【追記】 それから、元のpdfcropの拡張パッチpdfcrop2

*1 これだからPDFは……


2008-02-18 [長年日記]

λ. PPL2008で発表します

すでに暫定版プログラムが公開されていますが、第10回プログラミングおよびプログラミング言語ワークショップ (PPL2008) で「非正格関数の融合変換における始代数の存在について」という題で発表します。 内容は基本的には修士のときにやっていたことをまとめ直したものです。 初参加なのでちょっと不安なのですが、よろしくお願いします。


2008-02-19 [長年日記]

λ. 外貨預金

住信SBIネット銀行の「豪ドル・NZドル 一年もの定期預金 特別金利キャンペーン」というのに踊らされて 2,000 AUD ほど預金してみた。金利は年6.5%(税引後 年5.2%)とのことだけど、さて。あと、外貨預金をするのは初めてだったのだけど、申し込みの際、表示される為替レートの有効期限が10秒でカウントダウンしていくというのが面白かった。

Tags: money

λ. HD DVD

撤退が発表されて、株価が上がっていたのがなんとも……


2008-02-20 [長年日記]

λ. メール増殖

Thunderbirdでメールを整理*1していたら、どうもThunderbirdかサーバーかの調子が悪くて、いつの間にかメールが色々複製されまくってしまった。結果、5万通のspamが15万通のspamになるなど、色々面倒くさいことに。結局、Remove Duplicate Messages (Alternate)で重複メールを削除。Remove Duplicate Messagesよりもこっちの方が高速なようだ。

*1 普段はMewでメールを読んでいるのだけど、Mewだとフォルダの整理とかはしにくいので


2008-02-21 [長年日記]

λ. “Three Partition Refinement Algorithms” by Robert Paige and Robert Tarjan

20041122#p02 で「Paige-Tarjan の手続きってのはstabilizationのための効率的なアルゴリズムのことなのかな? (ぉぃ」とか書いたが、ようやく*1原典の論文読んで、アルゴリズムを理解した。載っている3つのアルゴリズムのうちの relational coarsest partition problem のためのアルゴリズムが「Paige-Tarjan の手続き」と書かれていたもの。

(後で書く)

確かにこれはムダが無くて速そうだ……

試しに Ruby で書いてみた。 paige-tarjan.rb

Tags: 論文 ruby

*1 というのもこの論文を入手したのは2004-11-29だったので

λ. 最近のRuby処理系の話

第341回PTTでやっていた、笹田さんの「最近のRuby処理系の話」を聞いてきた。 並列版の話など、とても面白かった。 以下は印象的だった話。

自動的なアフィニティの設定

スレッド間でのロックの取り合い(?)を防ぐために、監視スレッドがいて、閾値を超えたら自動的にアフィニティを設定して同一CPUに割り当てるとか。かっこいい!

インラインキャッシュの話

インラインキャッシュの話への首藤さんのツッコミは、最初は納得してしまったけど、よくよく考えたらそう簡単ではないような。例えば、以下のコードを考える。

class Foo
  def foo
    ...
  end
end

class Bar < Foo
end

x = Bar.new
2.times {
  x.foo
}

このとき、私の理解では以下のようになる。

  • x.fooが一回目に実行されたとき、<Bar, Foo#foo> というキャッシュエントリが作られて、それへの参照がインラインキャッシュとして格納される。
  • 次にx.fooが実行されたとき、x.classとBarとを比較して、それが一致するのでFoo#fooを直接呼び出す。

首藤さんのアイディアは私の理解では「エントリへの参照ではなくFoo#fooへの参照を直接インラインキャッシュに格納してしまう」というものだと思う。ただ、Foo#foo は Foo への参照は持っていても、Barへの参照は持っていないだろうから、x.classとの直接の比較が出来ないのではないだろうか?

ダミーのBar#fooを用意しておけば良いだけかも知れないけど。

64bit環境での浮動小数点数の即値化

結局、Rubyでは指数と仮数のどちらを削るのかは忘れてしまったが、「数値計算屋は0〜1付近に正規化するので、指数部を削っても結構大丈夫。指数部が沢山必要なのを書くのは馬鹿」というコメントが興味深かった。

関連リンクなど

Tags: ruby

λ. お菓子買いだめ

20080122#p01はやっぱり買いすぎだった。 まだ残っているので、今回は少なめに。

[お菓子の小山]

Tags:

2008-02-22 竹島の日 [長年日記]

λ. Prieaを試した

広告がはいる代わりに、無料で写真を写真を印刷してくれるサービスであるPriea。前々から試そうと思っていたので、こないだためしに注文してしてみたのが、届いた。 前に見たときには30枚1組を1月に2回までだったと思ったけど、試したら10枚1組を月に1回になってしまっていた。30枚を月に2回注文できるなら結構使いでがあるかと思ったけど、月に10枚しか印刷できないと結構使いどころが難しそうだ。


2008-02-23 [長年日記]

λ. RHG読書会::東京 ふつパイラ篇

久しぶりの青木さん本 & 久しぶりの面子。

3次会@ルノアールにて、先日の最近のRuby処理系の話に関係してLuaの浮動小数点数の表現の話が出た。 Luaは浮動小数点数も整数もポインタも全部まとめたunionにタグをつけて、rubyでいうところのVALUEとして扱っているそうな。 ただ、タグの部分が勿体無いので、IEEE 754のNaNの仮数部は0以外であれば良いことを利用して、そこに整数とポインタを埋め込もうとしているとかしたとか。仮数部は52bitあるので、32bit環境ならば整数やポインタは余裕で埋め込めるが……

λ. オーディオの設定に問題を見つけたので、iTunesは実行できません

iTunesをアップデートしたら、iTunesの起動時に「オーディオの設定に問題を見つけたので、iTunesは実行できません」と言われて起動できないようになってしまった。 結局、Quicktimeをセットアップしなおしたら直っのだけど、Appleのアップデートはなんか信頼できないと思った。こないだのジャンルが勝手に日本語になる件みたいなこともあったしね。


2008-02-26 [長年日記]

λ. Windows Live SkyDrive

Windows Live SkyDrive を使い始めた。5GBの容量とファイルサイズの50MBの制限は、ちょっとしたもののバックアップ等には十分だし、重宝しそうだ。

ただ、IEにドラッグアンドドロップしてのアップロードは、ファイルに対してしか出来ず、フォルダを対しては出来ず面倒くさい。あと、理想を言えばファイルシステムとしてマウントできれば良いのにね。

【追記】 む、フォルダ間でのファイルの移動は出来ないのか。 この点は結構不便。

λ. SFCにて

たまたまSFCに行ったので、その際に久しぶりに向井先生とお話してきた。 微分幾何学(?)等について教えてもらった。

また、古川研に寄ったところ、古川先生が退任するので、研究室を片付けているところで、尾崎先生のD論「Efficient Search Algorithms for Inductive Logic Programming Based on the Most Specific Hypothesis」と、International Symposium on Skill Science 2007 (ISSS'07)の予稿集CDをいただいてしまった。


2008-02-27 [長年日記]

λ. PaSoRiの無償交換

[新しいPaSoRiの写真] スラッシュドットジャパンでの PaSoRiのリコールというコメントで知ったPaSoRiの無償交換に該当していたので、今更ながら交換してもらった。

こういう交換って、送ってから代わりのものが送られてくるものだと思いこんでいたのだが、新しいものとその場で引き換えてくれた。こういう方法だと不便な期間がなくて良いな。


2008-02-28 [長年日記]

λ.Lest We Remember: Cold Boot Attacks on Encryption Keys” by J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, and Edward W. Felten

スラッシュドット・ジャパン | DRAMに残った情報からディスクエンクリプションを解く より。TrueCryptを使っているのでドキっとして読んだのだけど、これは面白い。

  • 電源を切ったDRAMは、一般に思われているよりも長い間情報を保持している
  • 冷却すればその期間をさらに延ばせる
  • 時間が経つにつれて保持している内容は信頼できなくなるが、消えたときに0,1のどちらになるかは高い確率で予想可能
  • 暗号化ソフトウェアが高速化のために計算しておく様々な値(e.g. 鍵スケジュール)は鍵そのものよりも遥かに冗長性が高いため、「誤り訂正符合」として用いることが出来る
  • それらを組み合わせて使うと、鍵は高速に発見・復元可能

そういえば、某秘文なんかも、当然同じようにアタックできるんだろうなぁ……

【追記】 最近のTrueCryptではスリープ時に自動的にマウント解除するのがデフォルトの設定になっている。この攻撃への対策のためだろう。


2008-02-29 [長年日記]

λ. LIFE Books onlineご利用キャンペーン

送料無料でかつLIFECARDのサンクスポイントが10倍たまるというキャンペーンをやっていたので、買おうと思っていた本を試しにちょっと買ってみる。 LIFECARDの入会後3ヶ月はポイント2倍というのとあわせると、多分11倍になるのだろう。といっても、それでも大学生協のほうが得だったわけだけど。