開発環境何使っていますか?
2007.05.29
会社でJavaのコードを書くときは、Eclipseを使っています。Eclipseはマシンスペックさえよければ、そこそこのJavaの開発環境です。社内には頑なにemacsを使いつづけている人もいますが、横で見ているとかなり無理があるように感じます。コードを書くのがemacsでデバッグがEclipseとかって、何か変でしょう?さて、Javaの場合、ドメイン名がパッケージ名とある程度対応付けされています。会社のドメインはariel-networks.comなのでとにかく長いです。それに加え、他のパッケージも含めると強力なIDEの助けなしにはやっていられません。また、Javaの場合、メソッド名も長くなる傾向にあります。体感として、10年前のメソッド名よりも今のメソッド名の方がかなり長くなったように感じます。長くなる原因がIDEでコード補完というか、インテリセンスのようなもののせいだと思っています。そのせいでメソッド名を覚える必要もなく「.」と打てば大抵必要なメソッドは捜し出せます。メソッド名が長くなったからIDEが進化したのか、IDEが進化したからメソッド名の命名規則が変わったのかは知りませんが、おそらく後者だと思っています。つまり、ツールによってコーディングスタイルも変化するということです。ただ、それがいいことなのかはわかりませんが、emacsを使ってJavaの開発ってどうなんでしょう?(ちなみにemacsも頑張ればとても快適に使えるらしいですが、ぼくはそこを頑張るつもりはまったくないです。)
さて、プライベートではJavaなんてやってられません。プライベートはもっぱらPython(時々C/C++)ですが、この時はemacsを使っています。メソッド名も変態的にながくなることもなく、パッケージというかモジュールも適切な程度には短いです。これに加えてipythonでインターラクティブにコードを書いて、逐次動作確認できるので、とても快適です。ディレクトリ構造も無意味に複雑になることもないです。でも、それはツールによる制約なのか、ポリシーによるものなのかはしりません。おそらく複雑にする必要性がないだけなのでしょう。
PythonもEclipseを使おうとしたときもありますが、重すぎ。さらにsshでリモートのサーバで作業することも多いので、やっぱりemacsが便利。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.29 22:52
さびれゆくコンピュータスキル?
2007.05.29
MyCOMの「本当に"死んで"いる? さびれゆくコンピュータスキル"トップ10" - 米誌調査」の記事ですが,ccMailなど懐かしい名前もあがっています。
さて,そんなコンピュータスキルの一つに「C言語」があるらしいです。これはちょっと意外でした。記事の中に
「C++やC#は現在でも現役だが、ベーシックなC言語しか知らないプログラマを探してみると、見つかるのはたぶん失業者か、他の新しい技術スキルを勉強中の人だけということになるだろう」とあります。CとC++を同系統とみるのはわかりますが,C#もCの仲間と見るのはちょっと面白い視点です(皮肉です)。社内ではC#はJavaからの派生と見る向きが多いです。
さて,ベーシックなCしかプログラマは廃れていくと言うのは正しいかもしれません。Cでの製品はWeb系のプロジェクトの増殖により相対的な割合が減っていくと言うのはわかりますが,Cの製品がなくなる事はないでしょう。LinuxだってCだし,PythonやRuby(Rubyは想像)のインタープリタもCだし,Apacheも。割合の現象を,絶対数の現象ととらえているような感じがします。
まあ,全体としてそれだけしか知らないと困りそうで,実際の現場ではもっといろいろなことを知らないとやってけないだろうなとは思います。常に新しいものや知らない事を追い求めつつも,基本的なことを固めていれば、その技術が廃れてもなんとかなるものです。
ちなみに,CもC++も僕には難しすぎます。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.29 14:20
若者ほどubuntuを使う?
2007.05.28
僕の働いている会社が特殊なだけかもしれませんが,会社では若者ほどubuntu linuxを好んで使う傾向にあります(数字はだしません)。Gentoo Userも含めると,Linux率はさらに高くなります。昔からDebianしか使えないおじさんの開発部長や、頑にWindowsとMSXしか使おうとしないanakaさんなどに比べ,若者はubuntuが多いです。
世の中はFedoraCoreを使う人が多いと思っていたのに,FedoraCoreのユーザはいません。ubuntuはセットアップが楽だからか,僕が勧めた(強制した)せいかはわかりません。もしくはFedora Coreを馬鹿にしたせいか・・・。ただし,Gentooは特殊(とんがりすぎている)なので、これは勧めてもユーザ数は増えません。まあ,ソースコードの管理サーバはGentooですが。
さて,そんなubuntuユーザですが,みんなBerylで3Dエフェクトを楽しんでいます。これを使えば,VistaやMacのエフェクトなんてまだまだです。もっとも著作権や特許が絡んでいたりするので微妙なところですが・・・。
さて,Linuxにして困る事はと言えば,GyaoなどのDRMのコンテンツが見えない事ぐらいですか?もっとも,会社の18歳ハッカー君はWineでInternet Exploreを動かしえ楽しんでいるみたいですが。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.28 18:08
システムのせいにしちゃいけない
2007.05.24
ロータスに入ったばかりのころは、Notesによって会議が減ると信じていました。希望していたのかもしれません。それから10年ちょっと経ってみて、会議の数は減ったのでしょうか?グループウェアを導入すれば情報の共有ができると言われていますが、本当に共有できているんでしょうか?(今は情報なんてものは共有すべきじゃないと思っていますが、そのためのシステムは作るが難しいです)
共有すべき情報量が多すぎて共有しても意味がないとなって、それを見つけ出せる仕組みだとかいって、全文検索の焼き直しをナレッジマネージメントと声高にいっても、増大し続ける情報に対して追いつくはずもありません。そして混沌に帰していきます。
そんな前置きですが、人が多くなれば次第に統制は乱れていくので、そのためのシステムは整備しなければいけません。人数がさほど多くない時期には、システムはまだ出来上がっていません。出来上がっていないので、システムを作ろうと作業するのは悪いことじゃありません。つまり、人の頭の中にある情報を文書化するという作業です。でも、文書化すればそれですむかといえば、そんなことはありません。また、システム化されていないので、どんな情報が必要なのかもわかっていない常態です。つまりは、わかんないことがあったら聞いてね、ということです。それがわかったら、ちゃんと文書化してほかの人の役に立ちましょう、と。つまりはコミュニケーションをとりましょう。
でも、それなりに文書化しても読んでほしい人には読んでもらえないし、検索しようともしません。一方で、システム的に見つけにくいから情報が利用できないということだけが不満としてあがります。つまり、システムをちゃんとして、情報を残していけば問題は解決すると。
反論はあっても、その文書化された仕組みができたはずなのに、その人はそれを使って見つけようとはしませんでした。そして、やっぱり混沌の中です。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.24 22:55
Software Designの新人教育の特集
2007.05.23
今月号のSoftware Desginに新人教育の特集がありました。時期的にちょっと遅いような気がしますが,僕の会社には新入社員がいないので参考までに読み流す感じです。
読んでみて,大企業もベンチャーもそれぞれ大変だなー,と言う印象です。大企業の新人教育はちゃんとしていて凄そう(IBMのコンサルは確かにきれいなプレゼンを作っていた)です。でも,多分、僕はベンチャーの方があっているのでしょう。
さて,その特集ですが,のっけから「最近の若者は我慢ができないのですぐやめちゃう」とか「うたれ弱い」とか、そんな感じのことが書いてありました。そういう論調は確かに面白いし,新人教育をする人たちからすればそう感じる事は多いんでしょう。でも,おじさんたちから見るといつでも若者に不満がある訳で,今の若者は会社で頑張らなくても飯は食べていける訳で,仕方ないんじゃないかな。まあ,やめられると採用にかけたコストが無駄になるし,監督不行き届きとかの烙印もおされるし,やめてほしくないと言うのはわかります。
でもって,他の職種についてはわかりませんが,プログラマにとっては会社からプログラミングを教えてもらおうと言うのはそもそも間違いです。技術的なことは自分で取得しないといけません。会社はプログラミングは教えてくれません。会社で学べるのはプログラミングについてではなく,仕事の進め方とか,チームでの作業の仕方(よくも悪くも)だけです。と言うのは言い過ぎですが,そのつもりで勉強した方がいいです。
新人研修の頃,プログラミングのお話をまじめに聞いていなかった僕のいい訳です。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.23 18:01
1人月100万円
2007.05.22
タイトルの100万円は適当です。実際の単価はしりません。
まず、僕が今働いている会社とロータスの間に一年ほど別の会社で働いていました。たしかCAD関係のソフト会社だったと思います。ソフトの単価が1千万円ぐらいでその周辺もあわせると2、3000万円のシステムだったとおもいます。さて、そんな会社で純粋な開発をやっていたわけじゃなくって、お客さんの所に行って、やりたいことを聞いて、ベストな方法やらなにやらをでっち上げて、今まで1日の作業が1時間になるとほらを吹いていました(とっても誇張しています)。さて、ベストな方法ってやつは、それはそのあとに僕が作ることになっていました。
さて、そのときに多分、1人月100万円ぐらいで見積もっていました。大体、2人月ぐらいの作業が多かったです。僕が作るので、僕が2人月かかると言ったら相手は信じてくれていました。信じさせたともいいますが。さて、1人月はどれくらいの作業量なのでしょうか?
仕様の詳細を煮詰めるのに実質1日。純粋な開発は2日ぐらい。テストが一日ぐらい。テスト導入してもらってバグフィックスが2日ぐらい。のこりがコミュニケーションの待ち時間。つまりは、1人週を1人月としていました。でも、開発の開始から検収まで一月になるので、みんなハッピーでした。まあ、1人月100万円は割りと安いのと、ソフトの単価が高いので、全体としてつじつまがあうのかもしれません。とりあえず、工数というのはいい加減なことが多いです。意識的にそうしている場合と予測不能の場合がありますが・・・。
さて、僕が前の会社に入れたLinux(Kondara)はどうなったのでしょう?すべてのサーバを統一して一つの箱にいれて、いろいろやったはいいけど、僕がいなくなった後のメンテナンスは誰もやっていないし、そもそもKondara自体がなくなったし。それでも世界は回るものです。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.22 23:37
一年ごとに調子が悪くなっていくルーター
2007.05.21
無線LANのアダプターやらルータは、僕の家では1年ごとに調子が悪くなっていきます。ルータの場合は,プロバイダーと接続できなかったりです。通信速度が遅くなったりもしますが,実測で50Mbpsでていたものが10Mになったところであまり気になりません。動画を見ていないときであれば数Mあればいいです。
無線LANもだんだんつながらなくなってきました。以前は無線LANとルータは分かれていたのですが,両方がタイミングよく壊れたのを機に無線LAN内蔵のルータになったのが一年前です。でも,だんだん,無線LANが繋がらなくなってきました。きっとタイマーが内蔵されていてるのでしょう。ただ,Wiiがうちにやってきたあたりから繋がらないことが多くなってきたので,ひょっとしたらWiiのせいかもしれません。
新しいものに買い替えようと思うのですが,gやらnやら難しいことがおおくて困ってします。まあ,今gを買うと負けた気分になるので、もう少し我慢するんでしょう。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.21 16:32
相互評価
2007.05.18
僕の働いている会社では,相互評価というのをやっています。親会社がやっていたのをまねた物で,エンジニアがお互いを評価しあうものです。ロータスにいた頃も評価と言うのはあって、それは自分に対して自分で評価して,あとは上司の評価も加わります。大なり小なり似たようなしくみはどんな会社にもあるでしょう。僕の会社では,自分と上司だけでなく,一般の社員同士も上下関係なく評価し合うものです。年に一度行なっています。
そんな相互評価ですが,それ相応の仕事をしていれば,年とともに責任範囲が増えていき(増えていかない人もいますが),自分以外の人の面倒もある程度は見ないといけません。つまり,相手が何をしているかなどを把握していて,評価できるだけの材料を持っています。
でも,若い人たちっていうのは、まだ全体を把握していない事も多く,評価できだけの材料を持ち合わせていません。30センチの物差しで空の高さを計るようなものです。ただ,小さな会社ななので、お互いが何をやっているかや、どうやって仕事をしているかなど,把握してほしいというのもあります。
一方で,自分が彼らの年のころ、つまりはロータスにいた頃,隣の人が何をやっていたか知らないし,興味もありませんでした。会社がどうなろうと知った事ではないし,自分の仕事をちゃんとこなしていれば、あとは気になりませんでした。かつての自分と比較すると,可哀想なのか,それとも彼らはとても恵まれた環境なのかはよくわかりません。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.18 15:27
16進数でFの次の数は?
2007.05.14
会社の生粋のJavaプログラマに「16進数でFの次の数は何ですか?」と聞いたら,「0」と言う答えが返ってきました。Javaで16進でものを考える機会は少ないせいかも知れません。悲しい限りです。
JavaではCに比べてあまりビット演算をしません。そういう流れなのかもしれません。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.14 17:28
会社にテレビが来た
2007.05.11
会社にユーザインターフェースの研究用のモニタが来ました。俗にいうテレビです。UIの研究をしやすいように37インチのフルスペックパネルの亀山製です。東京タワーが見えるオフィスなので,地デジもアンテナなしに見る事ができます。DVI端子もあるので,プレゼン用のモニタとしても使えます。
さて,UIの研究用なので、会社のWiiを接続しなければならないのですが,本格的な研究はまだ(本当は面倒)なので誰もやっていません。
今までのUIの研究では,スピーカーがなかったので,ドラゴンボールで研究するとき,カメハメハをだしても音が鳴りませんでした。そのため,UIの研究に臨場感が足りませんでした。今後は音もでるようになったので,UIの研究も楽になりそうです。
フルスペックハイビジョンなので,UIの研究を加速するためにPS3が必要になるかもしれません。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.11 17:30
どうしてプログラマに•••
2007.05.10
「どうしてプログラマに•••」がちまたでは流行っているらしいです。全体として信用できないところも多いです。ひょっとしたらプログラミングをした事がない人を2週間の研修の後一人前のJavaプログラマとして面接をしたりしていれば、ある程度は本当かもしれません。
ちなみに,Javaの人は16進を扱う(で考える)場面が少ないので,16進でFの次は何かはわかなくても仕方ないかもしれません。
さて,この中の
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
がいろんなところで答えられています。まあ,LLだとワンライナーのお話で2分はかからずに遊ぶ事ができます。で,Javaだとまあ,数分はかかるかもしれません。で,面接でこんな事をいきなり聞かれたらif文で分岐させることになるかもしれませんが,こういうときは,相手を見下した目で見て,「if分を使ったら負けです」と答えましょう。と言うのは冗談ですが,if文での分岐をせずに書いてみましょう。僕の書いた物はgoogleさんに聞いてみてね。運がよければ見つかるかも。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.10 00:55
スループット
2007.05.08
一人で開発している場合も、チームで開発している場合も基本はおなじかもしれませんが、開発で大事なことの一つにスループットがあるかもしれません。
通常のソフトウェアの開発だと、基本設計があってコーディングがあって、テストがあって、そのバグフィックスがあって、それらがくり返されます。コーディングの所は最近流行のユニットテストだとか、テストファーストだとかあるかもしれませんが、全てのケースがそれで網羅できるわけでもなく、網羅できていればソフトウェアにバグはなくなるかもしれませんが人間は神ではありません。そんなわけでテストも存在していて、きわめて職人的なテスターがいない状況ではテストケースの網羅性を高めるには人の目を増やすしか今のところ思い付きません。(つまりコードを書いた人以外の人のテストが必要ということ)
まあ、そんなことをいいたいわけではなく作業が人から人へ流れていく場合、一人の人で閉じている場合より、その連携の部分で遅延というか停滞というか、ふどまりというか、そういうことが起こりやすいです。連携が必要になる部分ではそういうことが起こりやすいですが、今だに解決の糸口が見付からないのがコーディングとテストの間の歩留まりです。コーディングができても最後の統合テストまでテストが全然進みません。テストの開始までの立上りがなぜかとても悪いです。実際の作業効率もそうですが、心理的なものもそうです。僕は昔はそれほど、心理的なものは重視してませんでしたが、最近は実際の作業内容よりどれほど真剣にやっているかとか、そんなことしか見なくなりました。で、「最後のテストで見付かればそれでいい」と言うテスターの心の声が聞こえてきそうです。
僕がそのへんのマネージメントをしたときは、北風のようにしたのですが、機能したようには思えません。他の人が太陽のようにマネージメントをしても、先ほどの心の声が大きくなったようにしか感じません。
結局、人間は弱いものなのかもしれません。僕があせりすぎているのかもしれません。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.08 23:58
XMLは嫌だなー(ぼそっ)
2007.05.07
最近,社内でforrestというドキュメントを管理するシステムが導入されました。他の人たちが決めたのであえて反対はしませんでした。僕が嫌なのは,このシステムのオリジナルのデータはXMLで管理しないといけない事です。そして,ドキュメントを書く人にはXMLを書く事を強要しています。
さて,XML自体はそれほど悪い物だとは思っていません。forrestがXMLをパースして,PDFとかHTMLを生成する事は妥当かもしれません。いろいろなシステムからのドキュメントの生成を考えると中間フォーマットとしてはXMLは妥当でしょう。でも,XMLを人間が直接書くと言うと話は変わってきます。WIKIもフォーマットを覚えないといけないので諸手をあげていいとは言えませんが,XMLはさらに冗長です。コンピュータが理解するにはいいかもしれませんが,人間が直接書く代物ではありません。なんらかのGUIなエディタ(Webベースでもいいし,PCにいんすとーるするものでもいい)があると思っていたらそういう物はないらしいです。せいぜいチープなEclipseのXMLエディタぐらいしかありません。しかも,XMLがValidだったとして,それが正しい構造になっているかは別のシステムでドキュメントを生成しないとわかりません。
つまりは,XMLを一杯手で書いてきたことがあるので,僕はXMLが嫌いだ!せめてYAMLにしようよ。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.07 18:55
サーバの時間
2007.05.02
会社はよく停電します。正確にはブレーカーが落ちます。社内のソースコード管理サーバもその影響を受けて突然シャットダウンしました。再起動をかけて正常にすべてが動いているように見えました。でも,起動時にntpで時間合わせをしているのですが,見事にネットに繋がらなくって,時間合わせが狂ってしまいました。
さて,進んでしまった時間をどうやって戻すか?ソースコードの管理は時間が大事です。時間を進めるのはともかく,戻すのはいろいろ問題です。Subversionはそれほどでもないですが,CVSは困り者です。さて,メインで使っているのはSubversionなんですが,やっぱり時間を戻すのは心理的に嫌です。若いエンジニアは思い切って戻しましょうと言いますが,やっぱり踏ん切りがつきません。でも,操作を間違えて自分で戻してしまいました。
周りにはSubversionだから大丈夫に決まっていると強気の態度に豹変していました。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.02 22:24
Vistaに正規品じゃないと怒られる
2007.05.02
ライセンスとか認証はいろいろ微妙な問題を多くはらんでいます。ちゃんとお金を払って買っている身としてはあまりめんどうな作業を増やしたくはありません。
さて,昨日,Vistaを起動すると「このVistaは正規品ではない」と怒られます。リンクがあって,そこで認証できると説明されていますが,そこで認証しようとしても正規品じゃないと怒られます。でも,Dellから買ったはずの物です。Dellは海賊版をうっているのかと疑いながら再起動します。
次は勝手に認証しようとして、今度は成功します。でも,Aeroは無効になっているし,デスクトップの右下には正規品じゃないと文句をいっています。もう一度再起動すると,今度はすべてがOKでした。
うーん,開発者かオタクじゃなかったらつき合ってられません。そういうことでUbuntuにしましょう。苦労せずにVista以上の3D effectが得られます。ディープな世界に浸りたい人は,GentooにBerylを入れましょう。
投稿者 : 大谷 弘喜 | 投稿日時 : 2007.05.02 22:14



