2010/08/13

Google Chrome 拡張「Search Date Changer」をバージョンアップしました

今年の3月頃に公開しました「Search Date Changer」(またはSDC)を更新し、バージョン1.5.0として公開しました


SDCはGoogleの検索結果の対象範囲日付をクリック一つで変更できるGoogle Chrome拡張です。例えば、特定の話題に対して全体の状況を俯瞰した上で、今度は最新の話題だけを知りたい、などといった場合に、気軽に活用出来ます。

例えばGoogleで「iPhone」を検索すると、普通では「期間指定なし」の検索結果として、過去全てのiPhoneに関する話題を一瞥することが出来ます。ここで、OmniBox(またはURLバー)へ表示されたSDCのアイコンをクリックすることにより、「最新」や「1週間以内」といったコンテンツの更新日時を限定した検索結果へ順番に切り替えることができます。例えば、この記事を書いている時点では、iOS のPDF脆弱性が対策された新ファームの話題が数多く表示され、この話題がiPhoneに関する旬な話題であることが分かりました。

この「検索結果期間指定機能」は、Google の検索結果ページから選択できるのですが、残念ながら「その他のツール」内へ隠れてしまっていることが多く、また辿りつくまでに複数回クリックする必要があるため、是非このSDCを通じて便利さを知ってもらえれば、と思っています。

今回のバージョンアップでは、Web検索結果に加えて、Googleニュースや動画、書籍の検索でも正しく機能するようになりました。また、「最新」や「1週間以内」といった検索結果範囲も選択可能なりました。「実は、1年以内の検索は必要ないんだよね」などの要求にも対応できます。

加えて、検索結果範囲を「強制」できるようにもなりました。例えば検索結果範囲を「24時間以内」「1年以内」に設定し、強制オプションを有効にした場合、Chromeで表示される全べのGoogleの検索結果が「24時間以内」または「1年以内」へ限定されることになります。期間限定での調べ物を繰り返し行うような場合には便利でしょう。

個人的に一番大きな変更は、アイコンを以前よりも(もう少し)まともな図柄としたことです。以前のデザインよりも気に入ってもらえると良いのですが...。なお、同時にアイコンの意味も「次の検索内容」から「現在の検索結果」へと変更しました。

インストールや詳しいリリースノートなどは、Google Chrome 拡張のSearch Date Changerのページを御覧ください。

また、先のバージョン同様、このバージョンも github で、全ソースコードを公開しています。ライセンスも同様 2-clause BSDなので、必要に応じてご自由にお使いください。

2010/08/10

PLANEXのUSB無線LANアダプタとVAIO type Gの「ワイヤレススイッチ設定ユーティリティ」相性問題

最近では様々な場所でネットワーク環境が標準提供され、大変便利です。ただ一部のホテルなどでは、有線LAN接続サービスの提供にとどまり、無線LAN接続環境は整備されていない、という場合もあります。

こんな場合に便利な機能がPCの「ソフトウェアアクセスポイント」です。PCの無線LAN機能をアクセスポイントとして稼働させ、そのPCをルータやハブとしてパケットを仲介させることで、無線LAN機能しか持たない機器でも、有線LANネットワークサービスを利用することができるようになります。

もちろんPC側と無線LAN機器をアドホックモード接続することでも同様の効果を得られますが、アクセスポイントとして稼働させた場合、複数無線LAN機器から利用出来る点が魅力です。

ソフトウェアアクセスポイント機能は、例えば、MacOS X では、Apple社のサイトで情報が公開されていますように、System Preferences の Sharing で Internet Sharing を有効化することで利用できます。無線LANの設定はAirPort Optionsで可能です。

また Windows7 では、同様の基本機能がOS本体へ備わっているため、netshコマンドで設定を行ったり、フリーソフトウェアを使って設定を行うことで利用出来るようです。

私はWindows XPの稼働しているVAIO type G(VGN-G2)で利用したかったため「ソフトウェアアクセスポイント」ソフトウェアの同梱されたUSB無線LANアダプタを試してみることにしました。

購入したのはPLANEX社製のGW-USMicroN2Wと、GW-USNano-Mです。ともに非常に小型軽量でありながらも802.11nへ対応しており、且つ、実売1500円以下とお買い得です。

どちらも利用方法は簡単で、付属ソフトウェアで幾つか設定を行うだけで利用できます。一般的な接続
スタイルでは、PC本体の有線LANを有線ネットワークへ接続して環境を整えた後、USB無線LANアダプタでソフトウェアAPを稼働させることで、共有接続が使えるようになります。

また、GW-USNano-Mの場合には、GW-USNano-M側でソフトウェアAPを稼働させながら、PC本体の無線LANを別のアクセスポイントへ接続させることで共有、という接続も可能でした。直接無線LAN機器を接続させず、一旦PCでパケットフィルタリングを行うことで、より安全に接続したい、といった場合に利用出来るかもしれません。

さて、動作原理的には、どちらのアダプタに付属ソフトウェアも、WindowsXPが備えているISC(Inthernet Sharing Connection)機能を利用して接続環境を構築していました。すなわち、WindowsXPをルータとして稼働させ、複数のインターフェイス間でパケットをルーティングすることになります。

ここで問題となるのが、アンチウィルスソフトなど、セキュリティソフトウェアの存在です。最近のセキュリティソフトの中には、インターフェイス間のパケット中継を抑止するものが存在します。例えば私のVAIO type Gへインストールされている「ウイルスバスターコーポレートエディション」はその一つです。

このソフトウェアが稼働していると、複数インターフェイス間のパケット伝送が抑止されてしまい、結果的にソフトウェアアクセスポイントが利用できなくなってしまいます。結局適切に動作させるには、セキュリティソフトウェアを停止させる方法しか見つかりませんでした。 またこの「パケット転送抑止」は、複数インターフェイス間をISC、ブリッジのいずれで接続した場合にも発生しました。

もし「ソフトウェアアクセスポイント」が正しく動作しない場合、アクセスポイント設定や無線LAN機器の設定内容に加え、セキュリティソフトウェアの動作も確認してみると良いでしょう。

また、これは、WindowsXPのインストールされたVGN-G2固有の問題かもしれませんが、両USB無線LANアダプタ付属のデバイスドライバ共に、VAIOへ標準インストールされている「ワイヤレススイッチ設定ユーティリティ(ver.3.4)」との相性が良くありませんでした。

「ワイヤレススイッチ設定ユーティリティ」は、VAIO本体へ付属している物理的なワイヤレススイッチをオンにした場合、「どの無線LAN機能を有効化するか」を設定するためのソフトウェアです。設定可能な機能としては「2.4GHzの有効/無効」「5GHzの有効/無効」「Bluetoothの有効/無効」を任意に選択できます。私はこのユーティリティを使い、常時Bluetooth機能を無効化しています。

残念ながら無線LANアダプタ付属のドライバをインストールし、再起動を行うと、この「ワイヤレススイッチ設定ユーティリティ」(正式には、このユーティリティと対になって動作するWindowsサービス)が、本体内蔵の「Intel 3945ABGネットワークアダプタ」を切り離し、利用不可能状態にしてしまいます。確かにUSB無線LANアダプタがあるので無線通信は出来るのですが、普段は本体の無線LAN機能を使いたいと思っていたので、この挙動は驚きました。

また私の試した範囲内では、PLANEX関係のソフトウェアをすべてアンインストールするだけではこの状態を回復することが出来ず、3945ABGのデバイスドライバを再インストールする必要がありました。

「ワイヤレススイッチ設定ユーティリティ」とUSB無線LANアダプタ用ドライバの、どちらに本質的な問題が潜んでいるのかわかりませんでしたが、残念ながらこれらのUSB無線LANアダプタは、私の環境では常用するのが難しいようです。ソフトウェアアクセスポイント機能が非常に魅力的であり、その他の動作も問題がなかったので、このユーティリティとの相性問題は大変残念に感じました。

Windows XPがインストールされたVAIO type Gで「ワイヤレススイッチ設定ユーティリティ(ver.3.4)」を常用されている方は、念のため、気に留めて置かれることをお薦めします。

2010/08/05

Courier-IMAPサーバから STATUS failed エラーが返された場合の対処

現在勤務先では、IMAP サーバとしてCourier-IMAPを稼働させ、MUAにMewThunderbird、MacOS X 付属の Mail.app などを適宜切り替えながらメイルを読み書きしています。

Mail.app を使ってメイルを読み書きしていると、時々、
The following alerts are from the IMAP server for 'foo':
STATUS failed
のようなメッセージとともに、メイルサーバへの接続が切断され、困っていました。

これは Courier-IMAP サーバが管理対象としているディレクトリ内に、必須ディレクトリ群の存在しないディレクトリが存在していることが原因のようです。

具体的には、管理対処ディレクトリ内へは、必ずcur、new、tmpの3つのディレクトリが存在している必要があります。それらが適切に存在しないディレクトリが1つでもある場合サーバは「STATUS failed」エラーを返します。

例えば、~/Maildir/ が Courier-IMAP の作業用トップディレクトリであり、その中に管理対象である .Trash と .foo、.bar が存在するとします。この .Trash、.foo、.bar の全てのディレクトリ内すべてに cur、new、tmp が Courier-IMAP が書き込みできる状態で存在していなければなりません。

もし上記「STATUS failed」エラーに遭遇した場合には、各管理対象ディレクトリ内へcur、new、tmp の存在することを確認してみると良いでしょう。

この問題解決方法を気づかせてくれた、courier-usersのメイルアーカイブへ感謝いたします。

2010/08/02

iOS4でGmailの送信メイルアドレスを設定する方法

iOS(旧iPhoneOS)4では、大小様々な拡張が行われました。メイルアプリの進化もその一つで、例えば Gmail と連携させることで、Gmail自体が持っている「Archive」機能が使えるようなっています。

私もGmailを利用していますが、過去の経緯等から、比較的ややこしい方法で利用しています。
  1. Gmailアドレスは常用しておらず、独自ドメインのアドレスを使っている
  2. 独自ドメインはGoogle Appsで管理しているが、そのGmailサーバ機能は使っておらず、Google本家のGmailアカウントへ転送している
  3. Gmailの設定を変更し、送信アドレスとして、gmail.com ではなく、独自ドメインのアドレスを使っている
  4. Googleアカウントへ独自ドメインのアカウントを紐付けており、どちらのアカウントでログインしても、Google本家のサービスが利用出来るよう設定している
この環境を維持しつつiPhoneをGmailと同期させる為には、次の2つの条件を満たさなければなりません。
  1. IMAP サーバへ、Googleアカウントでログインしなければならない
  2. メイルの送信アドレスは独自ドメインアドレスを設定しなければならない
iOSでGmailと連携させる設定方法は、全部で3つの手法が提供されていますが、どの方法を使うかによって微妙にできることが異なり、上記の特殊な要求と絡んで複雑な様相を呈しています。

そこで3種類のメイル設定について整理してみました。それぞれ「iOS標準のGmail設定を使う」「GmailのIMAP接続設定を独自で行う」「Google Syncでメイルを動機するように設定する」です。


1. iOS 標準のGmail設定を使う


最もシンプルな設定方法です。Mail, Contacts, Calendars 内のAdd Acount で GMail を選択することにより設定できます。特にiOS4からは、一括して、CalendarsとNotesの同期設定も行ってくれるようになり、便利さが増しました。

この設定を使った場合の特徴は次の通りです。
  1. ログイン情報には、Address と Password フィールドで設定した値が使われる。この値に Google Apps 用の値を設定すると、Google Apps内のGmailサーバと同期が行われるようになる
  2. 送信メイルアドレスは Address フィールドへ入力した値が使われる
  3. IMAP/SMTP では HTTP Proxy は超えられない
  4. Archive Message 設定ができる
  5. Calendars が一括で設定される
  6. Notes が一括で設定される
上記、1と2から、独自ドメインアカウントを送信メイルアドレスへ使うことは出来ません。送信メイルアドレスを変更しようとAddress欄へ独自ドメインのメイルアドレスを設定すると、そのドメインのGmailサーバと接続してしまい、Google本家のGmailから取得する、という要求が達成できなくなってしまいます。

Web版Gmailでは、送信メイルアドレスとして利用するアドレスを設定できるのですが、残念ながら、その設定は反映されないようです。

魅力的な機能は4、5、6です。Gmailでは、大容量を活かし、メイルを削除するのではなく、普段は見えない場所へアーカイブとして保管しておくことが出来ます。iOS標準のGmail設定を使えば、この機能を利用することが可能です。また、Calendarsも一括で設定してくれるようになりましたので、設定がより簡単になりました。Notesの同期も新機能です。

ただし、Calendarsで設定してくれるのは、メインカレンダーのみのようで、複数のカレンダーを利用している場合には、従来通りCalDAVアカウントなどを通じて、個別設定しなければならないようです。

また、仕様として、HTTP Proxyを設定しても、IMAP/SMTPともFirewallを超えることが出来ません。この為、企業内ネットワークなどからGmailサーバへ接続することはできません。


2. GmailのIMAP接続設定を独自で行う


 やや複雑な設定方法です。Mail, Contacts, Calendars 内の Add Acount で Other を選択し、Add Mail Account を選択することで設定します。

この設定を使った場合の特徴は次の通りです。
  1. ログイン情報には、Incomint Mail Server の User Name とPassword フィールドで設定した値が使われる。
  2. 送信メイルアドレスは IMAP Account InformationのAddressで設定した値が使われる
  3. IMAP/SMTP では HTTP Proxy は超えられない
  4. Archive Message は設定できない
  5. Calendars は一括設定されない
  6. Notes は一括で設定される
上記1と2から、ログイン情報と送信メイルアドレスを個別に設定できます。これにより任意の送信メイルアドレスを使用することが可能です。これがこの設定方法の最大の魅力点でしょう。また、6にあるよ
うにNotesの同期設定も行えます。

一方、iOS標準のGmail設定では可能であった4、5が利用できない点はやや残念です。Incoming Mail Server設定を見ることで、これらの機能を有効化することも可能だと思うのですが、残念ながらそうはなっていないようです。


3. Google Syncでメイルを同期するように設定する


Google Sync は、メイルに加え、カレンダーやコンタクトも同期してくれる便利なサービスです

Mail, Contacts, Calendars 内の Add Acount でMicrosoft Exchangeを選択することにより設定できます。

この設定を使った場合の特徴は次の通りです。
  1. ログイン情報には Username と Password フィールドで設定した値が使われる
  2. Googleアカウントへ紐付けた独自ドメインアカウントを Username へ指定しても、ログイン出来ない
  3. 送信メイルアドレスは Username で設定した値が使われる
  4. Email フィールドへ別のアドレスを設定した場合でも、自動的に Username へ指定した値へ設定が更新される
  5. HTTP Proxy が超えられる
  6. Mailbox 内に ^sync_gmail_group というグループが表示される

上記2、3、4の制約から、送信メイルアドレスに独自ドメインアドレスを利用することはできません。

魅力的なのは5です。例えば企業のファイアウォールなどでは、HTTPポート以外のアクセスを閉じている場合も多いと思いますが、そのような環境でもアクセスできました(ただし環境に依存するかもしれません)。

一方で、6の管理用と思われるフォルダが見えてしまう点は、ややマイナス要素です。

結局、上記3種類の内、送信メイルアドレスを自由に変更できるのは「GMailのIMAP接続設定を独自で行う」のみのようです。この方法ではGmailのArchive機能が使えないのが残念だな、と思います。

なお、送信メイルアドレスのドメインをGoogle Appsで管理している場合には、やや裏技気味ですが「SMTPサーバだけGoogle Apps のサーバを使う」方法があります。

上記「GMailのIMAP接続設定を独自で行う」同様にGoogle Appsドメインのアカウント設定を行ない、Mail を「OFF」に設定しておきます。その上で、送信アドレスを変更したいGmailアカウントの設定から Account Info へ入り、Outgoing Mail Server で Google Apps の SMTP サーバを指定します。これにより、送信メイルアドレスを独自ドメインへと変更することが出来ます。

Google Appsを使っている多くの方は、メイルサーバもGoogle Apps内のGmailサーバ機能を使うでしょうから、この方法を利用する方は少ないと思いますが、困ったときにでも、一度試してみてください。