Just another Ruby porter,

〜2003年7月下旬〜


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

2003-07-21 (Mon)

[Linux] gentoo mouse

このマシンはシリアルマウスなので/etc/devfsd.confのmisc/psauxをttyS1に変更。

[Linux] gentoo X

Xを終了すると画面が乱れたままだな。 setfontも利かない。 ま、たいていはshutdownかrebootだからほとんど問題ないんだけど、ちょっと気持ち悪い。

[Ruby] Array#to_h

結局はHash[]に帰着するんだけど、でも

[1, 2, 3].to_h { |n| n**n } #=> {1=>1, 2=>4, 3=>9}

というのが欲しくなるのは、 cacheというかあらかじめ計算しておくというか、 なんかto_hという名前とは違う気がする。


2003-07-22 (Tue)

[VAIO] 今日の発見

まったく役に立たないばかりか邪魔なジョグダイアルランチャをアンインストールしたら、 Fn+F7でのVGA出力切り替えができなくなった。 また、おれの嫌いなリカバリCDのお世話になる。 ついでに、使わないアプリケーションをインストールしないように、 3枚目はインストールを省略。

インストールしないとログオンするたびにインストールが終了してないとポップアップするが、 レジストリ

\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

を見てそれらしい値を削除。いいようだ。

よく見るとここにJOGSERV2.EXEってのがある。これかー。renameしとこう。 HKSERV.EXEがFn+F7とかの機能を提供しているようだ。 これだけあればよさそうだよな。なぜジョグダイアルランチャと関係する? 再リカバリして試してみるか。

[Ruby] RubyForge.org

始まった。


2003-07-23 (Wed)

[Win32API] GetTempPath

ここを見ると順番にTMP, TEMP, Windowsのディレクトリを調べるとあるが、 実際にWindows 2000 Pro.で試したらTMP, TEMP, USERPROFILE, C:\WINNTとなった。

[Windows 2000] 今日のトリビア

インストール時はコンピュータ名を大文字にしか設定できないが、 [マイコンピュータ]-[プロパティ]-[ネットワークID]-[プロパティ]で変更すれば小文字にできる。


2003-07-24 (Thu)

[Ruby] 0とNULL

intが32ビットで、ポインタが64ビットってことか。

[Ruby] site_ruby

以前インストールした古いREXMLが残っているので、 いつまで経ってもsite_rubyのほうがrequireされてしまうわけだ。 Perlが

% perl -V |sed -n '/@INC/,$p'
  @INC:
    /usr/local/lib/perl5/5.8.0/i586-linux
    /usr/local/lib/perl5/5.8.0
    /usr/local/lib/perl5/site_perl/5.8.0/i586-linux
    /usr/local/lib/perl5/site_perl/5.8.0
    /usr/local/lib/perl5/site_perl/5.6.1
    /usr/local/lib/perl5/site_perl
    .

のようにsite_perlが後になっている理由はこれか? でも、新しいのがsite_perlにインストールされて、 古いほうばかりuseで呼ばれると文句を言ってるPerlユーザもいるから、 どっちもどっちか。

それはそれとして、アンインストールできないとまずい状況になりつつある。


2003-07-25 (Fri)

[Ruby] st_data_t

咳さんのメールにも出てきてるなあ。 typedef unsinged long st_data_t; にするのが変更が少なくて済みそうだ。

[Windows 2000] Windows Update

なぜか失敗続きだったWindows Updateが今日になって急にちゃんと更新できるようになった。 さっぱり理由はわからないんだけど。

[Ruby] pkg-config

クロスの環境だとpkg-configはちょっとまずい。 mingwでは-lgdi32も必要なので、

prefix=/usr/local/mingw
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 0.9.6h
Requires: 
Libs: -L${libdir} -lssl -lcrypto -lwsock32 -lgdi32
Cflags: -I${includedir} 

というopenssl.pcを/usr/local/mingw/lib/pkgconfigに用意して

% PKG_CONFIG_PATH=/usr/local/mingw/lib/pkgconfig make

としてみた。

0.9.6hだとrubyのmissing.hのcryptのプロトタイプ宣言がぶつかる。 missing.hのほうを

extern char *crypt _((const char *, const char *));

にすべきか。


2003-07-26 (Sat)

[Ruby][MinGW][Cygwin] OpenSSL 0.9.7b

./Configure --prefix=/usr/local/mingw mingwしてmakeすればできあがり。 make installしてものをtarballにまとめてLinux boxで展開。 これでopenssl.pcもちゃんと/usr/local/mingw/lib/pkgconfigにできるので、 でっちあげる必要もなし。

[Video] T.R.Y.

借りた。


2003-07-27 (Sun)

[Ruby] Quick way to find all drives in a windows box

Win32APIは使いたくないらしい。 単純に何も考えなければ26個調べればいいわけだが、mingw版rubyで

drives = []
for i in 'a'..'z'
  drives << i + ':' if File.exist?(i + ':')
end

だと、

ドライブにディスクがありません。
ディスクをドライブ\Device\Harddisk1\DR0に挿入してください。

と警告がpopupする。cygwin版だと出ない。不思議。 ま、だめだってことに変わりはないんだけど。

[Ruby] pkg-config

CygwinでMinGW版rubyを作るときにもpkg-config問題が発生することがわかった。 ext/openssl/extconfig.rbにpkg-configを使う変更が入ったのはRed Hat対策のためなので、 pkg-configを後にするというのはたぶん解決にならない。 これを見ると#include <openssl/ssl.h>が失敗してるようなので、

have_header("openssl/crypto")

よりも

have_header("openssl/ssl.h")

のほうがよさそうだ。これが失敗したらpkg-configを実行する。

これでRed Hatを救済できるはずだが、 どうもそもそもこのpkg-config作戦では解決になってないという噂もIRCで耳にした。 うーむ。


2003-07-28 (Mon)

[Ruby][Vim] rb_defout

Ruby 1.8.0-preview5をインストールすると、 --enable-rubyinterpしたvimが立ち上がらなくなってしまった。

% vi
vi: relocation error: vi: undefined symbol: rb_defout

vimのほうでrb_defoutを参照してるんだよね。これは困った。 しかたない。if_ruby.cを 書き換えよう。

[LL土曜] X-Mailer: LL Saturday announce version 1.0 (Perl script)

だからどうしてContent-Type: text/plain; charset=iso2022-jpなのだ? iso-2022-jpにしてくれー。

LOVEマシーンの法則

つまり、このジャケ写の右から順に脱退している。 中澤までは偶然だよなあ。 後藤からはつんくが意図的にこの順番で脱退させてる?


2003-07-29 (Tue)

[Ruby] ranlib

タイムスタンプを保存すればよさそうなので、 FileUtils::installにpreserveを追加。 ついでに拡張ライブラリ側のインストールもFileUtilsを使うように、 un.rbを導入。

[Ruby] bdb 0.4.7

src/common.cには

bdb_test_error(dbp->stat(dbp, &bdb_stat, 0));
dbp->close(dbp, 0);
bdb_test_error(dbst->dbp->rename(dbst->dbp, name, subname, newname, 0));

というようなコードがある。関数へのポインタだったのか。だめだ。 増えちゃったよ。 やっぱここで#undefしないと、win32/win32.hのstat,close,renameとぶつかる。

そうか。closeがrb_w32_closeという名前にすべて変更されれば問題ない。 引数までつけてしまうと数が合わないからエラーになる。うーむ。 普通の変数は救われるからいいか。

_,lib_dir = dir_config("db", "/usr")

というデフォルトはやだなあ。クロスでは必ず--with-db-dirを指定しなきゃいけないじゃん。


2003-07-30 (Wed)

[Ruby] 標準添付

標準添付になっているRuby Binaries 1.8のライブラリは

bigdecimal(bigfloat), csv, date2, drb, ossl, ruby-zlib, rexml, xmlrpc4r

といったところかな。Cygwin版は空のパッケージにしておこう。

[Ruby] -W option

-W0で警告を出さない設定ができるようになった。

% ruby -e 'p "a.b".sub(".", "#")'  
-e:1: warning: string pattern instead of regexp; \
  metacharacters no longer effective
"a#b"
% ruby -W0 -e 'p "a.b".sub(".", "#")'
"a#b"

[Ruby] MSYS

そりゃむりだって。


2003-07-31 (Thu)

[Ruby] stable sort

すぐに思いつくのは

i = 0
a.sort_by {|e| [e, i += 1]}

だけど、このi = 0が気に入らない人が多いようだ。 で、その後はwith_indexな話に突入する。


<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!