最近ADP関連のブログの更新がありませんでしたが、久しぶりのADPの布教活動を。
今年も飛び交う「日本みたいになるぞ」報道に書かれていますが、日本の失われた10年は海外でも悪い見本と取られていますが、もっと驚くことに、引用しますと、
デフレというおなじみのお化けがアメリカ経済の懸念材料として再登場している。(中略)日本のデフレを10年以上も研究した結果、エコノミストたちは次第に、自分たちはデフレの仕組みを何も分かっていないと気づき始めている
にありますとおり、デフレの仕組が解っていない事実に、なるほどと思うとともに『エコノミストは何をやっとんのじゃ!』というある種の憤りを感じたりする。特にソフトウェアエンジニアはコンピュータが動かないとお客からのある種のプレッシャーを感じるのだが、『エコノミストは、この日本の状況下である種の責任感とか使命感とかには駆られないのだろうか?』とか色々考える。
もっとも多くの人も何かおかしいということに気づいているかとは思うのですが、『ではどうやって解決するの?』と思われるでしょう。そ・こ・で、ADPの登場です!(ってかなり強引な宣伝です)。つまり、あ~だ、こ~だと議論ばかりに頼らずにもっと科学的にシミューレーションのような手法を使ってデフレのメカニズムの解明とかの研究をしませんか?という提案です。
ADPですが、Another Data Processorの名前のとおり、経済シミュレーションのようにややこしいシステム(真面目な言葉を使えば複雑系)を容易に記述できるようにというコンセプトで開発を行っています。
サンプルでちょっとした
経済ゲームを作成してみました。
ソースも添付しましたので参照して頂ければ解るかと思いますが、様々な条件や計算を行うシステムでも比較的スッキリと記述できるかと思います。
ちなみに、ゲーム自体は興味本位で作成したのですが、作成したモデルですが、製品を無限に作成できる場合、人口は安定的に増える。ので上限を設けたら、今のところ安定的に人口増加するパラメータが見つかっていません。見つけた人は連絡を!
チョット野暮用が入りADPの開発(というかブログの更新が)滞ってます。自慢にもなっていない記事をそのままにしておくのも何なので、ちょっとしたネタをアップします。
他人が作ったソフトウェアにバグがあったり仕様変更で改修したりする場合、新規で作り直すか、改修するかが議論になったりすることがあります。
良く聞く意見に
『バグバグでソースも汚いので新規で作り直しましょう』
というのがありますが、この『ソースが汚い』という意見ですが、往々にして主観が入っていることがあります。つまり、
その人のコーディングスタイルに合っていない→ソースが汚い
ということを言っている場合があり、この意見を鵜呑みにして新規開発の道に行くのは危険だったりします。
良くあるミスが、既存のコードに入っていたノウハウ(エラー処理や例外的な処理など)が新規開発で消えてしまい、却ってバグバグになったり、実際にはそう見栄えも良くなっておらず結局、工数だけかけたということになったりします。
新規なのか改修なのかというのはケースバイケースの面があり、あまり一般論では語りにくいのですが、私の場合、以下のルールで新規開発を行います。
- 既存のコードがある場合、基本は改修で行います。
バグがあるからとかソースが汚いという理由で新規開発を行いたくなりますが、その程度では新規開発はしません。
- 改修に工数が掛る場合、仕様を完全に把握できかつコーディングテクニック上ではなくパラダイムだったりアルゴリズムが元のコードよりも有効なものが使える場合、先ずは関数レベルから置き換える。
オブジェクト指向を使っていないコードにオブジェクト指向を行ってみるとか、サーチアルゴリズムを別のものに入れ替えるとか、if文の条件が複雑だか良く見ると簡単にできる場合に簡単にするとか、コピーペーストしているコードで共通部分を関数にするとかです。
- 出来ることならテストプログラムを書き、デグレードを防ぐ。
- 徐々に改修するコードを広げてゆく。
とまぁこんな感じでやってます。
ちなみに、自分が過去に作ったコードは結構大胆に書き換えたりします。自分が作成したものの場合、1回目より2回目の方がソースが綺麗に書けるということと、『仕様を完全に把握している』という条件をクリアしやすい為です。
ちょっと前の話ですが、7/11は選挙があったのですが、私にとっては英検の2次試験(面接)がありました。
その日は準備不足もたたって朝からブルーになっていた。準2級を受けた時は簡単だったので気楽に受験できたのだが、2級の問題ではもう少ししゃべらないとダメなようで『イヤ・・・俺にはむり・・・』という感じで、受験する前から敗北感でいっぱいだった。
昼過ぎに会場に入り空調の効かない講堂で結構待たされ悶々としている中で余計なことを考え出した。
ここ10年ぐらい、散発的ではあるが英語の勉強をしてきて、楽しいと思ったこともなくせいぜい周りに、程度の低い自慢をする程度だったのだが、英検2級に合格したい思いとムリという思いが交錯してなんとも言えない緊張感を持ちながら『テストは何時や~』と待っていた。
しまいには気持ち悪くなり(多分、暑さのせいなのだが・・・)、心を落ち着かせようと『平常心、平常心。普通に会話したらええから・・・』と自分に言い聞かせ。面接に挑んだ。
面接官は、欧米人男性の方でどうも朝からのテストで相当疲れているらしく、「あ、はい、じゃこれ読んで」ってなノリで流して来た。
こちらも拍子抜けした感があり、力が抜けて英会話の授業のノリで受験してしまい、テスト中に思わず、「○○の意味ってなんですか?」みたいなことを聞いてしまった。
その時に面接官が顔が曇り、『この男は何を聞いとんのじゃ!』みたいな顔をした。
もちろんテストなので単語の意味を聞くのはご法度で、十数年ぶりの自己嫌悪で悶々とした日々が続いたが、今日の速報を見ると無事に合格していた。あぁ~本当によかった。
IT系の資格試験の場合は合格でも不合格でもなんとも思わないのだが(なぜなら実際に仕事をしていく上で資格が役にたったことは一度もないので)、英検の場合は本当にうれしかったです。次回もストレスに負けないようにテストに臨もう。
2か月程前になりますが、どうも目の調子が悪く眼鏡を変えました。少し度を弱くしたのですが、調子が戻り一安心していたのですが、最近、また調子が悪くなったようで、一部見えなくなった(しばらくすると見えるようになる)ので、慌てて眼科に行きました。
検査では異常が見当たらずお医者さん曰く『眼精疲労』ではないかということで目薬をもらいました。
確かに眼精疲労のようで、目薬をさすと一発で治りました。ただ、根本的にどうも目が疲れているようで、大事にしないといけないようです。
という訳でもないですが、ブログのページを変えました。コードを読みやすくしました。
今から思うと前のデザインは、やっつけ感いっぱいでした・・・。
ADPの布教活動の一環ですが、
freshmeatというソフトウェアの告知サイトがあったので登録しました。
ADP | freshmeat.net
freshmeat自体は、
オープンソースへの参加は難しくない(5)作ってみる 前編 で知りました。freshmeatのサイトは英語が使われているのですが、なかなか親切なサイトで、以下のように私のつたない英語を修正してもらえました。
『ADP (Another Data Processor) is a programing language is designed for Web database programing. It is a scripting language and a lightweight programming language in which it is possible to mix SQL easily. It is easy to install.』
ちなみに元の英文は・・・まぁやめましょう。