実に5年ぶりですが、Loquiの0.5.0をリリースしました。
https://launchpad.net/loqui/0.5/0.5.0
プログラム自体に大きな変更はなく、デフォルトブラウザがxdg-openになったとか、文字コード選択にJapanese (UTF-8)が入ったとか、そのくらいです。
一番大きな違いは、LaunchPadに移動して、チーム開発がしやすくなったというところです。
今までもコミット権は何人か持っていましたが、Webページ更新などはできませんでした。
今はLaunchPadの枠組みに入れたので、権限があれば技術的にはリリースすることができます。
(バージョンを上げるときの手順を知らないといけませんが)
まぁ、また停滞するかもしれませんが、よろしくお願いします。
ページ
▼
2010-12-12
Subversion レポジトリをBazaarに変換する
1. svnadmin dump
svnadmin dump repo > repo.dump
2. svn:author変換
svn:authorをメールアドレスに変換する。一気にメモリに読むので大きいと遅いかも。
ruby -e 'name="test@example.co.jp"; print ARGF.read.gsub(/^svn:author\nV \d+\nORIGINAL-AUHTOR\n/) { "svn:author\nV #{name.length}\n#{name}\n" }' repo.dump > repo-fixed.dump
3. svn2bzr
bzr branch lp:svn2bzrでsvn2bzrを入手し、以下を実行。
~/svn2bzr/svn2bzr.py --scheme=trunk --exclude=branches --exclude=tags repo-fixed.dump repo-dir
(trunk/tags/branches形式を認識し、tag付けとかをしてくれる。branches/tags単独のブランチはいらないのでexcludeする。)
<参考>
http://wiki.bazaar.canonical.com/svn2bzr svn2bzr
http://www.stedee.id.au/2008/11-06/manually_migrating_subversion_repository_launchpadbzr
svnadmin dump repo > repo.dump
2. svn:author変換
svn:authorをメールアドレスに変換する。一気にメモリに読むので大きいと遅いかも。
ruby -e 'name="test@example.co.jp"; print ARGF.read.gsub(/^svn:author\nV \d+\nORIGINAL-AUHTOR\n/) { "svn:author\nV #{name.length}\n#{name}\n" }' repo.dump > repo-fixed.dump
3. svn2bzr
bzr branch lp:svn2bzrでsvn2bzrを入手し、以下を実行。
~/svn2bzr/svn2bzr.py --scheme=trunk --exclude=branches --exclude=tags repo-fixed.dump repo-dir
(trunk/tags/branches形式を認識し、tag付けとかをしてくれる。branches/tags単独のブランチはいらないのでexcludeする。)
<参考>
http://wiki.bazaar.canonical.com/svn2bzr svn2bzr
http://www.stedee.id.au/2008/11-06/manually_migrating_subversion_repository_launchpadbzr
2010-08-21
RRDToolのファイルのサーバ間移動
アーキテクチャが異なると処理できないので、気をつけなくてはいけない。
具体的には、転送元でrrdtool dump、転送先でrrdtool restoreすればよい。
具体的には、転送元でrrdtool dump、転送先でrrdtool restoreすればよい。
2010-03-30
GPT (GUID Partition Table) detected on '/dev/sdc'と表示されたら / AFT
MBRパーティションなのに以下のメッセージが表示されたら、ディスクの最後を潰す。
# bc
2000398934016/512
3907029168
# dd if=/dev/zero of=/dev/sdc bs=512 seek=3907029167 count=100
ちなみにこのディスクはAdvanced Format Technologyを採用しているので、fdiskで切るときは注意する。
# fdisk -l /dev/sdc
WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdc: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
# bc
2000398934016/512
3907029168
# dd if=/dev/zero of=/dev/sdc bs=512 seek=3907029167 count=100
ちなみにこのディスクはAdvanced Format Technologyを採用しているので、fdiskで切るときは注意する。
# fdisk /dev/sdc
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-243201, default 1):
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-243201, default 243201):
Using default value 243201
(略)
コマンド (m でヘルプ): x
上級者コマンド (m でヘルプ): b
領域番号 (1-4): 1
新規データ開始位置 (63-3907024064, default 63): 2048
上級者コマンド (m でヘルプ): p
Disk /dev/sdc: 255 heads, 63 sectors, 243201 cylinders
Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID
1 00 1 1 0 254 63 1023 2048 3907022017 07
2 00 0 0 0 0 0 0 0 0 00
3 00 0 0 0 0 0 0 0 0 00
4 00 0 0 0 0 0 0 0 0 00
2010-01-13
Vala言語について
今日初めてVala言語と呼ばれるものを知った。
どんな言語かというと、GOBのようなGLib向けオブジェクト指向言語。Cソースを生成し、コンパイルする。
文法はC#ライク。
http://live.gnome.org/Vala
気になった点をいくつか述べる。
(1) ラムダ構文
シグナルで使う例。
(2) RAIIによるオブジェクト生成/消滅
他にも、リファレンスカウントだとか、GLibプログラミングにおいて、自分でやるにはめんどくさいいくつものことをやってくれるらしい。これで特別なランタイムはいらないって言うんだから、良いと思うのだがどうだろうか。ちょっと使ってみたくなった。
どんな言語かというと、GOBのようなGLib向けオブジェクト指向言語。Cソースを生成し、コンパイルする。
文法はC#ライク。
http://live.gnome.org/Vala
気になった点をいくつか述べる。
(1) ラムダ構文
シグナルで使う例。
foo.some_event.connect ((s, i) => stdout.printf ("Handler B: %d\n", i));
(2) RAIIによるオブジェクト生成/消滅
/* Usage: */
{
var res = new MyResource ();
// ...
}
他にも、リファレンスカウントだとか、GLibプログラミングにおいて、自分でやるにはめんどくさいいくつものことをやってくれるらしい。これで特別なランタイムはいらないって言うんだから、良いと思うのだがどうだろうか。ちょっと使ってみたくなった。
2010-01-03
Solarisでloadが異常に高い時の確認
参考になりそうなのでメモ
http://opensolaris.org/jive/message.jspa?messageID=446880#446880
by kohjuさん
http://opensolaris.org/jive/message.jspa?messageID=446880#446880
by kohjuさん
・vmstatを行い、mfとreが多いか確認してください。
・・もし、mfが4桁とかになっているのならば、ページスキャナーが動いています。
・・その場合。D-trace toolkitをインストールし、/opt/DTT/Mem/minfbypid.dを実行し、誰がmfを沢山発行してるのか、確認してください。
・・zoneは使ってますか?あるいはsrmを設定していますか?
・prstat -mLを行って、どこか、特定のプロセスがCPUパワーを食っていないか確認してください。
・・topはプロセス以外の時間も計測しますが、prstatは純粋にcpuだけです。
・iostat -Ynなどをして、%b、%wが多いか確認してください。
・・多い場合、/opt/DTT/Disk/iofile.dを実行して、誰が犯人か確認してみてください。
・intrstat 10などを実行し、どのデバイスの割り込みが多いか確認してみてください。