Cで書かれたHTTPDサーバ
高林さんのブログで発見。あの人ですら、やったことがないのかと変に関心しつつ。。。
思わず「UNIXネットワークプログラミング」を買ってしまいました。自分でも書いて見ようか。
ネット人口調査
米調査会社コムスコア (2007.7.9)
日本のネット閲覧者は5368万人で、中国の9152万人に次いで2位。
ネット普及率
韓国 | 65% |
---|---|
オーストラリア | 62% |
日本 | 49% |
中国 | 9%で第7位 |
元記事は"the First Comprehensive Review of Asia-Pacific Internet Usage"です。
世界レベルの人気サイトが Google, Microsoft, Yahoo! の順なのに対して、アジア環太平洋地域(南北米大陸を除く)の平均は Yahoo!, Microsoft, Google と逆転しています。特徴的なのは中国の Microsoft, Baidu, TENCENT*1、韓国の NHN Corporation *2, Lycos, Microsoft、ニュージーランドの Microsoft, Google, Fairfax Media です。
Graph visualization tools
大規模なグラフを描くためのツール
ほかにいくらでもあるけど、今日みつけたものだけ。。。
- Walrus, - Graph Visualization Tool.
- TreeJuxtaposer, Tamara Munzner, Francois Guimbretiere, Serdar Tasiran, Li Zhang, and Yunhong Zhou: "TreeJuxtaposer: Scalable Tree Comparison using Focus+Context with Guaranteed Visibility," Proc. SIGGRAPH 2003, published as ACM Transactions on Graphics 22(3), pages 453--462.
- Tamara Munzner, "H3Viewer."
- しましまさんに紹介していただいた解説 --- VGJ, Walrus, CAIDAを紹介している。
Graph Drawinを勉強するための基本文献
- Graph drawing: A starting point for graph drawing. It includes a bibliography and links to research groups, tools, conferences, and selected papers.
- Graph Visualization and Navigation in Information Visualization.: A survey paper on techniques for visualizing graphs, especially from the perspective of information visualization.
- Fractal Approaches for Visualizing Huge Hierarchies.: A paper discussing a fractal-based tree layout algorithm.
ハブ
いきなりこんなのを探し始めたきっかけは、National Geographic誌の6月号125ページに扇形に描画したデンドログラムを見つけたことです。「35億年前に存在した『すべての生物の共通祖先』から、その後の生物すべてが進化した」とする最新理論をデンドログラムを用いて描画したものです。
どうということはないものの、見るとちょっとしたものです。単に格好いいというわけではなく、普通にX-Y座標系に描くデンドログラムだと上に行くほど線の数が減少する欠点(規模が大きくなると空白な領域が増えて空間の利用効率が悪くなる)を補うために、R-Θ座標系でプロットし扇形にする合理性があるのでしょう。
残念ながら、雑誌に掲載された画像をネット上で見つけることはできませんでした。学術論文に含まれていて、丹念に著作を探せばでてくるのかもしれませんね。一番、雰囲気を表している画像はこれです。
非連結なグラフのクラスタリング
Newman法によるクラスタリングでは、グラフが連結していることを仮定しているようだ。非連結の場合にはすべてのクラスタがひとつにまとまる前にノード対がなくなってしまうから。では、非連結なグラフにはどのように対応すればいいのか?あらかじめ、島ごとに分離し、そのなかの一番大きなもののみを解析対象とするのもいいかもしれないけれども、ちょっと面倒。
そこでアイデア。あらかじめ与えられたグラフに仮想的なノードをひとつだけ追加して、元々のグラフの全ノードにエッジを張り、ΔQ = -∞ を与えておく。すると、ΔQ が小さいためクラスタリングの最中にこのエッジが選択されることはなく、クラスタリングの順序にも(多分)影響を与えず、非連結なグラフの場合には、ここで追加したエッジだけが最終段階に残り、いいかげんな順序でクラスタリングが進みます。最終的にはひとつのデンドログラムが得られるでしょう。
ご意見、歓迎します。
eclipse + subclipse
jar たち
csv.x.x.x, junit.4.x.xをダウンロードし、以下のように保存。
wakita@MacBook/wakita$ ls -l ~/lib/java
drwxrwxrwx 7 wakita wakita 238 4 13 1999 csv_1_0_1
- rw-r--r-- 1 wakita wakita 35706 4 14 1999 csv_1_0_1.zip
drwxr-xr-x 11 wakita wakita 374 10 31 2006 junit4.1
drwxr-xr-x 10 wakita wakita 340 11 16 2006 junit4.2
drwxr-xr-x 10 wakita wakita 340 3 27 14:22 junit4.3.1
- rw-r--r-- 1 wakita wakita 643042 3 28 04:23 junit4.3.1.zip
...
ちなみに csv は CSV 形式を読み込むためのパッケージ。junit は Java 用の単体テストのためのパッケージ(古いバージョンは、Eclipse に標準でついてくる)。ほかには構文解析器生成系の java-cup.jar や字句解析器生成系の JFlex.jar などをダウンロード。
Build Path変数
Eclipse の環境設定「Java/Build Path/Classpath:Classpath Variables」にて以下を追加設定
- CSV = $HOME/lib/java/csv_1_0_1/csv.jar
- JUNIT4 = $HOME/lib/java/junit4.3.1/junit-4.3.1.jar
- JUNIT4_SRC = $HOME/lib/java/junit4.3.1/junit-4.3.1-src.jar
これらの編集は非標準のもの。各自がインストールした jar ファイルに位置にあわせて適宜設定すること。
パッケージのプロパティでも、Classpath Variables を設定することはできるが、ここに絶対パスで個々の jar ファイルを指定してしまうと、SVN で共有する他の人々の環境で利用できなくなってしまうため、パッケージの指定では Classpath Variable を利用すべきでしょう。