2017年04月25日

さくらのレンタルサーバライトでContent-Encoding: gzipの無効化について

 このブログがさくらのブログであることからも明らかですが、さくらのレンタルサーバライトを利用して、いくつかのWebサービスを運用しております。
 何年も前に青空文庫形態素解析データ集というサイトを作っておりまして、このサイトもさくらのレンタルサーバ上にコンテンツを配置しております。

 その名の通り、青空文庫で公開されているデータを形態素解析した結果をzipやらgzipでダウンロードできるサイトなのですが、先日gzip圧縮されているファイルをダウンロードしたところ、拡張子はgzなのに、実際は解凍済みのファイルがダウンロードされるという事象が発生しました。

 一括ダウンロードのページでは、わざわざ解凍前と解凍後のサイズを明記しているというのに…

 オペミスか何かで解凍済みのファイルを拡張子をgzとして配置してしまったのかとも思いましたが、サーバに格納されているファイルを確認すると、ちゃんとgzip圧縮されたファイルが配置されていました。

 どうも、Content-Encodingのgzipが有効になっていて、圧縮転送がされているとブラウザ(Chrome)が判断して、自動的に解凍してしまっている模様です。

 はて、Content-Encodingのgzipとは、意図的に設定しないでも勝手につくものだったのかしら…ということも気になりますが、とりあえずはブラウザで解凍されないようにすることが先決ですので、方法を調べてみました。

 で、思ったより苦戦しましたが、とりあえず、.htaccessに以下を追記することで、Chromeでは解凍されずにダウンロードできるようになりました。



<FilesMatch "\.gz$">
  AddEncoding identity .gz
</FilesMatch>


 さて、以下は上記に至るまでの経過を示していきます。内容に不備があるようであれば、有識者の方は突っ込みをお願いいたします。

 そもそも、ブラウザがgzファイルを解凍してしまうのは、HTTPレスポンスヘッダのContent-Encodingにgzipが含まれているからではないかと推測し、Wiresharkでパケットを確認した結果、確かに「Content-Encoding: gzip」が含まれていました。

 ちなみに、他のサイトでgzファイルをダウンロードしても自動的に解凍されませんでした(レスポンスにContent-Encodingそのものがなかった)ので、やはりサーバの設定の問題のようです。


 で、ブラウザに解凍をさせたくない場合は、Content-Encodingヘッダそのものをつけないのが正しいようですので、初めはmod_headersを用いて以下のようにしてみましたが、どうにもContent-Encodingヘッダが削除されませんでした。

<FilesMatch "\.gz$">
  Header unset Content-Encoding
</FilesMatch>

 ETagヘッダで試してみると問題なく削除できましたので、機能が動作していないということはない筈なのですが…
 あまり自信のない推測ですが、Content-Encodingヘッダはレスポンスヘッダの末尾についておりますので、除去された後にもう一度付与されている…のでしょうか。(私の単なる勘違いだったら申し訳ないですが)

 次は、Content-Encodingを削除することは一旦あきらめて、内容を変更する方法で検討しました。
 AddEncodingで変更できることはわかったのですが、何の文字列に変更すべきかがわからない

 RFC2616を見る限りでは…以下のような記載がありますので、やはり、identityが一番近いように読めます。

identity The default (identity) encoding; the use of no transformation whatsoever. This content-coding is used only in the Accept- Encoding header, and SHOULD NOT be used in the Content-Encoding header.


(長時間かけてググったわけではないですが、同じ事象で困っている人は見つけられませんでしたので、何か私が根本的な勘違いをしている気もしておりますが…)
posted by hahasoha at 23:04| Comment(0) | TrackBack(0) | その他

2017年03月12日

BVH WEB VIEWERを公開しました

BVH WEB VIEWERを公開しました。
http://motion.hahasoha.net/


 ひょんなことからVRに触れることになり、関連しそうな情報を色々と調べていたところ、カーネギーメロン大学が公開しているモーションデータをbvh形式に変換して公開しているサイトを見つけました。

 必要なツールをダウンロードしてbvhファイルを読み込めば、色々なモーションが見れてなかなか楽しいです。
 …が、もっと気軽に検索できて、パパッとモーションを閲覧できる方法がないか調べた結果、どうも適合するサイトはなさそうでしたので、冒頭のBVH WEB VIEWERを作成し、公開しました。

 作成したといっても、three.jsのサンプルコードも殆ど流用させてもらっていますし、手抜き感は否めませんが…
 パパッとモーションを検索して、ブラウザで動作を確認してそのままbvhファイルをダウンロードできるようにしましたので、使い勝手は悪くはないかと思います。(手元のスマホで表示をしたらiframeが荒ぶったため、とりあえずPC限定としていますが)

 ただ、実際に動きを見ても、何の動きなのかわからないのも多数ありますが…(Alaskan vacationって何なんでしょう…?)

 3Dコンテンツの作成は完全に門外漢なので、どれくらいの需要があるのか把握できておりませんが、bvhファイルはBlenderではそのまま使えるようですし、ドリームファクトリーのLiveAnimationで変換すればMMDでも使える模様です。

 2016年はVR元年と言われていますが、3D系の素材に対する需要・供給も増加していきそうですね。
posted by hahasoha at 16:31| Comment(0) | TrackBack(0) | その他

2014年12月14日

Microsoft Office Word 索引作成支援ツール マニュアル


Microsoft Office Word 索引作成支援ツールの利用方法を説明します。


本ツールは、Microsoft Office Wordに実装されている自動索引登録機能で利用するためのファイル作成を支援します。

実際の索引作成には、正規のMicrosoft Office Wordが必要となることにご注意ください。



初回解析


初めて本ツールを利用する場合は、トップ画面の「索引候補ファイル作成」の「ファイルを選択」をクリックし、索引を作成したいWordファイルを選択して「初回解析」をクリックしてください。

※対応している拡張子はdocxのみです。


本マニュアルでは、サンプルファイルとして青空文庫の「羅生門」の本文を利用します。


index1.png


解析が終了すると、索引登録候補一覧画面に遷移します。

大量に列挙された候補の中から、索引として登録すべき用語のみチェックをつけてください。

語句や読みが正確に解析されていない場合は手動で修正してください。



作業状態の保存と再開


「作業状態保存ファイルをダウンロード」をクリックすると、現在の作業状態が記録されたtsvファイルがダウンロードされます。

トップ画面の「索引候補ファイル再編集」から該当のファイルをアップロードすれば、編集作業を再開することができます。



索引登録ファイルをダウンロード


「索引登録ファイルをダウンロード」をクリックすると、Microsoft Office Word用の索引登録ファイルがダウンロードされます。

中身は以下のようなdocxファイルですが、通常このファイルを開く必要はありません。


index2.png



索引登録と索引作成


本作業実施前に、索引作成対象のWordファイルのバックアップを取得するようにして下さい。


索引を作成したいWordファイルをMicrosoft Office Wordで開いてください。

メニューから「参考資料」→「索引の挿入」を選択してください。


index3.png



「自動索引登録」をクリックし、本サイトからダウンロードした索引登録ファイルを選択してください。


index4.png


本文中に索引項目が以下のように自動登録されます。


index5.png


索引項目を非表示にしたい場合は、メニューから「ホーム」→「編集記号の表示/非表示」を選択して表示を切り替えてください。


index6.png


索引を作成します。

索引を作成したい個所にカーソルを合わせた状態で再度メニューから「参考資料」→「索引の挿入」を選択してください。


index3.png


任意のスタイルを設定後、「OK」を選択してください。

以下のように索引が作成されます。


index8.png


説明は以上です。


posted by hahasoha at 21:02| Comment(0) | TrackBack(0) | その他