トップ 最新 追記

3 日坊主日記


2003-12-02 [長年日記]

_ [Ruby] DBD::Mysql BOOL が文字列として扱われる

Mysqlでは BOOL は TINYINT(1) なのだが、この型の field は DBD::Mysql では文字列として扱われてしまう。原因を調べると

require 'mysql'
MysqlField.constants.grep(/^TYPE_/).each do |const|
  value = MysqlField.const_get(const)
  p [const, value]
end
  
...
["TYPE_TINY", 1]
...
["TYPE_CHAR", 1]
...

ということで TYPE_MAP[MysqlField::TYPE_TINY] は TYPE_MAP[MysqlField::TYPE_CHAR] で上書きされ :as_str になってしまう。

_ [Ruby] DBD::Mysql BOOL が文字列として扱われる(2)

MySQLのドキュメントに

Changes in release 3.21.0
* FIELD_TYPE_CHAR is renamed to FIELD_TYPE_TINY.

という記述があった。 FIELD_TYPE_CHAR は obsolete 扱いとみなして MySQL/Ruby を修正してみる。

//  rb_define_const(cMysqlField, "TYPE_CHAR", INT2NUM(FIELD_TYPE_CHAR));

このようにコメントアウトすると、 DBD::Mysql で TINYINT(1) は数値として扱われるようになった。


2003-12-04 [長年日記]

_ SQLRelay

更新。

* rudiments-0.26.1.tar.gz

* sqlrelay-0.34.1.tar.gz

make はできるものの src/api/ruby/sqlrelay.so がおかしい。

sqlrelay-0.34.1 へのRuby対応パッチ

/etc/sysconfig/sqlrelay は make install で上書きされるらしい。とほほ。

本日のツッコミ(全1件) [ツッコミを入れる]

# lvrvlpmhnu [Hello! Good Site! Thanks you! vneivbjskdks]


2003-12-09 [長年日記]

_ tripwire

Fedora Core 1 で tripwire がsegvる件は (RedHat 9 の) tripwire-2.3.1-17.i386.rpm を入れることで解決。 twpol.txt の編集については 見つからないやつを which で調べておいて
while line = gets
  if /Filename: (.*)/ =~ line
    fname = $1
    next unless /bin\// =~ fname
    cmd = File.basename(fname)
    which_cmd = %x( which #{cmd} )
    print fname, "\t", which_cmd, "\n"
  end
end
とりあえずコメントアウトしてみる
not_exist_fname = {}
  
open("twrep.txt") do |f|
  while line = f.gets
    if /Filename: (.*)/ =~ line
      fname = $1
      not_exist_fname[fname] = true
    end
  end
end
  
open("twpol.txt") do |f|
  while line = f.gets
    if /^ +(\/[^ ]+) +->/ =~ line
      fname = $1
      if not_exist_fname[fname]
        line[0] = ?#
      end
    end
    print line
  end
end
んで直す。という手順でしてみた。 /var/lock/subsys/ の追加がめんどい。

_ zsh

4.1.1 を入れてたけど zsh-4.0.6-5.i386.rpm を入れた。

4.1.1 は make uninstall できた。


2003-12-11 [長年日記]

_ DBI-SQLRelay DATE

* ruby-dbi-all-0.0.21.tar.gz

SQLのDATE型の変換について。

DBI-Mysqlでは(もちろん)DBI::Dateだが、DBI-SQLRelayではStringになる。

_ サイトトラッカー

Analog本 [amazon] からたどって サイトトラッカー 6.0 eビジネス版 250サイト [amazon] 。 800万! まじ? 価格 まじらしい。
本日のツッコミ(全1件) [ツッコミを入れる]

# conlcyluwz [Hello! Good Site! Thanks you! xkdgrcrahgksw]


2003-12-13 [長年日記]

_ select COUNT(DISTINCT id) from table

へぇ


2003-12-15 [長年日記]

_ analog

よし。webalizerステ。

_ logrotateのpostrotateの実行回数

logrotateのpostrotateとendscriptの間に書いたscriptは何回実行されているのだろう?

logrotate -dした限りではneed rotatingなログの数だけ実行されているように見える。実験:

$ echo test > a.log
$ echo test > b.log
$ cat logrot.conf
weekly
rotate 1
/home/moriq/novice/*.log {
  size=5
  postrotate
  echo postrot
  endscript
}
$ /usr/sbin/logrotate -s logrot.status logrot.conf
postrot
postrot
本日のツッコミ(全1件) [ツッコミを入れる]

# wlhiqzpips [Hello! Good Site! Thanks you! vgyhqqjipwklt]


2003-12-17 [長年日記]

_ RRRWiki: RH73からFedoraCore1へ

おお。なるほど。依存関係が壊れてるかもしれないパッケージは要チェックだな。


2003-12-19 [長年日記]

_ GDのX依存

Red Hat RPM Guide を読みながら RPM の見直し中。

なぜか XFree86-libs が入ってる。

rpm -e --test で見ると gd が依存してる。 ldd /usr/lib/gd.so.2 すると、確かに Xpm を使ってる。…要るのだろうか?

GDのマニュアルを見ると

Most of the time you won't need Xpm.

ですか。

--without-xpm を付ければいいみたい。 rpm -qi gd-2.0.15-1.src.rpm してみる。 gd.spec の %changelog section に

* Fri May 19 2000 Nalin Dahyabhai

- update to latest version (1.8.2)

- disable xpm support

て書いてあるのに。なぜだ。

- %configure
+ %configure --without-xpm

書き換えて

rpmbuild -bb SPECS/gd.spec
rpm -Uvh --force RPMS/i386/gd-2.0.15-1.i386.rpm
ldd /usr/lib/libgd.so.2

はっはっは。勝利である。

rpm -e XFree86-libs XFree86-Mesa-libGL

GDを使ってるMRTGがちゃんと動いているので良しとしよう。

補足: gd-2.0.15-1.src.rpm のbuildには freetype-devel が必要。