Monthly Archives: January 2009

「山月記」を読みました。

有名な小説なので、昔どこかで読んだことがあるような気がするけれど、読んでみた。

山月記・李陵 他九篇
著者: 中島敦
出版社: 岩波書店
発売日: 1994年7月

青空文庫でも読むことが出来る。
中島敦 山月記

文庫本では10ページ足らずで、お手軽。 お手軽ですが、そのお手軽さに釣り合わないくらいすばらしい文章で、自分を鏡の前に立たせてくれる。

短いから、ネタバレしても良いだろうか?

主人公の李徴は博学才穎で役人として働いていたが、昔から夢見た詩人になりたいと仕事を辞めた。
それから仕事を辞め念願の詩人となる訳だが、これが売れない。
そのため、ついに貧乏に耐えられず役人に戻る。
しかしながら、今度は昔見下していた他の役人はずっと出世してその命令を受けることに耐えられない。
そして出張で出かけた際に、虎になってしまうというお話。

その後、李徴の数少ない旧友である袁傪が、出張で虎になった李徴にたまたま出くわす。
そのとき、李徴は袁傪に虎になってしまった理由について、自らの考えを述べる訳だけれど、それが以下の部分。
この文章がまるで今の自分を表すかのように迫ってくる。

山月記」より抜粋

人間であった時、己は努めて人との交を避けた。人々は己を倨傲だ、尊大だといった。実は、それがほとんど羞恥心に近いものであることを、人々は知らなかった。もちろん、かつての郷党の鬼才といわれた自分に、自尊心が無かったとはいわない。しかし、それは臆病な自尊心というべきものであった。己は詩によって名を成そうと思いながら、進んで師に就いたり、求めて詩友と交って切磋琢磨に努めたりすることをしなかった。かといって、また、己は俗物の間に伍することも潔しとしなかった。共に、我が臆病な自尊心と、尊大な羞恥心との所為である。己の珠に非ざることを俱れるが故に、敢て刻苦して磨こうともせず、また、己の珠なるべきを半ば信ずるが故に、碌々として瓦に伍することも出来なかった。己は次第に世と離れ、人と遠ざかり、憤悶と慙恚とによってますます己の内なる臆病な自尊心を飼いふとらせる結果になった。人間は誰でも猛獣使であり、その猛獣に当るのが、各人の性情だという。己の場合、この尊大な羞恥心が猛獣だった。虎だったのだ。これが己を損い、妻子を苦しめ、友人を傷つけ、果ては、己の外形をかくの如く、内心にふさわしいものに変えてしまったのだ。今思えば、全く、己は、己の有っていた僅かばかりの才能を空費してしまった訳だ。人生は何事をも為さぬには余りに長いが、何事かを為すには余りに短いなどと口先ばかりの警句を弄しながら、事実は、才能の不足を暴露するかも知れないとの卑怯な危惧と、刻苦を厭う怠惰とが己の凡てだったのだ。  

中島敦 『山月記』

自分もやりたいやりたいといいながら、自分の実力を露呈してしまうことを避けているとしか思えない。
やりたいことならば、それをどんどんアウトプットしてよくなっていくべきだのに、我が臆病な自尊心と、尊大な羞恥心により踏み出していない。

自分の中の固定観念、それは例えば点数が悪いということ = 今の自分の状態を客観的に評価し、どこが弱点がさらけ出すことという本来の意味ではなく、点数が悪い = 自分自身がダメ。
もちろん、点数が付くなんてことはこの年になってしまえばあまりないことでだけれど、同じようなことなのだと思う。

そして心の奥で自己否定的な自分、ダメな自分を求めている。
変化を求めると言いつつ、自分の実力のなさをさらけ出して理想とするところの距離を測ろうとするのではなく、実際は自分の実力のなさを自分はダメなんだという自己否定の理由付けに利用している。
つまりは、自分はダメなんだという状況にいたいがために、自分の実力のなさを晒そうとしない。 

これでは、上で引用した李徴と全く同じではないか。
この場合の羞恥心というのは、そのままでいたい、自分を守るために利用しているのだから。
口先ばかりの警句を弄しながら、実際は何もやっていない、李徴と同じではないかと。

ただ、気づくことは変わることへの第一歩。
気づけば、変わるチャンスがあり、気づいてしまえばカンタンに変わることが出来る。1

  1. 「カンタンに」というのは敢えて書いている訳です。 []

WP-Analog: IE6で閲覧すると右上に「アナログ」と表示されるWordPressプラグイン 〜 初めてのWordPressプラグイン作り

ネタが古い感がありますが、Internet Explorer 6だと右上に「アナログ」という画像が表示されるようにしてあります。

当サイトではこのように表示されます。1
この画像はIE NetRenderer – Browser Compatibility Check –を使って取得しました。

Internet Explorer 6で表示した場合

ネタ元はIE6で閲覧すると。|CSS HappyLifeです。

CSS Happy Lifeで発表後Javascriptを使用して、埋め込むようにするものも登場しました。
IE6でアクセスしたらページ右上に「アナログ」と表示するJavaScript – The blog of H.Fujimoto

今までWordPressのプラグインを作ったことがなく、 せっかくなので上記のJavascriptを利用して、学習がてらWordPressのプラグインにしてしまうことにしました。

WordPressのプラグイン作り

WordPressのプラグインを作るに当たり、元々付属しているhello.phpを参考にしました。
WordPressのプラグインはおろか、PHPのコーディングをするのが初めてだったので、たった数行だったのに色々とはまりました:-P2

1. プラグイン作りの準備

まず最初にanalogDisp.jsをフォルダに入れます。
今回は、/wp-content/plugins/wp-analogというフォルダに入れました。 

2. PHPのコードの記述

WordPressのプラグイン作りのポイントは、アクションとフィルタです。
SPaiS – WordPress プラグインの作り方(1)というサイトに詳しく記されています。

この場合、必要なのはブログのヘッダにJavascriptを指し示す、scriptタグを埋め込むことです。
つまり、WordPressがヘッダを作成する際に、scriptタグを埋め込む関数を実行すればよいということになります。
ということで、add_actionを以下のように使用する訳です。 

<?php
/*
Plugin Name: WP-Analog
Plugin URI: http://www.cocoalife.net/wp-analog/
Description: This is the WordPress plugin which shows "アナログ" when a browser is IE 6.
Author: milkcocoa
Version: 1.0
Author URI: http://www.cocoalife.net/
*/

function add_analog_js() {
    echo("\t<script type=\"text/javascript\" src=\"" . get_bloginfo('wpurl') . "/wp-content/plugins/wp-analog/analogDisp.js" . "\"></script>\n");
}

add_action('wp_head', 'add_analog_js');

?>

これで、ヘッダが作成される際に、add_analog_js()という関数が呼び出されるようになります。

add_analog_js()関数ではechoを使って、scriptタグを埋め込みをしています。
get_bloginfo(‘wpurl’)でWordPressのSettings – General – WordPress address (URL)という項目で指定されるWordPressのURLを取得しています。
さらに、”.”を用いて文字列を連結しています。

一つはまった?(というほどでもないけれど)のはPHPの言語仕様で、Rubyと同様に一重引用符ではタブ文字を表す\tなどのバックスラッシュ記法が展開されないということです。
ですので、二重引用符を使用します。

さて、これをwp-analog.phpとでもして保存し、先ほどのフォルダにアップロードしましょう。
そしてアクティベートすれば終了です。 

と、かなり丁寧にWordPressのプラグインとPHPについて説明しました(つもりです)。

  1. それにしても、タイトルの部分と中身の部分の幅が違って表示されるんですね・・・。 []
  2. functionをfuctionと書いていてずっとエラーの原因がわからなかったのは内緒だ。 []

Ultraviolet Syntax Highlighting Engineをさくらインターネットのサーバにインストールする

UltravioletはRubyによって書かれた様々なSyntax(文法)に対応したSyntax Highlighting Engineです。
今回はこれをさくらインターネットのサーバにインストールしてみましょう。

RubyGemsを使ってインストールをするのですが、以前RubyGemsのインストール方法については書きました。
cocoa*life – ブログをさくらインターネットへ移行しました。

ということで、RubyGemsのインストールが終わっている状態で書き始めます。

Ultravioletのインストール

正規表現ライブラリOniguruma(鬼車)のインストール

まずは正規表現ライブラリであるOnigurumaをインストールします。
普通にconfigureしてmakeしてinstallすれば良いだけです。

wget http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.1.tar.gz
tar zxf onig-5.9.1.tar.gz
cd onig-5.9.1
./configure --prefix=$HOME/local
make
make install

RubyGemsを使ってUltravioletのインストール

一直線に答えを書いてしまってもいいのですが、問題解決法を書くのも忘れてしまう自分のためになると思うので、書きます。

gem install -r ultraviolet

とすればいいと思いきや、こんなエラーが出て止まります。

oregexp.c:2:23: oniguruma.h: No such file or directory

どうも標準ではない/home/hoge/local/以下にインストールしてあるので、oniguruma.hなどが見つからないようです。
さらに、エラーの最後を見ていると

Stop in /home/hoge/local/gems/oniguruma-1.1.0/ext.

なんて書いてあって、 どうも依存関係によりまず他のライブラリをインストールしているよう。
調べてみるとOniguruma for Rubyというものらしい。

そこでまず~/local/gems/oniguruma-1.1.0というフォルダを見てみると、Rakefileがある。
さらに中身を読んでみると、30 〜 36行目に以下のような記述があります。

if ENV['PLATFORM'] =~ /win32/
   p.lib_files = ["win/oregexp.so"]
   p.spec_extras[:require_paths] = ["win", "lib", "ext" ]
   p.spec_extras[:platform] = Gem::Platform::WIN32
else
   p.spec_extras[:extensions] = ["ext/extconf.rb"]
end

どうも、ext/extconf.rbがくさそうだという気がしたので、ext/extconf.rbを見てみます。

require 'mkmf'
have_library("onig")
$CFLAGS='-Wall'
create_makefile( "oregexp" )

たった4行!
ですがcreate_makefileでMakefileを作成しているというのは読み取れますので、何かありそうです。
そしてどうも、require ’mkmf’というのが鍵を握っている様な気がしました。
mkmf – Rubyリファレンスマニュアル

Ruby の拡張ライブラリのための Makefile を作成するライブラリです。

mkmf – Rubyリファレンスマニュアル

ということで、ビンゴでしょうか?
さらに読み進めると 

–with-opt-dir=directory
ヘッダファイル、ライブラリファイルを探索するディレクトリ directory/include、directory/lib をそれぞれ追加します。  

mkmf – Rubyリファレンスマニュアル

と書いてあるので、これを指定できればいいということになります。
ということで、

gem install -r oniguruma -- --with-opt-dir=$HOME/local
gem install -r ultraviolet

として、これでめでたくインストールが完了します。1

RubyGemsに慣れている人であれば当たり前のことなのかもしれませんが、自分は初めてだったので良い経験になりました。

Ultravioletの使い方

uvというコマンドがUltravioletのコマンドになりますが、uv –helpでヘルプを見てみると

uv -t amy -h ~/.bashrc > bashrc.html

なんてのがサンプルとして書いてあります。
amyというのはテーマの名前のようです。

テーマはUltraviolet Theme Galleryで見ることができます。
-sでSyntaxを指定することができますが、ある程度は自動的に認識されるのかもしれません。

uv -l syntax

で利用可能なSyntax一覧を表示することが可能です。 

自分は.zshrcをやってみました。
Syntaxが認識されないので、-s shell-unix-genericというのを指定しました。

uv -t blackboard -s shell-unix-generic -h ~/.zshrc > zshrc.html

生成されたzshrc.htmlはcssを参照しているところがあるのですが、そのcssは
/home/hoge/local/gems/ultraviolet-0.10.2/render/xhtml/files/cssにあります。

Rubyからもライブラリとして使うことができるようです。
Usageのところを見ると書いてあります。

  1. 試してはいないけれど、gem install -r ultraviolet — –with-opt-dir=$HOME/localでうまくいくのかなぁ? []

もっと小説を読んだり、映画を観たいな

えーと、当初はガーリーなブログ(謎)を目指していたはずなのですが、どうも正反対の方向に流れているような気がします。
個人のブログなのでできるだけ内容にとらわれたくないですよね。
軟らかいお話もあり、お堅いお話もあり、食べ物のお話もあり、心のお話もあり、 小説や映画のお話もあり、そしてテクノロジカルな話もありetc…。1

とらわれない、とらわれない、なかなか難しいこと。
とらわれないことにとらわれているんじゃないかって思う。

ということで (どういうことで?)2009年はもっと小説を読んだり、映画を観たりしたいなとすてきなオリオン座を見上げながら思っているところです。
去年は、自分の中で一番映画を観た年だったんだけれど、とっても良いなと思ったから。 

ついでに、感じたことをもっと言葉にできるように、アクティブボキャブラリーを増やしたい。
ポエジーな表現とかができるようになるには、たぶんまねするしかないのでしょうね。
小説や詩や俳句のまねをする。
まずはそんなことが必要なんじゃないかと思います。
このことについては、未だ(ずっと前)書きかけのとある本の書評に任せましょう。 
変な組み合わせで、でもありそうな組み合わせで自分の感じたことを書けるように、少しでもなりたい。

って、実はこれ次のエントリの前振りに書いていたのですが、どうも長くなってしまったので(笑)一つ別のエントリにします。

  1. そのこともあって、カテゴリを掃除したいななんて考えているところです []

Where the Hell is Matt? (2008)

このblogを始めた最初の頃に書いた、”Where the Hell is Matt?”の2008年版を観た。
cocoa*life » YouTube貼り付けのテストもかねて

YouTubeのHD版にもばっちり対応でとてもきれい。

ごらんになればどういうことかわかると思うのだけれど、Mattさんが世界中を旅して、変な踊りを一人で時にはみんなでする。
それを撮っただけのビデオ。 

それは良いとして、この映像を見ていて思ったのは「それでいいじゃん」ってこと。
観ればわかるとおり、みんな楽しそうに踊ってる。
それでいいじゃないと。

確かに色々と悩んだり、悲しんだり、嫌なことがあるかもしれないけれど、この踊りを観ていたらなんてちっぽけだなぁって思った。
楽しそうに踊ればいいじゃないと。

そして、まだまだ世界にはいろんな場所があって、いってみたくなって、いろんな人がいて、そんな人たちに少しでも役に立てたら、役に立ちたちたいと思う。
たった、ただ単純に世界各地で踊っただけのビデオなんだけれどね、不思議とそんな気持ちになった。

もう二つ改めて感じたことがあった。

一つは、世界がこんな風に楽しそうに踊れるようになって欲しいということ。
これを観ていると平和な気持ちになれるし、実際そうなのではないかと勘違いしてしまう。
きっと本当はそうではないよね?

もう一つは、やっぱりYouTubeの力はすごいなぁと。
インターネットがあるおかげで、世界各国でこんな風に楽しめる。
聞くところによると、2006年版がYouTubeで流行って、それでみんなMattと踊りたいとメールをして、それで2008年版が実現したんだとのこと。 
らばQ:メイドも踊る、子供もダンス、世界で踊るマット・ハーディング2008年版(動画)
これはとてつもないことだよなぁと、心が震える。

ちなみに流れている曲は動画の最後にも書かれていますが、Garry SchymanのPraanという曲。Garry Schyman - Praan - Single - Praan

追記
思い切りタイトルを間違えていましたw。

ブログをさくらインターネットへ移行しました。

新年明けましておめでとうございます。
昨年は大変お世話になりました。
本年もよろしくお願いいたします。 

さくらインターネットに契約したついでに、移行+模様替えetc…をしてみました。
まだおかしいところがぼちぼちあると思いますが、少しずつ直していくつもりです。 

こちらはさくらインターネットバージョンとなります。

ロリポップからさくらインターネットへの移行

元々のサーバはロリポップでした。
どのようにして、移行したのかこちらに記していこうと思います。

移行ついでにWordPress 2.7にバージョンアップさせましたが、管理画面の見栄えがとてもよくなっていてびっくりしています。
懸案だった、WordPressのエディタがMac標準のEmacsキーバインドとバッティングする問題(1行上がるのにC-pを使おうとすると、勝手にPostされてしまうとか)が、Visualエディタを使うと大丈夫なのが嬉しいです(もしかして前から?)。

1. さくらインターネットでWordPressのインストール

まず、WordPressをインストールする必要があります。

  1. WordPressのファイルの転送 。
  2. http://インストールしたWordPressへのURL/wp-admin/install.phpを開き、インストール。
    Database Nameというのがよくわかりませんでしたが、アカウント名でした。
    MySQLはデータベースのアカウントを作って、データベースを作成します。
  3. install.phpの削除。 

2. ロリポップでデータベースのエクスポート

まず、ロリポップのデータベースをphpMyAdminにログインしエクスポートします。
いくつかものテーブルがありますが、必要なものだけを選んでエクスポートします。

スパムフィルタのwp_sk2〜というのが大きく容量を食っていたものの、移行には必要はないだろうと判断し、外しました。
あまりにデータが大きすぎる場合(16 MBぐらい?)、インポートができなくなるので注意が必要です。 
wp_optionsテーブルは外さないと、インストールしたあとでログインするとロリポップの方に入ろうとしてしまうのでまずいです。

さらに、この画面で標準以外でチェックをつけるのは

  • 構造 – 「DROP TABLE」を追加する
  • データ – 完全なINSERT文を作成する
  • ファイルで保存する(画面は付け忘れました:-P)

3. さくらインターネットでデータベースのインポート

今度はさくらインターネットのphpMyAdminにログインし、インポートしましょう。
このとき、ファイルが大きすぎるといわれたときはロリポップで一度のエクスポートするテーブルの種類を減らします。

4. 画像ファイルなどの転送

FTP、SFTP、SCPクライアントなどで転送しませう。

5. プラグインのインストール

先ほどデータベースではwp_optionsテーブルはエクスポートしませんでしたので、プラグインの再設定が必要です。

6. テーマの設定

今までのテーマはそれなりにシンプルでよかったのですが、かなり問題点があったので(preタグで囲むと詰まったように表示される)この際変更することにしました。

今回テーマに選んだのは、wp.Vicunaというものです。
標準のテーマでも十分シンプルですてきデザインなのですが、スタイルファイルを変えることで、様々に表示をカスタマイズすることが可能です。
さらに、preタグなどもとても美しく表示されるので最高です。

あとはちまちまと自分が気に入るようにカスタマイズをおこないます。

7. DNSの設定

準備ができたと思ったら、いよいよDNSの設定を変更し、新しいサーバに向くようにしましょう。

P.S.
ついでなので、少し前まで自分の書いたエントリを眺めてみましたが、ついつい忘れてしまう自分にとって大事なことが書いてありました。
最近気持ちが後ろ向きだったので、前向きになりたいものです。