まだ終わらない(苦笑)。
...その名前は<値への名づけ以前>、つまりコードを書いただけの段階でも存在するような気がしますし、...
いや、プログラムは台本のようなものですから、実行時世界には存在しないんです。
登場人物が台本の内容に言及してしまうと、 舞台はスラップスティックになってしまいます。 そういうメタな話は(たまには面白いですけど)やっぱり反則に近いですよね。
「関数のパラメータ」や「一時変数」というのは、あとから 値を利用できるように箱にとっておく、つまり箱モデル そのものと思っており、名前をつけるという感覚がまったく ありません。
いや、まあ、人の持つイメージは想像以上に多様だということでしょう。 私の数学のイメージは「紙と鉛筆」です。 途中結果は紙に書きなぐられた数または式です。 これが他のなにかとごっちゃにならないように名前をつけておく、 というのが私の「数学の変数」に対するイメージですね。 たとえば z = x + y を考える時、私は「xとyという箱から値を取り出して、両者を足した値をzという箱に入れる」ではなく、 「x + yという式にzという名前をつける、今後zを見たらx + yのことだと思う」とします。lazyですね。
余談ですが、私の数学科の友人の恩師は「数学者には紙と鉛筆があれば良い」と言って、 コンピュータに否定的だったそうです。間違えないから消しゴムは要らないんですって。
kwatchさんが「箱」をイメージされるということは、 紙と鉛筆よりももっと新しいデバイスのイメージを持っておられるのでしょう。
というか、もうこうなったら初心者相手に実験するしか ないですね。
- 名札モデル
- 箱モデル
- IDを入れた箱モデル
初心者の選び方で全然違う結果が出そう。
C++について学ぶなら「箱+名札モデル」が良いと思います。 ポインタについて学ぶ時には「IDを入れた箱(+名札)モデル」ね。
しかし、今はRubyの話ですから、そんなもってまわった話をしなくても、 名札モデルで十分だと思います。
個人的にはRubyでlet x 100のような記法があれば 名札モデルの説明でしっくりくるのですが。 これなら、代入でなく命名、変数ではなくて名前 という用語で説明しやすい
えーと、なにか私の主張を誤解しておられるかもしれません。 私は「(Rubyにおける)変数とは結局は名前に過ぎない」と申しております。 ですから、「代入は命名、変数は名前」です。
ところで、Rubyって、複数の変数が同一の実体を指すこと無いのですか。参照渡しなんかも含めて。 複数の変数が同一の実体を指すことができると、それはそれで便利ですが、 Rubyではそうできなくなっている理由は何なのでしょう?
もちろんあります。ないのはC++のリファレンスに相当する「複数の名前で同じ変数を指すこと」です。
C++と比較するとRubyは一段少ないんです。
C++: 名前->箱->オブジェクト Ruby: 名前->オブジェクト
背景となる(言語が見せようとしている)モデルが違うんで、 同じモデルを使うことは良くないかも、というのが今回の話のもとなのです。
「名札」で違和感があるのは,「ary = Array.new」は「ある配列オブジェクトにaryという名前をつけた」ということですが,この「名前のないモノに名前をつける」ということが,あんまり日常では起きないからではないかとも思います。子供に名前をつけるときぐらい?
いや、プログラマの日常にはよくあるんじゃないですかね。
名前をつけることはもうすでに日常なのです。(笑)
小切手がきてしまった。外国小切手の換金は面倒だから、 「日本円での処理が出来るようになるまで保留してください」と連絡するつもりでいたのに、 面倒でずるずると引き伸ばしていたらこんなことに。
地方の銀行で換金すると、2600円の手数料をこちらから払った上に、 さらにいくらか引かれて口座に入金されるので、少額だと圧倒的に不利なのだ。 今回は200ドルちょいなので、かなり痛い。あぶく銭だから、と思ってあきらめるしかないのか。
Citibankが安いという話は聞いているのだが、 めったにない小切手の換金のために口座管理料が必要なCitiに口座を持つのもなあ。
まあ、文句ばかり言ってないで、 Google adsenseをクリックしてくださった皆様のおかげだということに感謝しよう。
しかし、少額でも、手数料で損したとしても、収支がプラスには違いない。
で、気が大きくなって、注文しちゃいましたよ、 IBM ThinkPad X31。
ここでX40でないのが、貧乏臭い。いや、大きさよりもCPUパワー(PentiumM 1.6GHz)を取ったと解釈してほしい。
価格.com ThinkPad X31 2672-PHJ 商品情報で調べて、安そうな店をチェック。 最安の店に電話を入れようとしたその瞬間、リロードしたページでは値段が2000円も下がっていた。 びっくり。
結局は西村さんと同じニッシンパルで。 512Mのメモリも付けて172100円。私にしては大きな買い物だ。
しかし、アレだ、新しいマシンを買っちゃったということは、インストールせねばならぬということだ。 面倒だなあ(←インストール嫌い)。
小人さんがやってくれたらいいのに。 後輩はあんまりヒマそうにしてないしなあ(自分でやりなさい、それくらい)。
ちょっと数えてみたところ、私は大体1日に300通から400通くらいのメールを受け取っている。 こんなの正しく分類することは不可能なので、 最近は分類するのも止めてしまって、morqの全文検索に頼っているわけだが、 それでも「いつか返事しなくちゃ」というようなメールが ついついinboxに溜ってしまうことは避けられていない。ここのところinboxに メールが300通とか情けない事態になっている。
こんなに溜ると古いものは決して読み返さないので、ゴミと変わらない。 そこで、心機一転して整理することにしました。参考にしたのは
要するにinboxにごっちゃに溜めてしまうからいけないわけ で、inboxはいつも空にするべきなのだ。 で、いくつかのラベルを用意することにした(morqの場合はフォルダはない)。 引用はIdea*Ideaから。
Inbox(受信箱)
まだ処理していない受信メール。ここは定期的に処理して(他のフォルダーに振り分けて)常に空になっているべき。
Respond(要返信)
すぐ返信しなくちゃいけないメールをここに。時間ができたときにここを見てさっと返信(例:お礼メールとか)。
Action(要作業)
なんらかの作業をしてから返信しなくてはいけないメールをここに(例:仕事の依頼等)。
Hold(数日中に使うもの)
数日中に使うメールをここへ(例:商品発注後の荷物追跡URLが書かれたメールとか)。
Waiting(ちょい待ち)
誰かに任せた作業が終わったら返信できるメールをこちらへ。
Save(保存)
処理が終わったものであとで検索したいものはこちらへ。
Spam & Trash (迷惑メール)
迷惑メールだけは専用ソフトウェアでフィルタリングをかけてこちらへ
私はGmailの影響でSpam(自動分類のspam)とTrash(手動で捨てるこ とに決めたメール)を分けているし、Saveは結局全文検索で 十分なので用意しなかった。
inboxが空なのは気持ちがいいし、respondも(まだ)数が少ないので、 手が空いたときにこのラベルの付いたメールを眺めて返事をすることで、 今まで放置してあった作業が進むような気がする。
残された問題は
だろう。いずれもなかなか難しいことだ。
借りてた本を返すため県立図書館に行く。 先日、GTDを読んだことや、上記のInbox Makeoverとかで 「生活をハックする」ことに関心が出てきたので(lifehackというらしい)、 手帳活用術の本を借りた。もちろん、ここを参考にEmacs上のツールを作ろうというわけだ。
いや、複数で共有することを考えるとWeb上に用意して、Emacs frontendを作った方が良いかな。 前にも書いたけど、個人レベルならmorqやhownの応用でなんとかなりそうだから。
そこから、昼食、教会へ。 先日の壊れたコンセントを修理してもらうためだ。 電気工事の人がめちゃめちゃかっこいい。寡黙な技術者って感じ。 あこがれちゃうなあ。
夜、粉石鹸が洗濯機の給水管が詰まったらしく、水が逆流して床が水浸しになる。
まあ、失敗したものはしかたがない、などと言いながら、 床を拭く。が、けっこう水が広範囲に及んでいるので、ついぶつぶつと不平をこぼしてしまう。 口と行動が裏腹になってしまう自分は人間の器が小さいと思う。情けなし。
が、松江駅前テルサ(要するにオープンソースラボ)で開催された。
80名近くの出席があり、なかなか盛況だったそうだ。 あの場所に80人詰め込むのは大変だったのではないだろうか。
私は教会があるので一回休み。
その代わりビデオメッセージで登場。なんだか偉そうだな。 しかし、これの収録はとてつもなく恥ずかしかった。 やっぱ、ビデオとかだめだ。
教会の集会終了後、近所の(独身の)仲間を自宅に連れて帰る。
来週、帰省して家族旅行に出かけるのだが、 宿の手配を楽天トラベルでしたい、とのこと。
が、息子と遊んでもらったり、 夕食を食べたり、本来の目的はすっかりほったらかし。 楽しい時間を過ごした。
いや、ちゃんと良さそうな宿を予約したよ、後で。
Rubyのロゴ、といえばRuby公式ホームページにある 「ブリリアントカットのRuby」が知られているが、 これは「ホームページのロゴ」なんだか「言語のロゴ」なんだかはっきりしないし、 それとして定着しているわけではない。
今回、Rubyアソシエーションのロゴは 決めたけど、これはあくまでも「組織のロゴ」なので、 「言語のロゴ」として使ってもらっては困る。
まあ、決定権はおそらく私(たち)にあるので、 「ブリリアントカットのRuby」こそが「言語のロゴ」である と宣言してもよかったんだけど、 話題作りのためにもコンテストを開くことにした。
我と思わん人は 募集要項を 読んでから、どしどし応募していただきたい。
注意点
八田さんによるGPLv3日本語訳が出た。 今度こそ、ちゃんと読まないとなあ。
Erlangに「インスパイア」された、.NET上の並列支援ライブラリ。
でも、ちらっとドキュメント読んだ範囲では、あんまりErlangらしくなかったような。 が、この辺(従来言語でErlang風味を実現)には興味があるので、 もう少し調べてみたい。
普段は海外に行っても、
というパターンなのだけど、今回は1日余裕があったので、 オースチン観光をする時間があったのだ。 なんか毎年数回海外にでてるけど、ほとんど初めてに近い経験ではないだろうか。 OSCONでWard Cunninghamに「ドライブにつれていってあげよう」と誘われた時には 時間が合わずに断念したし。
あ、JAOOで発表者(Stroustrupを含む豪華メンバー)と一緒にバスツアー+ディナーとかはあったな。
まあ、とにかく観光である。今回のチョイスは Austin Segway Tours, City Sightseeing Tours。 オースチンのダウンタウンと州庁舎の見学3時間コースなのだが、 重要なのは移動がすべてSegwayというところ。
どこを観るかはさほど重要ではなくて、3時間Segway乗り放題!
大変気持ちの良い経験であった。日本でもSegway乗りたい。 でも、日本の交通量だとちょっと無理かも。
以前、(Google Japanオフィスで)乗った時には 方向転換は右手のグリップを回転させて行っていた記憶があるけど、 今回乗ったバージョンは完全に体重移動によって制御するようになってた。 こっちの方がずっと直感的に操作できる。
でも、くたびれた。まだ時差ボケがあると言うのに無茶してるよな。
夕食はテキサスBBQ。鶏1/2メニューもあったが、遠慮して1/4+Brisketのコンボにした。 遠慮した割にはでかい。日本の二人前はある。