2006/05/08(月)subversionが上手く動かなかったのは?

2006/05/08 15:01 PC(Linux)
subversionが上手く動かなかった問題。

最初原因が切り分けできてなくて、綺麗に迷路にはまった。分かってしまえば至極単純な話だったのだが。

まずsvn+sshでsvnサーバの外からTortoiseSVNで繋ごうとしたが、"Unable to write to standard output (stderr)"というダイアログが出て上手くいかない。原因を探るためにサーバにログインしてチェック。
%svn list --version
で、
svn: error: cannot set LC_ALL locale
svn: error: environment variable LANG is ja_JP.EUC
svn: error: please check that your locale name is correct
とエラーが出て上手く行かない。元々整備する気がなかったので環境設定はいい加減。LANGを設定すればいいようなのでtcshで、
%setenv LANG C
とすると、
%svn list --version
や、
%svn list file:///レポジトリ
は通るようになったが、
%svn list svn+ssh://レポジトリ(自分)
だと、やっぱりダメでzshでexportしても変わりなく訳が分からなくなったのだった。

このエラーなのだが、要はsvn+sshはsshで入ってもってくるんだということがすとんと抜けていたのだった。つまりsshで繋いだときに入った先の環境であって、繋ぐ前のシェル環境のことではない。ということは.cshrcとか.profileとかに書かないとダメ。

とりあえず、暫定で.cshrcの末尾に
setenv LANG C
を書き加えた。

あとはログイン先からもTortoiseSVNからも問題なし。

2006/05/06(土)TortoiseSVNのメニューが春Mで表示できない

2006/05/06 15:51 PC(全般)
春M上でコンテキストメニュー上のTortoiseSVNの項が空白となって何も表示されない問題。

http://tortoisesvn.sourceforge.net/node/102
OwnerDrawの絡みで表示が消えるということらしい。エクスプローラだと正常だということになかなか思い当たらなくて探すのに苦労した。

アイコンがWindows標準のサイズでいいなら以下の解決策が有効。

HKCU\Software\TortoiseSVN\OwnerdrawnMenusをDWORDで作成し、値を0にする。

ふう、表示されるようになったやれやれ。

2006/05/05(金)フリーライセンスなフォント

2006/05/05 20:48 PC(Linux)
書いてた記事が消えたのでやる気無くした。メモだけ。

欧文でちょっと調べたけど、debianのfreefont(http://packages.debian.org/stable/x11/ttf-freefont)は小さい文字なんかが見づらかった。
ライセンスが明確なものではM+(http://mplus-fonts.sourceforge.jp/)とVera(http://www.gnome.org/fonts/)が良さそうだったので、使ってみたけどM+は端が欠けたり出っ張ったりしてて、Veraのほうが綺麗で見やすかった。
今回はVeraを使おう。

東風はもう使えないんだっけね。マッカーの人がしきりにosakaフォント勧めてたけどアレもライセンス怪しいんだよね。

ライセンスに関する記事ね(http://japan.linux.com/opensource/06/03/03/0329203.shtml)
[ライセンスを明記してるリンクサイト]

http://wiki.fdiary.net/font/?freefont
[それ以外のリンクサイト]

http://yellowpage.gogo.tc/index.html

http://www.geocities.co.jp/SiliconValley-SanJose/3220/Font.htm

http://ohkadesign.cool.ne.jp/freefont/

http://www.aboutfont.com/
[2ch]

http://pc8.2ch.net/test/read.cgi/linux/1130748494/

2006/05/03(水)Perl

久々に触ったけど、Perl難しいよPerl。

Perlのポケットリファレンスどっかいっちゃったので、使ったWebページをメモ。

http://www.rfs.jp/sb/perl/index.html

http://www2u.biglobe.ne.jp/~MAS/perl/ref/index.html

http://www.nwt.jp/document/perlfunc/index.htm

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%B8%C0%B8%EC%A4%CE%C8%E6%B3%D3#header-navi
[わからないこと、いやなこと]

・$x と @x が違う変数なのはもちろんいいんだけど、@xの要素にアクセスするときに$x[]なのがちょっと気持ち悪い。

が嫌。なぜここだけ<>?

・あとスカラーで評価されるタイミングがよく分からない。

・破壊的代入ばっか……

・クラス・構造体の実装が無理しすぎに見える。
改めて思う、Rubyは楽ね。

2006/05/03(水)GD::Graphのあれこれ(Perl)

あまり他で書いてないことをいくつか。

GD::Graphの生成画像にイメージマップを貼る


GD::Graph::Mapを使う手もあるがどうも使い勝手が悪い。そこでhotspot()メソッドを使う。
use GD::Graph::points;
my $graph = GD::Graph::points->new(400,300);

@data = (
	['1st', '2nd', '3rd'],
	[1, 2, 3],
);

my $image = $graph->plot(\@data) or die;
my @ret = $graph->get_hotspot(1);
for(my $i = 0; $i < @ret; $i++) &#123;
	print "<area shape=$ret[$i][0] Coords=$ret[$i][1],$ret[$i][4],$ret[$i][2],$ret[$i][3]>\n";
&#125;
こんな感じで。第1引数はデータ系列番号(1始まり)、第2引数はデータ系列中のデータ番号(0始まり)。共に省略可。

ソースをざっと見た限りでは、生成したグラフのタイプによってtop, bottom, left, rightがどの順で帰ってくるか違ってるような気がする。

プログラム作成時にテストした方がよい。
なお、どうでもいい話であるが、このメソッドいつも「ホッツポット」と読んでしまう。なんでだ?

numerical X(x軸を数字として扱う)


GD::Graphは基本では全てのXを見出しとして等価に扱う。

だが、散布グラフや1つの列に2つ以上のデータをプロットする場合など、X座標を数字として扱いたい機会は多い。

GD::Graphのマニュアルにあるとおりこの機能は本来はunsupportedである。従って、ちょっとやり方が複雑。


  1. x_min_value, x_max_value, x_tick_numberの3つを設定する

  2. データ系列が3つ以上の値を含む

  3. x軸のデータが全て数字


この3条件を満たすときに数字として扱ってくれるようだ。
use GD::Graph::points;
my $graph = GD::Graph::points->new(400,300);

@data = (
	[1 ,1, 10],
	[1, 2, 3],
);

$graph->set(
	x_min_value => 0,
	x_max_value => 30,
	x_tick_number => 10,
);

my $image = $graph->plot(\@data) or die;

open(OUT, ">test.png") or die;
binmode OUT;
print OUT $image->png();
close(OUT);
setメソッド中の3行はどれをコメントアウトしても表示がおかしくなると思う。

グラフ座標を画像のピクセル座標に変換


val_to_pixel()メソッドを使う。本来プライベートメソッドであるべきものを呼んでる気がするけども。
use GD::Graph::points;
my $graph = GD::Graph::points->new(400,300);

@data = (
	['1st', '2nd', '3rd'],
	[1, 2, 3],
);

my $image = $graph->plot(\@data) or die;
my $green = $image->colorAllocate(0, 255, 0);

my @p1 = $graph->val_to_pixel(1, 1);
my @p2 = $graph->val_to_pixel(3, 3);
$image->line(@p1, @p2, $green);

open(OUT, ">test.png") or die;
binmode OUT;
print OUT $image->png();
close(OUT);
(1,1)から(3,3)の間に直線を引く。numerical Xにした場合でもちゃんと動くようだ。

なお、普通の解説とかサンプルは下記参考サイトが詳しい。

お、Rubyにラッパーあるね。まだ触って無いけど。
[マニュアル]

http://search.cpan.org/~bwarfield/GDGraph-1.4307/Graph.pm
[サンプル]

http://x68000.q-e-d.net/~68user/webcgi/gd-graph.html

http://www.linkclub.or.jp/~ma3ki/webutil/gdgraph/howtograph.html

2006/04/29(土)名作パンフの印刷所選定

2006/04/29 18:59 その他
パンフの構成は40p~80pで1000部、表紙・本文スミ一色。

カンパ見込みが100k程度なのでその他会場費や雑費がかかることを考えると、100k以内に収まるのが理想。ということで調べてみた。

参考にしたのは、

http://doujin-portal.com/print/f_link.html

http://doujin-portal.com/print/index.htm

http://comic6.2ch.net/test/read.cgi/2chbook/1130460436/

以上3箇所。
色々比較検討してみたが、この構成だと安い所がない。割引、慣れ、立地等込みで考えて、以下2つあたりが候補。

・ねこのしっぽ

ねこねこぱっくが使えるかどうかが不明。基本料金だと60p-1000部で\131900。早期入稿割引10%が効いたとして、\118710。広告付だと安くなるという噂。あとは全部交渉。
・井上印刷

早期入稿その他の割引で最大30%引き(セットには適応不可)になる。60p-1000部で\135765*0.7=\95036。送料を足しても100kでお釣り。
〆切では、割引が利くことを前提にねこのしっぽが2週間+2日、井上が3週間。ただし、納品タイミングがコミケ後にないことを考えると、コミケと同時〆切になりそうなのでもうちょっと早まりそう。

どちらを選ぶかはもう少し保留し、2chの他の印刷所のフェア情報をウォッチングしつつGW明け頃に決めることにする。パンフに広告が載せられるのかどうかも議論しなければならない。

制作の方針は、

・60p以内に抑えるように勤める

・6月中に完成稿を作成

であればどちらを選ぶにしても問題ないだろう。
懸案事項として、

・印刷所の広告を載せることの是非を検討

2006/04/11(火)apacheのユーザ用マッピング

2006/04/11 22:12 PC(Linux)
ユーザーのホームページを公開する場合、

/etc/apache/httpd.confに、
UserDir public_html
と書けばいいと思っていたのだが、確認してみたところ404 not foundでなぜか上手くいかない。しばし悩んだのだが、やっと気づいた。オフィシャルのドキュメントは「ちゃんと」読まないとダメ。

http://httpd.apache.org/docs/2.0/ja/mod/mod_userdir.html#userdir
public_htmlと指定した場合、~user名/public_htmlにマッピングされる。~user名はuserのホームディレクトリ。うちの鯖はHP&ftpユーザのホームディレクトリを/home/user名/public_htmlに変更していたのだった。ということは、/home/user名/public_html/public_htmlを見にいっていたのだな。これでは上手くいかない。
UserDir .||<
でも上手くいくが、これはおかしすぎるので(ホームディレクトリを変更していないユーザーはどうなるか……)、

>||
UserDir /home/*/public_html
とした。ついでに、
UserDir disabled
UserDir enabled ユーザを列挙
として必要なユーザにだけ許可。

うちの鯖でHP公開する人が増えるとも思えないのでこんなんでよし。

2006/04/11(火)proftpdが動いてなかった

2006/04/11 19:47 PC(Linux)
前回の適当なアップグレードで不具合が発生しないわけがない。ということでftpが動いてないことが今更発覚した。
今まで気づかなかった理由は、


  • チェックしたプロセス一覧から漏れてた

  • 自分が使ってない

  • 使ってるユーザが1人でそいつもほとんど使ってない


まあ適当にやってるからね。

で、原因を探す。
# /etc/init.d/proftpd start
Starting ProFTPD ftp daemon:  - Fatal: LsDefaultOptions: deprecated. Use ListOptions instead on line 24 of '/etc/proftpd.conf'
confファイルの仕様が変わったようだ。素直に、/etc/proftpd.confを書き換える。
# diff /etc/proftpd.conf.060411 /etc/proftpd.conf
24c24
< LsDefaultOptions                "-l"
---
> ListOptions                "-l"
LsDefaultOptionsをListOptionsに変えただけ。

で、再起動。
# /etc/init.d/proftpd start
ログインチェックまでして問題なし。

2006/03/29(水)woody -&gt; sargeへのアップグレード

2006/03/29 19:15 PC(Linux)
そろそろ落ち着いてきたはず(詰まっても検索すれば大丈夫)なので、sargeからwoodyへのアップグレードを敢行することにした。今回時間がないのと自宅鯖の気楽さで、特にチェックもせずにいきなりアップグレードし<てしまうことにする。本当は重要なサービスが「正常に」動いているかどうか、全部チェックするのが正しい。

まずはaptの書き直し


そうそう、ring.asahiが死んだ後今までring.so-netにしていたのだがどうも調子が悪い。ついでに本家に差し替えてしまうことにする。non-USは統合されたということなので大分綺麗に。
## use jp translation package
deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/sarge main
#deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/etch main
#deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/sid main

## stable(sarge)
deb http://http1.debian.or.jp/pub/Linux/debian/debian sarge main non-free contrib
deb-src http://http1.debian.or.jp/pub/Linux/debian/debian sarge main non-free contrib
deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp sarge-jp main contrib non-free

# stable security and mirror
deb http://security.debian.org/ sarge/updates main contrib non-free
deb http://ftp.debian.or.jp/debian-security sarge/updates main contrib non-free

## testing(etch)
deb http://http1.debian.or.jp/pub/Linux/debian/debian etch main contrib non-free
deb-src http://http1.debian.or.jp/pub/Linux/debian/debian etch main contrib non-free
#deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp etch main contrib non-free

## unstable(sid)
deb http://http1.debian.or.jp/pub/Linux/debian/debian sid main contrib non-free
deb-src http://http1.debian.or.jp/pub/Linux/debian/debian sid main contrib non-free

#deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp sid-jp main contrib non-free

## clamav
deb http://people.debian.org/~sgran/debian sarge main
何度かapt-get upgradeしてみて、整備されてなさそうなjp系の行をコメントアウトした。つうかjpはもう半端すぎるのでやめた方がいいのだろうか。

これは後日の話になるが、suして失敗したときに、
$ su
Password:
su: Authentication failure
ごめんなさい。
と出て吹いた。

アップグレード


いきなり、
# apt-get dist-upgrade
してみる。

エラーが出るわ出るわで、
アップグレード: 315 個、新規インストール: 147 個、削除: 11 個、保留: 17 個。
319MB 中 3821kB のアーカイブを取得する必要があります。
展開後に追加で 295MB のディスク容量が消費されます。
続行しますか? [Y/n] y
エラー http://http1.debian.or.jp ja/sarge/main gcc-3.0-base 1:3.0.4-16
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libgimp1.2 1.2.3-2.4
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libmimelib1 4:3.1.4-1
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libpanel-applet0 1.4.2-1
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libpspell4 0.12.2-6
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libsasl7 1.5.27-3.5
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libsensors1 2.6.5-4
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libstdc++3 1:3.0.4-16
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libtiff3g 3.5.7-2
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main ttf-xtt-wadalab-gothic 0.20010818-9
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main ttf-xtt-watanabe-mincho 0.20010818-9
  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gcc-3.0/gcc-3.0-base_3.0.4-16_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gimp1.2/libgimp1.2_1.2.3-2.4_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/k/kdenetwork/libmimelib1_3.1.4-1_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gnome-core/libpanel-applet0_1.4.2-1_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/p/pspell/libpspell4_0.12.2-6_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/c/cyrus-sasl/libsasl7_1.5.27-3.5_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/l/lm-sensors/libsensors1_2.6.5-4_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gcc-3.0/libstdc++3_3.0.4-16_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/tiff/libtiff3g_3.5.7-2_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/ttf-xtt/ttf-xtt-wadalab-gothic_0.20010818-9_all.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/ttf-xtt/ttf-xtt-watanabe-mincho_0.20010818-9_all.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
E: いくつかのアーカイブが取得できません。apt-get update を実行するか --fix-missing オプションを付けて試してみてください。
こうなった。パッケージ名にバージョンが入っていて、バージョンに合わせてパッケージ名が変わってしまった物が引っかかったことが想像できる。今回はもう適当なのでぱかぱか削除して必要になったときに入れ直すことにする。
# apt-get remove ***||<
*<em></em>をパッケージ名で連打。
gnome-consoleにひっかかったのでそれも削除。

>||
以下のパッケージの処理中にエラーが発生しました:
 /var/cache/apt/archives/flex_2.5.31-31_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)||<
とか出るから、以下のサイトを参考に、

<a href="http://www.ep.sci.hokudai.ac.jp/~morikawa/memo/vmware_upgrade_sarge.htm#label-32" target="_blank">http://www.ep.sci.hokudai.ac.jp/~morikawa/memo/vmware_upgrade_sarge.htm#label-32</a>
>||
# apt-get -f install
で依存関係を解決していただいて、
# apt-get remove flex
やれやれこれでdist-upgradeが通るようになりました。

えいっ。
# apt-get dist-upgrade

holdが入っているパッケージを入れ直す


# apt-get dist-upgrade

パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージは保留されます:
   clamav (0.87.1-0woody1 => 0.88-4)
   fetchmail (5.9.11-6.2 => 6.2.5-12sarge4)
   libclamav1 (0.87.1-0woody1 => 0.88-4)
   nessus (1.0.10-2 => 2.2.3-3)
   nessus-plugins (1.0.10-2 => 2.2.3-1)
   xfree86-common (4.3.0.dfsg.1-10 => 4.3.0.dfsg.1-14sarge1)
   xutils (4.1.0-16woody5 => 4.3.0.dfsg.1-14sarge1)
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 7 個。
おや保留が発生しています。多分いくつかはperl5.6と5.8で大混乱したときの名残で自分でholdしたもの。それはhold解除でいいんじゃないかと思う。

hold属性になっているパッケージをチェック。
# dpkg --get-selections | grep hold
xfree86-common                                  hold
xutils                                          hold
なるほど。xfree86-commonとxutilsだけね。じゃあこの2つは解除してしまいましょう。
# echo xfree86-commons install | dpkg --set-selections
# echo xutils install | dpkg --set-selections
とした。続いて他のパッケージは、
# apt-get install nessus
# apt-get install fetchmail
で解決したようだ。

clamavが残っているのだが、気力が続かないのでちょっとみなかったことにする。
で、最後に、
# apt-get update
# apt-get upgrade
で終了。とりあえず動いてるようなので今のところほったらかし。
OK キャンセル 確認 その他