Binary Hacks のサンプル に「gzipやbzip2などを区別せずに伸長する」というネタが載っている。
これは gzip/bzip2/compress 圧縮されたファイルを magic を調べて判別することにより less でそのまま読めるようにする、というネタで私が書いたものであるが、当初は less ではなく、tar を使うことを考えていた。
つまり、gzip/bzip2/compress 圧縮された tar.gz, tar.bz2, tar.Z をぜんぶ tar xvfz で展開できるようにする、というネタの予定だったのだが、だが、だが、そのときに調べた所、なんと最新の GNU tar では、tar xvf とすると、その通りのことをしてくれる機能が入っているのである。
まぁ、書く前に気がついてよかったとはいえる。
ただ、それを知ってかなりたった今でも、指が xvfz と z をつけて入力してしまう習慣は直っていない。
「貨幣大試験」についてのニュースを読んで気がついたことがある。
だいたいの記事は誤差の許容範囲について触れているのだが、触れている対象が異なるのである。
ふむ。500円硬貨のがほとんどであるが、読売新聞は 1円硬貨、日本経済新聞は 100円硬貨を選んでいる。
明日の FSIJ 月例会は Binary Hacks ネタ。golf の話も?
GPLv3 カンファレンス をやるのに、いろいろと準備に追われているのだが、直前のこのタイミングで、別件で明日から出張である。
すると、配ってくるよう参加募集の紙が降ってきた。
来週行われるGPLv3 カンファレンスの準備のひとつとして、発表者の PC からうまくプロジェクタにでなかったときのための、バックアップPC の設定を行った。 (じゃなくて、発表は基本的にこの PC でやるらしい)
モノは Let's note (CF-W2) で、Debian GNU/Linux (sid) である。
むろん、ぜんぶ自由ソフトウェアで構成するので、apt-line は基本的に main だけである。 (例外として、xpdf-japanese のところだけは、というか cmap だけは、main では済まなかった。ここはなんとも残念である)
さて、VGA 出力に関しては、 /etc/X11/xorg.conf の i810 ドライバの所に、以下の記述を入れると安定して出力されるようになった。
Option "MonitorLayout" "CRT,LFP" Option "Clone" "on"
VGA 出力を行う方法は i810switch パッケージというのもあったが、そちらだと、周波数がおかしいのか画面が揺れてよろしくない。 (また、i810switch だと、VGA 出力を行うようコマンドで指示しないといけないので面倒でもある)
それはそれとして、問題になったのはキーボードである。この Let's note のキーボードは日本語キーボードなのであるが、今回の(大半の)発表者は日本語キーボードには触ったことがないと想像される。そこで、USB 接続の英語キーボード (Happy Hacking Keyboard) をつなぎ、本体の日本語キーボードに加え、英語キーボード「も」提供するという案が提案された。
が、しかし、これが難しい。(というか、結局無理だという結論になった)
英語キーボードをつないで入力できるようにするというのは難しくない。単につなげば (キーマップが変という問題をのぞけば) 入力できる。
しかし、このキーマップが変という問題を解決する、つまり、キートップに書いてある通りに入力できるようにするというのが難物である。
日本語キーボードもしくは英語キーボード、どちらか一方だけを正しくするというのは難しくない。 GNOME のパネルに Keyboard Indicator を追加して、 Preferences から、Layouts タブを選び、適切な設定を行えば良い。
具体的には、日本語キーボードなら Keyboard model を japanese 106-key にして、Layout を japan にすればよい。また、英語キーボードなら、Keyboard model を Generic 101-key PC にして、Layout を USA にすればよい。
しかし、両方を同時に正しく、というのが難しい。キーボード自体は両方とも同時につかえるのだから、可能であってもおかしくないはずだ、とは思うのだが、どうもやりかたがわからない。
少なくとも、GNOME の Keyboard Indicator は Keyboard model を一度にふたつ設定するなどのことができず、そういう状況を想定していない。
xorg.conf の kbd (Keyboard input driver) のマニュアルを見ると、 Option "Device" "string" というので個々のキーボードを選択できそうであるし、 Option "XkbModel" "modelname" とか Option "XkbLayout" "layoutname" で、選択したきーボードのキーマップを設定できそうである。とすれば、設定すればできそうな感じである。
しかぁし、ためしてみるとうまくいかない。 GNOME の Keyboard Indicator を外すとか、いろいろためしてみるが、どうも動かない。
結局、strace で X サーバを監視すると、 Option "Device" で指定したものは使われていなくて、 2つのキーボードからの入力は tty7 経由で X サーバに届いていることがわかった。
つまり、カーネルの中でふたつの入力が混合されていて、そのままではどうしようもないようだ。
さらに調べると、evdev (Generic Linux input driver) というものがあって、これを使うと、/dev/input/event* を扱えて、ふたつのキーボードを区別して扱えることがわかった。
しかぁし、evdev のふたつのキーボードのそれぞれに xkb の設定をしても、やっぱりうまくいかない。
どうも、xkb の設定というのは、X で、ふたつのキーボードからの入力が混合された後に適用されるもののようで、そこが根本的な問題のようである。
GPLv3 カンファレンス、1日目
Binary Hacks について、GNU/Linux on x86 なところが多いという話をよく見るので、自分の書いた所を確認してみる。
sigsafe は違うし、clock も違う。シフトは gcc/x86 だから、GNU/Intel っぽくはある。あと、GDB は GDB であるからして GNU っぽい。
ふむ、Linux っぽいところはないな。
RDB の正規化を調べていて、 <URL:http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html> を読む。
ふと思ったのだが、住所とか単価が変わったらどうするのだろう?
顧客が引っ越せば住所は変わるし、値上げ・値下げで単価が変わることもありそうである。
住所が変わったら変わったほうに送ればいいとしてデータを変えるというのはそれはそれでいいのかもしれない。
でも、単価が変わったら変わったほうで請求すればいいかというとそれは違うだろう。注文したときより高い値段で請求されたらそれはおかしい。
http://www.tdiary.org/20061126.html というのがでていたので当てる。
[latest]