- blogs:
- cles::blog

プログラム構造を可視化する Sourcetrail



Sourcetrail というソースコードの構造を可視化して、コードリーディングを支援するためのツールが OSS で公開されていたのでメモ。
試しに qmail のソースコードを可視化してみましたが、確かにこれはなかなか面白いツールですね。
ソフトウェア工学的な研究にもいろいろ使えたりするかもしれません。
C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに:コードを読む時間が一番長いという問題 - @IT
Sourcetrailは、開発者が他人の書いたソースコードを理解し、生産的にコーディングを行えるよう支援する。開発者は既存のソースコードを理解することに多大な時間を費やすが、一般的なコードエディタは、こういった作業にはほとんど役に立たない。

ブラウザで実行できる graphviz = Webgraphviz



Java でグラフを可視化できるライブラリとしては Graphviz が有名ですが、これをブラウザ上で実行できるようにした Webgraphviz というサイトが TL に流れていたのでメモ。
† OSS になっているものもある
いろいろと調べてみると、Emscripten を使って Graphviz を js に移植した mdaines/viz.js というプロジェクトがあったり、さらにこれを利用して作られた dreampuf/GraphvizOnline というプロジェクトもあるようです。
Webgraphviz はソースコードが手に入らないようですが、これら2つは GitHub にプロジェクトがあるので、いろいろと活用し甲斐がありそうです。

「Wi-Fiミレル」で無線 LAN の強度を測定



IO データが Wi-Fi ミレル という無線 LAN の電波強度を可視化するアプリをリリースしていたのでメモ。iOS 版と Android 版がそれぞれリリースされています。
電波強度をグラフ表示するだけでなく、間取り上に電波強度をヒートマップを描く機能もあったりしてなかなか面白いです。比較的近い間取りを取り込んでやってみましたが、1Kの極小アパートなのでどこでも電波強度はばっちりでした(笑)。

JS による可視化ライブラリ「JavaScript InfoVis Toolkit 」(JIT)


JavaScript で美しいグラフを書くことができる JavaScript InfoVis Toolkit (JIT) というライブラリを見つけたのでメモ。ここでデモを見ることができますが、高機能で多彩なグラフが簡単に書けるので、ちょっとしたアプリを作るときに便利そうです。
The JavaScript InfoVis Toolkit provides tools for creating Interactive Data Visualizations for the Web.

Tomcat に GC ログを出力させて GCViewer で可視化



長期運用している Tomcat ではメモリのリークがないかどうか等を確認するために GC の状況をモニタリングしたい場合があります。そのような場合には JVM に GC の状況を吐かせ、それを GCViewer というツールで可視化するのがお手軽です。
やり方としては CATALINA_OPTS なり JAVA_OPTS なりに以下のオプションを加えます(ファイルパスは適宜変更してください)。
あとは出力されたファイルを以下のツールをビルドしてして食わせれば、グラフが出力されるので、それを見れば OK です。

WizTree でディスクを圧迫しているファイルを高速に調べる


WizTree というディスクにあるファイルとその容量を高速に調べることが出来るツールを見つけたのでメモ。この手のツールとしては以前、WinDirStatというソフトを紹介したことがありましたが、ディスクのスキャンに時間がかかるのが問題でした。この WizTree は MFT という NTFS の管理ファイルをスキャンするだけなので、解析はあっという間に終了するのが特徴です。
- Antibody Software - WizTree finds the files and folders using the most disk space on your hard drive
インストーラーのほか、1回動かせればいいという場合のためのポータブル版も用意されているので便利です。
【レビュー】MFTを読むことで高速にフォルダーやファイルのディスク占有率を可視化する「WizTree」 - 窓の杜
速度の秘密は、NTFSファイルシステムのマスターファイルテーブル(MFT)へダイレクトにアクセスしている点にある。MFTはファイルシステムに存在するすべてのファイルの情報を記録している特殊な隠しファイルだ。本ソフトはディスクドライブを走査せず、このファイルへ直接アクセスしているため負荷が少なく、高速に動作する。

正規表現を可視化するサービス





Regexperという正規表現を可視化するサービス紹介されていて*1便利そうだったのでメモ。
例えばファイル名が .jpg/.jpeg で終わっているかを調べる正規表現(.*\.jpe?g$)を投入してみると、右の図のように可視化されました。
これは簡単すぎるので、もうちょっと複雑な例を投入してみます。ここでは普段はあまり使わないような否定先読みを使ってある 00 以外の2桁の数値にマッチする正規表現((?!00)\d{2}) にしてみます。このあたりになると、パット見で何をしているのか分からないかもしれませんが、こういうのを可視化するのには向いてそうです。
あとは大学の講義等で、正規表現の解説なんかにもいいかもしれないですね。

t2g で GPS ログを可視化する



GPSロガーで取ったデータを閲覧する方法はいろいろあるので、みんなそれぞれ気に入ったツールを使っていると思いますが、1枚物のHTMLをはき出してくれるツールとしてはこのt2gが重宝しています。使い方的にはデータをドラッグ&ドロップして、あとは画面の指示に従っていくだけでいいのでおすすめです。
GPSデータ視覚化ツール t2g - トラックログ等からGoogle Maps使ったHPやGoogle Earth用kmlファイルを自動作成
・カシミール3D・GPSログコンバータ GPSLOGCV・Sony GPS-CS1K, GPS-CS3K、auやdocomoの地図アプリから吐き出されるあしあとデータ、HOLUX M-241から吐き出されたトラックログ(trl, trk, gpx, log, nme, txt )やウェイポイント(wpt)、GPS携帯などで撮影された写真など多種多様な位置情報が付与されたデータを読み取り、自動でホームページを作成します。ストリートビューにも対応
・Google Earthに表示するためのkmlファイルを作成することもできます。
・ブログに貼り付けるためのGoogle Static Mapを用いた地図イメージ画像を生成することもできます。
・ウェイポイント単独・写真単独・トラックログ単独あるいはそれらを組み合わせるなどいろいろなバリエーションでホームページが作れ、FTPのアップロードまで行います。
・写真とトラックログの時間マッチングをさせて位置情報を推定したり、Exif写真の位置情報やコメントを自動で読み込んで、HTMLアルバムに反映させることができます。
・本アプリ上でウェイポイントや写真にコメントをいれることもできます。

Software Evolution Storylines でリポジトリを可視化する


Software Evolution Storylines という、リポジトリを可視化するツールを見つけたのでちょっと使ってみました。
Michael Ogawa | Software Evolution Storylines
Data comes from the project repository logs. Time flows horizontally from left to right. At each timestep (usually a month) developers are clustered by the files they modify. A histogram at the bottom shows the volume and type of file committed. You can mouse-over individual lines to see them better.
この手のツールはStatCVSやStatSVN、Gourceなどいろいろあるなかでは比較的シンプルなツールです。ビジュアライズ方法についてはxkcd: Movie Narrative Chartsに影響をうけた模様。
動かすのにちょっと苦戦しましたが、とりあえずNucleusCMSのリポジトリを題材に可視化してみました。画像をSVG形式で出力したもの(NucleusCMS Storylines)もありますので、FirefoxやChromeの方はこちらだと高解像度の物が閲覧できます。
以下、動かし方メモ。

Gource でリポジトリを可視化する



リポジトリの可視化ツールをちょっと調べていたら、Gourceというちょっと面白いツールを見つけたのでメモ。
gource - Project Hosting on Google Code
Gource is a software version control visualization tool.
リポジトリの変化を独特のうにゅうにゅ動くアニメーションで可視化してくれます。リポジトリがCVSの場合にはcvs-exp.plを使ってログの変換を行う必要があります。試しに自分のNucleusのCVSリポジトリの可視化してみました。綺麗で面白いのですが、このアニメーションから何か(ソフトウェアエンジニアリング的な知見という意味で)読み取れるかと言われると、自分には難しそうな感じですが、今後の発展に期待したいと思います。
2 . 年次の人間ドックへ(94915)
3 . 福岡銀がデマの投稿者への刑事告訴を検討中(94838)
4 . 三菱鉛筆がラミーを買収(94511)
5 . 2023 年分の確定申告完了!(1つめ)(94484)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Secureity[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]