Friday, October 06, 2017

横浜トリエンナーレ

3年にいっぺんなので前回行ったのは12年前だったか15年前だと思う。おそらく15年まえか。

横浜美術館と赤レンガ倉庫に分かれ展示があったが、赤レンガ倉庫の2階の展示、アイスランドのRagnar Kjartanssonの "The visitors" に心ひかれた。9人のミュージシャンのセッションを撮影したもの。1時間のビデオ。すでに世界のあちこちで公開されたことがあるようで、nytimesの記事やブログが見つかる。YouTubeに作者のインタビューがある。

歌詞はこちらからいただいた。
 A pink rose, in the glittery frost, a diamond heart, and the orange red fire. Once again I fall into my feminine ways. You protect the world from me, as if I’m the only one who’s cruel, you have taken me to the bitter end. There are stars exploding around you, and there’s nothing, nothing you can do. Once again I fall into my feminine ways.

Wednesday, September 20, 2017

Moto G5

長い話なのでつづめて言うと、少し前に旧willcom のPHSを解約して電話ナシになりました。上の子と親子プランだったので同時に。

子供の方はiPod touchにNECのルーターとMineoの格安SIMを与えました。電話は要らないと。

私も電話は要らなかったのだけど、ポケットに入るやつがあると便利だなあと思うようになって、Androidを買ってみることにしました。Motorola Moto G5。今この会社Lenovo傘下なのね。SIMは通話なしの月500M。

Android初めて。iOSも全体としてまとまりがない感じのところがあるけど、Androidもそう言うところがある。大体ok googleの窓はあれchrome とは違うの?なんで1つじゃないの?とかいうところ。

Mozilla Focusってブラウザが良いと言う話を聞いたので使ってみています。iPad miniのiOSとMoto両方。browse.erase.repeatってのがカッコいい。それにしても、ブックマークも履歴も何にもないところに価値があるって一体なんなんだ。iOSでは、safariの設定でアドッブロッカーにMozilla Focusが指定できるんです。

まあ今の所androidのアプリで一番役に立ってるのはバッテリーセーバーかな。フル充電で4日くらい持ちますね。

Monday, March 13, 2017

コンビニ受け取り

宅配の再配達の負荷が重いという話を聞くので、ちょっと優しい気持ちを起こして、アマゾンで本を買った折、コンビニ受け取りにしてみたわけです。

今回はヤマト運輸で、ファミマでの受け取りでした。

そういえば前にもやったことがあるのですが、簡単なことをわざわざ面倒にしていますよね。


1. メールで「荷物の受け取り方」が連絡される。そこにはお問い合わせ番号と、認証番号が一緒に書いてある。

2. ファミマにゆき、ATMの隣のFamiポートという機械を見つける。荷物受け取りのメニューを探し、そこにお問い合わせ番号と、認証番号を入れる。(認証って何や?なんで番号が2つあるんだよ、と心の底で文句を言う) レシートのような長い紙が出てくるので、レジに持って行く。

3. レジ係は、その紙の上のバーコードを読み込んだ後、荷物を探して来て、荷物の上のシールにサインをするように言う。

4. サインしたシールを荷物からはぎ取ると、A4の紙がカウンターの後ろの方で印刷されて来る。レジ係の人はゴム印を取り出し、3箇所ほどスタンプを押し、紙の一部を受領確認書として荷物と一緒に私にくれる。ここに最初のお問い合わせ番号が書いてある。それはもう知ってるよ!


最初からバーコードの絵をメールで送ってくれれば1,2は省略できるだろうし、3のサインってそもそも何よ?と思いますよね。それに受領確認書って言うデカイ紙の意味がわからないんだけど。

Friday, March 03, 2017

Haskellのプログラミングで感心した話

プログラミングの演習みたいなものです。以下のような数字の山があると思ってください。一番上の3からスタートして、一個下の段の二つの数字(7,4)をたどり、さらに7からは(2,4)のいずれか、4からは(4,6)のいずれかを通り、一番下の段にたどり着いた時、その経路のうち数字の和が最大となるものを求めよ。


この図は4段のものですが、段数Nに対して、経路の選択は$2^N$あるので、総当たりするのは大変だね、ということで、以下のような作戦で解きましょうと教わります。


右の山は3段目までをやったところですが、2段目は(7+3, 4+3)が(10,7)と計算してあり、3段目にきたところで、真ん中で選択肢があって$4+10, 4+7$のうち、結果の$14, 11$の大きい方を選んで14と決めてしまう。両端の12,13に選択肢はないので足した結果を書くのみです。このようにして順々に計算してゆけば、各点の値を決めてゆくだけなのでオーダとしては$N^2$となって、$2^N$に比べて大きく改善、というわけです。

というのがこの話の前提なのですが、私が自分はダメだなあと思うのは、このことをこんな風に書いてしまうのですね。



sが結果が入るところで、xに数字の山が入っています。間違ってはいないのですが、何が格好悪いかと言って、配列脳なんですよね。インデックスk,jで山の数字の場所を指定してるところです。C言語のプログラムではないので、リストが使えるわけで、もっとリストを使おうよ。

改善の方法として、リストであることを利用して以下のように計算します。2段目から3段目に行くところで、2段目の(10,7)に仮の0を前後に加え(10,7,0)あるいは(0,10,7)と、3段目の(2,4,6)の和を計算します。

その結果が(12,11,6), (2,14,13)となり、項ごとの最大値を計算すると(12,14,13)となる。前の結果と同じです。

Pythonのままやってもいいのですが、この辺からHaskellでやってみましょう。数字の山は[[3],[7,4],[2,4,6],[8,5,9,3]]で与えられているとします。


これがプログラムの全体です。うん。一行。簡潔。

++はリストの連結で、zipWithは二つのリストを並べて頭から順々に関数に食わせる(この場合は+なので足し算)。\はラムダ式の開始で、この場合は引数a, bに対する処理。foldl1はリストの左から順にやって行くpythonでのreduce処理に相当するものです。結果は一番下の数字それぞれに相当する値が出てくるので、そのうち一番大きいものを選ベば答えになります。



これで終わり、と言いたいところですが、まだもうちょっとあります。上のやり方で、0を足したりしているところが格好悪かった。

そこで今度は数字の山を下から見てみようというわけです。

左の図のように、一番下の(8,5,9,3)の尻尾と頭をそれぞれ一個削った(8,5,9), (5,9,3)の項ごとの最大値を(8,9,9)と計算し、これを一段上の(2,4,6)に足す。その結果が(10,13,15)、同じことを繰り返して一番上までたどり着いたらおしまいです。

この方針で書いたのが以下です。



[0]を足すところがなくなり、さらにスッキリしたというわけです。initは尻尾を一個切るもの。tailは頭を一個切る処理です。foldr1はリストの右から(つまり山の下の方から)やるという意味です。

この簡潔さがすごいと思った次第。





Sunday, February 19, 2017

アナログでローテクなアレ

あの名前って何だろう、と時々気になる。アレ。

1. 気送管

Wikipedia

昔のオフィスで、別の階に書類を送るために考えられたもの。茶筒ほどの大きさの容器に書類を丸めて入れ、壁にあるパイプの蓋を開け、容器を投入すると、しかるべき場所に届く。

「未来世紀ブラジル」という映画では机の横にあるパイプから次々に仕事が送られてくる情景が登場する。

ちなみに私の世代の人でも仕事で使ったことがある人はほとんどいないと思う。しかし、うちの近所の「家具の大正堂」では今でも使っている。ということは今でも販売・メンテナンスが行われているということか。

こういうのをGoogle検索で見つけるのはなかなか根気が必要。

いうなれば、コンピュータの世界では「茶筒ほどの容器」がパケットであって、それがネットワークというパイプで送られているわけだが、PDFがパケットの内容であったものが、合理化され、肝心なデータだけで良いということで、JSONになり、などと進化しているというわけ。

英語ではPneumatic tubeというらしい。


2. 伝声管

Wikipedia

操縦室の船長がラッパに向かって司令を叫ぶと、管を通じて機関室で聞こえるアレ。実物は見たことがない。

英語ではSpeaking tubeっていうのか。いいなあ。ちょっと感激。




Saturday, January 07, 2017

「豊穣の海」の「昴」の黒子について

学生の頃、三島由紀夫の豊穣の海4部作を読んで、内容以前に気になったことがありました。この物語は主人公の松枝清顕の転生が主題になっていますが、転生した人物の脇腹にある「昴(スバル)のような3つの黒子(ホクロ)」がカギとなっています。

気になったのは「スバル」で、スバルってのはこれです。プレアデス星団です。


3つではないのです。ちょうど今の季節、夜中に天頂付近に見えていると思いますが、もやっとした塊に見えます。

3つの星、ということだと、オリオン座の三つ星のことじゃないかなあと思うのですね。オリオンのベルトの位置の3つの星です。


スバルの場所はオリオンの右斜め上あたり。

無粋なことのようですが、物語の中で「昴」は何度も出てくる大事なことで、学生時分の私はこのことが非常に気になっていました。

その後、もう25年も前のことですがアメリカにいた頃、地元の日本語誌に、日本文学を英語で紹介されている翻訳家の方が、日米の編集者のチェックの仕方の違いを書かれていました。アメリカの編集者の権限は大きく、誤りやわかりづらい点を作家に指摘してくる、翻訳についても例外でなく、翻訳のみならず原作にさかのぼる指摘があって翻訳者としては困ることがある、とのことでした。例として三島由紀夫の小説(どの本だったかは失念)が挙がっていました。一方、日本では大作家の作品に編集者が口を挟むことはないので、結果として全責任は作家にあることになる、という話です。

この記事を読んでこの翻訳家の方に、スバルについて御存知ですか、という内容の手紙を書いたところ丁寧な返事を貰いました。翻訳家の方から別の文学者の方に照会してくださり、その方の手紙のコピーが同封されていました。それによると「土屋氏が指摘の箇所は、私も前々から気になっていたところです。.... 編集者がチェックし、勇気をもって作家に注意を促すべき事柄だったのではないでしょうか」とのことでした。ということで私の気は済んだのです。

実家で片付けをしていたら、この手紙が出てきたので、ブログを書きました。

最近この翻訳家の方がJapan Timesに記事を書かれているのを見つけました。御健在なようですね。

Saturday, December 10, 2016

平均寿命の国際比較

平均寿命というものが、個々人にとってどういう意味があるのかははっきりしないですが、平均寿命の国際比較(厚生労働省)というのがあります。

ニュースでは「日本が一位」「長寿日本」という報道の仕方をするので、なんとなく日本の医療のお陰かなと思っているのです。上の厚生省のデータを見ると、確かに日本は順序の上で一位が続いているのですが、実際の意味はあるんでしょうか。

例えば、男の平均は80歳程度なわけですが、自分がどうかというと、70で死ぬかもしれないし、90まで生きるかもしれないと思う。少なくとも±5歳くらいの誤差というか幅があるように感じますね。

そこで他の国を見ると、先進国、少なくともヨーロッパとは大差ないじゃないですか。どうしたニッポン。だいたいが男の場合70後半。誤差の範囲ですよね。まあロシアは低そうですね。不摂生だからでしょうか。アメリカも少し低いようです。

ヨーロッパのある国では、病院が混雑していて、救急車で運ばれないかぎりお医者さんに見てもらえないだの、待合室で待っている間に死んだだのと悪口を聞きますが、その国の寿命も特に低くないですね。不思議です。イギリスの話として聞きましたが、ブリティッシュジョークなのかな。

もう一つは、寿命ってのは人種と関係ないように思えますね。体の大きさや肌の色は違うのに、寿命ってのは人間の仕組みが持ってる根源的なものなのですかね。


Tuesday, July 05, 2016

matplotlib入門:アニメーション。バブルソート

バブルソートって、なんだっけ?と思ってwikipediaを見てて、右下の方のアニメーションがいい感じで、自分でも作ってみたくなった。

matplotlibでやってみようと思った。いろいろ調べてこんな感じになった。
100個の乱数を並べてゆく。バブルソートは一番右(か左)から席が確定してゆくので面白いことになる。



ちなみに肝心のバブルソートのアルゴリズムはgen_points()の中の4行くらいの箇所。

できたmp4のアニメをyoutubeにアップロードした。


Saturday, June 18, 2016

Seabornでaxを設定する

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

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

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

結果は以下。

Saturday, May 28, 2016

人工知能とデバッグ

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

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

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

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