東京都で使われている新型コロナのサイトは、オープンソースソフトウェアといってシステムの設計図が公開されてます。よって誰でも同じようなサイトを構築することができ、各地のコロナのサイトが構築・公開されています。
派生サイトは、以下のように GitHub と呼ばれる開発サイト上に情報がまとめられているので、ご興味あれば参考にしてみてください。

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ
東京都で使われている新型コロナのサイトは、オープンソースソフトウェアといってシステムの設計図が公開されてます。よって誰でも同じようなサイトを構築することができ、各地のコロナのサイトが構築・公開されています。
派生サイトは、以下のように GitHub と呼ばれる開発サイト上に情報がまとめられているので、ご興味あれば参考にしてみてください。

etherさん作成のCodeReadingWiki が、ソースコードを読むのにすごく便利で使わせて頂いていました。これはソースコードにglobalというツールでタグをつけ、Webブラウザから閲覧しながら必要に応じてソースコードにコメントを挿入できるソフトウェアです。
ソースコードはタグ付けされているので、簡単に変数や関数の定義位置に飛べたり、検索することができ、Webブラウザから閲覧できるので、複数の人とコメントを共有したりできます。
しかし、最近は更新が全然ないようなので、独自に少し改造しました。変更点は以下の通りです。
トップページ
コメントを入れたいソースコードの行(262行目)をダブルクリックしてコメントを挿入していることろ。
コメントを入れた後に、同じ行(262行目)をダブルクリックして、コメント挿入完了したところ。赤枠と赤文字でコメントが表示されます。
コメントの検索結果。global.cの262行目にfunctionというコメント文字列が存在しています。
動作確認はCentOS 5 + firefox 3.6 で行っています。手順はあまり詳細に書いていないので、不明点がある場合はコメントください。
yumで簡単にインストール可能です。設定ファイル例はcrwiki-mazn-x.x.tar.gzに入っていますので参考にしてください。
# yum install mysql-server
MySQLのインストールの詳細は省略します。MySQL起動後、以下をMySQLに対して発行しテーブルを作成します。
CREATE DATABASE crwiki; CREATE TABLE remarks (prj VARCHAR(65) NOT NULL, src VARCHAR(255) NOT NULL, line INT NOT NULL, remark MEDIUMTEXT NOT NULL, PRIMARY KEY(prj, src, line)) TYPE = MYISAM ;
# yum install php
PHP関連の必要なモジュールをインストールします。
# yum install php-mbstring php-mysql
Apacheはデフォルトでインストールされるので、必要に応じてApacheのルートディレクトリを設定してあげてください。ここでは、/home/www とします。
Gnuglobal はCentOSには付属していないので、ソースからインストールします。今回は global-5.8.2 で動作確認をしています。バージョンが異なると、globalで生成されるhtmlファイルに違いが出て、うまく動かない可能性がありますので注意です。
今回のディレクトリ構成は以下のようにします。
/home/www ・・・ Apacheのルートディレクトリ
|--- crwiki ・・・ crwiki用のディレクトリ
|--- linux-kernel ・・・ 解読したいソースコード
crwiki をダウンロード・展開し、すべてのファイルを/home/www/crwikiのディレクトリに移動します。ファイルに含まれているファイルは以下のファイルです。
crwikiの設定を行います。MySQLに接続するためのホスト名、ユーザ名、パスワードを設定してください。
# vi /home/www/crwiki/crwikiconf.cgi <?php $dba_class = "MySQLAgent"; $host = "localhost"; $user = "root"; $password = "hogehoge"; $db = "crwiki"; $db_charcode = "utf8"; ?>
読みたいソースコードをcrwikiディレクトリにディレクトリを一個作って置きます。ここでは、linux-kernel というフォルダにLinux カーネルソースコードがあるとします。
ソースを置いたら、mkcrwiki.shでソースコードの解析をします。
# cd /home/www/crwiki/ # ./mkcrwiki.sh linux-kernel
プロジェクト名を設定します。プロジェクト名はユニークにしてください。 デフォルトではディレクトリ名が入っています。プロジェクト名が空の場合は動作しません。
# vi linux-kernel/crwiki.php <?php // Prject Name $prj = "linux-kernel"; require '../crwikilib.php'; ?>
あとは対象サーバのURLにWebブラウザでアクセスしてください。
CodeReadingWikiを改造してみました → こちら
現在多くのアプリケーションのソースコードがネット上に公開されています。他人のソースコードを読むのは結構骨の折れる作業で、これを手助けしてくれるツールがいくつかあります。特にブラウザ上でHTMLのリングを用いてソースを追っかけるツール、Code Reading(コードリーディング)やCode Viewer(コードビューア)、Code Brower(コードブラウザ)、もっと広い範疇ではソースコードタグシステムとか呼ばれているものです。
私は個人的にLXRを使っていました。また、gonzuiやGNU Globalも似たソフトウェアです。これらのソフトウェアを利用することで、関数や変数の定義場所、使用されている場所等がマウスクリックで追いかけられます。しかし、ずっと不満に思っていたことが一つ。ソースコードを読むとそこで理解したことをメモりたくなりますが、これらのソフトウェアではそこまでサポートされず、結局紙や他のテキスト文書に書くことになります。
しかし、最近Globalにメモ機能を付加したソフトウェアを見つけました。CodeReadingWikiというものです。 コメントを残したい行をダブルクリックすることでコメントを残せるようで、かなり便利そうです。だだし、最近は更新がないので、少し改造してみました。
ただ欲を言えば、その場でソースも修正できたり、SVNのリポジトリを直接見たりできるとさらに便利だろーなと思っています。バグトラッキングシステムTracのソースコードブラウザに、これらの機能を付加したツールを誰か作ってくれないかなぁ。いや自分で作って・・・・・