2006/06/08
■[programming][書評]最近読んでるプログラミング(主にJava)の本
なんか、気がついたら1ヶ月くらい日記書いてませんでしたね……。
ここのところ仕事でプログラミングすることが多いのですが、プログラミングしてると、どうにも他のことが手に付かなくなって困ります。Winny関係のあんな本やこんな本を買ったり、いつの間にかIETF 65のP2P SIP BOFの資料が公開されてるのに気付いたりしてはいたんですが、家でもプログラミングの本ばかり読んでしまう始末。
そこで、今日は日記再開のリハビリとして、そんな最近読んでるプログラミング本を紹介してみます(「今頃こんなの読んでるのかよ!」ってツッコミたくなるくらい有名な本ばっかりですけども)。
----
達人プログラマー―システム開発の職人から名匠への道(アンドリュー ハント/デビッド トーマス)
より効率的かつ生産的なプログラマ=達人プログラマーになるためのヒント70項目がまとめられた本。プログラミングのテクニックも多少書かれていますけど、ヒントの大半はプログラマの持つべき心構えについてのものです。
大まかな傾向としては、
- 物事を徹底的に検証、追求すること(ヒント44:偶発的なプログラミングを行わないこと、など)
- 繰り返しを避けること(ヒント29:コードを生成するコードを作成すること、ヒント61:手作業は危険である、など)
の2点が強調されていて、全体を通してとっても耳が痛いです。例えば、「ヒント44:偶発的なプログラミングを行わないこと」の項にはこんな記述があります。
偶発的プログラミングの方法
Fredが、あるプログラミングを指示された時のことです。まずFredは、少しだけコードを記述し、それをテストしました。どうやら動いているようです。Fredはもう少しだけコードを追加し、またそれをテストしてみました。大丈夫、動いているようです。このようなコーディングを何週間か続けた後、ある日突然プログラムが動かなくなったのです。その後何時間も修正を試みたのですが、彼には何が起こったのかが判りませんでした。Fredはこのコードを追跡するために長い時間を費やしましたが、修正することはできませんでした。彼が何をしていたのかは別にして、それはちっとも動いてはいなかったのです。
うーん。なんか、僕も時々こんなことやってる……。この本は時々読み返して教訓にするのがいいかも。
Effective Java プログラミング言語ガイド(柴田 芳樹/Joshua Bloch)
こちらはJavaの基本APIの設計および実装に関わっているSun社員による本で、Java言語でプログラミングする際の注意点がいろいろ書かれています。
ちなみに、僕のJavaに対する知識は「Javaの言語仕様は一応知ってて、JavaDoc片手になんとかプログラムできる」という程度です。オブジェクト指向は万能じゃないと思いながらも、なんとなく「Javaはオブジェクト指向言語だから、普通にコードを書いていても再利用性が高いんだ〜」と信じ込んでいる感じだったんですが、この本を読んで考えを改めました。
特に驚いたのは、クラスを継承するときに注意すべき点が、僕の思っていた以上に多いこと。この本、Javaでプログラミングする人は必読ですね……。
来年中には最新のJavaに対応したEffective Javaが出るらしいので、今から待ち遠しいです。
参考:【レポート】JavaOne 2006 - あの『Effective Java』から5年 「Effective Java Reloaded」 (MYCOMジャーナル)
http://journal.mycom.co.jp/articles/2006/05/18/javaone2/
増補改訂版Java言語で学ぶデザインパターン入門(結城 浩)
増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編(結城 浩)
上の2冊はこれから読む本。ちらっと読みましたが、結城さんの本は相変わらず読みやすいです。
----
今までは、プログラミングしていて詰まったときだけウェブサイトを探して回る、というやり方で適当にやり過ごしてきたんですが、こうやって本を読んでると、今まで知らなかったことの多さに驚かされます。やっぱり、基礎を押さえるには本で勉強しないとダメですね。
……とこんな感じで今とてもプログラミングの本に飢えてますので、このあたりのレベルで他に何かおすすめの本がありましたら是非コメントお願いします。
2006/06/10
■[P2P][VoIP]AvayaのP2P IP電話「Avaya one-X Quick Edition」
【Interop速報】アバイアがサーバーレスのプラグ・アンド・プレイIP電話を参考出展(ITpro)
http://itpro.nikkeibp.co.jp/article/NEWS/20060608/240331/
IP電話機をネットワークに接続するだけで、IP電話システムが構築できる−−。日本アバイアが「Interop Tokyo 2006」に参考出展している「サーバーレスSIPソリューション」である。Peer to Peer(P2P)技術を使い、サーバーを必要としないプラグ・アンド・プレイのソリューションである。
Interopに行く機会があったので、僕もAvayaブースでちょっと話を聞いてきました。
■ 展示内容
Avaya one-X Quick Editionの展示スペースはそれほど広くなく、IP電話機4台がハブに繋がっているデモ環境の上に、パネルが1枚表示されているだけでした。上のITPro記事の写真に写っている範囲が、かなり全体像に近いかも。
僕は、このIP電話機の設定方法に興味があったのですが、WebインターフェイスでIP電話機の設定をするデモはありませんでした……。ちょっとがっかり。あと、この製品の元になったNimcat Networks社のP2P IP電話製品は、PSTNゲートウェイを経由して一般電話と通話する機能があったのですが、このIP電話機と接続できるPSTNゲートウェイは現在開発中ということで展示はありませんでした。
それでも、「今回のAvayaブースで最もユニークな内容だけあって、熱心に話を聞いてくれる人が多かった(説明員談)」とのこと。確かに、僕が居た間だけでも、珍しそうに展示を眺めている人を結構見かけました。
■ 機能
説明員の方にお聞きした機能は以下の通り。
- ビジネス向けに必要な機能(電話の転送、ボイスメール、会議通話など)を一通り実現したままでサーバレス化
- このIP電話機が接続しているネットワークに新しいIP電話機を接続するだけで、必要な設定は自動的に行われる。また、ネットワークからIP電話機を外しても、その電話機の中に設定が保持される
- ボイスメール(留守番電話)は内蔵のメモリで20分間記録できる
- 今のところ、同時に接続できる台数は10台まで(製品化までには性能向上を目指す)
電話番号をどうやって割り当てるのか気になっていたので聞いてみたところ、まず最初にネットワークに接続されたIP電話機が「仮の」親になって、2台目以降のIP電話機はこの仮の親に接続して電話番号を割り当ててもらうそうです。デフォルトの内線番号が1000だとすると、2台目は1001、3台目は1002……という感じでしょうか。もちろん、個別に番号を設定することも可能とのこと。
個人的には、P2Pネットワーク上でのデータの同期方法や、10台制限の理由(何がボトルネックなのか?)をもっと詳しく知りたかったのですが、まだあまり細かい技術情報は日本まで下りてきてないようでした。うーん、残念。
■ 国内での製品化
アメリカでは既に製品化しているものの、説明員の方によると「国内ではまだプレスリリース*1を出しただけで、発売は秋以降」とのこと。
この製品は、現時点でAvayaが弱いスモールオフィスをターゲットにしていて、特に、アドホックに電話環境を作る必要のある工事現場にはとても受けがいいようです。今のところは10台という接続制限があるものの、これがもう少し性能向上すれば国内ベンダが占拠している小規模VoIP市場を十分切り崩せる、と手応えを感じている様子でした。今後の製品展開には要注目です。
関連記事:米Avaya,PtoP型の通信ソフトウエアの加Nimcat Networksを買収(ITpro)
http://itpro.nikkeibp.co.jp/article/USNEWS/20050920/221346/
2006/06/11
■[tDiary]トラックバックの表示/非表示の扱い
最近、このサイトもコメントスパム&トラックバックが増えてきました。tDiary 2.1系で搭載されたspamフィルタを使って、大抵のスパムは登録された時点で非表示にしてしまっているのですが、裏では結構スパムのデータが溜まってきています。
このスパムデータはもう非表示状態なので消さなくても問題ない(だからtDiaryでも削除はサポートしてない)んですが、個人的には、これがどうにも気になって仕方ありません。レスリングなんて興味ねえよバカー!みたいな。まぁ、神経質すぎるのは自分でも判ってるんですけどね……。
そんなわけで、今日ちょっと「非表示コメント&トラックバックを一括削除する」スクリプトを書いてみたのですが、そこで不思議な現象に出くわしました。僕が何か勘違いしているような気がしなくもないですけど、一応メモしておきます。
----
tDiaryはコメントとトラックバック(Pingbackも)を同じファイル(*.tdc)で扱っていて、各コメント/トラックバックは以下のような形式で保存されています。
Date: 20060611 Name: TrackBack Mail: Last-Modified: 1146307167 Visible: true http://muziyoshiz.jp/20060611 トラックバックの説明文 .
僕は単純にVisibleヘッダがfalseのデータを全て削除すれば目的達成!と思ったのですが……そういうスクリプトを書いて実行してみたところ、なんと表示中のトラックバックの一部までも一緒に削除してしまいました。
あれ?と思ってデータを良く調べてみたところ、どうやらtDiaryのトラックバックのデータには
- Visibleヘッダがtrueで、表示中のトラックバック
- Visibleヘッダがfalseで、表示中のトラックバック(←?)
- Visibleヘッダがfalseで、非表示のトラックバック
の3種類があって、この2番目のデータまで一緒に消してしまったのがまずかったみたいです(ちなみに、コメントの場合は2種類のみ)。
で、この2番目と3番目のデータの違いが何なのか調べてみたのですが、コードを読んでも、tDiaryが両者をどう区別しているのか全然分かりませんでした。結局、今回は2番目のデータだけ手でVisibleヘッダをtrueに書き換えて済ませたんですけど、これってどういうことなんでしょうか……?
2006/06/14
■[P2P]会社がプロバイダを強制する時代(になるかも)
少し前の話になりますが、愛知県警が職員に「私物PCにもファイル交換ソフトを入れない」という誓約書を書かせる*1という報道がありました。嫌な話ですけど、情報の管理体制を見直すという名目で個人の私的なインターネット利用に組織や会社が口を出す、こういう事例は今後どんどん増えていく気がしています。
で、この流れが更にエスカレートすると、そのうち「うちの職員は、全員Winnyの使えないプロバイダに加入させてるから安心だ」なんてアピールをする企業まで出てきてしまうんじゃないかと心配していたんですけど……。この悪い予感を後押しするような新サービスが、昨日ぷららネットワークスから発表されました。
ぷらら、Bフレッツ向けにWinny通信遮断機能を提供。解除設定も選択可能(INTERNET Watch)
http://internet.watch.impress.co.jp/cda/news/2006/06/13/12313.html
一般的には、Winny通信の遮断機能がON/OFF可能になったという話として取り上げられることが多いですが、僕が気になったのは記事の後半部分の方です。
ぷららと契約を行なった企業に所属する社員に対して、Winny通信を遮断する個人向けBフレッツ対応サービスを提供するネットワークスポンサー制度を9月下旬より開始する。
同制度は、契約企業がWinny通信の遮断するサービスに賛同する社員を募集して、提供していくもの。契約企業が接続料金の一部料金の負担額(5%から任意)を設定することで、所属社員は通常料金から割り引いた料金でサービスが利用できる。なお、同制度を利用した場合には社員側でWinny通信の遮断を解除することはできない。
自分の所属する企業が*2接続料を負担してくれる「ネットワークスポンサー制度」という新サービス。
これって一応、社員の賛同を得た上で利用できるサービスということになっていますが、もしも企業がこの「ネットワークスポンサー制度」を導入した場合、そこの社員に何の強制力も働かないとはちょっと考えにくいです。
会社側が直接的な圧力をかけることは普通無いとしても……例えば、「ネットワークスポンサー制度」に賛同してぷららに加入していれば、万が一情報漏洩した場合の罪が軽くなる、という社内制度とセットで運用されると、強制ではないですが強制力はありますよね。強制かどうかの線引きは、難しいところですけど。
これって、ある意味では特定プロトコルの遮断よりも危険な話だと思うのですが、どう思いますか? この新サービスも含めて、総務省はゴーサインを出したんでしょうか?
----
その他関連記事:
ぷらら、Winnyによる通信の遮断を利用者自身で設定可能なサービスを提供(CNET Japan)
http://japan.cnet.com/news/sec/story/0,2000056024,20139547,00.htm
ぷららのWinny規制にGOサイン,総務省が五つの方向性を提示(ITpro)
http://itpro.nikkeibp.co.jp/article/NEWS/20060613/240802/
【映像付き特別インタビュー】ぷららの弘灰 和憲氏「ユーザーの8割以上がWinny遮断を支持している」(ITpro)
http://itpro.nikkeibp.co.jp/article/NEWS/20060614/240821/
ぷららのWinny規制、仕様を変更してリリースへ(スラッシュドット ジャパン)
http://slashdot.jp/article.pl?sid=06/06/14/0130215
*1 「Winny使いません」と愛媛県警が全職員に誓約書(スラッシュドット ジャパン)
*2 Winnyトラフィックが減った分だけぷららが接続料を割り引いてくれる、というわけではなさそうです。
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。