2012/02/02
「マイコン」の思い出
マイコンが欲しくて欲しくてたまらなくなった僕は、父に交渉することにした。今まで小遣いやお年玉を貯めた全財産(といっても4万円くらいだったと思う)を出すので足りない分を出して欲しい、と。
私らの世代では似たような経験を持ってる人が多そうだ。
うちはしかし、親が折れなかった。親の「こういうものはすぐに技術が進歩して時代遅れになるから、あせって買うことはない」という意見に有効に反論できなかったのが敗因である。
まあ買ってもらえなかったおかげで、ジャンク品を集めて自分で組み立てることになり、それはそれで良い経験になったわけだけれど。
でも、子供を持った今、この経験を振り返ると、あることに気づく。当時、子供にマイコンをねだられた親の多くは、多分それがどういうもので何を意味するのか、よくわかってなかっただろうと思うのだ。マイコンがどういう製品で何が出来るのか、くらいはおぼろげに知っていたかもしれないけれど、30年後にコンピュータがどのように日常生活の中に組み込まれていて、当時の8bitマイコンから30年後の社会にどうつながってゆくのか、ということをイメージできていた親はほとんどいなかったんじゃないか。
ということは、今後、自分の子供が「これが欲しい」と強くねだってくるものについて、それを今与えることの意味がさっぱりわからない、ということが起き得るだろうってことだ。
まあ、そんなことは当然だとも言えるんだけど、わからないことについて裁定を下さないとならない、というのは、ちょっと覚悟の要ることではある。
とは言え、上のblog主のように買ってやった親も、うちのように買ってやらなかった親も、結果を見てみれば正しいことをしていたと言えなくはないので、どっちを選ぶかってことは実はあまり問題ではないのかもしれない。どうでも良いということではなく、どちらかを選ぶこと、自体が重要なのかもしれない。
Tag: 生活
2012/02/02
Mergers
いつもは目次をざっと見ておもしろそうな記事だけ斜め読みで済ませる CACMだけど、1月号は John McCarthyが表紙だったので何となく取っておいてじっくり読んでたら、 IEEE-CSとACMの連携を密にしようって話が進んでたのを知った。 Digital Libraryの相互利用とか、両方に入ってる人の会費の大幅ディスカウント (今は$5引きとかだけど、20%引きとかになるらしい)が検討されててるとかで、 決まってくれるとありがたいなあ。今Digital LibraryはACMの方しか払ってないんだけど たまに文献を追っかけてるとIEEEのpay wallに引っかかることがある。 まあ計算機関連の論文は最近は著者が公開することが多いし、 今後もよりオープンになってゆくとは思うけど。
1月はもうひとつ、SAGとAFTRAの統合の話が芝居コミュニティではそこそこホットな話題だった。 まあこっちは縁があるかどうかはわからないけど、もしユニオンに入るとしたら、 (ユニオンに入るとユニオンの仕事しか出来ないが、ハワイではユニオンの仕事が少ないので) 両方に入らざるを得ず、それなら統合されていた方がありがたくはある。 加入基準がこれまでのSAGに準じたものになるので加入のハードルは高くなるけれど、 そもそもそういう状況 (principal roleが取れるとか) にならなきゃ 入るかどうか悩む必要もないわけで。
2012/01/29
Gaucheで書き捨てツールのtips
こちらでGaucheを取り上げていただいた。 こういうちょっとしたツールに使われるのは本望なので、 ちょっと書きツールに便利なtipsをいくつか。
- Perl風にdieというのを定義して、
(die (format "~a: invalid argument" opt)
のように呼んでるけれど、実はexit
に「メッセージをformatしてcurrent-error-portに出力してからexitする」という機能があるので、format+dieはexitひとつでいける。(exit 1 "~a: invalid argument" opt)
- コマンドライン引数の扱いは、オプションをlet-argsでパーズした後、残りの引数に
matchをかける、っていうのをよくやる。
(use gauche.parseopt) (use util.match) (define (main args) (let-args (cdr args) ([#f "h|help" => (cut usage 0)] . args) (match args [(file) ...処理...] [_ (usage 1)])))
このパターンは頻出するので、let-argsを拡張してオプション以外の引数もbindできるように しちゃおうかなあ、と考えている。パーズできなかった場合のエラー処理をもうちょい 賢くしたいんだけど。 - あとはスタイルの好みだけど、
(or 条件チェック エラー)
,(and 条件チェック エラー)
はそれぞれ(unless 条件チェック エラー)
と(when 条件チェック エラー)
と書ける。when/unlessは戻り値が無い(未定義な)ので、「ここの節は副作用がある(戻らないことがある)」っていう意図を示せる。and/orは逆に戻り値に意味があることを示す時に使う。 (もっともCommon Lispではwhen/unlessにも戻り値があり、それはそれで便利に使えるので、Schemeでも戻り値があるほうがいい、って議論もある。) - ファイルの存在チェックをどこでやるかはツールの目的によるけど、使い捨てスクリプトならファイル読めなければ
process-output->string-list
がエラー出すんで、それを捕まえちゃってもいいかも。他のエラー (外部コマンドが見つけられないとか) の時も、スタックダンプを出すよりはメッセージ一行で終わらせちゃっていい、っていう用途であれば、処理全部をguardで囲んでエラーを一括して捕まえる、という手がある。 (もちろん、予想されるエラーだけ一行メッセージでexitして、 予想されないエラーはスタックトレース出したい、という用途であれば一括guardでない方がいい)。
そんなわけで、まあこんなふうにも書ける。
#!/usr/bin/gosh (use gauche.process) (use gauche.parseopt) (use util.match) (use file.util) (define (usage status) (exit status "usage: ~a <file>\n" *program-name*)) (define (main args) (let-args (cdr args) ([#f "h|help" (usage 0)] . args) (match args [(file) (guard (e [(<error> e) (exit 1 "~a" (~ e'message))]) (let ([fl (process-output->string-list '(funclen) :input opt)] [fn (process-output->string-list `(funcname ,opt))]) (unless (= (length fl) (length fn)) (error "funclen may have been failed")) (for-each (^[x y] (print (regexp-replace #/\w*$/ x y))) fl fn)))] [_ (usage 1)])) 0)
Tags: Programming, Gauche
2012/01/28
ベルガマスク組曲
録画した。
20年以上前から何度もトライしてたんだけどなかなか「曲になってる」感じが得られなくてその度に中断してた。今回はレッスンのおかげか、やっと形になった気がする。
曲の背景について調べたら "[T]he Suite bergamasque is Debussy's tribute to the elegance and charm of the commedia dell'arte." だそうで、ああなるほどと腑に落ちた。 ただ綺麗で耳に心地よいだけじゃなくて、どことなく不安げな、現実から不自然に浮き上がってる感じがつきまとってるのは、 仮面劇の二重性 (観客は、キャラクタによって語られる芝居の世界の話に見入りながらも、同時にそれが「ツクリゴト」であることを強く意識させられる) に呼応するようなものがある、ような気がする。 "Prelude" とか、昔はジャジャーンと景気良く飛ばして弾いてたんだけど、 きっとどっちかというと「壮大な幕開けっぽいのを演じていますよー」っていうおどけた感じなんじゃないかなと。Moderato tempo rubatoだし。 その線でゆけば "Clair de lune" は「美しい自然の情景描写」ではなくて、 能とかで動かない筈の仮面にぞっとする表情を感じ取れる瞬間のような、 人の手によって作られた美しさなんじゃないかな。なんてことを考えた。
Tag: Piano
2012/01/26
ピアノレッスン33回目
- 基礎。最近家ではMM=144と152を行ったり来たりしてる。レッスンでは144。スケールで、拍頭は合ってるけど16分音符が均一でない、との指摘。
- Bach: Fantasia in C minor (BWV906)。八分音符MM=54でゆっくり。バッハは頭でわかってないと弾けないかんじ。
- Kapustin: Op40-7 Intermezzo。こっちはMM=42の超スローで。テンションノートてんこ盛りで、丸暗記だとあっという間に忘れそうだからがんばって理解しようとしているんだけど大変だあ。スイング感は良いとのこと。ただ前半、「符点八分+十六分音符」と「三連符の2:1」の違いをあんま気にかけてなかったんだけど、そこは注意された。
注文してたショスタコビッチのプレリュードとフーガの楽譜が届いた。今ちょっとポリフォニックな気分なので、バッハの後はこれの7番あたりやってみたいが… イノセントな響きの曲だが譜面見たら滑らかに弾くのは結構鬼かも。
Tag: Piano
Comments (0)