Just another Ruby porter,

〜2004年12月上旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2004-12-01 (Wed)

11月のspam

5367通。確実に増えてる。

[Soft] Python 2.4

更新。またしてもmake testが会社のPCで成功し家のPCで失敗。 そろそろ新しいdistroにすべきか。

[DQ8] 全部閉じる

□ボタンで全部閉じることに気づいた。ってマニュアルに書いてある。


2004-12-02 (Thu)

[Mail] 今後のリムネットメールサービス改善対応につきまして

現状報告のメールが来た。全然改善されないので

ということになったらしい。次はがんばってくれよー。

[Soft] MPDのid3v1_encoding

man mpdしてみるとこんな記述があった。

id3v1_encoding <charset>
       This  specifies  the character set used for the ID3v1 tags. Sup-
       ported characters sets also can be obtained from the  iconv.  By
       default ISO8859-1 is used.

これで指定すればいいらしい。というわけで、~/.mpdconfに

id3v1_encoding Shift_JIS

を追加し、mpd --create-dbしてデータベースを作り直し。 これで ncmpcの表示は完璧。 でも今度は FoxyTunes が???に化ける。うーむ。あちらを立てればこちらが立たず。

ChangeLogを見ると最新の0.11.5で入った機能なので、 FoxyTunes側が対応してないのかもしれない。 考えてみるといままで表示されていたのが不思議なくらい。


2004-12-03 (Fri)

初霜。寒いわけだ。

[Ruby] CIA Open Source Notification System

結局shugoさんがCIA形式でメールを送るスクリプトを作ったので、 Ruby/CIAが復活。

Link: CIA

[MPD] ncmpc

なんだかんだで FoxyTunesより ncmpcのほうが気に入ってしまったので、FoxyTunesの文字化けはもういいやという状態になりつつある。 そのうち直るでしょう、たぶん。


2004-12-04 (Sat)

[Soft] Bogofilter 0.93.2

Changes:

This version uses one transaction for all reads, to ensure proper atomicity and isolation. It can also be compiled for Berkeley DB support without transactions. It adds a username formatting option, and a "remove environment" parameter.


2004-12-05 (Sun)

[Book] 「Subversion」解説書—バージョン管理システム

予約をカートに入れたまま忘れていた。

[Video] 2倍速再生

Clip-Onで1.5倍速再生に慣れたせいか、VHSでの2倍速再生でも問題なく聞き取れるようになった。 DQ8やってて録画していたビデオが溜ってるときに便利だ。

[RSS] CIA形式からRSSへ

xsltprocで変換してみようと思ったが、timestampがUNIX Timeなもんだから困る。 さすがにstrftime相当はないよなあ。


2004-12-06 (Mon)

[Ruby] DJGPP対応

最近DJGPPでmakeしてないと思い、HEADでmakeしてみると案の定エラーに。 DJGPPにはsetrlimitは存在するのにrlim_tは定義されてないのが原因のようだ。

#ifdef HAVE_RLIM_T
#if SIZEOF_RLIM_T == SIZEOF_INT
# define RLIM2NUM(v) UINT2NUM(v)
# define NUM2RLIM(v) NUM2UINT(v)
#elif SIZEOF_RLIM_T == SIZEOF_LONG
# define RLIM2NUM(v) ULONG2NUM(v)
# define NUM2RLIM(v) NUM2ULONG(v)
#elif SIZEOF_RLIM_T == SIZEOF_LONG_LONG
# define RLIM2NUM(v) ULL2NUM(v)
# define NUM2RLIM(v) NUM2ULL(v)
#else
# error cannot find an integer type which size is same as rlim_t.
#endif
#endif

ここで見てるのはHAVE_RLIM_TじゃなくてSIZEOF_RLIM_Tだから

#if SIZEOF_RLIM_T

としよう。で、configure.inに

case "$target_os" in
msdosdjgpp*)
  ac_cv_sizeof_rlim_t=4;;
esac

を追加。

ついでに今日の非stdio化に対応。ダミーのis_socketとshutdownを定義。

[Linux] ccacheがSEGV

Linuxでcygwin版rubyをクロスコンパイルしてるとなぜかcursesをコンパイルするところでSEGVに。 調べてみるとccacheがSEGVになってるようだ。 見た感じだとコマンドラインがやたらと長い。これが原因か? いや、数だな。32個あたりに限界があるようだ。

% echo 'main(){}' >main.c
% ccache gcc $(ruby -e 'print "-I. " * 30') main.c
% ccache gcc $(ruby -e 'print "-I. " * 31') main.c
zsh: segmentation fault  ccache gcc $(ruby -e 'print "-I. " * 31') main.c

ccacheをmakeし直してみると全然問題ない。うーむ。なんだったんだろう? 記念にCC='diet gcc'で作っとこう。


2004-12-07 (Tue)

[Soft] lftp 3.0.12

Changes:

A new ftps:initial-prot setting was added. FTP over HTTP proxies with the CONNECT method can now use proxy authorization. The "mirror" command was fixed not to chmod unchanged files. Excluding files for the sftp protocol was fixed. The transfer of growing files over the fish protocol was fixed. mkdir over hftp was fixed. The delay between connection attempts was fixed. The Polish translation was updated.

[Google] Read comp.lang.ruby through Google Groupsl

Blogのような見た目だ。subscribeすると未読管理もできたりする。

link: [ruby-talk:122695], http://groups-beta.google.com/group/comp.lang.ruby


2004-12-08 (Wed)

[Security] Plash (the Principle of Least Authority Shell)

About:

Plash (the Principle of Least Authority Shell) is a Unix shell that lets you run Unix programs with access only to the files and directories they need to run. In order to implement this, the filesystem is virtualized. Each process can have its own namespace, which can contain a subset of your files. This is implemented by modifying GNU libc and replacing the system calls that use filenames. For example, open() is changed so that it sends a message to a file server via a socket. If the request is successful, the server sends the client a file descriptor. Processes are run as the user 'nobody' in a chroot jail. No kernel modifications are required.

README.txt のShell Overviewを見てちょっと驚いた。

ls .

のように`.'が必須とか、ファイルはdefaultでread-onlyだとか

gcc -c foo.c => -o foo.o

のように明示的に=>を使ってファイルに対する書き込みを指定しないといけないらしい。

link: http://www.cs.jhu.edu/~seaborn/plash/plash.html

[Ruby] DJGPP対応

systemが全然動いてなかった。いや実は``も動いてないんだけど。 なにしろMS-DOSにはpipe(2)なんてないからpopen自体もなんちゃってだしなあ。 systemは動くようにしたが、popenはいずれまた。 まずは家のPCにクロスじゃないDJGPPの環境を作らないと。ってそこからかよ!

まてよ。config.hのHAVE_FORKをundefすれば他の環境でも実験できるか。


2004-12-09 (Thu)

[Firefox] タブを閉じる

C-wで閉じるんだよねえ。 Tab Xは要らないか。

[Soft] lesspipe.sh 1.43

lesspipe.shといえば人知れず/usr/bin/にあったりする地味なやつだが、結構いろんなことができるようになってる。

About:

lesspipe.sh is an input filter for the pager less as described in less's man page. The script runs under a ksh-compatible shell (ksh, bash, zsh) and allows you to use less to view files with binary content, compressed files, archives, and files contained in archives. Viewing files by accessing a device file is implemented to some extent (DOS filesystems and tar files). It supports many formats (both as plain and compressed files using compress, gzip, bzip2, or zip). Syntax highlighting for many languages is available through a helper script, "code2color".

このSyntax highlightingはREADMEを見ると

Syntax highligting is only tried if less is called with -r or -R !!!
Suppress syntax highligting:    less file1:..:fileN::  (append 2 colons)
Force highligting for another language: less file1:..:fileN:suffix
where suffix denotes the language: .ada .asm .inc .awk .c .h .cpp .cxx
                                   .groff .html .php .xml .java .js .lsp
                                   .m4 makefile .pas .patch .diff .pm
                                   .pl .pod .pov .py .rb .sh .sql

ちゃんとRubyも対応してたりするわけだよ、これが。すばらしい。

[Ruby] DJGPPのpopen対応、rb_globの呪い

結局Linuxでundef HAVE_FORKしてデバッグ。make testも通った。 しかし、今日の他のコミットでSEGVするようになってしまった。 原因はrb_globの呪いだ。 crt0でrb_globを呼び出しているんだけど、 先月の変更でheapではなくstring objectがバッファに使われるようになったので、ここで落ちる。 初期化がまだ済んでないから。

解決策は

  1. GetCommandLine()みたいなものがあればwin32と同じ方法が使える
  2. なんでcrt0でこんなことをしてるかといえば、sjisファイル名対応だったりするので、それをすっぱりあきらめる
  3. DJGPPは捨てる

といったあたりか。


2004-12-10 (Fri)

[Perl] cvsweb.cgi

cvswebのtarballを作るところでInternal Server Errorになるという報告を受けた。 調べてみると-Tのときに

Insecure dependency in chmod while running with -T switch at /usr/lib/perl5/5.6.1/File/Path.pm line 177.

ということらしい。5.8.6ではエラーにならないんだけどなあ。 これのいやらしいところはcvs exportした作業ディレクトリを消す処理が動かないという点。 700MBほどのtreeがごっそり残ってた。

[Ruby] DJGPPの__crt0_glob_function

sjisのファイル名をあきらめるというのが妥当な線か。 まあ、Cygwinも同じようにだめだしねえ。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!