Last_Hacks

 この閉塞感に穴を開けよう。

3Dのプログラムなんてないでしょ

 最近ね、Mayaとかでモデリングしたものが、そのまんま表示されるのね。スクリプト書いてやれば、けっこう色々できるし。
 スクリプトもプログラムといえばプログラムだけど、コンパイラの吐き出すコードを手でチューニングするようなカリカリのプログラムに比べたら、覚悟がなさ過ぎてどうもね。

 結局、CGというのは演算機に対してデーターを流し込んで結果を画面にプロットするということなので、コンピューターの能力がものすごく高くなれば、無理な最適化とか工夫とかなしで作ったデーターをそのまま表示できるということだ。ちょうど、耳コピで音を拾ってMIDIで再現とかしていた時代が終わって、サンプリングでよくね、みたいな。
 で、そういう時代になったら、電子楽器からも素人音楽は消えて、売れ線を狙ったプロばかりとなったわけだ。安心して聞けるけど退屈だよね。おそらく映像もそうなるとおもうよ、最後は。

ということで、ちょっと違うんじゃないのという話。
僕が3Dプログラマをやめた理由 または3Dプログラミングを学ぶべき6つの理由 - VENTURE VIEW
  1. 2009/09/09(水) 23:58:59|
  2. プログラミング|
  3. トラックバック:0|
  4. コメント:0

コメントをいつまでも日本語で書いていてもいいのか

 漢字コードがshift-jis,euc,unicode,utf-8と色々と登場するにつれて、昔のソースコードにコメントが読めなくなった。
 もちろん漢字コードを適切に選択すればいいのだが、文字コードをご認識したまま編集したファイルを保存したときは最悪だ。二度と元に戻らない。

 一昔前とちがって、日本人以外の人と一緒にプログラムを作ることが珍しくなくなった。韓国人プログラマーの人がハングルでコメントを書いていて、それじゃ読めないよって、それは日本語も一緒だよね。

 オープンソースの世界では、2バイトコードのコメントをあまり見かけず、英語以外の7ビットコードはよく見るけど、見ているソースが偏っているからかも。

  1. 2009/06/22(月) 23:04:00|
  2. プログラミング|
  3. トラックバック:0|
  4. コメント:0

コード書きたい

調べ物をしようとieを開いたときのMSNの見出しに目もくれず
RSSリーダーのはてなブックマークの釣りにもかからず
twitterの含みのある発言を見なかったことにする華麗なスルーカをもち

食欲はポテチで満たし、決してイスから立たず、いつもコードを書いている。
あらゆることを 計算とシミュレーションを行い そしてググる

コンピュータの前のイスで寝泊まりし
東に壊れたマシンがあれば、行って直し
西に疲れたプログラマーがいれば、行ってデバッグを手伝い
南に死にそうな人がいれば、行ってコードだけが人生でないといひ
北にけんかやそしょうがあれば、OkWaveに投稿しろといひ
ドライアイでナミダをながし、なつでもさむい冷房のへやで、みんなにハッカーとよばれ、リスペクトされず、飲み会にもよばれず
さういうものに わたしはなりたい
  1. 2009/06/07(日) 00:47:15|
  2. プログラミング|
  3. トラックバック:0|
  4. コメント:0

連番のファイルをダウンロードする

 何の因果か連番のファイルをhttpでダウンロードする必要があった。
昔はダウンロードツールというソフトウェアが数多くあったが、サイトを見るともう何年も更新されていないようだ。需要がないのかしらん。ダウンロードしてみたが、使い方がさっぱりわからない。テレホ時代にはあの手この手で通信時間を短縮して、一度ダウンロードした物は大切に取り扱っていたので、やたらと設定が細かい。

 意外に知られていないが、wgetはwindows用もある。wgetを使えば数字の部分を{000-999}とかで指定するとちゃんと1000個ダウンロードしてくれる。惜しむらくはwindows用にコンパイルされたバイナリパッケージでは、この文法は使えないようだ。

 さて、困った。で、思いついたのがThinkPadにはデフォルトでpythonがインストールしてあるので、これを使ってスクリプトで処理してしまえ。

#
for i in range(1,1000):
print "wget http://example.com/%d.jpg" % i


これを、pythonで実行して表示された物をバッチファイルに保存して実行。うまくいきました。

  1. 2009/05/21(木) 00:58:23|
  2. プログラミング|
  3. トラックバック:0|
  4. コメント:0

プログラムを楽しむことを禁じる

 c言語について書かれた本の古典。K&Rであるが、最近は読まないように指導されているらしい。
 理由としてあげられるのが、例えば文字列のコピーとして以下のような例がのっているからということだ。
 while(*p++=*q++);
じゃあ、文字列のコピーとして適切な例を訪ねると以下のような内容だ。
1.strlenで長さを求める。
2.forループで文字列配列をコピー、ポインタは使わない。
3.最後に終端文字列として''を入れる。
 こんなプログラムは書きたくもないので、概要の説明だけにさせてほしい。プログラムが芸術から作業に変化するようだ。

たしかに、whileでの例を理解するためには、様々な予備知識が必要だ。演算子の順番、代入の結果が評価されること、終端文字列の''は評価するとfalseになるといったこと。
 そういう知識のない人が、プログラムを読んで理解できないことが問題らしい。現在は最適が技術が進んでいるので、どのように書いても結果が同じになるから、演算の副作用を利用するようなやり方は意味がないそうだ。

 いやー、確かに正論なんですけどね。プログラム言語のバックグラウンドとか知りたくもないけど、結果だけ欲しいという態度がいやなんですよね。
 コンピュータの演算で最もたくさん行われるのはメモリー間のコピーなのですが、whileの例だとほとんどのCPUは2命令で実行できるんです。先頭に文字長があったほうがメモリー確保とかの問題は簡単なのに、終端文字列が''なのは頻度を優先したんじゃないかと。
 そんな話がつまらないと思うのであれば、cである必要はなくvbとかjavaとか使えばいいんじゃないですかね。あ、好きでプログラムをしているんじゃなかったですよね。

  1. 2009/04/18(土) 23:36:06|
  2. プログラミング|
  3. トラックバック:0|
  4. コメント:0

正しいメールアドレスってなんだ

 正規表現を使った文字列マッチングでの不具合は2通りある。マッチングすべきものにマッチングしないか、マッチングしてはいけないものにマッチングするか。
 さらにその原因は、記号を駆使した正規表現を書き間違っているか、そもそもマッチングすべき文字列にどのようなものがあるかを理解していないかである。
 メールアドレスなんかは最悪だ。うかつに正規表現を公開すると、このように噛み付かれる。
かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜
404 Blog Not Found:「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ

まあ、この手のありがちな正規表現はこちらを参照するのが吉だと思う。
Perlメモ

 メールアドレスの定義は実におおらかで、なんでもアリに近い。が、なぜかピリオドの使い方だけは特別なルールがある。ピリオドで始まることもピリオドで終わることも2つ続けてピリオドを使うことも許されていない。私的な意見としては、もっと禁止すべき文字や組み合わせがあるだろうと思う。
メールアドレス - Wikipedia

アルファベットだけでも頭痛がするのに、他言語対応となるとうんざりする。
 メールを受信するプログラムを作ったりすると、信じられないパターンのメールアドレスに毎日のように引っかかるので、それなりの覚悟が必要。
  1. 2009/03/20(金) 21:44:44|
  2. プログラミング|
  3. トラックバック:0|
  4. コメント:0

技術者主導が社会に受け入れられない理由

 技術者は誰も、なんとなくわかっていることだが、自分の作ったものが一部の人には受け入れられても世の中には広く受け入れられない理由。
 つまりは出来上がってからリリースして改良していくのが実に面倒なのだ。わかっている人はすでに使えているし、これは冗長だろうと思うようなことまでやるのは苦痛ですらある。そんなことより、新しいチャレンジを、せめて新機能の追加を行いたい。わかってはいるけど口にはしない。それが問題だと思うときは開発者ではなくなる。

 でも、言いにくいことを言ってしまうのがこの人のすごさでもある。
 近藤社長「未熟だったと思う」 はてなが目指す“脱IT系” (1/2) - ITmedia News

「エンジニア主導で作ると、動いたところで満足してしまう。『ちゃんと動いているから、あとは使う人が分かってくれるだろう』と、考えをストップするところがあった。本当は、動いたものを説明して分かってもらい、使ってもらうところまで来てやっと完成なのに」


本当にエンジニアを辞めちゃったみたいですね。

 

  1. 2008/12/25(木) 22:26:40|
  2. プログラミング|
  3. トラックバック:0|
  4. コメント:0

ソースコードを読まない理由

 21世紀になって、プログラムを0から組むことができる人は幸せである。たいていのプログラマーの仕事は他人の書いたコードのメンテナンスから始まる。自分流を貫きたい人は、括弧の位置、タブの数すら違うと気に食わないので、一から書いたほうが早い理由をあれこれつける。でも、実際に書き直したほうが早いどころか、完成しないこと多々あり。そうなると、今度は仕様書がなかったからとか。

小野和俊のブログ:プログラマーにとっての読み書きそろばん
 ああ、まったくそのとおり。ネットワークでもデーターベースでもちゃんとわかるまで半年でも1年でもやったらいい。中途半端な知識で色んなものに手を出すから何についても自信がもてなくなる。
 もっとも、何年も経験をつんで得意言語ができてしまったら他の言語に一切興味を持たない、認めないという人も困るけど。


 そういえばgoogle source codeを読むソフトがあるようだ。
統計情報とバグ検出だが、結構面白い。
BUGLE:Google Based Source Code Review
  1. 2008/09/30(火) 23:04:27|
  2. プログラミング|
  3. トラックバック:1|
  4. コメント:0

メールボックスの自動整理プログラム

 今日も自動メール整理プログラムの作成続行。いやぁ、9月はお休みが多くていいね。
 一昨日はActivePerlでppmを使って作ろうとしたのでうまくいかなかった。
 そもそも、元になった記事はこれだ。
メールボックスのメールをExcelに出力 : hiromemo

 いやー、わかるわかるよ。激しく同意。報告書を見て分かったつもりになる人って、分かってないから。
 Ubuntuマシンを1台作ってそこで作業を進めることにした。CPANのインストールも順調でいいかんじだ。

 一通り準備が整ったので、テストプログラムの作成から始める。あれ?、文字化け。そういえば、メールの日本語は実に厄介であることを思い出す。こういうときはJcodeと思ったら、Perl5.8からはEncodeを使うらしい。内部処理がUTF-8になったので、文字化けの心配はもう不要らしい。
 で、Encode::decodeという不思議な記述で変換する。で、文字化け、だめじゃん。
 
 文字化けは、あとで丁寧に対応するとして、目的のメールボックスでテスト。ThunderBirdのデーターディレクトリから対象となるメールデーターを投げ込んでみる。

 ヘッダー読み込みでエラー

 どうやら、過去のメールに何かまずいものが混じっているらしい。ヘッダーとして表示されているのが本文になっている。自分で書いたパーサーではないから、デバッグできない。なんだそれ。だったら最初からパーサーを書いたのに。

 ThunderBirdのメールボックスのフォーマットを探していたら、この様なプログラムを発見。

Mail Export Toolは、様々な形式のメールをエクスポートするソフトウェアです。

いや、あの、欲しかったのは正しくそれなんですけど。(涙目)
やっぱり休めばよかった。

[メールボックスの自動整理プログラム]の続きを読む
  1. 2008/09/23(火) 17:30:55|
  2. プログラミング|
  3. トラックバック:1|
  4. コメント:0

cpanのインストールめんどくさいなあ

 いや、ライブラリがたくさんあって、そこには先人の知恵が詰まっていてありがたいなあと思うんですけど、インストール中はコンソールに張り付いておけっていうのは別の話だと思うんですよ。

yes '' | perl -MCPAN -e 'install MODULE_NAME'

yes!!

スバラシイ
guro_chanの日記 » CPANモジュールのインストールに於いてすべてのプロンプトに自動でyes若しくはデフォルト設定で応答したい
  1. 2008/09/23(火) 11:37:24|
  2. プログラミング|
  3. トラックバック:0|
  4. コメント:0
次のページ