Ruby

2004年12月31日 金曜日

今日で2004年もおしまい

毎年こんな見出しで大晦日の日記を書いているわけだが、ついこないだ2003年もおしまいどころか2002年もおしまいなんて言う記事を書いた気がするのは気のせいではない。今年は転職・引越しと人生の転機となる大きな変化のあった1年で、住環境や人間関係もがらっと変化して、めまぐるしい変化があった1年だった。気が付くともう今年もおしまい。今年お世話になった方々はいっぱいいて名前を挙げきれないが、今年1年本当にありがとうございました。来年もよろしくお願いします。
大晦日と言うことで、行く年に思いをはせ、今年はどういう戦いの1年だったか、今年の戦術・戦略とその戦いの成果を主要な分野別にまとめておこう。(と、ほぼ毎年と同じ文章にしてみた。こういうのは毎年そろえておいたほうがよいもので、断じて_手抜きではない_。)

2004年の総括

はじめに概況

2004年の戦況がどのようなものであったか述べていくことにする。前の会社の上司の年賀状には_今年は攻めと成果_と書かれていたのだが、個人的には攻めに攻めた1年だったかと思う。アクティブに変化を求めて行動したが、いまいち成果があったとはいえない。まぁ来年あたりから取り返していきたい。今年から技術系よりは研究系に寄った立場になったので、より注意して形になるように成果を残さねばと思うのである。(これは特に本業について言える話。)
経済的な状況は現段階でほぼ解決した状況(今年はでかい収入と出費があって、これまでのごたごたはほぼ解決したといってよい) 今後は多少余裕はできると思うので今年あたりからちゃんと貯蓄に励もうと思う。なかなか自力で解決できないのだが、残りは車のローンくらいだし…

2004年11月08日 月曜日

いろいろインストール

週末から自宅サーバの各種ソフトのバージョンアップなどを行っている。手始めにRubyを1.6.7から1.8.1へ、最近はやりになりつつあるSchemeの処理系であるGaucheの0.8.1をインストール。どちらもFreeBSDにインストールということで、iconv周りではまってしまった。うーむ、何とかならないもんかなあ。

2004年10月27日 水曜日

今日も地震

今日も関東で揺れを感じました。会社から家まで遠いとどうやって帰ろうかと悩んでしまいます。(今地震になって交通が寸断されたならば、まず荒川を越えるのが厳しそう。)

いろいろインストール予定など

なんだか身の回りのインストール熱が上がっているので、いろいろサーバに仕込んでしまおうかと。いったん考えている大きなものは、
Ruby1.6系からRuby1.8系への入れ替え
もうデファクトなライブラリの追加インストールがめんどくさいので。
Gauche のインストール
やっぱSchemeを使ってみようと言うことで。cosmosには導入済みですが、展開をする。
と言うところ。さらにこまごましたところでは、何個か必要なアプリケーションにぶら下がっているライブラリの入れ替えかな。
zphoto

2004年10月23日 土曜日

お買い物

今日はお買い物に新宿まで行って来ました。(他にも用事があったので新宿でお買い物になったのだが。) 来週の撮影に使えるアイテムと言うことで、室内で使える照明機材を購入することにした。それなりの大きさの外付けストロボがよいなぁと思うのだが、_買えないくらい高い_ので、ハロゲンランプに手を出してみる。(タングステンの写真用ランプは、熱くて危ないし長持ちしないので。) 今日のお買い物の品は以下の通り。

  • LPL / ビデオライト VL-302
  • PHOTOFLEX / Lite Disk (32’’ Translucent)
  • 富士フイルム / LBB8フィルタ
    1つ目はビデオ用ではあるが色温度3200Kの小型のランプ。馬場さんのCAPAの撮影会で使っているのを見て便利かもと思っていたもの。想像以上に明るいというか眩しいかも。2つ目はレフ板にも使えるけど照明光を拡散させるもの。(Translucentって言うのは半透過の白い板です。) 3つ目はライトの色温度を少し青側に振るフィルタ。一応ライトの前に入れてみようと思う。熱的に持たなかったら、方法を今後考える。まぁいろいろお試しなので。家での物撮りにも使えるかな。

mixi RubyコミュニティOFF会

Moonwolfさんにmixiで誘われたので、行ってみました。(新宿に集合) 今回の参加者は4人。Rubyに関わらずいろんなネタの飲み会になって楽しいひととき。僕もぼちぼちRubyを使いこなしていきたいな。

2004年10月07日 木曜日

Excel VBAは究極の「変数 = 箱」モデル

某MLに書いた内容ですが、僕が遭遇したExcelVBA的なものの発想法について。
ExcelVBAでのプログラミングでは、8月8日の日記福盛さんの日記で触れられているように、「VBAでエクセルのマクロを作る初心者がですね、変数の代わりにセルを使うんですよ」と言うような、matz日記で話題になった究極の「変数 = 箱モデル」に相当するようなコードを書く人が結構多い。
つまり、「ExcelVBAは普通のVBと違って、「手動で」かつ「視覚的に」変数領域を割り当 てられる、2次元でアドレス指定するポインタを持つBASICである。」と言い換えても良さそうですし、暴論を言えば、「一流のExcelVBA使いは1次元のポインタしかないCのポインタなど目をつぶって使えないとならない訳だ(暴論)。分からないなどと言わせぬ!」ということになる。まぁ実際に一流の(分かった気になって、有頂天になって、ナニか勘違いしている人_のことを言う)ExcelVBA使いのみなさんはこういうポインタに相当するものには名前をつけたりしなくて「全部直接セル参照」という神業をするので、構造化言語とかOOPとかにジャブ付けの頭しか持ち得ない僕なんかから見るとある意味「すげーっ!」(絶対そうなりたくない)と思ったり、頭の中がどうなっているのかかち割って見てみたいなんて思っている_3流のへっぽこVBA使い_なので、せめて妥協点として、Rangeオブジェ クトに名前をつけてアクセスしたくなっちゃいます。
1次元のRange領域を作ってやれば普通のポインタと同じような感覚(アドレス指定はCellsプロパティで2次元指定できるけど)ですかね。領域の割り当ては自分でやらないと駄目ですが… まぁ_ご利用は計画的に

たとえば「1から10までの話を求めたい」と言う例題を考える。和を求めたいRangeオブジェクトを渡すと「Rangeの和を求めるワークシート関数を文字列として返す関数」なんてものをつくってやれば、少し楽ができそうし、応用もあるのは手を付けてはいけないと思いますねえかな? まぁ実際にこつこつアルゴリズムを書くのではなく、計算などはすでにあるExcelのワークシート関数にしまえと言うことになります。(まぁ_手抜き_とも言う) 和を求めるくらいだとあまりありがたみが出ないが、同じ手間でRangeの最大・最小とか2個のRangeオブジェクトを関数に渡して最小自乗法とかさくっと出来ちゃったりするので、まぁ楽チンですね。(実際は統計関係の計算をするときはExcelのバグを知り尽くしてないと危ないですが。まぁ統計をちゃんとしたい時はExcelは使っちゃいけません。ちゃんと統計ソフトを使いましょう。)
ということでコード例。(基本的にVBでプログラムを書くときは型宣言を必須にしましょう。そうでないと全部Variantになったりしますから。あとDim文の使い方も意図しない型宣言になったりしますので注意しましょう。)