最近は仮想機械というか、バイトコードインタプリタに興味があって、色々調べたり考えたりしているのですが、なかなか芽が出るまでにはかかりそうです。
最近は仮想機械というか、バイトコードインタプリタに興味があって、色々調べたり考えたりしているのですが、なかなか芽が出るまでにはかかりそうです。
経験値上昇☆みててね。じゃなくて、今日は朝から暖かい風が強くて、枯れ葉が舞う舞う。マウマウっていうとBPSを思い出すんですが、あれって何だったんですかね。いや、そんなことはどうでも良くて、舞い散る銀杏の葉が地面に敷き詰められていて、まるで金色の絨毯でした。いや、それはかなり大げさですが。自転車で坂道を登るときに葉っぱで滑るんじゃないかと心配になりました。前を走っていた自転車が止まったので何かと思ったら、帽子が飛んできました。自転車にまたがったまま拾って、手渡しながら「風が強いですね~」みたいなことを言ってみたり。
えーと、あれよあれよというまに十二月であります。今年ももう残りわずかであります。今日は職場の人たちとよく行く中華料理屋で身内だけの忘年会でした。いつもは定食やラーメン、チャーハンなどで安く腹一杯になるのですが、今日はコース料理。普段は食べないサイドメニュー系の料理をたらふく食べました。もう食べられない。死ぬ。ジャスミン茶を飲み過ぎてたぷたぷです。
個人的には変な話いい話が多くて好きだ。
最近頭が悪くって困るね。物覚えも悪いし、集中力もない。ちょっと作業を中断するとすぐに何をやっていたか忘れてしまう。とりあえず、ブラウザは使い終わったら閉じようぜ。
国分寺に出来たステーキハンバーグ&サラダバー けんに行ってみました。昨日テレビで紹介していたのを私も見たのですが、同僚の方も見ていたようで、行ってみることに。テレビではいろんな手でコストを切り詰めているということを紹介していたので、肉も安っぽいんだろうと思っていたのですが、思ったよりちゃんとしていました。ライス・スープ・カレー・サラダバーがほとんどのメニューでデフォルトで付いてくるのが嬉しいですね。カレーも、シェーキーズのカレーみたいなのかと思ったら、想像以上でした。スープもガストのコンソメスープみたいなのかと思ったら、大きな肉が入っていて、しっかりした味でした。
先週末から差分抽出アルゴリズムに取り組んでいます。
二つの列の差分を調べるというのは、LCS(Longest Common Subsequence:最長共通部分列)やSES(Shortest Edit Script:最短編集スクリプト)を求める処理です。
例えば、abcdとabbbcという列があった場合、(ab)(c)というのがLCSで、共通(ab)追加(bb)共通(c)削除(d)みたいなのがSESです。追加2、削除1なので、編集回数は3で、これを編集距離(Edit Length)が3と呼びます。
で、実際にこれをどう解くかなのですが、以下、見つけた限りの資料。
で、結局私はどうしたかというと、「An O(NP) Sequence Comparison Algorith」の最後に書いてあるコードを元に編集距離を求めるプログラムを試してみて、そこから共通部分の検出時に記録をとるような処理を追加してLCSを求めました。
でも、複数ある答え(LCS,SES)のうち、一つしか求められないのが痛いところです。長い列と短い列の差分をとった場合、細切れな差分が出来てしまう場合があります。たとえば、ravsogiupihrhawegoiurseagroihuとroihuの差分をとった場合、削除(25文字)、共通(roihuとなってほしいのですが、実際には共通(r)、削除(3文字)、共通(o)、削除(1文字)、共通(i)、削除(3文字)、共通(h)、削除(8文字)、共通(u)、削除(10文字)のようになってしまいます。どちらも編集距離25なので、間違ってはいないのですが……。CVSを使っているとよく括弧だけの行が全然関係ない変更していない行とマッチして、気持ち悪い差分を出力してしまうことがありますが、これが原因なんですね。とりあえず、今回の用途では、4文字以上連続でマッチしないと共通と認識しないようにすることで回避してみました。普通どうするものなんでしょう。
不透明度はやはり0.0~1.0とすべきなんだろう。ということで関係するところを修正。
ただ、この手の輝度とか比率とかを表す部分って他にも色々あるんだよね。全部直すのはちょっと面倒だなぁ。まあ、少しずつ直していきましょう。
ある種のWiki記法(軽量マークアップ言語)をhtmlへ変換するだけのCGIが欲しいので、Haskellの勉強題材にしようと思い、サーバーにghcをインストールした。ちょうど「ふつうのHaskell入門」にもWikiの作成例があることだし。