コンピュータの最近のブログ記事
2007年10月 6日
tips:画像挿入時のタグを変更する方法 - Movable Type 4.0
[ブログ記事を作成] - [画像を挿入] を行うと、
<form mt:asset-id="14" class="mt-enclosure mt-enclosure-image"><img alt="test1.jpg" src="http://hoge.com/blog/imgs/200709/test1.jpg" width="400" height="300" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;"/></form>
などと冗長なタグが出力されるが、これをシンプルに、
<img alt="test1.jpg" src="http://hoge.com/blog/imgs/200709/test1.jpg" width="400" height="300" class="pict"/>
などと出力させる方法。
mt/lib/MT/Asset/Image.pm 内の as_html というファンクションで挿入するイメージタグを作成して、mt/lib/MT/Asset.pm 内の enclose というファンクションにイメージタグを渡すことで、<form mt:asset-id・・・>~</form> で囲って出力がされているので、 mt/lib/MT/Asset/Image.pm 内の as_html ファンクションの以下の行を変更する。
mt/lib/MT/Asset/Image.pm
変更前 return $asset->enclose($text);
変更後 return $text;
また、style="" を削除するために、以下のような変更を実施。
my $wrap_style = '';
if ( $param->{wrap_text} && $param->{align} ) {
$wrap_style = 'class="mt-image-' . $param->{align} . '" ';
if ( $param->{align} eq 'left' ) {
$wrap_style .= q{style="float: left; margin: 0 20px 20px 0;"};
}
elsif ( $param->{align} eq 'right' ) {
$wrap_style .= q{style="float: right; margin: 0 0 20px 20px;"};
}
elsif ( $param->{align} eq 'center' ) {
#$wrap_style .= q{style="text-align: center; display: block; margin: 0 auto 20px;"};
$wrap_style = 'class="pict"';
}
}
2007年7月26日
Google Analytics のログイン用メールアドレスの変更方法
変更なさりたいログインID(メールアドレス)をアカウント管理者としてアカウントに追加することで変更していただくことが可能です。
アカウント管理者を追加するには、下記をご覧ください。
1. 現在のログインIDでログインしてください。
2. [アクセス マネージャ] をクリックします。
3. [既存のアクセス権] 表で [ユーザーを追加] をクリックします。
4. 追加するユーザーのメール(新しいログインID)を入力します。
5. このユーザーの [アクセス タイプ] に [アカウント管理者] を選択します。
6. [完了] をクリックすると、新しいユーザーが作成されます。
この設定を終えた後、登録したメールアドレスでログインしていただき、お客様のID元のログインIDを削除していただければ管理者のログインIDを変更することが可能です。
※ログインIDはGoogleアカウントに登録済のメールアドレスをご利用ください。
Google Analytics サポート
2006年12月17日
スペースタグで Tomcat が Not installed
本ブログでも何度か紹介してきたSpaceTag Serverですが、ST Serverと名前を変えて再出発したようです。再出発と同時に、これまでPostgreSQLからMapServer、Java、Python、XMail、etc...ととにかくWindows上でのサーバ・開発ツールをほとんど統合して、300MB以上の巨大なパッケージになっていたのが、Apache、MySQL、Perl、PHPに絞って76MBと軽量化したパッケージになったようです。また、スペースタグ社の公式サイトには、
Q. SpaceTag ServerとST Serverは何が違う? A. ST Serverでは、SpaceTag Serverの機能をWebサーバ(Apache)、データベース(MySQL)、開発言語(PHP、Perl)のみに絞り込み、より安定した性能と軽量化を実現しました。
Q. SpaceTag Serverはもうダウンロードできない? A. SpaceTag Serverのダウンロードは、2005年9月20日をもって終了させていただきました。それにともない、安定化・軽量化を実現したST Server1.0をリリースしましたので、ぜひお試しください。今後は、ST Serverの機能を拡張した製品なども順次リリースしていく予定です。などとありました。いやはや残念。軽量化して多機能な前バージョンは廃止するとは本当に思い切った行為です。しかし、Apache + Perl + PHP + MySQL だけでも十分と言えば十分かもしれない。ちなみに、サーバ環境を一括導入するパッケージとしては、「xampp for windows」というものが断然多機能なようです。
2006年12月12日
文字コード"EUC-JP"と"UTF-8"の違い
日本語UNIXシステム諮問委員会の提案に基づいて1985年にAT&T社が定めた、複数バイトの文字を扱う文字コードの枠組み。日本語だけでなく複数バイト言語の各国の文字コードが規定されている。日本語のEUCコードを特に「EUC-JP」「日本語EUC」と呼ぶこともある。
■ UTF-8(8-bit UCS Transformation Format)
UCS-2やUCS-4(Unicode)で定義される文字集合を用いて記述された文字列をバイト列(数値の列)に変換する方式の一つ。UTF-8では1文字を1〜6バイトの可変長の数値(バイト列)に変換するようになっているが、現在定義されているUnicode文字をUTF-8で表現した場合、最長で4バイトのバイト列に変換される。
UTF-8では、Unicodeの最初の128文字(UCS-2でいうU+0000からU+007F)を変換した結果がASCIIとまったく同じになるため、従来の処理システムとの親和性が高いという特長がある。一方、日本語などの文字は元々2バイトだったものが3バイトや4バイトで表現されてしまうため、UTF-16と比べてデータサイズが大きくなってしまうという欠点がある。
ちなみに、UTF-16ではUCS-4を完全に表現することはできないが、理論上はUTF-8はUCS-4を完全に表現できる。
(以上、e-wordsより)
■ メリットとデメリットなどに関する書き込み
UTF-8は最初から多言語での記述を前提とされているので、インターネットのように世界中からアクセスされるようなサイトの記述に適している。
EUC-JPはUnix系OSで扱われるだけでなく日本語を前提としているので、日本語版以外を扱うブラウザからアクセスした場合、文字化けする可能性がる。
EUC-JPに対するUTF-8のメリットとしては、
・HTMLやXHTML で使われる文字コードのデフォルトが UTF-8。
・UTF-8(というか Unicode)ならEUC-JPより表現できる文字の範囲が広い。
ツール側の都合で言えば、HTMLのデザイン(またはコーディング)ツールがXMLやXHTMLを扱う機能を必須としてきたため、必然的にUTF-8を扱えるようになった。さらに、UTF-8で書かれたソース側から言えば、多国籍企業の場合、各言語用のサイトで同じテンプレートを使いまわしすることができる。表示する文字の部分だけを、ターゲットとする言語圏の文字に置き換えれば済む。
ISO-2022-JP はそれまで慣習として通信で使われてた7bitJISコード(ISO-2022にそこそこ準拠)を、fj.* と Internet Mail で使うものとして、 制限つけてRFCとして書き起こしたもの。名前に反して実は ISO-2022 に 正確には準拠してないのは有名。7bit JIS としてなら歴史はあるが、まとまったのは一番新しい。なるほど...。
まあ、たぶん言いたいことは「ISO-2022 が先にある」ってことなのだろう。それなら正しい。
ShiftJIS は、Microsoft社が MS-DOSに日本語を導入するにあたって、半角カナを残しつつ漢字コードをわりこませるためにASCII社に作らせたもの。変態的な変換で気持ち悪いことと、当時既にあった国際規格の ISO-2022を全部無視したこと以外はそんなに悪いコードではない。いってる通り、不幸の文字があるので、ASCII処理前提でかかれていたコードは全部書き直しの憂き目にあったのはそのとおり。
そして、EUC-JP は別にそのあたりを教訓にしたのではなくて、UNIX の国際化を行うにあたって、普通に 8bit 版 ISO-2022 の使い方を日本語用に確定しただけのものだ。これは当時国内でUNIXを作ってたメーカが、既に同等の手法で自社UNIXを国際化してたのが細部が異なってたのを統一する形でつくられた。
ISO-2022 のままだと、ステートが爆発するので扱いにくいのは事実。でも、SJIS と EUC-JP では、正しくまじめに国際化するのなら、質的には有利/不利の差は存在しない。
ただ、世の中には、「ascii依存」なソースがあまりに多い。そして、EUC-JP の場合、コードが重ならない関係で、8bitスルーにさえなれば、日本語が壊れず通ってしまう。こういった「手抜き国際化」は EUC-JP のがやりやすいのは確か。
ちなみにこの条件は UTF-8 も同じ。だから、最近のあちらさんのアプリケーションはこれで処理したがってる。ソースをあんまり修正しなくて良いってこと。
UTF-8 は、互換性は目をつぶるとしても、日本語だけを扱うとしたらパフォーマンスが悪くなるのと、通信量が膨れ上がるのが欠陥(漢字は6byteになる)。まあ、マシンパワーの向上が全て解決するといわれればそこまでだ。
2006年11月27日
SpaceTag: CGIを任意のディレクトリで実行するには
((10/17アップ。))
スペースタグ(SpaceTag)の話題。CGIをcgi-bin以外の任意のディレクトリで実行できるようにするには、少し作業が必要です。ここにもう一度、スペースタグのインストール方法をまとめます。
SpaceTag = Apache2 + PHP + Perl + MySQL
[バージョン]
ST Server for Windows Version 1.1
[目的]
1. SpaceTagをインストールし、
2. ドキュメントルートディレクトリをD:¥wwwに変更し、
3. Perlの設定を変更して、cgi-binディレクトリ以外の場所(2.のディレクトリ)でcgiを実行できるようにする。
[方法]
まず、SpaceTagをインストールします。デフォルトでは、Perlがインストールされませんので、チェックボックスにチェックを入れるのを忘れずに。
再起動後、ST Server Monitorの[サーバ環境設定]-[Apache2]でDocumentRootを変更します(ex. D:¥www)。そして、ST Server MonitorでApache2を[Restart]します。
ここまでで、D:¥wwwにおいたhtmlとPHPのファイルをhttp://localhost/で表示することができます。
Perlを利用するには、[サーバ環境設定]-[mod_perl]から[環境設定ディレクトリ]をクリックし(SpaceTagのインストール場所を変更していなければC:¥SpaceTag¥etc¥httpdフォルダが開く)、「httpd.conf」ファイルを編集します。
「httpd.conf」ファイルに以下の行を追加します。「AddHandler cgi-script .cgi」はコメントアウトされているはずですので、#をはずします。
#--追加ここから--
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
<Directory "D:/www">
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
#--追加ここまで--
保存し、Apache2を[Restart]します。これで完了です。
『Options +ExecCGI』で「+」がないとデフォルト(他の行)で既に指定されているオプションが無効になります。例えば、indexファイルがないときに表示されるファイル一覧ページが「You don't have permission ...」などとでて表示されなくなります。
[テスト用サンプルソース]
=== test.php ===
<? phpinfo(); ?>
(PHPのバージョン情報などが表示される)
=== test.cgi or test.pl ===
#!perl
print "Content-type: text/html¥n¥n";
print "test<br>¥n";
exit;