研究作業報告【12月12日(水)】

サンプルプログラムの簡易例

≪取り組んだこと≫

 今週の目標は、

 ・Webブラウザで動かすガントプロジェクトツールを作るための段階的作業
  −今までやったことないものを一気にやるのは無理
  −ならば、一つ一つを段階的に消化するのが望ましい
  −まずはタスク、開始日、作業期間をデータとして渡し、
  −Webブラウザに表示できるようにする。

である。使用する言語はJavaScript、ライブラリはprototype.jsを使ってみることにする。prototype.jsとは、簡単に言うと「動的Webアプリの開発に緩和することを目標としたJavaScriptのフレークワーク」らしい。利点は、「Ajaxをラップしてくれる」「HTMLの編集などに役立つ」「イベントの制御がしやすい」「フォームの制御が簡単」などがあるが、実際にやってみないと分からないので、prototype.jsからライブラリをダウンロードしてみる。
 今回やろうとしている処理の流れは粗方理解できたと思うが、その前にJavaScritpt、HTTP通信、サーバー側プログラム(PHPRubyなど)、データベース、JavaScriptライブラリの機能と関係について知っておく必要がある。それはサンプルプログラムを作りながら調べていくことにして、実際「Ajaxのサンプルプログラムがどんなものか」を体験してみることにした。
 適当なサイトからサンプルソースを持ってきて、Firefox/Xamppを使った利用環境で実装。その際、FirebugというFirefox用のプラグインを追加インストールしてみたが、これはデバッグに便利だということが分かった。コンソール、HTML、CSSスクリプト、DOM、接続の状態が一目で把握することが出来るといったものだ。




【参考文献】
Prototype.jsとは何か−ARK-Web SandBox Wiki
[ThinkIT]Prototype.js関連
JavaScript + Ajax 実践サンプル集 - ホーム
第2回 基本的なAjaxアプリケーションを作成してみよう(前編):ITpro
Common Gateway Interface - Wikipedia
Aptana入門:Aptanaで、prototype.jsベースのプログラムを作ろう Recently Ajax
第二章 プログラムを作って体験しよう:XMLHttpRequestを使う
Ajax初心者入門講座 Step5・Firebugを起動、終了する
JavaScript + Ajax 実践サンプル集 - サンプル
いろいろな効果を追加できるJavaScriptライブラリ「jQuery」 - GIGAZINE





≪課題≫
 ・サンプルプログラムの作成をしつつ、Ajaxの機能と関係を理解する。

研究作業報告【12月3日(月)】

≪取り組んだこと≫

 ・GanttProjectのソースファイルの解読
 ・Javaプログラミングの作成



≪課題≫
 ・GanttProjectとMS-Projectの普及度の違いについての調査

 ・プロジェクト管理、MS-Projectについて理解を深める。

 ・"ganttproject\src\net\sourceforge\ganttproject"フォルダの仕組み、ソースファイルの内容について調べる。

 ・AjaxXMLJavaプログラミングの習得

研究作業報告【11月30日(金)】

≪取り組んだこと≫
Eclipseのインストール
GanttProjectのソースファイルの解読




≪課題≫
 ・GanttProjectとMS-Projectの普及度の違いについての調査

 ・プロジェクト管理、MS-Projectについて理解を深める。

 ・"ganttproject\src\net\sourceforge\ganttproject"フォルダの仕組み、ソースファイルの内容について調べる。

 ・AjaxXMLJavaプログラミングの習得

研究作業報告【11月28日(水)】

≪取り組んだこと≫
GanttProjectとMS-Projectの普及度の違い

 GanttProjectとMS-Projectの相違点について考察しようとインターネットで情報を探していたところ、プロジェクトマネジメント(プロジェクト管理)が何故日本で普及していないかという点で興味深い記事があった。

なぜプロジェクトマネジメントは普及しないのか

上記の記事内に掲載されている関連リンク先の内容はまだ読んでいないものの、PMが今の世の中にどう思われているか少し分かったと思う。



GanttProjectのファイル構成


 //ガントチャートの作成
 GanttProject/
  ┣data/
  ┃┗resources/
  ┃ ┣calendar/
  ┃ ┃┗CALENDARファイル
  ┃ ┃
  ┃ ┣docs/
  ┃ ┃┗HTML、CSSXMLファイル
  ┃ ┃
  ┃ ┣dtd/
  ┃ ┃┗ganttproject.dtd
  ┃ ┃
  ┃ ┣icons/   //アイコン用の画像ファイル
  ┃ ┣language/
  ┃ ┃┗PROPERTIESファイル
  ┃ ┃
  ┃ ┣logos/
  ┃ ┃┣bee-element-01.svg
  ┃ ┃┣bee-element-02.svg
  ┃ ┃┣bee-element.svg
  ┃ ┃┣concepts-icons.svg
  ┃ ┃┣concepts-logo.svg
  ┃ ┃┗アイコン用の画像ファイル群
  ┃ ┃
  ┃ ┣xslfo/
  ┃ ┃┗ganttproject.xsl
  ┃ ┃
  ┃ ┣xslt/
  ┃ ┃┣gantt.xsl
  ┃ ┃┣gantt-chart.xsl
  ┃ ┃┣gantt-resources.xsl
  ┃ ┃┣gantt-tasks.xsl
  ┃ ┃┗gantt-utils.xsl
  ┃ ┃
  ┃ ┗keyboard.properties
  ┃
  ┣lib/
  ┃┣core/
  ┃┃┣licenses/
  ┃┃┃┗LICENSEファイル群
  ┃┃┃
  ┃┃┗jarファイル群
  ┃┃
  ┃┣development/
  ┃┃┣licenses/
  ┃┃┗jarファイル
  ┃┃
  ┃┗optional/
  ┃ ┗licenses/
  ┃  ┗LICENSEファイル
  ┃
  ┣src/
  ┃┣net/
  ┃┃┗sourceforge/
  ┃┃ ┗ganttproject/
  ┃┃  ┣action/
  ┃┃  ┣application/
  ┃┃  ┣calendar/
  ┃┃  ┣chart/
  ┃┃  ┣delay/
  ┃┃  ┣document/
  ┃┃  ┣export/
  ┃┃  ┣filter/
  ┃┃  ┣font/
  ┃┃  ┣gui/
  ┃┃  ┣importer/
  ┃┃  ┣io/
  ┃┃  ┣language/
  ┃┃  ┣parser/
  ┃┃  ┣plugins/
  ┃┃  ┣print/
  ┃┃  ┣resource/
  ┃┃  ┣roles/
  ┃┃  ┣shape/
  ┃┃  ┣task/
  ┃┃  ┣time/
  ┃┃  ┣undo/
  ┃┃  ┣util/
  ┃┃  ┗その他javaファイル
  ┃┃  
  ┃┗org/
  ┃ ┣ganttproject/
  ┃ ┃┗WebStartIDClass.java
  ┃ ┃
  ┃ ┗w3c/
  ┃  ┗util/
  ┃   ┣DateParser.java
  ┃   ┗InvalidDateException.java
  ┃
  ┣test/
  ┃┗net/
  ┃ ┗sourceforge/
  ┃  ┗ganttproject/
  ┃   ┗test/
  ┃    ┣task/
  ┃    ┃┣calendar/
  ┃    ┃┣dependency/
  ┃    ┃┣event/
  ┃    ┃┣hierarchy/
  ┃    ┃┗その他javaファイル
  ┃    ┃
  ┃    ┗time/
  ┃     ┣GregorianTimeStackTest.java
  ┃     ┗TestWeekFramer.java
  ┣.classpath
  ┣.project
  ┣AUTHORS
  ┣build.properties
  ┣build.xml
  ┣build-user.properties
  ┣build-user.xml
  ┣COPYING
  ┣plugin.xml
  ┣README
  ┗webstart-plugin.xml


  GanttProject-builder/
  ┣.project
  ┣build.private.properties
  ┣build.public.properties
  ┣build.xml
  ┣ganttproject.bat
  ┣ganttproject.command
  ┣ganttproject.jnlp
  ┣ganttproject.sh
  ┣ganttproject-eclipsito-config.xml
  ┣ganttproject-webstart-config.xml
  ┗HouseBuildingSample.gan


  //PERT図の出力
  org.ganttproject.chart.pert/
  ┣resource/
  ┃┗icons/
  ┃
  ┣src/
  ┃┗org/
  ┃ ┗ganttproject/
  ┃  ┗chart/
  ┃   ┗pert/
  ┃    ┗Javaファイル群
  ┃
  ┣.classpath
  ┣.project
  ┣build.properties
  ┣build.xml
  ┣build-user.properties
  ┣build-user.xml
  ┣plugin.xml
  ┗webstart-plugin.xml


  //PDFファイル/HTMLファイルの出力
  org.ganttproject.impex.htmlpdf/
  ┣lib/
  ┣resource/
  ┃┣html-export-themes/
  ┃┃┣default/
  ┃┃┣samara/
  ┃┃┗striped_blue/
  ┃┃
  ┃┗pdf-export-themes/
  ┃ ┣basic_landscape/
  ┃ ┣layout/
  ┃ ┣samara/
  ┃ ┗ganttproject.xsl
  ┃
  ┣src/
  ┃┗org/
  ┃ ┗ganttproject/
  ┃  ┗impex/
  ┃   ┗htmlpdf/
  ┃    ┣fonts/
  ┃    ┗その他javaファイル
  ┃
  ┣.classpath
  ┣.project
  ┣build.properties
  ┣build.xml
  ┣build-user.properties
  ┣build-user.xml
  ┣plugin.xml
  ┗webstart-plugin.xml


  //Microsoft Projectファイルの入力/出力
  org.ganttproject.impex.msproject/
  ┣lib/
  ┃┗mpxj/
  ┃
  ┣src/
  ┃┗org/
  ┃ ┗ganttproject/
  ┃  ┗impex/
  ┃   ┗msproject/
  ┃    ┗Javaファイル群
  ┃
  ┣.classpath
  ┣.project
  ┣build.properties
  ┣build.xml
  ┣build-user.properties
  ┣build-user.xml
  ┣plugin.xml
  ┗webstart-plugin.xml



 GanttProjectのソースファイルの構成は上記のものから出来ている。フォルダの内容は


   ・ガントチャート作成
   ・Build用ガントチャート
   ・PERT図の出力
   ・PDFファイル/HTMLファイルの出力
   ・Microsoft Projectファイルの入力/出力

の5つに分類されている。この中で「ガントチャート描画・作成」に利用できると思われる部分は、"ganttproject\src\net\sourceforge\ganttproject"フォルダの内容である。これを重点的に調べてみなくてはならない。また内容を理解していく上で、XMLJava(復習も兼ね、さらにJar【Javaプログラムの実行に必要なクラスファイルやデータファイルを一つにまとめるためのフォーマット】に関する知識を深める)に慣れておく。




【参考文献】
Web 2.0:次世代ソフトウェアのデザインパターンとビジネスモデル(前編)
GanttProject〜ガントチャートのスペシャリスト〜
GanttProject
[ThinkIT] 第2回:オープンソースのプロジェクト管理ツール
@IT:明日からできるプロジェクト管理
スケジュール管理


≪課題≫
 ・GanttProjectとMS-Projectの普及度の違いについての調査
 ・プロジェクト管理、MS-Projectについて理解を深める。
 ・"ganttproject\src\net\sourceforge\ganttproject"フォルダの仕組みについて調べる。
 ・AjaxXMLJavaプログラミングの習得

研究作業報告【11月27日(火)】

≪取り組んだこと≫

<前研究についての調査>
・ソーシャルマップの機能の洗い出し(全体像の把握)
 ・ユーザーがマップ上に自由に記事の書き込み、編集、削除を行える機能
 ・携帯端末のためのナビゲーション機能
・携帯端末のGPS連動機能
 ・携帯端末から位置情報を地図上に表示する機能
 ・携帯端末から近くにある情報をカテゴリ別に閲覧できる機能
 ・ユーザー間で地図上のレイヤーを共有する機能
 ・各書き込み記事内容のトラックバックRSS対応

・SMSを実装するのに必要最小限の機能の洗い出し
 ・ユーザの認証機能(マップ情報の登録者を判別できるようにするため)
・ユーザーがマップ上に自由に記事の書き込み、編集、削除を行える機能
 −マップ登録・更新・削除機能
  ※マップ情報に登録IDなどを指定し、区別しなくてはならない。
 −マップの情報を格納するために、データベースの作成が必要

・SMSを実装するために必要なAPI
 ・Google Maps API
 ・Ajax API
 ・JavaScript API

・使用言語
 ・PHP
 ・MySQL


<変更後の卒研内容>
 Googleドキュメントのように、MS-ProjectもWeb化してみるのはどうだろうか。しかし、いきなりMS-ProjectをWebに対応させるのは経験不足なので、オープンソースで公開されている「GanttProject」について研究することとする。研究目的については構想は立っているものの、具体的に何をどうするかイメージ出来てない。
 そこで、まずは「GanttProject」を理解する必要がある。3年後期の講義で習ったプロジェクト管理を思い出し、ガントチャートなどについて調べなくてはならない。



≪課題≫
 ・MS-ProjectとGanttProjectの普及度の違いについての調査
 ・GanttProjectのファイルの構成、量について調べる。

研究作業報告【10月9日(火)】

≪取り組んだこと≫
〇卒研ゼミ

 ソーシャルマップサービスを構築する予定だったが、犯罪検索マップサービスに変更しようと思った。しかし、先生と話し合った結果、SMSのことについてやることとなった。詳細は下記の通りである。


 ・ソーシャルマップサービスの内容、工夫を調査する
  −調査した結果を、自分のサービスに活かす
 ・マップ上に、複数のマーカーが登録可能なプログラム
  −どのように登録すれば、情報が見やすくなるか
 ・ソーシャル化する場合、参照マーカーの地点の情報をユーザー間でどのように整合するか。


 また、論文発表については、Rubyの簡略的な概略についてまとめることとなった。




【参考文献】
Google Maps API Documentation:http://www.google.com/apis/maps/documentation/
Google Maps APIを設置する:http://allabout.co.jp/internet/javascript/closeup/CU20060815A/index.htm




≪課題≫
・研究発表:Ruby概要
・既存のソーシャルマップサービスの機能・サービス・特徴の調査報告
・10月中に基本的なサービスを実装する