2007年11月アーカイブ

深夜にケータイが電池切れだったことを思い出し、充電してみるとsiからメールが来ていた。
一緒に昼飯食わないか?とのことだったので、頑張って昼ぐらいに会社に到着。

2人で昼飯を済ました後、とある案件のメールが送れない原因を探った。懐かしきjadを駆使しつつ。

今日も色々学ぶべきところがあったのでメモしておこう。


---
SMTPコマンドの最初に行われるやりとり[HELO]。HとEをひっくり返した[EHLO]でもokというのは知っていたけどEHLOコマンドそのものについては知らなかった。てっきり勢い余ったtypoコーダに優しくしてくれたのかなぁと思っていたが、先頭のEは拡張のE(expand)らしく、HELOとは全くの別物。[参照]
調べてみたところ、最近はEHLOを使うのが主流みたい。
あと、メールサーバの設定によってはEHLO [domain_name]ってフォーマットで問い合わせないとはじかれる。

Oracle DBはtableを削除するとデフォルトでwindowsで言うところのゴミ箱に投げられる。ゴミ箱を経由せず、直に削除したいときはDROP TABLE XXXX PURGE;とする。

Windowsのバッチでcallで呼び出したプログラムが返したステータス値を参照するには環境変数%errorlevel%を使う。

--
こんなところかしら。あと恥ずかしいことに最近までポインタの値渡しと参照渡しの区別が自分の中であまりついてなかった事が分かった。なんとなく使っていた点があったのかもしれない。以前これでどつぼにはまった。これについてはまた次の機会に載せよう。

...というか参照渡しっていう名前が良くないよなぁ。参照化渡しって呼んだ方が合ってそうな気がする。

twitterに続いて現実逃避第2段。
tumblrを始めてみた。
簡単に言うとみんなと情報を共有できるwebスクラップ帳とでも言えばいいのだろうか。詳しい説明はココとかがイイかも。

アカウントを2つ取った。
-http://lyo.tumblr.com/
-http://xyo.tumblr.com/だ。基本的に前者は技術的な内容のスクラップ。後者はネタ帳にしようかなぁと思う。というか既にネタ帳になっている。気に入った人が万が一居たら購読しちゃってくれぃ。

問題は技術的な方のスクラップだなぁ...どうしてもdel.icio.usと領域が被る。コレはリンク先が消されたらしぬーというぐらい自分にとって重要なヤツだけに絞ろうかなと考えている最中。

さて、話をtumblrのシステムそのものに戻すけど、他人のスクラップを自分のスクラップに取り入れる作業(reblogと言うらしい)があっという間でMovableTypeを使い続けていたオレはその操作性に驚愕した。こんなすげー世界があったんだぁと思った。初めてタブブラウザを触ったときや、unixならzsh、Gnu screenに触れたときの感想に近いモノがあった。

公式が提供するインターフェースですらMovableTypeを軽く凌ぐ使いやすさなんだけど、なんせ投稿する数が多いため、コレでも結構しんどい。tumblrを使っている最速の中の人とかは絶対もっと楽な方法使ってるに違いないと思った。ちょっと調べてみたらやっぱりあった。しかも同じtumblr上で見つけた。やっぱりFirefox+greasemonkeyだ。これを加えるとヤバイぐらいreblogが簡単になるようだ。

詳しくはhttp://lyo.tumblr.com/post/19957360のリンク先を見てくれぃ。AutoPagerizeは前から入れていたけどLDRizeはしらんかった...。tumblr限定だけどLDRizeのおかげで記事を読むのもクソ早くなったような気がする。今まで同一ページ内の移動はホイールでグルグルやっていたんだけど、結局ホイール回してる間って文字読めないんだよね。キーボード操作でその時間を一気に短縮してるのが大きいのだと思う。

リンク先の環境が整えば、あとはj,k,pのキーの組み合わせとcommandの実行だけでreblogできちゃう。どのぐらい効率がいいかっていうと、自分の場合、tumblr始めてから2日で200投稿を超えるぐらい。一回も画面遷移しないのがでかい。ただ、調子に乗ってAutoPagerizeを酷使しまくると、もの凄い勢いでFirefoxがメモリを食うので注意。

と、まぁこんな感じで最近WebScraper絡みでcssセレクタやxpathを学んで、昔の手打ちHTMLのような考え方じゃダメだなーと思ったけど、以下の記事を読んで、まだまだ更にwebは進化し続けているのだなぁと感じた2日間であった。

-AutoPagerize用のXPathをかんたんに作るためのブックマークレット AutoPagerize IDE
-「LDRizeのxFolk対応」と「カトゆー家断絶テストページやfooo.nameがxFolk化」が合わさるだけで、いろんなWebページがものすごく便利になるのもmicroformatsの大きな利点のひとつ

あ、ちなみに複数アカウントなので、これも使ってます「Tumblr複数アカウント対応:ログインするアカウントを指定できるtumblrブックマークレット


#さーてまたネタ画像集めるか

IQテスト

| コメント(2) | トラックバック(0)

以前やったヤツですが、twitter上で流行っていたのでついまたやってしまった。
2007iq_test.jpg

おそらく以前の記録更新。調子イイ!就活やったからだろうか?
やってみたい方はこちらからどうぞー。
http://www.iqtest.dk/main.swf

説明見る限り
2007iq_test_115.png
大学生組は115以上目指さなきゃイカンらすぃ。


--
おまけ

とっくに看守のライフはゼロよー!

家に帰ってネットしていたら急にマウスの調子が悪くなった。ホイール部分の調子が悪く、勝手にスクロールしちゃうのでとてもじゃないが放置しておけるレベルじゃない。

自宅で使っているマウスはMX510ってやつなんだけど
mx510.jpg

最初、コイツの分解方法が分からなくてすげー苦戦した。

mx510_dessous.jpg

結局どうやって分解したかというと...オレンジ色の丸でくくった部分、その付近にネジが埋まっている。このネジをとってちっちゃな-ドライバなんかで底と上部の境目に食い込ませ、えいっとやればパカッと外れる。

その後、ホイール付近を綺麗に掃除したら直った。ヽ( ・∀・)ノ

むぅ

| コメント(0) | トラックバック(0)

3,4ヶ月の苦労とソースの一部がパァになりそうな流れ。
やるせない( ´△`)-3

スーパーヘビーローテション中。早口すぎて面白い。

この組み合わせを考えつくことがすごい。

今日見た記事の中でも特に興味深かったモノ。
脳に「電気」を流すと「意識」が生まれた。人間もロボットにすぎないのか:アルファルファモザイク


意識が消える前の被験者と意識が復活した被験者は同じ人なのだろうか?という部分が非常に興味深い。

全ての生き物はインプットとアウトプットを繰り返す、有機物で作られたロボットに過ぎないのだろうか?
「いや、実際に自分が今ココに居るという実感があるわけだし...」とか思っても、これも脳がはきだしたアウトプットの1つに過ぎないのだろうか?

43 おくさま(静岡県) :2007/11/17(土) 23:46:41 ID:9lK6uU1U0
俺だけ人間で他の奴らは全員ロボット
別の世界で他の人間が俺の姿をモニタで観ながら笑ってる

88 浴衣美人(栃木県) :2007/11/17(土) 23:56:07 ID:npLbIPr00
>>43
なんでだろうなー俺もそんな事を本気で考えてた頃が在った。

当時友達にその事を言ったらそいつもそう考えてると言ってた。

ちょっと違うかもしれないけど自分の場合は「自分が青と感じる色は他人にも同じような青として認識されているのだろうか?」と昔考えていたことがあったなぁ。


70 舞妓(沖縄県) :2007/11/17(土) 23:51:28 ID:1zLP14vy0
あらゆる感覚が失われた状態で意識のみがあった場合、その感覚を味わってみたい。
そういった状態があり得るのか疑問だが。

73 容疑者(福岡県) :2007/11/17(土) 23:52:58 ID:JgYeTW5c0
>>70
無い
インプットが無くなればアウトプットも消失する
すでに証明されてる

91 舞妓(沖縄県) :2007/11/17(土) 23:56:51 ID:1zLP14vy0
>>73五感を失えば意識も同時に失うという事か。

この辺の話も怖い。死んだ後は無だというDeathNoteの最後をちょっと思い出した。
自分の体を操っているのは自分だと認識するこの意識は一体どの段階で発生するのだろう?で、その意識の持ち主がどうしてオレなのだろう?脳みその中で走っている膨大な量の電気信号のやりとりの結果がこの意識なのだろうか?この意識を失うということが死なのだろうか?考えれば考えるほど頭が痛くなる問題だ。


ひとつだけ言えるのは、今、死についてアレコレ考えるよりはオレの修論について考えるほうが自分にとってよっぽど有益だということだ。てなわけでまたちょっと頑張る。

前にも書きましたが、バイト先でWeb::Scraperを使ってます。

スクレイピング対象数が膨大な場合にちょっと困ったことが起きたので、今日はそれのmemo。
何が起こったかというと、スクレイピング先のサーバの調子が悪くて、500エラーなどを返したときに例外処理を書いていないとコケてしまうのだ。

例えば当ブログの最近の各エントリーページからのタイトル部分を引っ張ってくるとしよう。


#!/usr/local/bin/perl
use strict;
use Web::Scraper;
use URI;
use YAML;
binmode STDOUT => ":utf8";

my @uri = qw(http://hoge.sub.jp/blog/archives/2007/11/post_303.html
http://hoge.sub.jp/blog/archives/2007/11/post_3000.html #桁違い
http://hoge.sub.jp/blog/archives/2007/11/post_302.html);

my $scraper = scraper {
process "h3", "title" => "TEXT";
};

for (@uri){
my $result = $scraper->scrape(URI->new($_));
print Dump($result);
}

実行すると
> perl test.pl
---
title: てくのー
GET http://hoge.sub.jp/blog/archives/2007/11/post_3000.html failed: 404 Not Found at test.pl line 17
2番目のURLは現在では存在しないのでWeb::Scraperがcroak を呼び出す。この為、素のloopで回している上記のコードはループの途中でこけてしまう。


・対策方法その1
一番ラクなのはevalブロックで問題の箇所をくくって例外処理だろう。
evalブロック内でdieやcroak等でコケた場合、特殊変数$@(それにしても$@って、google先生キラーな名前だよなぁ)にエラー内容が入る。下記の場合はWeb::Scraper内のcroakに渡された文字列が入る。


#!/usr/local/bin/perl
use strict;
use Web::Scraper;
use URI;
use YAML;
binmode STDOUT => ":utf8";

my @uri = qw(http://hoge.sub.jp/blog/archives/2007/11/post_303.html
http://hoge.sub.jp/blog/archives/2007/11/post_3000.html
http://hoge.sub.jp/blog/archives/2007/11/post_302.html);

my $scraper = scraper {
process "h3", "title" => "TEXT";
};

for (@uri){
my $result;
eval {$result = $scraper->scrape(URI->new($_))};
#例外処理
if($@){
print "exception! $@\n"
} else {
print Dump($result);
}
}

実行してみる
> perl test2.pl
---
title: てくのー
exception! GET http://hoge.sub.jp/blog/archives/2007/11/post_3000.html failed: 404 Not Found at test2.pl line 18

---
title: 時間つぶしはニコニコ動画に限るよ。
ok。最後まで走った。


・対策方法2
plaggerプラグインのplugins/CustomFeed-Script/muhyojo.plを見て初めて知ったのだが、scrapeに渡すのってURIオブジェクトに限らないのね。
確かにWeb::Scraperのソースを見てみると


sub scrape {
my $self = shift;
my($stuff, $current) = @_;

my($html, $tree);

if (blessed($stuff) && $stuff->isa('URI')) {
require Encode;
require HTTP::Response::Encoding;
my $ua = $self->user_agent;
my $res = $ua->get($stuff);
if ($res->is_success) {
my @encoding = (
$res->encoding,
# could be multiple because HTTP response and META might be different
($res->header('Content-Type') =~ /charset=([\w\-]+)/g),
"latin-1",
);
my $encoding = first { defined $_ && Encode::find_encoding($_) } @encoding;
$html = Encode::decode($encoding, $res->content);
} else {
croak "GET $stuff failed: ", $res->status_line;
}
$current = $stuff->as_string;
} elsif (blessed($stuff) && $stuff->isa('HTML::Element')) {
$tree = $stuff->clone;
} elsif (ref($stuff) && ref($stuff) eq 'SCALAR') {
$html = $$stuff;
} else {
$html = $stuff;
}

  …(略)

と、いった感じでURIオブジェクト以外も受け付けてくれるようだ。ただ、代入しているだけなのでその場合は自分でdecode等の処理をかけないとまずい。
んで、できたのが、↓


#!/usr/local/bin/perl
use strict;
use Web::Scraper;
use URI;
use YAML;
binmode STDOUT => ":utf8";
use Encode;
use DateTime;

my @uri = qw(http://hoge.sub.jp/blog/archives/2007/11/post_303.html
http://hoge.sub.jp/blog/archives/2007/11/post_3000.html
http://hoge.sub.jp/blog/archives/2007/11/post_302.html);

my $scraper = scraper {
process "h3", "title" => "TEXT";
};

for my $url (@uri){
my $response = $scraper->user_agent->get($url);
unless ($response->is_success) {
#ここで例外処理
print "GET $url failed: " . $response->status_line . ' : ' . DateTime->now . "\n";
next;
}

my ($encoding) = $response->header('Content-Type') =~ /charset=([\w\-]+)/g;
my $result = $scraper->scrape( Encode::decode($encoding, $response->content) );
print Dump($result);
}

encodingの取得はWeb::Scraperを参考にした。よくよく考えたら、日付情報加えただけなのであんまlogは変化してない...。これでは$@とカワランのでダメな例ですね(´Д`;)

とりあえず実行してみる。
> perl test3.pl
---
title: てくのー
GET http://hoge.sub.jp/blog/archives/2007/11/post_3000.html failed: 404 Not Found : 2007-11-19T14:24:06
---
title: 時間つぶしはニコニコ動画に限るよ。

個人的にはやっぱ$@の方が楽かなーという印象。URIオブジェクトではなく、GRTした内容をscrapeに投げる場合は色々とごにょごにょしなきゃいけないのが最大のネックかなー。

てくのー

| コメント(0) | トラックバック(0)

(01 08 14 16 17 21 23 25 29 31 35) 計11/35 赤文字はオレもよく聴いていた曲。
高校の時ぐらいからこれ系の音楽ばっかり聴いていたのに半分もワカランかった~。orz

誰かテクノ系クイズもっと簡単なの作って( ´Д`)ノ

問題なのは時間つぶしどころか時間泥棒にあっている点ですな。

ターミネーター2のBGMを間違えてみたⅡ
T2.nico.jpg
職人技を見るたびに保存できたらな~と思う。金払えッてことですか、すみません(´・ω・`)

あとニコニコ動画で見たウサビッチというアニメがすげぇ面白い。
公式のストーリと登場人物の紹介ページ見たけどロシアが舞台だからウサビッチなのねぇ。それにしてもキャラの名前プーチンっていいのか?w
ドイツタンクマニアの私としてはKV-1が出てきて涙目。

タンク繋がりでもうひとつ。

最近はまってる曲であるred fraction。このタグから辿って見つけた中でも特に異彩を放つ作品。I have big gun(120mm)というコメントに吹いた。

深夜の来客

| コメント(0) | トラックバック(0)

desutanと電話で雑談してちょっとだったかな。
今度は何故かトラさんが研究室に登場。駅まで車で送る。
なんかしらんが同級生と縁がある一日であった。

みんなスーツなんだよねぇ。いいなぁ~社会人。でもスーツは疲れるのであんま好きではないのですが。

家族全員に関わることだし、自分も社会人になって最初の数年はお世話になりそうなので、例のマンションの権利者説明会に出てみた。
思ったことや気になったことを忘れないうちにmemoしておく。

---

事の経緯や今までのまとめに関してはここがよくまとめてくれている。
http://blog.livedoor.jp/vivit2007p2/archives/51181724.html

けど、リンク先で書かれてる内容と実際とでは若干違う点があるのでちょっと指摘してみる。
まず、リンク先のフロアの平面図。南側だけ柱がスカスカな印象があるが、実際には今回問題があった柱と同程度の柱とひと回り小さい柱が等間隔に混在している。リンク先の図には南側から数えて横2列目にあるはずの8本の柱が描かれていない。

後、最初の報道で5cm径の鉄筋と報じられた為、ネットでこの件に関して調べてみると、みんなD51だD51だと言っているが、実際に柱に使われている鉄筋は清水建設の説明資料によると22本(まぁ、残念なことに今は20本だが...)の鉄筋全てが41mm径とのこと。なんで報道と食い違っているのか謎。質問したかったが、残念ながら時間がなかった。

前回、中日新聞で引用した部分なんだけど、説明を聞く限りでは

市によると、設計上は1本の柱に22本の鉄筋が必要だが、テンプレートの穴は20しかなかった。鉄筋は、テンプレートを元にして鉄板に穴を開けて差し込む仕組み。穴の数通りの鉄筋が入っていたため、施工段階で不足に気付かなかったとみられる。

この表現にはちょっと語弊があるみたい。どうやら最初に穴が22あるテンプレートの穴を2つ塞いで20にしたようだ。(ここでわざわざ穴を埋めてなければなぁ...)なので鉄筋を新たに突っ込む余地が真ん中に確保できるそうな。

コンクリの削り方はリンク先の予想通り、超高圧ウォータージェット工法であってる。
この工法だとコンクリだけを凹凸に削って、鉄筋部分は傷めないというのだが...どうなんだろう。一番の不安がココにある。

配筋検査は問題の階以外も過去に撮った写真4000枚を元に設計図通りであることを清水建設が既に確認。更に配筋が変わる特定の階層で引き続き第3者の日本建築センターが監査。更にコレではみんな納得しないので日本建築センター以外の清水建設とは繋がりを持たない第3者が更に全配筋を確認することになりそうだ。

配筋検査はかなり念入りにやることになるんだなぁという印象を受けたが、どっちにしろ数ある改修方法の中でも今回説明した補修工事という形がそこに住む人にとって最善の方法なんだという第3者による技術的な面での確証が得られないままではとてもじゃないが、みんな今回提案された補修工事は認めないだろう。

その場にいた権利者の方も言ってたけど、説明会でも第3者の専門家は居て欲しい。正直、建築に関してはこっちはシロートなので技術的な話を清水建設や日建設計の人から言われても、こちらは「はぁ、そうなんですか。」としか言えない。しかもそれが信用できないので不安感が最後まで拭いきれない。

---

http://blog.livedoor.jp/vivit2007p2/archives/51176194.htmlより

当時のJR市川駅南口は,低層の老朽化した木造建築物が密集していた.

今となってはあの街並みが非常に懐かしいものに思えてくる...。(;´-ω-)-3

---

#理事会の人とかご高齢の方が多いのに大変だよなぁと思う。
#ところでいざ、会場から出てみるとマスコミ関係っぽい人が結構居てびっくり。カメラも居たので全国区でちょっと映ったかもしれない。まぁ、研究室に籠もりっぱなしなので、実際に放映されたかどうかは全然分からないのですが~。

前回scraper CLIを試してみたら、これはチェックにすげーよさげと書いたけど、なんか使いづらいんだよね。

cpanシェルと同じで履歴効かないし、矢印キーを押したら^[[Aみたいな感じで制御文字が吐き出されちゃう。
cpanシェルはぶっちゃけ、install [モジュール名をコピペ]だからそんな気にしてなかったんだけど、流石にscraper CLIで前回の履歴を使えないのは痛すぎる。

でも前回、参考にしたページには

Term::ReadLine を使用しているのでシェルみたく履歴を呼び出せる。CSS セレクタや XPath をちょこちょこ修正して試すのに便利。

ってあるんだよねぇ。確かにscraperコマンドの本体を見てみたらuse Term::ReadLineをしていた。コケないってことは既に自分の環境にTerm::ReadLineは入っているはず。なのになぜー?

という訳で調べてみたら、Term::ReadLine単体じゃ履歴や補完といった便利な機能は提供してくれないようです。[参考:Term::ReadLine で GNU Readlineを使う。]

Term::ReadLine::Gnuも必要とのことで早速cpanシェルでこれを入れてみる...が見事にこけた。force installでもダメだったのでportsが提供されていないか調べてみたがなさげ...?と思ったらあった![参考:perlshを使いはじめた]

port名は p5-Term-ReadLine-Gnu ではなく p5-ReadLine-Gnuなのか...。危うく諦めるところだった。

portsなら一発でokだった。早速 scraper [URL]とやってみると...矢印キーが普通に効くし、履歴も参照できるようになった!
ついでに、cpanシェルの方も使いやすくなったので、今まで不便な状態でcpanシェルを使っていたのがアホらしくなった。

「超薄型MacBook 1月登場」のうわさ

次ノートPC買うとしたらMacBook欲しいーと思っていたので、すげー気になる。
もし、買うとしたら当然こっちの方だなぁ。(´Д`*)

もしかしたら...というか絶対mixiのプロフィール欄かき集めて秘密裏にデータベースを作ってる人が居るんじゃないかと。

show_friend.plに渡すidは連番だし、あのサイトと違って、mixiのプロフィール欄はスクレピングしやすいHTMLコードだ。
今日もどっかでbotちゃんが頑張っているにちがいない。

...といってもそんな一人一人のプロフィールは大した情報じゃないけどねぇ。
大量に集めたところで統計を取ってみると面白いことが分かるかもしれない。

---

Web::ScraperのCLIをさっき初めて試してみたけど、もっとはやくから触っておくべきだったと激しく後悔した。
[参考元:http://d.hatena.ne.jp/hetappi/20070830/1188491543]

FireBugsのXPathじゃ引っ張れないときとかあるからなぁ....。

なんか一回どっかのblogで64k以上のデータを送ったら挙動が怪しかったような...と思って
調べてたら、勘違いでGearman の話だった。

http://naoya.g.hatena.ne.jp/naoya/20070928/1190974874


#GMailのバージョンアップで読み込みがすんごく早くなった。
#BlogLinesをGMailに転送して読んでる身としてはありがたい。

清水建設の超高層マンション、鉄筋不足…30階で工事停止

家からの℡で知った。実家の引っ越し先予定地なので全然洒落にならねー(´□`)
母方の昔からの家を売って立ち退いた挙げ句、得られるモノが欠陥マンションって、これなんて罰ゲーム?

次回の集会は役所の人が地権者からフルボッコの予感。
欠陥マンション作らす為に思い入れのある土地から立ち退いたんじゃねーぞ!ヽ(`Д´#)ノ

思えば、今は亡き祖父の体調が悪化したのもこのマンション建設の為に施設との移動回数が多くなったのが原因だ。自宅で過ごして時は体調が良かったのに。うちの家族はどこまで市川南口の再開発の為に振り回されればいいのやら。

鉄筋入れる穴の数が不足 清水建設が是正計画書より

市によると、設計上は1本の柱に22本の鉄筋が必要だが、テンプレートの穴は20しかなかった。鉄筋は、テンプレートを元にして鉄板に穴を開けて差し込む仕組み。穴の数通りの鉄筋が入っていたため、施工段階で不足に気付かなかったとみられる。

いや、気づいてただろ。
気づいて無くてマジで穴が全部埋まってるかどうかのチェックしかしてないのだとしたら、ひどい検査だ。極端な話、その場に設計書がなくても検査できてしまうのだから。


それにしても今回行われた任意の中間検査が無かったらと思うとぞっとする。日本建築センターの職員GJすぎる。
補強工事どうなるんだろうなぁ。住む側としては工期なんかより強度を最優先してもらいたいのだが。

hatenaの日記とか見てると面白そうなので一週間ぐらい前からやってます。つぶやき好きにはたまらんかもしれん。知らない人とまったりIRCやってる感じ。華麗にスルーするのもよし、つぶやきから会話に発展するのもよしって風潮が気楽でよい。

マイアカウント → http://twitter.com/Xyo/ (流石にLyoでは取れませんでした。)

作成直後はこんな感じで

ちょっと寂しい感じだが、はてなのついったー部Friends登録ご自由に から話が合いそーな人を中心にfollowしまくって、更にそのfollowした人のFollowing からまた分野が似通ってる人をfollow。

とりあえずそこそこの人数になったので一段落ってトコか。まだ100人以下だが、割とログの流れも早いので楽しめてます。

ちなみにwebのインターフェースは扱いづらいのでTwitという専用のクライアントソフト入れてます。MSNメッセンジャーと変わらない感覚で楽しめる。

ちなみに@cress_ccが「ついったーFreeBSD部」という粋な部を作成してくれたので入部しました。はてなの方はLyoでアカウントが取れてしまった。らっきー。

このアーカイブについて

このページには、2007年11月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年10月です。

次のアーカイブは2007年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて
Powered by Movable Type 4.261