« 2006年10月 | メイン | 2006年12月 »

2006年11月 アーカイブ

2006年11月01日

プロジェクトマネジメント入門(19)

これまでの内容をまとめてみましょう。プロジェクトで大事なのは、明確な目標を共有すること、現状を正確に認識することです。このための手段として、会議やレビュー、仕様書などを説明してきました。また、性格タイプや認知的不協和などの注意点も紹介してきました。

今までこれらをやっていないが、現状に満足していなくて、改善したいと考えている方もいらっしゃると思います。これからはじめる場合、以下のようなところから着手してみてください。

まず、自分自身が日記をつけます。ワインバーグの本から引用しますと、「たったいまから三箇月間、個人的な日記をつけるのに毎日五分間使うこと」となります。以下の点に注意してください。

- 必ず毎日書かなければなりませんが、同じ時刻に書く必要はありません
- 1文字も書かなくてもいいので、5分間の時間を使ってください
- webのように公開されたものではなく、プライベートな日記としてください
- 過去の内容を修正してはいけません
- 書く内容は、起こったこと、感じたことなど何でも構いません

これは毎日5分を費やすくらい、改善に真剣かというテストでもあります。そして、あとで日記を読み返すと、とても多くのことが学べます。

日記を書き始めたら、次はレビューです。プロジェクトで「問題がないと思われる小さな修正」について、修正内容のレビューを関係者でおこなってみてください。絶対にレビューで通り、10分以下で済むと思われるような、小さい修正で大丈夫です。意外な問題が見つかったり、レビュー参加者に変更が伝わったりすることで恩恵が受けられるのが普通です。もし時間を割く正当な理由が必要であれば、そのモジュールの担当者以外に向けた「教育のため」とするのが一案です。

会議でも、ほとんど手間のかからない改善が可能です。会議の最後に、「次回までの自分の作業はこれです」というのを、順番に発言してもらってください。本人に発言してもらうのが重要です。意識も変わりますし、達成できない約束が減ると思います。

いずれの場合でも、問題が見つかったときに担当者が非難されないようにすることが重要です。問題というのは期待と現実のズレで、これは現実を見ないで予測をおこなったために予測が間違っている状態です。楽観的な予測には、いずれ裏切られるわけですから、誰の利益にもなりません。
----
日記は、以前紹介した「スーパーエンジニアへの道」に紹介されています。筆者の場合、本を読んだときには日記をつけはじめなかったのですが、しばらくして思い出してから書くようになりました。PCではなく、ノートとペンを使っています。

「見積もりは、仮説に過ぎない」といった内容を読んだ記憶があるのですが、どの本か調べられませんでした。

2006年11月02日

GW+KM+EIP=ECM(エンタープライズ・コンテンツ・マネジメント)

ECMとは、情報系システムのERPとも呼ばれ、ERPが企業内にある数値情報を統括するなら、ECMは企業内に存在するすべての定性コンテンツ(ファイル、データベース等)を統括し、最適化するためのマネジメント法およびシステムを指します。
従来のシステムとの対比で捉えると、GW+KM+(SFA+CRM)+EIP=ECMというすべての領域をまとめて面倒を見るシステムになります。また、まとめて面倒を見ないと本来のIT効果が発揮されないという考え方です。

●具体的には、ECMは次のような要件を満たすものとされています
・企業全体で、情報を入力、蓄積、配信、検索、共有することができるフレームワーク
・個別にデータモデルやデータベースを作成するのではなく、ECMフレームワーク上で管理できること
・エンドユーザ向けには、必要な情報に瞬時にアクセスできるポータルがあること
・ビジネスプロセスや機能に限定されないコンテンツ部分だけを独立して一元管理できること
・紙コンテンツの光学文字認識 (OCR) 、画像、動画などコンテンツも管理できること
・情報活用には、コンプライアンス、セキュリティーの要件を備えていること


●ECMを実現するためのデータモデル
ECMの実現を難しくしている原因はリレーショナルデータベースモデルにあると言われています。リレーショナルデータベースモデルは、データの設計ありきで事が進んでいかざるおえないからです。コンテンツはデータベースより先に存在し、コンテンツはデータベースの設計のことを考えていちいち作られるものではありません。つまり、いくらでもデータベースに収まらないコンテンツが出てきます。このようなコンテンツはシステムの外に置かれ、組織として共有されなくなります。

これらの問題を解決するデータモデルが必要にあり、それを解決しようとしているのが、タグ付きデータモデルになります。

IE7をインストールしてみました

スパイウェア削除機能とか、フィッシングサイトチェック機能とか、ポップアップのブロックとか、フォントが綺麗になったとか、いろいろ機能が付与されているが、ブラウザーの機能としては特別コレといったものはなし。速度が早くなったとかも別段変わらない様子。

でインストールして、少しIEの戦略が見えたところとしては、
・検索バーが付いたこと
 これでGoogleのツールボックスが不要になる作戦か
・検索バーの初期設定でmsn以外に設定されたこと
 強制的にmsnにして顰蹙を買ってブログとかに書かれるのをを避ける作戦か
・メニューバーが消えたこと
 ブラウザー自身が、よりOSぽくなった印象を受ける(Windowsからの転換点か)

ついでに、IE7のRSSリーダーも使ってみた
・ヘルプ等含めて5分ぐらいで設定出来たのでよしとする
・RSSの機能自体については特段なし
・フィードという言葉が結構出てくる(いい日本語がないから仕方ないか)
しばらく、自作のRSSリーダーから、IE7のRSSリーダーに切り替えてみることに

追記
MTでこのブログを書いて保存ボタンを押したあとに、画面が変になったけど、気のせいか?

2006年11月03日

Javaで書かれたオープンソースのクローラー(Crawler)

Open Source Crawlers in Java
http://java-source.net/open-source/crawlers

Javaで書かれたオープンソースのWebクローラ一覧
http://www.manageability.org/blog/stuff/open-source-web-crawlers-java/view

2006年11月06日

ctrl+wでフォームが閉じてしまう

OperaでWikiやMovableTypeを書いているときに、誤ってctrl+wを押すとウィンドウが閉じてしまい、入力途中のフォームが失われてしまうことがありました。Operaのカスタマイズで、コントロールWを無効にすることができるのに気づき、変更しました。

[ツールメニュー]→[設定]→[タブ:詳細設定]→[ショートカット]→[キーボード設定:編集]

パネルが開くので「Application」の中に4つほどある「w ctrl」などを削除します。これで、ctrl+wでウィンドウが閉じなくなります。


プロジェクトマネジメント入門(20)

今回は計画立案について書いてみます。開発系プロジェクトの場合、リスクの大きさによって計画の立て方が変わるのが普通です。

もし過去に取り組んだものによく似ていて、不確実性がほとんどないという場合は、プロジェクトというよりもルーチンに近くなります。従って、前回の実績を元に計画を立案することができます。しかし過去に取り組んだものであっても、部品のバージョンアップなどが含まれていると不確実性が高くなりますので、注意が必要です。

逆に、新しい解決方法を製品に採用するような場合など、新技術が期待通りに機能するのかどうかがわからないケースもあります。このような場合は、開発の優先順位を決める必要があります。

優先順位は、個々の機能の有無と、品質、コスト、納期について決める必要があります。これらの一部はトレードオフが可能で、例えばチューニングに時間をかけるかわりに、高速なマシンを買うような選択ができます。

そもそも製品開発は、会社が現在から将来にわたって利益を上げるためにおこなうものなので、市場が変化すれば優先順位も変化することになります。例えば、どのような市場があるのかわからないような、ある新技術を開発するプロジェクトの場合は、以下のような計画になるでしょう。

+ 新技術を市場が評価するための手段の設計(手段とは、例えばプロトタイプ)
+ 手段の開発
+ 市場における評価の収集
+ 製品についての計画立案

この場合、何を作ればいいかわからないため、最初の段階では全体の計画を立てることができません。「情報を集める」というプロセスに集中するのが合理的な計画です。今回の例では新技術の市場性が不確実性でしたが、経験のない開発環境など、さまざまな不確実性にも同じことが言えます。

次回は、優先順位に応じたタスク化について書きたいと思います。

次期NotesがOpenDocument Format(ODF)に対応ということで


ネタ自体は少し古いですが・・・

ODFってなんだろうと思って、こちらでODFの定義を見てみると、
http://e-words.jp/w/ODF.html

どうやら
機械(ソフト)が解釈するためのフォーマットで、
人間が一目見て解釈できる品物ではない模様。

また、元通りに復元することがメインのようで、
本来、どんなシステムからでも利用が可能になるという目的とは、
すこしかけ離れてしまっている節がある。

本来、どんなシステムからでもという中には、人間そのものも入ると思うわけで、
人間が解釈できないフォーマットじゃ使い道が限定されてしまう。

あのMicrosoft Wordのファイルをhtmlで保存したときの、
複雑なhtmlおよびCSSの内容をイメージしてしまう。
あれじゃダメだ。使い物にはならない。みたいな。

IE7をインストールしてみました(2)

へぇ~だったIE7の機能

◎複数Webサイトを同時に開いてタブに展開する機能
お気に入りのフォルダー部分をクリックすると、そのフォルダー内に登録されているすべてのサイトが一斉に開いたりする。

◎クリックタブ機能
エクスプロラーの縮小版表示みたいな機能。タブに表示されているサイトのサムネイルが一覧で表示され、そこをクリックして使う感じ。

◎RSSリーダ
更新されていると太字になって知らせてくれる。XMLがそのまま表示されるのではなく、人間が読めるようなカタチになって表示される。(そこらへんの機能がブラウザー側に組み込まれているのかも)

◎お気に入りのツールボックスのUI
ツールボックスを非表示にしても、アイコンを押すと、すぐに横から表示画面が出てくる感じ。機能名は知らないが、VS、Eclipseのような開発系のUIに近い動きをする。

◎Webページが見つかりません
Webページが見つからない原因を教えてくれるなど、親切な感じがする。また、試していないが、詳細な原因を分析する機能も付いていて、クリックするだけで解析がはじまるみたい。

2006年11月07日

Windowsと管理者権限

私のまわりではOSにアクセス管理があるにも関わらず、常にスーパーユーザー権限でログインしている人が多いようです。例えば以前いた会社でWindows版のアプリケーションのテストをおこなっていたとき、Administratorでないと使用できないという問題がなかなか見つかりませんでした。

外部ネットワーク(インターネットなど)につながるアプリケーションを多用する場合、アプリケーションはログイン中のユーザーの権限を引き継ぎますので、セキュリティーホールや操作ミスなどにより外部のプログラムにシステムの乗っ取りを許す危険が大きくなります。このようなリスクから防御する上でも、できるだけ低いユーザー権限で使用するのが望ましいです。

Windowsの場合、ユーザー登録の際に「制限ユーザー」という選択肢がありますので、こちらを選択するとそのユーザーは重大な影響を及ぼす操作ができなくなります。あるアプリケーションを一時的に他のユーザーとして実行したい場合は、アプリケーションのアイコンを右クリック(Windows2000の場合はシフト+右クリック)すると「別のユーザーとして実行」というメニューがありますので、これを選択してパスワードを入力します。また、アプリケーションのユーザー権限は起動元のユーザー権限を継承しますので、コマンドプロンプト(いわゆるDOS窓)をAdministratorで起動しておき、そこからコマンド名を入力して起動する方法もあります。例えば、Apacheのhttpd.confをメモ帳で開きたい場合などは、Administrator権限のDOS窓からnotepadを起動すれば、きちんと保存することができます。

Administrator権限でないと実行できないものとしては、以下のようなものがあります。

コントロールパネルの項目の多くは、Administrator権限でないと変更できません。

アプリケーションのインストールなども、Administrator権限でないとできません。

Acronis True Imageのようなバックアップソフトは、ディスクの管理領域をアクセスするため、Administrator権限が必要になります。

問題になるのはWindows Updateで、昔(たしかW2K SP4の頃)は「別のユーザーとして実行」で使用できたのですが、今はAdministratorでログインしないと使用できません。

プリンタの状態表示アプリケーションなどの中には、正常に動作しないものもあります。

ウィルス対策ソフトによっては、一般ユーザーではハングアップしてしまうものもありました。私が今使っているウィルスバスター2006では、特に問題はありません。

プロジェクトマネジメント(21)

タスクレベルのでの計画ですが、筆者の好みのやり方では、まず適切なサブゴール(マイルストーン)を設定します。このとき、サブゴールに求める役割には、以下の3つがあります。

最初に「製品が完成してお客がニコニコと使っているところまでを想定」します。当面のサブゴールは例えばプロトタイプかも知れませんが、最終的なゴールを常に意識することはとても重要です。

次に「動いているところが見える」という点も重要です。これは無理に動かすということではありません。タスクが作業完了になっていくに従い、動いているのが見える部分が増えていくと、安心できるということです。プロジェクトによっては動いているようすを見せるのが難しく、最後まで進まないと見えないということもありますが、この場合は最後になって驚かされ、手戻りが発生するというリスクがあります。リスクを減らすために、タスクを追加して可視性を確保することを検討します。

最後に「情報収集」という役割があります。これは、やってみなければわからないような技術分野であったり、顧客に見せてみないとわからないものであったりします。前述の「動いているところが見える」というものもこれの一種と考えることができます。もし、今ゴールが見えていないプロジェクトであれば、ゴールに関する情報を見つけるのが最優先になります。

これらはすべて「リスク管理」と考えることもできます。

例えばある製品を開発するプロジェクトについて、以下のリスクがあった場合を考えてみましょう。

- ある新技術がうまく機能するかわからない
- 市場が存在するかわからない
- 利用予定の開発環境の品質がわからない
- どう実装していいかわからない箇所がある

「市場が存在するかわからない」というリスクについて情報を集めることを考えると、プロトタイプを取引先に見せてみるといった方法が出てきます。しかし他にもリスクがあり、プロトタイプができるまでにずいぶん時間がかかりそうです。得られた情報によってはプロジェクトのゴールが変化してしまうかも知れないので、時間がかかるのは問題です。

プロトタイプなしで市場から情報を集めることができない場合、製品とは異なる技術手法でプロトタイプを作る方法も考えられます。もしこの製品の特徴が「新技術」であるなら、プロトタイプで新技術を試せないと、市場から情報が集められないかも知れません。そこで、プロトタイプの要件を以下のように設定しましょう。

- 新技術の評価ができる
- 市場に関する情報の収集に利用できる
- 早期に開発できる

このプロトタイプは、早く作って情報を得ることが大事なので、開発言語などは製品と異なって構いませんし、ドキュメントなども考えなくて構いません。不要な機能を付け加えたり、チューニングに時間をかけたりする必要もありません。サブゴールを明確に示すことで、これらの意図が伝わりやすくなります。プロトタイプが完成したら、情報を集めている間に、残りのリスクの対応を進めるとよいでしょう。

そして、プロジェクトに関する情報が増えたら計画全体を確認して、修正すべきところは修正します。今度のゴールが「製品が完成してお客がニコニコと使っているところまでを想定」になると、最初は必要なかったドキュメントが必要になったりしますので、見落としに注意します。間違った計画のまま進むのは、間違った設計図で家を建てるのと同じで、とても高くつきます。
----
「製品が完成してお客がニコニコと使っているところまでを想定」というのは「プロジェクトマネジメント」(日本経済新聞)に出てきました。

「動いているところが見える」ことの重要性は、「暗闇を進むな」という表現で「ソフトウェア開発のダイナミクス」(アスキー)に出てきました。

余談ですが筆者の経験で、社内用の原理試作の位置づけだったものが、いつの間にか製品に取り入れられることになり、追加作業で大変な思いをしたことがあります。それ以来、プロトタイプと聞いても、必要以上に作り込むようになりました。適切な計画立案がないと、こういう問題にもつながります。

2006年11月14日

プロジェクトマネジメント入門(22)

今回はクリティカルチェーンと呼ばれるプロジェクトマネジメント手法を紹介します。クリティカルチェーンは、TOC(制約条件の理論)におけるプロジェクトマネジメント手法で、不確実性にどう対処しているかという点が参考になるかと思います。

まずこれまであったCPM(クリティカル・パス・メソッド)について説明します。CPMでは作業(タスク)のことをアクティビティ、作業と作業の中継点のことをノードと呼びます。ノードを「○」、アクティビティを「→」であらわすので、「○→○→○」のような図になります。個々のアクティビティの作業時間を見積もると、そこから全体の作業時間がわかります。普通、開始と終了のノードは1つずつですが、途中は枝分かれしたり合流したりします。

さて、アクティビティどうしが関連を持っており、AとBのアクティビティが完了しないとCのアクティビティが開始できない、といった場合があります。そこで、個々のアクティビティに「予想通りに進めばいつ開始できるか」の数字(最早開始時刻)を書き込みます。アクティビティが合流するイベントでは、もっとも遅いアクティビティ完了の予定が書き込まれることになります。さらに、これの逆をおこない、プロジェクトの完了から逆算して、「いつまでに開始すれば予定通り完了できるか」の数字(最遅開始時刻)を書き込みます。アクティビティの最早開始時刻と最遅開始時刻に差があれば、そのアクティビティで予定以上に時間がかかってもプロジェクト完了は遅れないので、この差をフロート(余裕)と呼びます。アクティビティの最早開始時刻と最遅開始時刻が同じだとフロートが0になり、このアクティビティが遅れるとプロジェクトの完了が遅れてしまいます。プロジェクトの開始から終了まで、フロートが0のアクティビティを順につないだ経路(パス)を、クリティカルパスと呼びます。CPMはクリティカルパスが遅れないように、重点的に管理をおこなう手法です。

クリティカルチェーンは、CPMやPERTに対して、バッファーマネジメントとリソース競合対策を追加することで、不確実性に対応したものです。

クリティカルチェーンで想定している問題の1つ目は、タスクの見積もり時間です。あるタスクについて、50%の確率で完了できる時間が1週間だったとしても、90%の確率で完了できる時間は3週間になってしまうという不確実性があるため、普通は90%の確率でできる時間で見積もりをおこないます。しかし実際に3週間もらっても、実際に作業をはじめるのはギリギリの残り1週間になってからということがよくあるため、見積もり通りにいかないことが多くなるという症状があります(学生症候群と呼んでいます)。そこでクリティカルチェーンでは、50%の確率で完了できる時間で見積もりをおこないます。

こうすると、プロジェクトの期間は1/3になるのですが、この期間でできる確率はかなり低くなります。そこで、短くなった2/3の時間の半分を、プロジェクトバッファーとしてプロジェクトの最後に用意します。そして、クリティカルパスに合流するタスクについても、合流するところに合流バッファーを設けて(このタスクはバッファーの時間分早く開始することになります)、クリティカルパス以外が遅れてもクリティカルパスに影響が及ばないようにします。タスクが遅れた分をバッファーの消費として扱い、バッファーが残り2/3になったら対策を考え、残り1/3になったら対策を実行するというマネジメントをおこないます。

さて、これだけでは管理できないものとして、競合リソースがあります。例えば、ある部署でおこなうタスクがあるが、この部署にはいくつかのタスクが集中してしまうため、前のタスクを待っている間に遅れてしまうといったものです。これは特定の機械の場合もあります。そこで、競合リソースを使用するタスクが並列にならないよう、クリティカルパス上で直列に並べます。こうしてできた新しいパスをクリティカルチェーンと呼びます。そして、さきほどの合流バッファーは、このクリティカルチェーンに対して用意します。
----
CPM・PERTについては、私は「計画の科学」(ブルーバックス)で知りました。

クリティカルチェーンについては、以前紹介した「クリティカルチェーン」を参照してください。

XML の変換

XML のコンバート作業が入りそうなのだが、 XML を別形式の XML に変換するには、xslt を使うのが基本だろうということで、 xalan の最新版をチェック。

Xalan-Java Version 2.7.0

このたあたりが最新版のようだ。 download のリンクをたどると、 xalan-j_2_7_0-bin.zip というファイルが 08-Aug-2005 となっている。 少し古そうな気もするが、これを get。

展開したら、クラスパスを設定。 今回は Windows XP でテストしている。 こんな感じの setpath.bat を作って、 クラスパスをセットする。

set JAVA_HOME=d:\java\jdk1.5.0_09
set XALAN_HOME=d:\java\xalan-j_2_7_0
set CLASSPATH=.
set CLASSPATH=%CALSSPATH%;%XALAN_HOME%\xalan.jar;%XALAN_HOME%\xml-apis.jar;%XALAN_HOME%\xercesImpl.jar

実行はこんな感じ。

java org.apache.xalan.xslt.Process -IN inHoge.xml -XSL conv.xsl -OUT outHoge.xml -TT

-TT のオプションはマッチしたときのトレース用のもので、 通常不要。

Missing 'rows' attribute

MyFaces 拡張 (tomahawk) の t:dataScroller を使うときに、 t:dataTable の rows が指定されていないと、この例外が発生する。 考えてみると当たり前で、表の行数が分からないと、 全体で何ページあるかも計算できないのであった。

t:dataTable のタグ内に rows を指定すれば解決。

19:50:53,140 ERROR org.apache.catalina.core.ApplicationDispatcher:704
 - サーブレット jsp のServlet.service()が例外を投げました
javax.faces.FacesException: Missing 'rows' attribute on component 'table1'
	at org.apache.myfaces.custom.datascroller.HtmlDataScroller.getPageIndex
          (HtmlDataScroller.java:246)
	at org.apache.myfaces.custom.datascroller.HtmlDataScrollerRenderer.setVariables
          (HtmlDataScrollerRenderer.java:100)
	at org.apache.myfaces.custom.datascroller.HtmlDataScrollerRenderer.encodeBegin
          (HtmlDataScrollerRenderer.java:180)
	...(略)...

19:50:53,156 ERROR org.apache.catalina.core.StandardWrapperValve:253
 - サーブレット Faces Servlet のServlet.service()が例外を投げました
javax.faces.FacesException: Missing 'rows' attribute on component 'table1'
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch
          (ServletExternalContextImpl.java:435)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView
          (JspViewHandlerImpl.java:234)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render
          (LifecycleImpl.java:384)
	...(略)...

2006年11月15日

フリーのWeb2.0風の16x16アイコンを配布しているサイト集

フリーのWeb2.0風の16x16アイコンを配布しているサイト集
http://phpspot.org/blog/archives/2006/11/web2016x16.html

2006年11月16日

プロジェクトマネジメント入門(23)

プロジェクトはいくつものタスクに分割することができます。では、タスクの時間の見積もりはどのようにおこなうのがよいでしょうか。残念ながら、筆者はまだこれについて確固たる答えを持っていないので、参考になりそうな考え方を紹介します。

普通、作業者は直感的な見積もりができますが、かなり不確実であることが多いと思います。これは「考える仕事」の度合いが大きいほど、答えが見つかるまでの時間のバラつきが大きく影響するということだと考えられます。一般的な計画立案では、考える度合いの大きい設計作業をプロジェクトの前半に置き、開発から切り離すことで、見積もりのブレを早期に発見できるようにします。

仕様や作業計画に「抜け」があると、見積もりが外れやすくなるという問題もあります。これは、ある作業を見積もりに盛り込むのを忘れていたというケースと、ある仕様を考慮するのを忘れていたというケースとがあります。後者の場合、その仕様を追加するのに大規模な変更が必要になる可能性があるので、前半(上流工程)で見つけられるような仕組みを用意することが重要です。

これらは、日頃の習慣でもある程度はカバーすることができます。

まず、以前も書きましたが「日記をつける」という習慣は有益です。なぜなら、多くの人は「当初の見積もりがなぜ外れたか」を検証しないからです。日記をつけたり、あるいはプロジェクト開始前に見積もりを文書化して実績と比較するようなこと(振り返り)を何度かおこなうと、自分の見積もりの精度がどれくらいかが測定できると思います。

自分がよくやるミスをチェックリストにしておくのもよいと思います。参考までに、私のC言語ソフトウェア設計後のチェックリストのうち、環境固有でないものは以下のようになっています(ソースコードで2000-4000行くらいを対象にしています)。

- ヘッダファイル・Makefileに15分
- ソースのコピーは、ファイルごとに時間を用意(10-20分/ファイル)
- 致命的エラーの処理・エラーパネル文面の設計
- structは、設計時に最後の1バイトまで決定
- テスト環境構築コストの見落とし(ディスクのバックアップなど)
- デバッグ作業時間は見積もったか?
- 時間が不定なものを先に
- ソースのファイル単位で作業タスクにする?
- 実装段階で仕様書の読み間違いに気づくケースがある
- 途中で必要なテストラン時間の見落とし
- テストラン可能な開発順序にする(暗闇を進むな)

細かい失敗事例はすぐに忘れてしまうので、意識してメモを取り、自分用のチェックリストを作るとよいと思います。
----
以前紹介した「ソフトウェア開発55の真実と10のウソ」に、「ソフトウェアの開発は、80%が知的な作業である」「仕様の抜けは、仕様関係の不良の中で修正が最も難しい」といった記述があります。

2006年11月23日

Web 2.0からセマンティック・ウェブへ

Web 2.0からセマンティック・ウェブへ
http://www.kanzaki.com/works/2006/pub/1121swo.html


Web 2.0”の主張
Web 1.0からWeb 2.0へ
AI/KRとセマンティック・ウェブ
セマンティック・ウェブへの跳躍の問題
Web 2.0による橋渡し
Web 2.0とセマンティック・ウェブ
橋渡しの3つのテーマ
テーマ1:microformatsのグローバル化
変換ルールの汎用フレームワークGRDDL
GRDDLとhtmlプロファイル
GRDDL変換の間接指定
プロファイル文書でのXSLT指定
もう少し進んだXHTMLとRDFの連携
GRDDLの利用
テーマ2:個別APIはスケールさせにくい
RDFグラフへのクエリSPARQL
ウェブの共通クエリとしてのSPARQL
テーマ3:フォークソノミー・タグとオントロジー
タグの論理処理の第一歩:データモデル
次の一歩:タグ・オントロジー
タグ・オントロジーのグラフ
タグのグループ化
タグのグループと曖昧さ
タグとWiki
タグのグローバルな利用のためのサービス
W20からSWへの道筋

2006年11月29日

Webサイトの色デザインに役立つサイト


Color schemes generator 2
http://wellstyled.com/tools/colorscheme2/index-en.html

2006年11月30日

ant で tar ファイルを展開したときにパーミションを保持する

linux の場合、 ant の untar 機能を使うとすれば、 次のように書けばいいのだが、 これでは permission が保持されないことがある。

    <untar
      src="${filename}.tar"
      dest="${destdir}" />

そこで邪道だが /bin/tar を呼び出す手がある。 なお、展開先のディレクトリを指定したい場合は、 dir を使って適当に設定する必要がある。

    <exec executable="/bin/tar">
      <arg line="xf ${filename}.tar"/>
    </exec>

開発製品

jirologos.gif

About 2006年11月

2006年11月にブログ「三田ブログ」に投稿されたすべてのエントリです。新しい順に並んでいます。

前のアーカイブは2006年10月です。

次のアーカイブは2006年12月です。

他にも多くのエントリがあります。メインページアーカイブページも見てください。

Powered by
Movable Type