2つの Tips で docwiki の使い勝手を改善する [JAPAN]

Posted by on in Tools


開発者の皆様が RAD Studio / Delphi / C++ Builder を使用するときによく使うサイトの一つは docwiki.embarcadero.com だと思いますし、もちろん私もよく参照します。

しかしながら docwiki.embarcadero.com を使ってみると応答が遅いことがあります。最近は一時期に比べるとだいぶ応答時間が良くなっているようですが、それでも、たまーに重いと感じることがあります。重いと感じる理由はいろいろあるのでしょうけれど、その一つの要因としては「docwiki のサーバが返すレスポンスはクライアント側でのローカルキャッシュを禁止する設定が積極的に入っていて、ページだけではなく画像やCSS、JavaScriptの類が基本的に毎回再読み込みされてしまう」という、非常に勿体ない状況が挙げられるかと思います。

また Google で C++Bbuilder や Delphi の情報を検索すると、docwiki の文書がヒットする中で自分が知りたいバージョンとは違う情報がヒットする場合もあります。

このような状況は開発者の皆様の作業効率を損なう場合もありますので、これらの使い勝手を改善するための方法を2つご紹介します。 

 

まず最初に紹介するのは、比較的カンタンに対処できる後者の対応からです。「ブラウザ のアドレスバーから docwiki を直接検索できるように設定する」と、自分が探したいバージョンの文書にすぐにアクセスできるようになります。 

知っている方は知っているし、知らない方は全く知らないのですが、Google Chrome のアドレスバーからの検索機能は利用者が自由にカスタマイズできるようになっています。また、Firefox でも同様のカスタマイズが可能です。このような機能を利用して docwiki の検索設定を追加すれば、ブラウザから一発で検索を実行できるわけです。

 

Google Chrome では、この設定手順は以下の2ステップです。

 

まずは Chrome のアドレスバーに "chrome://settings/searchEngines" と入力します。すると以下のような画面が表示されます。

show  

 ここで「その他の検索エンジン」の項目から 、以下のように入力します。

項目名 入力内容 意味

検索エンジンを追加

docwiki.embarcadero.com 検索の際にアドレスバーに表示される文字列となります。
キーワード berlin

この検索エンジンを利用する際に最初に入力する文字列を指定します。

URL http://docwiki.embarcadero.com/RADStudio/Berlin/j/index.php?search=%s

検索実行時のURL形式です。検索文字列を%sで指定します。

 

設定が終わったら、実際に検索を行ってみます。まず最初にアドレスバーで berlin [tab] と入力します。([tab] の代わりに [space] でも OK です。)そして続けて検索したいキーワードを入力します。ここでは例として TBluetoothLE と入力してみます。するとアドレスバーは次のように表示されているはずです。


start search by docwiki on address bar
 

 

ここでそのまま [Enter] を押すと、検索結果が以下のように表示されます。


 search result

Berlin 以外のバージョンを対象とする検索設定を作成する場合は、/Berlin/ の部分を /Seattle/ や /XE8/ などの文字列に変更し、キーワードも適切に変更します。

あるいは、もしも常に最新バージョンの情報を検索したい場合は /Berlin/ の部分を抜いてください。この場合はキーワードを docwiki のように変更するとよいでしょう。 

 

つぎに Firefox のカスタマイズ例を紹介します。Firefox の場合は検索フォーム上で右クリックメニューを表示して、「この検索にキーワードを設定」を選ぶことで Chrome と同様の設定が行えます。

 

設定したらアドレスバーで [キーワード][スペース][検索文字列] のように入力すると、アドレスバーからダイレクトに検索できます。 

このように Google Chrome でも Firefox でもアドレスバーから docwiki の文書を直接検索できるようになりました。 なお、Firefox で検索バーに docwiki の検索を追加したい場合はアドオンの "Add to Search Bar" を利用すれば同様の手順で追加可能です。 

 


さて、もうひとつの問題である、docwiki の応答が遅い件への対処ですが、この問題への効果的な方法は「コンテンツのキャッシュを積極的に持つ」ようにすることです。これには下記の2通りの方法が考えられます。

  1. 「docwiki のコンテンツだけをキャッシュするプロキシサーバ」をセットアップする。
  2. 「ブラウザキャッシュの機能を阻害するレスポンスヘッダを抜くプロキシサーバ」を作る。

しかしいずれの方法も設定に不備があるといろんな問題を引き起こします。問題を最小限にとどめるためには、あくまで自分自身の作業用PCだけで動くのが望ましいでしょう。

今回は 1. の目的のために Squid というウェブキャッシュサーバを使う例を紹介します。ここから先の説明は、分かる方なら分かる、という程度の説明しか書いておりませんので、ご自身の技術レベルやスキルをご考慮の上で、やるやらないを検討してみてください。

 

まず、Squd の Windows 版はバイナリのダウンロード先が以下のURLで紹介されていますので、Windows 環境の場合はこちらをダウンロードするのがよいでしょう。

http://wiki.squid-cache.org/KnowledgeBase/Windows#Squid-3.5

そして以下のリポジトリに設定ファイルのサンプルを用意しました。

https://github.com/kazinoue/docwiki_localcache

 

設定ファイルの例は下記2種類です。

  1. 80/TCPを使用するリバースプロキシ
  2. 3128/TCPを私用するフォワードプロキシ

ご自身の作業環境上で 80/TCP を IIS や Apache 等が使用済みの場合は 2. のフォワードプロキシの設定を試すとよいでしょう。

 

さて、この設定を実際に使用する場合は、6つの注意事項があります。

  1. この設定例ではキャッシュを確実に効かせるために Cookie すらも捨てています。このことが問題となる場合は本設定はご利用いただけません。
  2. 各種パスは squid のインストール状況によって適切に変更してください。この設定例ではDドライブにsquidをインストールしています。
  3. squid のキャッシュディレクトリを初期化するために squid.exe -z を初回に1度だけ実行する必要があるかもしれません。
  4. リバースプロキシの場合は、OS側のhosts ファイルに "127.0.0.1 docwiki.embarcadero.com" という設定を書くことで、この設定例が利用できるようになります。フォワードプロキシの場合は PAC (Proxy Autoconfig) ファイルにて、docwiki 向けのアクセスだけがプロキシ経由となるように構成します。
  5. OS側のhostsファイルとは別に、squid が参照するhostsファイルを作成する必要があります。中身は空のファイルで構いません。このファイルを作成する目的は、4 で設定した hosts ファイルを squid が参照しないようにするためです。
  6. この設定例では squid が参照する DNS サーバに Google Public DNS を指定しています。これは必要に応じて変更してください。

このような工夫を利用者側が行うのはどうかとは思うところはありますが、開発中に参照したい文書がサクサク表示されないことは開発の効率を大幅に落とします。応答時間にストレスを感じている方は一度試して頂くとよいかもしれません。



About
Gold User, No rank,
Sales Consultant at Embarcadero Technologies, in Japan.

Comments

Check out more tips and tricks in this development video: