ペタとかエクサとか最初に言い出したのは誰なのかしら

[Python-ml-jp 4803] アッカーマン関数を計算するからはじまるスレッドが面白かった。 A(4,3) を求めるにはどうしたらいいですか、という話。Weisstein, Eric W. "Ackermann Function." From MathWorld--A Wolfram Web Resource にあるように、この数はとてつもなく大きいのでいま地球にある計算機ではまずムリ。ペタとかエクサとかそんなチャチなもんじゃあ断じてねえもっと恐ろしいものの片鱗を味わったぜ的な
で、そこまでは id:nishiohirokazu さんたちも指摘していることなんだけど、おもしろいなあと思ったのは、そもそも Ackermann 関数が有名なのは、上記の MathWorld 記事の冒頭に書かれてる通りで原始帰納関数でない全帰納関数の具体例だから。そしてその標準的な証明はまさに A(n,n) の大きくなる速さがどんな原始帰納関数より速いということを使う。計算論の教科書にはたいてい載ってる(んじゃないかな)。
それとおもしろいのは、これくらい大きな数はそもそも書く方法がないってこと。A(4,3) あたりでもごにょごにょする。これは、むかしむかしから気になることのひとつで、もっとも気になるといっても、どうすれば気にならなくなるのかわからない話なんだけど、いまのところの突き進め方として私が知ってるのは次の二つ。

  • Ultrafinitism ... 書き下し方がわからんような馬鹿でかい数の存在を証明に使うのは禁止しちゃうよ派
  • 巨大数研究室 ... 悩まずにとにかく大きな数の書き方を考えちゃえ派

んー、たとえば A(4,2) と A(4,3) の間にはだいたい A(4,3) 個くらいの数があるんだけど、それらのほとんどには簡単な表記法がない。いちおう機械的な方法としては Rissanen の universal coding というのがあるにはあるけど、それもねえ。
ちょうど2ちゃんの数学板の巨大数スレが熱かったころに生暖かく見守っていたのだけど、結局ふぃっしゅ数の定義を理解することが出来んかったのはいまでも悔しい。途中で数学屋っぽいのが出てきて整理してるのをみて方程式の解として定義してるっぽいことまではわかったんだが、だれか学部の2年生にわかる程度の丁寧さで書いてくれんか。
ということをむかしも書いた気がするけど、まあいいや。忘れっぽいのはステキなことです。そうじゃないですか?

RubyKaigi2009 での3日目の発表のつづき

もうちょっと考えてみた。
直前の田島さん(とお呼びするのが正しいんでしたっけ)の発表はスクリプティングについて言及していて、私のはスクリプティングのすすめ、みたいな話のつもりだったんだけど、気になるのはこの手のちょっとしたスクリプティングの結果できちゃったコードはどうするのが正しいのか、ということなんである。とくに歯切れのよい回答を持ち合わせてないのでそこまで話せなかった。
だいたいこの手のコードは500Bくらいまではワンライナーだったりするので少なくともシェルの履歴には残ってる。出来たら全部公開してシェアしたいところなんだけど、残念ながら公開できない文字列を抜きにワンライナーを書くほど用心深くもないのでそのままでは公開できない。かといって、その部分を抜くのは結構めんどくさい。そもそも公開するならせめて改行するなどの整形はしないと難読すぎる。
もっと根本的な問題があって、頭の中にはそれなりの数のイディオムのようなものが入っていてそれらにはまあそれっぽい名前をつけることもできるんじゃないかと思っているのだけど、これを組みたてて作ったスクリプトにいい感じの名前を付けるのが大抵は難しい。言い換えれば、ちょっとずつ違うことをたくさんやってる。例には出さなかったけど、railsのコンソール操作なんかもそう。もちろん適当に集めて一般化してしまえば名前を付けるに値するスクリプトになるんだろうけど、そこまでいくことはそんなに多くない。
ただ、現状よりはもう少し高い頻度で一般化とか、あるいは一般化と同時に抽象化もしたいのだけど、その材料をあつめて仕分けしておく方法を思いつかない。シェルの履歴にタグでも打てればいいんだろうか。なんかちょっと違う気もする。
ところで、発表に遅刻してしまってごめんなさいなわけだけど、そのときはちょっと田島さんらとスクリプトとプログラムの違いについて与太話をしていて、変更に儀式が必要なのがプログラムで、そうでないのがスクリプト、みたいなことを田島さんが言っていて、なかなかうまいことをいうなあと思った。

RubyKaigi2009 に参加しました

スタッフのみなさん、これまでの準備と3日間の運営おつかれさまでした。おかげで会期中は心地よく過ごすことができました。ありがとうございます。

また、私の発表を聴きにきてくれた方がたにも感謝します。じつは毎回あまり感想を直接聴くことがないので、手ごたえを感じられず、ちょっとさびしいので、主催者のアンケートに何か書いてもらえるとうれしいです。

前置きが長くなりましたが本題。私の今日の発表の質疑応答のときに、手を挙げたのに気づかれず無視されてしまった方がおられたと、あとから聞きました。たいへん申し訳ありません。お詫びします。
RubyKaigi2009Speaker

ペプシソはサラダにかけるとうまいらしいよ via @eban

さっそく買ってきました
かけてみました
食べました

炭酸はかけた時点で抜けちゃう。塩気がないのでデザートっぽい。甘酢和えのようなものかな。コンビニのドレッシングはしょっぱいからたまにはこういうのもいいかも

せっかくなのでつづけて料理のことを書いてみる

昼は昨日のカレーをリミックスしてもらう。
夜はなんだか麻婆豆腐が食べたくなり、材料を買いに行く。調味料が全部そろってるか確認してこなかったけど、たぶんあるだろう。豆腐とネギとニンニクとひき肉を購入。あともう一品ほしくてセロリとピーマンを購入。
帰ってからまずは豆腐をパックから出して水切りしておく。それから調味料のチェック。レシピは 陳建一のうま辛でごはんがおいしい四川料理 (NHKきょうの料理シリーズ) を使用。豆板醤、豆鼓、甜麺醤、片栗粉、鶏がらスープ、塩、コショウ、醤油。酒を切らしていたが、紹興酒が残っていたのでこれで代用することに。花山椒はあったけど、すでに匂いがだめな感じだったので使わないことに決定。
さきにもう一品の方から作る。きのうもらったタケノコを適当に拍子木切り。セロリとピーマンも同じ形に切る。中華鍋を熱してごま油をなじませ、タケノコから順番に炒め、ピーマンを入れて塩を適当に振ったところで火を止め、適当に攪拌して完成。皿に盛る。味見したらすげーうまくて自画自賛する。
つぎに調味料を測っておく。豆鼓がちょっと少なかったけどまあいいや。ニンニクとネギを刻む。鶏がらスープと水溶き片栗粉をそれぞれ用意しておく。豆腐を切って、調理スタート。熱した中華鍋にサラダ油をなじませて、ひき肉を中火でほぐすように炒める。ニンニクを加える。ニンニクのいい匂いがして肉の色が変わってきたら、豆鼓を投入。つぎに豆板醤、甜麺醤を加えて焦げないように炒める。香りが出てきたら、スープを入れる。煮立ってきたら、豆腐と塩、コショウ、醤油、酒で作った合わせ調味料を加えて軽く煮込む。少し汁けが少なくなってきたところでネギをまぜて、水溶き片栗粉でとろみをつける。最後に鍋肌から油を大さじ1くらいおとして照りをつけて完成。
片栗粉がちょっと多すぎて硬くなりすぎた。残念。
卵スープをつくるのをすっかり忘れていて食べながら作ることに。鶏がらスープに刻んだネギをくわえて、塩としょうゆで味を調えて、溶き卵をふんわりなるようにまぜて完成。
久しぶりに作ったけど、まあまあいいんじゃないか。辛くておいしい。白御飯が足りないくらいだ。サンショウを切らしてたのと片栗粉をいれすぎたのが悔やまれる。全体としては80点くらい。

たまには料理の話でも書いてみる

今日は昼にカレーを作ってもらって、腹いっぱい食ったので、晩飯の時間に腹が減らない。
でも食べないといかんのでまあパスタをすくなめにゆでるという話で決着。
さっきもらってきたキャベツの芽とタケノコを具に。ちょうどベーコンがふた切れだけ余ってたのでそれも使う。
スープも欲しかったけど、なにしろ腹減ってないからあんまりやる気も起らずJALビーフコンソメスープ。
さて、順番としてはまずパスタのお湯を沸かし始める。適当に塩を入れる。
キャベツの芽とたけのこはすでに茹でた状態でもらったので、それぞれを適当な大きさに切る。キャベツの芽をどれくらい使うか悩んだが、どうせ野菜だ。少々多めでも問題ない。冷えてるので電子レンジで900Wx2分ほど温める。
タケノコを適当に切る。これは炒めることにしよう。それからベーコンを適当に切る。
お湯が沸いたのでパスタをゆで始める。ディチェコ。ちょっとふと目がいいかなってことで本日はスパゲッティーニを使用。
フライパンでオリーブオイルを温める。BOSCOあんまり好きじゃないけどまあいいや。ベーコンとタケノコを炒める。なんとなく塩を振りかける。
スープのお湯を沸かし始める。
パスタが茹ったのでフライパンにぶち込む。
キャベツの芽をぶち込んで混ぜて完成。サーブする。
JALスープをマグカップに溶かして完成。
ちょっともたついて伸びてしまった。
調味料は塩とオリーブオイルだけなんだけど、ディチェコはとってもおいしい。この具材だったら梅干しを刻んであえてもいいかも。
キャベツの芽ははじめて食べたけどさっぱりした甘味が美味。
まあ今日は85点ってとこかな。

MNP完了後のau端末からiPhoneへアドレスを転送

W41SからVista経由の場合。
結果的には別にそれほど面倒でもなかったんだがやり方がわからず大変苦労した。結論から書くと、

  • メモリースティック>バックアップ>保存>アドレス帳の順にメニューを進めるとメモリースティックにVCFで書き出される。パスは \MOBILE\AU\BU のどこか。
  • WindowsのスタートメニューでWindowsアドレス帳を開き「インポート」をクリック
  • 形式を聞いてくるので vCard (VCFファイル) を選び、メモリースティックの上記ファイルを選択
  • するとアドレス一件ごとにインポートするか聞いてくるのでいちいち答える
  • 名前がついてない項目があったら名前をいれろと言ってくるのでなんか入れる
  • 全部インポートすると完了する
  • 次に iPhone をつないで、iTunes を起動し情報タブをクリック
  • アドレス帳を同期するにチェックを入れるとアドレス帳のソースが選べるようになるので Windows アドレスデータを選択。なんかこの操作に対する質問がでるのでokしとく
  • 同期が始まっておわる

さて、何で苦労したかというと、この方法で移せると知らなかったからで、まず最初にソフトバンクが配布している iPhone 3G 用電話帳コピーソフト http://mb.bbsoft-direct.com/sbm/ をダウンロードしようとした。これは昨日販売店で担当してれたかわいいお姉さんが教えてくれた方法。ところが、このダウンロード時に聞いてくる ICCID を正しく入力しても「ICCIDが間違っているようです。ご確認の上、再度ご入力下さい。※ICCIDの確認方法をご確認ください。 」といわれる。サポートに電話したら、そういう障害は報告されていて、数日待って再試行するか、ソフトバンクショップに備え付けの装置で吸いだしていったんソフトバンクのサーバーにアップロードしてからダウンロードするかのどちらかだという。
それでソフトバンクショップに行ってその装置とやらに刺してみたんだけど、おいらのW41Sを認識してくれんのですわ。そういえば純正の充電器は問題なく充電できるのにコンビニで売ってる乾電池をつかった充電器では充電できないという不具合?があるのでそれと似たようなことかもしれない。
で、結局は勘で解決した。