2011年7月30日土曜日

学校で習ったことを身につけていれば、こんな風になれる

Khan Academy という、様々な分野の講義をたった一人でやってのけている素晴らしいサイトがあります。ひとつひとつの講義時間もそんなに長くなく、何かを説明するときもいくつも段階を踏んでやってくれるのでとても分かりやすい。

ビデオがカバーしている分野を見ると、わりと中学や高校でやったものが多いことに気づく。そのときそのときに教えられたものを忘れずに身につけていれば、こんな風なこともできるんだと、改めて習ったものを身につけるということの難しさを感じている。

言い換えれば学校とかで一方的に人から教わったものは、まずほとんど自分の中には残らないってこと。このサイトが役に立つと思えば思うほど、that's the case なんです。トライ&エラーで自分でやるしかないんだ、結局。

2011年7月11日月曜日

家族が遊びにきました

一年のうちで暖かく比較的過ごしやすい7月に、家族にボストンに来てもらうことにしました。父親と直接会うのは約2年ぶり、母親とは去年のサンクスギビング以来です。7月1日、仕事の後にローガン空港まで車を運転して二人を迎えにいきました。前回母親が来たときは車なしだったので、移動するのにいろいろ不便だったなあと、空港に向かう車の中で思い出してました。


その週の土曜日は大手のアジアンマートである H マートに行きました。個人的には日本食の食材の豊富さに驚嘆してほしいところだったのですが、二人とも日本から来たばかりだったのであまり感激していない様子。日曜日はトランスフォーマー3・3D を地元の映画館で観ました。字幕なしの映画はキツかったようです。


月曜日は、去年以来のアメリカ独立記念日。家族でボストンの街に遊びに行きました。ボストン美術館は運悪く休みだったので、


ハーバード


MIT


チャールズ川

を歩いて回りました。途中、川沿いで花火の場所探しをしていた同僚にも会いました。去年と違い、今年は次の日が平日だったので僕たちは花火は見ないでそのまま Natick に戻ってきました。


独立記念日の週の平日は僕は仕事でしたが、両親は引き続きボストンの街を楽しんでいました。

水族館近くのハーバー


次の週末は、毎年恒例の会社の summer outing。夜、豪雨の中の高速を走りぬけて到着した場所は、ブレトン・ウッズ協定が結ばれた Mount Washington Hotel 。去年と同じ場所です。その堂々たる外観に去年目を丸くして、自分が死ぬまでに一度家族を連れてこようと決心していました。そしてそれはマイカーを購入した一番の動機でもありました。

左:ホテル外観
右:ホテル内部

アメリカの他の会社の社員旅行については知りませんが、この会社の社員旅行は基本的に自由行動。好きな時間に現れて、飲んで踊って、統率なんて言葉は皆無。慣れきってしまうと、時間厳守のスケジュールには戻れません。

Mt. Washington はリゾート地で、ゴルフ、ハイキング、乗馬、カヤック、など何かしらやることがあります。僕は去年、同僚のインド人とアメリカ人と一緒に山の奥にある滝を見に行きました。今年は家族とともに、山の上を走る鉄道 Mt. Washington Cog Railway に乗って、Mt. Washington の山頂まで行きました。

左:Railway 外観
右:コンダクターのお兄さん


左:ハイカーも見かけました
右:高度は2000m 近く


左:頂上は濃霧と立っているのがやっとの強風
右:山頂の建設物内

下りの鉄道が出発するまで一時間ほどあったので、「ここワシントン山の山頂」と書かれたサインのところで記念撮影などをしていました。無事に麓に降りてきてから、 Mount Washington Hotel の夕食に向かいました。


左:夕食時の様子
右:去年は見られなかった花火のサービス。独立記念日の代わりになりました


左:最終日も晴天
右:Mount Washington Hotel に向かう途中にある Saco River


左:帰りにもう一度 Mount Washington Hotel に寄り
右:再び 3 時間のドライブを経て


やっとこさ Natick に戻ってきました


家族にも楽しんでもらったようで何よりでした。これまでの親不孝、これで少し帳消しになったか?

2011年7月1日金曜日

どっちの継ショー

Built-in class から継承したいときってありますよね。ちょっといじってて気づいたんですが、built-in class 側で提供されているオペレータをサブクラス側で明示的に overload せずにサブクラスから使ったときにそれがどう振舞うかはどうも言語によって異なるらしい。例えば、数を扱う built-in class を継承したときに、単項プラスを overload せずにサブクラス側でそれをそのまま使うとどうなるか。

まず、Ruby
class MyClass < Numeric
end

obj = MyClass.new
(+obj).class # prints "MyClass"


いっぽう Python では
class MyClass(float):
pass

obj = MyClass()
type(+obj) # prints "<class 'float'>"


そして MATLAB だと
% class definition goes to myclass.m
classdef myclass < double
methods
function obj = myclass(x)
obj = obj@double(x)
end
end
end

obj = myclass(0)
class(uplus(obj)) % prints "double"

まだ他の言語では試してないけれど、この中だと Ruby だけ振舞が違う。サブクラス側でわざわざ overload しなくてもサブクラスのタイプにしてくれるあたり、Ruby は痒いところに手が届いている。機能拡張のため、Built-in クラスを継承して、そのサブクラスのオブジェクト間でオペレータを機能させたい時には、断然 Ruby のほうがよさそう。型互換のために、サブクラス側でわざわざ built-in クラスのオペレータを overload するのは手間がかかりそうだし。

ところでこのあたりの振舞いを切り替えられる言語ってあるのでしょうか。