2005/09/11

例によって書いてるうちにぐだぐだ。

プログラミングは楽しいの?

隔日で友人とかと夜ご飯をたべてるせいでイクラが減らないです。こうなったら3食イクラか?

さて、9/9締め切りのレポートも無事おわったので研究室いっても特にやることが無くなりました。まぁそれ以前からも普通に例の「こんなテキストビューアが欲しい」のプログラムを研究室でも書いてるのであんまり研究室にいる意味がないっていうか、まぁ家で一人で悶々としててもしかたないんで昼間は研究室でプログラム書こうかみたいな感じなんですけどね。

ともあれ、WindowsのGDIまわりの関数ってどれをどう使うとか全然知らなかったんですが、ここ数日でぐんぐん吸収してる感じでひさびさに新しいことプログラムしてるって感じです。どーやったらリサイズとかスクロールでの描画が高速に動くかって所をずーっといろんな手段でコード書いて試してたりして、それだけでも楽しいですね。

最初はDrawTextを使っていて、しかも画面に直接書いてたんですが、まぁこれじゃ当然実用なんかにはならないのでメモリDCを用意してそこに書くようにしてたんですが、1回1回描画のたびに1から描いてたのでこれはさすがに遅いらしい。というかそのメモリDCからスクリーンにBitBltするタイミングとかもガンガン減らして最低限の書き換えで済むように…とか、そんな感じでひたすら描画パフォーマンスを追求。

いやまぁ、ベテランWin32プログラマからすればそんなものはこれをこのタイミングでやってこれを使えみたいな定石がきっとあるんでしょうけど、そーゆーの全然しらないし、もうほんと手探りでひたすら高速化できそうなロジックを考えてく訳ですが、逆にそういうのをうんうんうなりながら考えるのが面白いですよね、プログラミングって。

結局プログラマ向きの気性かっていうのは、その「よりよいプログラムのためにうんうんうなってるのが楽しいかどうか」っていう点にかかってるような気がするんですよね。でも、そんなことをデフォルト(ってなんだ)で楽しめる人種なんて言うのはごく一握りなわけです。で、そうで無い人も、そういう人がまわりにいると、そういう人から「ほーらここをこうしてやればもっといい感じになるぜー」みたいなことを教えてもらえて「おおっ、そんな方法が」みたいな感じで教えてもらうっていうことを積極的にやったほうがよいと思うんですよ。そういう風に先人の知恵とかをもらうだけでも十分楽しめる要素が増えると思うんですよね。

とまぁ、そんな感じでプログラミングに興味を持つ人が増えてくれればなぁって思いつつ、いつも研究室でプログラムかいてるわけです。私はデフォルトで楽しめる人種なので、そーゆーのを人に教える手間とかもあんまりいとわないし(そういうことをきちんと教えられる能力っていうのもまた優秀なプログラマに求められる能力の一つですよね、と思ってます)、聞きに来てくれればいくらでも教えてあげるのになぁと思いつついつも研究室でお茶飲みながら窓際でぽわぽわして一日をすごしてるわけです。

まぁ延々とただ聞かれてもこっちの仕事に差し支えるのでおいおいって感じですけど、「ちょっとよくわかんねーから一緒に考えてくれないかなぁ」みたいなのが理想ですかね。人間は考える葦であるとはよく言ったものですが、考えることをサボるととたんにどんどん考えることが不得意になっちゃいそうで(文を書くことをサボると物書きがヘタになりそうなので、とりあえず継続的に書いてるのがこのサイトってわけだ)、そうなりたくないって言うのが私の原動力って所でしょうか(なんの)。

というわけで、なんか話がものすごくずれましたけど、高速化のためにうんうんうなった結果、DrawTextじゃ遅くてやってらんねーってことでExtTextOut使ってみたらすげー早くなったりして、びっくり。とりあえず大きなファイルを開かない限りそこらへんの軽快なエディタとかと同じぐらい描画が軽々動く感じになって、やればできるもんだなぁーって感じです。もうそろそろ色分けできるようにしちゃえば自分用としてはすぐに完成しそうな予感。

そういえば、ノートPCを修理に出そうと思ったんですけど、なんか実家のほうがごたごたしててまた突然実家帰らなきゃならない可能性とかがでてきてるのでしばらくノートPCの修理は様子見ということに…。まぁ10月はいる前には出したいところですなぁ。

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac