EBow を買ってみた

U2 の With or Without You がバンドの課題曲候補となりました。 CD を聞いたときはシンセだと思っていたのですが、ライブの DVD を見ると何と持続音をギターで出しているではないですか! どうすればそのようなことが可能になるのか調べてみました。

Wikipedia によれば "Infinite Guitar" というギターを使っているようですが、これは世の中に数本しか存在しないもののようで話になりません。 Fernandes Sustainer というものも見つけましたが、ギターの改造が必要なようで敷居が高いです。

そこで買ってしまったのが EBow です。

英語のマニュアルを読んで理解した限りでは、EBow は磁場を作って弦にフィードバックを与え振動させ続けるようです。 ピックアップは "passive humbucker" が、いろんなトーンが出せるし EBow を持った右手の位置を幅広く取れるのでお勧めらしいですが、シングルコイルの SGV-800 でも十分使えます。

とりあえず、音を出すだけならば、EBow をピックアップに近づけるだけで簡単です。 ピックアップはフロントを使いますが、EBow とピックアップの距離でボリュームをコントロールできます。 With or Without You の持続音をとりあえず弾くのは出来そうです。

ただ、持続音を出す場合、普段にも増してビブラートやボリュームコントロール等で表情をつけるよう気をつけなければ、のっぺりした音を出しているだけになってしまいそうです。 このあたりの感覚はピックによるギター演奏とだいぶ違うように感じます。 また、実際にライブで使おうとするとボリュームのバランス (EBow で出す音はデカい!) とピックとの持ち替えに注意が必要です。 本家の FAQ では、マジックテープを使ってギターにつける等、使わないときどうするかについていくつかの方法が紹介されています。 (私のギターには既にピックホルダーがついています…)

…実は、それよりも With or Without You が課題曲リストからはずされてしまいそうなのが問題だったりします。 せっかく EBow 買ったのに…

下の U2 18singles は CD + DVD で U2 入門用にお勧めです。私も入門者ですが…。

Google Analytics で livedoor や BIGLOBE が集計できない件への対処法

_addOrganic() でカスタマイズしても Google Analytics は検索クエリが「q」で、サブドメインが「search」だと正常に検出してくれないという話があります。

確かに言われてみると livedoor や BIGLOBE はカウントされていません。 逆に search が妙に多くて「search.com ってそんなに一般的なのかなあ?」と訝しんでいたのでした。 ドメイン名の一部に search を含んでいるものが全て集約されているとすると合点が行きます。

実際に試してみると、livedoor は "live"、BIGLOBE は "search" でカウントされているようでした。 どうもデフォルトで登録済みのサーチエンジンが優先されるようで、参照元ホスト名を部分一致で判定しているようです。

そこで何とか livedoor や BIGLOBE からのトラフィックを判別できないかと調べたのですが、以下のようにすれば出来ました。

pageTracker._clearOrganic();
pageTracker._addOrganic("google", "q");
pageTracker._addOrganic("yahoo", "p");
pageTracker._addOrganic("goo", "MT");
pageTracker._addOrganic("nifty", "q");
pageTracker._addOrganic("infoseek", "qt");
pageTracker._addOrganic("msn", "q");
pageTracker._addOrganic("search.livedoor", "q");
pageTracker._addOrganic("search.biglobe", "q");
pageTracker._addOrganic("search.com", "q");
pageTracker._addOrganic("live.com", "q");
pageTracker._addOrganic("aol", "query");
pageTracker._addOrganic("ask", "q");
pageTracker._addOrganic("baidu", "wd");
pageTracker._addOrganic("excite", "search");
pageTracker._addOrganic("namaan", "query");
pageTracker._addOrganic("luna", "q");

そうです。_clearOrganic() という API を用いてデフォルトの登録を消去し、全てを自分で登録するのです。

部分一致だとすると Google と goo の扱いも気になるところですが、とりあえずこのコードの通りの呼び出し順で Google と goo のトラフィックもきちんと分離できています。 このテクニックを使えば Google のウェブ検索と画像検索のトラフィックを分けて集計したり、ということもできそうですね。

参考記事


2008.7.26 追記
Nifty が検索のリニューアルをしていて、検索文字列パラメータが "Text" から "q" に変更となっています。 これに合わせてコードを修正しました。

2008. 12. 5 追記
デフォルトの設定を消すことなく、分析したいサーチエンジンを追加登録したいという方は、こちらのブログ記事 をご覧下さい。 最後の方に改善されたコードが紹介されています。


2010.10.14 更に追記
現在は _addOrganic() の引数が増えて、追加する検索エンジンをデフォルトで登録されているものよりも優先させることができるようになっていて、第3引数を true にすれば _clearOrganic() を呼ぶ必要はありません。 詳しくはヘルプを参照ください。

バトルナイザーで育てられる怪獣の種類を増やそう

続編が放送されることが決まった大怪獣バトルですが、シリーズ1の再放送はまだ続いているし放送チャンネルも増えているようです。 これを見た子供にせがまれ「バトルナイザー」を買ってしまい、育てられる怪獣の種類を増やすのに苦労されている方はいませんか? 最近はゲームセンターに行ってもバトルナイザー対応の怪獣カードはなかなか出てきません。 そこで育成可能な怪獣を増やす手段を紹介しておきます。

1. 中古市場に流通しているカードを入手する
プレミアがついたものは高額ですが、バトルナイザーで育成可能という条件だけならば、ほとんどのカードは1枚 100円以下で入手可能だと思います。我が家では1枚 30~60円程度が目安になっています。

流通経路としては、

  • カードショップ
  • オークション

が、考えられます。

身近にカードショップがあると一番安価に入手可能で、我が家でも「トリックスター」で購入したカードが一番多いです。 オークションについては落札価格に比べるとどうしても配送料・手数料が高くついてしまうので、数多く出品している方からまとめて落札し、一括精算してもらうのが良いと思います。

2. バーコードデータを入手し印刷して使う
発想を転換してカードでなくバーコードデータを入手してしまおう、ということです。 ヤフオクの出品写真を見て印刷して使えないかと思ったのがきっかけですが、調べてみるとバーコードデータの一覧を作成されている方がいらっしゃいました。ありがたいことです。 このデータを使って紙に印刷し、バトルナイザーに読ませれば良いのです。

先のサイトのコメントにもありますが、インクジェットプリンタによる印刷だと読み込めないようで、レーザープリンタで出力したものを使いましょう。

さて、このようなデータを使うことに引っかかりを感じる方もおられるかも知れませんが、少なくともこれらのバーコードデータは著作物にあたらないので、公開したり複製したりが著作権法的に問題となることはないです。 私物であるバトルナイザーに読ませて使う分には問題ないと思います。 道義としてどうよ、というのはあるかも知れませんが、実際現行ゲーム機から出てくるのはバトルナイザーで育てられないカードだらけなので、 (メーカーとしても新しく怪獣の種類を増やさざるを得ないでしょうし、) このような方法に頼るのも仕方ないような気がしています。

こうして育てられる怪獣が増えると、残る問題はせっかく育てても油断すると「きえさって」しまうという点でしょうか…

23歳からホストを目指すブログ

…とは、このブログのことです。正確にはまだ「ホストを目指しましょう」と勧められただけですが。

通信簿

goo ラボのブログ通信簿の結果が突拍子もなかったので思わず記事にしてしまいました。 一瞬「ホスト」というのが何のことかわからず「ホストコンピューターを目指せとはどういうことか?」と悩んだのでした。

ギタリストとしてのステージデビュー決定と Hercules GS302B 購入

ついにギタリストとしての初ステージが決まりました! 今月下旬、都内某所の某飲食店で演奏します。 まあ、観客は飲みに来た人だと思うので楽しんで演奏したいと思います。

で、ステージに向けて買ってしまったのが Hercules (ハーキュレス) GS302B というギタースタンドです。

GS402B とどちらを買うか店頭で見比べて購入しました。 ネットでチェックしていると IBANEZ PT32 も良さ気でしたが、店頭にありませんでした。 結局、折りたたんだときの薄さと (若干の) 軽さで GS402B よりも GS302B を選びました。 GS402B はたたんでも結構厚みが出てしまうので持ち歩きにくそうです。 ちなみに GS301B、GS401B はアコギ用ですね。

愛器 SGV-800 のボディのブリッジ側エンドは若干非対称なのですが、全然問題ありませんでした。 剛性も問題なさそうで滑らかな床でもゴムでしっかり止まります。 いつもの練習スタジオのスタンドは吊り下げるタイプなのですが、ヘッドの小さい SGV-800 だと落ちそうなのでスタジオにも持ち込んでいます。

持ち運びはペダル等の入った機材バッグに入れています。 製品パッケージにはソフトギターケースのポケットに入れている写真も印刷されているのですが、SGV-800 のソフトケースには入りませんでした。 ちなみに輸入元のモリダイラ楽器の Web サイトでスタンドの写真の上にカーソルを持っていくとこのポケットに入れている写真が見れます。

こうして少しずつ荷物が増えてしまいます。 初ステージにはいつもの音源の他にシンセも持ち込まねばならないし…

Nokia VRRP のためのファイアーウォールルール

以前の記事の補足で VRRP の通信のためのファイアーウォールルールについてです。 デフォルトでは FireWall-1 そのものに関連する通信は暗黙で許可されるようになっているので、ファイアーウォールを動作させるためのルール (例えば SmartCenter との通信のためのルール) を書く必要はありません。 しかし、VRRP に関しては明示的に通信を許可する必要があるので注意が必要です。

必要なルールは「Nokia Network Voyager for IPSO x.x Reference Guide」 の VRRP 関連の部分に載っています。 IPSO 4.2 の場合は以下の様になっています。

Configuration Rule for Check Point NGX FP1

Source Destination Service Action
cluster-all-ips
mcast-224.0.0.18
fwcluster-object vrrp
igmp
Accept

Where:

  • cluster-all-ips is the Workstation object you created with all IPs.
  • fwcluster-object is the Gateway Cluster object.
  • mcast-224.0.0.18 is a Workstation object with the IP address 224.0.0.18 and of the type host.

Configuration Rules for Check Point NGX FP2 and Later

Source Destination Service Action
Firewalls
fwcluster-object
mcast-224.0.0.18 vrrp
igmp
Accept

Where:

  • Firewalls is a Simple Group object containing the firewall objects.
  • fwcluster-object is the Gateway Cluster object.
  • mcast-224.0.0.18 is a Node Host object with the IP address 224.0.0.18.

このように FireWall-1/VPN-1 のバージョンによってビミョーに書いてあることが異なっているのでお手許の Voyager Reference Guide を参照することをお勧めします。

… とここまで書いて SmartDashboard R60 の "Global Properties" の "Implied Rules" の設定画面に VRRP の項目が追加されているのを見つけました。 ちょっと試せていないですが、これがチェックされていれば済む話じゃなかろうか…

FireWall-1 (Nokia) いざという時に使うかも知れないコマンド

例えば、FireWall-1/Nokia の管理者が突然いなくなった (!) 等の困ったときにお世話になりそうなコマンド類をまとめておきます。

1. IPSO のパスワードリセット
Nokia をシングルユーザモードで起動して、/etc/overpw を実行します。 シングルユーザモードで起動するには、IPSO Boot Manager を使用する方法と IPSO の Boot プロンプトで指定をする方法があります。 起動時に例えば以下のように Boot Manager を起動するか IPSO を起動するかのプロンプトが表示されると思いますので、どちらかを選択します。

1   Bootmgr
2   IPSO
Default: 1

Boot Manager を選んだ場合の操作例を示します。

Starting bootmgr
Loading boot manager..
Loading boot manager..
Boot manager loaded.
Entering autoboot mode.
Type any character to enter command mode. (ここですかさず何かキーを押す)
BOOTMGR[1]> boot /image/current/kernel -s
Booting /dev/wd0f:/image/IPSO-x.x-*****/kernel

IPSO のプロンプトでの操作例を示します。"-s&quot を入力します。

>> IPSO boot
Usage: [[wd(0,f)]/kernel][-abcCdhrsv]
Boot:-s
Booting wd(0,f)/image/IPSO-x.x-*****/kernel

シングルユーザモードで起動後は /etc/overpw を実行し、Ctrl+D を押してマルチユーザモードへ移行します。

Enter pathname of shell or RETURN for sh: (Enter キーを入力)
# /etc/overpw
This program is used to set a temporary admin password when you have
lost the configured password.  You must have booted the machine into
single user mode to run it.  The configured password will be changed.
Please change the temporary password as soon as you log on to your
system through voyager.
Please enter password for user admin: (パスワードを入力)
Please re-enter password for confirmation: (パスワードを入力)
Continue? [n] y
Running fsck...
(略)
Admin password changed.  You may enter ^D to continue booting.
THIS IS A TEMPORARY PASSWORD CHANGE.
PLEASE USE VOYAGER TO CREATE A PERMENANT PASSWORD FOR THE USER ADMIN.
# (Ctrl+D を押す)

2. ライセンスファイルが無いとき
FireWall-1 は動いているものの、インストールしたライセンスファイルが無くなっていて、ライセンス情報のみバックアップしたい、というようなことがあるかも知れません。 このような時にはコマンドラインツール cplic print コマンドを使います。

以下の様に -x オプションでシグネチャつきで既存ライセンスを表示し、表示された情報を保管しておきます。

# cplic print -x
Host             Expiration  Signature                             Features
10.1.2.3         never       ************SIGNATURE***************  cp********* CK-*********

出力されたライセンス情報は cplic put を使って投入可能です。

# cplic put 10.1.2.3 never ************SIGNATURE************** cp********* CK-*********

3. Nokia に telnet や http でアクセスできないとき
Voyager (Nokia の GUI 管理ツール) で設定しようにもアクセスできない、というときはインストールされているファイアーウォールポリシーによりアクセスが拒否されているのかも知れません。 そのようなときは以下のコマンドを Nokia 上で実行することによりポリシーをアンインストールすることができます。

# fw unloadlocal

もちろん、実環境で稼動しているファイアーウォール上で実行してはまずいです。

FireWall-1 で RADIUS の Class attribute を使ってユーザをグループ化する

以前 FireWall-1 と RADIUS サーバの記事を書きましたが、この後 RADIUS の Class 属性を用いてユーザをグループ化できることを知ったのでまとめておきます。 手順はさほど難しくなく、先の記事の手順に加えて GUIdbEdit というツールを用いて add_radius_groups の値を true にするだけでオッケーです。この方法は以下の通りです。

  1. GUIdbEdit.exe は SmartConsole の PROGRAM ディレクトリの中にあり、起動時に SmartCenter サーバを指定できます。
  2. 左のツリーから "Table" – "Global Properties" – "properties" を選び、右画面で "Object Name" が "firewall_properties" の行を選択すると下に add_radius_groups という "Field Name" の存在を確認できると思います。 この add_radius_groups の "Value" を true にして、"File" – "Save All" して終了します。 もし、add_radius_groups が見つからなかったら "Search" – "Find" メニューより検索しましょう。
  3. SmartCenter が稼動しているサーバ上で cpstop/cpstart を実行してサービスを再起動します。

以上で、準備が整いました。 後はポリシーを作成してインストールするだけです。

ポリシーについてですが、"Users and Administrators" – "User Groups" で "RAD_(クラス属性の値)" というグループを作成し、これを用いてポリシーを作成すれば良いです。 グループの中身は空でよいです。 例えば RADIUS サーバに Class が "Users" として登録されているユーザに対しては、グループ名が "RAD_Users" のグループを含むポリシーが適用されます。

RADIUS サーバの登録の仕方は先の記事を参照してください。 "External User Profiles" の "Match all users" の設定も忘れずに行っておきます。 このように作成したポリシーをインストールすれば、ユーザとその所属するグループの管理を RADIUS で行うことができるようになります。

Class 以外の RADIUS attribute を用いるように変更することも可能です。 詳しくは「ファイアウォールと SmartDefense (Firewall and SmartDefence)」の中の「認証 (Authentication)」の章に書いてあります (R60A の場合) 。 R55 の頃のドキュメントには記述はないようですが、昔から出来たようです (例)

CNN News で聴き取ったフレーズ:「drop their pants」

最近英語のリスニング力向上ののために CNN の Podcast を聞いています。 何についてしゃべっているかはわかることが多いのですが、詳細までなかなか聴き取れず CNN ウェブサイトで内容を確認したりしています。

そんな中で聴き取ったフレーズ「… drop their pants …」えーっ、それ何のニュースよ????、と思ったのですが、何とアメリカには列車に向かってお尻を出すイベントがあるそうです。 Mooning of Amtrakというこのイベント、写真を見ると確かに「drop their pants」してますね。 「Moon」に「露出した尻を突き出す」という意味があることも初めて知りました。

しかし、よくわからないのが、「どうしてこういうことをしているか」です。 先の (公式?) Web サイトの「How it started」の説明を見てもよくわかりません。 伝統だからってことなのでしょうか…

Cygwin/X (X 端末) で Solaris のログイン画面が表示されなくなった件

Cygwin/X + Solaris という組み合わせを使って PC 上に Solaris のログイン画面を表示させて使うことがよくあるのですが、複数のネットワークインターフェイスを持つ Solaris サーバで X がうまく使えないことがありました。 そのときの解決方法の備忘録です。

具体的には、以下のような症状がありました。

Cygwin/X に Solaris のログイン画面を表示しようとすると、黒い X の画面が表示され、
ログイン画面起動待ちのカーソルが表示されるところまで行くがその先のログイン画面が表示されない。

ps コマンドで確認してみると、dtlogin から /usr/dt/config/Xsetup が呼ばれますが、この Xsetup の以下の行で処理が止まってしまって dtgreet が起動されるところまで行かないようです。

/usr/openwin/bin/xset fp+ "tcp/${FS_HOSTNAME}:7100"

実際に ps コマンドで確認すると ${FS_HOSTNAME} の部分は IP アドレスになっているのですが、このアドレスをよく見ると Cygwin/X を起動している PC から到達不能なアドレスになっています。 X サーバは PC 上で動作するのでこれはまずいですね。 Solaris サーバが複数のインターフェイスを持っているためこのようなことが起こってしまったのです。

/etc/hosts を修正して Xsetup 中で実行される、

/usr/bin/getent ipnodes "${Hostname}" | \
/usr/bin/head -1

あたりで返される IP アドレスが Cygwin/X を起動している PC から到達可能なアドレスとなるようにしました。 これで無事問題解決しました。