hirax.net::Tech-logs::2011-08

2011-08-07[n年前へ]

「ゲーデル数化」と「お金が無い人のためのMathematica」 

 数式処理・演算アプリケーションであるMathematicaでは、作成した「ノートブック(数式・命令コマンド群)」を、誰もが使ってみることができるようなファイル形式に変換することができます。それはつまり、Mathematicaというプログラミング言語でアプリケーションを作成したら、(Mathematicaアプリケーションがなくとも)そのアプリケーションを再生することができるような配布形式に変換をすることができる、ということです。

 Mathematica 7までは、誰もが「動かすことができる」できるファイル形式に変換するには、専用サイトで作成したノートブックをアップロードしなければなりませんでしたが、Mathematica 8からはアプリケーション単体で「再生用ファイル形式」に変換することができるようになりました。Wolfram,CDF (Computable Document Format,計算可能ドキュメント形式)というのが、その形式です。

 つまるところ、それは名前を変えた"Mathematica Player"に過ぎません。「作成した数式・プログラム」を実行し、そのプログラムにありと数式数値を入力することはできるけれど、数式やプログラム(命令)コマンドを入力し・処理させることができない、という再生環境(機能制限されたMathematica アプリケーション)です。

 しかし、ありとあらゆる数式やプログラムは「自然数」に変換することができます(たとえば、ゲーデル数化)(プログラムをビルドするということの入力と出力などに例えて想像してみると、そんなことも至極当然の当前のことと思えてくるかもしれません)。ということは、「自然数」へと姿を変えられた(変換された)「数式やプログラム」を元の姿(数式やプログラム)へと変換し(対応させ)、その数式やプログラムを実行する処理をさせてやれば、「数値しか入力することができない”再生環境”でも、ありとあらゆる機能を実行させることができる」わけです。

 そんな、シンプルかつ美しいアイデアを実装してしまったのが"Universal Mathematica Manipulator—Poor Man’s Mathematica"です。任意のコマンド(数値)群を自然数に変換し・その自然数を逆変換させた上で(Wolfram CDF 実行環境に)動かさせるというUniversal Mathematica Manipulator—Poor Man's Mathematica です。(とりあえずの使用方法としては)左上の領域(ペイン)に数式(Mathematicaコマンド群)を入力し、右上の領域に生成・出力された(シリアライズされた)自然数値をコピーして(ブラウザのクリップボード動作〜何桁までペーストするかといった〜の仕様にもよるようです。少なくとも、ChromeやFirefox on Mac OSXでは動きました)、下のペインに(”+”ボタンを押した上で)貼り付ければ、あなたが入力した任意の数式が評価・出力される…という具合です。

 Mathematicaがパターンマッチングを延々と行うアプリケーションであることをかんがえれば、こうした「解」が登場するのは至極当前のことのようにも思われます。

 Mathematicaは結局のところ、パターンマッチングを延々と行うプログラムである。データベースに登録されているパターン・規則にもどづいて、与えられた数式を置換していくことにより、Mathematicaは解(や所望の結果)を得る。
 しかし、シンプルなアイデアを素早く実装する華麗さ、というのは眺めると本当に心地良いものですね。

「ゲーデル数化」と「お金が無い人のためのMathematica」






2011-08-13[n年前へ]

MacBook Air用SSD 360GBは11インチ2010年モデルでは使えない!? 

 OWC MacBook Air用SSD 360GB は、11インチMacbookAir 2010年モデルでは使えない、という連絡がOWCから来ました。「それ以外のモデルでは大丈夫だけど、11インチMacbookAir 2010年モデルで360GB容量のモデルを使おうとした場合には、問題が起こるかもしれない」ということですから、11インチ2010年モデルを使用している人は注意が必要です。

 とはいえ、Macbook Air用の360 GB SSDが、OWCサイトでは(キャッシュバックを加えると)739米ドル、つまり、(円高の今日現在のレートでは)日本円にすると5万7千円ナリという価格になります。これに送料27ドル弱+関税を足しても、魅力的な値段・機能に感じられる人は多いのではないでしょうか?円高効果を有効に活用したい人、で2010年版11インチMacbookAirでない人は、ひとつ買ってみると良いかもしれません。

2011-08-15[n年前へ]

「リッター20kmの燃費」な自転車ライフは「燃費が悪い」? 

 スラッシュドットの「自転車通勤は本当に一番エコな通勤形態かどうか調べてみた。」から。

 自転車を購入した段階で既に放出された 530 ポンドの温室効果ガスの元をとるのに自動車通勤をやめて自転車通勤をすることにした場合、自転車を漕ぐのにカロリーを燃焼することを考慮したとしてもアメリカ人の平均的な食事量を摂取しているならば 640 km 分の自転車走行で元が取れるという。往復 20 km の通勤であればおよそ一ヶ月半程度であろうか。

 今日は京都の街を自転車で走り回っていました。西は(担々麺屋を探して)山陰道樫原宿から東は(大津と京都の境界)山中越えの比叡山ドライブウェイ入り口まで、北は岩倉から南は(長岡京の西にある)ポンポン山まで…通算120kmちょっとです。6時間ほどの間に飲み食いした「エネルギー」は、500mlのペットボトルが10本くらいとガリガリ君が3本くらい、です。夏の日差しはとても熱く、30分にペットボトル一本くらいのペースで水分補給をし続けました。ガリガリ君は、冷たくシャキシャキする食感が絶品で(できれば梨ガリガリ君が食べたかったのですが、ソーダのガリガリ君しかなかったのが残念無念でした)、暑い夏を心地良くするための必需品です。

 …と、そんな一日の話をしていると、「燃費が悪いですねぇ。リッター20キロでは、ハイブリッドカーレベルです」という鋭く的確なツッコミを受けました。6時間で120kmということは1時間あたり20kmで、30分に500mlの飲料を一本飲んでいるということは…そう、ちょうど「リッター20kmの燃費」だったのです。そして、それでは「燃費が悪く」全然エコじゃない!というわけです。

 30分に一回の給油をし続け、しかも、その給油したガソリンは(汗として)ダダ漏れ状態です。…しかも、同じ飲み物ばかりを飲むのがイヤで…買う飲料を変えていった結果、途中から一本200円弱の「ハイオク給油」コースだったのです。ペットボトル500ml一本で200円ということは、ハイブリッドカーどころか、値段が高いハイオク燃料のさらに2倍のコスト…です。

 真夏の京都を縦横無尽に、エアコンをかけつつ自動車で120km走ったら、(さまざまな車があるでしょうが)平均としてはどのくらいのガソリンを消費するものでしょう?燃費が6リットルくらいで、トータル20リットルのガソリンを消費して、およそ3000円くらいでしょうか。車には何人も乗ることができることを考えれば、…真夏の「リッター20kmの燃費」な自転車ライフはあまりにも燃費が悪い、のかもしれません。

2011-08-20[n年前へ]

Topcoder クックブック 

 オライリーから、プログラミング・コンテスト"Topcoder"をテーマにしたTopcoder Cookbookが出版予定になっています。発売されたら、早く読んでみたいですね。

2011-08-25[n年前へ]

繋がる「点」が描きだす世界 

 「点と点とナード」から。リンク先や、関連して連想したことを並べてみました。そしてまた、”この記事の「関連お勧め記事」”あたりも眺めてみると・・・面白いかもしれません。

 …世間的な常識や評価、あるいは自分の将来の得失とかを考えると、どうもこういうことをやってて良いのか不安になるんだけれど、でもどうしても今これをやらずにはおれないんだ、という人に対して、「今それをやっておくことは将来必ず何かにつながるから、心配せずに好きなだけ入れ込みなさい」と…

点と点とナード
 俺達は今ある選択肢の中で、冷静に、自分にとって一番良いものを選ばなければならない。どんな選択肢を選んでも、点と点がつながる可能性は捨てなくていいのだから。

点と点がつながると信じてたバカへ。
 同じように、どの選択肢を選ぶかよりも、選んだことをどれだけ上手く実行するかが重要なのだ。宝くじ(”当たりくじ”)は、どんな道を歩んでも買うことになる。(どんな選択肢も結果的には”当たりくじ”であって、そこから価値を生み出すか否かは実行力が決めるのだから)

点と点がつながると信じてたバカへ。
 数字がバラバラに書いてあって、その数字を順番になぞっていくと最後に絵ができる"Connecting The Dots"ってパズルがあるじゃない? バラバラだったりしても、途中で間違っているように思えたりしても、色々と続けていたら最後に何か浮かび上がってきたりしたら、それで良かったりするのかな?って時々思ったりするの。

あしたのあたし
 これから、興味があること楽しいことが、たくさん見つかるのかもしれません。そんな「たくさんのもの」の中から、自分でどれを選んでいくんでしょうね?何が、「一番のお気に入り」になるんでしょうね?

 うーん、「一番のお気に入り」って何でしょう? 私は多分、ずっと、その場その場で気に入ることをするのかもしれません。そして、もしも飽きたら、新しいところに行きたがるんだろうなぁ、と思っています。 どうでしょ?

 私も「ずっと、その場その場で気に入ることをする」感じかもしれません。 自分が一番気に入ることを続けた結果、一番最後に浮かび上がってくるものは(今の自分自身には)まだよくわかりません。…けれど、もしかしたら、他の人から見れば、かすかに見えていたりするのかもしれません。

 「浮かび上がってくるもの」は、「他人から見た自分」のような感じがしますね。それは、もしかしたら、死ぬまで自分では見えないかもしれない。 けれど、でもその「浮かび上がってくるもの」が、どのような気持ちで描かれているかとか、どうやって描いたのかを知っているのは自分だけ。 それは、不便なような、だけど、面白いような。

「あなたが一番したいこと」
 星が散らばっている時、その星を結んだ瞬間が一番楽しい。

水道橋博士と河合隼雄が語る「星座」と"Connecting Dot"な「日々」
 この「星」というのは、誰かの「足跡」ということである。ただ眺めてみた時には、それらの足跡の集まりは 、何の姿も持たない「空に散らばっている星」にしか見えない。けれど、その人の足跡・星を結んでいくと、そこには、ただの点でも直線でもない「その人の姿」が浮かび上がってくる、ということだ。
 私たちは毎日走り続けている。時には、立ち止まったり、ゆっくり歩いてみたりしながら、流れる時の中で、何かの歩みを続けている。あるいは、好む好まざるに関わらず、移り流れゆく世界の中で、泳ぐことを続けている。その軌跡は、一体、どんな星座を描くのだろうか。

水道橋博士と河合隼雄が語る「星座」と"Connecting Dot"な「日々」

2011-08-27[n年前へ]

「Wolfram CDF Player を汎用する」 

 Wolfram CDF Player で任意のコマンド評価を実現しよう、という「Wolfram CDF Player を汎用する」にこんな一節があります。

 CDF Player は、J/Link で組んだ Java プログラム経由でならテキストファイルの読み込みが可能なようなのだ。この方法なら CDF Player の使用許諾にも抵触してないように見える。というわけで、テキストファイルに Mathematica 式を書いて保存しておき、これを J/Link 経由で読み込んで ToExpression する CDF ファイルを用意する。

 ここで語られているテクニックの味噌(ミソ)は「J/Link 経由で読み込んで ToExpression する CDF ファイルを"Mathematica 8で用意する"」という箇所です。「Mathematica 8でCDF ファイルを作る」ということこそが、Wolfram CDF Player の使用許諾に抵触しないために必要とされる条件なのです。つまり、CDF Playerを使うためには、使用許諾に沿うと、Mathematica 8が必ず必要とされるというわけです。

 つまり、「泥臭く、あれこれ試した」という言葉の背後にあるのは「Mathematica 8でCDFファイルを作り、そのCDFファイルは外部かで作成されたコマンド群を解釈・実行させる」ことができるかを試行錯誤し・実現してみた、ということです。その「試行錯誤・実現」という部分の「苦労と醍醐味」を汲み取りたい、と思います。

 ところで、「CDF Playerを使うためには、使用許諾に沿うと、Mathematica 8が必ず必要とされる」という規約はビジネスとして至極自然であるようにも思われます。しかし、その一方で、「CDFはオープンファイル形式ですか」という質問に対する答えとは、少し、矛盾を抱えているようにも思われます。