hirax.net::Keywords::「プログラミング」のブログ



2007-08-28[n年前へ]

今更ながら…のRubyハマり 

 これまで、Perlでしていた作業をRubyに変えた。物忘れが激しいので、すでにPerlの文歩を忘れてしまった…ということもあるけれど、データ処理をすることが多い仕事では、Ruby(単にArrayクラスのおかげなのかもしれないが)の方が楽に感じるようになったからだ。
 ふと、気づいたことがある。なぜか、ある言語を勉強しようとして、他の言語がわかるようになったことが多いような気がする。Perlを勉強しようとして、始めて、Mathematica が少し理解できるようになった。WebMathematicaは、もちろん、eRbの理解を早めてくれた。そういえば、Photoshopのプログラミング・マクロ記述可能なプラグインを作ろうとして、Perlの作りやMatLabの作りがほんの少しだけ理解できるようになった気がする。

 暗い星を眺めようとする時、その星を見つめようとすると、その星は見えなくなる。網膜の感度分布のせいで、どうしてもそんな風になる。だから、暗い星を眺めようとするなら、その少し横を眺めなければいけない。何だか、少しそんな感じだ。

 ここ半年に覚えようとしたのは、WebMathematica, Ruby, Rails, Matlab という辺りだ。これらは、何に繋がっているんだろうか。

2007-09-09[n年前へ]

「ヒューリスティクス」と「焼き肉」と「ビール」 

 NTTがテレホンカードを導入した頃、20年くらい前、KORGのM1を抱えながら、武蔵野線に乗って初めて柏に行った。夏休みを迎える頃、「運河」近くで2,3日過ごしたような気がする。朝から晩まで技術工作をして、夜は運河へ蛍を見に行って、確か2,3日の時間を過ごしたような気がする。

 70年前の「いかにして問題をとくか」を読んで、ようやく「ヒューリスティクス(発見的論法)」の意味がわかった気になりました。
 その時のいつかの早朝に、ゴミ捨て場でFtbというカメラを拾った。1年もしない内に、そのカメラは永眠したけれど、そのカメラには色んな影響を受けた。少なくとも、その後の20年くらいは、そのカメラに影響を受け続けた。
 人はやがて いつかみんな 死んでしまうのですから
 それから何年も経ってから、繰り返し柏近くへ行くようになった。その近くで、1月半ほど過ごしていたこともある。午前の5分間の休憩と、45分間の昼休みと、午後の7分間の休みを経て、いつも夜には中華料理屋でビールを飲んだ。
 今年の初め、東京大学大学院 新領域創成科学研究科で話をしてきました。その夜は、基盤情報学専攻の某研究室の人たちと焼き肉屋で美味しいビールを飲んでいたわけです
 とても美味しかった焼き肉は、ふと思い返してみれば「牛鈴」だった気もする。 いや、違ったかもしれないけれど、茨城の県道沿いにある、焼き肉屋までテクテク歩いて行った気がする。…つまり、それをひとことで言うならば、つまりは「最高に美味しい焼き肉」だ。
  ヒューリスティクス(発見的論法) AならばBであるとき、Bだった→Aは正しいらしい

"How to Solve It" George Polya@1945
 確実なことも、100%正しいことも、きっと世の中には存在しない。そんな世界で、ポリア教授が書くヒューリスティクス(発見的論法)は、とても新鮮に響く。
 なにか心配事があってもだいじょうぶですよ
 それから、繰り返し柏に行くようになった。行く目的や、行く立場は変わっていったけれど、何度も何度も柏へ、あるいは、柏近くへ行くために柏を通り過ぎた。
「女性を感じさせないから(感じる前に終わるし)、体内を(女の子になるX精子が生き残りやすい)酸性のまま」にしておけるし、「ゴールから遙か遠くから、精子耐久レースを始めることができるから、酸性に弱い(男の子になる)Y精子を最後まで行かせない」ことができる…というような告白が「遺伝的アルゴリズム、遺伝的プログラミング、人工生命」というキーワードとともに語られたのです。
 「こんなものがあったらいいな」と思うことがある。けれど、そんな時「そんなものがあったらいいな」と思ってくれる人がいないことは多い。「そんなもの」が「どんなもの」なのかわかってくれる人はいないのが普通の当たり前だ。
だって、人には 限界があるのですから人にはできないことも あるのですからだから 一生懸命がんばったらあとは神様に おまかせすればいいのです
 そんな時、「そんなもの」が「どんなもの」なのかを実際に作り出すことになる。そのための長い時間が、一番楽しい時間だと私は思う。作り出した瞬間はほんの一瞬で、その峠を過ぎる一瞬が訪れたと同時に、その瞬間は過去の事象に変わる。だから、「そんなもの」が「どんなもの」なのかを作り出すための長い時間が、一番楽しい時間だと私は思う。
 だって、人はやがて いつかみんな 死んでしまうのですから

2007-12-27[n年前へ]

「ファミリーレストランで待たされないコツ」と「高速計算プログラミングのコツ」 

 雑学本を読んでいると、「ファミリーレストランでは焼き物・揚げもの・ゆで物といった種別ごとに調理担当者が決まっていて、一つの種類に注文が集中すると一度に何人分も処理できなくて、できあがりが順次遅れていくことになる。だから、ファミレスで早く同時に料理ができあがって欲しい時には、バラバラな種類をオーダーするのがコツだ」というようなことが書かれていた。

 これを読んで、思い出したのは「コンピュータで処理速度を速くしたいときのプログラミングの基本」である。たとえば、計算機の中で、処理がどのように行われるかを考えて、できるだけ効率的に並列化されるようにプログラミングをする。特定のユニットの処理が全体のボトルネックにならないように考える、といった話だ。 ファミレスの厨房の中で働く人たちに流れてくる注文や、計算機の中の色々なユニットに流れてくるさまざまなジョブを、それぞれの役割・機能に応じた処理を行っていく。 どこか一つに仕事が集中すれば、そこの速さで全ての処理速度が決まってしまう。 だから、上手く並列化・分散化するようにJOBを流すように工夫することで、早く料理を食べたり、計算結果を早く得たりする。

 しかし、振り返って考えてみれば、こういった「ファミリーレストランで待たされないコツ」と「高速計算プログラミングのコツ」といったことは、結局どんなことに対しても当てはまるのだろう。 どんなものも、どう中身が動いているかを考えて、上手く動かせば効率化できるに違いない。 もちろん、効率だけを考えるのも、それはそれで少しつまらないかもしれない。 どんなに調理に時間がかかっても、食べたいものは食べたい、と思うこともある。 人気ラーメン屋の前で、何時間も行列に並ぶ人たちがいるように。

2008-01-10[n年前へ]

ビジュアル(画像など目に見えるもの)を操作する言語"Substroke" 

 ビジュアル(画像など目に見えるもの)を操作する言語Substroke

2008-02-02[n年前へ]

ビジュアル画像スクリプティング環境を作る 

 「ビジュアル簡易スクリプティング環境」を作ってみようと思う。画像処理プログラミングに「ビジュアル言語」が向くかどうかは疑問なのだけれど、既存の処理の「組み合わせ」だけを変えるだけですむような用途であれば、そして、GUIの設計も同時に行わなければいけないような用途であれば、「ビジュアルなスクリプト」でも良いような場合もあるかもしれない。

 ひとまず、操作感はYahooPipesを模範にし、処理データはImagePipesに準拠するようにして、叩き台を作ってみることにしよう。



■Powered by yagm.net