お薦め ページ


メニュー

ハワイ島 遊覧飛行ツアー

ハワイ島 B&B・ホテル

ハワイ島 不動産情報

ハワイ島 情報・観光ガイド

ブログ(Blog)

その他

関連サイト

: 日付別 アーカイブ :

2007年5月20日 - 2007年5月26日

2007年5月26日

カー・ナビゲーションの音声問題

あまりカー・オーディオは 経験がなかったのだが お知り合いの方の 新たに装着した カー・ナビゲーション・システムから 音がでない、ということで、 少しだけお手伝いさせていただいた。

車は 日産(Nissan) の パスファインダー(Pathfinder)、 もちろんアメリカ仕様。 この Pathfinder に Pioneer の 「AVIC-D2」という カー・ナビゲーション・システムを取り付けてあった。

実はこのシステム、取り付けてから既に数ヶ月経っているそうだが、 ナビゲーションについては今のところ何の問題もないそうだ。 ところが全く音がでない。 ラジオやCDも聞けないのに加えて、 何と言っても、ナビゲーションの音声が聞こえない。 運転しながらずっと画面を見ているわけにもいかないので、 結局、音声がないために、道を間違ってしまうこともあるとか。

カーナビ本体を ダッシュ・ボードから取り外し、 配線を一通り確認してみたが、問題は見つからなかった。 ここで、問題点がカーナビ本体側にあるのか、あるいは、 車側にあるのかを判断するために、 別にあまっていたスピーカーを直接接続してみた。 すると全く問題なく音がでた。 少なくとも、これでカーナビ本体は問題がないことが判明した。

問題は、車側にあることが判明したのだが、 以前のカー・オーディオがついていた際にはきちんと音がでていたそうだ。 これについてはもっと情報を整理しなければならない、ということで 今日のところは 元に戻すことにした。 その際、持ってきたスピーカーを 助手席の足元においたまま配線して、 カーナビ本体を元通りに取り付けた。 少しカッコウは悪いが、これで一応、音が出るようになった。 さて、これから、情報収集して問題点を洗い出さなくてはならない。

【参考リンク】

カテゴリー: カーオーディオ     22:47 | コメント (0) | トラックバック (0)

2007年5月25日

ブロークン・ウィンドウ(割れ窓)理論

以前のブログで紹介した書籍 『人生カンタンリセット! 夢をかなえる「そうじ力」』 の 27ページから「ブロークン・ウィンドウ(割れ窓)理論」が紹介されている。

この「ブロークン・ウィンドウ(割れ窓)理論」は、 1969年、スタンフォード大学(Stanford University)の心理学者、 フィリップ・ジンバルド教授による実験によって検証されたそうだ。 その実験の内容について、 少し長いが引用させていただくと、
まず、街の中で比較的治安の良い場所を選びます。 そこで一週間、「ボンネットを開けっ放しの状態で放置した」自動車と、 ボンネットを開けっ放しの状態に「窓ガラスが割れている状態を加えた」自動車の、 2つのパターンの様子を見ました。 そこには、歴然とした差があらわれたというのです。

ボンネットを開けているだけの状態では、一週間、特に何も起こりませんでした。

しかし、その状態に窓ガラスの破損を加えただけで、なんと、10分後には バッテリーが持ち去られ、続いてタイヤもすべて持ち去られました。

さらには落書きや投棄、破壊が行われて、一週間後には 完全にスクラップ状態にまで破壊されたのです。
と説明されている。

また、この「ブロークン・ウィンドウ(割れ窓)理論」は、 「ウィキペディア「割れ窓理論」」 でも 詳しく解説されている。

舛田 光洋 氏は この説明の最後で
車の窓が割れている状態が、 マイナスの磁場を作り上げ、 同質のものを引き寄せ、それはどんどん、 エスカレートしていくという大変興味深い実験です。
と、まとめておられる。

これに関しては、自分の経験則からしても同様に感じていた。 例えば、ショッピング・モール等の公共の駐車場に車を停めている際に、 車に傷がつけられるかどうか、という場合。 たとえ その車が それほど高級車じゃなくても、 また新しくなくても、隅々までピカピカに磨いてあると、 表面が泥だらけの車よりも 傷がつけられにくいようだ。

この原因は、車の横を通る人が、車がピカピカだと 無意識に傷つけないように 気をつけるようになるのだと思う。 反対に、汚れた車の横を通る際は、 そのような意識や注意が湧いてこないようだ。

このように、車に傷をつけられたくなかったら、 車をいつもピカピカにしておいた方がよさそうだ。

【参考リンク】

カテゴリー: 掃除・整理・整頓     22:57 | コメント (0) | トラックバック (0)

2007年5月24日

「 LibIDN Ruby Bindings 」のテスト

前回のブログで 「LibIDN Ruby Bindings」 をインストールするところまできたので、 それでは実際に このライブラリが動作するのかどうか、 テスト用のRubyスクリプトを書いて確認してみる。

「国際化ドメイン名 IDN(Internationalized Domain Name) 」において 最も基本的な変換をテストしてみる。
require 'idn'
include IDN

idnAscii = Idna.toASCII("日本語ドメイン名example.jp")
puts 'Idna.toASCII: ' + idnAscii

idnUnicode = Idna.toUnicode('xn--example-6q4fyliikhk162btq3b2zd4y2o.jp')
puts 'Idna.toUnicode: ' + idnUnicode

このスクリプトを見てすぐに わかるとおり、 Idna.toASCII というメッソドが UTF-8 のユニコードのドメイン名から ASCII文字列に変換するメソッド。 そして、Idna.toUnicode というメッソドが その逆変換である。

注意点として、このスクリプト内ではユニコード(UTF-8)を使っているので ファイルを保存する際には、以前のブログ 『ruby での「 Invalid char `\357' in expression 」エラーメッセージ』 でレポートしたとおり、UTF-8N を指定して保存しておくこと。

このスクリプトの実際の実行結果は
% ruby -rubygems ./IDNtest.rb
Idna.toASCII: xn--example-6q4fyliikhk162btq3b2zd4y2o.jp
Idna.toUnicode: 日本語ドメイン名example.jp
となる。

昨日のブログの通り、この「 LibIDN Ruby Bindings 」のインストールには RubyGemsを採用している。 しかし、上記スクリプトのソース・コード内に 「 require 'rubygems' 」の1行を入れていないので、 変わりにrubyの実行時に 「-rubygems」オプション をつけて対応した。

それから Punycode(ピュニコード)のエンコードとデコード のテスト・スクリプト。
require 'idn'
include IDN

punyAscii = Punycode.encode("日本語ドメイン名example")
puts 'Punycode.encode: ' + punyAscii

punyUnicode = Punycode.decode("example-6q4fyliikhk162btq3b2zd4y2o")
puts 'Punycode.decode: ' + punyUnicode
これも 見たとおり、Punycode.encode と Punycode.decode を呼ぶだけ。 その実行結果は
Punycode.encode: example-6q4fyliikhk162btq3b2zd4y2o
Punycode.decode: 日本語ドメイン名example
となる。

【参考リンク】

カテゴリー: DNS・URL・URI , Ruby     22:23 | コメント (0) | トラックバック (0)

2007年5月23日

「 LibIDN Ruby Bindings 」のインストール

GNU の IDN Library 「 Libidn 」をインストールし テストしてきたが、今度はこれをRubyから呼べるようにしてみよう。 探してみると、 「LibIDN Ruby Bindings」 という Rubyのライブラリがみつかったので 早速インストールしてみる。

インストールの方法は LibIDN Ruby Bindings サイトのドキュメントによると、
  • RubyGemsによる自動インストール
  • Rakeによる 半自動インストール
  • extconf.rb による 手動インストール
と3つが挙げられている。

ここでは、最も簡単な RubyGemsによるインストールを行ってみる。
# gem install --remote idn
Building native extensions.  This could take a while...
ERROR:  Error installing idn:
        ERROR: Failed to build gem native extension.

/usr/local/bin/ruby18 extconf.rb install --remote idn
checking for main() in -lidn... yes
checking for idna.h... no
ERROR: could not find idna.h header file!

  Please install the GNU IDN library or alternatively specify at least one
  of the following options if the library can only be found in a non-standard
  location:
    --with-idn-dir=/path/to/non/standard/location
        or
    --with-idn-lib=/path/to/non/standard/location/lib
    --with-idn-include=/path/to/non/standard/location/include
エラーが起きてしまった。 idna.h が見つからないようだ。

それなら、と --with-idn-include オプションを付けてみた
# gem install --remote idn --with-idn-include=/usr/local/include
ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --with-idn-include=/usr/local/include
#
ところが、まだエラーがでる。

そこで、 「LibIDN Ruby Bindings」 の記述を参考にして gemのコマンド行を2行に分けて指定してみた。
# gem install --remote idn -- \
? --with-idn-include=/usr/local/include
Building native extensions.  This could take a while...
Successfully installed idn-0.0.2
1 gem installed
Installing ri documentation for idn-0.0.2...
Installing RDoc documentation for idn-0.0.2...
#
今度は成功したようだ。 しかし、なぜ1行ではエラーが起こるのか?

1行で
# gem install --remote idn -- --with-idn-include=/usr/local/include
のようにしても成功した。 どうしても「 -- 」が必要なようだ。 ただし、これに関しては RubyGemsのドキュメントをみても どこにもみつけることができなかった。

【参考リンク】

カテゴリー: DNS・URL・URI , Ruby     22:56 | コメント (0) | トラックバック (0)

2007年5月22日

libidn 付属の idn コマンド

前回のブログで FreeBSDに GNUの「 libidn 」がインストールされたわけだが、 と同時に コマンドライン上で libidn をテストできる 「idn」というコマンドもインストールされている。 では 早速 idnコマンドを試してみることにする。

まずは、オプションをつけずに そのまま実行してみると、
% idn
libidn 1.2
Copyright 2002, 2003, 2004, 2005, 2006, 2007 Simon Josefsson.
GNU Libidn comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Libidn under the terms of
the GNU Lesser General Public License.  For more information
about these matters, see the file named COPYING.LIB.
Type each input string on a line by itself, terminated by a newline character.
abc
abc

idn: tld_check_4z: Missing input
%
と このように表示される。 これで、libidn のバージョンが 1.2 であることが確認できる。 その後、入力を待っているので、 ここでは試しに「abc」+「エンターキー」と打ってみると、 そのまま 「abc」が表示された。 次の行で 何も入力せず「エンターキー」と打ってみると、 「idn: tld_check_4z: Missing input」というエラー・メッセージを表示して終了してしまった。

次に ヘルプを表示させてみる。
% idn -h
libidn 1.2

Command line interface to the internationalized domain name library.

All strings are expected to be encoded in the preferred charset used
by your locale.  Use `--debug' to find out what this charset is.  You
can override the charset used by setting environment variable CHARSET.

To process a string that starts with `-', for example `-foo', use `--'
to signal the end of parameters, as in `idn --quiet -a -- -foo'.

Usage: libidn [OPTIONS]... [STRINGS]...

  -h, --help               Print help and exit
  -V, --version            Print version and exit
  -s, --stringprep         Prepare string according to nameprep profile
  -d, --punycode-decode    Decode Punycode
  -e, --punycode-encode    Encode Punycode
  -a, --idna-to-ascii      Convert to ACE according to IDNA (default)
  -u, --idna-to-unicode    Convert from ACE according to IDNA
      --allow-unassigned   Toggle IDNA AllowUnassigned flag  (default=off)
      --usestd3asciirules  Toggle IDNA UseSTD3ASCIIRules flag  (default=off)
  -t, --tld                Check string for TLD specific rules
                             Only for --idna-to-ascii and --idna-to-unicode
                             (default=on)
  -p, --profile=STRING     Use specified stringprep profile instead
                             Valid stringprep profiles are `Nameprep', `iSCSI',
                             `Nodeprep', `Resourceprep', `trace', and
                             `SASLprep'.
      --debug              Print debugging information  (default=off)
      --quiet              Silent operation  (default=off)
%
と このようにヘルプが表示される。 ここに、locale により適切な charset が設定されている必要がある、 と書いてある。 また、現在の charset は --debug オプションをつけるとわかるようだ。

そでは idn コマンドに --debug オプションをつけてCHARSET の確認。 ここでは、無駄な表示を省くために、--quiet もつけた。
% idn --debug --quiet ""
Charset `US-ASCII'.
idn: tld_check_4z: Missing input
こでれ、Charset が「 US-ASCII 」であることがわかった。

そこで
% setenv CHARSET UTF-8
% printenv | grep CHARSET
CHARSET=UTF-8
% idn --debug --quiet ""
Charset `UTF-8'.
idn: tld_check_4z: Missing input
%
として Charset を「 UTF-8 」に変更して それを idn --debug コマンドで確認している。

以前のブログで 「日本語ドメイン名EXAMPLE.jp」というドメイン名は、 「xn--example-6q4fyliikhk162btq3b2zd4y2o.jp」 となる例を挙げていたが、これが idnコマンド で実際に変換されるかどうかテストしてみる。 上記のヘルプより、「-a」が「Convert to ACE according to IDNA (default)」とあるので
% idn --quiet -a 日本語ドメイン名example.jp
 xn--example-6q4fyliikhk162btq3b2zd4y2o.jp
%
それから、「-u」が「Convert from ACE according to IDNA」とあるので、
% idn --quiet -u xn--example-6q4fyliikhk162btq3b2zd4y2o.jp
日本語ドメイン名example.jp
%
となり、どちらの方向にも変換が正しく行われていることが確認できる。

【参考リンク】

カテゴリー: DNS・URL・URI     22:00 | コメント (0) | トラックバック (0)

2007年5月21日

FreeBSDにおける libidn のインストール

昨日の GNU IDN Library - Libidn からの続きとして、 このライブラリをFreeBSDに実際にインストールしてみる。

FreeBSDでは ご多分に漏れず GNU libidn も ports によりインストールできる。 ディレクトリは /usr/ports/dns/libidn/ となっている。 そこで
# cd /usr/ports/dns/libidn/
# make install
のように インストールを開始する。 makeから沢山の情報が表示されるが、 その中に
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
とあるので、libidn が /usr/local/lib にインストールされたことがわかる。

また、
test -z "/usr/local/include" || ../build-aux/install-sh -c -d "/usr/local/include"
 install  -o root -g wheel -m 444 'stringprep.h' '/usr/local/include/stringprep.h'
 install  -o root -g wheel -m 444 'idna.h' '/usr/local/include/idna.h'
 install  -o root -g wheel -m 444 'punycode.h' '/usr/local/include/punycode.h'
 install  -o root -g wheel -m 444 'idn-free.h' '/usr/local/include/idn-free.h'
 install  -o root -g wheel -m 444 'pr29.h' '/usr/local/include/pr29.h'
 install  -o root -g wheel -m 444 'tld.h' '/usr/local/include/tld.h'
test -z "/usr/local/include" || ../build-aux/install-sh -c -d "/usr/local/include"
 install  -o root -g wheel -m 444 'idn-int.h' '/usr/local/include/idn-int.h'
とあるので、各種の ヘッダー(インクルード)ファイルが /usr/local/include/ 下にインストールされたことがわかる。

そして
install -o root -g wheel -m 555 -s .libs/idn /usr/local/bin/idn
から、idn コマンドが ディレクトリ /usr/local/bin/ 下にインストールされたこともわかる。

それから
install  -o root -g wheel -m 444 'punycode.el' '/usr/local/share/emacs/site-lisp/punycode.el'
install  -o root -g wheel -m 444 'idna.el' '/usr/local/share/emacs/site-lisp/idna.el'
のように Emacs Lisp API もインストールされている。 その後、多数の manページがインストールされている。

【参考リンク】

カテゴリー: DNS・URL・URI , FreeBSD     22:28 | コメント (0) | トラックバック (0)

2007年5月20日

GNU IDN Library - Libidn

昨日のブログで 国際化ドメイン名 (IDN) のソフトウェア開発環境(ライブラリ)について まとめてみたが、今回のブログでは その中でも GNU IDN Library 「 Libidn 」を取り上げてみる。

このGNUの「 Libidn 」とは IETFの 「国際化ドメイン名 (IDN: Internationalized Domain Names ) ワークグループ」 によって定義されている Stringprep, Punycode そして IDNA規格 を実現した Cライブラリである。

このライブラリには Stringprep と呼ばれるUnicode の正規化や Nameprep, iSCSI, SASL や XMPP が。 また、IDNA により定義されているPunycode や ACE(ASCII Compatible Encoding) 。 TLD(Top-Level Domain)を定義する メカニズム 等が含まれている。 詳しくは、 「GNU IDN Library - Libidn」 に説明がある。

この Libidn に含まれる関数も
  • Utility Functions
  • Stringprep Functions
  • Punycode Functions
  • IDNA Functions
  • TLD Functions
  • PR29 Functions
と分類が分かれている。 それぞれの 関数群の具体的な使用方法については、 「Libidn Manual web page」 から、各種のフォーマットのマニュアルが参照可能である。

【参考リンク】

カテゴリー: DNS・URL・URI     22:09 | コメント (0) | トラックバック (1)

 
ハワイ島での遊覧飛行ツアーとB&Bのスペシャリスト、スカイメリカ
Copyright © 2003,2009 Skymerica Corp. All rights reserved.