無料ブログはココログ

« 2007年6月 | トップページ | 2007年8月 »

ある種の制約は自由を増やす

いつも読ませていただいている、まつもとゆきひろさんの日記でITproの“Rubyに学ぶ「Ruby on Railsの正体」”が紹介されていました。

いわゆるフレームワークは、良く出てくるパターンを簡単に記述できるようにしたものです。Ruby on Railsの特徴はさらにに一歩推し進めて、制約を与えることでより簡単に記述できるようにしたものです。本文中の表現でいうと「Railsを使いこなすということはRailsの支配を受け入れることである」と言うことになります。

まつもとゆきひろさんは、これを的確な指摘であるとして

ある種の制約は自由を増やす傾向がある。ある種の自由は人間の負担を増す傾向がある。

と述べられています。この文章を読んで、「まさにそのとおり」と思いました。

ソフトウェア工学の初期においては、構造化プログラミングはスパゲティプログラムによる混乱からプログラマに自由を与えました。オブジェクト指向言語も何でもできるC++に制約を与えて、Javaの安心してプログラミングできる自由な世界が作られました。VBに代表されるコンポーネントベースのプログラミングも、コンポーネントという制約を与えることで複雑な機能の組み合わせが自由になりました。

Ruby on Railsについては、まだあまりよく知らないのですが、ソフトウェア工学の流れに沿った新しい自由を構築するものなのでしょう(SEA関西SPINでもRuby on Railsの講演が計画されているようなので楽しみにしています)。

ところで、このお話をプロセスにあてはめる時、ウォーターフォールの方が制約をたくさん与えるのだからより自由だ、などと言うのは詭弁です。ウォーターフォールの制約にしろ、XPのプラクティスにしろ、毎回考えていると負担になることを制約としてまとめることで、プロジェクトの戦略的な実施や、状況の把握、バグの地獄からの解放という自由を与えるものだからです。とにかく制約すればよいのではなく、「ある種の制約」とよべるような開発者の創造性を高める制約でないといけないと思います。

このエントリーをはてなブックマークに追加

RD-S300購入でADSLエラー&切断頻発

正確に言うとRD-S300だけが問題ではないと思うのですが、東芝製DVDレコーダRD-S300を購入してからADSLの切断が頻繁に起きるようになりました。時間帯にもよりますが数分-20分ごとに1回切断されるような状況でした。

考えられるのは、RD-S300による問題か、近くでISDNを開通するなど回線上の問題がたまたまこの時期に起きたかです。購入して3日目ぐらいから問題が生じ出しましたので、RD-S300の可能性を中心に両方の可能性を探りました。

電源からのノイズ、入力の電話線、出力の電話線(IP電話ルータなので)にフィルタをつけてみましたが、若干は改善したような感じはありましたが、あまり改善しませんでした。

ファームウェアのバージョンアップも行いましたが、かえって悪化してしまいました。そこで思い出したのがDR utility for Windows(リンク先はHI-WIND)です。今のADSLルータを導入した際にあまり安定しなかったので、DR utilityでG.dmt Annex Iに速度(プロトコル)を落としていたのです。ファームのバージョンアップでそれがクリアされたんですね。

そこで、DR utilityで速度をどんどん落とすとG.lite、4Mbps以下に速度を落とさないと安定しませんでした。すでにやるだけのことはやり、あとは電源を別のコンセントから引くことと、配線の材質を変えること、通信事業者側でビット数を落とすぐらいかと思っていました。なにかほかの方法はないものかと、イーアクセスのページをにぞいていると、タコ足配線と消費電力の大きいもののそばに置かないようにと書かれていました。

ようやく糸口がつかめました。ノイズはケーブル経由ではなく、電磁波が影響を与えていたのです。ためしに、ADSLルータをアルミホイルで囲んでアースしてみました。するとQuad Spectrumで14Mbpsで接続していてもエラーがほとんど起きません。

Drs300 そこで、ダンボールにアルミホイルを貼って、RD-S300の横に置いてみました(通風口のところは一応空けてあります)。ADSLルータのアルミホイルを取り外しても切断は起きず、30秒に一回程度エラーが生じるものの安定しました。エラーがあるのはうまく遮断できずに回り込んでいるか、上にあるTVの影響かもしれません。いずれにしても回線の切断が半日で一度あったきりで、ほんの少し場所をずらした後は、非常に安定しています(他のノイズ対策の効果もあってかQuad Spectrumで14.5Mbps以上出ています)。

電磁波の影響は測定機器がないので実際どうなっているかはよくわかりません。もともとTVやスカパーのチューナのノイズがあり、さらにRD-S300が増えたので敷居値を超えてしまっただけなのかもしれません。しかし、RD-S300とスカパーチューナDST-D900の横にアルミホイルを貼ったダンボールを置くことで大きく改善したことは事実です。DR utilityできれいなビットマップが表示されるにも関わらずエラーが多いようなら、一度試されてはいかがでしょうか?

280円をハサミで切る - 新しいカードに注意 -

関西の私鉄用のICカードPiTaPa(ピタパ)は、クレジットカード会社と連携することでポストペイ、つまり後払いを実現しています。これを利用して、ある回数までは通常料金、回数が増えるごとに割引が増え、定期券の金額を上限とする料金体系が実現されています。

それだけでも十分便利なのですが、最近は、あらかじめチャージをしておけばJR西日本で利用できる、プリペイドの機能もあります。普通のプリペイドカードなら、デポジット(カード発行預り金)を払ってそのまま使い続けることになりますが、クレジットと連携していますので、デポジットは不要で、クレジットと交通料金の支払いがあれば、年間会費も無料になっています。

ピタパはクレジットカードなので、有効期限があります。先日、私のところにも新しいカードが届きました。古いカードは悪用される危険があるので、必ず処分しなければいけません。磁気カードのストライプをまたぐように縦に斜めに丁寧に切りました。よく見るとICチップの位置が分かるので取り出して眺めたりもしました。

翌日のこと、いつものように改札を抜けると、280円と表示されていたチャージ金額の表示が0円に!そうです、ポストペイ情報はネットワークで集中管理されますが、プリペイド情報はカードにだけあったのです。前日にカードを切り刻んだ際に、にチャージされたお金も切り刻んでしまいまったのです。

たぶん、駅の事務所か自販機でチャージしたお金を移動できたのでしょうけど、それを確認できるのは2年後です。オートチャージにしていなかったので被害が280円だったのは、不幸中の幸いですね。やれやれ

FirefoxでRD-S300のネットdeナビが使えない

今まで使っていたHS2が新品のDVD-RAMを認識しなくなり、RD-S300を買いました。さまざまなカルチャーショックを受けたことはいずれ書くつもりですが、今回はトラブルのお話を書きます。

RD-S300には「ネットdeナビ」という機能があって、ネットワークから予約などをすることができます。しかし、IEでは使える者のFirefoxではログインができません。

インターネットで検索してみると、Firefoxでは動くがIE7では動かないという記事が多く、私の状況と反対の例が多くありました。さらに調べていくと、IE7の問題に対応するファームウェアが出ていて、これを入れるとIE7は動作するものの今度はFirefoxで問題が出るようです。

私の買ったRD-S300は最新機種で、この問題のファームと同じ状況が起きているようです。これに関しては、ネットdeナビ 認証対応パッチ for Firefoxなるものが公開されていて、Windows版のFirefoxにパッチをあてることで対処することができます。この問題はRD側の問題なのですが、他に対処法がないので不本意ながら作られたようです。このパッチを当ててみたところ、無事にネットdeナビを使うことができました(作者さんに感謝!)。

なお、このパッチははWikipediaからもリンクされていますが、作者さんの好意で公開されているものです。あくまでも自己責任でお使いください。

FirefoxでOpenPNEにログインできないとき

クッキー「PHPSESSID」が競合するらしい。

ツール->オプション
 ->プライバシー->Cookieを表示
 ->検索窓に「PHPSESSID」を入力
 ->サイトをクリック
 ->Cookieを削除

とすると、ログインできるようになります。

#もっと良い方法があれば教えてください。

世代の壁を超えるには - SS2007に参加して その2-

ソフトウェアシンポジウム2007のワークショップでメトリクス(定量的データ尺度)の議論をする仲で、開発者がデータ取りに協力してくれないという話題の中で、

「プロでしょ!お金をもらっているのだから、データを取って当たり前」

そんな言葉が聞かれました。なにか納得いきませんでした。私の世代までならいざ知らず、今の若い人が「当たり前」というだけでデータ収集に協力してくれるとは思えません。仮に、協力してもらえたとしても形だけのデータで、データの精度や一貫性は望めません。

故坂本氏は、プロセス改善はWIN-WINが基本で、開発、支援(SEPG)、ユーザがそれぞれにメリットのあるWIN-WIN-WINの関係が必要だと言われましたが、そのような明確な動機付けが必要な気がします。単に「データをとれ」というのではなく、仕事の定義やデータ収集の意味と効果などを、きちんと説明する必要があると思いました。

このような意見の違いはなぜ生まれたのでしょうか?単に世代の違いではないと思います。もちろん、その時に受けた教育や社会情勢といった違いはあるでしょう。でも、それだけではないと思います。

そもそも仕事の内容が変わり、やり方が変わったのだと思っています。私が社会人になったころはC言語の普及が始まったころです。その頃の言語は、容易にすべてのマニュアルを読むことができました。その後、C++、Javaと変わっていく中でライブラリは肥大し、すべてのマニュアルを熟知することは困難になりました。また、1プロセス・1CPUで処理されることも少なくなり、システムも複雑になりました。

10年ほど前に、コロラド大学で認知科学を教えられていたフィッシャー先生が「オンデマンド・ラーニング」と言われていたことが思い出されます。情報の肥大化によって、かつてのように頭の中に情報を詰め込む時代は終わり、情報を選択して記憶するようになったと言われていました。当時としては画期的なお話でしたが、インターネットが普通の時代に社会人になった、今の若い人は当たり前のようにそんなことをしているのではないでしょうか?

今の若い人のように、様々な知識を取捨選択するということは効率的である反面、断片的でもあります。多くの知識を体系づけられずに持っているので、ある特定の価値観を植え付けられると、それだけが全てになってしまいます。企業価値と言えばお金のことだけ、プロジェクトの目標と言えば、成果物ができればよい、ともすればニュースになりそうな、そんな感覚を持ちかねない知識なのです。

かつて論文の書き方を教わった時に、「言葉の定義」をするように厳しく教えられました。これは、異なる背景を持つ人との対話では、非常に有効です。暗黙の知識に頼らずに伝えることで、正確なコミュニケーションができるのです。開発に関する情報が複雑になり、各人が異なる断片的な知識を持つようになった今、異なる背景を持つ人が増えたのです。

人に何かを伝えるときは、断片的に説明してはいけません。きちんと体系的に説明しなければいけません。そんな時代が来ているのです。

改善の壁 - SS2007に参加して -

ソフトウェアシンポジウム2007に参加しました。今回はよりワークショップを重視した構成になり、多くの情報交換ができました(反面、参加したワークショップと関係のない情報を得る機会がなく、その点はちょっと残念でした)。私が参加したのは品質保証(SQA)でしたが、EPMのことを発表(リンク先はPDF)することができました。

内容は「障害管理ツールのデータをEPMで分析したところ、プロセス改善のきっかけを見つけることができた」というものでした。しかし、ワークショップの議論が「SQAを進めるために必要なメトリクスとツール」だったので、それに合わせて議論したところ

  • SQAが手の回らない小さなプロジェクトでも開発者自身が分析できる
  • メトリクスを収集するために作業が不要
  • 開発中の情報をいつでも収集できる

といった点が好評でした。

さて、タイトルの改善の壁というのは、シンポジウムの最後の各ワークショップの報告に出てきた「準最適」という問題です。今のままではいずれ問題になるから新しいことを始めようとすると「今のままで良いじゃないか」という意見が出て、先に進めないというものです。レガシーなソフトを作り直したり、新しい技術を導入するには、コストがかかり、リスクもあることから、会社を問わず苦労するところですね。

これまでのプロセス改善(SPI)の議論では、

  • 経営者層のコミットメントを得る
  • 部分から全体に進める
  • プロセスチャンピオンが引っ張る

という方法が言われてきました。ここでは、これ以外を二つほど考えてみます。

一つ目はプロダクトラインに学び「きっかけを生かせ」ということです。プロダクトラインでは、シリーズ開発などでソフトウェア資産の再利用を重視して、経営資本を投入します。その成功例を聞いているとあることに気付きます。これまでバラバラに開発したものをプロダクトライン化する際には、たいてい何かきっかけがあるのです。

新シリーズの開発などは非常に良いきっかけです。今までとあまり変わらない開発対象なら、今まで通りに開発することがたぶん効率的で、リスクの高い方法をとることもないでしょう。しかし、新シリーズなら従来の方法にもリスクがあり、新しく作り直したり新しい技術を導入することとのコスト差も小さく見積もることができます。

二つ目は「多次元に考える」です。「準最適」という聞きなれない言葉を使われていましたが、数学的に言うと「局所解」ですね。つまり、線形に考えると最適解が見つからないということだと思います。ついつい目先の収支にとらわれて新しいことができないなら、別の次元のパラメータを考慮することです。

このパラメータには、将来の市場予測や、開発環境の変化の予測など、プロダクトラインで検討されるべきパラメータが参考になるでしょう。

Sado 今回は日本酒 麒麟山「吟辛」(これがおいしい!)も、毎日のように飲めました。また、日本海タワー(リンク先はgoo)からも佐渡島らしき山影も見ることができました。そんなこんなで、結構楽しいシンポジウムでした。

« 2007年6月 | トップページ | 2007年8月 »