«前の日(09-02) 最新 次の日(09-04)» 追記

Matzにっき


2003-09-03

_ [OOP]箱モデルの再逆襲

まだ終わらない(苦笑)。

碁盤縞さんのツッコミ

...その名前は<値への名づけ以前>、つまりコードを書いただけの段階でも存在するような気がしますし、...

いや、プログラムは台本のようなものですから、実行時世界には存在しないんです。

登場人物が台本の内容に言及してしまうと、 舞台はスラップスティックになってしまいます。 そういうメタな話は(たまには面白いですけど)やっぱり反則に近いですよね。

kwatchさんのツッコミ

「関数のパラメータ」や「一時変数」というのは、あとから 値を利用できるように箱にとっておく、つまり箱モデル そのものと思っており、名前をつけるという感覚がまったく ありません。

いや、まあ、人の持つイメージは想像以上に多様だということでしょう。 私の数学のイメージは「紙と鉛筆」です。 途中結果は紙に書きなぐられた数または式です。 これが他のなにかとごっちゃにならないように名前をつけておく、 というのが私の「数学の変数」に対するイメージですね。 たとえば z = x + y を考える時、私は「xとyという箱から値を取り出して、両者を足した値をzという箱に入れる」ではなく、 「x + yという式にzという名前をつける、今後zを見たらx + yのことだと思う」とします。lazyですね。

余談ですが、私の数学科の友人の恩師は「数学者には紙と鉛筆があれば良い」と言って、 コンピュータに否定的だったそうです。間違えないから消しゴムは要らないんですって。

kwatchさんが「箱」をイメージされるということは、 紙と鉛筆よりももっと新しいデバイスのイメージを持っておられるのでしょう。

というか、もうこうなったら初心者相手に実験するしか ないですね。
  1. 名札モデル
  2. 箱モデル
  3. IDを入れた箱モデル

初心者の選び方で全然違う結果が出そう。

C++について学ぶなら「箱+名札モデル」が良いと思います。 ポインタについて学ぶ時には「IDを入れた箱(+名札)モデル」ね。

しかし、今はRubyの話ですから、そんなもってまわった話をしなくても、 名札モデルで十分だと思います。

個人的にはRubyでlet x 100のような記法があれば 名札モデルの説明でしっくりくるのですが。 これなら、代入でなく命名、変数ではなくて名前 という用語で説明しやすい

えーと、なにか私の主張を誤解しておられるかもしれません。 私は「(Rubyにおける)変数とは結局は名前に過ぎない」と申しております。 ですから、「代入は命名、変数は名前」です。

harukiさんのツッコミ

ところで、Rubyって、複数の変数が同一の実体を指すこと無いのですか。参照渡しなんかも含めて。 複数の変数が同一の実体を指すことができると、それはそれで便利ですが、 Rubyではそうできなくなっている理由は何なのでしょう?

もちろんあります。ないのはC++のリファレンスに相当する「複数の名前で同じ変数を指すこと」です。

C++と比較するとRubyは一段少ないんです。

C++:  名前->箱->オブジェクト
Ruby: 名前->オブジェクト

背景となる(言語が見せようとしている)モデルが違うんで、 同じモデルを使うことは良くないかも、というのが今回の話のもとなのです。

ま2さんのツッコミ

「名札」で違和感があるのは,「ary = Array.new」は「ある配列オブジェクトにaryという名前をつけた」ということですが,この「名前のないモノに名前をつける」ということが,あんまり日常では起きないからではないかとも思います。子供に名前をつけるときぐらい?

いや、プログラマの日常にはよくあるんじゃないですかね。

  • プロジェクトに名前をつけたり
  • プログラムに名前をつけたり
  • モジュールに名前をつけたり
  • クラスに名前をつけたり
  • メソッド/関数に名前をつけたり
  • 変数に名前をつけたり

名前をつけることはもうすでに日常なのです。(笑)

_ [生活]洗車

天気はいいし、車の汚れが目立っていたので洗車した。

1時間後、雨が降ってきた。

もうイヤ、こんなマンガみたいな生活。

本日のツッコミ(全7件) [ツッコミを入れる]

_ kdmsnr [いずれ曲がり角で出前の蕎麦屋にぶつかったりするんじゃないでしょうか。<マンガみたいな生活。]

_ ま2 [これからプログラマになろうかという人にとっては日常じゃなかったり @:) まつもとさんの言われていることはその通りな..]

_ 碁盤縞 [やっとはっきりしてきました。要するに私は「その<変数>は計算機様の扱う変数であって、俺様が(脳内で)相手をしてる変数..]

_ kwatch [> 途中結果は紙に書きなぐられた数または式です。これが > 他のなにかとごっちゃにならないように名前をつけておく、 ..]

_ ま2 [僕が思う名札モデルの素晴らしい点は,「変数の評価」のタイミングで悩まないですむところです。プログラミングを学びはじめ..]

_ AC [class Array〜とary = Array.new は、それをする目的がぜんぜん違う。 目的が違えば手段は違っ..]

_ とも [名札であって名前じゃないというのがミソかも。]

[]

2004-09-03

_ Google adsense

小切手がきてしまった。外国小切手の換金は面倒だから、 「日本円での処理が出来るようになるまで保留してください」と連絡するつもりでいたのに、 面倒でずるずると引き伸ばしていたらこんなことに。

地方の銀行で換金すると、2600円の手数料をこちらから払った上に、 さらにいくらか引かれて口座に入金されるので、少額だと圧倒的に不利なのだ。 今回は200ドルちょいなので、かなり痛い。あぶく銭だから、と思ってあきらめるしかないのか。

Citibankが安いという話は聞いているのだが、 めったにない小切手の換金のために口座管理料が必要なCitiに口座を持つのもなあ。

まあ、文句ばかり言ってないで、 Google adsenseをクリックしてくださった皆様のおかげだということに感謝しよう。

_ IBM ThinkPad X31

しかし、少額でも、手数料で損したとしても、収支がプラスには違いない。

で、気が大きくなって、注文しちゃいましたよ、 IBM ThinkPad X31

ここでX40でないのが、貧乏臭い。いや、大きさよりもCPUパワー(PentiumM 1.6GHz)を取ったと解釈してほしい。

価格.com ThinkPad X31 2672-PHJ 商品情報で調べて、安そうな店をチェック。 最安の店に電話を入れようとしたその瞬間、リロードしたページでは値段が2000円も下がっていた。 びっくり。

結局は西村さんと同じニッシンパルで。 512Mのメモリも付けて172100円。私にしては大きな買い物だ。

しかし、アレだ、新しいマシンを買っちゃったということは、インストールせねばならぬということだ。 面倒だなあ(←インストール嫌い)。

小人さんがやってくれたらいいのに。 後輩はあんまりヒマそうにしてないしなあ(自分でやりなさい、それくらい)。

_ [morq]Mail Organizer

略して「morq」*1です、よろしく。

公開はもうちょっと待ってね。いや、ドキュメントとかなしでas isでtar.gzに固めちゃえばいいのか。 まあ、来週にでも。

*1  略してない? 「Q」はQDBMのQということで(笑)

本日のツッコミ(全6件) [ツッコミを入れる]

_ 夕刊 [なんか CitiBank 一面を飾ってましたよ。例によって?マーク付きで「日本撤退?」みたいな感じで。]

_ えとー [9/3日に同じ機種を買いました。512MBメモリー2個つきで168000でした。店でかったので送料考えると同じくらい..]

_ matznaga [私、先月 X20 の電源が入らなくなったので止むを得ず X31 を購入しました。X20 の HD を抜いて X31 ..]

_ まつもと [おんなじ日に買ってるし > えとーさん でも、512MBx2ということは1GBですよね。送料を計算に入れても私より..]

_ 西村 [おお、次々とX31+Debianユーザーがカミングアウト。 まつもとさん、私とまったく同じ機種、同じ店ですね、 なん..]

_ えとー [ちょっと安かったかぁ〜、なんかうれしいっす。 ちなみにハマってる原因判明です、、、メモリが腐ってました。。。 届い..]

[]

2005-09-03

_ The Inbox Makeover

ちょっと数えてみたところ、私は大体1日に300通から400通くらいのメールを受け取っている。 こんなの正しく分類することは不可能なので、 最近は分類するのも止めてしまって、morqの全文検索に頼っているわけだが、 それでも「いつか返事しなくちゃ」というようなメールが ついついinboxに溜ってしまうことは避けられていない。ここのところinboxに メールが300通とか情けない事態になっている。

こんなに溜ると古いものは決して読み返さないので、ゴミと変わらない。 そこで、心機一転して整理することにしました。参考にしたのは

要するにinboxにごっちゃに溜めてしまうからいけないわけ で、inboxはいつも空にするべきなのだ。 で、いくつかのラベルを用意することにした(morqの場合はフォルダはない)。 引用はIdea*Ideaから。

  1. Inbox(受信箱)

    まだ処理していない受信メール。ここは定期的に処理して(他のフォルダーに振り分けて)常に空になっているべき。

  2. Respond(要返信)

    すぐ返信しなくちゃいけないメールをここに。時間ができたときにここを見てさっと返信(例:お礼メールとか)。

  3. Action(要作業)

    なんらかの作業をしてから返信しなくてはいけないメールをここに(例:仕事の依頼等)。

  4. Hold(数日中に使うもの)

    数日中に使うメールをここへ(例:商品発注後の荷物追跡URLが書かれたメールとか)。

  5. Waiting(ちょい待ち)

    誰かに任せた作業が終わったら返信できるメールをこちらへ。

  6. Save(保存)

    処理が終わったものであとで検索したいものはこちらへ。

  7. Spam & Trash (迷惑メール)

    迷惑メールだけは専用ソフトウェアでフィルタリングをかけてこちらへ

私はGmailの影響でSpam(自動分類のspam)とTrash(手動で捨てるこ とに決めたメール)を分けているし、Saveは結局全文検索で 十分なので用意しなかった。

inboxが空なのは気持ちがいいし、respondも(まだ)数が少ないので、 手が空いたときにこのラベルの付いたメールを眺めて返事をすることで、 今まで放置してあった作業が進むような気がする。

残された問題は

  • 処理しなくてはいけないはずで処理されなてかった300通を処理する
  • それぞれのラベルのメール数を少なく抑える継続的な努力

だろう。いずれもなかなか難しいことだ。

_ 図書館→電気工事

借りてた本を返すため県立図書館に行く。 先日、GTDを読んだことや、上記のInbox Makeoverとかで 「生活をハックする」ことに関心が出てきたので(lifehackというらしい)、 手帳活用術の本を借りた。もちろん、ここを参考にEmacs上のツールを作ろうというわけだ。

いや、複数で共有することを考えるとWeb上に用意して、Emacs frontendを作った方が良いかな。 前にも書いたけど、個人レベルならmorqやhownの応用でなんとかなりそうだから。

そこから、昼食、教会へ。 先日の壊れたコンセントを修理してもらうためだ。 電気工事の人がめちゃめちゃかっこいい。寡黙な技術者って感じ。 あこがれちゃうなあ。

_ 人間の器

夜、粉石鹸が洗濯機の給水管が詰まったらしく、水が逆流して床が水浸しになる。

まあ、失敗したものはしかたがない、などと言いながら、 床を拭く。が、けっこう水が広範囲に及んでいるので、ついぶつぶつと不平をこぼしてしまう。 口と行動が裏腹になってしまう自分は人間の器が小さいと思う。情けなし。

本日のツッコミ(全2件) [ツッコミを入れる]

_ shaul [処理されなてかった←処理されてなかった ですね。こういう時矢印をどっちに向けるのが正しいのだろう? morqの公開..]

_ まつもと [Rast 0.3.0に同梱されています。まだまだ粗削りですが、眺めてやってください。]

[]

2006-09-03

_ [OSS] しまねOSS協議会 設立記念イベント

が、松江駅前テルサ(要するにオープンソースラボ)で開催された。

80名近くの出席があり、なかなか盛況だったそうだ。 あの場所に80人詰め込むのは大変だったのではないだろうか。

私は教会があるので一回休み。

その代わりビデオメッセージで登場。なんだか偉そうだな。 しかし、これの収録はとてつもなく恥ずかしかった。 やっぱ、ビデオとかだめだ。

_ [教会] 来客アリ

教会の集会終了後、近所の(独身の)仲間を自宅に連れて帰る。

来週、帰省して家族旅行に出かけるのだが、 宿の手配を楽天トラベルでしたい、とのこと。

が、息子と遊んでもらったり、 夕食を食べたり、本来の目的はすっかりほったらかし。 楽しい時間を過ごした。

いや、ちゃんと良さそうな宿を予約したよ、後で。

[]

2007-09-03

_ [Ruby] RubyアソシエーションがRuby言語公式ロゴのデザイン募集:ITpro

Rubyのロゴ、といえばRuby公式ホームページにある 「ブリリアントカットのRuby」が知られているが、 これは「ホームページのロゴ」なんだか「言語のロゴ」なんだかはっきりしないし、 それとして定着しているわけではない。

今回、Rubyアソシエーションのロゴは 決めたけど、これはあくまでも「組織のロゴ」なので、 「言語のロゴ」として使ってもらっては困る。

まあ、決定権はおそらく私(たち)にあるので、 「ブリリアントカットのRuby」こそが「言語のロゴ」である と宣言してもよかったんだけど、 話題作りのためにもコンテストを開くことにした。

我と思わん人は 募集要項を 読んでから、どしどし応募していただきたい。

注意点

  • 〆切は10月1日00:00(UTC)。日本時間だと1日の朝9時になる
  • 採用された人には賞金10万円(日本人じゃなくても)
  • その代わり、著作権は譲渡してもらう(CC BY-SAで公開予定)。
  • 私は、審査時に「誰が応募したか」はチェックしない。「どうぞよろしく」とかメールしないこと。

_ [OSS] Open Tech Press | GNU GPLv3 日本語訳

八田さんによるGPLv3日本語訳が出た。 今度こそ、ちゃんと読まないとなあ。

_ [言語] retlang - Google Code

Erlangに「インスパイア」された、.NET上の並列支援ライブラリ。

でも、ちらっとドキュメント読んだ範囲では、あんまりErlangらしくなかったような。 が、この辺(従来言語でErlang風味を実現)には興味があるので、 もう少し調べてみたい。

本日のツッコミ(全4件) [ツッコミを入れる]

_ takahashim [ロゴ募集ですが、発表はいつですか? あ、いや、途中経過(応募数とか応募デザインのちら見とか)でもいいのでOSC200..]

_ まつもと [10月なかばくらいかなあ。 OSC2007っていつでしたっけ?]

_  [RubyたんとかRubyちゃんとか居るらしい… /.J#1219851]

_ takahashim [10/5・6です>OSC2007 Tokyo/Fall 10月なかばだったらまだ候補作を眺めてるくらいですかねえ。 ..]

[]

2008-09-03

_ オースチン観光

普段は海外に行っても、

  • 長い間飛行機に乗って
  • 乗り継ぎで待たされて
  • 苦労して会場(or ホテル)までたどりついて
  • たくさんの人と挨拶して
  • スライドを準備して
  • キーノート(またはパネル)で発表して
  • 後片づけして
  • 別れの挨拶をして
  • 苦労して帰る
  • くたびれて体調を崩す
  • 以上

というパターンなのだけど、今回は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のコンボにした。 遠慮した割にはでかい。日本の二人前はある。

本日のツッコミ(全1件) [ツッコミを入れる]

_ THOMAS EWE [Hello Matz: My name is Thomas, and I'm the CEO of Synactiv..]

[]

«前の日(09-02) 最新 次の日(09-04)» 追記

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.