2012年8月30日木曜日

社外の複数の人間とやり取りしていると時々混乱する。レイヤーが違うしそもそも分野が違う連中がごっちゃになる。向いてないんだって。こういう仕事は。それはそうと河合荘3巻は無事買えた。行きの電車はアゴタ・クリストフです。読書会したい。感想を言い合うと傷口が痛み出すので、各人お気に入りの箇所を写経するだけ。そんで書き写した所を互いに見せ合って、うむ、いいね!と言って解散。

2012年8月29日水曜日

「僕らはみんな河合荘」の早売りをしていないかと、とらに数年ぶりに寄ってみたが、店員の振る舞いと言動の気持ち悪さに僕はもう限界だと思った。永遠にさようなら!

2012年8月27日月曜日

今日は下半期最悪の日候補であった。ので、慌てて酒を飲んだ。飲んでる。

台風 14 号が旋回して再度台湾を襲う進路だ。瀕死の息子をバックしてもう一度轢いた

2012年8月26日日曜日

料理に慣れていない頃は、適量って何だ、少々ってどのくらいだ、きちんと書けよ! と思ったものであるが、慣れるといちいち計量などしないのでどうでも良くなるんだよな。大体使う野菜の大きさも味も毎回違うのに調味料の量だけが一定の訳がないのは道理だろう。糖度いくらの人参を 125 g と言われてその通りに調達するわけがない。pH いくらのレモン果汁 1 g とかな。
バターナッツの豆乳ポタージュの作り方: 圧力鍋で玉ねぎ2つを薄切りにして炒める。バターナッツを小さめに切って鍋に放り込む。ひたひたに水を入れて切り込みを入れた鶏肉を一枚乗せる。加圧して程よく煮る。肉を取り出す(何かに使う)。コンソメを入れつつ、ハンドミキサー(というのか、刃にモーターがついた何か)でかぼちゃを粉砕する。豆乳を適量入れる。好みで生クリームも入れる。塩コショウで味付けして終わり。クルトンがあると嬉しい。
ヤマシタトモコ, "BUTTER!!! 1-4", 講談社。少女漫画家だなあ。関係性を強調しすぎと思う。しかしこれでも青年誌向けになっているのだろう、多分。登場人物の言葉が若者風で読むのが少し辛い。I'm DT too.
午後はプール。少し体調が悪かったが水に入ったら平気だった。水かきをつけて泳いでみたいが着用しても良いのかしら。フィンはさすがに駄目だろうな。その後コーヒー豆を買って帰宅。アイスコーヒーは氷を大量に消費するなあ。8月ももう終わり。今年の夏は例年より涼しかったのだろうか。あまり暑さを感じた記憶がない。スラックスを洗濯してアイロンがけ。何度か洗ううちに心なしか縮んだ気がする。しゃがむと尻がきつい。上着を着ていないから破れると悲劇だな。
夕飯:バターナッツの豆乳ポタージュ、白菜のトマトクリームパスタ。

2012年8月25日土曜日

宿儺かぼちゃ 250 円、バターナッツ 300 円。バターナッツはポタージュにするとして、宿儺かぼちゃはどうしようかな。

2012年8月23日木曜日

「結晶する」という言い方は好きだな。
今日は java 豆腐祭だった。おまえも麻婆にしてやろうかぁ。
http://www.amazon.co.jp/dp/481245591X
かほりさんがまさかの 1 円…。

2012年8月22日水曜日

それで、不快感を得ないためには私のために私が読みそうな文章を下読みしてくれる人がいれば良い、という結論に至るのである。「子供に見せたくない TV 番組」みたいなものだ。基本的に制限されるのは(略)。

そういう事もあって(なくて)、江沢洋の解析力学を開いたのだが、初っ端から面白いことが書いてあった。電気回路のキルヒホッフの法則はジュール熱の最小化問題であると。これには「なるほど!」と思った。今までなぜ気づかなかったのだろうというほど自然な考え方だ。
知的不誠実な態度があらわな文章を見るとすごくがっかりする。勝手に期待して勝手に失望しているだけなのだが。ドクターなら議論の仕方くらい知っておけよハゲという。

まあ知ってはいるがついカッとなって、と言うヤツなんだろう。言葉と人格が分離できない人は多い。あと否定形に過剰反応する人も。昔 "P の定義は直感的でない" と言ったら "いや、直感的だ!" と根拠も示さず強硬に主張されたことがあった。直感的かどうかはどうでもいいと思うんだが…。あと病院の例な。"術後二週間は走ってはいけません" より "術後二週間を過ぎたら走っても平気" の方が良いとか何とか。

2012年8月21日火曜日

ちょっと前に、批判的なコメントをつけられても脊髄反射はせずに青筋立てながらもありがとうございますと書け、というライフハック()が流行ったと思うんだけど、最近見ていない気がする。結局嫌なことはしないって事だよな。
午後は mini に乗って道なき道を疾走してた(本製品が利用している地図データの都合上、表示されない道路があります。予めご了承ください)。ウィンカーとワイパーのレバーが日本車と左右逆で焦った。交差点の手前でレバーを下げたらワイパーがウィーンって。計測したデータを処理しようと思ったが、ちょうど定時になったのでさっさと帰った。上司もいなかったし。

2012年8月20日月曜日

旅行のために飛行機のチケットを予約した。旅行というか日帰り海水浴なのだけれど。島の飛行場に何度電話をしても出ないので、調布帝国の大飛行場に電話したら代わりに予約してくれた。なんでも離発着の時間なので職員が滑走路に出払っているのだろうという事。どんな小規模空港なんですか。不安になってカーゴカルトについて調べた(業務時間中)。
地下化調布駅。上下計四線が同じように広がっているのかと思いきや、地下三階建てになっていた。B1F が改札、B2F が下り、B3F が上り。地上が見えないのはつまらんのう。
調布近辺の路線が地下化されて駅舎も地面の下になった。古い線路を渡る通路もできて、踏切待ちもなくなった。調布駅が姿を変えるのを見るのはこれで二度目か。便利になったのだろう。良いことなのだろう。しかし私はいつだって心情的には失われる物の味方だ。踏切待ちだって別段嫌いではなかったのだ。

2012年8月19日日曜日

夢:会社に行きたくなくてサボることにした。電車で愛知の徳島に向かう。徳島駅というのはなくて、総合何とかレジャー駅という名前らしい。さすが辺境の地にあってなかなか着かない。昼までに着かないと忍者屋敷のチケットが取れないのだが、と思いながら居眠りする。目が覚めると余市駅を発車したところだった。路線図を確認すると、徳島の2つ先らしい。時刻は迫っている。もどかしく焦り出すがどうにもならない。徳島から先は単線になっていて、スレ違いのたびに時間がかかる。ようやく徳島に戻るとチケットは売り切れ、しかも雨。売店で傘を買って駅舎の中に戻る。傘をさしたまま構内をウロウロし、栗おこわを買って帰った。
最初は焼きなまし法も使おうと思って逆温度 BETA も定義しておいたがやる気がなくなって放置してしまった。でも収束している感じだしこれでいいか。
しかしあれだな。GeoUtil が要らない子っぽいとか、Points と Point の役割分担が不明瞭とか、そもそも計算が遅いとか色々反省点はあるな。
そんで、これがコード。ほとんど 1-pass で書いたので(略)。肝心のグラフ出力部を作っていないけど、座標とリンクは取れるからどうとでも。アルゴリズムは簡単で、リンクを二次元行列で表現する。点 i,j に対して距離は d_{i,j} = d{j,i}, d_{i,i} = 0 だからリンク行列は対角要素が 0 の対称行列になる。この行列に i 番目の要素以外が 0 の縦ベクトル (0, ... , 0,  1, 0, ..., 0) を右からかけると点 i に関するリンクベクトルが得られる。

#!/usr/bin/python
# coding: UTF-8

from numpy import *
import random
import math
import sys

DIM = 10
K = 1.0
SCALE = DIM * K
DISP_SCALE = K
BETA = 10.0

class GeoUtil:
    @classmethod
    def getDist(cls, x1, y1, x2, y2):
        return math.sqrt((x1-x2)**2 + (y1-y2)**2)

    @classmethod
    def getTrialDisplacement(cls):
        return random.uniform(-DISP_SCALE, DISP_SCALE), random.uniform(-DISP_SCALE, DISP_SCALE)

class Points:
    def __init__(self):
        self.linkMtrx = self.initLink()
        self.pts = [Point() for x in range(DIM)]

    def initLink(self):
        rndMin, rndMax = 0, 10
        mtrx = zeros((DIM, DIM))
        for l in range(DIM):
            for c in range(l):
                mtrx[l,c] = mtrx[c,l] = random.randint(rndMin, rndMax)
        return mtrx

    def getDist(self, i, j):
        (xi, yi) = self.pts[i].getCoord()
        (xj, yj) = self.pts[j].getCoord()
        return GeoUtil.getDist(xi, yi, xj, yj)

    def getDistMtrx(self):
        mtrx = zeros((DIM, DIM))
        for l in range(DIM):
            for c in range(l):
                mtrx[l,c] = mtrx[c,l] = self.getDist(l,c)
        return mtrx

    def getDisplacementMtrx(self):
        return self.linkMtrx - self.getDistMtrx()

    def getTotalEnergy(self):
        energy = 0.0
        for i in range(DIM):
            energy += self.getLocalEnergy(i)
        return energy

    def getLocalEnergy(self, i):
        Dmtrx = self.getDisplacementMtrx()
        localEnergy = 0.0
        Dlist = dot(Dmtrx, probeVec(i))
        for d in Dlist:
            localEnergy += d**2
        return localEnergy

    def tryMoving(self, i):
        oldLocalE = self.getLocalEnergy(i)
        self.pts[i].updateCoord()
        newLocalE = self.getLocalEnergy(i)

        dE = oldLocalE - newLocalE
        if dE < 0:
            if random.uniform(0,1) > math.exp(-BETA * math.fabs(dE)):
                self.pts[i].revertCoord()

    def updateSystem(self):
        for i in range(DIM):
            self.tryMoving(i)
        return self.getTotalEnergy()

class Point:
    s_num = -1
    num = 0
    def __init__(self):
        Point.s_num += 1
        self.num = Point.s_num
        self.x, self.y = random.random()*SCALE, random.random()*SCALE

    def getCoord(self):
        return self.x, self.y

    def setCoord(self, x, y):
        self.x, self.y = x, y

    def updateCoord(self):
        self.oldX, self.oldY = self.getCoord()
        dx, dy = GeoUtil.getTrialDisplacement()
        self.setCoord(self.oldX + dx, self.oldY + dy)

    def revertCoord(self):
        self.setCoord(self.oldX, self.oldY)

    def getLinkedPoints(self, mtrx):
        return dot(mtrx, probeVec(self.num))

def probeVec(index):
    vec = zeros((DIM))
    vec[index] = 1
    return vec

def main():
    pts = Points()
    for i in range(501):
        e = pts.updateSystem()/(DIM**2)
        if i % 5 == 0:
            print i, e

if __name__ == '__main__':
    argvs = sys.argv
    argc = len(argvs)
    if argc != 2:
        print 'Usage: # python %s num' % argvs[0]
        quit()
    DIM = int(argvs[1])

    main()
~            

2012年8月18日土曜日

できると言っておきながら一行もコードを書かないのもあれかな、と思って書いてみた。
n 点の間に乱数で整数の長さ d_{i,j} in [0,10) のリンクを張り、緩和過程を眺めた図。エネルギーと言っているのはバネでつながれたモデルを想定して、自然長からの変位の自乗に比例したポテンシャルエネルギーを計算しているから。手元の環境では n = 10 で 2 秒ほど、n = 100 で 20 分ほど。遅い…。MCS は全ての点に対して移動を試行するとインクリメントする。

今飲み始めるとコードが書けなくなるなぁ、と思いながら飲んでしまった。うぇーい。
昼頃雨音で目覚めた。久しぶりに夢を見たが内容は忘れた。雨が上がるのを待ってプール。30 分泳いでもそれほど疲れなくなってきた。

2012年8月17日金曜日

PL/PM 研修: 1. ガントチャートを描け  2. 残タスクを頭数で割り算せよ
PG 研修: このコードを web サービスに組み込め
営業研修: このコードを売りに行け
夏休みの友: 1. ガントチャートを描け  2. 残タスクを頭数で割り算せよ
最近の仕事: 歪んだ球面上にばら撒かれた点の時系列データを、別の歪んだ球面上にばら撒かれた線分の集合に対応させるコードを書いている。三日くらいでとりあえず形にして、ここからどういう改良を施してゆくかが問題なのだが、この程度でも実は売り物になるのかと思うと世の中ちょろいよなっていう。
http://www.amazon.co.jp/dp/4592710444/

最近読んだ中で最も尋常じゃない漫画。震えるぞハートってレベルじゃねーぞ!
終電を逃すと桜上水止まりなのだが、そういう時刻にタクシーに乗って、深夜の甲州街道を疾走する車列を眺めていると、なんというか、不思議な気分になる。
落雷で電車が止まってしまった。桜上水から歩いて帰ることに決定。運良く八幡山でタクシーを拾えた。小田急じゃないから駅で客待ち出来ないとのこと。よくわからんが大変だな。

2012年8月16日木曜日

ちょっとした数値計算のコードを勢いだけで書いたらえらいことになった。飲み物を取りに行った数十秒の間に解読の緒を失った。データ構造をもう少し考えねば。

2012年8月15日水曜日

早く結果を見たかったので grep -v で要らない枝の刈り込みをしてパーサに突っ込んだ。SAX はまた今度。

2012年8月14日火曜日

ちょっと大きい XML を何も考えずにパーサに突っ込んだらメモリを食い潰してスワップした。うーむ。grep を通すか sax を試すか。

2012年8月13日月曜日

電車が心なしか空いていて、もしかしてこれが噂に聞く盆休みなのかと思った。
省略されているのと目的語が不明確なのとで題意を正確に把握できない。あと用語が一般的でないような。24 時間経ったようなのでもはや用済みと思うが:

「k 次元ユークリッド空間 S 上で N 点の座標が与えられており、これを平面 S' に射影する。S 上の点 i, j 間の距離を d_{i,j}、 S' 上の距離を d'_{i,j} と書くとき、\sum_{i\neq j} |d_{i,j} - d'_{i,j}| を最小とする平面 S' を定めよ」あたりでどうか。「N個の頂点が与えられている」を「座標は与えてねーよ」と読むと少し面倒になる。射影じゃなくなって「写す」になるのか。

座標が既知の場合:重心を原点に選んで内積を計算するんじゃねーの?
座標が未知の場合:you, モンテカルロしちゃいなyo!

モンテカルロなら普通は自乗距離にして、あとは並進運動量を気にしないために周期境界条件を課すかな。自然長 d_{i,j} のバネで繋がれた質点系の分布ですね。
久しぶりに明日葉を食べた。香りがいいねえ。

2012年8月12日日曜日

今日の夕飯: 高菜・椎茸・鮭のおこわ、冷奴、玉子焼き、大根おろし、鰹のたたき(薬味:生姜、にんにく、紫蘇、茗荷、ネギ)。
今日もプール。運動公園まで自転車を漕ぐだけで汗だく。夏め。少しずつ長く泳げるようになってきている。とは言え小学生の頃にはまだ及ばない。バタフライなんてもうできないし。
昨日の夕飯: ご飯、レタスと豆腐のスープ、蒸しナス(丸ナス)、ピーマン炒め、春巻き、シュウマイ、漬物。

2012年8月11日土曜日

会社では Win/Linux、家では Win/Linux/iPad、ブラウザは Opera/Chrome/Safari、常用の gmail アカウントは 4 つほど、というわけでブックマークは記憶だよりだったのだがアンテナを登録してみた。今更。http://a.hatena.ne.jp/awayama_hajime/

2012年8月10日金曜日

今日来た営業の人が疲れすぎだった。休め、俺が許す。っていうか段々買いたくなくなってきたぞ…。売れないのは製品のせいじゃなくて…、っていう。

2012年8月6日月曜日

人が「そんなことに金を使うな」と言った時、どのような心理的機構が働いているのか。加速器とか生活保護とか、何でもいいんだけれど。多分それに対して「私の何かが損なわれている」という実感があるのだろう。それがなければ、それを実現するための税金を払わなければ、私はもう少し手元に小銭を握っていられた、という。でも「損なわれている」という実感がすでにフィクションだよな。架空の富める自分を設定して、架空の欠如を見出して、現実の自分を損なわれたそれと認識するというのは随分貧しい考え方だ。

あるいは、それを非難することで何かが贖われるのかもしれない。科学や数学に挫折したその自尊心や、薄給を手にするために費やした時間や苦労が。私は間違っていない、彼らは間違っているという錯覚を通して。
先日プールの帰りに藤枕を買った。使ってみたが固くて高くて一晩寝たら頭と首に違和感。考えてみれば店のおっさんが人間工学なんざ無視して適当に作ったに違いないから寝易いはずが無いのだ...! 次はソバガラをためしたい。土浦にいた頃はストローを切ったのが入った枕を使っていて、あれも快適であった。

2012年8月5日日曜日

相互友好協力協定ってなんだよ
http://www.city.chofu.tokyo.jp/www/contents/1176118943950/files/163105026575.pdf
昨日: 午前中はラブやんを読んで過ごす。昼は Asian Taipei でバイキング。食べ過ぎ。小雨に濡れながら本屋経由で喫茶店。ラブやんの続き。お腹が空かないので夕飯は無しでビーフジャーキーとビール。暑かったので久々にスーパードライを買ってみた。あとクラシックラガー。

今日: 午前中はラブやん再読とアオイホノオ。米粉パンとポテトサラダと牛乳。午後は洗濯。その後プール。夏休みなのに公園に子供がいない。塾に行っているのかクーラーの効いた部屋でテレビゲームなのか。プールは普段より人が多いが込んでいるという程でも無し。公園内をぶらぶら歩いてから帰宅。ピサの斜塔がいよいよ崩壊間近であるが片付けはしない。夕飯: カボチャのそぼろ煮、ポテトサラダカレー風味、がんもどきと人参の煮付け、卵とエノキダケのスープ、高菜チャーハン。最初の三品は残り物。

2012年8月3日金曜日

朝から外出。直行にすれば寝坊できるかと思いきやそうでもなかった。海のそばまで。一時間ほど雑談。その後は漫画を買って二時間ほど喫茶店。午後に約束すればよかったか。

2012年8月2日木曜日

前の日記: http://d.hatena.ne.jp/awayama_hajime/

また blogger に戻ってきた。不満もあるが所詮日記である。チラシの裏よりは使いやすい。今時白紙なんて無いからな。