wakimap6 v0.02公開
これはなに?
例大祭6での配置図マッピングを支援するためのツールです。
引き続き、コミケカタロムっぽいものを目指していました。
作者多忙のため、相変わらずバグだらけかもしれません。変な動作に気づいた場合は、コメント等で教えて頂けると助かります。
変更点
お誕生日席への対応
島の両端がお誕生日席になることがわかったので対応(ソース:id:maisan)
エラーを起こしてしまうサイトについて
ミニブラウザではInternetExplorerを利用してサイトを表示しています。
サイトによってはエラーを起こしてしまうことがあり、このエラーはwakimap側では対応も(防御さえも)できません。
そこで、エラーを起こす可能性のあるサイトを errorurl.txt としてファイルにまとめておき、このサイトについては表示しないようにしています。wakimapを可能な限り守るための措置以上の意味はありませんのでご了承下さい。
サイトを表示した場合にエラーが起きてwakimapごと終了してしまう場合には、エラーの原因となったサークルの情報をメモしておき、ご一報下さい。
または、暫定的な対応としては、errorurl.txtにそのサークルのURLを登録して下さい。
四分割レイアウトについて
今回、縦に長いレイアウトとなるため、従来の左右分割レイアウトに加えて上下左右に配分する四分割レイアウトを追加しました。
これで若干見やすくなると思います。相変わらず見づらいですが…
つかいかた
右上のリストボックスには全サークルのリストが、右下のリストボックスには選択したサークルのリストがそれぞれ表示されています。
2つのリストボックスの間には、選択されているサークルのサークル名やペンネーム、WebサイトのURIが表示されます。
配置図上の任意のスペースをクリックすると、対応するサークルが全サークルリストで選択されます。
サークルが選択されている状態で、キーボードの1-9を押すと、対応する色でそのサークルを塗ります。0を押すと色指定を解除します。
同様の操作を、右クリックメニューで行うこともできます。
色指定については、メニューの「表示>色の編集」から変更できます。また、デフォルトの色設定は colors.txt に書かれています。
配置図上では、右クリックを押しっぱなしにしたままマウスをドラッグすることでスクロールすることができます。
サークル情報部にある[検]ボタンをクリックすると、そのサークルのサークル名とペンネームをgoogleで検索します。
[開]ボタンをクリックすると、WebページのURIがある場合にはブラウザでそのURIを開きます。
なお、本バージョンでは印刷機能をサポートしていません。ペイントや任意のビューアなどを使って印刷して下さい。
また、例大祭6での参加サークル増にともない、メモリ使用量が非常に多くなっています。おそらく100〜150MB程度食うと思います。
補助ウインドウについて
検索ウインドウ
ウインドウ下部にあるテキストボックスに検索したい文字列を入力し、検索ボタンをクリックすると、その文字列を「サークル名」「ペンネーム」に持つサークルを検索します。
また、テキストボックスはオートコンプリートが有効になっているので先頭から一致入力候補が表示されるようになっています。
検索結果として表示されたリストをクリックすると、メインウインドウのリストに反映されます。
既知のバグ
- キーボードで連続して色を指定した場合、その直後にカーソルキーで移動しようとすると色指定をはじめたアイテムの位置からの移動となる。
- 選択サークルの数が増えると、配置図からリストがはみ出す。
- サークルにURIが設定されていない場合のページで、"I'm Feeling Lucky"をクリックしても検索結果が表示されることがある。(googleの仕様?)
- 左右リスト描画時に、どのサークルも選択していない場合にはカーソル位置を示す紫のガイドが中途半端な位置に描画される。
- とてもいっぱいメモリを食う。
- その他諸々。
免責事項
本ソフトウェアを使用したことにより生じたいかなる問題についても作者は一切責任を負わないこととします。自己責任でご利用下さい。
また、サークル情報は例大祭6公式サイトから独自に編集したものですがその正確性を保証するものではありません。
本ツール、並びに同梱されている情報について、例大祭社務所に問い合わせることはおやめ下さい。
なお、背景のフロア画像は公式サイトで公開されている画像を編集したものを利用しています。
履歴
2009/02/27 v0.02
wakimap6 v0.01公開
バージョンアップ
新バージョンが出ています。例大祭タグから最新の記事を探して下さい。
これはなに?
例大祭6での配置図マッピングを支援するためのツールです。
引き続き、コミケカタロムっぽいものを目指していました。
作者多忙のため、相変わらずバグだらけかもしれません。変な動作に気づいた場合は、コメント等で教えて頂けると助かります。
つかいかた
右上のリストボックスには全サークルのリストが、右下のリストボックスには選択したサークルのリストがそれぞれ表示されています。
2つのリストボックスの間には、選択されているサークルのサークル名やペンネーム、WebサイトのURIが表示されます。
配置図上の任意のスペースをクリックすると、対応するサークルが全サークルリストで選択されます。
サークルが選択されている状態で、キーボードの1-9を押すと、対応する色でそのサークルを塗ります。0を押すと色指定を解除します。
同様の操作を、右クリックメニューで行うこともできます。
色指定については、メニューの「表示>色の編集」から変更できます。また、デフォルトの色設定は colors.txt に書かれています。
配置図上では、右クリックを押しっぱなしにしたままマウスをドラッグすることでスクロールすることができます。
サークル情報部にある[検]ボタンをクリックすると、そのサークルのサークル名とペンネームをgoogleで検索します。
[開]ボタンをクリックすると、WebページのURIがある場合にはブラウザでそのURIを開きます。
なお、本バージョンでは印刷機能をサポートしていません。ペイントや任意のビューアなどを使って印刷して下さい。
また、例大祭6での参加サークル増にともない、メモリ使用量が非常に多くなっています。おそらく100〜150MB程度食うと思います。
リストの描画スタイルについて
「リストを左右に分けて描画」オプションが有効になっている場合、リストが左右に描画されます。
会場の左側にあるサークルは左側のリストに、右側のサークルは右側のリストにそれぞれ描画されるようになります。
チェックを外すと、右側1列レイアウトで描画します。
補助ウインドウについて
検索ウインドウ
ウインドウ下部にあるテキストボックスに検索したい文字列を入力し、検索ボタンをクリックすると、その文字列を「サークル名」「ペンネーム」に持つサークルを検索します。
また、テキストボックスはオートコンプリートが有効になっているので先頭から一致入力候補が表示されるようになっています。
検索結果として表示されたリストをクリックすると、メインウインドウのリストに反映されます。
既知のバグ
- キーボードで連続して色を指定した場合、その直後にカーソルキーで移動しようとすると色指定をはじめたアイテムの位置からの移動となる。
- 選択サークルの数が増えると、配置図からリストがはみ出す。
- サークルにURIが設定されていない場合のページで、"I'm Feeling Lucky"をクリックしても検索結果が表示されることがある。(googleの仕様?)
- 左右リスト描画時に、どのサークルも選択していない場合にはカーソル位置を示す紫のガイドが中途半端な位置に描画される。
- とてもいっぱいメモリを食う。
- その他諸々。
免責事項
本ソフトウェアを使用したことにより生じたいかなる問題についても作者は一切責任を負わないこととします。自己責任でご利用下さい。
また、サークル情報は例大祭6公式サイトから独自に編集したものですがその正確性を保証するものではありません。
本ツール、並びに同梱されている情報について、例大祭社務所に問い合わせることはおやめ下さい。
なお、背景のフロア画像は公式サイトで公開されている画像を編集したものを利用しています。
履歴
wakimap6開発にとりかかりました
遅いよ、と言われそうですが…
申し訳ありません、例大祭直前に学会発表があるもので…orz
さきほど参加サークルのリストデータを作り終わりました。
準備会スペースの位置については、Ü¢³ñÌz[y[WcshÅで公開されているサークル名入り配置図を参考としています。ありがとうございます。本当に助かります…
あとはどのサークルがどの座標に来るかを地味に入力していけばデータは完成です。
プログラム側に関しては、表示をどうするか、出力をどうするかといった問題があります。今週中にはなんとかしたいところではありますが、気長にお待ちくださいませ。
また、引き続きご意見ご要望等を募集しています。お気軽にどうぞ。
例大祭6 配置図データ公開
http://www.reitaisai.com/6th/hall_map.htmlで公開されています。
東456ホールと言うことで…あのホールが東方で埋まるとか、すごい時代になったものですね…
高解像度の画像データが用意されたので、あとは例大祭6用に書き換えるだけなのですが、学会発表の都合からしばらく余裕がありません。誰かもっと高機能なのを作ってくれないかなぁ…
例大祭6 参加サークル一覧公開
http://www.reitaisai.com/6th/circle_list.html で公開されていますね。
東4-5-6ホール開催であることや、壁が「あ」に配置されているあたりからして、おそらくコミケと同じような配置になると予想されます。
サンクリ42で頒布されるカタログで確認でき次第、例大祭6版を作ろうと思っていますが、ここのところちょっと忙しいので、例大祭6対応版のwakimapは公開が遅くなるかもしれません。
こんな機能が欲しい、wakimap5で使いづらかった点があるから直して欲しい、といったご要望がありましたら、コメントでどうぞ。実現できるかはわかりませんが…
東456での開催と言うことで、レイアウトが難しいですね。
画面上には1ホール分を表示、印刷も1ページ1ホールが妥当でしょうか。
A4横で3ホール全て印刷、もありかもしれません。
…その前に、印刷機能をどうやって実装するか勉強しないと…
C#のハッシュ関数の処理速度を計測
C#でのハッシュ関数の処理速度を、やっつけプログラムを書いて測ってみた。
対象とするハッシュ関数は、
の5つ。
1024バイトのランダムデータを、各ハッシュ関数を用いて40万回計算し、その所要時間を計測した。
結果は次の通り。
Hash Algorithm calculation test, EACHSIZE=1024, 400000 times calculation. Creating random data... done. Calculating md5 Hash for random data... Calculate time: 4109.375ms, 0.0102734375ms per calculation done. Calculating sha1 Hash for random data... Calculate time: 4453.125ms, 0.0111328125ms per calculation done. Calculating sha1managed Hash for random data... Calculate time: 4812.5ms, 0.01203125ms per calculation done. Calculating sha256managed Hash for random data... Calculate time: 9578.125ms, 0.0239453125ms per calculation done. Calculating sha384managed Hash for random data... Calculate time: 16687.5ms, 0.04171875ms per calculation done. Calculating sha512managed Hash for random data... Calculate time: 16421.875ms, 0.0410546875ms per calculation done. test finished.
ハッシュ関数 | 1回あたりの所要時間[ms] |
---|---|
MD5 | 0.0103 |
SHA1 | 0.0111 |
SHA-256 | 0.0239 |
SHA-384 | 0.0417 |
SHA-512 | 0.0411 |
SHA1とMD5の差が意外と小さい。コリジョンのことを考えると、SHA1が良いかも。
計測に使用したソース
using System; using System.Collections.Generic; using System.Text; namespace hashtest { class Program { static void Main(string[] args) { const int EACHSIZE = 1024; const int MAXTRY = 400000; // 使用する乱数生成系 System.Random rnd = new Random(); // 使用するハッシュプロバイダ System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); System.Security.Cryptography.SHA1CryptoServiceProvider sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider(); System.Security.Cryptography.SHA1Managed sha1managed = new System.Security.Cryptography.SHA1Managed(); System.Security.Cryptography.SHA256Managed sha256managed = new System.Security.Cryptography.SHA256Managed(); System.Security.Cryptography.SHA384Managed sha384managed = new System.Security.Cryptography.SHA384Managed(); System.Security.Cryptography.SHA512Managed sha512managed = new System.Security.Cryptography.SHA512Managed(); // ハッシュ/名前配列 System.Security.Cryptography.HashAlgorithm[] hashes = { md5, sha1, sha1managed, sha256managed, sha384managed, sha512managed }; string[] hashes_names = { "md5", "sha1", "sha1managed", "sha256managed", "sha384managed", "sha512managed" }; // 処理時間計測用 System.DateTime time_begin, time_end; Console.WriteLine(string.Format("Hash Algorithm calculation test, EACHSIZE={0}, {1} times calculation.",EACHSIZE,MAXTRY)); // ハッシュ入力とするランダムデータ byte[][] source = new byte[MAXTRY][]; Console.WriteLine("Creating random data..."); for (int i = 0; i < MAXTRY; i++) { source[i] = new byte[EACHSIZE]; rnd.NextBytes(source[i]); } Console.WriteLine("done.\n"); // 各ハッシュ関数についてループ for (int i = 0; i < hashes.Length; i++) { System.Security.Cryptography.HashAlgorithm hasher = hashes[i]; string hasher_name = hashes_names[i]; byte[] computedhash = null; Console.WriteLine("Calculating " + hasher_name + " Hash for random data..."); time_begin = DateTime.Now; for (int j = 0; j < MAXTRY; j++) { byte[] input = source[j]; computedhash = hasher.ComputeHash(input); } time_end = DateTime.Now; TimeSpan ts = time_end - time_begin; Console.WriteLine(string.Format(" Calculate time: {0}ms, {1}ms per calculation", ts.TotalMilliseconds, ts.TotalMilliseconds/MAXTRY)); Console.WriteLine("done.\n"); } Console.WriteLine("test finished."); Console.ReadKey(false); } } }