2013-12-28

IPv6の特殊なアドレスについて

RFC6890をちゃんと見たら色々あったので。

IPv4互換アドレス/IPv4-Compatible IPv6 address(廃止済み)
かつてあったんですがIPv6自動トンネリングが廃止になったので一緒に亡くなりました。無意味に使うのやめましょう。

  • ::/96

Loopback Address(RFC4291)

  • ::1/128
Unspecified Address(RFC4291)

  • ::/128
IPv4-IPv6 Translat/IPv4-Embedded IPv6 Address(RFC6052)

  • 64:ff9b::/96
IPv4射影アドレス/IPv4-Mapped IPv6 Address(RFC4291)

  • ::ffff:0:0/96
Discard-Only Address Block(RFC6666)

  • 100::/64
IETF Protocol Assignments(RFC2928)

  • 2001::/23
TEREDO(RFC4380)

  • 2001::/32
Benchmarking(RFC5180)

  • 2001:2::/48
Documentation(RFC3849)

  • 2001:db8::/32
ORCHID(RFC4843)

  • 2001:10::/28
6to4(RFC3056)

  • 2002::/16
Unique-Local(RFC4193)

  • fc00::/7
Linked-Scoped Unicast(RFC4291)

  • fe80::/10


2013-12-10

apt-X、君に決めた!

煽りタイトルですがお気になさらず。

元々オーディオは好きで、ピュアオーディオにはのめり込んでいないもののイヤホンにはそれなりのこだわりを持っていると自負する程度には嗜んでいました。

電源(バッテリー)、ネットワークが有線接続から無線接続に移り変わっていき、当然オーディオの接続もワイヤレスになっていった・・・かな?*1
段々とオーディオでもヘッドフォンがワイヤレスになっていって。でも、ワイヤレスヘッドホンは送信側と受信側で各メーカー縛りがあるのが当たり前、標準化されている方法としてBluetooth(SBC)は存在するけどもいつまで経っても音質には目を向けてくれそうにない。

そんな悶々とした状況が続いている中、ベンダー実装でありながらも高音質/低遅延にフォーカスした技術が段々と広まりつつあります。やっと。その名はapt-X(aptXでもいいみたい)

ずっと高音質のBluetoothオーディオを待っていたので、2011年の終わりくらいに存在を知ってからは「早く普及しないかな~」と思っていたのだけど、ここ最近になってようやく一般的に名前の知られているメーカーもapt-X対応のイヤホンをリリースし始めた。でもハイエンドモデルのみ。

ハイエンドモデルということはまず最初に値段が高いということも意味していて、日本円にすると2万円とか3万円とか。その値付けだとリスクテイクできないし、むしろイヤホンは自前のモノを使いたい。*2 Bluetooth受信機。そんな製品はあるのか→Bluetoothレシーバー(マスな市場ではカテゴリとして確立してない)。でもって今回ようやくBTオーディオデビューしてみました。買ったのはAVANTALK(Avantree)のBTTC-200X *3。


ここからが本題
BTTC-200X使うとこんなことが出来るよ。

  • 廉価でaptX受信(3.5mmプラグ)
  • 廉価でaptX送信(3.5mmプラグをLine out等から引っ張ってくる)
  • 充電しながら使用(これができるのが結構少ない。使う前に充電を始めておく必要はある。)

一方で、こんなことが出来ないよ。

  • この製品は受信専用モードか送信専用モードでしか動かないので、ヘッドセットを繋いで通話するとか無理。
  • 送信機として使う場合の評判(特に音質)はそれほど芳しくない。まぁアナログ入力ですし。
  • クリップとか付いてないので、持ち運ぶときはポケット必要(本体は軽いので、服に挟めたりすると便利だなーという)。裏は滑り止め素材が貼られているので、置いて使う分にはたぶん便利
  • ペアリング先は一つだけなので、再生機器が複数の場合、ペアリングし直す必要あり


で、今回はスマホ(HTL22)をBluetooth送信側(apt-X対応)、BTTC-200Xを受信側、そこから接続する受信イヤホンはbeyerdynamicのDTX 100という構成で使います。

軽くレビュー
良いよ。超いい。ライブものの動画とかを聴くと特にいい。どう考えても今年のベストバイです。本当にありがとうございました。
俺程度の耳なら有線で繋いでるのと変わらなく聞こえる。少なくとも、使うイヤホンの違いは完全に分かる(無線で繋いでいることがボトルネックになっていない)

短所は、伝送距離。スペック上は10mになってるけど、壁挟むと危うい。特に外で使ってる時とか途切れることもある。こればっかりは環境依存なので一概には言えないし、Bluetoothみたいな小さい電力で動いてる機器なのである程度は仕方ないと割り切るしかという実感。

今知ったのですが
サンワサプライで同じものを売っている *4 ようです。故障時のサポートとか考えるとこっちのほうが安全は安全かなと。

*1 ラジオとかかなり昔から電波に乗ってたし、ワイヤレスマイクは普及していたので
*2 自分好みの音にあわせやすい
*3 http://www.avantree.com/Product-Bluetooth-transmitter-and-receiver-Avantree-Saturn_632.html
*4 http://direct.sanwa.co.jp/ItemPage/400-BTAD002

2013-11-09

ネスレ日本株式会社からNexus7とGoogle Play500円プレゼントが届く!

薄れつつも留めていた記憶の中で
ここ最近、少し浮ついていました。それは何故か。去る9月、Android4.4 コードネーム"KitKat”発表から程なくして発表された「ネスレによるNexus7プレゼントキャンペーン」[1]に応募していたのです。[2]

このキャンペーンの概要を見た時に、今まで懸賞に縁がなかった自分でももしかしたら当たるかもと思わせていた要素はいくつかあって、

  • 応募締め切りが分割されている(2013/10/25、2013/12/10、2014/2/28)
  • 初回の締め切りが年末ではない
  • 当選口数が多い(各1000名)
  • どう考えても普段キットカットを買う層とプレゼントがほしい層が分離している[3]
まぁ言っても「当選は商品の発送をもって発表と変えさせていただきます」パターンなのだけども、コツコツ買って応募するタイプの人は初回締め切りまでに5枚買わない可能性があるので、初回の締め切りに頑張ればかなり倍率低いんじゃないかと踏んでいたことも有り。発表の翌日くらいに徐にキットカットを5個買って1口だけ応募したのでありますよ。

10月末に締め切りがあったのはなんとなく覚えていたので、今月に入ってから「やっぱり当たらなかったかー」と思っていましたが。
そうしたら昨日夜、クロネコメンバーズからメールがあり、ネスレ日本株式会社から荷物と。無事受け取って今に至ります。

開封の儀
なんかやたら軽かったので「あれ?副賞にドロイドくん人形かなんかあったかな?」と思ったのは内緒。
軽いのもあるけど、小さいのにもびっくり。
ネスレ日本から。
500円ぶんのプロモーションコードは隠させていただきましたがご当選おめでとうございます!
Nexus7。
16GB Wi-Fi版。

というわけで、7吋タブレットはHUAWEI MediaPad(S7-301u)があるのですが、フルHD、Qi、NFCとそれはそれでとても魅力的ではあるので、じっくり使いたいと思います。

[1] http://www.nestle.jp/brand/kit/40thcampaign/present.html
[2] 普段チョコレートは食べないのだけど、応募するためだけにキットカットを買ったという
[3] そのギャップを埋めるためのキャンペーンだとは思う

2013-10-30

sudoを使わない理由

概要
弊ブログを見て戴いている方には
「なんでこの人はLinux使っているのにsudo使ってないんだろう」
という疑問を持つ方がいるかもしれない。
このエントリは、そんな疑問を持った人に対する私なりの回答である。

sudoとは
sudoというのは、最近のLinuxディストリビューションではかなりデフォルト導入率の高い[1]、「他のユーザとしてコマンドを実行する」ためのコマンドである。
また、他のユーザとしてコマンドを実行する時に【自ユーザのパスワードをcredentialとして使用する】のも大きな特徴。

古くからUNIXでは、su(substitute user)というコマンドで、ターミナル上での実行ユーザの切り替えを行ってきたが、最近ではAndroidでroot権限が必要な場合にsuをインストールする手順があるので、こっち経由で知っている人も多いかもしれない。
sudoを使うと、sudo以降にタイプしたコマンドを、(suでユーザ変更することなく)自分以外のユーザで実行できるということである。

sudoが嫌いな理由
ここからは自分がsudoを使わずにsuを使う理由を並べていく。
  • 毎回sudoって打つのが面倒
使い勝手の面ではこれが最大の嫌いな理由である。例えば「あーaptで更新したいなー」と思った時に
$ sudo apt-get update
[sudo] password for hogehoge:
$ sudo apt-get upgrade
必要なステップは3つ。ただし事前に認証済みで、認証が残っていればパスワードは聞かれないので2つ。この2つだったり3つだったり感。
一方で、普通にsuして同じコマンドを実行する場合は
$ su -
パスワード:
# apt-get update
# apt-get upgrade
必要なステップは常に3つ(パスワード入力を1とするなら4つ)だが、コマンド打ってる途中にパスワードを入れるという混乱が起こらないのでこっちのがいいなぁ。

  • 一般ユーザのパスワードに他ユーザの履歴が混じって記録される
いまどきのインタラクティブシェルは大概コマンドの履歴を保持する機能を持っていて、すぼらなユーザが「あの時どんな引数使ったかなぁ」なんて時にhistoryコマンドで実行履歴を参照されるので、最近実行したコマンドは引数含めて確認が簡単にできる。
のはいいのだが、sudo使うとsudoコマンドの履歴も一般ユーザのhistoryに残るので、root権限の必要なコマンドが一般ユーザの履歴に残る。更に、【sudoは認証に自ユーザのパスワードを使うので、どんなに重要なコマンドであってもそのユーザが実行できてしまう】状態になる。個人的にはセキュリティ考えると一般ユーザでログインされた時点で全部クラックされたも同然なのでなんで問題にならないんだろうと前から思っているのだが。

sudoを使うメリット
では、sudoを使うメリットとは何なんだろうか。
  • 実行履歴をロギングできる
sudo自体は2通りのロギングの仕組みを持っている。syslogのファシリティを設定することでsyslogに渡す事もできるし、sudo自体のログ機構も使うことができる。特に大事な設定を変更する場合は監査目的で保持したほうが良い場合があるので、そういった場面ではコマンド履歴をロギングできるというのは非常に有用であると思う。[2]

なので、企業内でsudoを使うというのは妥当な理由があると思う。そもそもsudoを使わないとできない操作はchrootとか使えばいくらでも代替できるので、クリティカルなサーバでは存在しないのではないかとも思うが。

sudoを使うメリット?
sudoの使い方と合わせて合理的っぽい理由として書かれている利点に

  • ssh/telnetでrootログインされる心配がない
というのがあるが、これ本当だろうか。心配がないというのは本当なんだが、(インターネット経由での)telnet自体はもう使われないとしてsshログインに話を限定すると、

  • 大抵の場合、sshdはデフォルトでrootログインを許可していない(PermitRootLoginの設定)
  • 外部公開する場合、sshdは公開鍵認証にするのが普通なので、それが破れている時点でrootを破られてもsudoersされてる一般ユーザを破られても大して変わらないのではないか
  • sshdの脆弱性を突かれる可能性はあるが、opensshとsudoだとsudoの方がセキュリティパッチ当たる頻度が高いのでsudo使うほうが危なくないか

というのが個人的な意見である。

sudoじゃなくてsuでrootユーザになれるようにする
最近のLinuxディストリビューションでは、インストール時にも一般ユーザの設定しかしないし、実際にインストール後にsu -しようとしてもパスワードが一致しない。これは設定されていないrootのパスワードに合わせる方法が存在しないからである。ということで、rootのパスワードを設定することでsuからrootになれるようにするのが、インストール後最近一番最初にやることになっている。
でもどうやって?sudoを使って。

rootユーザのパスワードを設定するのはroot権限が必要。でもrootユーザのパスワードが設定されていないのでsu - rootができない。ならばsudoを使うしかない。
$ sudo passwd root
New UNIX password:
Retype new UNIX password:
んで、sudoグループに入っているとsudoが使えてしまう(sudoersの設定による)ので、sudoグループから抜ける。
まずはどのグループに入ってるか確認
$ id -a
uid=1000(hogehoge) gid=1000(hogehoge) groups=1000(hogehoge),27(sudo),111(fuse),122(kvm),123(libvirt)
rootになってusermod。
$ su - root
# usermod -G hogehoge,fuse,kvm,libvirt hogehoge
C-dで戻って
$ id -a
uid=1000(hogehoge) gid=1000(hogehoge) groups=1000(hogehoge),111(fuse),122(kvm),123(libvirt)
sudoできなくなったことを確認
$ sudo apt-get update
[sudo] password for hogehoge: 
hogehoge は sudoers ファイル内にありません。この事象は記録・報告されます。
以上。


[1] Ubuntuがデフォルトで使っていたからという理由が一番大きそうだが
[2] ちゃんと活用できれば、の話だが

2013-10-20

ibusではなくfcitxを使う

(2014/06/21更新)
このエントリの内容ですが今やると一部思い通りにならないので、新しくエントリ書きました。参考になれば幸いです。
LMDE UP8(MATE)での日本語入力にfcitxを使う

概要
ここ最近ではデスクトップLinux上の日本語入力にibusとmozc(Google日本語入力のオープンソースプロダクト)を組み合わせて使っていましたが、ibusの1.5に伴う仕様変更がどうもインパクトが超大きい[1]みたいなので、とりあえずibusの代替としてfcitxを使ってみます。環境はDebian GNU/Linuxのtesting(かつLMDE)。

手順
# apt-get install fcitx fcitx-mozc
(20140222更新  im-configがインストールされていない場合はim-configパッケージをインストールしておく。)
# im-config -c
20140222追加 # apt-get install  fcitx-config-gtk fcitx-config-gtk2 fcitx-frontend-gtk2 fcitx-frontend-gtk3 mozc-utils-gui

Xを抜けてログインし直す。
設定→Fcitx設定を選ぶ。
mozcがあるはず。
オンオフのキーに最初Ctrl+SpaceのUNIXでおなじみの組み合わせが指定されていますが、私の場合Eclipseの補完とかぶるので全角半角にしました(結果的に2つ全角半角を指定していることになっていますが)
mozcの設定はGNOMEタスクトレイのキーボードアイコンを右クリック→Mozcツール→設定ツールから。
元々設定した値がそのまま設定されていました。手順は以上。

参考サイト
Fcitxのテストのお願い - いくやの斬鉄日記 http://blog.goo.ne.jp/ikunya/e/a5c2a00e25564c61d322c4c73b7a81da
Debian -- sid の fcitx パッケージに関する詳細 http://packages.debian.org/ja/sid/fcitx

追記(2013/11/06)
Fcitxを使い始めて1週間ほど経つものの、万全ではない感は感じている。
というのは、一旦Fcitxが起動してMozcに切り替われば何の問題もないのだけど、結構な頻度で「Mozcって表示されるけど日本語入力ができない」状態に陥っていて、手元で試す限りでは原因も(確実な)回避策も見つかっていない。設定が関係している可能性もあるし。

このエントリの前半で記載したように、Fcitxへの切り替えに「半角/全角」キーを使っているのだけど、その時に「Mozc」と表示されるけど英字入力のままになってしまうけど、何回か試すとMozcで処理できるようになっている時があるので、そうなるまで「半角/全角」キーを何回も押して試すという残念な回避方法でしのいでいる。
一旦Mozcに移れば基本的には問題ないので、できるだけこれを保てるように、Mozcで英字を打っておいてF10キーで半角英数に変換するというこちらも残念なワークアラウンド。

追記(2013/11/17)
どうもターミナルから起動したアプリでFcitxが起動できなくて若干困り中。
気休めにQtでの設定をしてみる。
# apt-get install qt4-qtconfig
qtconfigで起動したQt設定ツールの「インターフェース」タブからデフォルトのインプットメソッドを「fcitx」に設定する。これでQtのアプリでもFcitxが使える・・・ようになるのかなぁ。

そいでもって、GTK側のアプリは環境変数GTK_IM_MODULEの値を見ているようで、自分とこの環境だと~/.bashrcに書いてあったので、他とまとめて

export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx

と変更。

[1] キーボードの配列とIMが紐付けられてしまって変更できなくなった。英語配列のキーボードだとmozc使えないらしい。

2013-07-18

そういう人達である、と認識することと、受け流すこと

いくつかの国の人と触れ合ったので
先日、ガイアの夜明け[1]で、外国人観光客を受け入れるという趣の放送をしていた。
ものすごく大雑把にまとめると、

  • 大阪に外国人観光客を誘致する活動の一環として、シンガポールのTV局に番組を作ってもらったり、マレーシアに売り込みに行ったり。古い町並みが残る地域を台湾の女性が旅したり。
  • 富士山の御殿場口が人気ないので、砂駆け下りとかで何とかしよう。
  • 鳥取の境港を大きな客船が寄港できるように整備したので売り込もう。

くらいの内容だった。
我々日本人は、悲しいかな外国人慣れしていない民族であることは間違いないので、普段触れ合う人達はみな日本で生まれ育ち、日本語で会話をする。これが日常。異文化と接することが少ない。
ただ、外貨を得る為の手段として、観光は非常に有効な手段であり、そう思う理由もたくさんある。

  • アジアのライジング・サンと呼ばれ、短期間で経済発展を遂げた
  • 国土が南北に長く、四季がある
  • 独自文化がまだ色濃く残っている

ライジング・サンはフィリピンに行った時に本当によく言われた。個人的にはライジングはもう終わって日没に入っていると思うので意外だったのだが。
北海道は北欧並の雪質でスノーリゾートが楽しめる(オーストラリア人に人気のニセコがいい例)し、沖縄は温暖。林檎が美味しい。桜も咲く。
茶道や芸者など、日本固有の文化もある。音楽とかのポップカルチャーは日本以外では成立し得ないのではないか。

仕事で海外から来る人を除けば、わざわざ物価の高い日本に来てまで旅行者が期待するのは「日本でないと体験できないこと(日本らしさ)」なので、このあたりを自覚してビジネスに繋げられれば観光立国も夢ではないのかもしれないと思う。

ただ、それを武器にするにはこれらのストロングポイントを知ってもらうことがまず第一。そのあたりの経験の無さが普段日本人としか接しない我々の弱点だと思う。基本的に相手は日本の場所すら知らないくらいの認識で行かないとビジネスにはならないし相手の満足にも程遠い。おもてなしゼロ。

ここからが本題

先に挙げた台湾女性客は大阪のレトロな町並みを楽しんで、女性向け雑貨屋で化粧筆?か何かを買って満足していった。一方で、境港に客船で寄港した韓国人観光客は、セルフでどんぶり飯の上に具材を盛り付けて食べる海鮮丼を日本語の説明しか受けなかったからわからなかったと帰国後にクレームを付けた。
ここに国民性が出ている。韓国人は常に自分たちが良いサービスを受けられると思っているし、そうされなかったら何しても問題ないと思っている。簡単に言うと、常に「何か不都合があったらとりあえず自分たち以外が悪い」マインドなんである。評価する機会があったら必ず最低の評価を付ける。
確かに、ご飯の上に自分たちで盛り付けるところの写真も無いし、もちろん韓国語メニューもあるはずがない。
このお店では、クレーム(英語のclaimではなくてcomplainだったんだと思う)を受けたことで、盛り付ける写真と韓国語の説明を準備するようになった(ようだ)。これは失敗を繰り返さないという意味で大事なこと。[2]
日本軍がひどい植民地支配をしていたにも関わらず東南アジアの国から尊敬される理由の一つが「改良を継続すること」。不都合があったら修正するのは当たり前。だけどもそれを絶えず続ける事は難しい。だけど我々日本人はそれを常日頃から習慣にしていて苦手な事ではない。このレストランの対応は日本人にできるやり方を表していて、大事なことだと感じた。

また、大事なことは、外国人の国民性を理解して、真に受けないように受け流すこと。地球上の全ての人が日本人と同じ教育を受けて、育ってきた訳ではない事を覚えておくこと。

ちなみに、知り合いの韓国人は(議会が総理大臣を指名する)総理大臣制を知らなかった(大統領制しか知らなかった)。戦後すぐの日本が食べるものもなく、社会が不安定な時代があった事も知らなかった。もちろん全員が隣国の事をそこまで知らない事はないけど、現実としてそれも国民性。そういう人達なんだという事を理解して、深く考えないことがビジネスをしていく上で一番大事。

[1] http://www.tv-tokyo.co.jp/gaia/backnumber3/preview_20130716.html
[2] 歴史を勉強するのは失敗を繰り返さない為。だから間違った歴史を教えないことが重要。間違った歴史を教えると、そこから生まれる歪を誤魔化すために不整合が止まらなくなる。

2013-07-08

IPv4の色々なアドレスについて(覚書)

もうグローバルアドレスとしては在庫がなくなっているIPv4ですが、いくつかある特殊なアドレスが今どうなっているか確認したので覚書。

IPv4のPrivate Address
RFC1918 Address Allocation for Private Internets[1]
  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
IPv4のISP Shared Address(LSN用)
RFC6598 ISP Shared Address[2]
  •  100.64.0.0/10
IPv4のLink Local Address
RFC6890 Special-Purpose IP Address Registries[3]
  • 169.254.0.0/16

他にも色々な定義がRFC6890にある。

[1] http://tools.ietf.org/html/rfc1918
[2] http://tools.ietf.org/html/rfc6598
[3] http://tools.ietf.org/html/rfc6890