WordPress用のShadowbox JSプラグイン

2009年4月7日

WordPress上でFLASHコンテンツを表示したかったので。

WordPress用のShadowbox JSプラグインをインストール。SWFのサイズ指定方法がよくわからないけど、a rel=”~”を使って自分で指定するしかないの?

box2d_01

Lightboxプラグインと衝突しないのかなとか、ブラウザの種別やバージョンによっては表示されてないんじゃないかとか不安になってきたけど気にしない!

テクノスケープ TechnoScape 人工的空間風景

2009年4月1日

テクノスケープ 人工的空間風景

ダム、高層ビル、パイプが複雑に絡み合った工場、風力発電のプロペラ、鉄塔、道路の立体交差、車を運転しながら橋の下をくぐる時。これらの単語に心が動かされてしまう人のためのDVDです。
これら個々の単語をネットで検索すると、鉄塔マニアやダムマニアの方々はいますが、何か一つの事に特化しているのではなく、”それら”を併せた全てに見入ってしまう人にしか観る価値がない内容です。わかる人にはもう、これだけで充分に伝わるでしょう。

”それら”がどういった物を指すのかをはっきりと定義することが出来ないのですが、ボクは人の手で作り出された人の大きさを遙かに超えるもの全てに同じような言い表しようがない気持ちを持つことがあります。そういった物が作られた時点での人間の技術力の集体物に、人間のすごさを感じるのです。普通は(普通の人は)、映画とか小説、絵画や音楽といった文化的な物に対して感動する気持ちと同じ大きさのベクトルが、機能を持った巨大な構造物・建築物に向いているのです。また、ボクは幼少の頃を自然の中で育ったので、自然の中にある人工物や、その逆に街中の自然物に違和感を持つのですが、それが日常の中の非日常というおもしろさとして感じられるのかなと自己分析しています。

ボクには、これはどこどこの鉄塔だとか、なんとか型のダムですね、なんてことはさっぱりわかりませんが、でも、観てるだけで充分満足です。ただ、工場にはあまり萌えません。大気や水質を汚染するという印象を持っているからだと思います。(今時の工場はそんなことないのでしょうが)

こういう建築物は、DVDや写真で観るのではなく、自分の目で直接見た方がいいに決まっているのですが、それがなかかな難しい場所の映像も納められていますし、映像に合わせた綺麗なBGMがついていますから、買って観る価値のある内容です。納められている映像も、定点観測的な早送り程度の演出がたまにある程度で、余計な映像効果はありません。スクイーズ収録ですし、きっと、ボクと同じ嗜好を持つであろう、作り手の意志が充分に伝わってくる作品です。
ちなみにDVDが一枚入っているだけで説明のペラすらありませんし、DVDにはメニューもありません。その分、安いので、それで構わないと思いました。

公式サイトの下部にあるリンクから辿ると、同様の趣向を持つ人の情報を見る事ができますよ。

歩道に緑色の線

2009年3月30日

WordPressにgbliteboxというプラグインを導入したので、再び画像Upのテスト。

緑線

港区某所の道路で、歩道の白線に平行するように緑色の線がひかれていた。なんだろうこれ。検索してみると通学路に「緑のベルト」、歩道代わりにというBlogがあったので、これと同じようなものかな。

gbliteboxはlightbox.jsを使うためのプラグインで、それと一緒に記事内のリンクを別ウィンドウで開くためのアイコンを表示するAutoExternalLinkというプラグインをインストールしたんだけど、画像をlightboxで表示した時に変なところにリンクアイコンが表示されてしまっていて、その修正にちょっと手間取った。原因はlightbox内に#記号だけのアンカーリンクが埋め込まれていて、これに対してリンクが張られてしまっていたみたい。なので、AutoExternalLink.jsのexclusionStrを

var exclusionStr = new Array('#', 'www.retropc.net/mm/');

こんな風にして解決。

画像アップロードのテスト

2009年3月29日

Z80ファミリ・ハンドブック

たまたま?机の上にあったZ80ファミリ・ハンドブック。

これに変わるZ80の解説書はないと思うんですが、絶版らしいです。1冊持ってれば充分なのですが、使用・保存用・布教用それぞれ2冊は必要だな!とか言いたいのではなく、紙質があまりよくないので、だんだんと茶色味を帯びてきていて、夏休みあけの中学生が茶髪にしました風になりつつあるのです。

ちなみにAmazonにありますが、出品者ちょっとその値段はないだろう的な価格。数年前に神保町の明倫館書店で見かけた時は5000円くらいだったかな、よく覚えていませんが、あの時に買っておけばよかったなぁと、お店に行くたびに後悔します。

私の手元にあるのは、初版第10版ですが、何ヶ所かミスがあることをZ80師匠に教えてもらいました。例えばP27の図28にM1が記載されていない、P29のHALTからの脱出条件にRESETが入っていない(当たり前だけど重要)、P31の^WR等々…。

あぁ、ただの画像アップのテストだったのに、つい長々と書いてしまった。WordPress上の画像表示についてはLightBoxを使うかどうか悩みどころ。あれ、間違えてブラウザを閉じちゃう事があるんだよね・・・。

ActionScript3.0 アルファ値のビット演算

2009年3月28日

レンダリングの公式について、α値が意図した通りにならないことがあります。

for (var i = 0; i <= 0xff; i++) {
	var color32 = i << 24 | 0x10 << 16 | 0x20 << 8 | 0x30;
	var va = color32 >> 24;
	var vr = color32 >> 16 & 0xFF;
	var vg = color32 >> 8 & 0xFF;
	var vb = color32 & 0xFF;
	trace( color32.toString(16) + ":" + i.toString(16) + ":" + va.toString(16) + "," + vr.toString(16) + "," + vg.toString(16) + "," + vb.toString(16) );
}

実行結果は以下の通り。

00102030:0:0,10,20,30
01102030:1:1,10,20,30
02102030:2:2,10,20,30

7f102030:7f:7f,10,20,30
-7fefdfd0:80:-80,10,20,30
-7eefdfd0:81:-7f,10,20,30

-1efdfd0:fe:-2,10,20,30
-efdfd0:ff:-1,10,20,30

まず最初のα,r,g,bを表す32bit値が符号付きになってしまっています。これは演算結果自体は正しいのですが、toString()で変換する時に符号付きの数値だと判断されているだけですから、あまり問題ではないと思います。それでも気になるのであれば、変数宣言時にuint型として指定すればいいようです。

var color32:uint = i << 24 | 0x10 << 16 | 0x20 << 8 | 0x30;

次に気になるのが、32bitのカラーコードから、α,r,g,bを切り出すところで、αが0×80を超えたところから符号付きになってしまっています。じゃあこれも同様にuintにすればいいのかというと…

var va:uint = color32 >> 24;

結果は

7e102030:7e:7e,10,20,30
7f102030:7f:7f,10,20,30
80102030:80:ffffff80,10,20,30
81102030:81:ffffff81,10,20,30

うまくいきません。これはActionScriptのマニュアルで“ビット単位シフト演算子”の項目を読むとわかるのですが、>>は、ビット単位の右シフト、>>>は、ビット単位の符号なし右シフトと書かれています。読み替えると、>2個は符号付きの右シフトということなので、32ビット値を符号付きで右シフトすると最上位ビットが残ってしまうのですね。

「符号付きの右シフトって何?」という場合は検索してください。

α値を取り出す箇所は以下のようになります。

var va = color32 >>> 24;

別の方法として、

var va = (color32 >> 24) & 0xff;

とすることもできますが、シフト+マスクの2演算よりも、符号無し右シフト1回の方が処理が速いと思います。

・・・ここまで書いていてふと思ったのですが、よく、ActionScriptの解説系サイトで、2の累乗で割る時は右シフト(>>)を使いましょうと書かれている事があるのですけど、値が0×80000000よりも大きい場合には符号がひっくり返るんじゃないでしょうか。

var a:Number = 2147483649; // = 0x80000001
var b:Number = a / 2;
var c:Number = a >> 1;
var d:Number = a >>> 1;
var e:Number = a + c;
var f:Number = a + d;
trace("a = " + a);
trace("b(a/2) = " + b);
trace("c(a>>1) = " + c);
trace("d(a>>>1) = " + d);
trace("e(a+c) = " + e);
trace("f(a+d) = " + f);

実行結果は

a = 2147483649
b(a/2) = 1073741824.5
c(a>>1) = -1073741824
d(a>>>1) = 1073741824
e(a+c) = 1073741825
f(a+d) = 3221225473

やはり、マイナスになりますね。
わかっていて計算している分にはいいですし、こんな大きな値を使う事ってあまりないのでほとんど問題にならないと思いますが。だからといって、全部が全部、>>の代わりに>>>を使って計算すればいいのかというとそうではないのですね。

var g:Number = -100;
trace(g);
trace(g >> 1);
trace(g >>> 1);


-100
-50
2147483598

さてと、じゃあちょっと今から、838861枚のコインを買ってきますね。

WordPressのパーマリンクでForbidden

2009年3月27日

WordPressをインストールした後に、設定→パーマリンク設定を変更したら、

Forbidden
You don't have permission to access /mm/ on this server.

または、

このページの表示が認められていません
HTTP エラー 403 - アクセス不可

と表示されてしまい、管理画面どころかBlogページが見られなくなってしまったので解決方法。 FTPソフトでサーバにあるファイルを見てみると、WordPressをインストールしたディレクトリに、.htaccessというファイルが出来ているはずなので、これをダウンロードしてテキストエディタで開いてみます。

# BEGIN WordPress
RewriteEngine On
RewriteBase /xxxx/yyyy/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /xxxx/yyyy/index.php [L]
# END WordPress

ここの最初の行に、 Options FollowSymLinks と書き加えて保存してアップロードすれば表示されるようになるはずです。それだもダメならわかりませんが、とりあえず.htaccessを削除すれば管理画面が見られない状態は回避できます。

 原因は、mod_rewriteを使うにはOptions FollowSymLinksを設定しないといけないから、だそうです。ここのサーバはapacheのオプション指定は利用者まかせなので(ありがたいことです)、自分で設定しないといけないのですね。

WordPressでソースコード表示プラグイン

2009年3月27日

syntax-highlighterというプラグインを導入しました。さっそく動作テスト。

<?php
function printHello(){
    print "Hello world";
}
printHello();
?>

WordPressのデフォルトスタイルでもcodeというスタイルの設定がありますが、こちらの方が見やすいかな。
ただ、ActionScriptがないのが残念。jsフォルダに追加すればよさそうですけど。

WordPressをSQliteで動作させる

2009年3月27日

ここのサーバにWordPressをデータベースにSQliteを用いてインストールしてみようと思ったのですが、すんなりとはいかなかったのでメモ。

あらかじめ、サーバにインストールされているPHPのバージョン等々の情報をphpinfo();で調べてみたところ、PHPは5系だし、pdo経由でSQLiteが使えるようなので問題なさそうです。

まずはZIPファイルをWordPressのサイトからダウンロードして展開します。合わせてPDO (SQLite) For WordPressをダウンロードして展開しますが、展開したファイルは先のWordPressを展開したフォルダの中のwp-contentというフォルダに入れておきます。それから、wp-contentフォルダにdatabaseというフォルダを作成します。WordPressを展開したフォルダに、wp-config-sample.phpというファイルがあるので、これをwp-config.phpにリネームして内容を書き換えます。書き換える箇所はdefine(‘DB_COLLATE’, ”);という行の直下にdefine(‘DB_TYPE’, ‘sqlite’);という行を追加します。

WordPress一式が入ったフォルダをサーバにFTPでUpします。で、そのフォルダのアクセス権を一時的に777にします。また、wp-content/databaseフォルダの権限を777にします。

ブラウザから、インストール設定画面を開きます。こんなURLです→http://www.xxxxx.xxx/WordPress/wp-admin/install.php

ここで問題が起きて、まず、真っ白な画面が出てきます。こりずにブラウザ更新すると、「ようこそ」の画面が出てくるのですが、WordPressをインストールのボタンを押すとSQLのエラーが表示されます。

Queries made or created this session were

Raw query: SELECT option_value FROM wp_options WHERE option_name = 'siteurl'
Rewritten: SELECT option_value FROM wp_options WHERE option_name = 'siteurl'
With Placeholders: SELECT option_value FROM wp_options WHERE option_name = ?
Prepare: SELECT option_value FROM wp_options WHERE option_name = ?
Error occurred at line 335 in Function prepareQuery.
Error message was: Problem preparing the PDO SQL Statement.
Error was Array ( [0] => HY000 [1] => 1 [2] => no such table: wp_options )

データベースのテーブルにwp_optionsという項目が無いよ~とのこと。FTP Up先の/WordPress/wp-content/databaseフォルダの中をみるとMyBlog.sqliteというファイルが出来ているのですが、ファイルサイズが0です。テーブルの作成に失敗しているようなのです。PHPのページを表示しようとしてブラウザの画面が真っ白という場合は大抵、エラーが起きているのですが、サーバ側の基本設定としてエラー表示を抑制している場合がほとんどです。
なので、強制的にエラーメッセージを表示するために、wordpress/wp-admin/install.phpというファイルの先頭に

<?php
ini_set( "display_errors", "On");
error_reporting(E_ALL);
...

という2行を追加します。それから、ファイルサイズが0で作成されてしまった/WordPress/wp-content/database/MyBlog.sqliteを削除して、
ブラウザを一旦閉じてから、再度、http://www.xxxxx.xxx/WordPress/wp-admin/install.phpにアクセスすると…

Fatal error: Call to undefined function preg_last_error() in /WordPress/wp-content/pdo/driver_sqlite/pdo_sqlite_driver_create.php on line 207

というエラーメッセージが表示されました。preg_last_error()という関数がないです、ということなのですが、この関数について検索してみると

preg_last_error ? 直近の PCRE 正規表現処理のエラーコードを返す

という関数なのですが、(PHP 5 >= 5.2.0)と書いてあり、PHPのバージョンが5.2.0以上でないと使えないようです。ここのサーバのPHPは5.1.6のようなので対応していないと。対応していないものはしょうがないし、この関数の機能は「直近の PCRE 正規表現処理のエラーコードを返します 」らしいのですが、エラーが出たところで対応できないので、この箇所をコメントアウトします。
該当するファイルはwordpress/wp-content/pdo/driver_sqlite/pdo_sqlite_driver_create.phpで、このファイル内のpreg_last_error()のある行を書き換えます。

// $this->_errors[] = preg_last_error();

ついでにinstall.phpのエラー表示箇所も元に戻しておきます。

再度、/WordPress/wp-content/database/MyBlog.sqliteを削除してからブラウザ再起動すると、一発で「ようこそ」画面が出てくるので必要な箇所を設定してから
[WordPressをインストールする]のボタンを押すと、「成功しました !」の画面が出てインストール完了です。

あぁそうそう、WordPressをインストールしたフォルダのアクセス権を755に戻しておきます。

まとめると、PHPのバージョンが5.2.0未満のサーバに、WordPressとSQLiteの構成でインストールする場合には、pdo_sqlite_driver_create.phpのpreg_last_error()が書いてある行をコメントアウトする、ということになります。