2016年8月22日

大電力ラジオ放送の終焉

新年早々どうやって東京の拠点にて直接波のラジオ放送を受信するかということについて考えていたが、結局結論としては「何もアンテナを建てずに済ませる」のが一番良さそうだという話に落ちついてしまった。

その昔今は亡き関根慶太郎先生の最後のご著書であろうと思われる「無線通信の基礎知識」(ISBN-13: 9784789813464)にて予想されていたのが、「大電力大規模アンテナの無線通信は廃れ、小電力と小規模な到達範囲の無線局を多数置局する方向へ世の中が向かう」ということだったと記憶している。これを読んだ数年前はあまりその実感はなかったのだが、最近の世の中の情勢を見るに、もう大電力ラジオ放送は、少なくとも日本の都会では機能しなくなりつつあるのではないかという結論に至った。(この記事での話はいずれテレビ放送にも適用できると思うが、必要帯域や電力レベルを考えると、テレビでは技術的制約はずっと厳しくなるだろうと予想できる。)

以下に理由を箇条書きで書いておく。

  • ラジオ受信機とスマートフォンとの間の価格差は縮小している。家庭内にWiFi+定額インターネット回線が整備されつつあることを考えると、スマートフォンでインターネットラジオを聞くこととラジオ受信機で直接ラジオを聞くこととの差は縮小しつつある。
  • 移動中であっても、日本では3G/LTEの回線が整備されている地域であれば、ユニキャストのインターネットラジオでも基地局間のハンドオーバーが機能している限り中断はまずない。東京や大阪の地下鉄の中の状況を考えれば、むしろラジオ直接放送よりもアクセス範囲は広いくらいである。
  • 中波放送を電波で聞くのは、家屋内あるいは屋外の雑音(インバータやスイッチング電源の普遍的使用、特に最近は太陽光発電、LED電灯などの大電力パワーデバイスによる使用)を考えるに、ますます困難になりつつある。非常時あるいは停電時を除けば、その機能はインターネットラジオ(日本ではNHKのらじる☆らじると民放のRadiko)で十分補完されつつある。
  • FM放送を電波で聞くのは中波放送に比べればずっとノイズ耐性は高いが、これについても非常時あるいは停電時を除けば、その機能はCATVのFM放送中継、あるいはインターネットラジオで十分補完されつつある。(オーディオマニアの直接波受信指向については例外的な趣味として判断すべきであろう。)

平時の大電力ラジオ放送は以下の技術で置換されるだろう。

  • インターネットラジオ
  • CATVによるFM放送中継(あるいは地デジのデータ放送を使ったAMラジオの中継)
  • 3G/LTEあるいはそれ以降の携帯電話網

パラダイムシフトがあるとすれば、「大規模かつ広範囲なカバー範囲を提供する独立した無線局」から「小規模かつ小電力な狹いカバー範囲を提供する無線局が多数ネットワーク接続された複合体」への移行であろう。この環境では「マルチキャストあるいはブロードキャスト」とユニキャストのコストの違いはあまり意識されない(技術的にどのような負荷がかかるかとは独立した問題である)。この移行はまだ完了していないとはいえ、すでに起こっており進んでいることと予想できる。 このような移行によって失われるものがあるとしたら、それは以下の一点に要約されるであろう。

  • 単なる受信機では放送は受信できなくなったため、各端末に必要なエネルギー量が大きく増えている。携帯網あるいは無線LANに接続される端末は本質的に送受信機である。

この状況下で、大規模ラジオ放送の役割とは何なのか、今一度考えてみる必要があると思う。

(初出: Facebookの自分のタイムラインより 2016年1月3日)

2016年8月18日

祝「プログラミングElixir」刊行

このたび,Programming Elixir 1.2の日本語版がオーム社より「プログラミングElixir」として刊行される。この本は2nd editionであり、すでに3rd editionであるProgramming Elixir 1.3のプロジェクトが進行中だが、それでも日本語で初の本格的なElixir並行プログラミングシステムの書籍が出版されるのは大変喜ばしいことである。著者のDave Thomas、翻訳者の笹田さんと鳥井さん、編集者の方々、レビュアーの方々、そしてその他関係者の方々の努力に深く敬意を表したい。私もErlang/OTPに関わってきた者として、微力ながらレビュアーとして参加することができた。

以下は、「プログラミングElixir」発刊にあたっての、個人的なポエムである。

この本の「推薦のことば」にも書いたのだが、Dave ThomasがErlang Factory SF Bay 2014に現れたとき、「なんでRubyの人がErlangに関係あるのか」が、正直いってよくわからなかったのは当時の率直な実感だった。この時の彼とJosé Valimが共同して行ったプレゼンテーションは、"Catalyze Change"、つまり「変化を触媒となって加速しよう」というものだった。内容は、Erlangを読み慣れていない入門者にとって、Erlangのエコシステム全体がいかにわかりにくいかというのを徹底して糺弾するという、Erlang/OTPのファンにとってはかなり耳の痛い内容で、現場の空気は少なからず殺伐とした感じになったことを覚えている。そこでは、Erlangの文法のわかりにくさ、レコードの使いにくさ、マニュアルの読みにくさが強調された。これらの傾向は2016年の今でも直ったとはいえないだろう。Erlangのいわばドス黒い部分である。もちろんこの悪条件を越えている人達はいっぱいいるし、私もそれほどは気にならないが、多くのErlangを勉強しようとした人達を敬遠させる原因になったことは否定できないだろう。そういう意味でDave Thomasがやったのは、かなりキツいプレゼンだった。「Erlang/OTPにはこんなに未来があるのに、なんでこんな状況を放っておくんだ」というDave Thomasの不満は相当なものだったと思う。

しかし、Dave Thomasはそこで終わるような人ではなかった。なにしろThe Pragmatic Programmerという本を書き、Pragmatic Bookshelfを作った人である。彼はErlang/OTPに持っていた不満について、おそらくElixirに救いを見出したのだと私は思っている。そして彼はElixirを普及させる本を自分で書いてしまった。それがProgramming Elixirという本だった。かつてRubyに対して熱心だったDave Thomasは、今度はその情熱をElixirに向けたのだと私は思っている。残念ながらRubyに関する本は私はほとんど読めていないのだが、Pragmatic Bookshelfのラインアップを見ても、そのことは証明されているだろうと思う。なにしろMetaprogramming Elixirなんていう、Elixirのマクロを知らないと読めないような本、そしてPhoenixフレームワークのProgramming Phoenixという解説書まで出版させているのだから。こんなElixirに対してマニアックな人が他にいるだろうか?

Elixirが有名になってきた過程で、Erlang/OTPの側にいた人達は、かなり当惑していたように思う。ElixirにはErlang/OTPにない要素がたくさん詰まっている。そういう意味で私はまだElixirはほとんど使えていない。たぶん死ぬまで使えるようにはならないだろう。それくらいElixirは奥が深い。Erlang/OTPも2008年からつき合っているが、おそらく死ぬまでまともに使えるようにはならないだろう。どちらも奥が深すぎる。並行プログラミングシステムは、人類にはまだ早いのかもしれない。そんなことを思いながら、少ない時間の中で何度も実験を繰り返し、失敗し続けているのが現状だ。でもErlang/OTP単独ではできないことがElixirでできる。そのことは確かだ。だからElixirを支持しようと思った。その判断は間違っていなかったと思う。なにしろElixir、Erlang、どちらのコミュニティも小さすぎる。仲違いしている余裕なんかない。誰がErlang/OTPを維持し続けるのかということを考えたら、ElixirをきっかけにErlang VMを使うようになった人達を、仲間として歓迎こそすれ、絶対に敵にしてはいけない。今のところ、そういう判断でコミュニティは上手く回っているように私は思っている。共存共栄である。幸い、Erlang/OTPのプログラマの多くは、自分達のツールをElixirにも対応させている。

残念ながら未だにDave Thomas本人と個人的に話をしたことはない。しかし、Elixirを引っ張ってきた設計者でありErlang/OTPの辣腕プログラマでもあるJosé Valim、Phoenixフレームワークの作者Chris McCord、hex.pmパッケージマネージャの作者Eric Meadows-Jönsson、今はErlang/Elixirから離れているように見えるがビルドツールkerlを作りElixirの初期の普及に尽力したYurii Rashkovskii(この4人は皆若い!)、そして私同様のオッサンではあるがElixirの普及に力を注いできたBruce Tateなど、多くの強者達と話をし、彼等の作品に触れた経験で考える限り、ElixirはErlangが作ってきたエコシステムの可能性を大きく広げたことは間違いないと私は確信している。そのことをずっと前から見抜いていたDave Thomasについては、さすがとしかいいようがない。

「プログラミングElixir」は、どちらかといえばProgramming Erlang(第2版)(日本語版は「プログラミングErlang」(第1版の翻訳))同様、リファレンスではなく、最初から最後まで読んで手を動かしていくことで、プログラミングシステムの基本が身についていくようになっている本である。中にErlangのコードはほとんど出てこない。やっぱりErlangはDave Thomasには嫌われているのかもしれない(笑)。でも、OTPという単語は出てくる。だからOTPは知らないとこの本はわからないかもしれない。ということは、Elixirのマニュアル同様、Erlang/OTPのマニュアルを読まないと結局はいけなくなるのだろうと思う。Elixirは多くのElixirで書かれたモジュールを持っているが、実際はErlang/OTPのモジュールにも多くの機能を依存しているからだ。そういう意味で、この本を読んで先に進むには、Erlang/OTPの本が必要かもしれない。幸い、オーム社からは「すごいErlangゆかいに学ぼう!」(このblogで紹介した記事へのリンク)という本が2014年に出ている。両方読んでみることを、ぜひお勧めしたい。

これを機に日本でもElixirErlangに触れる人達がますます増えることを願っている。

2016年8月17日

個人事業ブログとの統合のお知らせ

個人事業ブログはTumblrで動かしていたのだが、米国Yahoo!の買収やセキュリティ攻撃などもあってTumblrの先行きが不安定なこと、そして個人としての自分は事業をやっている時とそうでない時と特に人格が変わっていないこと(変わったら大変だ…)など、諸々の理由により、個人事業のブログ(現在はblog.rikitake.jpで書いている)をこちらに統合することにした。blog.rikitake.jpからのリダイレクト先を変えれば済む話なので、運用上はそれほど大きな問題にはならないだろう。

なお、移行の際は記事数が少ないため、投稿日時を可能な限り保存しつつ手で移行する予定である。そのため、古いURLは消えてしまうが、そんなに記事数が多くないため深刻な問題にはならないだろうと予想している。 このblogの文体は基本的に「である調」だが、それ以外は今までの個人事業ブログと内容を変えることはないであろう。まあいわば事業報告をこちらのblogでもやっていくことになる。