Sunday, June 19, 2016

北西線工事現場

うちの近所に横浜環状北西線(ほくせいせん)のトンネルの入り口ができるらしい。

北西線マップ(リンク)の「北八朔換気所」の少し上のあたりで赤と黄色の境目のあたりにトンネルの入り口ができるようなのだが、その写真が以下のもの。写真の真ん中あたりに入り口ができるようだ。右手の方のジャンクションから下ってくる橋脚(工事中)が3つばかり見えている。



これはその橋脚の写真。手前のものの方が低い。


特に工事現場が好きなわけではないのだけど、ここにトンネルができるというのが不思議な感じがする。

Saturday, June 18, 2016

Seabornでaxを設定する

MatplotlibだとダサいのでSeabornを使うという話があるのだけど、細かな設定をどうするのかわからんなあと思っていた。

どうやるかというと、matplotlibのplt.subplotsのaxを使って、axをseabornに渡せtば良いのであった。

以下の例ではy軸をカンマ区切りに設定したaxをpointplotの際にax=axとして渡している。
(df.passengerをわざと大きな値にしている)

結果は以下。

「ビューティフル・マインド」

「ビューティフル・マインド」シルヴィア・ナサー
A Beautiful Mind, Sylvia Nasar

ナッシュ均衡のJohn Nashの伝記。この人のことをよく知らなかったけれど、多様体の埋め込み定理ヒルベルトの19番目の問題などに取り組んだ。ゲーム理論の功績でノーベル経済学賞を受けた。

本題から外れるけれど、アメリカの科学技術への投資が日本に比べてはるかに多いのは、冷戦のせいなのでしょうね。ソ連に勝つには科学技術しかないということで。ゲーム理論の研究も核戦争の恐怖が根底にあったようだ。

病気になる前から相当変わった人だったようだけれど、数学科の人ってのはそういうものだろうという気もする。

それはそうと、統合失調症が回復して1994年にノーベル賞を受賞した年、私もニュージャージーにいたわけだけれど、全然関心なかったなあ、と思った。

Saturday, June 11, 2016

Raspberry Pi B+故障

結論
おそらく、Micro SDカードのコネクタの異常。

経緯
カードを入れた時に「カチッ」って言わなくなり、そのまま押し戻されるようになってしまった。仕方ないので、カードを入れて出てこないようにテープで固定して使っていた。

一晩たったらSSHできなくなっていて、再起動しても途中の変なところで止まってしまった。

カードを取り替えてもダメ。今度は今まで使えていたカードが見つからない的なエラーが出ている。DOSパーティションのブートあたりまではうまく行ってるようなのだけど。カードの内容が壊れたのを疑って、データの書き直しをしてみたが、3枚持っているカードの一つは母艦からの書き込みが終わらなくなった。カード自体が壊れたらしい。

推測
コネクタからカードが抜けたような状態で通電しているうちにコネクタかボードが電気的に壊れた。ボードが壊れた状態で刺したカードも壊れた。

感想
・・・・・

Friday, June 03, 2016

RAIDはやめた話

家のRAIDを2重化したのは1年ちょっと前だったけど、これをやめることにしました。最も大事なデータは70GBくらいで、実際大したことない。そこでバックアップとしてはGoogle driveにコピーすることにして、ローカルにはもっと小さい512GBの2.5inchのディスクに入れ、Macのタイムマシンもそちらに入れることにした。これでMac Miniを立ち上げるたびに大物のディスクがゴロゴロ音を立てることもなくなり、電源ケーブルもすっきりした。

この作業のためにMac本体は一日中働き続け、周りを熱くしていた。

Saturday, May 28, 2016

Raspberry Piのバックアップ

SDカードは信用ならないということで、バックアップの方法を考えたのだが、結論から言うとrsyncが一番良さそうだということになった。

SDカードに書く時は、1GBかそこらを書くだけだが、カード全部をコピーしてバックアップとするには、カードのサイズ全体を読むことになるので、何時間かかかる。

dump/restoreというのも頭をかすめたが、どのようにdumpしたのか覚えておかねばならないし、restoreできる気がしないので、忘れることにした。

結論としてはsshでrsyncで、リモートに必要なデータ(とりあえず/etcの下だね)を取っておくこととした。10秒の単位で終わる。データ量もMBの単位。小さいことはいいことだ。


話はバックアップを離れるけれど、IoTでこの手のデバイスを使う話があるわけだが、たくさんのデバイスに合理的にインストールするのは、それだけで商売になるのではないだろうか。SDカード一枚焼くのにパソコン一台占領して20分とかかかるわけですよ。100枚焼くには30時間以上。

人工知能とデバッグ

少し前に、NHKスペシャルの「天使か悪魔か羽生善治、人工知能を探る」というのを見たのだけど、将棋の羽生がAlphaGoのDeepMindに行ってDemiss Hassabisにインタビューする内容だった。

この番組の1シーンで、Lee SedolがAlphaGoに一勝したときの記者会見で、記者がHassabisに「碁の場合はマシンが暴走した、と言って許されるかもしれないが、ヘルスケアでそれで許されるのか」という趣旨の質問をしていた。これはなかなか良い質問だと思った。DeepMindはヘルスケアをやって行くと言っているのだ。Hassabisの答えは、AlphaGoは完成品ではなく、ヘルスケアの場合は完全にテストしたものを製品とする、という優等生的なものだった。

このやり取りについて考えていたのだが、人工知能で非常に正解率が高い判断をするものの、当然失敗がある。結果を人間が直接見るのが前提なケースは良いだろう。しかしこれを取り込むシステム全体はどうなんだろう?番組の中では「良心回路」を持った人工知能の研究が出てきていたが、私が言いたいのはもっと単純なエラーについてだ。道が右に曲がっているという判断に基づき、自動運転車が右に曲がろうとする。この成果率は非常に高い。しかし100%ではない。間違えるとしたらシステム全体からするとバグだ。複数のロジックを用いて確率を下げる、映画2001年のHALみたいに。でもエラーはゼロとは言えない。どう判断するのだろう。人間の正解率と同等なら良しとするのだろうか。

エラーからの回復方法は、テストを完全にするとかどうという以前に、どうやってシステムをつくるかの思想の問題になる。実際にはケースごとにいろいろ逃げ道あるのだろうが。記者がこのつもりで質問したのかどうかは定かではないが、私も聞いてみたい。

Monday, May 23, 2016

Raspberry Pi FreeBSD。ScanSnapのサーバにする

Saneという名前は聞いたことがあったが、ScanSnapのデータが読めるとは思わなかった。

まず、sane-backendsをインストールする。

pkgが最後に使い方についていろいろ言ってくるが、まず以下の出力を見るように言われる。

root@rpi-b:/home/freebsd # usbconfig list
(略)ugen0.5: at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (98mA)




この0.5ということを調べて、デバイスの情報を得る。
root@rpi-b:/home/freebsd # usbconfig -d 0.5 dump_device_desc
ugen0.5: at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (98mA)

(略)
 idVendor = 0x04c5
 idProduct = 0x11a2


そしてこの情報をsaned.conf というところに入れて、

root@rpi-b:/home/freebsd # cat /usr/local/etc/devd/saned.conf
notify 100 {
       match "system" "USB";
       match "subsystem" "INTERFACE";
       match "type" "ATTACH";
       match "cdev" "ugen[0-9].[0-9]";
       match "vendor" "0x04c5";
       match "product" "0x11a2";

       action "chown -L cups:saned /dev/\$cdev && chmod -L 660 /dev/$cdev";
};


devdをリスタートする。

root@rpi-b:/home/freebsd # /etc/rc.d/devd restart

すると、scanimageでスキャナが認識できる。
root@rpi-b:/home/freebsd # scanimage -L
device `fujitsu:ScanSnap S1500:14489' is a FUJITSU ScanSnap S1500 scanner

GUIを使うつもりはないので、コマンドラインで操作する。
テストの紙をスキャナに一枚入れて、以下のコマンドを実行すると、あら不思議。
root@rpi-b:/home/freebsd # scanimage --device-name='fujitsu:ScanSnap S1500:14489' --format tiff > test.tiff

紙が吸い込まれて、tiffのイメージができた。

なかなか愉快だ。
まあLinuxでも同じでしょう。

Sunday, May 22, 2016

Raspberry Pi FreeBSD pkgの設定

とりあえずうちのRPi B+にはRaspbianを入れてファイルサーバとして使えるようになったのだが、最初はFreeBSDを入れたかったのだった。

FreeBSDのイメージは、RPi用のやつを本家からダウンロードすることができ、立ち上がる。ダウンロードするイメージは80MBくらいしかなく、お手軽だ。ちなみにパスワードはroot/root, freebsd/freebsd。問題はpkgが本家ではまだ整備されていないこと。また、ports collectionをRPiの上でコンパイルするのは非常に時間がかかる。

いろいろ探していると、10.X系ではこちらにhttp://pkg.uzsolt.hu/準備してくれていることがわかった。pkgのリポジトリの情報を/etc/pkg/FreeBSD.confに入れてpkg updateすると、 使えるようになった。とりあえずpython, curlなどを入れた。


いろいろな人が取り組んでいることがわかったが、組み込みシステムと同じで、クロスコンパイルの環境を作るのが一筋縄ではないようだ。