正直、現代的なサイト制作というものを侮っていた。
このブログでWordPressを使ってみて、その扱いやすさに感心したので、MTの代わりにサイト制作用CMSとして使えないかデザイナーに提案してみたところ、あっさりと却下された。
理由は「複数のブログを扱えないから」だそうだ。
詳しく話を聞いていくうちに、彼/彼女らにとって「ブログ」とはサイトを構造化する際の基本単位であり、権限の委譲もコンテンツとデザインの分離も、この単位に沿ってなされるものらしいということが分かってきた。
プログラマとしては、「ブログ」よりももっと根源的な構造があるのではないか、と考えたくなるのだが、多分それは違う。多くのCMSが提示するようなプレーンなツリー構造や、静的サイトに見立てたファイルの比喩では、そこまで役に立たない。あくまでもフル機能を備えた「ブログ」だからこそ意味がある。
- 一定の構造を持つデータ=記事のリストである
- 記事は基本的に投稿日時で分類されるが、必要ならカテゴリ/タグといった追加の属性で分類できる
- 投稿日時や属性に基づく何通りかのビューを標準で備える
- 記事にはメディアファイルを含めることができる
- 記事は、必要ならばフィードバックを受け付けることができる
- デザインには関与しない、記事のみを書く投稿者を複数割り当てることができる
- 以上を管理するための洗練されたWebインターフェイスがある
こういう特徴を備えた構造/システムをなんと呼ぶべきか?やはり「ブログ」としか言い様がないのだ。ちょうどプログラマにとってのRDBMSをイメージすると分かりやすいかも知れない。RDBMSが便利なのは、単にある構造でデータを保存できるからというだけではない。Database/Table/Rowという標準的な構造があり、SQLという標準的なインターフェースがあり、権限管理や様々なツールを含むMS(Management System)の部分があってこそ、プロフェッショナルな道具として役に立つ。
WordPressは、ブログを基本単位として自在に扱う能力を欠いている。いわば個人向けの用途特化型データベースソフトだ。その点では現状、MTの方がずっと優れている。
プログラマとして、プロフェッショナルとして、いろいろと考えさせられる経験だった。
Kreisquadratur» Blog Archive » Erlang syntax highlighting for GeSHi
こちらで配布されているErlangプラグインを利用するとセミコロンが <SEMI> に変換されてしまう、という問題について。先日は変数名のハイライトを諦めることでお茶を濁したが、やっぱりこれはGeSHiの仕様が悪いだろう、と思ったのでgeshi.phpを次のように修正した。
(’<SEMI>’ を “\x8″ に全置換しただけ。下のパッチはバージョン1.0.8の場合)
@@ -1942,7 +1942,7 @@
//This fix is related to SF#1923020, but has to be applied regardless of
//actually highlighting symbols.
- $result = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $result);
+ $result = str_replace(array("\x8", '<PIPE>'), array(';', '|'), $result);
// Timing is irrelevant
$this->set_time($start_time, $start_time);
@@ -2774,7 +2774,7 @@
//This fix is related to SF#1923020, but has to be applied regardless of
//actually highlighting symbols.
/** NOTE: memorypeak #3 */
- $endresult = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $endresult);
+ $endresult = str_replace(array("\x8", '<PIPE>'), array(';', '|'), $endresult);
// // Parse the last stuff (redundant?)
// $result .= $this->parse_non_string_part($stuff_to_parse);
@@ -3952,7 +3952,7 @@
//Circumvent a bug with symbol highlighting
//This is required as ; would produce undesirable side-effects if it
//was not to be processed as an entity.
- ';' => '<SEMI>', // Force ; to be processed as entity
+ ';' => "\x8", // Force ; to be processed as entity
'|' => '<PIPE>' // Force | to be processed as entity
); // ENT_COMPAT set
コードの中にバイナリの 0×08 = 制御文字のバックスペースが含まれることはまずないので、問題にはならないはず。少なくとも <SEMI>よりはマシなはず。
これでErlangモードがきちんと動くようになった。
fac(0) -> 1;
fac(N) -> N * fac(N-1).
インストール自体は特に何も考えなくてもOK。safe_mode制限ありのモジュール版でも普通にインストールできる。
ただしそのままだとメディアファイルのアップロードや管理画面からのプラグインのインストールができない。少なくとも関連するphpファイルだけはCGIで動くように変更しておく必要がある(全phpをCGIで動くようにしても良い)。
具体的には、次のような .htaccess を wp-admin に置いておく。
<filesmatch "^(async-upload|plugin-install|update-core)\.php$">
SetHandler application/x-httpd-php5cgi
</filesmatch>
それと、細かい話になるが、safe_modeオンの状態でインストールを実行するとメディアファイルのアップロード先が wp-content になってしまうので、管理画面の「設定」→「その他の設定」でアップロード先のパスをデフォルトに戻しておくこと。あと好みで「アップロードしたファイルを年月ベースのフォルダに整理」にもチェックを入れておく。
これでファイルアップロードとプラグインのインストールができることは確認した。コアのアップグレードは機会があれば試してみる。
参考:セーフモードによる制限と対処方法 WordPress Codex
(続きを読む…)
WordPress初インストール。すごいなこれ。インストールは超簡単だし、管理画面も超豪華だし。人気があるのもうなずける。
…でも投稿エディタがちょっと、いやかなり、お節介だ。Emacs風キーバインドがことごとく編集ボタンのショートカットに割り当てられているので、カーソルの移動もままならない…。どこかに設定はないのか…。
やっぱり同じ悩みを抱えている人がいた。
http://shokai.org/blog/archives/2359
Firefoxの設定で殺した方が早いのね。