DEVELOPMENTOR*LEARNING RESOURCE LAB.

ソフトウェア開発現場の視点からソフトウェアと開発者の価値を高める「ホットな何か」をお届けします。(休止)

UNIX シェルで複数のファイルの拡張子をまとめて変更する

2007年06月04日 | Webデザイン
UNIX シェルで、複数のファイルの拡張子をまとめて変更するのって、簡単そうだけど1つのコマンドじゃ無理らしいのです。

AddEncoding x-gzip と MultiViews がうまく機能しない?
の中で、ファイルの拡張子を重ねる必要がありました。*.js → *.js.js のように。

こういうときは、次のとおり foreach を使えば、まとめて一括して拡張子を変更できるとのこと。

% foreach file ( *.js )
foreach? mv $file $file.js
foreach? end


そうなんだ。勉強になります。

AddEncoding x-gzip と MultiViews がうまく機能しない?

2007年06月04日 | Webデザイン
AddEncodingにまつわる様々な振る舞いの違いに悩む の続きです。今度は MultiViews に悩まされました。

次のとおり .htaccess を使って gzip 圧縮した js ファイルに対応としました。

Options +FollowSymLinks +MultiViews
AddType text/javascript js
AddEncoding x-gzip gz


が、Accept-Encoding: gzip ヘッダをリクエストしないブラウザのために、gzip 圧縮しないファイルも配置したところ、常に圧縮なしのファイルのみレスポンスするようになってしまいました。なんで?

foobar.js
foobar.js.gz


悩んだ(諦めかけていた)末、ネットで検索してみると、バッチリの解決策が見つかりました。ありがとうございます。とても助かりました。mod_rewrite を使っての解決方法は目星が付いていたのですが、理屈と結果が一致しないのでどうにかしたいところの吉報でした。

Fenrir's BLog: ApacheのMultiViewsで拡張子が有るリクエストでもgzが働くようにする

foobar.js.js
foobar.js.gz


のように既定?(デフォルト?)は拡張子を重ねればよいとのこと。確かに Apache のマニュアルにもそのようにあります。焦って盲目になってたのね。

AddEncodingにまつわる様々な振る舞いの違いに悩む

2007年05月09日 | Webデザイン
Apache/1.3 で gzip 圧縮したファイルを配信しようとするとき、AddEncoding の状況に応じた振る舞いの違いを把握してなかったために、長い時間いろいろと悩んでしまった。いまだ正しく理解できたか自信はないが、把握できたことを紹介しておきます。

mod_negotiation モジュールを組み込まず AddEncoding x-gzip gz とすると、Accept-Encoding ヘッダの指定に関わらず Content-Encoging: x-gzip となる。本来?なら Accept-Encoding: gzip なら Content-Encoging: gzip といったように Accept-Encoding ヘッダどおり、レスポンスされるべきである。

mod_negotiation モジュールを組み込み AddEncoding x-gzip gz とすると、Accept-Encoding ヘッダの指定に応じて Content-Encoging: gzip となる。Accept-Encoding: gzip なら Content-Encoging: gzip といったように Accept-Encoding ヘッダどおり、レスポンスされる。

上記の振る舞いの違いは Options +MultiViews の有り無しに左右されない。

mod_negotiation モジュールを組み込まず Options +MultiViews としても、自動的にファイル名.拡張子.gz を解決してくれない。ファイル名.拡張子は 404 Not Found となる。

mod_negotiation モジュールを組み込み Options +MultiViews とすると、自動的にファイル名.拡張子.gz を解決する。このとき AddType application/x-gzip gz としてあると Content-Type: application/x-gzip と Content-Encoging: gzip となり、UserAgent がコンテンツタイプを理解できない。

よって mod_negotiation モジュールと AddEncoding x-gzip gz を使ってファイル名.拡張子.gz を解決するときは AddType application/x-gzip gz のように gz のコンテンツタイプを定義しない。定義しないとき、ファイル名.拡張子.gz のContent-Type ヘッダはファイル名.拡張子のコンテンツタイプになる。

なお gz のコンテンツタイプの定義が必要なときは ForceType を使ってコンテンツタイプを強制的に書き換えることができる。

上記の振る舞いは mod_rewrite モジュールを組み込んで URL 書き換えしたときも適用される。

記憶をたどって書いているので過不足があるかもしれませんが、こんな結果でした。

Google Sitemap Generator Extension をインストールしてみたが

2007年04月18日 | Webデザイン
ローカル PC の Dreamweaver 8 上で Google Sitemap を生成できる Google Sitemap Generator Extension (1.0.2) をインストールしてみましたが、どうも期待どおりリンクを抽出してくれません。

Google Sitemap Generator - Dreamweaver MX and UltraDev Zone - DMXzone.COM
http://www.dmxzone.com/ShowDetail.asp?NewsId=10538

次のようなリンクが抽出できない(たぶん)ことを把握しています。

http:// や / から始まるリンクは抽出されない。抽出されるのは相対リンクのみ。

#name で終わるリンクは抽出されない。

私は Dreamweaver のテンプレートを使うとき、絶対パスでリンクを指定するよう習慣化しているので、ぜひ対応して欲しいです。また、ページ数を増やすよりも #name を使うのが好みなので、こちらも対応して欲しいなぁ。

Dreamweaver 8 のリモートとの比較に WinMerge 日本語版を使う

2007年04月16日 | Webデザイン
Dreamweaver 8 のリモートとの比較に WinMerge 日本語版 を使って、ローカルファイルとリモートファイルの差分を確認できるようにしてみました。その手順は次のとおりです。

はじめに WinMerge 日本語版をダウンロードしてインストールします。ここでは 2.6.4+-jp-5 (安定版) を使いました。

WinMerge 日本語版を起動して、日本語のエンコーディングを自動検出するように、次のようにオプションのコードページを設定(変更)します。



Dreamweaver 8 の環境設定のファイルの比較で、次のように WinMerge 日本語版のパスを指定します。このときファイルは WinMergeU.exe を指定します。



これで完了です。

Flash Paper 2で変換や印刷するとフリーズする

2007年02月03日 | Webデザイン

モバイルPCにFlash Paper 2をインストールしましたが、Microsoft WordからPDFに変換しようとしたり、印刷しようとすると、WordがFlash Paperもろともフリーズしてしまいます。デスクトップにインストールしてあるFlash Paperは正しく動作するのになんでだろう。

Adobeサイトのサポートで検索したところ、「Contribute 3.02 の FlashPaper 2 が正しくインストールされない」といった情報がありました。その情報の手順どおり、再インストール?をしてみたところ、期待したどおり正しく動作するようになりました。プリンタドライバ関連が正しくインストールできていなかったのかな。

↓再インストールの様子はこんな感じです。コマンドプロンプトから実行できます。

C:PROGRA~1MACROM~1FLASHP~1I386>..fpdriv~1.exe -ui
- Old printer Macromedia FlashPaper uninstalled or unavailable
- Old driver FlashPaper2 Driver uninstalled or unavailable
- Old local port FlashPaper2PrinterPort deleted
- New local port FlashPaper2PrinterPort installed
- New driver FlashPaper2 Driver files copied
- New driver FlashPaper2 Driver installed
- Installed new printer Macromedia FlashPaper with new driver FlashPaper2 Driver

GoogleパーソナライズドホームにBLOGRANGERパーツを表示してみる

2006年10月19日 | Webデザイン

BLOGRANGER 2.0」で作った「BLOGRANGERパーツ」を「googleパーソナライズドホーム」に表示してみました。↓こんな感じです。「よく読むブログの反響をBLOGRANGERに聞いてみる」で作ったパーツを表示しています。

BLOGRANGERパーツをgoogleパーソナライズドホームに表示するまでの手順は次のとおりです。

はじめにBLOGRANGER 2.0でBLOGRANGERパーツを作ります。パーツをカスタマイズするときサイズを「自動」とするのがポイントです。それ以外は好みにカスタマイズすればよいでしょう。

次に「googleガジェット(モジュール)」の定義ファイルを作って、そのファイルを自分のサイトにアップロードして公開します。ここではそのファイルを「http://example.com/googlegadgets.xml」というアドレスで公開したと仮定します。

googleガジェットの定義ファイルは次のとおりです。ContentのhrefにBLOGRANGERパーツのブックマークURLを指定します。ModulePrefsのheightにパーツの高さを指定します。見やすい高さをpx単位で指定します。またscrollingを有効としてスクロールバーを表示します。titleに好みのタイトルを指定してもよいでしょう。

http://example.com/googlegadgets.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="BLOGRANGERパーツ" height="400" scrolling="true" />
<Content type="url" href="http://ranger.labs.goo.ne.jp/rpc/partsview.php?key=1301" />
</Module>

次にgoogleパーソナライズドホームを表示します。ページ左上の「他にもこのページに追加」をクリックします。

多彩なコンテンツがリストアップされ興味を惹かれますが、ここはグッと我慢して「URLを指定して追加」をクリックします。

先ほど公開した定義ファイルのURLを「URLを指定して追加」に入力して追加ボタンをクリックします。

続けて次のようなメッセージボックスが表示されます。このメッセージはとても重要な指摘ですので、その意味をよく理解し、各自の責任でで続行するしないを決定してください。私はいかなる責任も負いません。

OKボタンをクリックした後、ページ左上の「ホームページに戻る」をクリックするとgoogleパーソナライズドホームにBLOGRANGERパーツが表示されます。これで完了です。

BLOGRANGERパーツはgoogleパーソナライズドホームにインラインフレーム(iframe)として表示されます。また、定義ファイルにBLOGRANGERパーツを貼り付けるHTMLソースを指定する方法もあります。このときはgoogleがWebページをホストし、そのWebページをインラインフレームで表示します。後述の方法に比べれば安全な方法ですね。

インラインフレームを使わずにgoogleパーソナライズドホームのページ自体にインライン表示する方法もありますが試していません。悪意があったり、バグがあるコードをインライン展開するのはセキュリティ上のリスクを伴いますので注意が必要です。もちろんですがBLOGRANGER 2.0は前者に該当するはずはありません。後者はどんなサービスでも該当する可能性がありますので信頼が大きな尺度ですね。


ExplorerCanvas Internet Explorerでcanvasを使う

2006年10月18日 | Webデザイン

Internet ExplorerとFirefoxでベクタグラフィックスをどう統一的に扱うか悩んでいたところ、なんと!Google Codeに 「ExplorerCanvas」というプロジェクトがあることを発見しました。

ExplorerCanvas
Firefox, Safari and Opera 9 support the canvas tag to allow 2D command-based drawing. ExplorerCanvas brings the same functionality to Internet Explorer. To use, web developers only need to include a single script tag in their existing web pages.

ExplorerCanvasはFirefoxやSafari、Opera 9で使えるcanvasをInternet Explorerでも使えるようにするものです。ExplorerCanvas(excanvas.js)のソースコードを見ると、VML(Vector Markup Language)をcanvasのインタフェースでラップしたものとわかります。ソースコードにはTODOが散見されるので制約は多々あると推測できます。

ベクタグラフィックスを使う目的はGoogle MapsのGPolyLineのようにWebページ上に線を描画したいだけなので、ExplorerCanvasでその目的は果たせそうです。いくつか少し古いブラウザをサポートできませんが、企業内システムなど使用条件を限定できるなら環境なら調整できる範囲でしょう。

参考としてExplorerCanvasのサンプルコードを私のWEBサイトに設置しておきました。こちらからどうぞ。
http://developmentor.lrlab.to/explorercanvas/examples/example1.html
http://developmentor.lrlab.to/explorercanvas/examples/example2.html
http://developmentor.lrlab.to/explorercanvas/examples/example3.html

ExplorerCanvasを知るまではHTML/CSS(positoin:absolute)で実現するか、自前でVMLをcanvasにラップしようと考えていました。自前で実装する利点も多いのですが、実現したいことを素早く実現するということが最重要なので…と悩んでいたところの発見でした。こういうときは"よくよく"探してみるものですね。

 


Flash Playerでテキストが表示されない

2006年10月07日 | Webデザイン

Macromedia Flash 8でパブリッシュしたswfファイルが、Flash Player 7以前で正しく再生できないことがありました。静的テキスト(フォント)がまったく表示されないのです。

Macromediaのサイトで調べてみると、Flash Player 8とそれ以前のバージョンの互換性に原因があるとのこと。次のページどおりFlash 7形式でパブリッシュしたところ静的テキストが正しく表示されるようになりました。

Macromedia - Flash TechNote Flash Player 8 用にパブリッシュされた静止テキストが Flash Player 7 で表示されない

取引先、友人、知人などにインストールしているFlash Playerのバージョンを聞いてみると、Flash 7を使っているケースが多々あることがわかりました。当面はFlash 7を無視できないのが現実のようです。

Flashのバージョンは右クリックするとFlash 8やFlash 7のようなメジャーバージョンは確認できますが、次のページを開くとさらに8,0,24,0のようにフルバージョンを確認できます。

Macromedia - Flash Player TechNote Macromedia Flash Player のバージョンテスト

Flash Playerの各バージョンはMacromediaのサイトからテスト限定版として配布されていますが、古いバージョンをインストールすると調子が悪くなりそうな心配があるため試せずにいます。私はFlash 7の動作チェックにはopreaブラウザを使っています。operaのバージョンは8.53で、このバージョンにはFlash 7がバンドルされています。

ウェブブラウザ Opera ダウンロード


Dreamweaver8の起動がとても遅い

2006年10月07日 | Webデザイン

Macromedia STUDIO 8をインストールしたのだけれど、なぜかDreamweaverだけ「○○を初期化中」のスプラッシュウィンドウを表示したまましばらく起動しません。実際に計ってはいませんが、起動するまでに5分前後はかかっています。

STUDIO 8 Commercial STUDIO 8 Commercial

プロジェクト始動からサイトの設計・構築まで Webディレクション標準ガイド Web標準の教科書―XHTMLとCSSでつくる“正しい”Webサイト Apple Mighty Mouse [MA086J/A] ヤフー!・グーグルSEO対策テクニック ウェブ進化論 本当の大変化はこれから始まる

by G-Tools

ネットで調べてみると、ソースネクストのウィルスセキュリティとの相性が原因のようです。条件付きですが、ソースネクストのサポート情報に詳しい対応方法が紹介されています。 【ウイルスセキュリティ】「Macromedia Dreamweaver MX 2004」を起動できない。

ウイルスセキュリティZERO (説明扉付きスリムパッケージ版) ウイルスセキュリティZERO (説明扉付きスリムパッケージ版)

ウイルスセキュリティZERO 2台用 (説明扉付きスリムパッケージ版) ウイルスセキュリティ2006 有効期間35日プラス版 (説明扉付きスリムパッケージ版) ウイルスセキュリティZERO 3台用 (説明扉付きスリムパッケージ版) 驚速ストリーミングレコーダー (説明扉付きスリムパッケージ版) 携快電話14 USBコード付き (ハイブリッド版)

by G-Tools

サポート情報にはDreamweaver MX 2004とありますが、Dreamweaver 8も同様に対応できています。