2013年4月22日月曜日

日記の書き写し

ブログ移転予定 なのでその作業の一環として Floating Log の内容を抜き出して 痕跡 に置いた。 ブログサイトとしての構造は全然保っていないので、まさに書き写された日記というだけの代物。

読み返すと、一文だけの日とかもあって、そういうのは今はツイッターで済ませてしまっているのだということに時代の変化を感じる。

2013年4月15日月曜日

棚卸し (GitHub編)

引き続いて GitHub、とは言ってもそんなに使っていないのだった。

Arithmetica
その昔、20世紀の終わり頃、awk がメインのプログラム言語だった頃、多倍長整数の計算がしたくなって awk で実装したもの。 素数判定とか因数分解とかなんかも、メモリーの制約が厳しい環境で動くアルゴリズムを実装してある。 「awk でも多倍長整数が使いたい」という人向け(まあ滅多にいない)。

他は gentoo の翻訳プロジェクトが github を使っているので、そこに参加しているぐらい。

棚卸し (BitBucket編)

引き続いて BitBucket 編。 BitBucket は(最近は Git も扱えるけど) Mercurial のレポジトリ置き場。

その1: mft_experimental
現在自分の普段使いの OS は Mac OS X なのだが、パッケージマネージャーには Gentoo Prefix を使っている。 それの自分用オーバーレイ。 一時期よりは管理している(独自にパッチを当てたりしている)パッケージが減ってきた。

その2: csggraphenum
どちらもグラフ列挙用のプログラム。 csg は阪大にいたときに間に合わせで作った Python プログラム。9頂点が限界。 graphenum は NII 時代に宇野先生と考えたアルゴリズムの実装で、Python 実装と C 実装があるが、メインは C 実装。 11 頂点まではいけることを確認している。 もう少し速くなると良かったんだけど。

その3: nxbimatch
2部グラフのマッチングを列挙するプログラム。 最大マッチングと完全マッチングの列挙ができる。 グラフ自体は NetworkX という Python のグラフライブラリのものを使っている。 マッチングを一つ探すようなプログラムは良くあるが、列挙するものは見掛けないので自分で実装した。

その4: hcp
これは GAE編 その2 の Hilbert class polynomials の実装を公開しているもの。 Google App Engine を公開データベースとして使うサンプル、ぐらいの気持ち。

ニッチなプログラムばかりだ。

棚卸し (GAE編)

技術者スキルシートとかいうものを埋めていたのだが、 どちらかというと趣味で動かしているプロジェクトはどうするのだ。 と、思って結局そこには書かなかったのだが、どこかに書きたくなったのでここに書く。

まずは Google App Engine 上で動かしているものについて。 (この後、BitBucket や GitHub に放り込んであるものなども書くつもり)

その1: みんなで正誤表
昔から本の誤植が気になる方だったので @nifty のホームページ(まだある)とかでも手書き HTML で正誤表を地味に作っていたのだが、「これウェブアプリにすればいいんじゃない?」と思って GAE で作ったもの。 Python 系の書籍などでごく少数ながら公式っぽく扱ってもらったりして、まあ一番使われていると言って良いだろう。

一時期、SDK のバージョンと Python のバージョンとデータストアの種類と利用するフレームワーク(Kay)とアップデートしなければいけない状態になって、更新に二の足を踏んでいた。 が、最近少し時間があるので、一気に更新と懸案の検索機能追加などを済ませた。 ツイッターの @public_errata で更新情報をつぶやくようにしたが、 これを自動化するのが次に暇になったときの目標。

その2: Hilbert class polynomials
NZMATH の機能の一部。 判別式ごとに Hilbert 類多項式の係数を返す、ただそれだけのもの。 データストアの更新前、Master/Slave 方式の時は free quota にぎりぎり収まっていたのに、HRD に代えたらぎりぎりインデックスが収まりきらない状態になってしまった。 無駄にインデックスが張られているフィールドをインデックス無しに変更して様子見。

その3: NZMATH / JSON
NZMATH は Python で書いてあるんだし、そのまま GAE に載るよね。 というノリで作られた試作品。 結果が JSON で返るので、この名前になっている。 データストアは一切使っていなかったが、更新しろと言われたので更新した。 放置して旧式の M/S が使えなくなったときにどうなるか見るのもいいかと思っていたが、その2の Hilbert class polynomials が中国式剰余定理をこっちでまかなうという、変な作りになっているので安全側に。 Sage のノートブックとかと比べてはいけません。

その4: ギョエテくん
Göthe をギョエテと読んだ人がいた時代があった。 今でも読み方の一定しない外国人の名前ってあるよね。 ということで、そんな情報を収集しようとしてみたもの。 インターフェイスもでたらめだし、もうメンテする気はなくなっている。 これこそ M/S 方式のまま放置して滅びる様を観察する対象、と自分では思っている。 もし万が一、引き継いでみたいという人がいれば、喜んで権限をお譲りします。

以上4つ。