2010年6月26日土曜日

オブジェクト指向と個人差

これまで仕事したプログラマーの同僚にもC++よりCを好んで使う人、Perl 、PHPで開発をしているのにクラスを作ることを好まない人っていた。
オブジェクト指向が好きな私からは見ると、まるで石器時代の生活をしているように見えた。「この人はどうしてこんな便利ものを使わないんだ?」って。

私がオブジェクト指向が好き好んで使っている理由は、オブジェクト指向でない開発を行った場合、グローバル変数と関数の記述位置を上手く把握出来くなるからである。「あの変数ってどこに書いていたっけ?」ってことが良くあるし、スパゲッティーコードに陥りバグの修正に四苦八苦する。
私個人の傾向として「単純記憶」が苦手だ。それを補うために関連性を記憶の動機付けに利用する。"BAR"っていうグローバール変数をどこで書いたかを覚えておくより、"FooクラスのBarメンバー変数"って憶えていたほうが忘れずにすむし、より多く把握しておける。結果的にオブジェクト指向でプログラムの設計を行うようになる。プログラムの規模が拡大した場合、記憶力だけでは全体を把握出来ないので、思考力で対応している。

オブジェクト指向を好まない人って、どんなにソースコード長くてもファイルが多くても、グローバル変数と関数の記述位置を細かく把握していているみたいだ。なおかつバグも少ない。「単純記憶」が得意なんだと思う。

各々のプログラマーがオブジェクト指向を好むか好まないかは、単純な好き嫌いの問題だけでなく、「記憶力」や「思考力」の個人差も要因なので、オブジェクト指向を好まない人を単純に非難するのは良くないと思う。

2010年6月23日水曜日

ubuntu の「ファイアウォールの設定」が起動しない

多分X11かgnomeがディスプレイの利用を許可しない不具合。なぜかほかのシステム管理ツールは起動する。(Ubuntu 8.04)

$ sudo /usr/bin/python /usr/share/gufw/gufw.py

で起動する。


起動しない


あ、gufw ってパッケージをダウンロードして自分で入れたんだったな..

2010年6月22日火曜日

PHPのフレームワーク比較

PHPにはフレームワークがあって、大きく3つ、ZendFramework, symfony, CakePHPがある。
どれを使うかは悩ましい。


PHPフレームワークの機能比較 - PHPプロ!
ってページがあるのだが、2年以上経って状況が変わってきてるし、自分なりにPHPのフレームワーク比較してみた。

2010年6月12日土曜日

Flash と HTML5

Apple は HTML5 が Flash に代わりゆる技術と考えているようだ。


Apple - HTML5
http://www.apple.com/html5/


私の考えとして、Flash の開発ツールの値段は高い。だから HTML5 は歓迎だ。


プログラミングしていても単体の Flash Profesional だけでなく、結局 Adobe Crative Cuite を買うはめになる。グラフィックデータ効率よく Flash に取り込むには、Photoshop や Illustrartor が必須で、プログラマーの私でも作業効率の面で Flash Profesional 単体では辛くてCrative Cuiteを購入しなければならない。


Adobe Crative Cuite は20万以上して Microsoft の開発ツールに匹敵する高額な出費を強いられる。
大企業にいても開発部門でもコーディングを行う Flash Profesional と Flex 以外の購入申請は通りづらいし、個人や中小企業でも高額すぎてすぐには購入できない。なかなか満足出来る開発環境で Flash を使った開発が出来ないが現状だった。


HTML5 って言っても HTML には変わらないから、Ajax や CSS のテクニックの延長で、目新しさには欠けるけど。


でも、"Apple - HTML5" ってページ、Chrome じゃ開けんじゃないか!

Apache 2.2 と Tomcat mod_proxy_ajp で


Java のWebアプリのベンチマークテストをしようと思って、久々に Apache と Tomcat の連携をしてみた。サーバーOSには CentOS (RedHat) 5 を使うだろうから、Apache はバージョン 2.2 以降の使用を前提に考えた。
Apache バージョン 2.2 以降では、Tomcat との連携に mod_proxy_ajp を利用する。

mod_proxy_ajp って Apache 2.2 本体のソースに含まれていたんだぁ。mod_jk の時みたいに別途ソースコードが配布されているんだと思って、Apache プロジェクトのサイトで探してしまった。
mod_proxy 同様に Apache を ビルドするときに、configure オプションに追加して導入する。mod_proxy_ajp は Tomcat 自体はビルドの際にはいらない。
最近の Linux ディストリビューションではパッケージに含まれているので、そのまま入れてもよ良い。

これは便利だ。

2010年6月6日日曜日

旧日本軍と在日米軍 二大政党制とファシズム台頭の不安

安倍、鳩山。3年の間に二人の首相が米軍絡みの問題で辞めた。


話は変わるが、戦前の日本の内閣は軍部と意見が合わなくなると、陸軍大臣あるいは海軍大臣が辞任して、軍部は次の大臣を内閣に送らず、結果、総理を辞職に追い込めた。
軍部は首相を辞めさせる権限を持っており、その事が軍国主義の台頭、大日本帝国の滅亡につながってしまった。(軍部大臣現役武官制)


今は米軍がその権限を握っているようだ。インド洋自衛隊派遣、普天間基地移設、日本の世論が米軍の意図と反対に向かい出すと、政権を米軍と国民世論の板挟みにして、遂には首相を辞任に追い込む。つまりハラキリ。
日本人はハラキリに同情的なのをアメリカ人は知っている。首相が腹を切れば、吹き上がった反対世論は収束する。


現代においても、旧日本軍が米軍に変わっただけで、日本の政権の安否は軍に握られている。こんなことで日本は民主主義国家と言えるだろうか?しかも外国の軍の圧力だ。
こんな調子だと戦前みたいに、いつか日本はファシズムに支配されると思う。「独自戦力による防衛」は多くの日本人の希望であると思うが、強力な独裁者が出てこない限り、米軍を追い出して、憲法改正も解決して独自戦力による防衛までに進めることは出来ない。
実際、度重なる首相の辞任で、一部の日本人は独裁者の出現を期待している気がする。すでに地方では鹿児島の阿久根市のように独裁的な首長が出て来ている。


バブル後の日本の政治は、第一次大戦後の流れにどこか似ていて心配してしまう。
「歴史に学ぶ」ことが大切である。

PydevのDjango対応

最近(2010年6月時点)、EclipseのPythonプラグイン PydevがDjangoに対応して、新規プロジェクトの作成や "manage.py" でのコマンド実行が簡単に行えるようになった。


GAEでDjangoを試そうかと思っていたので、これはありがたい。



ScalaはHaskellっぽいJava


Scala ってどうもとっつきづらくて、サンプルソースを見ていて「この記号ってどういう意味よ?」って考え込んでしまう。Java っぽいけど Java とは別の思考が必要なのだ。

ふと思ったことは、「Scala って Haskell っぽい Java」なんだってこと。ネットを見ていいて、Scala に熱狂的な人を見かけるんだけど、そういう人って Haskell を触ってそれを気に入っていた人なのかなって思う。Haskell を実務で必要とする機会は皆無なのだけど、それが JVM 上で動くとなると、Scala に熱狂してしまうんだと思う。

確かに、Scala の Actor は魅力的で、Twitter が採用したのは納得できる。Twitter のようにメッセージ処理が主要な機能のシステムには良いが、小・中規模のWebアプリケーションにはActorのようなメッセージ処理は必要無い。

Scala は実務で採用しても開発メンバーの生産性が向上するまで数ヶ月はかかるはずだ。動的言語としては既に Ruby, Python, Groovy があるし、習熟度による生産性の問題を考えれば、そちらの方が良いと思う。

でも、Haskell 大好きな人たちからは、Scala はあまり好意的でも無いようだ。

「Haskell 大好きっ子から見ると Scala は気持ち悪いことこのうえない言語である」
http://madscientist.jp/~ikegami/diary/20080512.html