2011年12月26日月曜日

Androidアプリ「牛トレーサー(ぎゅうとれーさー)」 1.3.0 リリース

A3 Together賞をもらってしまいました、拙作Androidアプリ「牛トレーサー(ぎゅうとれーさー)」でございますが、バージョン 1.3.0 を先ほどリリースいたしました。

今回の修正はバグフィックスが主な内容でございます。変更点は以下の通りです。

  • 「死亡牛の譲渡先」情報が含まれる場合にアプリケーションがクラッシュしていた問題を修正
  • 「死亡牛の譲渡先」情報が含まれる場合にその内容を移動記録に反映させるようにした
  • SPECIAL THANKS に A3 TOGETHER についての情報を掲載した

「死亡牛の譲渡先」情報は一部の個体にのみ記録されている情報ですが、その情報があった場合にアプリケーションがクラッシュしてしまうという問題を抱えておりました。不具合を修正するとともに、「死亡牛の譲渡先」情報が記録されている場合には譲渡先の情報(氏名または名称,所在地)を追加で表示させるようにいたしました。

一時期にくらべて牛肉についての不安は大分解消されてきているように感じられますが、引き続きご活用くだされば幸いです。

不具合報告が相次ぐ富士通東芝製のREGZAフォンシリーズのユーザを不必要に揶揄することについて

富士通東芝製のREGZAフォンシリーズの不具合の報告が相次いでいます。ちょっと書きだしてみると


といった事例があるようです(今回はすべて ITMedia さんの記事から書き出しました)。

このような端末を手にされた方で期待を裏切られた方は正直非常に気の毒に思えますし、メーカー側の主張も「仕様」だということで逃げを打っている状況が垣間見えます。実際のところでは「仕様を決めるための設計がお粗末だった」ということになるのでしょうけれども、それを認めてしまうと見栄や体裁やメンツを失ってしまうので、そういったことはやりたくないというのが本音なのでしょう。

具体的な根拠を持ちあわせているわけではありませんけれども、今回の件はうわべだけの体裁やメンツなどを最優先させ本当に必要なことが後回しにされた例の一つになりそうな予感がします(往々にしてメンツを守る代わりにマーケットシェアを失うことになるのですが)。

さて、今回問題にしたいのは問題のある端末自体のことではなくて製品の欠陥を必要以上に揶揄する昨今の風潮です。REGZAフォンの場合は誰がはじめに言い出したのかはわかりませんが「アアアッ」というセリフとともにREGZAフォンユーザーを揶揄する言動をあちこちで見ることができます。

従来から、特に家庭用ゲーム機では 2ch などを中心にメーカーの代理戦争としか思えないような貶めあいが続いていますが、Androidスマートフォンの場合アプリケーション開発者や将来的に開発をしようと考えている人はこういった「メシウマ(他人の不幸で今日も飯がうまい)」的な揶揄は控えるべきだと思います。

少し考えるとわかることなのですが、不運にして問題のある端末を手にしたユーザであっても開発したアプリの顧客になりえる可能性があるわけで、自分の顧客になる可能性を無視して不必要に揶揄するということは、アプリ開発をしていないか、開発者としてのマインドを欠いているかではないかと考えられます。逆の言い方をすると、この手の揶揄をしている人たちはあくまで「単なる消費者」でしかなくエキスパートではない人だと自ら告白しているような気がしてなりません。

もちろん欠陥のある製品をリリースし、その欠陥を「仕様」と言いはるのは非常にマズい状況であることに変わりはありません。東芝がテレビ製品の代名詞として育ててきた「REGZA」ブランドに泥をぬることをやめるために一層の努力と自省を関係者の方々に促したいところです。

2011年12月24日土曜日

Solaris 11 のカーネルソースコードが Bittorrent に流出

先週末の話になりますが、オープンソースOSからプロプライエタリOSに華麗な転身を遂げた Oracle(Sun) の最新OS Solaris 11 のカーネルソースコードが Bittorrent に流出したようです。

流出が発覚したのは、 Phoronix のフォーラムに投稿された書き込みで、Google で "solaris11.tar.bz2" と検索すると 100MB ほどのファイルがヒットし、その内容はカーネルのソースコード(いわいる onnv 相当)だったということのようです。これを受けて投稿されたフォーラムを運営する Phoronixこのような記事を起こしSoftpedia も追従して記事を書く状況となりました。

この状況について現在は第一報が投稿されたフォーラムOpenIndiana-Discuss ML で活発な議論が展開されています。流出したソースコードは TRUNKID が 175, zpool のバージョンが 33 だということで確かに先日リリースされた Solaris 11 でのバージョンと一致します。

今回の流出が何を意味するのかを推し量るのかは非常に難しい部分があるのですが、ただひとつ言えることがあるとするならばそれは 「Oracle 公式のソース配布ではない」ということだと思います。単に内部の人間がソースコードを持ちだして Bittorrent に流したのか、IllumosOpenIndiana といった派生プロジェクトを牽制するためにあえて流出させたのか疑いだすとキリがない状況です。

変に近づかないほうがいい毒饅頭が放たれたということなのかもしれません。

2011年12月22日木曜日

(続報) Ubuntu 11.10 "Oneiric Ocelot" での sun-java6-jdk パッケージについて

全くもって面倒なことになりました。

何がというと Japanese Team からもアナウンスと解説が ML にポストされた Oracle(Sun) 由来の JDK に関する問題です。

sun-java6-jdk に関する話題はこの Blog でも Oneiric Ocelot (11.10) にからめて取り上げましたけれども、過去の Ubuntu においても直面することになりました。さらに悪いことに partner レポジトリや LffL Java PPA で配布されてきた最終版はセキュリティ上の問題があるということで、本格的に対処する必要が出てきました。

ML での解説では OpenJDK もしくは Oracle JDK を本家からダウンロードしたものを導入するという 2つの選択肢が示されていますが、Oracle JDK を前提とした開発を行わなければならないシーンがまだまだ存在するのも事実です。

そういったわけで、前回の記事の続きという位置づけで、Oracle JDK の導入方法について書いてみたいと思います。

Oracle JDK 配布ファイルの入手


まずは Oracle のサイトから JDK を入手します。Java SE Downloads のサイトから Java SE 6 Update 30 ( Update バージョンは今後も更新される可能性があるので適宜読み替えてください ) の JDK Download リンクとたどります。

そして、 Oracle Binary Code License Agreement for Java SE に同意した上でファイルをダウンロードします。 Ubuntu の場合パッケージ管理は .deb 形式ですので、 i386 アーキテクチャでは jdk-6u30-linux-i586.bin 、amd64 アーキテクチャでは  jdk-6u30-linux-x64.bin をダウンロードすることとなります(バージョンが変わるとファイル名も変わりますが適宜読み替えてください)。

JDK の展開


次にダウンロードしたものを展開します。従来であれば /usr/lib/jvm/ 以下に展開すべきところなのですが、このようなひどい仕打ちをするものを /usr 以下に入れるのはちょっとはばかられるので、/opt 行きにしたいと思います。 /opt 以下は /opt/(パッケージ名) もしくは /opt/(LANANAプロバイダ名) といった風にディレクトリを作成することになっていますが、LANANAプロバイダのリストには Sun は登録されていますが、Oracle は登録されていないという状況なので、/opt/jvm を使うことにしたいと思います。とりあえずディレクトリを作成しておきます。

# mkdir -p /opt/jvm

そして、先ほどダウンロードした配布ファイルを展開します。配布ファイルは自己展開することを前提に作られているようなので、chmod +x で実行できるようにして -noregister オプションをつけて実行します。

余談ですが、 -noregister をつけずに実行すると現状では Oracle にこういった情報が登録されるようです。この辺のポリシーについては今後も変更されうることを念頭に入れながら、 -noregister オプションをつけ忘れることも考えて一旦展開は一般ユーザで実施し、その後しかるべき場所にコピーするくらいの慎重さがあっても良いような気がします。

i386アーキテクチャの場合:
$ cd /path/to/download (ダウンロードしたディレクトリに移動)
$ chmod +x jdk-6u30-linux-i586.bin

$ ./jdk-6u30-linux-i586.bin -noregister

Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
   creating: jdk1.6.0_30/
   creating: jdk1.6.0_30/jre/
   creating: jdk1.6.0_30/jre/bin/
  inflating: jdk1.6.0_30/jre/bin/java

... (途中略) ...

Creating jdk1.6.0_30/lib/tools.jar
Creating jdk1.6.0_30/jre/lib/ext/localedata.jar
Creating jdk1.6.0_30/jre/lib/plugin.jar
Creating jdk1.6.0_30/jre/lib/javaws.jar
Creating jdk1.6.0_30/jre/lib/deploy.jar
Done.

$

amd64アーキテクチャの場合:
$ cd /path/to/download (ダウンロードしたディレクトリに移動)
$ chmod +x jdk-6u30-linux-x64.bin

$ ./jdk-6u30-linux-x64.bin
... (以下メッセージ省略) ...

展開が終わったら /opt/jvm に JDK のファイル群をコピーします。また、コピー元のファイルは不要なので消しておきます。

# cp -r /path/to/download/jdk1.6.0_30 /opt/jvm/
$ rm -r /path/to/download/jdk1.6.0_30
i386アーキテクチャの場合:
$ rm /path/to/jdk-6u30-linux-i586.bin
amd64アーキテクチャの場合:
$ rm /path/to/jdk-6u30-linux-x64.bin

なお、展開されるディレクトリはアーキテクチャによらず jdk.1.6.0_30 となっているようです。また、間違ったアーキテクチャの配布ファイルを展開しようとするとエラーになります。

インストールした JDK を使えるようにする


従来は update-alternative コマンドで使用する各種コマンドを切り替えるということをやってきたわけで、その気になれば Oracle JDK についても同じように設定することが可能ではあるのですが、もはや「Ubuntuの外のモノ」として扱わざるをえない状況になりましたので、使いたいユーザがそれぞれ設定をするということにとどめることにしたいと思います。

基本的に JAVA_HOME 環境変数と PATH を適切に設定すれば使えることになっているので、ホームディレクトリの .profile に

11 # if running bash
12 if [ -n "$BASH_VERSION" ]; then
13     # include .bashrc if it exists
14     if [ -f "$HOME/.bashrc" ]; then
15         . "$HOME/.bashrc"
16     fi
17 fi
18
19 JAVA_HOME=/opt/jvm/jdk1.6.0_30
20 for binpath in jre/bin bin ; do
21     if [ -d "$JAVA_HOME/$binpath" ] ; then
22         PATH="$JAVA_HOME/$binpath:$PATH"
23     fi
24 done
25
26 # set PATH so it includes user's private bin if it exists
27 if [ -d "$HOME/bin" ] ; then
28     PATH="$HOME/bin:$PATH"
29 fi

といった具合に書いておくとよいかと思います(この例では19~24行目に記述を挿入しました)。
ログインしなおすか

$ . ~/.profile

として設定を再読み込みさせた上で

$ which java
/opt/jvm/jdk1.6.0_30/bin/java
$ java -version
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) Client VM (build 20.5-b03, mixed mode)

と表示されるようになれば作業完了です。

あとは必要に応じてOracle JDK を必要とするユーザに同じような設定を行います。

古い sun-java6 パッケージの削除


最新の Oracle JDK への移行が一段落ついた段階で、古い(そしてセキュリティ上問題のある)sun-java6 パッケージ群を削除します。MLでの解説にもありますがパッケージは

$ dpkg -l '*sun-java6*'

コマンドで調べることができますので、それぞれ

# apt-get purge sun-java-6-jdk

などといったようにして削除します。また、前回紹介しました LffL Java PPA でインストールした場合には、

# add-apt-repository --remove ppa:ferramroberto/java

でレポジトリを削除することができます(がちょっとバグがあって deb-src ラインが削除されなかったりもしますがその辺は現状で必要に応じて対応して下さい)。

ちょっと苦言言わせてください


開発元が買収され方針が変わったということは理解できるのですが、このように各方面に大きな影響を与えうるビジネスやライセンス上の変更を予告などをすることなしに実施してしまうという体質は正直ほめられたものではないと思います。

ベンダーにはベンダーの考え方というものがあるのでしょうけれども将来自分たちの首をしめることにならないように自制の効いた運用をして欲しいと切に願います。Java に限った話ではないのですが、エンジニアの反感を買うようなことは何も生み出さないと思います。

2011年12月16日金曜日

Android の日本語入力環境が今アツい

ここにきて、Android の日本語入力環境がアツい状況となっています。

まずは Android 黎明期から提供されてきた人気日本語入力ソフトの Simeji が Baidu に買収されるというニュースが飛び込んできました。成功した製品や会社が買収されることはよくあることなのですが、Simeji の場合は Adamrocker 氏とデザイナーの 矢野りん 氏による開発ということで、「個人を買収」という形となり驚かされるニュースとなりました。

その一方で、Google は 「Android版 Google日本語入力 Beta」 を 12月15日にリリースし Android Market にて公開しました。こちらはベータ版という位置づけながらも Android 2.1 以降の端末で動作し、PC版のGoogle日本語入力で話題になった、よく検索される言葉についての変換機構もできるだけ取り入れているという意欲的な日本語入力IMEです。

この「Android版 Google日本語入力 Beta」 で、日本語入力IMEの勢力地図が大きく変わることは間違いないのですが、これでようやく日本での Android 環境が一段したように感じられる、大きな大きなステップになったのではないかと思います。

Simeji は役目を終えたように思う方も中にはいるかと思いますが、個人的にはこれで Simeji 自身が主張している「変なIME」の変さ加減を加速することができることになったのではないかと思います。現状で Simeji にしか実装されていないフィーチャーとしては

  • ハードウェアキーボードのサポート
  • Android 1.x ( 1.5 の場合は Simeji Classic ) での動作
  • いわいる「野良アプリ」としても配布されているので、Android Market を搭載していないデバイスにもインストールが容易だ
といったところがあげられると思います。これからも Simeji 、Google日本語入力 共に目が離せない状況となっていくのではないでしょうか。

2011年12月15日木曜日

Ubuntu Magazine Japan Vol.6 発売

2010年8月31日の Vol.5 を最後に、しばらく刊行されていなかった Ubuntu Magazine Japan ですが、 1年3か月ぶりに待望の最新刊 Vol.6 が発売されました。

「vol.06は12月10日土曜日発売です!」 ~ Ubuntu Magazine Japan

もちろん私も早々にゲットしたわけですが、1年以上も開いてしまうともう「何もかもが懐かしい」としかいいようがない状態でして、ホント復活してよかったというのが第一感です ( Ubuntu 道場 でちょっとした舞台裏が明かされています ) 。

内容としても、技術的なバランス的には Ubuntu Japanese Team 監修ということで、非常に安定して安心して読める上に瀬尾先生( Twitter @seotch ) の「うぶんちゅ」や表紙グラビアをはじめとしたエンターティメント要素も満載。週間アスキー風のテイストもあり、「ぺぐぅ(殴打音とともに省略されました)。 」の定番名セリフや、ユーザ名・グループ名共に「hartman」な鬼軍曹も登場するなど、ネタというかサービス精神にあふれている仕上がりなのが特筆すべきところだと思います。

個人的に Japanese Team の方々とは twitter やオープンソースカンファレンスでお話することがあるのですが、本当にみなさん気さくな方で(多少の誇張はあるものの) Ubuntu 道場 や Ubuntu Magazine そのままのキャラクターでメディア向けにわざわざキャラクターを作っているわけではないというのも他には見られない特色なのではないかと思います。

ということで、気になった方はぜひ「過去の本誌掲載記事」に掲載されているPDFファイルをチェックして( Vol.6 が発行されたのをうけて、Vol.5 の記事が公開されました)グッとくるものを感じたならば書店で手に取ってみては良いのではと思います。

あ、こんなことを書いている私ですが Ubuntu はひいきにして使っていますが、現在までのところ Ubuntu 道場や Ubuntu Magazine に登場しているわけではないので、そのあたりよろしくお願いします( ことあるごとに「くろまくー」氏から道場登場や執筆ねたで「時間の問題」などと脅されてはおりますが(笑) )。

2011年11月28日月曜日

Ubuntu 11.10 "Oneiric Ocelot" での sun-java6-jdk パッケージのインストール

【重要】 その後状況が変わり、LffL Java PPA や従来の sun-java6 パッケージ群を使用することは推奨できない状況となりました。開発環境として Oracle JDK を維持しないといけない方へ導入記事をこちらに書きましたので、そちらをご覧ください(2011/12/22 追記)。


先日、「第21回 日本Androidの会 東北支部発信会」で GDD 2011 の参加報告ということで喋ってきたのですが、懇親会で「Ubuntu を普段づかいにしてるのって珍しいね」と言われてちょっとヘコんでいる今日この頃です。

さて、Ubuntu 11.10 "Oneiric Ocelot" を新規にセットアップする際にハマりがちになるのは実は Java6 JDK 環境だったりします。というのは Ubuntu 11.10 になって sun-java6-jdk パッケージが partner レポジトリから削除され、 「partner レポジトリを有効にする」という従来の方法ではインストールすることができなくなったためです。アップグレードインストールで 11.10 環境を作った場合にはすでにインストールされている sun-java6-jdk パッケージが維持されているので見落としがちになるのですが、新規に環境を作る時にハマってしまうポイントです。

どうしてこういうことになったのかというと、他でもなくライセンスの都合ということになるのですが、特に Android 開発では Java6 JDK がないとはじまらない部分があるのでなんとかしたいところです。現状は
  • OpenJDK ( 6 もしくは 7 ) を使う
  • Oracle から公式のパッケージをダウンロードしてそれを使う
  • LffL Java PPA を利用する
という 3 つの選択肢があります。どれがいいのかという議論になるのですが、Android 開発をすることを念頭に入れると、互換性の問題を踏むと厄介そうだというのと、公式のパッケージを使った場合には /usr/lib/jvm 以下に正しくファイルを配置しないといけないということから、 LffL Java PPA を使ってみたいと思います。

PPA という仕組みを使ってインストールすることになるので、前もって

# apt-get install python-software-properties

として、add-apt-repository コマンドをインストールして、 LffL Java PPA の登録を行います。

# add-apt-repository ppa:ferramroberto/java
You are about to add the following PPA to your system:
 LffL Java
 PPA esclusivo per l'ultima versione disponibile di JAVA

PPA for the latest version of JAVA

PPA fur die neueste Version von JAVA

PPA para la ultima version de JAVA

PPA pour la derniere version de JAVA


by LffL http://www.lffl.org

 More info: https://launchpad.net/~ferramroberto/+archive/java
Press [ENTER] to continue or ctrl-c to cancel adding it

(確認のためにここで止まりますので、ENTER キーを押して先に進みます)
(やめる時には Ctrl+C で add-apt-repository コマンドを停止させます)

Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.cQGIjhdptt --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80/ --recv 3E756CF119B127D4DA40A186B725097B3ACC3965
gpg: requesting key 3ACC3965 from hkp server keyserver.ubuntu.com
gpg: key 3ACC3965: public key "Launchpad lffl" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

PPA の登録が済んだら、apt-get update, apt-get install コマンドでインストールします。

# apt-get update
...
# apt-get install sun-java6-jdk sun-java6-plugin
...

インストールが終わったら

$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

として、バージョンを確認しておくと良いでしょう。またすでに OpenJDK 環境をインストールしている場合には、update-alternatives コマンドで切り替えておくとよいと思います。

2011年11月24日木曜日

「グーグルの72時間」がPDFファイルで無料公開

Impress Japan さんより、12/8 に発売される予定の「IT時代の震災と核被害」の冒頭部分、「グーグルの72時間」の部分の PDF ファイルが無料で公開されています。

内容としては、震災が起きたその前後のリアルなドキュメントや、恐るべき早さでリリースされたパーソンファインダーとその舞台裏やエンジニア達の試行錯誤や葛藤といったことが非常にいきいきと描かれています。

いまや誰もがその名前を知っているであろう Google ですが、中で奮闘しているエンジニアの生の働きぶりや情熱といったものはなかなか外部に知らされる機会はありません。あの震災とその混乱の裏でこれだけの情熱とそれを支える体制が迅速にとられたということが、これだけの成果をあげることができた要因だったのではないでしょうか。
「いくら若いメンバーでも、何日も極度の緊張をしいられる状態が続くと、相当に参ってきます。そのときみんなを踏んばらせたのは三浦です。災害現場では最初の72時間を過ぎると生存率が下がることは、みんなも頭ではわかっている。しかし、神戸の震災を経験している彼がいうと、リアリティが違います。ほかにも阪神大震災の経験者がいて、彼らの声に励まされ、とにかく必死でがんばることができました」
私の当時の状況を振り返ると、幸い電気や水道などのライフラインは無事だったものの、物流が完全に麻痺し、 次第にサバイバル的な状況となる中、目前の状況への対応に追われていたように思います。極限状態でどのようなパフォーマンスを発揮できるのかがその人や組織の真価だといわれることがよくありますが、もっとも優秀だとされるエンジニア集団がどう動いたのかということについて非常に参考となりました。

ただひとつ非常に気にかかるのは、本来こういった公共的な機能を果たすべき行政機関について
一方、災害時にもっとも重要かつ信頼できる第一次情報を発すべき政府と行政は、安否情報システムひとつをとっても、十分な機能を果たせなかった。原発や核被害に関する第一次情報についても同様である。私企業にまかせておくだけでいいのか、という点については、市民であるわれわれもまた、社会の一員として再考しなければならない。
 と厳しい評価を下さざるをえない状況があるということだと思います。賞までいただいてしまいました「牛トレーサー」の件や、福島をはじめとしたガイガーカウンター自作ムーブメント、様々なボランティアプロジェクトなど震災以降色々な人がそれぞれのリソースを持ち寄って身を切って復興を目指しているという状況やその情熱を、未来に活かせていけるような社会になればとささやかに思うのでした。

Google Wave が本当に終了してしまうようです

昨年サービス終了がアナウンスされ、先日の GDD 2011 Japan の Ignite の時のトークでも
最近の Google の場合、サービスが停止することよりもサービスが終了することのほうが多いですよね。Wave とか。
と、引き合いに出されてしまっていた Google Wave ですが、本当に終了してしまうようです。

Wave を使っているユーザに対して送信されたメールやこちらのページによると、

  • 2012/1/31 にサービスが読取専用になり
  • 2012/4/30 にサービスがオフラインになり終了する
というスケジュールがアナウンスされました。そしてサービスが終了するまでに必要なデータを保存しておくように呼びかけています。

なお、引き続き Wave を使いたい場合には Apache WaveWorkaround のオープンソースプロジェクトが利用可能であること、また Workaround を使う場合には、 Google Wave からのデータ移行機能が実験的な機能として実装されているので来年 4/30 までの間は利用することができる旨についても触れられています。

一年以上前からアナウンスされてきたことではありますが、話題を呼んだサービスが終了するのはちょっと寂しい感じがします。

2011年11月11日金曜日

Google Developer Day 2011 Japan に参加してきました

Google Developer Day 2011 Japan に参加してまいりました。

このイベントに参加するのは昨年に引き続き 2 回目となりますが、今回は例の「牛トレーサー」を書いていたことから、優先枠申請をしたところ思惑どおり参加権をゲットすることができました。とはいえ、DevQuiz にも参加 してしっかりボーダーラインをクリアした上で参加しました。

なお、公式のハイライト動画が Youtube で公開されたようですので、どのような雰囲気であったのかを感じとってもらえればと思います。



ちなみに動画の中盤で、会場エントランスの隣に設置されたボードに "age++;" と書いている場面がありますが、実は当日誕生日だったということもあり、帰りがけにネタとして書き残したものをハイライト動画で拾っていただいた格好になります。ちなみにボードには
あなたが書いた自慢のコードは何ですか? GDD 会場に刻みつけよう!
Which is the most ninja code you've ever written?
と書いてあり実際に難解プログラミング言語での Quine などかなりマニアックなコードが書いてあったわけですが、書き残したタイミングやボードの中での場所が良かったのかもしれません。



また、夕方の Ignite の時間には「Google ダンス部によるパフォーマンス」がありましたが、出演者のクレジットが「GDD48」と、とうとうGoogleもご乱心かと見せかけて実のところ須藤元気率いるパフォーマンスユニット「WORLD ORDER」のコラボレーションという非常にクールなアトラクションとなりました。

( 11/15 追記: Google Japan Developer Relations Blog にて、今回の "GDD48" ダンスパフォーマンスについての Blog 記事が掲載されました。 )


さらに、ささやかなおみやげ( zeemote のBluetooth接続のジョイスティック ) や缶バッチのトレーディングなどいろいろな仕掛けがあり、楽しく、また当然のことながら非常にためになるイベントでありました。特に感銘をうけたのが、今回のテーマというべきもので、基調講演の最後に示された3つの事柄です。

  • 「なにごともエンジニアありき」
  • 「百聞は一デモに如かず」
  • 「日本で『イケる』と思ったら、世界のみんなも同感するかも」

まさにこの通りで、プロダクトマネジメントディレクターの徳生氏がハイライト動画で語っている通り、デベロッパーとしての誇りを持つことの大切さをあらためて感じさせられました。次回、また同じようなイベントがある際には、スピーカーとして参加できるようなそういったデベロッパーになりたいと思わせられる、そういうイベントでした。参加された皆さん、運営に携わった皆さん本当にお疲れさまでした。

2011年11月7日月曜日

ミログの「AppLogSDK終了」アナウンスについて


A3 TogetherGoogle Developers Day 2011 Japan 参加で激しく周回遅れ状態となってしまいましたが、先日取り上げました 「AppLogSDK」 について、全サービス終了のアナウンスが10/27に発表されました。

このサービスについては種々な問題点が指摘され、10/10にサービスを停止していたにもかかわらず、「10/26に『今後の展開に関する重大発表』を行う」としていましたが、結局のところサービス終了ということになりました。

サービスの終了は状況を見る限りでは妥当な判断のように思えるのですが、CEO の Tweet を見ると若干その趣が違うように感じられます。

というのは、サービス終了を告知したのにも関わらず、あたかも新規事業を立ち上げるかのごとく、終了告知用のドメインをわざわざ新たに取得し、さらに「3分アンケート」への協力を呼び掛けていることです( あえてこのblogエントリの画像では URL 部分をマスクしています )。

この点については感情的な感想が各方面で述べられているようでしたが、実は狙いは明確で「AppLogSDKの終了」イベントで世間を注目を浴びたことを、SEOのための商材に使おうということなのだろうと思います。実際には取得されないであろうドメインを取得し、そこにサービス終了のアナウンスを掲載し被リンクや一時的なページビューを稼ぎ、SEOビジネスの切り札に使おうということなのでしょう。

正直ミログが「AppLogSDK」についてどれだけ真摯に取り組んでいたのかは知る由もありませんが、ある程度問題点が指摘されニュース露出が増えてきた段階で、このプランは用意されていたのではないかと思います。Don't be evil というわけではありませんが、このようなことを打ち出してくるところについては相応の対応をすべきなのではないかと感じたのでございました。


A3 Together 「決勝プレゼン&表彰式」に行ってきました

もう一週間が過ぎてしまった話題で恐縮なのですが、先日報告いたしました、日経BPさん主催のA3 Together の「決勝プレゼン&表彰式」に参加してまいりました( 最終結果, 日経BPさんのプレスリリース )。結果としては順当に「アプリ/Webサービス賞」という結果でございました。

今回の A3 Together では「アプリ/Webサービス賞」と「アイディア賞」の受賞者に 5分間のプレゼンが課せられ、その内容も加味された上でこの2部門の大賞が決定されるということで、単なるセレモニーということではなく、当事者としてはかなり緊迫するイベントでございました。

さらに、表彰式の数日前に同社が発行している「スティーブ・ジョブズ 驚異のプレゼン―人々を惹きつける18の法則 (AA)」が送られ、リハーサルの際に、同書の解説を担当された外村氏によるプレゼンレッスンを実施することが知らされたので、大慌てで同書をチェックし、プレゼンを作り、そして当日午前中には実際にレッスンを受けてアドバイスやダメ出しを頂き、再度プレゼンを練り直すという非常に有意義だけどハードな状況に追い込まれていました( 実際はリハーサル・プレゼンレッスンは前日の午後から行われていたのですが、仕事の関係から当日入りしたのも状況がハードになった一因かもしれません )。

結果ある程度のところまでざっくり贅肉を削ぎ落とし、あとはなるようにしかならないということで、失うものは何もない開き直りテイストなプレゼンを行いました。この模様は公式の UStream チャネルで配信されました。プレゼンの部分だけのハイライト動画および個人的に別建てで録画した Youtube 動画をはりつけておきますので、興味のあるかたはご覧いただければと思います( もちろんプレゼンの内容は同じなので両方視聴する意味はあまりありません )。

A3 Together 「牛トレーサー」プレゼンテーション ( 公式 UStream 録画 )


A3 Together 「牛トレーサー」プレゼンテーション ( 個人で録画した Youtube 動画 )


プレゼンのレッスンを受けるというのは本当に貴重な体験で(もちろんその後に本番がありますから、もちろん真剣勝負です)、書籍のエッセンス的な部分を実体験することができ、とても勉強になりました。

「牛トレーサー」は賞を取ることを意識して応募したわけではなかったのですが、このような評価をいただいて非常に光栄でございました。また多くの受賞者の方やメーカーの方コミュニティの方とお話することができたのは大きな収穫でした。

A3 Together は「震災復興」がテーマではありましたが「次のアプリケーション」も準備していきたいと思いますので、これからもご声援・応援よろしくお願いします。

2011年10月17日月曜日

A3 Together "アプリ/Webサービス賞" に「牛トレーサー」がノミネートされる!

以前この blog でも告知させていただきましたことがあります、拙作 Android アプリ「牛トレーサー」ですが、日経BP ITPro さん主催の「A3 Together」で "アプリ/Webサービス賞" にノミネートされました( 受賞作品一覧, ITPro Expo 2011 での発表を伝える記事 )。まずは陰に陽に応援してくださいました皆様に御礼申し上げます。

正直このアプリはコンテストに出展するために書いたものではなく、逆にアプリの宣伝の一環としてエントリーさせていただいたような形で、賞に入ることは期待せずに、審査に関わった方に触れていただくことのみを期待してエントリーしたもので存外の評価を頂いてちょっと恐縮しております。開発した私の方針としては「時事ネタの単発アプリだけど、やるからにはマジメに取り組もう」という方針で作ったものでございました。

もちろん消費者の方が汚染された食品を口にすることも、放射線による過剰反応で農家の方が風評被害に苦しむことも、どちらも悲しいことなのでそういったことを防ぐ助けになればという思いで作ったものでございました。

今後の日程でございますが、来る 10/29 に仙台で A3 Together の発表会・表彰式が予定されており、"アプリ/Webサービス賞"の大賞をかけ(?)て 5分間のプレゼンを行う予定です。この模様は UStream.tv の A3チャンネルでも配信されるということなので、ご覧になってくだされば幸いです。


Ubuntu 11.10 "Oneiric Ocelot" リリース

今、最も人気があると言っていい Linux のディストリビューション Ubuntu の最新版 "Oneiric Ocelot" が先週 10/13 にリリースされました (いきなり脱線しますが、"Oneiric Ocelot" は「夢見がちなオセロット」と翻訳されることが多いですが個人的に「夢見るオセロット」を推していきたい気がします) 。また、一歩進んだ日本語環境を提供する「日本語 Remix CD」も 10/16 にリリースされました。

Ubuntu 11.10 リリース ( Ubuntu Japanese Team )

Ubuntu 11.10 日本語リリースノート ( ubuntu wiki )

Ubuntu 11.10 Desktop 日本語 Remix CD リリース ( Ubuntu Japanese Team )

リリースの大まかな雰囲気としては、リリース日に公開された Ubuntu 道場が、より突っ込んだ内容についてはリリースノートが大いに参考になると思います。特に Ubuntu Japanese Team の皆さんが言っている通り、リリースノートは必読です。リリースノート翻訳はかなり修羅場だったそうなのでそういった面も含めて是非読んでください。

行っとけ! Ubuntu道場! - 第49回 ~師範、Ubuntu 11.10について教えてください!~ ( ascii.jp )

私もこの週末に以前この blog でもとりあげた「さくらのVPS512」や自宅のマシン等にインストールやアップグレードを行ってみました。道場の記事やリリースノートを読む限りにおいては、ブラッシュアップが主な内容だということですが、/var/run が /run へ、 /var/lock が /run/lock へ移行したことによる影響がアップグレードインストールを行った際に出る場合があるようです。リリースノートには Ubuntu AppArmor と VMWare に焦点があてられていますが、これ以外にもこれらのディレクトリの移行に失敗し影響が出るケースがあるようです。実際に遭遇する現象としては、アップグレード後の起動時に
Waiting for network configuration...
Waiting up to 60 more seconds for network configuration...
という表示がなされたままログインプロンプトやログイン画面が表示されないという状況になります。これらについてはそれぞれ


incomplete migration to /run (shutdown script order has been demolished)

Boot hangs at "Booting system without full network configuration..."

Unable to connect to the system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: Connection refused (oneiric)

[oneiric] Keyboard & mouse not working in X - incomplete migration to /run

で議論されているところですが、対処方法としては、[ctrl]+[alt]+[F1~F6] でコンソールを切り替えたり rescue mode などでログインし、 /var/run と /var/lock を手動で移行するという方法があるようです。Ubuntu 11.04 までの標準構成ではこれらについては tmpfs で mount されていますので、
# mv /var/run /var/run.bak
# ln -s /run /var/run
# mv /var/lock /var/lock.bak
# ln -s /run/lock /var/lock
として、/var/run や /var/lock については /run および /run/lock へのシンボリックリンクを作成する必要があるようです (もちろん問題がないことが確認できたら、 /var/run.bak や /var/lock.bak は必要ありませんので削除できます) 。 /run や /run/lock への移行が完全であればこのシンボリックリンクは必要ないように思われますが、この辺はまだまだ完全に整備されているわけではなく、シンボリックリンクがないとやはり起動しませんので注意が必要です。

また、このような移行を行ってもなお問題が解決されないケースがあり、/etc/network/interface の記述をそれぞれコメントアウトしつつトラブルシュートしたりする必要があるようです。

今回の /run および /run/lock への移行は Linux FHS ( Filesystem Hierarchy Standard ) 3.0 Draft 1 への準拠による問題なので、これは Ubuntu に限らず遅かれ早かれ多くの Linux ディストリビューションで問題になりそうな感があります。

ということで、今回の Ubuntu 11.10 へアップグレードする際には道場の記事の中でも出てきましたが
編集S:まとめると、「自信があるならバックアップ取ってからアップグレードするといいよ」「自信がなければ1ヵ月ぐらい様子を見て、問題が出尽くしたあたりでチャレンジ」かな?
ということに尽きそうな気がします。新規インストールではなくアップグレードする際には今回はいつにも増して「バックアップ推奨」したいところです。サーバ用途に使っているのであれば検証用の環境を用意してそこで練習するくらいが丁度良いと思います。

2011年10月12日水曜日

「ミログ」に関わる一連の騒動について思うこと


Android スマートフォンでのアプリケーションのインストール情報や使用履歴を、無断で送信するということで「ミログ」の「app.tv」や行動ターゲティング広告を提供するとしている「AppLog」SDKが大きな問題となっています。

アプリケーションの振舞いとしては「app.tv」が、そして開発者を巻き込んでしまいつつあるという意味で「AppLog」SDKが問題になっており、どちらも利用者の許諾をきちんとした形で取っていないか無断で送信するという振る舞いがあることが問題の核心です。

私自身、Android のアプリ開発者としてデベロッパー登録をしていますし、アプリケーションも Android マーケット経由でリリースしており、また当然 1 ユーザでもあるのでこの問題は注目せざるをえない事柄です。折しも日本Androidの会の定例会で渦中のミログCEOが登壇し、UStream にて配信され、その録画が公開されているということなので、視聴してみました。


Video streaming by Ustream

このプレゼン動画を見て、仮に技術的な部分が理解できなくとも皆さんがどう感じたかという部分が一連の問題の核心であるのですが(非常に失礼な言い方ですが私には「ネットワークビジネスのできそこないプレゼン」のように見えました)、私の感覚では
  • ユーザの立場に立てば、ずさんな許諾のとりかたをしている点で問題外
  • 開発者の立場に立てば、これを採用することによって信用を失ってしまうので問題外
だというのが率直な印象です。ユーザの立場に立った際の問題点についてはすでに多くの方がさまざまなサイトで検証されているので触れませんが、開発者として見た場合でも、「AppLog」SDKはとても採用できないところがあるので、書いてみたいと思います。

「マルウェアを配布してしまう」ということ


まず大きな問題にしなければならないのが、このSDKを使うことでユーザさんの端末を「マルウェア端末」にしてしまう可能性が強いということです。プレゼン動画の中ではしきりに「バッテリの消費が...」という言葉が繰り返されていましたが、バッテリどころのさわぎではなくマルウェア端末にしてしまうというのは大きな問題です。

Android アプリケーションを開発して Android マーケットで公開し、それなりに使ってもらおうと努力した経験のある方は少なくないかと思いますが、インストールして使ってもらうというのはそれが無料アプリであっても大変なことで、こういう経験を通じて「アプリ開発者の『顧客』はユーザさんだ」ということを実感するわけですが、苦労してアピールして使ってもらえたユーザさんの信頼をいっぺんに崩してしまうだけの破壊力を持ったものがこの「AppLog」SDKだといわざるを得ない側面があります。

このような事例は実は今初めて起こったことではなくて、Windows の「オンラインソフトウェア」界隈でも、無料で提供されるソフトウェアに「JWord」というスパイウェアが同梱され多くのユーザを悩ますことがありましたが、「AppLog」SDKを使うことは「JWord」を同梱することかそれ以上にユーザの顰蹙を買い、開発者の信頼を失墜させるようなものであるということができると思います。

「ミログ」という会社の経済的信用


さらに非常に穿った見方かもしれませんが、「ミログ」という会社にどこまで経済的信用をおけるかということも重要な視点かと思います。

この「AppLog」SDKではどのような形態になっているのかはサインアップしていない私は分かりませんが、開発者が得る報酬は一定額に達するまで出金できないか手数料で損をしてしまうというのが世の常です。そして未出金の報酬は開発者にとっては債権ということになりますが、この債権には当然のことながら発行元の「ミログ」の信用リスクが存在します。また多くの開発者が参加したとすると最低出金額以下のものについては退蔵されたままサービスが終了してしまうという可能性も考えなければなりません。ちょっと古い記事ですが、Techcrunch に

[jp]ミログが3.1億円をオプト、リクルートから調達、あわせてAndroid向けリワード広告への参入も
(http://jp.techcrunch.com)

という記事が掲載されていますが、これを読む限りでは「開発者の金庫番」としては「ミログ」はいささか役不足なのがおわかりいただけるでしょう。

実際のところ私はアプリ内広告には AdMob ( 2009年に Google が買収 ) を使っていますが、元締めだけあって「ミログ」とは経済的、倫理的な部分双方で安定感が違うように思います。

ユーザコミュニティに頼らず皆さん自身が判断を


一方、一部 Twitter 方面では今回の日本Androidの会の定例会に「ミログ」CEOに登壇させたことについて是非の声が上がっていますが、実際「日本Androidの会」は「Androidに興味を持つ人が集まるユーザーコミュニティ」という目的の団体ではありますが、かなり「ゆるい」つながりをもつコミュニティで、今回のような事態に対して「公式な見解」を出すような仕組みはありません。入会にお金が必要なわけでも血判状に押印するわけでもない単なるコミュニティにすぎませんので、是は是、非は非でそれぞれの事柄について開発者やユーザそれぞれの立場で判断してもらうしかない部分があります。

私の個人的な意見では、今回の件で Android 全体が脆弱なプラットホームだと認識されるのは心苦しいものがある一方で、このような「邪悪」なものが早期に排除される現状はある意味健全な部分があるのではないかと思います。なによりこういったモノに加担してしまった開発者が淘汰され、えげつないことをやるライバルが減るというのは正直非常に好ましく感じます。

ある意味今回の騒動は、健全なアプリが正当な評価を得るようになるための試練のように思います。

2011年10月11日火曜日

Google Code Jam Japan 2011 結果ご報告

今年はじめて日本を対象に計画されたものの、今回の震災で延期されていました、Google のプログラミングコンテストの Google Code Jam Japan 2011 ですが、この 10/1 に予選ラウンド、10/8 に決勝ラウンドが開催されました(スケジュール, 参加登録開始だけが2月と早かったのは震災で延期されたためです)。

Code Jam については以前参戦したことをblogで取り上げたこともあり、機会があったら挑戦しようと思っていたコンテストでした。実は今年の wordwide 大会についても参加登録して予選は通過することができたのですが、ラウンド1の日程がOSC仙台とかぶってまともに問題を読むことすらできずに敗退していたということもありました。


結果としては決勝で上の画像の通り 157位という成績となり、上位 200 位に入り Google Code Jam Japan 2011 Tシャツ獲得できたようです。とはいえ、予選でのパフォーマンスもあまり芳しくない状況で、まだまだ反省すべきところがたくさんあったように思います。

そんなこんなで七転八倒していたさなかに、「プログラマ35歳(32歳?)定年説」やら「FizzBuzzができない人」ネタ(双方あえてリンクしません)が Twitter 関連で噴出しててちょっと呆れてしまっていました。

それで、ちょっと考えてみたのですが FizzBuzz が書けないことに危機感を微塵も感じない底辺「PG」(あえてこう書かさせていただきます。しかも全角英文字で)として業務をしているのであれば確かに 35歳で引退すべきなのではないかという妄想を考えてみました。

どういう妄想をしたのかというと、比較のためにIT業界と同じ頭脳労働でしかも非常に厳しいとされる職種として、将棋の棋士と比較してみたのです。

将棋の棋士というのは、プロになると基本的に「順位戦」の「C級2組」に所属して、1年間かけてリーグ戦を戦い上位者は上の階級に、下位者は下の階級に落とされるか「降級点」がつけられ、最上位の「A級」の優勝者が「名人挑戦者」となる仕組みになっています(詳細の規定はこちら。他の棋戦もありますがばっさり省略しています)。

将棋棋士の引退については「順位戦」の「C級2組」で「降級点」を3つ取ってしまうと、「フリークラス」に降級し、「フリークラス」から10年間の間に規定の成績を収めて「C級2組」に昇級しないと引退となってしまうというシステムです。

ストレートに大学を卒業して企業に就職する年齢である 22歳を起点にして、同じ年齢でプロ棋士になったと仮定して、そこから成果を挙げられず毎年「降級点」を取ってしまったと考えると、 25歳で「フリークラス」に降級、復帰できずに10年経過すると 35歳で引退という計算になり、 「プログラマ35歳定年説」に符号する部分があるように思えます。

もちろん将棋の世界では戦績があれば生涯現役を続けることができますし、上位のクラスに昇級したり棋戦で優勝したりタイトルを獲得できればそれに応じて収入も高くなるという特質がありますが、いわいる「PG」職の場合ではあくまで頭数、人月での計算だけでその中での能力についてはまったく考慮されません(むしろ最も無能なメンバーに作業のやり方が合わせられるケースがあるので、高いスキルはそのままスポイルされるケースが多いかと思います。またスキルを発揮しても「これだけの人月見てるのだから」と煙たがられるパターンもあるかと思います)。

将棋でいうならば毎年「降級点」を取ってしまう内容の業務にしか従事できないという悲劇がおこり、 結果として最短の年数での引退を余儀なくされてしまうというそういう構造がもしかしたらあるような気がします。

さらに問題なのが、「35歳で引退したPGがその後何をするのか」ということで、ありがちなのが「SE」職(これもあえてこういう表記します)や管理職なのですが、結局のところ最低限の素養すら持とうとしない人が別の部署に移動するだけでその系(=企業やグループ)全体の能力が上がるわけではないので、また同じ過ちを繰り返してしまうということに繋がりそうです。

Code Jam のようなコンテストに参加していつも考えさせられるのは、こういった難問に挑戦する姿勢や、実際に難問を解く能力をうまく生かし、能力のある人間がその能力に見合った収入を得られるような、そういう生き方はできないのだろうかということだったりします。そして、企業の中で発揮できないのであればその外で、私の場合にはまがりなりにも Tシャツを貰える程度の能力に見合うような成功体験を得て、それを次の世代に伝えていければと思うのでした。

有線ルーター BHR-4GRV レビュー

先日ブロードバンド優先ルーターの BHR-4GRV (AA) を買ってみましたが、なかなか紹介されてないところがあるので、レビューしてみたいと思います。

この機種はバッファローの有線ルーターラインナップの最上位機種として、この8月に発売された最新モデルです。下位の BBR-4HG (AA)などは家庭用のブロードバンドルータとして非常に高いコストパフォーマンスで話題になり、いまなお現行販売機種で量販店の店頭にも並べられている機種です。私は個人的に BHR-4RV (AA) を使っていて、その置き換えで購入した形になっていますが、値段も安く、かつ「遊べる」内容に仕上がっている感じがあります。

この機種は「リモートアクセスモデル」と位置づけられており、PPTPサーバ/PPTPクライアント機能が実装され、出先から自宅の環境に比較的簡単にVPN接続を行うことができるという特徴があります。

その一方で、この機種の非常にユニークな点はルータ本体に USB 端子がついていて、USB 接続のプリンタやスキャナを接続するとデバイスサーバに、またHDDなどのストレージを接続すると NAS や メディアサーバ、 BitTorrent クライアントとして使うことができる点にあります。ホームサーバを兼ね備えるルーターということで非常に意欲的な製品です。

実際にHDDをつないで、 BitTorrent クライアント機能を試してみたのですが、設定画面の中に「ダウンロードマネージャ」という画面があり、ここで torrent ファイルをアップロードしてダウンロード指示を出すという流れです。

この BitTorrent クライアント機能ですが、NATの内部から使用しようとすると、NATテーブルを大量に消費し、特にBBRシリーズの場合NATテーブルが枯渇してしまうという問題が出る場合があり( BBRシリーズが800, BHR-4RV が 2048, BHR-4GRV が 4096 とカタログに掲載されています )、CentOS などのようなDVDイメージの配布にBitTorrentを使う必要があるものをダウンロードするのに苦労することがありましたが、この機種ではNATテーブルの大きさ的にも、また BitTorrent クライアント機能的にもフォローされた形となっています。

ただし、PCとは違って処理速度が非力な部分が否めない部分があるので、複数のBitTorrentジョブを並行して実行するとルーターのレスポンスが遅くなってしまうという部分や、XFSでストレージをフォーマットする必要があるため、ルータから取り外したものをWindows が動いているPCにつなぎ変えて使用するといったことができない点はあらかじめ注意しておく必要があります。

メディアサーバやファイルサーバといった機能についても非常に素直に設定てきる部分があり、設定画面的にも同じバッファロー社の無線LAN製品のように見た目が工夫されていたり、価格的にも実売価格で 5,000 円程度と安くなってきていて、BBR シリーズとの価格差も縮まっているので、自宅ネットワークをより活用したいという方、いろいろな Linux ディストリビューションを試してみたい方、実家とのVPN接続を試してみたいという方は是非挑戦してみてはいかがでしょうか。

2011年9月27日火曜日

【ネタ】 Gentoo 宗教論 【フィクション】

Twitter やカンファレンスなどで構っていただいております、GentooJP の @matsuu さんが、QAサイトの Routy にステキな「自作自演」質問を掲げておりました。
Gentooは宗教ですか?
最近TwitterのタイムラインでGentooというのをよくみかけるのですが、Gentooって何なんでしょうか?ペンギンですか?宗教ですか?
個人的にかなりツボに入ってしまったので、トンデモライター風に回答を書いてみました。


今の時代を考古学として研究している研究者風の設定でトンデモ言説をちりばめつつ、それでも比較的真面目にネタ回答文書を書いてみました。

あくまでフィクションではありますが、無駄に現在のこの界隈の事情なんかをそれっぽく織り込んでみましたので、お楽しみいただけば幸いです。

2011年9月25日日曜日

Solaris についての個人的な展望

なかなか方向性がみえてこない Solaris まわりでございますが、現地時間の 9/21 に Oracle の四半期決算についての記事が出ていました。記事はオリジナルが


で、日本語の翻訳記事が japan.internet.com に掲載されています。


この記事によると、この四半期は決算的は好調だったそうで、それはなりよりであったのですが、それ以上に興味をひかれるのはその中で引用された CEO の Larry Ellison の言葉です。
"I don't care if our commodity x86 business goes to zero,"

"We don't make any money selling those things. We have no interest in selling other people's IP, and commodity x86 includes Intel IP and Microsoft IP."
この中で出てくる "IP" というのは IPアドレスのことではなくて、知的財産権 ( Intellectual Property ) のことなのですが、知的財産権で ( Oracleが ) 利益が上げることができない分野で、もはやコモディティ ( 日用品 ) 化した x86 でのビジネスには興味ないということを言っています。

CEO である Larry Ellison がはっきりと "IP" という言葉を使ってこのような発言をしたということは大きな意味があって、Oracle としては知的財産権を囲い込めないところではビジネスをやらない( やりたくない ) こと、それこそオープンソースなど糞食らえだというのが本音なのではないかと思わざるを得ません。極端な見方をするならば「Oracle はオープンソースの敵だ」と公言したに等しい感があります。

思い起こせば旧 Sun の製品でコモディティ色のあるものやオープンソース化したものはそれぞれ波乱の時代を迎えています( OpenOffice.org は結局 Apache 財団に、Java では訴訟、Solaris はサーバ志向へ )。

OracleSolaris まわりの展望


そういった事情を踏まえて OracleSolaris がどうなるのかという展望を考えてみたいのですが、現在 OTN ライセンスでプレビュー版ともいえる Solaris 11 EA が提供されて ( 要OTNアカウント ) いますが、対応システムは x86-64 と M もしくは T シリーズの SPARC システムに絞られています。 32bit x86 については Solaris 11 Express からサポートされなくなりましたが、 あらためて Solaris 11 EA を見てみると /kernel 以下の 32bit バイナリが全部粛清されている状況です。

なるほど徹底しているなと感じてユーザランドを見てみると /usr/bin 以下などには相変わらず 32bit のバイナリがそれなりに存在します。

ソースツリーの中でどうなっているのかは憶測するよりほかないのですが、 /kernel 以下のディレクトリ構造が変わっているわけではないので、32bit バイナリが生成されないようにビルドシステムが変更されたのではないかと思います。 これは x86 アーキテクチャの中でもよりコモディティ化している 32bit システムについて戦略的にサポートを落としたということができます。

Solaris 11 EA を見る限りで推測すると、Solaris 11 はリリース当初において x86-64 はサポートされるようですが、中長期的に見た場合には x86-64 もサポートが切られSPARC システム専用になるか、専用のアプライアンスのみサポートするという形になるのではないかと思います。

コミュニティベース Solaris については?


このことはコミュニティベース Solaris にも間接的に影響することで、いわいる「リークメモ」ではOracle Solaris リリース後半年後を目安にソースを公開する方針が謳われていますが、そもそもソースが開示されるのか、開示されたとして SPARC 専用のものになるのではないのかという懸念が考えられます。またライセンス回りについても、Oracle がその気になれば Illumos も OpenIndiana も訴訟でつぶされる可能性を常にはらんでいます。また仮に CDDL ライセンスでパッチなどの貢献を行った場合には Oracle が自身の財産として無制限に使うことができてしまうという問題も生じます。

OpenIndiana ディストリビューションについても同じようなことが言うことができて、 OracleSolaris 互換を目指しているという目標のために、Oracle の動向に足を引っ張られるという事情があります。端的な例は Apache2 についての脆弱性のついての対応で、Bug Ticket が登録されているものの、その内実は
CVE-2011-3192 is a major security problem affecting Apache 2.2. Oracle may have packaged 2.2.21 in Userland or added patches, we should pull this in or update it ourselves.
という状況で登録されたままの状態になっています(脆弱性が報告されて何日経過しましたっけ?)。

「OpenSolaris」 という幻想


では、OpenSolaris とはなんだったのかという議論が生じるのですが、あえていえば

Sun が残した最後の花。しかしもうすでに枯れている

ということができるのではないでしょうか。よく言われる OpenSolaris の三要素「ディストリビューション」「コードベース」「コミュニティ」で見ても、「ディストリビューション」はすでに終了、コードベースについても Oracle が持っているものは公開どころか知的所有権として囲い込み、「コミュニティ」に至っては OGB 解散以降再編の動き無しということで、何ひとつ機能していないことになります。

見かけ上 Illumos/OpenIndiana を「OpenSolarisの後継」と位置づける見方もありますが、Oracle が知的所有権の囲い込みで収益をあげる施策をとるかぎり、Illumos/OpenIndiana が OracleSolaris 互換を維持するのは非常に難しいものになると思います。 結局のところ、これから Solaris を追いかけるということは、プロプライエタリ・ソフトウェアの OracleSolaris を追いかけるということにならざるを得ない状況です。端的に言えば

Solaris が Oracle によって closed にされた以上、 OpenSolaris という言葉は概念的にありえない

ということができましょう。Oracle が Sun 買収後に Solaris に対して起こした(そしてコミュニティを無視し続けた)行動はまさにこの Larry の言葉に集約されているといっても過言はないでしょう。私自身 LiveUSB Creator を書いたりしてそれなりにかかわってきましたが主が変わるとここまで変わってしまうという教訓をだったのかもしれません。

再掲しますが、
"I don't care if our commodity x86 business goes to zero,"
"We don't make any money selling those things. We have no interest in selling other people's IP, and commodity x86 includes Intel IP and Microsoft IP."
この言葉、Larry の ( そして Oracle の ) 本音なのではないでしょうか。国内にも "OpenSolaris" のユーザグループが存在しますが、そろそろ真面目に身の振り先を考えたほうがよいかもしれません(私のような「不良会員」が言うことではありませんが...) 。さもないと「OpenSolaris は Oracle の商標だけど、もう closed にしたからその名前使わないでくれ」とか言われそうな気がします。

2011年9月20日火曜日

SoftwareDesign 2011/10号 を買ってみました

なにやら非常にはっちゃけた FreeBSD の特集が組まれるということで、久々に SoftwareDesign 2011/10月号を買ってみました。

FreeBSD は自分が持っている計算機で最初に使った UNIX like OS で、バージョンで言うと 1.1 前後、まさに 4.3BSD Net/2 の訴訟ねたが進行しているあたりで使い始めました。 その後大体 3.x ~ 4.x あたりまで使っていたのですが、コミュニティの毒気に霹靂 ( 時代が違う話なのですが、この記事あたりが雰囲気として参考になると思います ) したのと、UNIX の本質に触れるのであれば Solaris であろうと考えて FreeBSD を使うのはやめた経緯がありました。

現在 Solaris を取り巻く状況は OpenSolaris の晩年期を頂点として、色々と残念な状況になっているのですがそれはそれとして、良い機会なので FreeBSD のその後の経過と最新動向を探ろうという意図で買ってみたのですが... やはり期待を裏切られるような内容でございました。

歴史語りが多すぎる


BSDそのものがこの業界の中で長い歴史を持っているという事実、そして雑誌のカラーとして読み物的なものにもウェイトを置いているという事情はありますが、それにしても歴史語りが多すぎたように思います。また歴史語りにしても 4.3BSD Net/2 の訴訟の経緯の部分で「FreeBSD が 4.4BSD-Lite 出自である」というミスリードを誘う(表題下の概要の部分には「最初は 4.4 BSD Liteをベースに 386 CPU 用に公開された FreeBSD は」と書かれちゃってたりします)プチごまかしをしていたり、FreeBSD を選択するメリットがすでに歴史的なトピックになっていて(イマドキ IEEE802.1Q をサポートしていないサーバOSなんてありませんよ?)それに筆者が気づいていないか勉強を怠っているということがありそうだと感じました。

特集記事間の連携がうまくいっていない


これは執筆者間の打合せかもしくは編集者のチェック不足のどちらかだと思うのですが、内容的に歴史語りとなってしまった記事がかぶってしまった部分や、FreeBSDの 派生OSとして PC-BSD を紹介したその直後のインストール記事で、インストーラーとして PC-BSD を使って解説をしているところがマズい部分としてあげられるのではないかと思います。インストール記事では ZFS Root の兼ね合いでと断り書きがしてありますが、結果的にインストール記事の説明の中で ZFS Root が必須の要素には思えない構成だった以上、中途半端に混乱を招く内容だったように思います。

また、インストーラーということでいえば小飼氏の放言コラム ( コラムにすらなっていないように感じましたがそれはさておいて ) で Ubuntu の GUI インストーラーを写真まで載せたうえで「華がないほうがいい」とこきおろしていましたが、その主張とインストール記事での紹介が矛盾してしまっているというマズさもあります。もちろん Ubuntu には GUI インストーラーだけではなく Alternate CD によるテキストインストーラーも用意されていますし、Server Edition であれば、最小構成でのインストールも可能です。これは比較対象のものについてろくに調べもせずに単にケチをつけているといわれても仕方がない部分があるのではと感じさせられる内容に思いました。

一般誌で「まど☆マギ」ネタを展開することの是非


「まど☆マギ」というのは今年1~3月に非常に話題になったアニメ作品「魔法少女まどかマギカ」のことで、作品としては非常に素晴らしいものであり、一時期は秋葉原やこの手の勉強会やカンファレンスで繰り返し使われたネタであるのですが、それを全国の書店に並ぶアニメとは関係のない一般雑誌で展開することについては是非が問われそうに思えます。実際

[女性が参加しやすいITイベントの作り方 1/2] わたしたちが勉強会に行かない7つの理由

という記事が書かれる程度には嫌悪する人もいますし、なにより元ネタを知らなくても十二分に理解でき、楽しめるような程度に抑えるべきだったのではないかと考えています。実際この作品の魅力としてストーリの核心部分についての暗喩のうまさが光っていたことがあげられるのですが、そういった要素をさしおいて、ネタ全開で特集組むのは時期的なものを考えたとしても非常にリスクが高いように思います。さきほど挙げた小飼氏は 9月号の書籍おすすめ企画でもこのネタを展開したようですが、同氏が今回の特集の仕掛け人だったとしたならば一般雑誌に寄稿することの意味をもう一度考え直してほしいと思います。

事実上国内のコミュニティが存在しないOSに新しいユーザを呼び込めるのか


こんな感じで、若干統一感に欠けるといわざるをえない特集でしたが、仮にこれをキャッチアップするコミュニティがあれば FreeBSD の今後の展開につなぐことができることもできそうに思いますが、実際のところ事実上国内のコミュニティが存在しない ( http://www.jp.freebsd.org/ はありますが、開店休業状態ですよね? ) 状況で、どれだけ新ユーザに訴えかけることができたのかというのは非常に疑問に思います。雑誌に特集として取り上げられるというのは大きなチャンスであることは間違いないのですが、そのチャンスが無駄にならないことを願いたいところです。

今号全般を通じて


久々にこの雑誌を買ってみた立場でこのようなことを言うのは心苦しいのですが、この雑誌の広告出稿がこのご時世のせいなのか非常に少ないのが気がかりです。今月号は特集のインパクトでそれなりに部数が出るような気がしますが、その後どう維持していくのかということは雑誌として大きな課題になると思います。誌面後半の連載の部分については小粒で光る記事が少なからずあるので、メインディッシュとなる特集記事の内容でしっかり読者の心をつかむ誌面づくりを期待したいところです。

2011年9月16日金曜日

Vim の日本の統合コミュニティ vim-jp って?

UNIX/Linux 環境でのエディタにはもっぱら vi やその眷族を使っていて、それこそ毎日使っている私ですが、ちょっと思うところがあって @kaoriya さんの Windows 版の Vim7.3(+kaoriya) をダウンロードしに行ったら、何やら「お詫び」なる文章が掲載されておりました。

私自身 vi 系のエディタを常用するようになって随分時間がたってしまっていますが、正直何に対して「お詫び」するに至っているのか話が見えない状況です。裏を返せば私が vi 系のコミュニティ活動にはほとんど関わりを持ってこなかったことを、さらにその背後には道具としてそれなりに完成されてコモディティ化されたものだということもできるような気がします。

確かに、ソフトウェアとして見た場合には vim 系で国内で使われているものを見ても jvim3, jvim5, vim7 の各OS版、GUI/CUI版、 Wnn や cannna のサポート有無など非常に多岐にわたっていますし、他の vi クローンも合わせて考えるとそれこそ派生ソフトの数は膨大なものになります。そのそれぞれが時代や背景を背負ってこの世に生まれてきたものですから、無碍にコミュニティを統合してリソースを集中する必要はそれほど多くはないような気がします。

もちろんポータル的な「あのサイト見ればOK」みたいなものがあればベターではあるのですが、最低限の最大公約数的な、すなわちオリジナルの vi についてのガイド的なものが各々の環境で利用できればそれで十分な気がします。書籍や良い先人がきっと皆さんの近くにいるでしょうから、その方々に教えを乞うようなスタイルが望ましい気がします。 ( え、周りに vi 使いがいない? そんな組織飛びだしちまいなっ! )

中のコードや翻訳等の問題についてはそれぞれの個々のソフトの中の問題ですから、所詮なるようにしかならん気がします。とはいえ、せっかくコミュニティが立ち上がるというのですから、興味がある方は vim-jp をチェックしてみてはいかがでしょうか。

2011年9月13日火曜日

GDD2011 DevQuiz に挑戦してみました

昨年秋に参加した Google の開発者向けイベントの Google Developer Day ですが、今年も参加しようと思い立ちました。このイベントでは事前登録だけではなくコミュニティ活動やアプリケーション開発、コーディング能力が問われるという「何かを持っている」人でないと参加できないというイベントです。

今年は「牛トレーサー」を公開したこともあるので、「優先参加枠」に申し込んでみたところ、首尾よく当選し早々と参加を決めたのですが、せっかくなので DevQuiz のほうにも挑戦してみました。

結果としては、130.16/150.00点ということで「優先参加枠」がなかったとしても参加できる位置にこぎつけることができました。

今回の問題構成は、四択問題が5問の「ウォームアップクイズ」、5問中2問以上選択 ( 無駄に全部解いてしまいましたが ) の「分野別クイズ」、
より難易度の高い「チャレンジクイズ」の三部構成でした。

「優先枠当選」と満点のグランドスラム状態を夢見てたのですが、結果からするとまだまだ精進すべきところがあったというのが率直なところです。


今年は全般的に去年よりも問題の難易度が多少上がり、その代わりに分野選択やウォームアップクイズの獲得点数とスコア分布が1日1回開示される形で制度的なところで救済策が用意された形でした。

DevQuiz 終了後のスコア分布は右の画像のような感じとなり、私は上位 300 程度のところに食い込むことができましたが、その一方でボーダーライン付近では100点台の参加者が積み上がり激戦区となる状況になりました。9/10, 9/11 の週末にボーダーラインに追われて必死に点数の上積みを試みた方も結構いたのではないかと思います。

今回の DevQuiz で特徴が出たのは分野別クイズの部分で、参加者のバックグランドによっては得手不得手が出たのかなと感じています。 Web Game は Chrome の Extension を使うことを強く意識されていたり、Go や Androidは今回をきっかけにということだと環境作るまでが一大事だったり( Android はいろいろ裏ワザがあったようですが... )と、Google の旬のテクノロジにどれだけ触れていたのかということも地味に問われたように思います。

とはいえ、全般的に今回も去年同様非常に有意義で、楽しく苦しめられたように思います。

なお、実際の DevQuiz 問題へのアプローチなどについては余裕やリクエストがありましたら取り上げたいと思います。

2011年9月5日月曜日

Apache の脆弱性、対策しましたか?


先月末に Web サーバ として広く使われている Apache の既存のすべてのバージョンにおいて、深刻な脆弱性をかかえていることが明らかになりました。攻撃を行うための手法はすでに広く流通しており、手元の環境でも検証することができるくらいになっています。

最悪なシチュエーションの妄想


この脆弱性を突かれると Web サーバを沈黙させることができるという状況で Web サイト運営側とすると大きな脅威となっています。最悪のシナリオを考えてみると
  1. 政治問題などで某隣国を刺激してしまう
  2. 日本国内のWebサイトを攻撃する呼びかけが広まる
  3. 自動攻撃ツールに今回の脆弱性への攻撃手法が盛り込まれる
  4. 実際に攻撃が行われ国内の多くのサイトが沈黙してしまう
ということが起こりえる状況です。少なくとも対策が一巡するまでは隣国を刺激して欲しくない(笑)のですが、この blog では「さくらのVPS」でのサーバ構築ノウハウをとりあげたことがありますので、こういった状況が発生したときに、どういった対応をとればいいのかということを書いておきたいと思います。( Web サーバについてはマニアックに lighttpd を紹介しましたが、それは聞かないお約束です)

信頼できる情報を入手し行動しよう


まず何よりも大切なのは信頼できる情報を入手するということです。「blogでヤバいって書いてあるから」 とか 「Twitter で勧められたから」という理由で行動を起こすのは非常に愚かな行為であるといえます。今回の件での情報源としてあげることができるのは JPCERT/CC の


かと思います。JPCERT/CCの注意喚起についてはアナウンス用のメーリングリストでも公表されるので、これを機会に購読しておくのも良いかと思います。実際の対策については
The Apache Software Foundation から本脆弱性を修正した Apache HTTP
Server 2.2.20 が公開されています。また、一部のディストリビュータなどか
らも修正済みプログラムが提供されています。十分なテストを実施の上、修正
済みプログラムを適用することをお勧めします。
と書かれている通り、更新された新しいバージョンのものにアップデートすれば良いということが言えると思います。

Ubuntu の場合ですと、この件について
というセキュリティ告知 ( Ubuntu Security Notice ) が出されており、それを見てみると現在サポートされているバージョンにおいて対策を講じた apache2 パッケージが公開されており、それにアップデートすれば良いようです。対策済のバージョンはそれぞれ
Ubuntu 11.04
  apache2.2-bin 2.2.17-1ubuntu1.2
Ubuntu 10.10
  apache2.2-bin 2.2.16-1ubuntu3.3
Ubuntu 10.04 LTS
  apache2.2-bin 2.2.14-5ubuntu8.6
Ubuntu 8.04 LTS
  apache2-mpm-worker 2.2.8-1ubuntu0.21
  apache2-mpm-event 2.2.8-1ubuntu0.21
  apache2-mpm-prefork 2.2.8-1ubuntu0.21
  apache2-mpm-perchild 2.2.8-1ubuntu0.21
となっており、「一般的には通常の方法でアップデートすれば必要なものがすべてアップデートされる」とも書かれています。アップデートの方法は過去にこの記事で触れたので、参考にしてもらえればと思います。

なんとか対策が終わったとして、対策が済んだのかどうかを確かめる必要があるのですが、実は Ubuntu の場合ここで小さな罠があります。例えば apache2.2-bin パッケージのバージョンを調べるのに、dpkg -l を使ってこんな風に調べると
$ dpkg -l apache2.2-bin
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  apache2.2-bin  2.2.16-1ubuntu Apache HTTP Server common binary files
$ 
と、このようにバージョン文字列の表示が途中で切れてしまってセーフなのかアウトなのか分からないもどかしい表示となってしまいます。マニュアルを読んで調べれば分かることなのですが、一例しては、dpkg-query -W を使って
$ dpkg-query -W apache2.2-bin
apache2.2-bin   2.2.17-1ubuntu1.2
$ 
とすることで、対策済かどうかが判別できるかと思います。

「部品」として使われている Apache に注意


ということで、Ubuntu を使っている場合には「一般的な環境では通常通りアップデートせよ」と結果としては非常に簡単な結論になるわけですが、その根拠をこういった感じで調べるということが非常に重要なのではないかと思います。

あとは同じようなモノについても対策を講じる必要があるわけですが、Apache そのものは非常に広い範囲で使われているため「部品」として使われることも多く、Tomcat や Rails などの Web アプリフレームワークと連携をさせている場合などに盲点になりやすいので注意が必要です。

こういった脅威に対してどれだけ迅速に対応できるのかといった点が OS のサポートの質を問うバロメータの一つと言っていいかと思いますので、その辺りにも留意しておくとよいでしょう。

また、Apache を自前でコンパイルしていたり、独自のモジュールなどを組みこんでいたりするとそういったモノについてもケアする必要があるので、そこは各自頑張っていただくよりほかないことも付け加えておきたいと思います。

結晶化するソフトウェア(Jarisそしてffftp)

のっけから悟った風なことを書いてしまいますが、何にでも必ず終わりがやって来るものです。もちろんそれはソフトウェアにおいても例外ではありません。折しもそんな節目を迎えてしまったソフトウェアが最近2つありました。いまさら色々言ったところでどうにかなるようなものでもありませんが、紹介してみたいと思います。

Jaris - 日本製コミュニティベースSolaris


Jaris(ヤリス) は OpenSolaris がプロジェクトとしてまともに活動していた時期に日本向けのコミュニティベースの OpenSolaris ディストリビューションを目指し発表されたプロジェクトで、この blog でも過去に何度か取り上げたことがあります。

以前晋遊舎さんの「Linux 100%」に巻頭特集として取り上げられ大きく注目された経緯がありますが、その後の開発は芳しくなく、昨年の8月には使用していたjaris.jp ドメインが失効し、回復措置期間中 ( 汎用JPドメインの場合失効後 20 日間は手数料を支払うことで回復することができるという制度があります ) に復活するという出来事がありました。

当時の様子についても「まさかの復活」ということで blog 記事に取り上げましたが、1年後となる今年の8月にも再びドメインが失効するという事態に陥りました。もちろんこの1年の間においても Solaris 周辺の情勢はコミュニティのものから企業のものにずいぶん色合いが変わっていった事情もあり、新しい成果物が公開される状況ではなくなったのですが、例の回復措置期間を経過してもドメインが復活しないことから活動を再開するような状況ではなくなってしまったのがうかがえる状況となっておりました。

私は何度か blog で取り上げたものの開発に直接携わっていたわけでもなかったのですが、実はここ最近このblog のトラフィックの相当部分が Jaris についての検索によるページビューが突出している状況もあり、凍結期間明けの9/1早朝に jaris.jp ドメインを取得して最低限のファイル提供などを行おうかと画策しておりましたが、ドメイナーのロボットにあえなく敗れ、SEOのネタドメインにされる運命となってしまいました。さすがに別のドメインを取ってまで巻き取るようなものでもないので、もう完全に終結してしまってよいのではないかと思います。

UNIXっぽいOSとしてならば優秀なOSがたくさんありますし、 Solaris そのものがコミュニティのものから企業のものになってしまった以上、こういう残念な結果になるのもやむなしといったところかと思います。Windows のソフトを動かしたいのであれば Windows がインストールされたマシンを用意するのが一番いいにきまっていますし。

ffftp - Windows用 定番 ftp クライアント


また、「Windows用 定番 ftp クライアント」と紹介されることの多かった ffftp についても、この 8/31 をもって正式に開発を終了する旨の記事が作者さんの blog に掲載され、こちらは作者さんの明確な意思が示された上で開発終了した格好になります。

ffftp については比較的初心者受けしそうな機能が実装されてユーザも比較的スキルが低い層に幅広く使われていたように感じていますが、過去に Gamblar ウィルスの標的にされるという不幸な出来事があったり、色々な環境の変化が最終的に開発終了という結果をもたらしたのではないかと思います。

この件で非常に面白いのは、今回の開発終了のニュースをうけて「ftpというプロトコル自体が〜」とか「代わりに〜を」とか書いている方々がほぼ的外れな内容だったりする件だったりします。個別に何がどうと指摘するつもりは全くないのですが、よくもまあといった印象があります。

この ffftp についてはソースファイルも公開されているわけですが、開発を引き継いでfork する人間はちょっと出てこないのではないかと感じています。

技術的な点や人的リソース的な部分をなんとかしたとしても、現状の ffftp のユーザ層のサポートを考えると無料では誰もやりたがらない気がします。初心者受けしそうな分かりやすい機能を追加していったら、それすら難しいと感じるユーザが増えて結果的にユーザをスポイルしていく方向に働いていってしまったのかもしれません。

2011年8月2日火曜日

Androidアプリ「牛トレーサー(ぎゅうとれーさー)」 1.2.0 リリース

好評をいただいております Android アプリ「牛トレーサー」でございますが、 Version 1.2.0 を先ほどリリースいたしました。

今回バージョンアップするきっかけになったのは、このアプリでも使っている(独)家畜改良センターの「牛の個体識別情報検索サービス」で、「牛肉の放射線物質に関する検索システム」が提供されたことです。

一連の放射線セシウムを含む稲わらに端を発する牛肉汚染騒ぎで、個体番号から汚染の有無を調べることができるようになったのは非常に好ましいことではありますが、現状では残念ながら当該サイトへのアクセスが集中してつながりにくくかえって不安を感じかねない状況になっていたり、場所によって「暫定許容値」「暫定規制値」と用語の統一ができていなかったりと、急ごしらえであることを考慮したとしても満足できる情報が得られていないという状況だったりします。

さらにひどいことに、汚染稲わらを食べた可能性があるとされた牛について、検査の結果「暫定規制値内」であるとされたものについては、そもそも何の問題もないかのような結果表示となっている点です。(右の検索結果はそれぞれ 1:汚染稲わらを食べたものではないもの 2:汚染稲わらを食べ検査が済んでいないもの 3:検査の結果「暫定規制値内」のもの 4:検査の結果「暫定規制値超過」のものです)

検査結果としては "ND(検出限界以下)" 〜 500Bq/kg と幅がある上に、「暫定規制値内」の個体がどのように扱われるのかは現在確かな方針が決まっていない状況にある中単に「回収対象外」と表示させるのは非常に乱暴なものではないかと感じます。

「牛トレーサー」ではこの部分については、厚生労働省の報道発表からの情報をもとに、独自に Google Application Engine 上にデータを展開していますが、アプリケーション内から一次情報にアクセスできるように配慮をしています。

(厚生労働省のデータについても、PDF や Excelファイルといったデータフォーマットでかつ同じExcelファイル内で 個体識別番号の表現が "12345-67890" だったり "1234567890" だったりとヒドいことになっています。日本を代表する優秀な行政スタッフが揃っているはずなのに... ) 

今回のバージョンアップでは、(独)家畜改良センターのサイトがつながりにくい場合に汚染情報だけでも検索できるように「汚染情報のみ検索」の設定項目を新たに設けました。検索結果がいつまでたっても帰ってこないような状況になった場合に活用ください。

最後に、遅れてしまいましたが拙作「牛トレーサー」について「オールナイトニッポン GOLD app10 産直!アプリニュース 2011.07.22」で紹介していただきました。リスナーやユーザの方だけでなく開発者にも暖かく接していただけるというのは非常にありがたいことです。blog 読者の方もぜひ機会がありましたら app10.jp や放送をチェックしてみてください。

2011年7月27日水曜日

Androidアプリ「牛トレーサー(ぎゅうとれーさー)」リリース

皆様お久ぶりでございます。放射線や電力不足となかなか厳しいイベントが日々が続くなか、いかがお過ごしでしょうか。特に最近ですと放射性セシウムに汚染された稲わらを食べた肉牛が流通した件がニュースでも報じられています。

牛肉というのは過去の BSE 問題の際に国産のものについては10ケタの数字を一頭一頭の牛に割りつけて移動などを追跡できる仕組み、いわいる「牛トレーサビリティ」が稼働しています。今回の汚染稲わらの件についてもこの仕組みは(他の食品に比べて)うまく動きそうなところですが、どの個体が安全でどの個体が汚染されているのかという情報は消費者にうまく情報が提供されていない状況のように思います。

そこで、そういった状況を少しでも改善するために、Android アプリ「牛トレーサー」を開発してみました。( くわしくはこちらをごらんください )

このアプリを使うことによって、スーパーに並んでいる国産牛肉がどのような経緯を得たのか、汚染された稲わらを食べたのかどうかを調べることができます。


牛トレーサー」を開発するにあたって、最初は個体識別情報検索サービスを使うように設計しましたが、今回特に注目されている放射線にかかわる情報はこのサービスに情報が載るわけではなく、現状では厚生労働省がとりまとめた資料が PDF もしくは Excel ファイルで Web で公開されている状況で、目の前の肉が該当するのかどうかというのを調べるのには非常に不便な状況となっています。放射線汚染の情報がアプリケーションで得られないのは仕方がないので Google Application Engine 上にデータを置いてそこを「牛トレーサー」が見に行くという仕組みになっています。

こういった行政の縦割り体質を批判するのはたやすいことではあるのですが、ここ数日のデータを見ると、19時現在の情報を取りまとめて翌日1時もしくは2時ころにWebで公開されるという状況で、とりまとめのかなりの部分をヒューマンパワーに頼っている状況が見て取れる状況です。またフォーマットについても PDF だったり Excel だったり、また個体識別情報も "12345-67890" という形式と "1234567890" という形式が同じ Excel ファイルの中で入り乱れているという、ある意味「日本的」な状況になっています。

とはいえ、個体を追跡できそうな仕組みがあるのに実際に機能せず、従来通りの報道等によって風評被害が拡大するのは本意ではありませんので、私のほうでもある程度人力で追従しながら様子を見ることにいたしました。

ということで、この「牛トレーサー」ですが広告をつけさせていただきましたが、無料アプリとして登録しましたので、ご活用いただければと思います。

2011年5月6日金曜日

無料版 Google Apps の上限ユーザ数が 10 に削減へ

もしこの blog を読んでいる人の中で、Google Apps の無料版を使おうと検討している人がいるのであれば、今すぐ行動を起こすべきかもしれません。

というのは、先月末に Google Apps 無料版で使用できるユーザ数の上限を現行の 50 ユーザから 10 ユーザに減らすアナウンスをしているためです( computerworld.jp の記事 )。この変更は5月10日以降の新規利用登録から適用され、それ以前に登録したドメインについてはその時期での最大ユーザ数が維持されるということです。

Google Apps の無料版で利用できるユーザ数は当初は 200ユーザで、そこから100、50 と削減されてきました。これは有償サービスの拡販のための変更であることは間違いないのですが、今回の 50 ユーザから 10 ユーザへの削減は無料版の Google Apps を使う意味そのものを変えるものになりえる変更です。結果的にアーリーアダプタユーザに無料ユーザ数で優遇する状況を作り出したということになるわけですが、その線引きがこの5月10日に設定されました。

ドメイン取得から Google Apps 利用登録までの手続きについては、早くて安いレジストラ業者を使うことを前提とすればがんばれば今からでも登録が間に合いますので、検討されている方はいますぐ行動を起こす必要があるかと思います。

PSN/Qriocity での情報漏洩事件

こちらの blog では震災以降初の投稿となります。非常に深刻な災害で今なお余震や放射線の影響やいかにして復興するのかという非常に重いテーマが横たわっておりますが、一歩一歩前に進むことが重要なのではないかと考えています。私が住んでいる山形県は震源域にそれなりに近かった割に被害が少なく、そういった意味では恵まれていたのかもしれません。

さて、ここにきてソニーの PlayStation Network の情報漏洩のニュースが報じられています。当初は単なるメンテナンス・運用停止ということでしたが、時が経つにつれ個人情報の漏洩の事実が明らかになり、続報でその規模が大きく膨れ上がりつつある状況にあります。

私は幸か不幸か PSN に入っていないので今回の件での影響は全くないのですが、運用が止まっている故にサービスを受けられないということ以外に非常に大きな脅威になっているようです。というのも、この件についてJPCERTコーディネーションセンターがサービス名、会社名を出して注意喚起を行っているからです。

JPCERT-AT-2011-0011 情報流出に伴う ID とパスワードの不正使用に関する注意喚起

JPCERT の注意喚起はマイクロソフトやAdobeといった、非常に広い範囲で使われデファクトスタンダード(事実上の標準)になっているもの以外では極力固有名詞を出さずに注意喚起が行われるのが通例なのですが、今回は影響範囲の大きさから冒頭から「株式会社ソニー・コンピュータエンタテインメントより」と固有名詞を出した注意喚起となっています。内容としては
ソニー・コンピュータエンタテインメント社によると、今回の不正アクセスにより、ユーザが PlayStation Network および Qriocity に登録した氏名、住所、Eメールアドレス、生年月日、パスワード、オンライン ID といった情報が流出していた可能性があるとのことです。また、同サービスにクレジットカード情報を登録していたユーザは、登録していたクレジットカードに関する情報が流出した可能性が否定できないとのことです。

同サービスに登録しているアカウント情報 (ID/Password) を他のサービスでも使用していた場合、攻撃者は不正に入手したアカウント情報を使用して、PlayStation Network および Qriocity 以外の他のサービスにログインし、サービスを不正に使用したり、そのサービスに登録されている個人情報やクレジットカード情報を窃取したりする可能性があります。
ということで、個人情報とアカウント情報、クレジットカード情報が漏洩している可能性があるという非常にショッキングな内容になっています。引用した後半の段落にも書いてありますが、アカウント情報を使いまわしていたりするとそこが突破口となって他のサービスでの不正利用を被る可能性があるということが指摘されています。

では、PSN を利用しているユーザがとらなければならない行動は何なのかということになりますが、PlayStationNetwork/Qriocity(TM)をご利用の皆様へのお詫びとお願い に書かれていますが、
PlayStation®NetworkおよびQriocity™のサービスが復旧した際は、お客様がご利用のパスワードを変更されることを強く推奨いたします。併せて、お客様がインターネット上でご利用の他のサービス等で、PlayStation®Network/Qriocity™と同じユーザーIDやパスワードを使用されている場合は、それらの変更を強くお奨めいたします。

さらに、お客様に成りすました不正ログインや不正利用を防ぐために、アカウントに登録されている情報の詳細やクレジットカードの引き落とし履歴等を定期的に確認されることを推奨いたします。(クレジットカードに関連する情報についてご不明な点等につきましては、ご利用のクレジットカード会社にお問い合わせください)
といった行動を起こすことが重要です。SCE の文章では

  1. PSN が復旧したらパスワードを変更する
  2. PSN 以外のサービスでアカウント情報を流用したらそれらを変更する
  3. クレジットカードの利用履歴をチェックする

という順番で PSN が復旧してから行動するようにも読み取ることができますが、現在は依然として PSN の復旧に目処がついていない状態である上に、アカウント情報やクレジットカード情報が漏洩している可能性が否定できないという状況ですので、これらの行動は「すべて同時並行的に」行う必要があります(もちろん PSN が復旧しないとパスワードの変更はできませんが)。

被害にあったら原因を作ったところを訴えるという考え方もあるかと思いますが、被害にあうのはユーザ自身ですので自己防衛を徹底して行うのが大切なのではないでしょうか。

2011年3月1日火曜日

「さくらの6rd(トライアル)」が提供開始されたので設定してみた(Ubuntu 10.10)

サービス提供開始以来、様々なところで話題になっている「さくらのVPS」ですが、この 3/1 から「さくらの6rd(トライアル)」と銘打ち、6rd による IPv6 接続サービス実験を開始しました( プレスリリース )。このサービスを利用できるのは、

弊社専用サーバサービス、ハウジングサービス、さくらのVPS等、サーバの管理権限(root権)を使用可能なIPv4サービスをご利用のお客様は、サーバの設定を行うだけで簡単に利用することができます(申し込み不要です)。

とある通り(さくらインターネット研究所さくらの6rd(トライアル)」より)、「さくらのVPS」だけではなく、専用サーバやハウジングサービスなどでも利用できるサービスで、申込なしで利用可能で、当面は 3/31 までの試験サービス(必要に応じて短縮や延長される)となっています。

IPv4 アドレスについては先日 IANA が持つ中央在庫が枯渇したというニュースもあり、ちょっとタイムリーなねたでもあるので、私が借りているさくらのVPSでもこの 6rd による IPv6 接続を試してみたいと思います。なお、今回のサービスの仕組や概要については、「6rdによるIPv6接続(概要編)」 ( さくらインターネット研究所 ) を参照してください。

とはいっても、今借りているVPS上で動かしている Ubuntu 10.10 Server での設定についてはすでに「6rd設定方法(Ubuntu10.10編)」( さくらインターネット研究所 ) にまとめられていますので、この手順をなぞる格好になります。

早速設定してみよう


6rd設定方法(Ubuntu10.10編)」( さくらインターネット研究所 )で書かれていることの重複になってしまいますが、設定手順について簡単に説明してみると、VPS に割り振られた IPv4 アドレスが pp.qq.rr.ss だった場合、これから使う IPv6 アドレスを
$ printf "2001:e41:%02x%02x:%02x%02x::1\n" pp qq rr ss
2001:e41:PPQQ:RRSS::1
というふうに計算し、その IPv6 アドレスについて /etc/network/interfaces に
auto tun6rd
iface tun6rd inet6 v4tunnel
        address 2001:e41:PPQQ:RRSS::1
        netmask 32
        local pp.qq.rr.ss
        endpoint any
        gateway ::61.211.224.125
        ttl 64
        up ip tunnel 6rd dev tun6rd 6rd-prefix 2001:e41::/32
        up ip link set mtu 1280 dev tun6rd
という内容を追加します ( pp.qq.rr.ss および PPQQ:RRSS の部分は割り当てられた IPv4 アドレスにより変化しますので、適宜読み替えて下さい )。その後再起動して、
# ifconfig tun6rd
...
# ip tunnel show
...
# ip -6 route show | grep default
...
の各コマンドで、設定した内容が正しいと確認できれば IPv6 アドレスが使えるようになったことになります。

ICMPパケットを投げてみたけれども...


しかし、ここで例えば
# ping6 www.kame.net
とやってみると、この blog を参考にしてVPSサーバを構築した人は多分
PING www.kame.net( ...... ) 56 data bytes
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
と表示され、通信できていない状況にがっかりするのではないかと思います。

ファイヤーウォール設定の再調整


実はこの現象は Ubuntu のファイヤーウォール管理プログラム ufw の標準での振る舞いに起因するもので、 ufw のマニュアルに
IPv6 is blocked by default and only IPv6 traffic on the loopback interface is allowed. To change this behavior, set IPV6 to 'yes' in /etc/defaults/ufw and reload ufw.
と書いてあるとおりで、 IPv6 でのトラフィックについてはループバックインターフェイス上のものだけを許可する仕様となっているためです。ip6tables コマンドで確認してみても
# ip6tables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all      anywhere             anywhere

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all      anywhere             anywhere
と、ufw による制御が行われていないことが確認できます。マニュアルの記述にもありますが、これについては /etc/default/ufw ファイルの冒頭部分を
  1 # /etc/default/ufw
  2 #
  3
  4 # Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
  5 # accepted). You will need to 'disable' and then 'enable' the firewall for
  6 # the changes to take affect.
  7 #IPV6=no
  8 IPV6=yes
  9
 10 # Set the default input policy to ACCEPT, ACCEPT_NO_TRACK, DROP, or REJECT.
いうふうに、「IPV6=yes」と変更して保存した後に
# ufw reload
Firewall reloaded
として、変更を反映することによって ufw による制御を IPv6 トラフィックにも適用させることができます。ここまで作業した上であらためて、www.kame.net に対して ping6 をかけてみると
# ping6 www.kame.net
PING www.kame.net( ...... ) 56 data bytes
64 bytes from ...... icmp_seq=1 ttl=56 time=2.39 ms
64 bytes from ...... icmp_seq=2 ttl=56 time=2.06 ms
...
といった風に、www.kame.net の IPv6 アドレスに対して通信できることが確認できると思います。

なお、ufw の設定については、IPv4 向けの設定のみが有効となっていますので、必要に応じて IPv6 向けの設定を追加する必要があります。とはいえ、以前紹介したような事例
# ufw status numbered
Status: active
 
     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     LIMIT IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
のような場合で、IPv6 での http 入力についても IPv4 同様に許可する場合には、単に ufw allow in http/tcp とすることによって
# ufw allow in http/tcp
Skipping adding existing rule
Rule added (v6)
# ufw status numbered
 
     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     LIMIT IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 80/tcp                     ALLOW IN    Anywhere (v6)
と、すでに存在する IPv4 のルールを飛ばして IPv6 の許可ルールを追加することができます。IPv4 と IPv6 で許可/拒否の区別を行う際には、IPv4/IPv6 両方について許可するルールを追加した後で、拒否したいルールを番号指定で削除することになります。上の場合で、IPv4での http 入力を拒否する場合には、対象となるのは、2番のルールですので、
# ufw delete 2
とします。なお、現在のところ IPv6 での LIMIT IN は利用できないようですので、ALLOW IN や、当面の間 IPv4 のみ LIMIT IN で許可するなどの妥協が必要になります。

実際に作業する前に...


この一連の作業はネットワーク構成を変更する作業で、作業を誤ると通信できなくなってしまう可能性もあります。そういった状況に陥ることを防ぐために、コンソール( VNC もしくは仮想シリアルのどちらでもかまいません ) での作業を行うことや事前にバックアップを取っておくといった準備を行うことをお勧めします。

一応設定はしてみたけれど...


正直現時点では VPS サーバを IPv6 化しても、いつも使うインターネット環境が IPv4 だけだという場合にはなかなか実感がわかない部分がありますが、近い将来に役に立つことがきっと来るのではないかと思います。

2011年2月21日月曜日

OpenOffice.org日本ユーザー会「特定非営利活動法人化」

取り上げようと思っていて、なかなか時間がとれずに話題にできなかったのですが、OpenOffice.org日本ユーザ会「特定非営利活動法人」として法人化されました。先にこの blog で山形県で OpenOffice.org が採用されたというニュースについての記事を書きましたが、日本での OpenOffice.org (とその派生ソフトウェア)ユーザ向けの正統な互助組織ができたということで非常に意義ぶかいものがあるのではないでしょうか。「OpenOffice.org」の名前を冠していますが、LibreOffice をはじめとした各種派生ソフトウェアも取扱範囲となっています。

現在の最新動向からすると LibreOffice が今後ネームバリューを拡大していきそうな局面の中、法人名が「OpenOffice.org日本ユーザ会」となっていますが、これは法人登記の段階で無難な名前を選んだはずだけれども状況がすでに変わってきているということを示しているのではないかと思います。

先日書いた記事では、ベンダ・ロックインについて突っ込んだ議論を展開したのですが、こういった非営利の法人に対して人的・金銭的なコミットを行うということでベンダ・ロックインを回避することができるのではないかと思います。開発を行う人材や時間が持たなくても、このユーザ会の活動に参加し発言権を持つことによって、非オープンソース化の流れを牽制できることが可能となるということで、非常に大きな意味をもつものだと思います。

また賛助会員になると、こちらのページに名前とリンクを張ってもらえるということで、「ユーザ会をサポートしている」という意思表示だけにとどまらず、中長期的な意味合いでSEO的な部分でも役に立つのではないかと思います。こういった意味を考えると「ご協力いただいた皆様」のページはもっと Web ページの中で目立つ場所に配置しても良いような気がします。

ともあれ、OpenOffice.org日本ユーザ会の活動について、注目していきたいところではないでしょうか。

2011年2月15日火曜日

中高生向けのゲーム制作雑誌「がまぐ!」 2011/2 号



今回の紙面では「ゲームデザイン」に焦点を合わせた特集が組まれています。簡単な言葉をつかいつつ、実は内容の濃いことや現実世界で起きていることと照らし合わせると結構鋭いことが書かれていたりと読み応えのある記事が多いように感じました。( 編集長の @117Florian さんの意図だったのかな? )
ゲームではありませんが、現実がクソゲーです。見事にジャンルどおりです。
( 「がまぐ!」 2011/2 号 p.63 )
とはいえ、そんな重量級の記事だけではなく、プログラムが全く書けない人にでも十分楽しむことができる「ボードゲームでも作ってみようか! @yuki_mm」といった記事もあり、(ゲームではなくて)紙面のバランスというところから見ても「ヌルくはないけど、ギリギリついてこれそうだよね」といったあたりのところに落ち着いているのではないかと思います。

また、あえて特筆しておきたいのですが、「著作権について 2011/2 @117Florian p.208」の記事はコンピュータで表現をする人全員が理解しておくべき内容が書かれています。ターゲットを中高生向けと設定しているこの「がまぐ!」ですが、内容は大人が読んでも遜色のない充実したものになっています。「ソースを打ち込むのだるい」とかいう大人の感想についてボヤいている部分もありますが、@shtijyou さんが
プログラマが成長し、プログラマが素晴らしいものを創りあげられるのは、プログラマが本当に能動的に、貪欲的になった時だけです。
( 「がまぐ!」 2011/2 号 p.143 )
と書いている通りだと思います。是非ダウンロードして読んでみてはいかがでしょうか。

2011年2月9日水曜日

相次ぐセキュリティ注意喚起にご留意を

ここ2,3日の間で、JPCERTコーディネーションセンターから注意喚起が相次いで出されました。

まずは、Adobe 関連のアップデートということですが、Flash Player および Adobe Reader/Acrobat のセキュリティアップデートが出されています。

JPCERT-AT-2011-0005 Adobe Flash Player の脆弱性に関する注意喚起
JPCERT-AT-2011-0004 Adobe Reader 及び Acrobat の脆弱性に関する注意喚起

現行の Flash Player と Adobe Reader/Acrobat は全て対象になるようですのでアップデートを行う必要があります。Adobe の Flash や Acrobat は現在広く利用されているソフトウェアではありますが、脆弱性の発見とアップデートが日常的に行われています。現在のところ JPCERT/CC では攻撃が行われたという情報は持っていないということですが、アップデートしておきたいところです。気を許すとすぐにアップデートしないといけない部分もありますが、アップデートの仕組みについても Chrome や Google 日本語入力のようにとまでは言いませんがスマートにアップデートする仕組みを Adobe さんには開発してもらいたいところです。

そして、Microsoft の月例アップデートですが

JPCERT-AT-2011-0003 2011年2月 Microsoft セキュリティ情報 (緊急 3件含) に関する注意喚起

インターネットに接続する一般ユーザが使う PC などではこの辺は「自動更新」でアップデートしてしまうのが吉だと思います。業務用に使用しているところだといろいろ制限がある場合もありますが、業務に影響しない範囲ならばこの辺はきちんと追っかけておいて損はないと思います。

さて、問題は次の

JPCERT-AT-2011-0002 主に UNIX / Linux 系サーバを対象としたインターネット公開サーバのセキュリティ設定に関する注意喚起

で、この注意喚起の内容が非常につかみづらいところがあります。要は「5060/udp を scan する試みが広く行われていて、それらは踏み台にされた UNIX/Linux サーバが使われているようだから気をつけろ」ということなのですが、注意喚起文のなかに掲げられている、定点観測システムでの検出状況をみると

(上のグラフは国内、下のグラフはアジア太平洋での観測動向です )

と、昨年の 7~9月 に観測実績があがり、ここ最近では小康状態を保っているように感じられます。このような小康状態期にあえて JPCERT/CC が注意喚起するということは量的なところではなく別の要因があると考えるのが自然です。こういった注意喚起文ではナーバスなところはボカすどころかまったく言及されない性質があるのですが、もう一度読んでみると
今回、情報提供者から本事例に関する情報と攻撃者によって設置されたプログラムの提供を受けて調査した結果、攻撃の流れが判明した事に加え、インターネット定点観測システム (ISDAS/TSUBAME) で観測した送信元IPアドレスが国内に多数存在していることから、不正侵入されたサーバへのセキュリティ対策の実施や、同様の被害の未然防止を目的として、本注意喚起を発行しました。
と書いてあることに気が付きました。つまり、

  • 攻撃メカニズムが分かってきた
  • 5060/udp scan を仕掛けている送信元IPアドレスに国内のものが多数存在する
というのがキーポイントのようです。攻撃メカニズムについては注意喚起文に詳しく説明されているのでそちらを読んでいただくとして、scan 元に国内IPアドレスが多数存在するという記述はその真偽も含めて興味が出るところです。

ということで、色々なところのパケットフィルタログを掘り出してきて 5060/udp scan を仕掛けてきた国内IPアドレスについて調査をしてみました。といっても仕事で解析した部分もあるので、おおまかな傾向のみですが書いてみたいと思います。

  • 5060/udp scan をかけてくるIPアドレスの多くは中国もしくはアメリカからのものである ( 国内IPアドレスからの scan は構成比でトップになるほど多いというわけではない )
  • scan 実績があったIPアドレスの多くはホスティングサーバやVPSサーバからのものが多い。自宅サーバもないわけではないけれどもどちらかというと少数派
  • 中には色々な RBL やブラックリスト的なものに登録されているサイトもある
  • 確かに弱点がありそうな(笑)運用状態のサイトもまま見受けられる
とこういった傾向がみられました。特にここ最近低価格のホスティングサービスや VPS サービスが出てきてユーザの人気を集めていますが ( さくらのVPS についてはこのブログでも取り上げました ) せっかくお金を出してそういったサービスを利用するわけですから、ある程度のところまではがんばって構築をして最低限のセキュリティを保ってもらいたいなと思います。

イマドキの Linux ディストリビューションでは、サービスを立ち上げることだけに焦点をあてると比較的簡単に構築できるわけですが、長く使うのであればセキュリティにも注意を払い、知らず知らずのうちに加害者にならないことが肝要です。このブログのさくらのVPSシリーズでいえば、ufwによるファイヤーウォールの設定、かなりはしょって書いてしまいましたが、SSHサーバの設定といったところは非常に重要な要素になると思います。特に SSH サーバについては、パスワード認証を使わずに公開鍵認証のみに絞ることができればパスワードが破られて侵入されるといった脅威をかなりとり除くことができます。

中途半端な状況で放置するくらいなら一旦サーバを初期化してもう一度トライしてみるというのも良い経験になるかと思います。末長く運営するための手間は一見無駄なものに見えるかもしれませんが後でかならずその苦労は帰ってきますので、よくよく確認していただければと思います。

とはいえ、中には業務で使用しているものがそのような状況に陥っているところもごく一部に見受けられますが、何らかの方法できちんとマネジメントしてもらうか、それができなければ相応の報いを受けるしかないかと思います。日本には不正アクセス禁止法 ( 不正アクセス行為の禁止等に関する法律 ) という法律がありますが、法律そのものがサーバのセキュリティを守ってくれるというものではないということを知るべきなのかもしれません。

2011年1月25日火曜日

OpenOffice.org とベンダ・ロックイン

一応地元県のお話なのではありますが、「山形県がOpenOffice.orgを県庁の全パソコンに導入へ、都道府県で初 (ITPro)」というニュースが飛び込んできました ( 業者側のニュースリリースはこちら ) 。

この話題は昨年に導入検討開始時に一度ニュースになりそれなりに注目を集めた話ではあるのですが、今回の導入決定についてはさらに注目されない、なかばスルーされているニュースとなっているように見えます。

ITPro の記事を見るとメインストリームサポートがすでに終わった Windows XP を主に使っていてそういった機器で今後 OpenOffice.org を導入していくとのことです。とは言っても Windows の系譜で言えば、すでに 2 世代前の OS ということになり、全ての PC が Windows XP を積んでいるわけではないと考えられます。ちょっと穿った見方かもしれませんが、比較的最近導入したものについてはITproの記事で言うところの
...外部の組織向けにMicrosoft Officeのファイルを作成する必要があるパソコンや、マクロを利用しているパソコンなどについては、Microsoft Officeを継続利用する。
ということにして、サポートが終わってしまいそうなものについて OpenOffice.org を導入して延命しようというプランのようにも見えます。地方公共団体の財政が押しなべて厳しいことは今に言われたことではないのですが、今回のように「ワーキンググループ」なるものを作って大仰に検証までするべきものであったのかどうかというのは疑問に思います。

MS Office を使い始めるときには「ワーキンググループ」を作って検討していたのか

自治体の現場に PC が導入されだしたのはそれほど最近の話ということではないのですが、職員全員にいきわたるほどの勢いで導入されだしたのは、いわいる e-Japan 戦略の時代 ( 2001年頃~ ) だったように記憶しております。それ以前に導入されたものはインターネット用の PC であったり、事務の効率化を狙って導入したもので、オフィススイートは 一太郎 と Lotus-123 の組み合わせであったり MS Office だったりと統一性がなく、e-Japan 戦略の波の中で「なんとなく世界標準だから」という理由で MS Office が普及していった流れがあったように思います。その当時はとにかく PC を使うことが目的で今回の山形県のように「導入の是非を検討するワーキンググループ」などを立ち上げて検討を行った団体があったようには記憶していません。

また、サポートされなくなりそうなソフトウェアがあるけども予算がないので無償のものに置き換えるという戦略であれば、選択肢などないに等しいわけですから「無償ソフトウェア『導入の』是非」を検討するのではなく、「無償ソフトウェア導入の『手法』」を検討しないといけないことは明白です。あくまで大義名分を通したい部分があるのは心情として理解できなくもないのですが、そこまで大仰な舞台装置を作られても正直醒めてみてしまうということもあるように思います。

OpenOffice.org を使ったとしても依然としてベンダ・ロックインの呪縛からは逃れていない

もう一つ重要なことは、昨年 Sun が Oracle に買収されてしまったことで、 OpenOffice.org は Oracle の持ち物になってしまい、 OpenOffice.org の将来が以前よりも流動的になってしまった事情が出てきたということに対して何の警戒も持っていないということだと思います。旧 Sun のソフトウェア製品の中で、オープンソース界隈で特に大きな影響があるのは Java, OpenOffice.org, (Open)Solaris の 3つですが、この3つの製品すべてにおいて昨年の間に製品の将来が直接左右されるような Oracle による方針転換やそれに対抗する動きが出てきて、「将来にわたって無償で(比較的)品質の高いソフトウェアが継続的に利用できる」かどうかなど誰にも予測できない事態となっています。

OpenOffice.org についていえば、さらなる「自由さ」を求めて枝分(フォーク)してしまった LibreOffice の存在があります。現在のところ内容的にはこの 2つのソフトウェアはほぼ同じものであるといえますが、今後これがどういった差がでてくるのか来ないのか、 有力 Linux ディストリビューションがどちらを採用するのかというのは流動的な側面が多く、今の段階でどちらかを選択することを宣言するというのは正直情勢に疎いのではないかと思わざるを得ない部分があるのではないでしょうか。

またそもそもの話として、今回の Oracle による Sun の買収のような外的要因で、盤石に見えていたオープンソースプロジェクトがいきなり存続の危機に直面してしまうということも起こりうることで、ユーザやプロジェクトのサポータはこういった要因に対してほぼ無力だということも知られるようになりました ( その最たる例が OpenSolaris であると言えましょう ) 。この辺を突き詰めていくと、オープンソースソフトウェアというのは私企業の持ち物であるべきなのか、それとも公共財であるべきなのかという根本的なところに行き当たってしまうわけですが、 本気で「ベンダ・ロックインからの解放」ということを口にするのであれば公共財としての投資を行う必要がどうしても出てくるのではないかとこういうことになってしまうのです。このことについては OpenOffice.org の日本のコミュニティのリーダー氏がかなりキツイ口調で ( その攻撃的な態度はいかがなものかとは思いますがそれはさておいて ) ことあるごとに口にしていることであったりもします。

企業がかかわりを持つ限り程度の大小はあれどもベンダ・ロックインにつながる要素が発生しますし、逆に企業色を完全に排した場合にはコミュニティそのものの継続性が脆弱になってしまうというジレンマがオープンソースプロジェクトに対してつきまとっているといえることができるでしょう。

「無償で便利そうだから」安易に飛びつくことの危険

OpenOffice.org に限った話ではないのですが、このようなオープンソースプロジェクトにはプロジェクトの数だけその背景があり、単に「無償で便利そうだ」ということだけで安易に飛びつくと Oracle+Sun のプロダクトのように外的要因による濁流に巻き込まれてしまい、気が付いたら想定外の事態となってしまうという危険が ( 程度の多少はあれ ) 存在します。「誰かが無償で出してくれるから」それに乗っていくだけではなく、そのプロジェクトがどのような意義を持ちどういった影響をもたらすのか、またプロジェクトに対してどのようにかかわっていけばよいのかということをよく吟味する必要があるのではないでしょうか。

ここ最近の状況を見ると RedHat Enterprise Linux 代替の無償 OS である CentOS について、最新版の開発が難航しているという報せもあります。何が盤石で何が危ういのか、危ういなら危ういなりにどのようなコミットをしてくのかそういったことを考えないとオープンソースソフトウェアを使っていくのは難しいのではないでしょうか。

2011年1月24日月曜日

寒い日に PC が起動しないトラブルに対処する裏技

雪国在住者としては非常に厳しい季節となりました。寒さと雪でくじけそうな日々でございますが、なんとか生きながらえております。

さて、今日は「ー`)<淡々と更新し続けるぞ」さん経由のネタで「寒い日にわりと良くおきるPCトラブル『朝だけPCが起動しない』 / 動画エンコとフリーソフト ぼくんちの TV 別館」の話題です。

一般的にコンピュータというと「熱に弱い」という印象を皆さんお持ちなのではないかと思いますが、室温10度を切ってくると HDD や電源まわりのトラブルに警戒する必要があります。特に電源ユニットについては他の PC パーツのように画期的な技術革新を遂げているわけではなく、その一方でより過酷な仕事を要求されるようになっています。自作 PC をたしなむ人の間で寒さぬきにしても電源で悩みを抱えている人は多いのではないかと思います。

私が使ってきた PC 達の中でも寒くなると電源が入らなくなるマシンが過去にありました。といっても Windows 95 を動かしていたときのものですからざっと 15年以上前 ( 歳をとってしまったものです ) の話です。症状としては、ある寒い日に PC の電源が入らなくなってしまったという、まさに「寒い日に~」と同じ現象です。 当時はいろいろ試行錯誤して結局電源ユニットの問題らしいということに気がついて、「寒い日に~」に掲載されている「裏技的な解決策」に書いてあるように電源On/Offを繰り返していたのですが、サルみたいにOn/Off繰り返すのも絵として間抜けだし、明らかによろしくない操作だということで考えた結果

電源ユニットのファンのところからドライヤーで熱風を十数秒吹き込む

というワザを開発(おおげさ)しました。ドライヤーの温度設定や時間などを誤るとかえってひどいことになりそうですが、少しづつ様子を見て最適なブロー(笑)をしてみると良いかもしれません。その後問題の PC は寿命まで使い倒されましたが、それ以来「要ブロー」な電源にはあたったことがありません。(もっとも寿命が来て壊れた電源はたくさんありますが...)

ということで、ほぼ非常手段ではあるのですが、こんなことがあるらしいと知っておくと役に立つ時が来るかもしれません。

2011年1月11日火曜日

数式処理システム Maxima を使ってみた一例

少し前に「独学Linux」さんで数式処理システムの Maxima が取り上げられていて、 twitter のフォロアーさんの一人である @labunix さんがツイートしたものに思わず反応してしまいました。


私の場合、 Maxima はたまに使う程度であるのですが、うまくキマるとなかなか楽しいのでそんな例(のようなもの?)を紹介したいと思います。

今回紹介するのは Aizu Onlline Judge の中からで AOJ 0081 の問題です。問題の概要としては
平面上の異なる3点 P1, P2, Q の座標の組をファイルから読み込んで、それぞれの組について、点P1 点P2 を通る直線を対称軸として点 Q と線対称の位置にある点 R を出力して終了するプログラムを作成してください。

というものです( 詳細については AOJ 0081 の問題文を参照してください )。問題そのものはそんなに難しいものではなく、物理的に紙の上でであればコンパスがあれば中学生でも解けるものですが、具体的に座標を求めるとなると 点Qを通る直線P1P2上の直交点を求めてQの反対側に伸ばすということを考えるのが正攻法なのではないかと思います。

ですが、手順が増えるとバグを埋め込んでしまったり例外条件などを考慮しないといけないし、よく考えると、コンパスを使って点Rを特定するように線分 P1QとP1R、P2QとP2Rの長さが等しいということを使ってダイレクトに2つの変数を2つの条件式から特定するということができそうな気がします。とは言っても手で計算するのはなかなか大変そうだということで Maxima の登場です(あえて wxMaxima のスクリーンショットを載せましたが、実際には Terminal 上で maxima コマンド使いました )。


ここで、[x = xq, y = yq] というのは点Qそのものを示す自明な解ですので、そうではない他方のほうが点Rを示す座標ということになります。あとは、写経(苦笑)のごとく、モリモリ実装すれば完成です。
x = ((x2-x1)*y2+(x1-x2)*y1)*2*yq +
    (2*x1-xq)*y2*y2 + 2*(xq-x2-x1)*y1*y2 + (2*x2-xq)*y1*y1 +
    (x2*x2 - 2*x1*x2 + x1*x1)*xq;
x/= y2*y2 - 2*y1*y2 + y1*y1 + x2*x2 - 2*x1*x2 + x1*x1;

y = ( y2*y2 - 2*y1*y2 + y1*y1 - x2*x2 + 2*x1*x2 - x1*x1 ) * yq +
    ( (x2-x1)*xq - x1*x2 + x1*x1 ) * 2 * y2 +
    ( (x1-x2)*xq - x1*x2 + x2*x2 ) * 2 * y1;
y/= y2*y2 - 2*y1*y2 + y1*y1 + x2*x2 - 2*x1*x2 + x1*x1;
と Maxima の活用事例というより数式写経ねたを書いてきましたが、この問題は「パソコン甲子園 2005」本戦で出題された問題で、レギュレーションを読む限りではこの大会では Maxima を使用することは許されていないようです。実際には正攻法で点Qを通る直交点を計算して云々という実装をすることになるのでしょう。

2011年1月7日金曜日

2011年1月6日木曜日

さくらのVPS 逆引きDNS変更機能実装

みなさま、あけましておめでとうございます。
本年もどうぞよろしくお願いします。

さて、すでに去年の話になってしまいましたが、さくらのVPS に「逆引きDNS変更」機能が実装され、コントロールパネルから利用可能になりました。(ホスト名のところに「変更」ボタンが追加されました)


この逆引きDNS変更機能というのは、DNS の PTR レコードについて、利用者が所持しているドメイン配下の FQDN 名(完全修飾ドメイン名)を VPSマシン に割り振ることができる機能です。


使用している方はすでにご存じかと思いますが、さくらのVPSの利用を開始すると sakura.ne.jp ドメイン下のホスト名が割り振られ、PTR レコードについても初期値が設定されますが、この機能を使うことで利用しているVPSに対してDNS正引き(DNS名からIPアドレス)とDNS逆引き(IPアドレスからDNS名)の結果を一致させることができるようになります。

この機能は正逆双方のDNS検索が一致することが要件になるサービスを運営する必要がある場合や SSL 証明書を取得して https サービスを稼働させる場合により便利になる機能ではありますが、通常のサーバとしての用途の場合、どちらかというとメンテナンス操作時の見た目や精神的なものが大きいのではないかと思います。私が利用しているVPSでは当面そういった需要は出てこないので標準設定状態で運用するつもりです。

また、逆引きDNSとは直接関係ありませんが、「VNCリモートコンソール」についてもベータ版という扱いから、正式版に格上げされて、「リモートコンソール」画面の「VNCコンソールを開く」のリンクから起動できるようになりました。