- MDGRAPE2(2004年03月29日 )
- 飛び降り(2004年03月24日 )
- 桜咲き始め?(2004年03月18日 )
- テント村(2004年03月17日 )
- 姫野ベンチ(2004年03月16日 )
- はてなダイアリー風TextFormat(2004年03月14日 )
- Movable Type(2004年03月13日 )
2004年03月29日
MDGRAPE2
昨日見た化学会年会の企業ブースに(社)理化学研究所っていうブースがあって、MDGRAPE2のデモが行われていた。あー、化学会でも宣伝するんだな…って思ったのでした*1。
*1: そして、どこが(社)なんだ?(独)じゃないのか?、…とも思ったのでした。
説明していたのは知らない人(たぶん所属も違うユニバースとは関係ない人)なんだけど、共同開発のところに知った名前として、こいしさん、えびすさんに、まるさんがいたので、そっか。まるさんGRAPE関連で何かやってたんだ、ふーん…って思ったのだったり。
2004年03月24日
飛び降り
今日はJRで帰るんだ…と、ふと心に決めて池ノ端門へ行くも、ちょうど閉門直後。
0時に閉門されるのも困ったものだ。
これまでなら門の左の壁からポストの上を経由して、まぁそれなりにマイルドに降りることができたのだけれど、最近工事をしているせいでポスト付近には看板が立ってる。
仕方なく、門からさらに離れた壁の上から路上に飛び降り、無事着地。
ものすごーくひさびさに2mくらいの高さを飛び降りたような気がする。
どうせ門を工事するのだったら*1、ついでに出る者は拒まず式扉にしてくれると楽だったんだけどなぁ…。
*1: 池ノ端門はここしばらく改装!?工事中だったのだ。
2004年03月18日
2004年03月17日
テント村
例年、新入生の健康診断やら入学手続きにはいくつものサークルが安田講堂の出口に陣取って勧誘合戦を繰り広げているのだが、どうやら今年もその時期らしい。
数日前からテントで泊まり込みの場所取りが始まり、今夜はさながらテント村。
昨夜は登山用のきちんとしたテントが多かったのだけれども、今夜はさらに、キャンプ用以外のテントもいくつも林立。元気なことだ。
そして自分はそれを横目に帰ってきたのであった…。
いずれも2004/03/19夜撮影:既に数日が過ぎている。
2004年03月16日
姫野ベンチ
今日いろんなマシンで姫野ベンチ(himenoBMTxp_m)を試してみた。
- 右隣の机のPowerMacG4 (1.25GHz Dual機だが計測はおそらく1CPU)が 186 MFlops
- 左隣の机の新品のFMV BIBLO MG75G (PentiumM 1.5GHz 512MB)が 339 MFlops
- 自分のAMD AthlonXP2200+ 512MB機が 306 MFlops
- 自宅Pentium4 2.0A MHz 512MB機が 335MFlops
…と、軒並みうちの研究室の
- Compaq AlphaStation XP1000 (Alpha21264 667MHz)、 132MFlops
よりも速いらしい…。
G4 1.25GHzがちょっと遅すぎる気もするけどこれはひょっとしたらGCCで、しかもオプション無しでCをコンパイルしたからかもしれない。
ん!? そういえば姫野ベンチは前も測っていて
http://t.nomoto.org/etc/diary.html#030423A
その時は
- 431.7 MFlops: AthlonXP 2200+ HimenoBMP XP
- 353.7 MFlops: Pentium4 2.0GHz 512MB HimenoBMT XP
らしいので、1年前より同じマシンなのに大分遅くなったことになる…。
なんでだろう…。
AMD AthlonXP2200+ 512MB機
C:\HimenoBMT\himenoBMTxp_m_exe>himenoBMTxp_m.exe mimax= 257 mjmax= 129 mkmax= 129 imax= 256 jmax= 128 kmax= 128 Start rehearsal measurement process. Measure the performance in 3 times. MFLOPS: 302.5768 time(s): 1.359375 1.6839170E-03 Now, start the actual measurement process. The loop will be excuted in 132 times. This will take about one minute. Wait for a while. Loop executed for 132 times Gosa : 1.3284048E-03 MFLOPS: 305.9335 time(s): 59.15625 Score based on Pentium III 600MHz : 3.693065
Pentium4 2.0A MHz 512MB機
C:\HimenoBMT\himenoBMTxp_m_exe>himenoBMTxp_m.exe mimax= 257 mjmax= 129 mkmax= 129 imax= 256 jmax= 128 kmax= 128 Start rehearsal measurement process. Measure the performance in 3 times. MFLOPS: 324.9900 time(s): 1.265625 1.6839170E-03 Now, start the actual measurement process. The loop will be excuted in 142 times. This will take about one minute. Wait for a while. Loop executed for 142 times Gosa : 1.3130215E-03 MFLOPS: 334.9493 time(s): 58.12500 Score based on Pentium III 600MHz : 4.043328
Compaq AlphaStation XP1000 (Alpha21264 667MHz)
alpha> a.out Select Grid-size: Grid-size= XS (64x32x32) S (128x64x64) M (256x128x128) L (512x256x256) XL (1024x512x512) M mimax= 257 mjmax= 129 mkmax= 129 imax= 256 jmax= 128 kmax= 128 Time measurement accuracy : .10000E-03 Start rehearsal measurement process. Measure the performance in 3 times. MFLOPS: 84.17038 time(s): 4.88670000000000 1.7335929E-03 Now, start the actual measurement process. The loop will be excuted in 36 times. This will take about one minute. Wait for a while. Loop executed for 36 times Gosa : 1.5376997E-03 MFLOPS: 131.6115 time(s): 37.5027000000000 Score based on Pentium III 600MHz : 1.588743
2004年03月14日
はてなダイアリー風TextFormat
世の中にはどんなblogツールがあるんだろう…とか思いつつふらふらとWebを見ていたら、blogツール 一覧
BlogツールのMOVABLE TYPEを利用しているのですが、記事内のURLをタグをいちいち入力しなくとも自動的にリンクさせるようなプラグインはありますか?
http://www.hatena.ne.jp/1066279500
Movable Typeではてなダイアリーのような入力補助が使えるようなプラグインはありませんでしょうか?MT-Textileでは、めんどくさいなぁ…と思う人間で、はてなような入力補助をつかいたいのです。
なんていうページを見つける。ふむふむ…と思いつつ、書かれていた
MovableType用TextFormatプラグイン mt-sukeroku-plus.pl
を入れてみた。
で、この書き込みがこれを使っての初書き込みなわけだ。結果は如何に?
■ 結果
- 見出しの先頭はやっぱり「■」かなぁ…と思ってなんとなく設定。*1
- 脚注の番号の前にリストがあるのはなんか変かも。
- [ google:blogツール 一覧 ]は認識されなかった。
- HTMLタグのブラケットは明示的に<とか>みたいに書かないと駄目なのか。
- あれ。整形済みテキストにdiffの結果放り込んだら化け化けで大変。でも、はてなで試してみても実は同じ結果だった…。
なるほど。そこで…。
■ 使いやすくするべく変更
- 脚注が<ul>&<li>で囲まれているのはなんか変な気がしたので<div>&<p>に変更。*2
- [ google:検索語 ]を認識するようにした。
- 整形済みテキスト内部でHTMLタグをエスケープして、タグ・リンクの追加を行わないようにした。(はてなにはない機能)
diffをとるとこんな感じ。(Ver.0.20にて)
*** mt-sukeroku-plus_original.pl Sun Mar 14 14:13:54 2004 --- mt-sukeroku-plus_modified.pl Sun Mar 14 15:58:12 2004 *************** *** 591,597 **** my ($inlineText) = @_; # ■ リンク ! if(/(http|https|ftp|mailto|ISBN|isbn|ASIN|asin):([^\x00-\x20()<>\x7F-\xFF])*/){ # さまざまなパターンについて $inlineText =~ s!( # []URL[] --- 591,597 ---- my ($inlineText) = @_; # ■ リンク ! if(!$format_mode_pre && /(http|https|ftp|mailto|ISBN|isbn|ASIN|asin|google):([^\x00-\x20()<>\x7F-\xFF])*/){ # さまざまなパターンについて $inlineText =~ s!( # []URL[] *************** *** 600,605 **** --- 600,608 ---- # [URL] (\[(http|https|ftp|mailto|isbn|asin|ISBN|ASIN):([^\x00-\x20()<>\x7F-\xFF])*\]) | + # [google] + (\[google:[^\]]+\]) + | # src="URL", href="url" ((src|href|cite)=\"(http|https|ftp|mailto|isbn|asin|ISBN|ASIN):([^\x00-\x20()<>\x7F-\xFF])*\") | *************** *** 608,614 **** )!&$func_inlineLink($1)!gex; } # ■ 脚注 ! if(/\(\(([^\)]+)\)\)/){ my $permaUrl = &getMTEntryPermalink($ctx); my $func_collapse_tag = sub{ --- 611,617 ---- )!&$func_inlineLink($1)!gex; } # ■ 脚注 ! if(!$format_mode_pre && /\(\(([^\)]+)\)\)/){ my $permaUrl = &getMTEntryPermalink($ctx); my $func_collapse_tag = sub{ *************** *** 638,644 **** } $counter_footnote++; ! $buffer_footnote = $buffer_footnote . qq(<li class="footnote"><a name="footnote_${footnote_part}${counter_footnote}" href="${permaUrl}#footnote_${footnote_part}${counter_footnote}_root">${footnote_symbol}${counter_footnote}</a>: ) . &$func_inline(${footnote_text}) . qq(</li>); return qq(<span class="footnote"><a title=") . &$func_collapse_tag(${footnote_text}) . qq(" href="${permaUrl}#footnote_${footnote_part}${counter_footnote}" name="footnote_${footnote_part}${counter_footnote}_root">${footnote_symbol}${counter_footnote}</a></span>); }; my $func_footnote_switch = sub{ --- 641,647 ---- } $counter_footnote++; ! $buffer_footnote = $buffer_footnote . qq(<p class="footnote"><a name="footnote_${footnote_part}${counter_footnote}" href="${permaUrl}#footnote_${footnote_part}${counter_footnote}_root">${footnote_symbol}${counter_footnote}</a>: ) . &$func_inline(${footnote_text}) . qq(</p>); return qq(<span class="footnote"><a title=") . &$func_collapse_tag(${footnote_text}) . qq(" href="${permaUrl}#footnote_${footnote_part}${counter_footnote}" name="footnote_${footnote_part}${counter_footnote}_root">${footnote_symbol}${counter_footnote}</a></span>); }; my $func_footnote_switch = sub{ *************** *** 698,704 **** # # 見出し # ! elsif (/^(\*{1,3})(.*)/) { my $permaUrl = &getMTEntryPermalink($ctx); my $headingPart = &$func_getTextPartInitChar(); my $headingTag = ''; --- 701,707 ---- # # 見出し # ! elsif (!$format_mode_pre && /^(\*{1,3})(.*)/) { my $permaUrl = &getMTEntryPermalink($ctx); my $headingPart = &$func_getTextPartInitChar(); my $headingTag = ''; *************** *** 723,758 **** # # リスト表示。 # ! elsif (/^(-+)(.*)$/) { &back_push('ul', length($1), \@saved, \@result, ''); push(@result, '<li>' . &$func_inline($2) . '</li>'); } ! elsif (/^(\++)(.*)$/) { &back_push('ol', length($1), \@saved, \@result, ''); push(@result, '<li>' . &$func_inline($2) . '</li>'); } # # 用語定義 # ! elsif (/^:([^:]+):(.*)/) { &back_push('dl', 1, \@saved, \@result, ''); push(@result, '<dt>' . &$func_inline($1) . '</dt>', '<dd>' . &$func_inline($2) . '</dd>'); } # # 引用 # ! elsif (/^>>$/) { #&back_push('blockquote', 1, \@saved, \@result, ''); push(@result, '<blockquote>'); } ! elsif (/^<<$/) { #&back_push('blockquote', 1, \@saved, \@result, ''); push(@result, '</blockquote>'); } # # 整形済みテキスト # ! elsif (/^>\|$/) { #&back_push('pre', 1, \@saved, \@result, ''); if($format_mode_pre != 1){ push(@result, '<pre>'); --- 726,761 ---- # # リスト表示。 # ! elsif (!$format_mode_pre && /^(-+)(.*)$/) { &back_push('ul', length($1), \@saved, \@result, ''); push(@result, '<li>' . &$func_inline($2) . '</li>'); } ! elsif (!$format_mode_pre && /^(\++)(.*)$/) { &back_push('ol', length($1), \@saved, \@result, ''); push(@result, '<li>' . &$func_inline($2) . '</li>'); } # # 用語定義 # ! elsif (!$format_mode_pre && /^:([^:]+):(.*)/) { &back_push('dl', 1, \@saved, \@result, ''); push(@result, '<dt>' . &$func_inline($1) . '</dt>', '<dd>' . &$func_inline($2) . '</dd>'); } # # 引用 # ! elsif (!$format_mode_pre && /^>>$/) { #&back_push('blockquote', 1, \@saved, \@result, ''); push(@result, '<blockquote>'); } ! elsif (!$format_mode_pre && /^<<$/) { #&back_push('blockquote', 1, \@saved, \@result, ''); push(@result, '</blockquote>'); } # # 整形済みテキスト # ! elsif (!$format_mode_pre && /^>\|$/) { #&back_push('pre', 1, \@saved, \@result, ''); if($format_mode_pre != 1){ push(@result, '<pre>'); *************** *** 766,772 **** $format_mode_pre = 0; } } ! elsif (/^$/){ if($lastLine =~ /^$/){ push(@result, "<br />"); } --- 769,775 ---- $format_mode_pre = 0; } } ! elsif (!$format_mode_pre && /^$/){ if($lastLine =~ /^$/){ push(@result, "<br />"); } *************** *** 776,781 **** --- 779,792 ---- # elsif ($format_mode_draft == 0){ + # 整形済みテキスト中でHTMLタグをエスケープ + if ($format_mode_pre){ + ~ s/\&/\&/g; + ~ s/</\</g; + ~ s/>/\>/g; + ~ s/\"/\"/g; + } + if (/^\s+/) { if($format_mode_paragraph == 1 && $format_mode_pre != 1){ push(@result, qq(<p>$_</p>)); *************** *** 829,837 **** # 脚注の出力 # if($counter_footnote > 0){ ! push(@result, '<ul class="footnote">'); push(@result, $buffer_footnote); ! push(@result, '</ul>'); } my $out = join("\n", @result); --- 840,848 ---- # 脚注の出力 # if($counter_footnote > 0){ ! push(@result, '<div class="footnote">'); push(@result, $buffer_footnote); ! push(@result, '</div>'); } my $out = join("\n", @result); *************** *** 1026,1031 **** --- 1037,1063 ---- } $localAnswer = qq(<a href="${localAddress}">${localAltText}</a>); } + ## + ## Google 検索 + ## + elsif ($localAddress =~ /^(google):(.+)/) { + # 宣言 + my $localGoogleSearch = $2; + # 代替テキストの設定 + if(defined($localAltText)){ + if($localAltText eq ''){ + $localAltText = $localAddress; + } + } + else{ + $localAltText = $localAddress; + } + # 空白類を+に変換 + $localGoogleSearch =~ s/([^\w ])/'%' . unpack('H2', $1)/eg; + $localGoogleSearch =~ tr/ /+/; + # Googleへのリンク生成 + $localAnswer = qq(<a href="http://www.google.com/search?lr=lang_ja\&q=${localGoogleSearch}" target="${localTarget}">${localAltText}</a>); + } # # それ以外の場合 #
「利用に際しては出来ればTrackbackをしかけてくだされば幸いです。」に従って、はじめてのトラックバックをしてみる。…ってこれでいいのかな…?