セミ

7 月 10th, 2009 by 窪田 史朗

セミコンダクタ、ではなく。
なぜゼミナールはゼミと略すのにセミナーはセミと略さないのかという素朴な疑問、でもなく。
駒場でが鳴いていた。
え?なに?夏?聞いてないよ!
つまりセミコンダクタとはセミのコンダクタ、即ちハーメルンの笛吹きならぬ、セミの鳴き声でセミを呼び集める謎の人物なんですね!良く分かりました!

大分錯乱しているようです。
…お前はもう、聞いている。

ぐれっぷ

7 月 9th, 2009 by 窪田 史朗

今回は私が普段使っているユーティリティの紹介です。コーディングネタか微妙な所だ。
言わずもがなですが、全てフリーソフトです。
多少の手間をかければフリーソフトで大抵のことが出来る、いい世の中ですねー。

  1. grep
  2. csconv
  3. サクラエディタ
  4. Inkscape

grep grepは便利ですよー。GoogleDesktopより便利です。
GoogleDesktopもインストールしてますけどね。
ただGoogleDesktopが検索対象にしているファイルは、 拡張子がdocやxlsやpdfやtxtと言った、一般的なものに限られています。 中身がプレーンテキストでもphpとかrbとか、とにかく一般的でない拡張子をつけてしまうと、 検索してくれないんですよね。
うーん不便。
なので、私はgrepを使っていますー。
でも何故か、-rオプションが、Macに同梱されているgrepでも、 Winに気付いたら入っていたgrepでも、動作しないんですよねー。
因に-rオプションを付けると、recursiveに、つまり下位にあるディレクトリの中身まで全部検索してくれます。
Winの場合は、Win版grepを落として来てパスの通ったディレクトリに置けば、動きますよ。
-rオプションも正常動作!これでWordPressの様な巨大スクリプト群の動作を追っかける時も怖くないぜ!
実際、複数のケースで謎の動作の原因究明に役に立ちました。
具体的には挙動がわからない関数の関数定義を探すのに使うのがほとんど。
希に変数も探すけど、変数の方が同じ名前のヤツが多い(その為のスコープですもの)ので、
そこまで役には立たないかなー。
is_single()の挙動とかはこれがなければたどり着けませんでしたよ。

CharSetCONVerter
略してcsconvとな。公式はこちら
見ての通り、決して新しいソフトではないんだけど、必要十分な機能が備わっていて、とても使い易い。
Web上のファイルを扱うと、どうしても文字コードには悩まされますねー。
私は使っていませんが、コマンドラインからも使える点もGoodですよね。バッチ処理もバッチリorz

サクラエディタ
フリーのテキストエディタ。中々強力。Winでは結構利用者多いのではないかな?
公式はこちらです。 元々私はHTMLにしろ、何にしろ、プレーンテキストはWindowsのメモ帳(NOTEPAD.EXE)で扱っていたんですが、 流石にShift-JISしか正常に読んでくれないnotepadでは、utf-8やeucで書かれたテキストを読み書きするのは無理があります。
いちいちcsconv通すのも流石に面倒です。
そこで高機能エディタで適当なのを探して、当たったのがサクラエディタ。
ただ、設定を変更した後、タスクトレイから「サクラエディタを完全に終了する」とかそんなコマンドを選ばないと、 iniファイルが上書きされず、結果として設定変更が次回起動時にパアになるのには何度も引っかかっています。
特にbregexp.dllの場所を中々覚えてくれなくて…(お前がちゃんと終了してないだけだわさ)。
ただサクラエディタに搭載されている文字コード変換は、あまりうまく動作しないみたいなので、 文字コード変換はcsconvなり何なり、別のソフトで行うのが無難。
サクラエディタを使う上では、上でも書いたけどbregexp.dllと、それからDiff.exeを用意しないと、威力が下がりますw

Inkscape
フリーのドロー系グラフィックソフト。フリーのくせにかなり強力。公式はこちら。
英語のソフトだけど、日本語化は可能。ただし、2B文字対応が不完全なのか、 テキスト入力は散々な結果になる場合があるので注意を要する。
あと、バージョンが1になっていないだけあって動作が不安定で時々落ちるので、保存はこまめにしましょう。
最近Webに進出して来た、SVGの編集が出来る。確かepsも読めた気が…。
あと個人的に?重宝しているのは、ビットマップトレースの機能。
ラスタ画像を持ち込んで、Inkscapeを通すと、かなり綺麗にベクトル化してくれる。
実は、去年の駒場祭で作った資料の表紙のウィトルウィウス的人体は、この機能を使ってベクトル化したものを、編集している。
はじめから手作業でやることを考えると絶望的な作業でも、この機能を通せば結構出来る!
もちろん癖があるので、思い通りの結果を得るには、事前の下準備が必要だったりするけど。

最近は使っていませんが、MetasequoiaLEとか、Pixiaとかも一時期は結構使ってました。
ただ、3DCGは猛烈に時間がかかるのと、最近画像編集自体をあまりやっていないのと、 Office2001に同梱のMicrosoft PhotoEditorでトリミングとか、最低限の機能は揃っているので、どちらもあまり使ってない。
とゆーか、3DCGならフリーソフトのBlenderでしょ!と思ったけどこちらも放り出してます…。
結局Shadeから3DCGに入ってしまうと、なかなかポリゴンモデラに馴染めないってことですかねー。
でもBlenderはそのうち再挑戦するのだー。だってBullet使えるらしいしー。

多分そのうち他のツールも紹介します。最後に一言付け加えるなら、正規表現による検索と置換ができると作業効率が全然違いますよ皆さんってことですかね。なんだそのオチ?は。

多少劇的Before-After

7 月 4th, 2009 by 窪田 史朗

なんというか、画像編集って素朴に恐ろしいですね…。
適当にちょこっと弄っただけで、随分印象が変わってしまいます。

元の画像

元の画像

[caption id="attachment_284" align="alignright" width="294" caption="編集済み"]編集済み[/caption] 上がBeforeで下がAfterでございます。
元画像は、気象庁の衛星画像のページから拝借した、ひまわり6号の画像(2009/07/03-16:00JSTのもの)なんですよ。
ガイア仮説のページで使おうと思って、少々画像が似合わんなぁ、と感じたので、若干ボカシをかけて、色調を明るくし、色温度を下げました。
編集している間は画像が徐々に変わるので、それほど差を感じなかったのですが、編集し終わって未編集画像と並べてみてみると、 「おいおい、こりゃ違うわ」と自分でやっておいてそれを言うか。
うーん皆さんも画像の効果には気をつけましょうね…。
視覚的に騙されるという話は良く聞きますが、今回自分でやってみてなんかしみじみ実感してしまった…。

暗黙のエコー

6 月 29th, 2009 by 窪田 史朗

このタイトルなんだかかっこいいよね。そんなことを意図して決めた訳ではないのですが。
名前に似合わず?コーディングネタ。

今回はWordPressは置いといて、PHPだけの話。
得てしてマニュアルと言うものは不親切ではありますが…。
いや決してマニュアルを責めている訳でもないのです。
大変お世話になっとります。
しかしぱっとよんで「そう言う理解はせんよ」と思う文章はあります。

PHPでは、他のテキストの間に、コードを埋め込むことが出来ます。こんな感じで。

<html>
	<body>
		<h3>ページタイトル</h3>
		<?php echo 'test'; ?>
		あああああ<br />
	</body>
</html>
恐らくHTMLを書いたことがある人、そしてブラウザからウェブページのソースを覗いたことのある人にとって、 <?php echo 'test'; ?>以外の部分は奇異ではないと思います。
そして(当たり前ですが)この?phpの部分がPHPのコードです。
仮にこのコードがtest.phpというファイルに書き込まれていたとすると、ブラウザで、例えばhttp://kenbunden.net/test.phpにアクセスすると、

ページタイトル

test あああああ

なんて表示になるはず。
つまり、echoの後にアポストロフィとかシングルクォーテーションで括られた文字列があると、それはHTMLに(微妙な言い方)反映されるのです。
多少は実用的な使い方を考えてみると、例えばPHPにはdate()という日付と時刻に関する便利な関数が存在します。
この関数はOSが時刻を管理するのに使っている整数値を、人間が見て分かり易い形式に変換してくれます。
一般的な場合は、1970年1月1日0時0分0秒からその日その瞬間までの秒数です。
大小を比較したりするのには便利ですが、そんな数字を提示されても人間にはいつのことだかサッパリです。
使い方についてはまぁ…マニュアルでも参照してもらうとして…。
先ほどの’test’の部分をdate(’Y-m-d H:i:s’)に書き換えると、2009-06-25 16:38:32等と表示される様に変わります。

<html>
	<body>
		<h3>時間を表示してみる</h3>
		本日は<?php echo date('Y-m-d'); ?>です。
		現在時刻は<?php echo date('H:i:s'); ?>です。<br />
	</body>
</html>
なんて書けば、

時間を表示してみる

本日は2009-06-25です。 現在時刻は16:38:32です。

なんて表示される訳です。

これぐらいのことJavaScriptでも出来る?その通りです。
しかしJavaScriptではなくPHPを使う最大の魅力は、なんと言ってもブラウザから見ている人にはただのHTMLにしか見えない、と言う点です。
JavaScriptであれば、なにやら怪しげなことが背後で行われているのはわかりますし、多少知識があれば何をやっているか丸見えです。
またブラウザを使って実行しているので、閲覧者がJavaScriptの実行を停止すると、表示もおかしくなります。
PHPであれば、閲覧者の元に届くのは処理を全て終えた後のただのHTMLなので、そういった心配は必要ありません。
(勿論PHPとJavaScriptを組み合わせて使うのは全く珍しくない話ですが)

…思えば遠くへ来たもんだ…。元々の話題は何でしたっけ?

    PHPの特徴
  1. PHPはプログラミング言語の一つである
  2. PHPはサーバで実行されるのであって、ブラウザで実行される訳ではない
  3. PHPはHTMLと混ぜて書くことができる
私が今話題にしようとしているのは最後の部分、HTMLと混ぜて書けると言う部分です。
例えばPHPでは以下の様なスクリプトが頻繁に出てきます。
<?php $i = 0; if ($i > 10 ) { ?> $iは10を超えている。<br /> <?php } else { ?> $iは10以下である。<br /> <?php } ?> このコードは、最も基本的な条件分岐を含んでいます。
つまり、変数(数学で使うのとはちょっと違います)$iが、10を超えているか否かによって、その後の動作が変化します。
因に$(ドル記号)はPHPにおいて変数を他のPHPコードの類から区別する為の接頭辞(プレフィクス)です。
プログラムはこれが先頭に来ている文字列を、変数として解釈しようとします。
説明の順序が逆になりましたが、変数と言うのはメモの様なものです。
様々な情報に名前付けをして管理するのに用います。
コンピュータの記憶領域の一部にプログラマが勝手な名前を付けて参照する仕組み、と言った所でしょうか。
さてこのコードは、以下のコード
<?php $i = 0; if ($i > 10 ) { echo '$iは10を超えている。'; } else { echo '$iは10以下である。'; } ?> と等価です。この、echoを明示的に書かなくても実質的にechoを書いたことになる点を指して、「暗黙のエコー」と勝手に呼んでいる訳です。

さて長々とここまでかかってやっと何が「暗黙」なのか書けたのですが、 マニュアルがいけないと思うのは、入門者へのこのHTMLと混ぜて使える点に関する説明がどうも不十分に感じられるんですよねー。
具体的にはこの[HTMLからの脱出]の部分です。
ここを読むと、開始タグと終了タグで囲まれている 箇所以外のすべての部分は、PHP パーサに無視されます。とある訳ですが〜。
現実問題、無視されている訳ではないのはお分かり頂けたかと思います。
なんだよちゃんと制御されているじゃん。
もう少し下を見ると、PHP は ?> 終了タグを見つけると それ以降新たに開始タグを見つけるまでの内容を何でも出力するからですってなってるんだけど、 それは無視じゃねーだろ。

実際、出力バッファリング関数群で、出力をバッファしてみると、<?php>と<?>に挟まれていない部分も、 あくまでもPHPスクリプトの出力として扱われていることがよくわかります。
でも私にはこの仕様(if文の途中で?>を書いても正常に動作する)はどーも気に食わないと言うか、違和感が拭えないと言うか…。
ヒアドキュメントなんてのもあるんだから、それでいーじゃないかと思ったりするんですよね。
うーん。

僕本~Amazonアフェリエイト一番乗り~

6 月 21st, 2009 by 窪田 史朗

だぞー。

今回紹介するのは、デーヴィッド・マコーレイ作の、『道具と機械の本』。私の人生を間違いなく左右している本だ。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

私は実は画像に写っている新版よりも、旧版の方が好きなんだけど…。
どちらにしろ、面白い本なのは間違いない。本というよりは絵本かな。
斜面に始まり、ねじ、てこ、滑車、ピストンとクランク、…火の利用…電磁気力、核分裂、核融合まで図で解説が書いてある!!!
小学校3年生か4年生の時に小学校の図書室で見つけて、小学生には重い大型本だったんだけど、正しく貪るように読みましたね。
原点からは大分離れている(これを読む以前からそういうものは好きだった)けど、これほどいい本にめぐり合えなかったら少しは方向がずれてたかな。
勿論子供向けの本、厳密さはそれほどでもないけど、今読んでも十分面白いのは、紹介する道具の選択が冴えているのと、なぜかいつもマンモスが出てくる短い挿話の中で、道具がはたらく時に人間が利用している様々な現象のエッセンスが、直感的に掴めるよう書かれ(描かれ)ているところが素晴らしいんだろう。
小学生でも理解できるレベルで、これほど広範囲を扱い、楽しく、かつかなり正確に書いてある。
著者(本業は建築家)の知識の範囲もさることながら、綿密な下調べをうかがわせる凄い本です。
中々こういった本を日本人は書かないんですよねー。(偏見だ)

新版では、旧版になかった「ディジタルワールド」という章が追加され、若干他の章のページが削られています。
しかしこの新章は、残念ながらコンピュータを理解していない人が読んでも良く分からない。
他の章のレベルが高すぎて、この章はとても残念な感じになっています。
この本を小学校6年生ぐらいに親にせがんで買ってもらったのですが、当時は新版に追加された章のイメージが湧かなかった…。
応用的にどう使われているかはよく分かるのですが、この本の魅力である原理的な部分が良く分かる、って所までは行ってません。
おそらくマコーレイ氏はコンピュータを理解していたのですが、コンピュータの発達に合わせて急遽追加したため、説明の仕方を十分に寝る時間が無かったのではないか、と不遜なことを考えています。
コンピュータの原理を別の本で大体理解した高校一年生くらいになって読み返すと、「あーそういうこと」と頷けるのですが、小学生当時の知識ではちょっと厳しかった…。
コンピュータを理解した本についてはまた別の機会に譲ります。

さらば700行

6 月 19th, 2009 by 窪田 史朗

さてAtahualpaの改造だが、一応当初の予定通りの動作をするものが出来た。
ソースを見てもらえば、以前はヘッダにあった長大(700行を越える)なCSSが無くなって、代わりにbfa_ata_style.cssとか、そんな名前のファイルが読み込まれる様になったのが分かると思う。
私が行った改造の具体的な内容及び手順は以下。

  1. Atahualpaの設定が更新されたことを記録するタイムスタンプをadd_optionで用意(実は必要ないが、念のため)
  2. Atahualpaのフォルダ直下にある、functions.phpを開けて、update_option()を呼び出している部分を探す
  3. 上記部分(Save Settingsを押すと呼び出される関数)の末尾に、タイムスタンプをupdate_option('option_name',date('YmdHis'))で記録する部分を追加
  4. header.phpに、カテゴリ判別してスタイルシートの名前を生成するコードを追加(以前からカテゴリ判別してCSSを書き換えていた)
  5. ファイル名を$filenameとすると、filemtime( TEMPLATEPATH . $filename)と、先ほどのタイムスタンプを比較して、タイムスタンプが大きければCSSを再生成する
  6. CSS再生成は具体的には以前のCSSを書き出していた部分の前後から、<style></style>を取り除き、前後にob_start()ob_get_clean()を配置、 バッファリングした内容を変数で受けて、ファイルに保存($filepointer=fopen($filename,'wb+'); fwrite($filepointer,$content);)
  7. 最後に、再生成をしてもしなくても、<link rel='stylesheet' href='春眠に限らず暁を覚えず'>を吐くように記述。

しかし誤算があった…。本家ブログだけでAtahualpaを使っているつもりだったのだが、そうではなかった。
木許さんのブログでもAtahualpaを使っていたのでした…。
複数のブログでAtahualpaを使うと、CSSが一種類しか生成されていないので片方の設定が更新されると、もう片方で読み込まれるCSS(同じファイル)が変わってしまい、結果奇妙なことが起きるのは想像がついていたのだが、「確か他にAtahualpa使ってる人はいないよなー、じゃあブログ判別ルーチンは書かなくていいや〜」と適当に書いた所、案の定衝突が起きました…。
現在はまずglobal $blog_idを呼び出してブログ判別を行い、更にその後カテゴリ判別をしています。
カテゴリとカテゴリIDの対応は、当然ブログ毎に違うので、この判定ルーチンはブログID毎に用意しなくてはいけないのが難点です。
今は本家以外ではカテゴリ判別を行っていないので特に問題はないけど、他でも行おうとすると中々面倒なことに。
引数としてブログIDとカテゴリIDを渡すと、ファイル名を生成するみたいな専用関数を書かないと収拾が着きませんな。
$filename=cr_fname($blog_id,$cats)みたいな。
しかも実際に吐き出すCSSの内容も変更しなくてはいけないので、中々難儀。
そうなったら変更に合わせた内容をoptionに格納してしまうぐらい必要だなー。
要らぬ心配(?)をするのでありました。

シャトル再延期

6 月 18th, 2009 by 窪田 史朗

更新が滞っているので、書きたかった時間の掛かるネタを諦め、短いものを。

2009/06/17に予定されていたシャトルの打ち上げが例によって再延期された。当初の予定は13日だった。
次の打ち上げ予定は多分窓の関係でだと思うが、7月後半になるらしい。
日食と被りますねぇ。まさか日食中に打ち上げたりはしないと思うけど…。
あれ?今シャトルは夜間打ち上げはしないことになってるのかな?

宇宙開発では、打ち上げの1ヶ月延期は取り立てて珍しいことではない。打ち上げに掛かる費用が莫大であるため、 打ち上げを強行して失敗するよりも、多少延ばした方がいい、という判断が働くのだろう。
とはいえ、それが費用が嵩む大きな原因になっているのだと思うが…。

延期の原因は、一度目も二度目も発射台でシャトルに燃料(LH2)を注入するパイプ(アンビリカルケーブル)が、水素ガス漏れを起こしたためだ。
一度目のガス漏れの後、その周辺の部品を全て取り外して交換し、漏れが無いことをチェックして注入し始めたのだが、 途中でまたもガス漏れをしたそうな。原因はなんなんでしょうね。
知ってる人は知ってるだろうが(何でもそうだ)、あの発射台はアポロ計画のサターンVを打ち上げるために作ったもので、 それを小改造して今でも使っているのである。
なんでシャトル専用のを作らなかったかって?そりゃ金が掛かるからですよ。
実際、シャトルはサターンVと違って回転対称ではないので、打ち上げ時の姿勢に制限が掛かるあの発射台は不便なんですが、 今でも使っております。
だから打ち上げ途中でくるっと旋回するんですよね、シャトルは。
まぁそんなこんなでアポロ月着陸40周年の今年は、あの発射台はもう40を当に超えているわけです。
そりゃー40年前の建築物なら(雨ざらしだし)老朽化もしますわなぁ。

今回シャトルは、実験モジュール「きぼう」の目玉である、船外実験設備を軌道上へ運ぶ。
大規模な真空曝露実験を行う設備は、ISS全体でもここにしか設置されないので、利用価値の高い設備だろう。
実験設備用の小さなエアロックもJEMには付属している。あと広角X線カメラで全天を走査するらしい。
突発的な現象を発見して、地上に知らせるのが役目だ。
注目すべきイベントがあると、世界中の天文台の望遠鏡や天文衛星が、予定を変えてその現象を撮影する。
見てないところは見られないのが望遠鏡なので、全天を96分で見張る設備があると大変便利なのです。

曝露実験をしても実験後の試料をどうやって持ち帰るかって問題はどうするんでしょうね。
なんにせよ頑張っても6年程度しか運用できないんですが…。
とにもかくにも、無事打ちあがって欲しいものです。

あたわるぱ。

6 月 10th, 2009 by 窪田 史朗

さてお約束通りCODINGネタ。
前回のキャッシュする作戦は一応成功したらしく、運悪く再生成する場合には、顕著に表示が遅くなる。
まぁ自己満足ですけどね。
でもアルゴリズム的に無駄な所を一カ所発見してショーック。
make_update_list()は、引数を4つ取っているのですが、当然どんな引数が渡されるかは実行時にならないと分かりません。 つまり、前回の引数と違っていたら、動作を変えなくてはいけないので、キャッシュを破棄して再生成しなくてはいけない。
そこで、再生成する度にそのとき使った引数をデータベース上に保存することにしたのですがー。
別に個々の引数が必要な訳じゃないんだから、まとめて判定してまとめて保存しておきゃーいいのに気付かず、 いちいち引数四つを個別に更新しているか判定、さらに個別に保存してまつた…。
後で直します…。

さて次の私の(自己満足の)ターゲットは、本家のあの長〜いヘッダ。アレどうにかしたい。CSSを外部ファイル化したい。とてもしたい。
その為のHeadClearnerってプラグインもあるんだけど、諸般の事情により使えないので、自作(!)しちゃえ。
自作と言う程のことは出来ないけど、Atahualpaのheader.phpを操作(ってかhack)すれば、ページに出力されるCSSが変更できるのは実証済みなので、 その出力を(場合によって)ファイルに保存しておけばいいのです。で、<style rel=”???.css”>とか書き込めば、うまくいく筈ですよね?
同じCSSを使っているページなら、外部CSSファイルを共有して、ブラウザ側でキャッシュしてくれるので、そう言う意味でもサーバ側もクライアント側も嬉しい筈。

で、方針。echoをリダイレクトします。出来るのかチェックした訳じゃないんだけど、これだけCそっくりなんだったら、標準出力への出力をリダイレクトする機能も多分あるでしょ。
CSSをモーレツに出力し始める手前で、条件分岐して、ファイルの更新日時と、タイムスタンプを比較して、もし設定が変わっているようなら、ファイル出力をやり直します。
そうでないなら素通しで。あ、あとカテゴリ毎に違うヘッダを適用するって、Atahualpaじゃ出来ないんでしょうか。Atahualpaの設定項目のほとんどは、CSSの形でheader.phpで呼び出されてしまうので、 header.phpの内容をどうにかしない限りは、どうにもならない。
今はheader.php内にカテゴリ判別を付加して強引に動かしているのですが…。
そんな感じ。いつ取りかかれるやら…。Atahualpa設定項目多過ぎですよ(泣)。

書評『好き好き大好き超愛してる』

6 月 9th, 2009 by 窪田 史朗

『好き好き大好き超愛してる』を読んだ。
私がおよそ読みそうにないタイプの本であるし、 実際明日(下書きをしているうちに日付が変わらないといいのだが)に備えるという目的がなければ、 多分私は読まなかったであろう本だ。

…ストレートに書くと酷評に見えるかもしれないので、ちょっとソフトに書こうか…。
この発言が既に酷評とか言わないように。まぁ気を取り直していきましょう。
本を開いて最初の感想は、「…行間、広くね?」だった。正直驚いた。
まぁ飛ばし読み(←警告1!)するのには適していると思ったが、ちょっとスカスカじゃね?とどうしても思ってしまう。
根が貧乏性なのだろう、同じ値段ならよりページ数が多くて文字数も多いほうがお得な感じがしてしまうのだ。
ついでに言えば、全体のデザイン、表紙、ページ数を表記した飾り文字などを見るにつけ、
あからさまに”女性向け”に作ってありますね。この本。(←警告2!)
その段階で、「覚悟のない男性読者」であるワタクシメにはダメージがでかかった。(←警告3!)

基本的に、私は物語の類については公の場でネタばれしないことにしているのだが、
今回は多少仄めかすことにしよう。許して誰かさん。
形式としては、短編集に近い。”恋愛”をテーマにしたと思しき短編 (思しいのは私にゃ恋愛が分からんからであって、決して「恋愛を書いてない」とか言いたいわけじゃないからね!)が、6つ位あって、 その内3つは明らかに一つのストーリーを分割してあるのだが、残りと”本体”の関係は定かではない。
“本体”の主人公である小説家の書いた作品と読めないこともないのだが、なんかちょっとちぐはぐ。よく分からない。
すべての共通点は、「男女の恋愛を扱ってい」て、「女性が死にそう」あるいは「女性が死ぬ」。で、「男は肉体的にはぴんぴんしたまま残る」。
悲恋ってやつなんでしょうか。

書評を書いている内にどんどん分析的になっていく自分に嫌気がさしているのだが、まぁ自分Zの暴走を暫くは放置しようか。
恋愛を外的要因で”破壊”して、何が恋愛なのかとか、成立要件(妙な表現だ)とかを明らかにするってことなんでしょうかね?
あとは”祈り”ですか。願望を吐露することに意味があるのだ、みたいな?
いつも言い訳がましい文章を書く私ではあるが、ここまで言い訳がましいのも珍しい…。

私は、作中で登場した”ASMA(アズマと読ませる)”や”アダムとイヴのろっ骨融合”といったSF的ガジェットに目を奪われ、登場する”神”との戦争のような、 物語の背景にばかり注意を向けていた。全くどうでもいいが肋骨は漢字で書いて欲しい。
世界観とか設定好きの典型的SFスキーとしては、「キリスト教ネタか!?」とかドキドキワクワクしたのに詳細が語られず大変残念である。無念。
一般的なこの本の読者層からすれば、それこそこういう”些細な”ギミックはどうでも良いのかなー。

こういう、女性にターゲットを絞った(は言過ぎですかね?)本が、大学の読書サークルから多くの票を集めたとなると、極単純な推論をすれば、こういったサークルの構成員には女性が多いと言うことに。
幾ら何でも安直すぎだって?いや意外に安直な推論が当たるから世の中恐ろしい。(←警告4!)

あと目に留まった、というよりも気に入ったのは、主人公?の小説家と、その恋人(故人)の中学生の弟の会話の中で登場する、「友達がメタ化している」と言う表現とか、その辺のくだり。
私の解釈では、「友達」という関係がどういうものかに関する暗黙の了解が出来上がっていて、その枠にはまった「友達」という役を誰もが演じていると言うか、まぁそんな話らしい。
概念的な形式が実際の人間関係を規定しているみたいな。これは中々面白かった。

ただひたすら恋愛が分からんSFヲタの愚痴みたいな文章になってしまったけれども、普段小説を読む時にはこんな感じで読んでます。多分。
ここまで物語の流れに入り込んでないのもそれはそれで珍しいんだけど(←警告5!)、まぁそれは文章の責任よりも、私自身が気が急いていて立読みの斜め読みで1時間程度で読んだが故って部分が遥かに大きいです。
弁護に成っている様な成っていない様な…。

果たしてこんな評価を下す人物が某企画に参加していいのか!?甚だ怪しい所ではありますが、深く突っ込まないで下さい。 最後に全くどうでも良いことをもう一つだけ(コロンボか!)。このタイトル、変換するといつも「寵愛してる」になって笑ってしまう。どこの光源氏だ(笑)。お後が宜しくないようで。

キャッシングは計画的に。

6 月 8th, 2009 by 窪田 史朗

いやはや、中々儘ならぬものと言うか、コーディングでよくあるのはうっかりミスである。
今回の、make_update_list高速化計画こと、caching(って言うのかな…)しようぜ!計画は、一応成功裏に終わったのであるが、躓いた所を列挙してみよう。

  1. OSの違いに泣くある程度の部分はローカルでテストをしたのだが、前にも書いたと思うが私の環境はWinXP+Apache2.2+PHP5.2+MySQL5.0である。Unixと違ってパーミッションが無くて云々て言う話は前もしたような気がする。今回はfilemtimeなる関数を使おうとしたのだが、これはWinでは実装されていないそうだ。ダメか。ついでにmb関数群もダメらしい。それは無いだろ。おいおい。という訳で、結局ローカルではプラグイン丸ごとの試験は出来なかったorz
    これはUnixマシンを所有せよとの神のお告げか!?(どーゆー神だ&金はあるのか)
  2. array_splice()は中々曲者であるというのも、添え字が保存されないので、foreach($array as $key => $element)の中で呼ぶと、array_splice()した部分以降の、$keyと$elementの関係がずれてしまうらしいのだ。あるいは、条件式で( $number && $x != 1)みたいなことをやったのだが、つまり$numberが0か空ではなく、しかも別の変数$xが1でないという条件式なのだが、これが意図した通りに解釈されなかった可能性もある。ちゃんと切り分けて実証はしていない。とにかくarray_spliceするループを分離してしまったら収まったので、それでよしとした。
  3. 定義リストを閉じ忘れたトップページのソースを見てもらえば分かるが、”ゼミ生ブログ集”の部分は、DIVタグで囲われた定義リスト(DL)になっている。んで定義リストを閉じる部分を吐き出し忘れた(てへ)。直ぐ気付いたが…。
  4. パスを間違えたのに気付かなかった。キャッシュを保存しているのだが、いくらやっても上手く保存できている様子が無い。この間実験した時には上手く行ったのに、何がいけないんだ…と頭を抱えていたら、スラッシュが一本足りず、存在しないディレクトリにあるファイルを開こうと頑張っていた。そらー開きませんわ。書き込めませんわ。
あとは、データベース上のブログオプションに、一部のデータを保存したくて、この間も紹介した我等がバイブルを参照していたのだが、そこでget_last_updated()なる関数を発見してしまったorz
コレ、私が苦労してデータベースにクエリ発行して取得していた情報を取ってくる関数じゃありませんか。徒労感が…。
とは言え、幾つかのデータは結局データベースにアクセスしないと、用意された関数群からでは取得できそうに無い(?)ので、まぁいいかと自分を慰めています。ハイ。或いは灰。
まぁそもそもこの関数を見つけられたのだって、関数名と引数を見れば大体どんな関数なのか見当がつくという、WPMU(あるいはWP)での命名作法に慣れてきた証ではあります。喜びましょう。悲しみましょう。
これできっと恐らく多分(随分自信ないんだな)、ブログが更新された直後にKENBUNDENトップを訪れた不運な人意外は、キャッシュされたデータでリストが作成されるので、随分表示が速くなる…といいなぁ…。

オマケ:この記事の投稿に使っているstrongタグの閉じタグを、一箇所storngと表記してしまって、変な投稿をしてしまったのは内緒である。