http://blog.ishiro.com

2007/5/16 水曜日

VistaにVMWarePlayer1系はダメよ

Filed under: vista — ishiro @ 9:16:28

Vista導入後、ずっと困っていた事象がありました。CDやDVDを入れると「空のディスクを準備してください」とダイアログが出てしまいディスクの中身が見れません。コマンドプロンプトから直接 e: としてディスクをみると中身が見れるので常にそのようにしていました。ダブルクリックで起動もできなければ、画像のサムネイルも見えない。むふぅ。

この不具合、「vista 空のディスクを準備してください」で検索しても何も情報はなく何なんだろうなぁと思っていましたが、先日やっと解決しました。原因は「VMWare Player 1 系をインストールしていた」でした。

Vistaに正式対応した VMWare Player 2 が最近リリースされたようなのでインストールしてみると上記の不具合は完全に解消されました。VMWareはデバイスを乗っ取る必要があるので、考えてみれば起こりがちな事象ですね。解決してよかった(^-^)

2007/5/14 月曜日

SILKYPIX Marine Photographyを使ってみた

Filed under: 写真, ダイビング — ishiro @ 9:32:22

RAWの現像ソフトとしては市川ラボラトリーのSilkyPixを購入して使っています。他にも色々試したがこれが一番自分の性に合っていました。

そんな市川ラボラトリーから水中写真専用のSILKYPIX Marine Photographyが出るというではありませんか!こんなニッチな商品をよくもまぁ出すものだと感心しつつお試し版を試してみました。

ホームページでは次のようなレタッチ結果が得られるとのこと。これは期待してしまいます。

silkypix-marine-demo.jpg

これが本当なら水中ライトはなくても良いではないですか。特に広角で景色を一面に抑える時はどんな大きなフラッシュを持っていっても光量が足りずカバーし切れないので水中写真の革命になるソフトではないか!とまで期待してしまいました。

で、実際に光量不足で失敗扱いになってしまった写真をレタッチしてみました。あえてソフトのオート機能を基本として「色深度」「水中色偏差」「色復元」の3パラメータのスライダーを若干動かす程度にしてあります。こんな感じになりました。

_dsc1650.jpg

_dsc1662.jpg

_dsc1691.jpg

dsc_0991.jpg

dsc_1142.jpg

_dsc1747.jpg

_dsc1812.jpg

_dsc1873.jpg

確かに単純に水中で不足する赤やマゼンダを追加するよりはキレイに自然に再現される気はしましたが、期待したほどではないかな…。Photoshopで自分で追い込んでいけばほとんど同じにできると感じました。やはり「色情報のないところからは色は再現できない」という原則を覆すことはできないか…。

気になったのは一番下の写真のレタッチ。これは全て自然光なのですが手前の砂の色は見事に再現できていますが、奥に行くと急激に色の再現ができなくなっています。実際に色の情報が残っているのが水の影響を受けづらいレンズ近くだけだったのは理解できるので、当然といえば当然なのですが、オリジナル画像を肉眼で見る限り画面手前も画面奥も同じような色調です。つまり、肉眼で確認しながら追い込めば画面奥の砂の色も同じように再現できると思います。これを是非自動化してほしかった。

早く手間をかけずに水中写真をレタッチしていく分にはとても良いソフトですがsilkypixやPhotoshopを使っている人が追加で購入するまではいかないかなぁ。まぁ、開発速度の速い市川ラボラトリーのことだからこれからどんどんと良くなって新機能が追加されることと思うのでそれを待ってみます。

2007/5/13 日曜日

IEではUTF8のBOMありは使えない

Filed under: css — ishiro @ 5:32:33

IEの互換モードだと文字サイズの扱いが他のブラウザと異なります。他のブラウザで font-size: small; でよいものが IE だと font-size: x-small; でなければならない。つまり px や em 指定ではなく small や large など比較サイズで記述すると IE とその他のブラウザではフォントサイズが異なってしまいます。かといって px 指定を使うと IE ではフォントサイズが固定されてしまうためユーザビリティ的によろしくありません。

そこで最もスマートな解決方法は次だと思っています。

  • IEの標準モードを使用する
  • フォントサイズ指定はsmallやlarge等の比較サイズを使用する

IEの標準モードを使用することによりフォントサイズが他のブラウザと共通化されます。当然ですがフォントサイズ固定はよろしくないのでpx指定は使いません。

ところが「IEではUTF-8のBOMありで保存すると標準モードにならない」というバグを発見しました。このバグに気付くのに2時間もかかってしまいました…(涙) IE6でもIE7でも同じでした。

IEの「先頭行にXMLの宣言を書くと標準モードにならない」というのは有名なバグですが、それと同じなのでしょう。BOMヘッダの先頭3バイトが原因です。この3バイトは目には見えないのでなかなか発見できません。さいてー。

結論として「IEではUTF-8のBOMありは使えない」として覚えておけば良いですね。

2007/5/12 土曜日

WordPressMUインストール

Filed under: WordPress — ishiro @ 5:21:57

WordPressMUはDreamhostだとすんなりインストールできます。ところが、レンタルサーバによっては不具合が多く発生します。特定の環境でOKだったからといって、テストもせずに他の環境での作業見積もりをするのはダメですね。勉強になりました(; ;)

原因を突き止めて解決するまで半日以上かかった問題もありました。chicappaというレンタルサーバにインストールしたのですが、sakuraでも同様の問題が発生すると思いますので、インストール方法と共に問題の症状と解決法も書いておきます。

【WordPress MU のインストール方法】

wordpress.orgからダウンロード。現在のバージョンは1.2.1でした。
1.2.1用の日本語リソースはWPMU Japanese language pack 1.2.1にあります。

ftpのアカウントとapacheでアクセスした場合のユーザが異なるとインストールディレクトリとwp-contentディレクトリのパーミッションを777に変更する必要がありました。ルートディレクトリのパーミッションはインストール後で755に戻す必要があります。

この状態でDBを設定してインストールを完了し、実際にブログを作成すると次のエラーが発生します。

WordPress database error: [Table ‘mydatabase.wp_2_options’ doesn’t exist]
SELECT option_value FROM wp_2_options WHERE option_name = ‘blogname’ LIMIT 1

WordPress database error: [Table ‘mydatabase.wp_2_options’ doesn’t exist]
SELECT option_value FROM wp_2_options WHERE option_name = ’siteurl’ LIMIT 1

WordPress database error: [Table ‘mydatabase.wp_2_options’ doesn’t exist]
SELECT option_value FROM wp_2_options WHERE option_name = ‘post_count’ LIMIT 1

データベースを確認してみても正常にテーブルは存在しています。原因がわからずはまりました(; ;)
色々と調べてみた結果、wp-includes/wpmu-functions.phpのwpmu_create_blog関数に次の一行を追加して解決しました。

// Need to backup wpdb table names, and create a new wp_blogs entry for new blog.
// Need to get blog_id from wp_blogs, and create new table names.
// Must restore table names at the end of function.

define( “WP_INSTALLING”, true ); ←この行を追加

if ( ! $blog_id = insert_blog($domain, $path, $site_id) )
return new WP_Error(’insert_blog’, __(’Could not create blog.’));

と思ったら WordPress MU の不具合のパッチを出しているサイトを発見しました。このパッチを当てても上記の不具合は解決するので、その方が良いでしょう。他にも「ブログ削除時にルートブログのアップローファイルが削除される」という不具合もこれで解決されます。このパッチを当てましょう。

次にwp-config.phpに次の一行を追加します。追加というか置き換えですね。

define (’WPLANG’, ‘jp’);

adminのパスワードを変更します。そして「site admin」→「Options」のDefault Languageをjaに変更します。同じページのPluginsチェックボックスにもチェックをつけて有効とします。ここで、インストールディレクトリのパーミッションを755に戻しました。また、複数のテーマをwp-content/themeディレクトリにインストールし、「サイト管理」→「テーマ」で許可したいテーマにチェックを入れておきます。

この状態で普通に使えるはずでした。ところが、色々と使っていると次の不具合が発生します。再現性100%のものもあれば、不定期で発生するものもあります。

  • 記事投稿時にページが真っ白になる。
  • コメント投稿時にページが真っ白になる。
  • MU用の自作プラグインを有効にすると「重大なエラーが発生しました」と言われる。
  • 「オプション」→「設定を更新」を実行すると<footer>から後のHTMLだけが返ってくる。

おそらくもっと使えばこれ以外にも不具合が出てくると思います。はっきりといって使いものになりません。Dreamhostでは問題ないのに、何故こんなにも違いがあるのだろうと戸惑いましたがインストールしなければいけない状況だったので、もう一度ソースから問題を探っていきました。

…長いことソースを追った結果「PHPのネイティブ関数 header(”Location: ~”); が機能していない」という事実を突き止めました。試しに wp-comments-post.php を次のように置き換えてコメントを投稿しても画面は真っ白です。

<?php
require( dirname(__FILE__) . ‘/wp-config.php’ );
header(”Location: “http://www.google.com”);
?>

WordPressMUで追加された wp-config.php から呼び出されるコードの中に間違えて空白や空行を出力している箇所があるのでしょう…。では何故DreamHostでは正常に動いているのかというとPHPのバッファの設定の問題でした。
output_bufferingを有効にしてやれば良いのです。output_bufferingとheader関数の関係はここに詳しく書いてあります。HTMLとして出力する文字列はバッファに貯めておいて、コードの後半でheader()関数を使っても先にヘッダとして出力できるようにしてやります。

インストールディレクトリの.htaccessに次の行を追加しました。ついでに今後も不具合が発生するかもしれないので、念のためにエラーメッセージを表示させるようにして様子を見てみようと思います。

php_flag output_buffering On
php_flag display_errors On

この原因を修正するだけで、一見関係なさそうな他の問題も一気に解決しました。間接的に関係していたのでしょうか?

WordPressMUは使用しているユーザの絶対数が少ないですし(特に日本では)実績も少ないです。日本でまともに運用しようと思うならかなり覚悟が必要な気がします。

追記

不特定多数のユーザからの自動ブログ登録を無効にするオプションてないみたい。自分でwp-signup.php を無効にするように中身を書き換えてやる必要がありました。

2007/5/11 金曜日

ディズニーランド行ってきたよ

Filed under: 日記 — ishiro @ 23:23:59

ゴールデンウィークはどこにも連れて行ってあげなかったし、人ごみがなくなったであろうタイミングを見計らってディズニーランドに行ってきたよ。

今回は子守と荷物もちが僕の役目なので気合を入れたレンズを持つこともなくお散歩カメラで行ってきました。比較的空いていたし天気も良かったんだけど、強風でパレードが中止になってしまったことが残念。

白雪姫がきれいだったので思わずパチリ。イベントでコンパニオンばかり撮影するヲタ君たちの気持ちが少しわかった気がする(笑)

070511140116-dsc_5929.jpg

次のページ »