Displaying posts tagged with

“WordPress”

Movable Typeを使ったサイト制作はプログラマの想像を越える世界だった

正直、現代的なサイト制作というものを侮っていた。

このブログでWordPressを使ってみて、その扱いやすさに感心したので、MTの代わりにサイト制作用CMSとして使えないかデザイナーに提案してみたところ、あっさりと却下された。

理由は「複数のブログを扱えないから」だそうだ。

詳しく話を聞いていくうちに、彼/彼女らにとって「ブログ」とはサイトを構造化する際の基本単位であり、権限の委譲もコンテンツとデザインの分離も、この単位に沿ってなされるものらしいということが分かってきた。

プログラマとしては、「ブログ」よりももっと根源的な構造があるのではないか、と考えたくなるのだが、多分それは違う。多くのCMSが提示するようなプレーンなツリー構造や、静的サイトに見立てたファイルの比喩では、そこまで役に立たない。あくまでもフル機能を備えた「ブログ」だからこそ意味がある。

  • 一定の構造を持つデータ=記事のリストである
  • 記事は基本的に投稿日時で分類されるが、必要ならカテゴリ/タグといった追加の属性で分類できる
  • 投稿日時や属性に基づく何通りかのビューを標準で備える
  • 記事にはメディアファイルを含めることができる
  • 記事は、必要ならばフィードバックを受け付けることができる
  • デザインには関与しない、記事のみを書く投稿者を複数割り当てることができる
  • 以上を管理するための洗練されたWebインターフェイスがある

こういう特徴を備えた構造/システムをなんと呼ぶべきか?やはり「ブログ」としか言い様がないのだ。ちょうどプログラマにとってのRDBMSをイメージすると分かりやすいかも知れない。RDBMSが便利なのは、単にある構造でデータを保存できるからというだけではない。Database/Table/Rowという標準的な構造があり、SQLという標準的なインターフェースがあり、権限管理や様々なツールを含むMS(Management System)の部分があってこそ、プロフェッショナルな道具として役に立つ。

WordPressは、ブログを基本単位として自在に扱う能力を欠いている。いわば個人向けの用途特化型データベースソフトだ。その点では現状、MTの方がずっと優れている。

プログラマとして、プロフェッショナルとして、いろいろと考えさせられる経験だった。

GeSHiのErlangプラグインでセミコロンを正しく扱う

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).

XREAでWordPress 2.7

インストール自体は特に何も考えなくても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インストール完了

WordPress初インストール。すごいなこれ。インストールは超簡単だし、管理画面も超豪華だし。人気があるのもうなずける。

…でも投稿エディタがちょっと、いやかなり、お節介だ。Emacs風キーバインドがことごとく編集ボタンのショートカットに割り当てられているので、カーソルの移動もままならない…。どこかに設定はないのか…。

やっぱり同じ悩みを抱えている人がいた。
http://shokai.org/blog/archives/2359
Firefoxの設定で殺した方が早いのね。