トップ «前月 最新 翌月» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|

ToDo:


2010-06-01

_ ctrl + alt

なんか知らんけど ctrl + alt が効きにくい。 どうも Alt => Ctrl と押すと効かない。 Ctrl => Alt なら効く。 悲しい…というかひどすぎる。

何でこんなことになったんだろうか…

(01:27)

_ 引越し記録

たしか4月末くらいに不動産屋に行ったと思う。

「なんか8月くらいまでに引越したいんですよねー」 「そういう予定がまだせっぱつまってない人って大抵ギリギリまで決めないんですよね」 とか言われて、商売やる気あるんだろうかと思ったけど、 こういうことを言ってなにくそ契約してやると 思わせて契約させる高等テクニックなのかもしれない。 実際契約してしまったわけだし。

でまぁ今駒場に 7 万で 8+4.5 畳なんで 六本木付近で似たような条件でお願いします ええそんなの無いですよという感じで、 その場でいくつか物件を見せてもらった。 ここでもなんか僕が良さげとか言うと でもここは何々が無いとかダメ出しされて、 まぁそういう商売もあるものだろうかとか思った。

でまぁいくつか物件候補をもらって さらに他の候補も送ってもらう約束をして帰った。

追加された候補も含めて適当に紙を見て6件くらいにしぼって、 その場所を確認しつつ六本木を歩いてみた。 3件くらいこれはいい感じかなぁと思うのがあったので この3つ内見させてくださいとお願いした

でまぁ内見。 1つは駒場と似たような不便で古いけど とりあえず広い(6+4.5くらい)明るいというような感じで85000くらいで、 1つは 8 畳ワンルームで 80500 円とかな感じで、 最後のはワンルームで 8 畳より狭いし高いので瞬殺除外という感じだった。

なんか残った2件はイヤな感じの関係で、

  • 両方会社への距離は似たようなもんで極めて近い
  • 前者は駅的には便利何故なら乃木坂と六本木どっちにも行ける
  • 後者は渋谷はバスでラクに行ける
  • 前者は広い
  • 前者は4階まで階段、後者は2階
  • 前者は明るい(個人的にどうでもいい)
  • 前者は雰囲気ぼろい(個人的にどうでもいい)
  • 後者はいつでもゴミ捨てれる
  • 後者の方が少し安い
  • 後者は蛇口ひねればお湯が出る
  • 前者は風呂少し広いけどバランス釜

まぁなんか色々違って比較しにくい2者なので、 もうしばらく待つかなーとか思ったんだけど、 しかしまぁもう一回内見させてもらうとかも面倒だし 内見させてもらって決めないってのも ちょっと申し訳なささがあるし 適当にどっちかで決めることにした。

で、最初はまぁ広い方でしょということで前者を強く考えてたんだけど、 しかし実際に考えてみると4階まで登るとかめんどうだし、 荷物 GC する予定だから広くなくてもいいんじゃないかなーとか ゴミいつでも捨てれるとかいいんじゃないかなーとか思って、 ただ乃木坂近いのはいいなぁとか思いつつも後者にしたんだった。

まぁ会社引越すのはだいぶ先だし荷物 GC にたっぷり時間を使いたかったので、 契約は6月頭からにしてくれと頼んで ずいぶん先やねーとか言われつつもまぁ OK だった。

しかしまぁ少し冷静に考えれば会社が引越す2ヶ月も前に 引越す理由とかあんま無いので、 普通に考えるともっと遅く探すべきだったんだと思う。 メリットとしては夏になって気怠くなる前に引越せたから ゴミ捨て作業とかをちゃんと結構やったってことかなぁ。

値段は8万と言うと安いと思われるようだ。 僕ももっと高くなるのかなぁイヤだなぁと思ってた割には…という感じだった。 まぁ不景気とかで六本木とか安くなってるみたいだった。 あと六本木って事務所とか多くてそれなりにマンションとか多いんだね。 特にミッドタウンの周りのとことかなんか 入居者の半分くらい会社じゃないのかなみたいなマンションが結構あった。

そういうところは事務所 or セカンドハウス的な利用も多いみたいで、 洗濯機置き場とか無かったり収納が無かったり、 ちょっと生活には不便な感じもあるみたいだった。

敷金は2ヶ月で礼金は1ヶ月らしい。

敷金は普通に使ってるぶんには基本的には全額返すべきらしいんだけど、 クリーニング代は特約として取りますよ〜とか契約書に書いてあって、 まぁこれってほとんどの物件が同じ条件なんだとは思うんだけど、 しかしこういう条件は借りる段階になって聞くのでイヤな話だよなぁ… と思う。

契約仲介料は zinnia さんとこ見ると家賃半額分とかの場所もあるんだなぁ 僕は今まで3回とも家賃全額分だった気がする…いや最初のとこは覚えてない。 これも契約の段階になるまであまり教えてくれないよねーと思う。

礼金はまぁみんな言う通り最悪の意味不明システムというか もう礼とかいう字を使うのはやめて欲しいと思う。 罰金とかでいいよ。こんな礼はいらない。がっかりする。

不動産屋って日本の客商売で唯一くらいじゃないかと思うんだけど 客じゃなくて売り手が偉いってのがなんか許せないよなぁと思う。 「長い間安定して借りてくれてありがとう2年たったら家賃ちょっとおまけします…!」 とかが普通のノリなんじゃないかと思うんだけど 実際には2年たったら契約更新料とか取りやがるし、 仲介料とかもなんで広告費を客が明示的に払ってるんだろうか的な何か。

でまぁ決まったので GC をした。 とりあえずいらない機械類とか本とか服をもりもりと 捨てたり売ったり人に押しつけたりした。 だいたい1ヶ月くらいだらだらとやったら それなりに荷物は整理できた気がした。

コツは 8:2 の法則的なのを意識することなのかもなぁと思った。 つまりこう本棚とかを見てゴミ候補を取り出してくると、 これはゴミ! ってのが8割あって、 2割くらいはうーんこれたぶんいらないけどひょっとしたら… とか悩む感じのがあって、ここで悩みはじめると何故か その場で読んだりしはじめるので、 悩ましいやつはとりあえず全部残して、 8割をきっちり供養して別のジャンル(服とかPCとか) に行くといいんじゃないかなぁと思った。

あとは電気止めてガス止めてネット止めて…というヤツ。 電気とガスはともかくネットは立ち会いが必要らしく、 結構予約が埋まってるので都合をあわせたければ かなり前に電話した方が良いようだった。

ネットは普段止まりまくってるくせにこういう時だけ ゴルフ場の downtime をゼロにするにはどうするか とかどうでもいいことを考えたりしてたんだけど、 まぁ普通に2時間くらい移動中止めてる感じでやった。 本当は新居の開通時に Mac book 持って行ってたので それを reverse proxy にしておいて DNS の変更を移動前にしておくことによって DNS 変更にかかる時間をゼロにするとか ほげほげ考えてたのだけど、 そもそもプロバイダのパスワードがわからないという 問題にぶち当たり mac book でネットに接続できなかった。 今もルータが覚えててくれたからつながってるけど、 パスワードは知らないままなのでやばい。

さて引越し屋も手配しなければならない。 引越し屋というのは今まで赤帽ばかりだったんだけど、 なんか荷物も結構あるし赤帽とかそろそろ無理なんじゃないかなーと思ったので 普通の引越し屋を使うことにした。

赤帽と引越し屋の違いは赤帽は1人で移動は乗せてくれて、 引越し屋は2人来て移動は自力でやらねばならない、という感じで、 結果としては赤帽は手伝わないといけないのでかなり大変だけど 引越し屋は大変ラクだにゃーということでラクだった。 赤帽は1万ちょいで引越し屋は2万弱とかそのへん? ただ今回赤帽も見積ってみたら2台必要ですから 26000 で〜すとか来てがっかりしたのでまぁほげほげ

引越し屋はどうやって決めればいいのかなぁと ぐぐり力皆無な僕は「引越し」だけでぐぐってみて、 なんかアリさんサカイダックと聞いたところあるような感じのが 並んでるなぁそれぞれの 2ch でのスレとか見るかなーとか思ってたら、 いつものクセで飛ばしていた広告の方に色んな会社を一気に見積れますとか あってそれを使ってみることにした。

したら数分後くらいには自動だと思うんだけど いくつか見積りが届いて、 翌日までにはなんかたくさんメールがあるし 見積らせてくれという電話も来るしという感じだった。

値段は最初の段階で 13000 - 40000 という感じで、 大手ほど高い感じみたいだった。 あと一部の大手はそもそも電話とかネットでは 見積りたがらず現地に来てうんぬんとかいう話のようだった。 それなりに忙しかったのでそっち系は全て断った。

でまぁ 13000 から適当に電話して実際に聞いてみると、 だいたい話の流れは決まっていて、

  • ネットで入力されたのは A と B と C と…これで全部でしょうか
  • いや項目に無かったから入力しなかった D と E と…があります
  • F はありませんかー
  • あああります
  • G はありませんかー
  • ないです
  • このへんを適当に繰り返した後に
  • ネットで入力されたのより増えてしまったのよりだいぶ多くなったのと、あと週末ということで XXXXX 円になりますがー

XXXXX は平気で元の額面より 2 万くらいは増えたりするようで、 結構辟易する感じであった。

でまぁ何件か電話してて元の額面からの増加量が少なかったところで 16000 => 18000 のところで決まった。 まぁ引越し屋とか実際働いてくれる人は 大変だと思うし別にいっぱい払ってもいいとは思うんだけど、 まぁ業者にたくさん払っても実際運んでくれる人の給料は一緒だろうしね…

そういえば見積る時にダンボールいくつくらいだーと聞かれて、 大抵誘導尋問で増やされるんだけど、 まぁあれで見積りの値段上がったりするんだろうなぁ。 しかしまぁダンボールが足りなかったり トラックが狭すぎたりとかあったらこわいとかで 余裕気味に言ってしまうというのはあると思った。 今回は大小ともに10と言ったけど、 実際使ったダンボールは小*8と大*7だったみたいだ。

でまぁ今日早起きして元の家の方に行って ゴミ捨てて挨拶して鍵返して移動し忘れてたコンロを回収して、 不動産屋にも挨拶してだいたい終わり。

今日は自転車で渋谷から帰ってみたけど 15分とかくらいで着いた気がする。 駒場からよりはちょい遠いけど 池尻とかからくらいだと考えると まぁ普通に歩いても行けるな。 まぁ夏だからイヤだが…

(02:42)


2010-06-03

_ 部屋を

片付けなければならない…

とりあえず本を本棚に入れるというのは、やった。

後比較的急務なのは PC の位置確定とベッドの設置ではないかと思う。 しかしそれをするには作業スペースを作る必要があり…

つまりこう整理とか苦手だなぁと思う

(23:19)

_ トリッキーな

http://d.hatena.ne.jp/shinichiro_h/20100603#1275573793

の話だけど、こういうのに魅かれて行った最初の一歩は このスレだったような気がする、 が、よく覚えてない。

http://webcache.googleusercontent.com/search?q=cache:fu6qXUE24joJ:pc.2ch.net/tech/kako/983/983191866.html+%E3%83%88%E3%83%AA%E3%83%83%E3%82%AD%E3%83%BC%E3%81%AA%E3%82%B3%E3%83%BC%E3%83%89&cd=1&hl=ja&ct=clnk&gl=jp&lr=lang_ja&ie=UTF-8&inlang=ja

あと duff's device はもちろん忘れてた

(23:39)


2010-06-05

_

http://atnd.org/events/4788

今回は開始前に気付けたけどしかし締め切られていた

(02:43)


2010-06-06

_ ゲーム

http://www.jmuk.org/diary/index.php/2010/06/06/shanghai-memo/

を見てタイでよくやられてた ビール瓶使ってやるゲームは何だったんだろうと思い出した。

どうもこれらしい。

http://210.150.246.43/game.hp/makhost/1.html

そうそうチェッカーかなーと思って見てたら 端に行ったとたんすごいことになったのだった。

タイ式チェスみたいなのもあるみたいだ。

http://210.150.246.43/game.hp/makruk/1.html

ていうかこのサイト面白い。

http://210.150.246.43/game.hp/contents/shoukai.html

(23:05)


2010-06-07

_ 斑鳩

を久々にやる

  • 1面最後の汽車の間のトラツグミだっけ? を全滅させてたとか信じがたい
  • 2面の飛行機の集団ヘンな撃ち方してた気がする
  • 3面テロップ前早回し4つ出すパターンは異様な感じだったと思う
  • 4面外周撃ちしてたとか信じがたい
  • 4面亀の集団つないでたのも信じがたい
  • タゲリ第一で死ぬことってなかったよなぁ…
  • 石で死ぬのはまぁいいか…

(01:18)


2010-06-10

_ もげり

  • 片付けはそれなりにした。洗濯祭りは快挙
  • 今週末は台所周りかなぁ
  • 久しぶりにやると斑鳩全然うまくできない
  • 仕事的な意味でたくさんなんかしてる時の次の週に ICFPC ってのはこう、いいんだろうか悪いんだろうか
  • 銀行振り込みを手続きしないといけない
  • 転入届を出さなければならない。前回みたいに2年とかいうオーダーで住所不定なのはあまりよくない
  • クレジットカードの住所変更などをするべきな気がする
  • デュアルディスプレイにしてみた。なかなか良いさっさとすべきだった。デュアルディスプレイで使いやすいように sevilwm をいじりたいと思う

http://twitter.com/cpp_akira/statuses/15689075720

一掃した記憶は無いのだけど、 統計的に見ると C++ に文句言う世代ってのがある気がするなぁ。 今 30 代の人あたりがそのへんな気がする。 今から見ると当時は今よりももっともっと C++ はうんこだったし、 まぁそういうもんじゃないかなぁと思う。

やはりうんこなものを仕事で使わされたりすると、 こう取り返しのつかない感じで嫌いになるのかもしれず。

30代と書いたけど、もちょっと上の 40 代とかオーダーの人達は意外と C++ 嫌いじゃない世代なイメージがある。 なんでだろまぁその世代に知人少ないからサンプル数少ないけど。

さて 30 代だけど C++ 好きだよっていう例外はたくさんあるんだけど、 それより下の世代で C++ 嫌い嫌い大嫌いっていう人はあまり知らない気がする。 ちなみに tanakh さんは単にツンデレなだけで たぶん僕より C++ 好きだと思うのでこの議論には影響しない。 (cf. http://twitter.com/tanakh/status/6626794421)

C++ が嫌われなくなった理由は、

  • VC7 と、 gcc-3.0 でずいぶん良くなったのと gcc-3.3? あたりで ABI 安定して C++ がかなり安定した
  • Boost やら Modern やらそのへんで C++ の奥深さが発見されていった

あたりかなぁと思う。 後者はこう、「そう俺はむしろそこが嫌いなんだ」って言う人も多そうなんだけど、 しかしうーんやはりそいう呪詛は 20 代オーダーの人から聞いたことは あんま無い気がする。

はて。

ひとつあるのはなんていうかみんなが嫌いな言語ってのは ダサい言語であって複雑な言語ではない気がするなぁと思う何かで。 スクリプト言語でいうと PHP はどうやらみんなが嫌いで、 Perl は複雑だけど好きな人も結構いるというような。

どうでもいい…

(01:09)


2010-06-12

_ 物干し台を買わなければならないがどこで買えばいいのか

http://twitter.com/ufcpp/statuses/15806048195

のそもそも使わない、って話はちょっと違う話かなぁ。 「若い」は相対的な感じなんでどのくらいを指しているかわからないけど。 要は仕事で実際に使わされて鬱 C++ 死ね死ね死ね… っていう人とかをあんま見ないなー的な話を考えていたので、 20 前後で趣味でコード書いてて「そもそも C++ 使わない」 っていうのはまぁそういう人はそりゃいるだろうけど そのへんの層はあまり考えてなかったのだった。

たぶん 25-30 くらいで元々別言語使ってたのに C++ 使わされてて 文句言う人とかあんま見ないなーと思っているというような。 つっても見てる層偏ってるからあやしいもんだけど。

あとそもそもコンパイル言語使わない層ってのはこう 昔っから、具体的には N88 BASIC くらいから 常に一定数いると思うのだけど、 そういう人の率って増えてたりするのかな。 スクリプト言語で職になる可能性が増えてる以上、 増えてそう、かな。

(14:17)

_ 物干し台を買った

今週末にやるべきじことは全てこなしたと見ていい。

いや sevilwm の改造をやった方がいい。 あと screen 環境をほげほげ

あと C と Java の sporcle があると教えてもらった。

http://www.sporcle.com/games/ddt/keywords_c89

http://www.sporcle.com/games/robv/java_keywords

ログインしてなかったからよく覚えてないんだけど、 C は 30 くらいだったんじゃないかと思う。 やはり僕は C を知っているとは言えないようだ。

今 2 回目やってみたら全部入れられた。

(17:04)

_ アホかという話

http://jp.techcrunch.com/archives/20100609apple-chrome-bugs/

を見てアホかと思ったのだけど

昨年、GoogleがAppleに代わってWebKitのコミットを行うようになったが、Appleは今でも当然ながら深く関わっている。

は特に何喰ったらこんなこと考えるのかなーレベルだった。

で原文 (http://techcrunch.com/2010/06/09/apple-chrome-bugs/) を チラ見したらどうも overtook を誤訳したのかな。 overtake って知らんかったけど追い抜くって意味らしい。 たぶん take over の引き継ぐと混同して誤訳したんじゃないかなーと思う。 僕も overtake って知らんかったから よく知らない事象についてなら勘違いしそうだ。

あとそうだ commit 数抜いたってのはそうなんだろうけど、 Google ってパッチの単位を小さくしたがる傾向があって Apple の人は比較的大きいの入れる傾向があるし、 あとまぁどうでもいいテストの expectation についての変更とかも ポンポン入れてるわけだしねえ的な。

というようなことは最初のコミット数が Apple より多くなりましたよ、 って書いた人のブログにも書いてあるし、その補足もあるし、 さらに tech crunch 自身もその件を書いた時にもその補足とかに触れてるし、 それなのになんでこいうことになるんだろうかねーという。

http://neugierig.org/software/chromium/notes/2010/02/webkit-commits.html

http://neugierig.org/software/chromium/notes/2010/02/webkit-commits-followup.html

(19:11)


2010-06-13

_ 端末とキーボード

screen の ^t 2度押しとか無駄だなーと思ってたので Meta とのバインドを適当に .mlterm/key に書く。

Mod+x="\x14\x18"
Mod+bracketleft="\x14["
Mod+s="\x14\x14"
Mod+t="\x14\x14"
Mod+c="\x14\x03"
#Mod+d="\x14\x04"
Mod+0="\x140"
Mod+1="\x141"
Mod+2="\x142"
Mod+3="\x143"
Mod+4="\x144"
Mod+5="\x145"
Mod+6="\x146"
Mod+7="\x147"
Mod+8="\x148"
Mod+9="\x149"

Mod+d は普通に使ってるのと、 あとまぁ使う頻度が少ないので ^t でいいやということで。

本当は super 使おうと思ってたんだけど mlterm がサポートしてないから自分で実装するのもめんどいし、 あと使ってない Mod+? が結構あるからいいか、と。

参考にしたのは新山さんの設定ファイル。

http://www.unixuser.org/~euske/doc/bashtips/bashrc.html

次は screen 。

http://d.hatena.ne.jp/emacsjjj/20050717/p1

を参考にさせてもらって Return で xclip につっこめるようにする。

bindkey -m ' ' eval 'msgwait 0' 'stuff \040' 'writebuf /tmp/scr' 'exec !!! __scr2x2'
bindkey -m ^M eval 'msgwait 0' 'stuff \015' 'writebuf /tmp/scr' 'exec !!! __scr2x2'

__scr2x2 はこんな感じで。 nkf -w が無いと日本語コピペに困る

#!/bin/sh

nkf -w /tmp/scr | xclip
screen -X msgwait 1

ついでに bindkey -m つながりで

bindkey -m ^v eval 'stuff \004'

をよく間違えるっていうか ^d は覚えにくすぎるので。

あと screen にシステムモニタ出すコマンドは

screen -X hardstatus alwayslastline '%` [%Lw]'
screen -X backtick 0 0 0 /home/i/test/screen_monitor -s

なんだけど、これは画面右上の screen でだけ起きるようにしてやりたい。 まぁ sevilwm に問いあわせればいいと思った…

が、なんかそう X の Window から pid をひく方法って無い気がするんだよなー 的な理由で precmd にひっかけた ruby script で sevilwm の focus の当たってる window を調べて… 的なアプローチで適当に処理した。適当。

あーいや別の理由で screen の PID から window を調べるのは いずれにせよ欲しかったんだよなぁ。 screen -x と -r がわけわからんというのがその理由で。

やまぁ /tmp/pid.db とかに screen の pid 使って db 書いていけばいいか… screen-ls とかいうコマンドを作って、

There are screens on:
        19611.pts-10.u4 (Attached) mlterm:3 1x1+564+340 vdesk=2 [rdic@/home/i cd
 '/home/i'@/home/i]
        3468.pts-18.u4  (Detached)
        3255.pts-2.u4   (Detached)
        3236.pts-0.u4   (Detached)
        17167.pts-16.u4 (Attached) mlterm:4 1115x709+564+340 vdesk=2 [vi@/home/i

]

とか出るようになった。 まぁとりあえずこんなもんでいいか…

あとなんかたまに mirc が死んでたりとかするし、 そもそも動かしてるサーバの数がもう把握しきれんため、 daemontools あたりの使いかたを覚えるべき。

それと sevilwm の multi display とか、 screen_monitor の cia 化とか

(07:11)

_ 文体診断

http://logoon.org/

面白いなぁ。

何が面白いって、 はてなとかから適当にコードの無い文章を持ってきて 診断してしてもらうと、 必ず、

  • 1 文章の読みやすさ E 一文が長い
  • 2 文章の硬さ E 文章が柔かい
  • 3 文章の表現力 A とても表現力豊か
  • 4 文章の個性 A とても個性的

という診断が出ること。 個性的とか表現力とかは、単に、プログラム用語のせいかなーと思ったんだけど、 引越し記録 (http://shinh.skr.jp/m/?date=20100601#p02) とかでも 同じ結果が出るんだよなぁ。

適当に他の人の日記とかをはってみると、 だいたい似たような傾向があるみたいだ。 一文が長いとかは自覚してたんだけど、 まぁ別に気にしなくてもいいのかな。

適当に入れてみた中では、 まめさんのこれとかは高評価だった。

http://d.hatena.ne.jp/ku-ma-me/20100322/p4

やりました。 この文章ではなるべく頻繁に句読点を入れるようにしてたのですが、 読みやすいと言ってもらえました。 やりました。

しかしこれ、作家とかと比較してるから、 どんな文章でも表現力豊かで個性的に なっちゃうんじゃないかなー。

(16:29)

_ BNE

http://ja.wikipedia.org/wiki/BNE%E5%8F%82%E4%B8%8A

そういえばよく見かけるなと思って、 少し検索してみたことがあった。 よく見かけるどころか、 海外などでも見たことがあるように思う。

しかし、検索の結果は芳しくなく、 何が何やらわからない、 ということが判明しただけなのである。

…ちょっと硬く書こうと努力したけど、 全然やわらかいのまんまだった。 なんていうかコレ英語とか未知語の数で硬さが決まってるんじゃないかな。 コードとか入ると一気に硬くなるし。

BNE は正直ちょっと面白いなーと思った。 なんというか夢がある。 まぁ迷惑は迷惑なんだろうな。

(19:19)

_ sevilwm の window switch

前から思ってたがこれはダメだ。

> unixcat /tmp/sevilwm_:0.0/info G vdesk=1
sevilwm x=2832 y=1050 vdesk=1
mlterm:4 1114x1+564+340 vdesk=1
mlterm:3 1x1+564+340 vdesk=1
mlterm:0 561x1+564+340 vdesk=1 FOCUSED
Emacs:2 1x347+583+702 vdesk=1
Emacs:1 551x348+581+700 vdesk=1
Google-chrome:0 1681x1+1149+861 vdesk=1
Emacs:0 1097x348+581+700 vdesk=1

これの Emacs:0 => Google-chrome の遷移が右でできない。 mlterm:4 の方に行ってしまう。

つまりえーと…

  • Emacs:0 1097x348+581+700 中心 (1387, 698)
  • mlterm:4 1114x1+564+340 中心 (1396, 171)
  • chrome:0 1681x1+1149+861 中心 (2225, 432)

なので、右方向の遷移はえーと

100000 - (dstX - srcX) - abs(dstY - srcY) * 3

で評価されるらしいので、

mlterm4: 98410
Google-chrome0: 98331

となって y の差分が大きいものの、 x の差分が小さい mlterm が勝ってしまう、と。

まぁどう考えてもこの評価関数がひどい。 こんなもので良い理由がどこにも無い。

どう考えても角度を使うべき。 要は角度差が小さくて距離も短い対象が良い。 しかしまぁその二者をどう合成するかはマジメに考えないといけない。

mlterm

irb(main):015:0> Math.atan2(698-171, 1387-1396) / 3.14159 * 180
=> 90.9784675354791
irb(main):013:0> Math.sqrt((171-698)**2 + (1396-1387)**2)
=> 527.076844492338

chrome

irb(main):016:0> Math.atan2(432-171, 2225-1396) / 3.14159 * 180
=> 17.4759534949213
irb(main):017:0> Math.sqrt((171-432)**2 + (1396-2225)**2)
=> 869.115642478031

直感的に角度は2乗するといい気がする。 ただ degree を単に2乗すると 30度のズレが 900 ピクセルの距離に相当してしまうので、 うーんこれはちょっと大きすぎるかもしれない。

ちょっと実験してみると、なんか意外な感じで、 15 度くらいずれてたらもう飛ばしてくれてもいいよと感じるみたいだった。 それだと角度の 2 乗でも足りないか…

実装してみた。 なんか普通に角度の自乗プラス距離で悪くないみたいだ。 しばらくこれで試してみようと思う。

(22:14)

_ xsel -i -b

xclip のかわりにコレを使うと gtk のクリップボードにも反映されるみたいだ。

http://highmtworks.spaces.live.com/Blog/cns!3B475A7E547A2260!277.entry

より。

(22:39)

本日のツッコミ(全4件) [ツッコミを入れる]

_ Rui [http://www.nytimes.com/2009/12/09/nyregion/09bne.html ニュー..]

_ shinh [おおインタビューとかあるんですねえ。ありがとうございます。 色々面白いです。ほぼ一人の人間の仕事なんですねぇとか(..]

_ Rui [でもインタビューに出たのはちょっと残念です。宗教団体説とかがこれで否定されてしまうので気持ち悪さがずいぶん減ってしま..]

_ shinh [たしかにそういう面はあるかもですね。しかし記事の最後でちょっと書いてあったようにこの BNE が偽物で本当はあやしげ..]


2010-06-14

_ シバサキ

最近シブサワコウの名前を街で見かけるのは何故だろうかとおもったら この人だったようだ。

http://ja.wikipedia.org/wiki/%E6%9F%B4%E5%92%B2%E3%82%B3%E3%82%A6

http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%96%E3%82%B5%E3%83%AF%E3%83%BB%E3%82%B3%E3%82%A6

(23:26)

_ manpages-posix

man pthread_create とかしてなんも出てこない→ カンで使うみたいなことを繰り返してたんだけど、 しかしなんかおかしくないかということで調べてみると、 pthread_once とかは入っているわけで。

どうも posix のやつは manpages-posix という パッケージに分けられていたようで、 これをインストールしたら無事に見られるようになった。

(23:33)


2010-06-15

_ そうそう

http://code.google.com/p/gperftools-httpd/

というのもあるみたいなんだけど、 なんかずいぶん昔のもんだからかなんか知らんがビルドできなかった。 それに /pprof/symbol とか対応してる気配も無かったので良いこととした。

(03:46)

_ libmicrohttpd

http://www.gnu.org/software/libmicrohttpd/tutorial.html

プログラムに埋め込む http サーバライブラリを 適当に探していて見つけた。 今のところ割と良さそう。

ただ POST の処理がえらいめんどい。 いやまぁこうなるのはわかるんだけど、 デカいバッファにとりあえず全部突っ込んであげるよモードが欲しい。

しかし実際書いてみたら POST の処理も まー悪くないみたいだった。 つーわけでこれが実装できそう。

http://google-perftools.googlecode.com/svn/trunk/doc/pprof_remote_servers.html

あと検討したのはこのふたつ。

http://www.hughes.com.au/products/libhttpd/

こっちはまぁ自分でループ書かにゃならんのが許せなかった。 そして select にタイムアウトを入れてやらない限り 自発的に終了することができなさげ。

つまりスレッドとか考えてるんかこいつって感じだった感じ。

http://sourceforge.net/projects/libhttp/

こっちはそもそもビルドできなかった。 bjam 使いかたわからん。 あとまぁ Boost 以外の C++ ライブラリは 信用してはらならないの法則に基づきまぁいいやと思った。

(03:45)

_ binutils

lambda を使ったコードのデマングルに失敗してるなーと思ったので、 適当に cvs up してビルドしなおしてみた。

% echo _ZZ4mainENKUliiE_clEii | ~/src/binutils/binutils/cxxfilt
main::{lambda(int, int)#1}::operator()(int, int) const

おおー

そういえば move とかもまた増えるってことか。

(03:52)


2010-06-17

_ woofer

http://woofertime.com/

via http://twitter.com/kinaba/status/16310294032

これいいなー。こっちが流行ってればいいのに。

どうでもいいけど忙しい気がする。 別にたいして忙しくはないんだろうけどなあ。

マラソン結局不戦敗。 かなしい…

(03:08)

_ 面白いなぁ

http://slashdot.jp/~taro-nishino/journal/509450

かなり説得力あるなぁと思う。

前に git の ML で読んだ時とは大違いな印象だけど、 まぁ当時は全部あんま読んでなかったのかな。

今度ゆっくり一つ一つの機能を考えてみたい気がする。 とりあえず多態と STL は 欲しいかなぁと思うけどどっちも kernel に とって重要じゃないってのはそうなんだろうと思う。

あとはこう単純に関数とメンバを同じところに書く習慣を強制されるのは、 自分が悪いコードを書く率を減らしてくれるって意味でありがたいんだけど、 そういうのはダメかなぁ。 C++ の方が C よりバカに優しいと思うんだけど。

ていうかそう、激しく同意するのはその、 僕は自分では C++ 書きたいけど、しかし 人の書いた C++ コードはあんま読みたくない ケースがすごく多いって話なんだよな。 C にしてくれという。

あーなんでか忘れてた。 RAII は欲しいだろさすがに。 さすがに kernel でも役に立つんじゃないか。

(03:41)

_ 適当に考えてみた

  1. 一行コメント
  2. RAII
  3. クラス
  4. STL
  5. 多態
  6. public/protected/private
  7. オーバーロード
  8. template
  9. 継承
  10. 例外

1位は略

2位の RAII は RAII というかスコープ出た時になんかできるってやつで、 Mutex の auto unlock みたいなのは嬉しいんじゃないかなぁ

3位のクラスってのは単にメンバ関数のことを指してるんだと思う。 やっぱ頭整理しやすいと思うんだよね。 もちろん C でもちゃんと一定のルールに従って書いてくれりゃいいんだけど、 自分で新しくコード書く時にルールを考えたりするのがやはりめどい。

4位の STL はまぁ大規模なプロジェクトなら自分で書いたらいいんだろうけど、 スクラッチからなんか書く時の速度が相当早くなるんですよという。

5位の多態はこう、結構欲しい時は本質的に欲しいんだよなぁ。 関数ポインタ3つ以上とか持ってる構造体とかは、 ちょっと厳しいもんがあるんじゃないかなぁ。 そうなっちゃうと過剰に自由度が高い状態になってしまって、 見通しが悪くなるというかなんというか。

6位のアクセス制御はまぁやはりドキュメントとして。 ただ private non-virtual 関数は cpp の方にだけ 書けばいいことにできんもんかと思う。

7位。オーバーロード…はいるんだろうか。 operator<< とか、何かしら出力系では欲しいんだよなぁ。

8位 template 。 低い位置だなぁというかまぁ STL は上の方にいるのだから 不自然な話である。 まぁマクロあれば自分で書く範囲なら それなりになんとかなるんだよな… でもそいうケースの場合は普通に template の方がいいけど。 まぁとにかく必要な頻度が低い。

9位継承。これも多態を上に置いておいてヘンな話だけど、 要は実装継承的なものを指していて、 多態は interface 的なものを指してることにしよう。 まぁ手間ははぶけること多いから継承好きなんだけどね。

10位は例外はなんかたいてい 超大域脱出(つまりどうしようもないことが起きてエラーメッセージだけ吐きたい時) にしか使わないからなぁ。そしてデバッガのこと考えると 超大域脱出とかしてるより SEGV の方が良かったりする。

(04:05)


2010-06-19

_ ICFPC

いい問題だなーと思う

スタートへの敷居高すぎなのだけがアレ

とりあえず適当に稼げそうなところは稼いでおいた

明日へのメモ

  • 工場の組み方はこのままじゃダメかなぁ。
  • ternary stream が完全に解析しきれてない気がする
  • car について

プライオリティとしてはどこからかなぁ。 工場は後々効くだろうけど時間の無駄に終わる可能性もあり。

しかしこういうのは kikx さんとか得意そうである

二人いるのはこういう事情なので気にしないで

21:46 >shinh< register したらしいのにパスワードこないな
21:47 >shinh< あれ来てるんですか
21:47 >shinh< メアド入れまちがったとかかな
21:47 >shinh< shinh さん詰みそう
21:48 >shinh< 残念だなあ
21:50 >shinh< お team 名変えたら email address is already in use
21:50 >shinh< メアド入れ間違ってないじゃないですか
21:53 *** Change: shinh -> shinh2
21:53 >shinh2< しょうがないから今日から shinh2 に改名

(13:59)

_ ダメだ

ゴルフ欲に勝てない

(19:23)

_ るびー

irb(main):005:0> '%04d' % 5.to_s(3)
=> "0012"

そうか…便利な世の中ですね…

(23:16)

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

_ kik [タンク一個の大衆車は適当にやってsize 37にはしたんだけど、点数に結びつかないから真面目にやってないやー。非線形..]

_ seo company [&#12381;&#12398;&#12424;&#12358;&#12394;&#24847;&#21619;&#..]


2010-06-20

_ どろろ

30分くらいで45台くらい新規給油したりして良かった。

問題をまだ理解してないのは困ったもの。

あと40時間?結構時間ある感じだな。 寝るかなーと思うけど今寝て起きてそのままってのはちょっと長いね…

(05:00)


2010-06-21

_ あせる

なんか焦るとよくないなぁと思う。

気が急いて眠れないし、 しかし寝ないと集中力低下して勘違いを放置するし。

しかしまぁそろそろマシな勝負ができるといいなぁと思いますよ… と思ったらサバさんが

(05:31)

_ おわた

うーんくやしいなぁ。 最終的にはマラソン的な問題で、 いつものマラソン的な感じのダメさだった。 もうちょっと頭良くない感じの アルゴリズムとかはともかく 実装ゴリゴーリな問題の方が得意なんだろうな。

とはいえ問題はとても良かったし、 運営も良かったと思う。 今回程度のダウンタイムってのは 神とまでは言えないけどとても良かったと思うんです。

だからこそくやしいわけなんだが

でなんかまとまった文章書こうと思ったが、 そもそも key prefix をどうやって作ったか、 という手順からして思い出せない。

どういう問題だっけ…

回路は

http://twitter.com/kikx/status/16688748696

を見るに kik さんと同じだろうと思う。

工夫した点は左右ひっくり返せる部分があるので、 そこを乱数でひっくり返して何度かやって いいのを取るとかいう。

(22:52)


2010-06-24

_ とりあえず

僕の考えた方針でやってみるかのう

(22:36)


2010-06-25

_ 電気

寝る前に電気を消すためにスイッチに近付くのがめんどい。 どうにかして遠くからオンオフできるようにしたい。

どうやらこういうものがあるようだ。

http://www.nissinweb.co.jp/life01.html

うーんこれは何がどうなってるんだろう。 既存のスイッチの上につけられるのかな。 だとすると物理的に動くんかいや

(01:39)

本日のツッコミ(全4件) [ツッコミを入れる]

_ IKeJI [見た感じ、既存の壁に埋め込み型のスイッチを外して付けるタイプのような…]

_ shinh [なるほど借りてるマンションでそいう解体やってもいいもんですかね…ダメなんでしょうけど現状復帰できれば実質問題ないです..]

_ Gimite [スイッチ交換するぐらいならいい気もしますが、どうなんでしょうね。ただ、法的には電気工事士の資格がないと自分でやっちゃ..]

_ shinh [> リモコン式の天井灯を買う 天才ですね。どうしても物があるとそれを使わないって発想が出てこない…例えば段ボールが..]


2010-06-26

_ partial application

http://twitter.com/kinaba/status/17019694551

これは

http://www.kmonos.net/pub/Presen/fltv/FLTV.pdf

.maxPrio = .max{|a,b|
    a.priority <=> b.priority}
even = evens.maxPrio
odd = odds.maxPrio

ができるって話よりもう一歩いい感じな感じだなぁ。

ミスって引数足りない時はどうなるのかな。 エラってくれないと静かに全然期待と違う動きすることがあってうざいと思うんだけど、 まぁいかにもこの部分適用だけされた関数使ってませんよーとか スコープ出る時に言ってくれたりしそうだけど。

(00:27)

_ exhausted

という感じの状態になってるように思う。

腕も痛いしだるいし… ていうか 38.1 度熱あるしなぁ。 月曜までに fix したい。

(00:31)

_ ごるふこんぺ

こういう形式のゴルフコンペはどうかな。

  • 問題が適当にある
  • 参加者は適当に解く、そしてその解答は即座に公開される
  • 既存の解答を短くする投稿のみが accept される
  • 更新した瞬間に 1 てん獲得。更新しかえされるとその加点は減って、最終的な得点は 最終的に一番短かった解のサイズ/その更新のサイズ
  • 例えば A さんが 10bytes を通して B さんが 9bytes を通したら、 A さん 0.9 点 B さん 1 点

つまりこうみんなで競争しながら頭ひねって答えを考えると。

  • 問題は参加者一人一つまで投稿

とかいうルールを加えてもいいのかなぁと思う。 明らかに自明な最短解がある問題が出題されるとつらいので、 出題者は開始1時間解答できないとかそんな。

得点計算式に問題があるな… A さんが 10B 出して B さんが 8B 発見した時に、 9B => 8B と投稿した方が点数が多くなる式はダメだ。 むしろ分割するともらえる得点が減るといい気がする。

(01:34)

_ MD5 と SHA1 と…

http://ja.wikipedia.org/wiki/MD5

MD5 はあっさり衝突するらしい。ダメぽ。

http://ja.wikipedia.org/wiki/SHA

SHA1 もうどうも衝突してるらしいじゃんダメぽ。

何かっていうと自分で書いたハッシュ関数とか 欲しいなぁというのがあったのだけど。

ていうか codegolf.com で sha256 書きましたっけ… すっかり忘れていた。

(01:59)

_ sha256

http://sourceforge.jp/magazine/05/11/08/0213251

ふむふむとりあえず sha256 使えということらしい

(02:09)

_ 危く騙されるところだった

http://homepage1.nifty.com/herumi/diary/0604.html#1

herumi さんならやりかね無いという点が

(02:10)

_ mod_disk_cache

ニコニコの latency ひどいよなーと思って、 inspector で見てみると、 どうも prototype.js とかの 静的なコンテンツのダウンロードというか 304 Not Modified がかえってくるまでが遅い。

アホかーと思ったので、 とりあえずローカルの apache に mod_disk_cache を仕込んだ。 だいぶはやくなった。

(18:43)

_ ついでに

twitter もアホみたいに早くなった。

web 2.0 なサイトは latency 気にしなさすぎではないか。

(18:48)

_ 別に実害は無いんだけど

powertop すると Ruby が上位に来ることが多い。

たぶん timer thread でもりもり起きてるのが問題かなーと思ってたんだけど、 よく考えると ruby 1.8 でも上位に来てる。 ruby-1.8.7 でも timer とかあるっぽいし 1.9 だけってのが記憶違いかな。

地球に優しくするにはどうすればいいんだろう。

http://redmine.ruby-lang.org/issues/show/270

に書いてあるみたいに最初に Thread.new するまでは 少なくとも必要ないのかなぁ。

ていうか thread の切り替えを促すってのは 各 thread が自発的にあー 10ms 過ぎたなーとか言って 他にゆずるとかできんのかな。

signal の集約の方は別にタイマとしての機能は必要じゃない気がするけど、 ええとどうなんかな。

(22:08)

_ daemontools

u4 で適当に動かしていたサーバ群を適当に daemontools 管理下に置く。 具体的には

  • cia
  • cmigemo
  • synergys
  • tiarra

があったようだ。

あとは…

  • mircbot @ u
  • rail for mircbot @ u
  • synergyc @ um
  • open-server @ um

あたりが勝手に動くとなお良い。

それと health check 的なのを統合的にやりたいなぁ。 チェックすべきは

  • shinh.org の proxy (u:8080 の lighttpd)
  • shinh.org (u:80 の apache)
  • golf.shinh.org (u5:80 の lighttpd)
  • cia.shinh.org (u4:81 の lighttpd)
  • shinh.org:25
  • golf server の executor

あたりか。

(23:23)

_ てか

twitter のリソースの読まれっぷりを見てると、 spinner.gif とか loader.gif とか外部リソースなんだなぁ。 こいうのは data: にするもんなんかなぁと思ってた。

あとこれを最初に読む必要は無いよね…とか

(23:42)

本日のツッコミ(全4件) [ツッコミを入れる]

_ こーのいけ [トップの人(例だとBさん@9B)は自分で更新投稿できないとか。 あと,問題作成者に「回答者を楽しませる」ことでポイン..]

_ shinh [連続投稿できないのは問題一つならいいんですが、問題が複数あった時に更新合戦が起きた問題と独走ができた問題で、独走の方..]

_ Gimite [data:って確かIEが対応してないですよね。なので微妙なような。(結局両方用意しなきゃいけないし、使える方が少数派..]

_ shinh [あー IE ですか… IE9 くらいだとあるんでしょうかね。あと twitter くらいの規模だったら両方用意しても..]


2010-06-27

_ 監視

cronlog を使わせてもらおうと思った。

http://github.com/kazuho/kaztools/blob/master/cronlog

僕は自分は C++ と Ruby を使って書くことが多いけど、 人が書いたものとしては C や Perl じゃないと許せないという 考えを持っているので Perl なのは良い。

どうでもいいけどこの guncat というのは zcat とは違うんかな。

さて health check は ruby の test/unit でいいのかなーと思ったが、 色々不満がありそうだ。

まずどうせ自動再起動も入れたいので、 失敗時にはなんかフック入れたいんだけど、 assert 一個につき test_ 一個書く感じにしたいので、 全部の test_ に rescue とか書かにゃならん。 一つの class の中の test が一個コケてたら 自動再起動スクリプトが走る…とかにしたいんだけどな。

こんなんでいいか

  • HealthCheckTest とかを作る
  • その中の teardown で passed? をチェックして false なら @@failed = true とかしておく
  • 継承したクラスでは、 test_zzz で @@failed なら自動再起動を走らせる

(01:25)

_ health check

適当にやってみた。

とりあえず動いてるみたいだ。

次はバックアップとかかなぁ。

(17:18)

本日のツッコミ(全1件) [ツッコミを入れる]

_ kazuho [うほ。お手柔らかに m(__)m > guncat というのは zcat とは違うんかな zcat だと全部のフ..]


2010-06-28

_ 銀行

適当に家賃を自動引き落しにしたいなぁというのと、 そういえば敷金はかえってきたんだろうか… というのを調べようと、銀行へ行った。

したらなんか色々やった

  • 自動引き落しは毎回 750 円とかそのくらいかかるそうなのでバカらしくなってとりあえず今月分を手動振込
  • ついでに通帳繰越
  • 印鑑をなくしていたので更新
  • 住所変わってたので更新
  • 電話変わってたので更新
  • 保険証見せたらこれは難しい字だが登録時は簡単な字だった、これだと名前も変わると言われたので更新
  • 思い出したように他の銀行への財産の移動をする

で、三井住友に振り込むから手数料高いっぽいので、 三井住友に聞きに行く。

  • 口座作るには何あればいいですか→パスポートがベスト
  • そもそも口座とキャッシュカードあるんですけど、印鑑も暗証番号も通帳も無いんですけどなんとかなりますか→なるんじゃね
  • で振込手数料いくらですか→他の支部だと 420 円。

結局毎回 400 円とかするとなんかちょっとバカらしいよねえ。 大屋と同じ支店で口座開くとかいう荒技もあるが。

どうも定期的な振込が安くでできる銀行口座開けってのが よくあるアドバイスっぽい。 めどいぞ。

(22:57)

本日のツッコミ(全3件) [ツッコミを入れる]

_ a watcher [こういうのは昔は新生銀行が人気だったんだけど、最近は条件が厳しくなってきているんで、今はSBIネット銀行が人気なんで..]

_ a watcher [SBIは自動振込機能もあるんですね。 http://www.internetbank-hikaku.info/col..]

_ shinh [SBI の口座申し込みました! ありがとうございます。]


2010-06-30

_ can't map file

Mac は不思議がいっぱいだ!

まず ld が表題のエラーを出す件は、 これはまぁ普通に仮想メモリ空間が足りない。

http://www.opensource.apple.com/source/ld64/ld64-97.2/src/ld/ld.cpp

uint8_t* p = (uint8_t*)::mmap(NULL, info.fileLen, PROT_READ, MAP_FILE | MAP_PRIVATE, fd, 0);
if ( p == (uint8_t*)(-1) )
	throwf("can't map file, errno=%d", errno);

どうしたもんかなーというと、 正直 release build するくらいしか短期的な方法は思いつかん。

さて中期的な方法を考える。 どうせ mmap できないファイルなんて archive に決まってる、 そして archive を全部一気に mmap する理由とかどこにもない。

OK だいたいわかった。

Mach-O の .a はたぶん最初のエントリとしてなんかテーブルが入ってる。 これはたぶん ranlib が作るエントリだ。 名前が __.SYMDEF ならこのエントリになるっぽい。たぶん。 このファイル名のファイル作って突っ込んだらどうなるだろうね。

でまぁ Reader::getAtoms やら Reader::validFile やらは、 このエントリの列を iterate してるわけだなー。 iterate してる最中は、

template <typename A>
const class Reader<A>::Entry* Reader<A>::Entry::getNext() const
{
	const uint8_t* p = this->getContent() + getContentSize();
	p = (const uint8_t*)(((uintptr_t)p+3) & (-4));  // 4-byte align
	return (class Reader<A>::Entry*)p;
}

てな感じなので、 ちょぼちょぼ munmap mmap がはさまるような構造にしてやればいいんじゃないかねー。 やってられるかー

(00:40)

_ とりあえず

すげえ雑な方法で自分のところではリンクは通るようになった。

diff -ur ld64-85.2.1.orig/src/ld.cpp ld64-85.2.1/src/ld.cpp
--- ld64-85.2.1.orig/src/ld.cpp 2010-06-29 07:54:08.000000000 -0700
+++ ld64-85.2.1/src/ld.cpp      2010-06-29 09:15:37.000000000 -0700
@@ -3088,12 +3088,19 @@

 }

+
+struct GreaterFileSize {
+  bool operator()(const Options::FileInfo& l, const Options::FileInfo& r) {
+    return l.fileLen > r.fileLen;
+  }
+};


 void Linker::createReaders()
 {
        fStartCreateReadersTime = mach_absolute_time();
        std::vector<Options::FileInfo>& files = fOptions.getInputFiles();
+       sort(files.begin(), files.end(), GreaterFileSize());
        const int count = files.size();
        if ( count == 0 )
                throw "no object files specified";

つまり全ファイルをデカい順に sort 。 ただこれでは chromium の bot はなおらんだろうね。 なんか build log 見ると謎の hack がボットには入ってるっぽい。

3時間ほどあれば根治もできると思うがー

(01:31)


2010年
6月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
1.shinh(2014-05-24 04:54) 2.Gimite(2014-05-24 04:54) 3.shinh(2014-05-24 04:54)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h