Mantisのカスタム項目での一覧表示(続)
よく調べたらある程度基本機能でできますね。。。
$g_view_issues_page_columns =
array ( 'selection', 'edit', 'priority', 'id', 'sponsorship_total',
'bugnotes_count', 'attachment', 'category', 'severity',
'status', 'last_updated', 'summary' );
ここの設定みたいです。
追加したい場所に 'custom_項目名' などと足すことで追加されます。
項目名に日本語使っているとちょっといやな感じ
設定ファイルはUTF-8Nとかで保存してください。
http://bacons.ddo.jp/wiki/mantis/mantis_recipies/customizing_columns_in_view_issues_page
ここに詳細あります。
ただしー
普通の検索が拡張されるので、細かいフィルター実装やソート順が状態に引っ張られたりします。
もう少し柔軟な運用をする場合にはやっぱり手を入れる方がいいみたいですね
TRACみたいにSQLだけで一覧出せるレポート機能の方が需要ありそう。。。
$g_view_issues_page_columns =
array ( 'selection', 'edit', 'priority', 'id', 'sponsorship_total',
'bugnotes_count', 'attachment', 'category', 'severity',
'status', 'last_updated', 'summary' );
ここの設定みたいです。
追加したい場所に 'custom_項目名' などと足すことで追加されます。
項目名に日本語使っているとちょっといやな感じ
設定ファイルはUTF-8Nとかで保存してください。
http://bacons.ddo.jp/wiki/mantis/mantis_recipies/customizing_columns_in_view_issues_page
ここに詳細あります。
ただしー
普通の検索が拡張されるので、細かいフィルター実装やソート順が状態に引っ張られたりします。
もう少し柔軟な運用をする場合にはやっぱり手を入れる方がいいみたいですね
TRACみたいにSQLだけで一覧出せるレポート機能の方が需要ありそう。。。
Mantisのカスタム項目での一覧表示
・カスタム項目とは
バグ報告時に追加で入力できる項目です。テキストや数値の他に日付などを追加することができます。
時刻が指定できないのが残念。。。
・カスタム項目の追加方法
システム管理 -> カスタム項目管理
にて項目をあらかじめ作成しておきます。
作成した後に項目の設定とプロジェクトへの割付を行います。
・一覧ページへのリンク追加
TOPメニューに一覧ページへのリンクを追加します。
・一覧ページ準備
似たページをコピーして作ります。
今回は通常の検索ページである[view_all_bug_page.php]をベースに利用します。
基本的には
include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'view_all_inc.php' );
上記の行ですべての処理を行っていますので、この行を削除して変わりの処理を追加することになります。
・データ構造確認
今回はカスタム項目をあらかじめ作成しておき、IDなどは決め内で利用したいと思います。
SELECT
bt.id ,
bt.priority,
bt.severity,
bt.status,
pt.name as project_name,
bt.category,
bt.handler_id,
st.value,
bt.summary
FROM
mantis_custom_field_string_table st,
mantis_bug_table bt,
mantis_project_table pt
WHERE
pt.id = bt.project_id AND
bt.id = st.bug_id AND
st.field_id = 1
ORDER BY
st.value
上記でカスタム項目1番にデータが入っている一覧を取得しています。
データ項目については的確な資料がないのでデータの中味とソースコードを読んで解析することになります。
・テーブル構造出力
検索ページを参考に、定型のテーブル構造をecho文などで出力します。
・データ取得
上記のSQLを実行してデータを取得します。
mantisでのSQL実行は以下の手順です。
$query = "select now()";
$result = db_query( $query );
while( $row = db_fetch_array( $result ) ){
print_r( $row );
}
・データ処理
$priority = get_enum_element( 'priority', $row['priority'] );
$severity = get_enum_element( 'severity', $row['severity'] );
$status = get_enum_element( 'status', $row['status'] );
mantis上で定義されている情報などは上記のような取得関数があります。
この関数を利用することで番号から対応する文字列を取得することが可能です。
・フィルター処理
このままだとプロジェクトなどのフィルタリングがされていないので追加する必要があります。
// プロジェクトフィルター
$project_id = helper_get_current_project();
if( $project_id == 0 ){
// すべて
$project_str = " 1 = 1 ";
} else {
$project_list = array();
$project_list = project_hierarchy_get_all_subprojects($project_id);
$project_list[] = $project_id;
$project_str = " bt.project_id in ( " . implode( ",", $project_list ) . " ) ";
}
現状のプロジェクトIDを取得して、0番以外の場合にはプロジェクトが選択されているので、サブプロジェクトを含めたプロジェクト番号リストを取得してフィルタリングを行います。
同じようにリストで必要なフィルタリング機能があれば追加していきます。
・今後
ある程度定型処理になりそうなので、表示項目とソート条件を選んで一覧表示できるような拡張があれば便利そうですね。
標準の検索もある程度項目の編集が可能ですが、ちと設定が面倒ですしいろいろなビューがあったほうがいいですよね。
バグ報告時に追加で入力できる項目です。テキストや数値の他に日付などを追加することができます。
時刻が指定できないのが残念。。。
・カスタム項目の追加方法
システム管理 -> カスタム項目管理
にて項目をあらかじめ作成しておきます。
作成した後に項目の設定とプロジェクトへの割付を行います。
・一覧ページへのリンク追加
TOPメニューに一覧ページへのリンクを追加します。
・一覧ページ準備
似たページをコピーして作ります。
今回は通常の検索ページである[view_all_bug_page.php]をベースに利用します。
基本的には
include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'view_all_inc.php' );
上記の行ですべての処理を行っていますので、この行を削除して変わりの処理を追加することになります。
・データ構造確認
今回はカスタム項目をあらかじめ作成しておき、IDなどは決め内で利用したいと思います。
SELECT
bt.id ,
bt.priority,
bt.severity,
bt.status,
pt.name as project_name,
bt.category,
bt.handler_id,
st.value,
bt.summary
FROM
mantis_custom_field_string_table st,
mantis_bug_table bt,
mantis_project_table pt
WHERE
pt.id = bt.project_id AND
bt.id = st.bug_id AND
st.field_id = 1
ORDER BY
st.value
上記でカスタム項目1番にデータが入っている一覧を取得しています。
データ項目については的確な資料がないのでデータの中味とソースコードを読んで解析することになります。
・テーブル構造出力
検索ページを参考に、定型のテーブル構造をecho文などで出力します。
・データ取得
上記のSQLを実行してデータを取得します。
mantisでのSQL実行は以下の手順です。
$query = "select now()";
$result = db_query( $query );
while( $row = db_fetch_array( $result ) ){
print_r( $row );
}
・データ処理
$priority = get_enum_element( 'priority', $row['priority'] );
$severity = get_enum_element( 'severity', $row['severity'] );
$status = get_enum_element( 'status', $row['status'] );
mantis上で定義されている情報などは上記のような取得関数があります。
この関数を利用することで番号から対応する文字列を取得することが可能です。
・フィルター処理
このままだとプロジェクトなどのフィルタリングがされていないので追加する必要があります。
// プロジェクトフィルター
$project_id = helper_get_current_project();
if( $project_id == 0 ){
// すべて
$project_str = " 1 = 1 ";
} else {
$project_list = array();
$project_list = project_hierarchy_get_all_subprojects($project_id);
$project_list[] = $project_id;
$project_str = " bt.project_id in ( " . implode( ",", $project_list ) . " ) ";
}
現状のプロジェクトIDを取得して、0番以外の場合にはプロジェクトが選択されているので、サブプロジェクトを含めたプロジェクト番号リストを取得してフィルタリングを行います。
同じようにリストで必要なフィルタリング機能があれば追加していきます。
・今後
ある程度定型処理になりそうなので、表示項目とソート条件を選んで一覧表示できるような拡張があれば便利そうですね。
標準の検索もある程度項目の編集が可能ですが、ちと設定が面倒ですしいろいろなビューがあったほうがいいですよね。
SourceForge.jp で SVN利用
思ったより苦戦。。。(苦笑
1、鍵作成
PuTTYを利用して鍵を作成します。
私はPuTTY ごった煮版を利用しています。
http://yebisuya.dip.jp/Software/PuTTY/
立ち上げたあとに鍵作成を選択。
マウスをぐりぐり動かすと鍵が生成されます。
もちろんこの鍵はサンプルで作ったので本物じゃありません(笑)
2.鍵の登録
SourceForge.jp にログインして、アカウント管理の一番下にある「鍵の編集」を選択
テキストエリアに1のペーストするための公開鍵の内容を貼り付けます。
上の感じになります。
3行に見えますが折り返しをしていて実際には1行です。
更新をしてしばし待ちます。
たぶん毎分crontabとかで更新されているっぽいです。
3.鍵の保存
秘密鍵は必ず保存しましょう!
eclipse上で利用する場合には、メニューからOpenSSH形式へのエクスポートも行うとよいと思います。
パスフレーズは設定しておいた方が安全です。
というかしましょう!
4.WinSCP接続設定
shell.sourceforge.jp をホスト名に指定して、保存した秘密鍵を指定します。
ユーザー名は自分の sourceforge.jp のユーザー名を指定してください
PuTTYでアクセスする場合もほぼ同じ設定でいけます(手抜き)
ただし、3の保存から少しの間は公開鍵が登録されていませんのでログインできません。
失敗した場合にはしばし時間をおきましょう。
時間を置いてもログインできない場合には1からやり直した方がいいかも(笑)
5.TortoiseSVNの接続設定
Eclipseなどを利用しない場合にはこちら~
ネットワークのSSHクライアントを設定する必要があります。
"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe" -C -l username -i "M:\My Documents\username.ppk"
ここで指定するのは秘密鍵とユーザー名です。
TortoisePlink.exe はセットアップした環境により変わる可能性があります。
pageantを利用して、秘密鍵の登録とパスフレーズの登録が必要かもしれません。。。
アクセスする場合には
svn+ssh://username@svn.sourceforge.jp/svnroot/project_name
のようなURLでアクセスを行います。
私の環境だとめちゃ重いです。。。
TortoisePlink のパラメーターで -C が圧縮のサポートなので、OFFにしたほうが軽いかも?
6.Eclipse接続設定
eclipse の設定を行う必要があります。
デフォルトの subversive は ssh での接続ができませんので、可能な SVN Kit などを選択する必要があります。
URLに
svn+ssh://svn.sourceforge.jp/svnroot/project_name
もちろん project_name はちゃんとしたのに変更します
ユーザー名も必要になります。
秘密鍵ですが、OpenSSH版を指定します。
PuTTYで作成した秘密鍵を指定しているとはまりますんで注意(笑)
これで接続できるはず。。。
http://www.hrtdotnet.jp/pro/env/eclipse/eclipse3_06/eclipse3.06.html
こことかには SVN_SSH の設定がありますが、とりあえずなくても動くようです。
SubClipse の場合には設定する必要がありそうです。
1、鍵作成
PuTTYを利用して鍵を作成します。
私はPuTTY ごった煮版を利用しています。
http://yebisuya.dip.jp/Software/PuTTY/

立ち上げたあとに鍵作成を選択。
マウスをぐりぐり動かすと鍵が生成されます。
もちろんこの鍵はサンプルで作ったので本物じゃありません(笑)
2.鍵の登録
SourceForge.jp にログインして、アカウント管理の一番下にある「鍵の編集」を選択
テキストエリアに1のペーストするための公開鍵の内容を貼り付けます。

上の感じになります。
3行に見えますが折り返しをしていて実際には1行です。
更新をしてしばし待ちます。
たぶん毎分crontabとかで更新されているっぽいです。
3.鍵の保存
秘密鍵は必ず保存しましょう!
eclipse上で利用する場合には、メニューからOpenSSH形式へのエクスポートも行うとよいと思います。
パスフレーズは設定しておいた方が安全です。
というかしましょう!
4.WinSCP接続設定

shell.sourceforge.jp をホスト名に指定して、保存した秘密鍵を指定します。
ユーザー名は自分の sourceforge.jp のユーザー名を指定してください
PuTTYでアクセスする場合もほぼ同じ設定でいけます(手抜き)
ただし、3の保存から少しの間は公開鍵が登録されていませんのでログインできません。
失敗した場合にはしばし時間をおきましょう。
時間を置いてもログインできない場合には1からやり直した方がいいかも(笑)
5.TortoiseSVNの接続設定
Eclipseなどを利用しない場合にはこちら~

ネットワークのSSHクライアントを設定する必要があります。
"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe" -C -l username -i "M:\My Documents\username.ppk"
ここで指定するのは秘密鍵とユーザー名です。
TortoisePlink.exe はセットアップした環境により変わる可能性があります。
pageantを利用して、秘密鍵の登録とパスフレーズの登録が必要かもしれません。。。
アクセスする場合には
svn+ssh://username@svn.sourceforge.jp/svnroot/project_name
のようなURLでアクセスを行います。
私の環境だとめちゃ重いです。。。
TortoisePlink のパラメーターで -C が圧縮のサポートなので、OFFにしたほうが軽いかも?
6.Eclipse接続設定

eclipse の設定を行う必要があります。
デフォルトの subversive は ssh での接続ができませんので、可能な SVN Kit などを選択する必要があります。

URLに
svn+ssh://svn.sourceforge.jp/svnroot/project_name
もちろん project_name はちゃんとしたのに変更します
ユーザー名も必要になります。

秘密鍵ですが、OpenSSH版を指定します。
PuTTYで作成した秘密鍵を指定しているとはまりますんで注意(笑)
これで接続できるはず。。。
http://www.hrtdotnet.jp/pro/env/eclipse/eclipse3_06/eclipse3.06.html
こことかには SVN_SSH の設定がありますが、とりあえずなくても動くようです。
SubClipse の場合には設定する必要がありそうです。
マイルストーン設定
趣味なので日程は設定しませんが、簡単なマイルストーンを設定します。
・0.1.x(アルファ版)
静的ページのデータ登録と表示が可能な物。
データ登録はDB直接登録であり、データ構造のテスト用である。
キャッシュなどは実装しておらず、すべて動的に生成する。
・0.9.x(ベータ版)
Web上からのデータ登録と、任意日付のデータ表示、承認機能など最低限の機能を実装する。
レスポンスとセキュリティーを除いた基本機能確定を目的とします。
・1.0.x(正式版)
ベータ版で確定した機能に関してレスポンス向上と、セキュリティー向上を行った物。
・0.1.x(アルファ版)
静的ページのデータ登録と表示が可能な物。
データ登録はDB直接登録であり、データ構造のテスト用である。
キャッシュなどは実装しておらず、すべて動的に生成する。
・0.9.x(ベータ版)
Web上からのデータ登録と、任意日付のデータ表示、承認機能など最低限の機能を実装する。
レスポンスとセキュリティーを除いた基本機能確定を目的とします。
・1.0.x(正式版)
ベータ版で確定した機能に関してレスポンス向上と、セキュリティー向上を行った物。
目指す方向
最初にある程度の方向性を決めておきたいと思います。
画像を含むすべてのデータをリビジョン管理し、時間軸を保存したCMSを目指します。
データは基本的にすべてDB上に保存し、リクエストの度に生成します。
レスポンス向上のためのキャッシュ作成と、静的ページ出力に関しては基本機能実装後に取り組みます。
当初は静的コンテンツのみ対象とし、PHPなどの動的コンテンツは対象としません。
各ページはテンプレートとデータに分離されており、データはXMLにて保存されている。
テンプレート設定は親のディレクトリから継承されていき、複数テーマの中にジャンルやページごとにさぶっセットのテンプレートを生成可能である。
各ページのデータはXMLで保存されているため、テンプレートを変更することでデザインを変更することができます。
ページの記述に関しては基本的にはWYSIWYGなどのhtmlを利用した物ではなく、テンプレートにて定義した入力欄を埋めていくことにより書式の入ったページを作成する。
定型フォーマットを主とするが、WYSIWYGや直打ちによるhtmlや、wiki書式などによる入力も基本機能実装後に取り組みます。
更新に関しては関連する複数のファイルを更新セットとし、更新セットごとに承認を行います。
最終的には複数の更新セットと、多段承認などもサポートしたいと思います。
テンプレートや画像を含むすべてのデータは公開時間などが設定されており、確認用ページでは過去や未来の時間を設定してそのときにどのようなページが表示されるのかがわかるようにする。
画像を含むすべてのデータをリビジョン管理し、時間軸を保存したCMSを目指します。
データは基本的にすべてDB上に保存し、リクエストの度に生成します。
レスポンス向上のためのキャッシュ作成と、静的ページ出力に関しては基本機能実装後に取り組みます。
当初は静的コンテンツのみ対象とし、PHPなどの動的コンテンツは対象としません。
各ページはテンプレートとデータに分離されており、データはXMLにて保存されている。
テンプレート設定は親のディレクトリから継承されていき、複数テーマの中にジャンルやページごとにさぶっセットのテンプレートを生成可能である。
各ページのデータはXMLで保存されているため、テンプレートを変更することでデザインを変更することができます。
ページの記述に関しては基本的にはWYSIWYGなどのhtmlを利用した物ではなく、テンプレートにて定義した入力欄を埋めていくことにより書式の入ったページを作成する。
定型フォーマットを主とするが、WYSIWYGや直打ちによるhtmlや、wiki書式などによる入力も基本機能実装後に取り組みます。
更新に関しては関連する複数のファイルを更新セットとし、更新セットごとに承認を行います。
最終的には複数の更新セットと、多段承認などもサポートしたいと思います。
テンプレートや画像を含むすべてのデータは公開時間などが設定されており、確認用ページでは過去や未来の時間を設定してそのときにどのようなページが表示されるのかがわかるようにする。
メニューへの追加
Mantis1.1.xのTOPメニューに項目を追加する方法です
1.2からはPlug-inがサポートされますが、それまでは自分で追加する必要があります。
そのためメニューにリンクを追加する場合にはソースコードに手を入れる必要があります。
編集ファイル
core/html_api.php
L509:function print_menu()
# View Bugs
$t_menu_options[] = '<a href="view_all_bug_page.php">' . lang_get( 'view_bugs_link' ) . '</a>';
# View Date List _edit_user_name_
$t_menu_options[] = '<a href="view_all_date_page.php">' . "作業検索" . '</a>';
# Report Bugs
if ( access_has_project_level( config_get( 'report_bug_threshold' ) ) ) {
$t_menu_options[] = string_get_bug_report_link();
}
解説
本当は言語ファイルに日本語を追い出した方がよいですが、変更箇所が増えるので直接書き込みます。
日本語を書き込むときにはUTF8Nなどでファイルを保存しましょう。
あとで編集部分がわかるようにコメントに同じ文字を入れておくとバージョンアップ時に便利です。
現在選択されているプロジェクト番号に一致するTRACへのリンクなどを追加することも可能です。
追記
コメントで教えてもらいましたが、もう少し簡単な方法があるみたいです(汗)
http://www.alles.or.jp/~sogabe/mantis/manual/1.4.16.html
この辺を参考にして
config_inc.php
$g_main_menu_custom_options = array(
array( "My Link", MANAGER, 'my_link.php' ),
array( "My Link2", ADMINISTRATOR, 'my_link2.php' )
);
core/html_api.php をみたところアカウントとログアウトの間にこれで追加してくれるみたいっす!
ちょっと追加される場所が微妙。。。
毎回バージョンアップのたびに書き換えるのもなんですが、わかりにくい場所に追加されるので、カスタムに追加するように設定して、追加される場所は毎回編集かな~
これだったらバージョンアップしても場所はデフォルトに戻るけれど、即実害はない。。。
1.2からはPlug-inがサポートされますが、それまでは自分で追加する必要があります。
そのためメニューにリンクを追加する場合にはソースコードに手を入れる必要があります。
編集ファイル
core/html_api.php
L509:function print_menu()
# View Bugs
$t_menu_options[] = '<a href="view_all_bug_page.php">' . lang_get( 'view_bugs_link' ) . '</a>';
# View Date List _edit_user_name_
$t_menu_options[] = '<a href="view_all_date_page.php">' . "作業検索" . '</a>';
# Report Bugs
if ( access_has_project_level( config_get( 'report_bug_threshold' ) ) ) {
$t_menu_options[] = string_get_bug_report_link();
}
解説
本当は言語ファイルに日本語を追い出した方がよいですが、変更箇所が増えるので直接書き込みます。
日本語を書き込むときにはUTF8Nなどでファイルを保存しましょう。
あとで編集部分がわかるようにコメントに同じ文字を入れておくとバージョンアップ時に便利です。
現在選択されているプロジェクト番号に一致するTRACへのリンクなどを追加することも可能です。
追記
コメントで教えてもらいましたが、もう少し簡単な方法があるみたいです(汗)
http://www.alles.or.jp/~sogabe/mantis/manual/1.4.16.html
この辺を参考にして
config_inc.php
$g_main_menu_custom_options = array(
array( "My Link", MANAGER, 'my_link.php' ),
array( "My Link2", ADMINISTRATOR, 'my_link2.php' )
);
core/html_api.php をみたところアカウントとログアウトの間にこれで追加してくれるみたいっす!
ちょっと追加される場所が微妙。。。
毎回バージョンアップのたびに書き換えるのもなんですが、わかりにくい場所に追加されるので、カスタムに追加するように設定して、追加される場所は毎回編集かな~
これだったらバージョンアップしても場所はデフォルトに戻るけれど、即実害はない。。。
環境構築
今までテキストエディタで開発していたので、もう少しちゃんとした開発環境を構築します。
Lunixサーバーとかあれば楽なのですが、そこまでは用意できないので、Windowsパソコン上で構築です
まずはWebサーバーはXAMP
http://www.apachefriends.org/jp/xampp-windows.html
サーバーに転送しての動作検証でもいいのですが、結構転送の手間と時間的なロスがあるので、最初の動作検証はローカル環境の方がいいと思います。
本当はsambaで共有したディレクトリ上でWindowsから編集した方が軽いんで好きなんですが。。。
あとはソースの保存場所。
ローカルのSVNでもいいのですが、今回は試しにsourceforge.jpにてプロジェクト申請をしてみました。
エディター環境ですが、eclipseを利用しました。
最新バージョンはどうも重いのですが、使い慣れているので。。。
http://mergedoc.sourceforge.jp/
この日本語化されているAll in Oneをチョイス
ZendのPHP開発プラグインよりは昔のPHPEclipseの方が軽くて好きなのですが、入れるのが簡単なこちらを選びました。
ちなみにサーバー環境はXREA系の有料サーバーを利用しています。
自宅サーバーを立てることもできますが、結構うるさいのと、外からサーバーに入ることも最近なくなったのでレンタルサーバーでたいていの場合十分です。
Lunixサーバーとかあれば楽なのですが、そこまでは用意できないので、Windowsパソコン上で構築です
まずはWebサーバーはXAMP
http://www.apachefriends.org/jp/xampp-windows.html
サーバーに転送しての動作検証でもいいのですが、結構転送の手間と時間的なロスがあるので、最初の動作検証はローカル環境の方がいいと思います。
本当はsambaで共有したディレクトリ上でWindowsから編集した方が軽いんで好きなんですが。。。
あとはソースの保存場所。
ローカルのSVNでもいいのですが、今回は試しにsourceforge.jpにてプロジェクト申請をしてみました。
エディター環境ですが、eclipseを利用しました。
最新バージョンはどうも重いのですが、使い慣れているので。。。
http://mergedoc.sourceforge.jp/
この日本語化されているAll in Oneをチョイス
ZendのPHP開発プラグインよりは昔のPHPEclipseの方が軽くて好きなのですが、入れるのが簡単なこちらを選びました。
ちなみにサーバー環境はXREA系の有料サーバーを利用しています。
自宅サーバーを立てることもできますが、結構うるさいのと、外からサーバーに入ることも最近なくなったのでレンタルサーバーでたいていの場合十分です。
一年越しの注文
http://www.amazon.co.jp/gp/product/0672326957
この本、実は2006年の7月に注文しています
でもまだ届かない。。。
すでに注文したことも忘れていた去年の暮れに時期変更のメールが来ました
アメリカのアマゾンを見た限り発売日とかも書いてあるのですがどうも、発売しているのか微妙
2006年このブログ開始したときにはC#を触っていたんだよね
すっかり忘れていました(笑)
DirectXはどんどん変わっていくからあの当時とは違うものになっているかもしれませんね
.Netもどんどんバージョンあがっていく。。。
この本、実は2006年の7月に注文しています
でもまだ届かない。。。
すでに注文したことも忘れていた去年の暮れに時期変更のメールが来ました
アメリカのアマゾンを見た限り発売日とかも書いてあるのですがどうも、発売しているのか微妙
2006年このブログ開始したときにはC#を触っていたんだよね
すっかり忘れていました(笑)
DirectXはどんどん変わっていくからあの当時とは違うものになっているかもしれませんね
.Netもどんどんバージョンあがっていく。。。
ネットゲームの開発環境
大掃除をしていたら、ふと思い出したので書き出します
ネットゲームとかを作るときにはちょこっと特殊な環境とソフトなどを利用します。
まあ、通常のネットワーク保守でも必要なものです。
・10BASEのHUB
バカハブとか、バスハブって呼ばれるハブです。
通常100M以上のハブはスイッチングハブと呼ばれるものばかりですが、10M用のハブはスイッチングじゃないハブがあります。
この違いってのは、スイッチングは通信に必要なポートをつなげて、不必要な通信は極力流さないようになっています。
一方バスハブはすべての通信がすべてのポートへ転送されてしまいます。
なにに利用するかというと、ネットワークの状況を監視する場合に、監視対象と同じハブに監視用のPCを接続することで、通信がすべてモニタリングできるんですよね。
ただし、すでに10BASEのハブは売っていないので、通常はもう少し高いモニター機能の付いたハブを使います。
・キャプチャーソフト
結構いろいろありますが、外国のソフトが多いみたいです。
今ならマイクロソフトのやつが一番かな?
DHCPとかの通信からチェックしないといけないような場合はすくないと思いますが、LAN付きのハードとかの開発を行うとその辺から調べる必要があります。。。
あと、キャプチャーできる環境でメールとか受信すると平文で流れているパスワードとかがわかるので、FTPとかメールのパスワード忘れた場合とかも利用できます!(笑)
ネットワーク系だとFTPの接続が切れるとかの場合にキャプチャーしたりするかな~
たいていはtcpdumpとかLinux上で動かすぐらいで大丈夫だけれど。。。
・ネットワークエミュレーター
回線の帯域制限や、遅延速度、ロスト頻度などを制御するソフトです。
ルーターとして通信対象の間において、速度制限をしたりします。
UDPとかを利用した通信の場合には、パケットロストはこの手のツール使わないとテスト面倒です。
TCPだとこの辺の苦労があまりないのですがUDPだと。。。
パケットがなくなったり、順番が狂ったり、途中で送信ポート番号変わったり。。。
いろいろあります
でも一般のWebでもブラウザ側の帯域絞っての動作検証とか昔やっていたけれど、一般的なWeb系開発だとその手の低速回線って最近考慮していないみたいですね
時代が変わったのか?
ネットゲームとかを作るときにはちょこっと特殊な環境とソフトなどを利用します。
まあ、通常のネットワーク保守でも必要なものです。
・10BASEのHUB
バカハブとか、バスハブって呼ばれるハブです。
通常100M以上のハブはスイッチングハブと呼ばれるものばかりですが、10M用のハブはスイッチングじゃないハブがあります。
この違いってのは、スイッチングは通信に必要なポートをつなげて、不必要な通信は極力流さないようになっています。
一方バスハブはすべての通信がすべてのポートへ転送されてしまいます。
なにに利用するかというと、ネットワークの状況を監視する場合に、監視対象と同じハブに監視用のPCを接続することで、通信がすべてモニタリングできるんですよね。
ただし、すでに10BASEのハブは売っていないので、通常はもう少し高いモニター機能の付いたハブを使います。
・キャプチャーソフト
結構いろいろありますが、外国のソフトが多いみたいです。
今ならマイクロソフトのやつが一番かな?
DHCPとかの通信からチェックしないといけないような場合はすくないと思いますが、LAN付きのハードとかの開発を行うとその辺から調べる必要があります。。。
あと、キャプチャーできる環境でメールとか受信すると平文で流れているパスワードとかがわかるので、FTPとかメールのパスワード忘れた場合とかも利用できます!(笑)
ネットワーク系だとFTPの接続が切れるとかの場合にキャプチャーしたりするかな~
たいていはtcpdumpとかLinux上で動かすぐらいで大丈夫だけれど。。。
・ネットワークエミュレーター
回線の帯域制限や、遅延速度、ロスト頻度などを制御するソフトです。
ルーターとして通信対象の間において、速度制限をしたりします。
UDPとかを利用した通信の場合には、パケットロストはこの手のツール使わないとテスト面倒です。
TCPだとこの辺の苦労があまりないのですがUDPだと。。。
パケットがなくなったり、順番が狂ったり、途中で送信ポート番号変わったり。。。
いろいろあります
でも一般のWebでもブラウザ側の帯域絞っての動作検証とか昔やっていたけれど、一般的なWeb系開発だとその手の低速回線って最近考慮していないみたいですね
時代が変わったのか?