August 2007 Archives

巨匠

| No Comments | No TrackBacks

Rie


友人の Rie さんが CD デビューしたのを、
iTunes に入れたら、

- Peter Ilyich Tchaikovsky
- Rie
- Seiji Ozawa

という並びになった。巨匠たちの間に友人の名前が入る、というのは愉快だ。
試聴 もできるようになったので、ぜひどうぞ。

Loading

| No Comments | No TrackBacks

移動でネットワークから解放されたおかげで、珍しくヒマなのでいろいろ書き散らしているわけですが。

20070830154

飛行機にものを積み込むのを眺めるのが好きだ。さっき乗った CRJ なんかは、乗客からすぐ見えるところでスーツケースをひとつずつ積むので、タラップをあがっているときに、たまたま自分のスーツケースがベルトコンベアに乗っているのを見つけて、なんとなく嬉しかったりして。

コンテナや機内食を積み込むための車両っていうのはすごいな。荷台がまるごと水平なまま上にあがるようになっていたりとか、それ専用に作られているところがおもしろい。いろいろなやつがあるから、たまにターミナルからバスで飛行機まで移動したりする時なんかは、子供みたいにきょろきょろして車を観察したりなんかしてね。空港を走っている、コンテナの乗った台車がいっぱいつながっている車とか、一度運転してみたい。

というか、乗用車でもいいので、空港の中を自動車で走ったら楽しそうだなあ。たまに地面から乗り降りすることはあるけれど、やっぱり普段は、地面にはあまり降りられないところだものね。

Dscn1348

Frankfurt から乗ったのは ANA の JA8958. 「ようこそ!Japan」のロゴ入りのやつ。昔空港で回っていた、小泉さん出演のビデオって、その後どうなったんでしょう?首相のところを差し替えて流すのかなー、と思ったが、流れてない気もするし。

利用者アンケート

| No Comments | No TrackBacks

大学時代の友人に、運輸調査局という機関に勤めている人がいて、空港の利用者アンケートや何かを仕事でやっているのだが、フランクフルトの空港 (Fraport というらしい。かわいいね) でその手の人に声をかけられた。

調: May I ask a question?
俺: Yeah.
調: Will you fly to Tokyo today?
俺: Yes.
調: Which transportation did you choose to Frankfurt?
俺: I took a flight from Amsterdam.
調: Ah, you flew from Amsterdam. OK, that's it.

おっと、それだけですか。まあ、きっとつまり、ドイツ国内から Fraport にどうやってみんながやってくるのか、そういう調査で、国外からの乗り継ぎの人はターゲットでないんだろう。
いやしかし、ご苦労なことです。日本人に英語で話しかけても半分くらいは「○△※×☆!」という感じでしょう... きっと。一人の人を狙ってやっているようだったが、それは正しい判断かもしれんね。集団の場合は、日本語しか話せない人が入ってる確率が高いだろうし。

DSCN1346.JPG

そういえば今日ははじめて、ドイツでソーセージを食べた。しかも、ポテトサラダ付きという、いかにもドイツな感じのセット。めちゃめちゃうまかった。来年の FPL は Heiderberg だそうで、絶対に行かなきゃいかんね。
オランダではチーズを2種類くらい買ってきたので、それも楽しみだ。Star Alliance 利用者なので、Amsterdam Schipol で乗り換えることなんて、めったにないので、もっと買ってくりゃよかったな。

CRJ200

| No Comments | No TrackBacks

Dscn1343

Amsterdam-Frankfurt で、はじめて乗った。うしろから二つ目の席。
最近トラブルが多いボンバルディアの飛行機だが、もちろん無事だった。
小さい飛行機だから、もちろん機内は狭いのだが、通路の天井はそれほど低くもなく、なかなかよくできた機体だな、という印象。荷物は床下にあまり入らないので、機体後部にも積み込んでいるみたいだ。Boeing の機体なんかは翼の下にエンジンがあるので、なんとなく全体に丸っこい感じだけど、外からみたときに、細長くてカッコイイんだ。

座って振り返ると、エンジンが自分の目の高さにあるので、ファンが回り出す瞬間なんかをみることがでいて、けっこうおもしろい。Lufthansa の機内誌には、「Canada's quietest jet」と書かれていたが、そんなに静じゃなかった。でも、僕の席がエンジンのすぐそばだったからで、もっと前の方に座れば静かかもね。

Sound Explorer

| No Comments | No TrackBacks

勤務先の系列の小学校には サウンド・エクスプローラ部 というのがあるそうだ。
ナマ録って昔流行りましたが (いつの人間だよ、といわれそうだな)、いまどきの機材を浸かってデジタルでそういうのをやるというのは、編集なんかもできるし、手軽で楽しいかもしれないね。

実は、ロンドン行きの機内ではそこの学校から英語研修に行く生徒たちと一緒だったのですが、大変おとなしくしており、すげえ学校だなー、と思った。
僕は入試に落ちちゃって、入れなかったわけですが (笑)。

Keynote 4: Redefining the FPGA for the Next Generation

| No Comments | No TrackBacks

Four ages of FPGAs:
- 1984-1991: Invention
- 1992-1999: Expansion
- 2000-2007: Accumulation
- 2008-2015: Specialization

Age of Invention:
- Tight technology limits: much smaller than application size
- Efficiency is key
- Design automation is secondary to capacity

Age of Expansion:
- metal layer が増えて、wire が一気に増えた

Age of Accumulation:
- Process tech: complexity eliminates "casual" ASIC users
- FPGAs are larger than the typical problem size
- Logic capacity limited by I/O and mem bandwidth
- Power is growing concern
- Design effort takes on a new dimension: complete digital systems on FPGAs require new design skills

Age of Specialization:
- Dual challenges of VLSI: giga-scale & deep submicron
- Logic cells, memory, multiplier and I/O: 増加速度がそれぞれ違う
- I/O per gate は 1/60 にもなっている! (これは microprocessor でも同じ)
- Application domain に特化させることでコストを最適化: "ASIC FPGA"

XIlinx FSB module: V5 on Xeon FSB at 1066MHz

Configurable Computing に必要なもの
- バイナリ互換性
- 5-minute compiles
- native compilers
- source level debugging

xfsdump on FreeBSD tape drive

| No Comments | No TrackBacks

FreeBSD とか Solaris のテープドライブに xfsdump したいなー、と思ってたのだが、どうやら解決。

env RMT=/usr/bin/rmt xfsdump -m -b 32768 -T -e -o -l 1 -L "label hogehoge" -f freebsdhost:/dev/nsa0 /path/to/your/dir

みたいな感じ。

にっぽん

| No Comments | No TrackBacks

国際会議の懇親会で、ベルギーの Ghent Univ の人といろいろ話した。
研究の話ではなくて、

うおおおお!俺マジで Ghent 好きなんですけど! とか、
日本行きました! みんないい人ですごくいい国だった! とか、

そんな感じでしたが。

なんか、そういってもらえると、素直に嬉しいね。
日本もまだ捨てたもんじゃない、と思う。がんばろう。

蛇足だけど、欧州でどこに住む?といわれたら、僕は絶対にベルギーです。

FPL '07: Session T2.B + T4.B

| No Comments | No TrackBacks

[ FPGA Implementation of a Data-Driven Stochastic Biochemical Simulator with the Next Reaction Method ]

ほかのネットワークの形は検討した?
- これが一番シンプルだから

[ GENDIV - A Hardware Algorithm for Intron and Exon String Detection in DNA Chains ]

DP 使ってる。むうー。どうだろな。ちゃんと読んだらおもしろいのかな。

[ Virtualization on the Tartan Reconfigurable Architecture ]

WASMII だ! (違うけど)
つまりまあ、仮想ハードウェアです。
prefetch とかするのかー。かっこいいな。

FPL '07: Session M2.B + M3.B

| No Comments | No TrackBacks

[ Ringing High-Performance Reconfigurable Computing to Exact Computations ]

floating-point の、fixed-precision な計算ではなくて、arbitrary-precision な計算 (1995 年くらいに発明された仕掛けで、わりと新しい)。Exact な計算ではあるが、遅いのと、ハードウェアサポートが存在していないことが問題。

dynamic (non-linear) pipeline, short pipeline for lower latency.
構成がおもしろそうだ。

[ Applying Out-of-Core QR Decomposition Algorithms on FPGA-Based Systems ]

OOCQR algorithm.
行列ものは苦手です。すいません。

[ Multi-processor System-level Synthesis for Multiple Applications on Platform FPGA ]

XML で DFG を描いて設計するみたい。
http://www.es.ele.tue.nl/~akash/mamps/ に、サンプルとかもある。

[ A Hardware Algorithm for the Minimum p-Quasi Clique Cover Problem ]

会津大の渡辺先生。
Gene expression profile. クリークを求めるのにニューロンを使います。Matsuda's algorithm でHopfield NN. リングネットワーク。

[ High Speed Tablation System using an FPGA designed for Distribution Tables of Frequent DNA Subsequences ]

筑波大 + 理研 GSC のひとたち。
ncRNA を検出したい。短い部分配列の出現頻度を調べる。
24bp query on 4Gbp DNA sequence.

[ Discrete Event Simulation of Molecular Dynamics with Configurable Logic ]

Boston Univ のチーム。
DMD: Descrete MD = 「なにも起きないときは何もしない」MD なので、超速い。

きびbyte

| No Comments | No TrackBacks

きびだんごみたいだが。
http://en.wikipedia.org/wiki/Kibibyte

によると、昔は「2の10乗、1024 bytes が 1KB」という定義だったのだが、IEC の規定によれば、
- 1 kilobyte (1KB) = 1,000 bytes
- 1 kibibyte (1KiB) = 1,024 bytes
なのだそうだ。Kibibyte = kilo binary byte だってさ。

ふーん。でも、データ転送レートとかの話だと、ちゃんと 1,000 単位のほうが話がしやす買ったりすることもあるので、このほうがいいかもね。メモリサイズとかは、Binary byte じゃないと、アドレスバスの幅が変なことになって気持ち悪いけど。

Wikipediaにも出てた。

FPL '07: Session M1.A

| No Comments | No TrackBacks

[ Design Space Exploration of the European Option Benchmark Using HyperStreams ]

金融のモデルは Monte-Carlo.
accuracy/acceleration design curve とか描いてる。トレードオフが選べるんだぜ。
HyperStreams っていうのを使っている。C++ っぽい何か。Celoxica の?

[ Accelerating a Medical 3D Brain MRI Analysis Algorithm using a High-Performance Reconfigurable Computer ]

Int'l Consourtium for Brain Mapping (ICBM) というのがあって、それがテストデータ (名前がすごいな)。計算速度向上は約10倍、トータルでの速度向上は約 3.6 倍。ソフトウェアでは倍精度だが、FPGA では単精度でやっている。結果が違う voxel がいくつかあるのだが、計算精度の問題というより、計算アルゴリズムが若干違っているためらしい。

Platform は RASC RC100 で、Mitrion-C で書いている。

[ Soft-Hard 3D FD-TD Solver for Non Destructive Evaluation ]

FD-TD 法は PDE を解くためのやつ。
でも integer arithmetic だから参考にはならないかなー。

NH201 to London

| 2 Comments | No TrackBacks

ロンドンつきました。
となりのお姉さんが読書灯つけっぱなしで寝ちゃって、
明るくてあんまり寝られなかったよ。

てか、図書館のシールのついたガイドブックを持って海外にいっちゃう、
というのが、俺には理解できませんでした。

まあ、なんか、いろいろなところで人はその器を量られるんだな、と思った。

backup

| No Comments | No TrackBacks

最近いろいろあって、ひたすらテープドライブや RAID と戦っている日々。
テープドライブの圧縮機能、というのを僕は甘く見ていたのだが、どうやらかなり縮む模様。うちの研究室はゲノム配列とかそういう、文字の種類が少なくてファイルが大きいデータが多いので、ふつうに DAT72 (native capacity = 36GB) に 80GB 〜 100GB くらい入ったりするんだ。
そうなると、リモートでの dump の場合、転送レートがかなり高くなって、100Mbps の Ethernet だと飽和してしまうことがある模様。転送レートを眺めていると、93Mbps くらい出ているのだが、おそらくこれが fast ethernet では転送能力の限界だろう。
テープドライブのついているホストは Pentium3 の古いやつなのだが、これはさすがに gigabit 化しないとな... 64bit PCI がついてるので、そういう NIC を挿せば、全然問題ない (と思う)。

環境コストとか

| No Comments | No TrackBacks

最近気になっているので、書いておこうと思う。

ひとつは、環境に対する製品ライフサイクルコストのこと。
たとえば、ハイブリッド車を買う。自分が使うガソリンは少なくて済む。
だけど、製品を作ったり、廃棄するには、その差分以上のエネルギーがかかっているかもしれない。というか、多くのエンジニアは直感的にそう信じていると思う。
ハイブリッド車は、技術開発の方向性としては正しいし、それを買い支える社会も必要だ。だが、それで「いいことをした」と思ってはいけない。だって、乗らなきゃそもそも発生しないコストを生んでいるのだから。
自分の手を汚さないことと、子供たちに借金を残さないことは別。

もうひとつは、バイオエタノールのこと。
掘り出してきた石油を燃やすよりは、空気中にあった二酸化炭素からできてる植物由来の炭素を燃やす方が、二酸化炭素の増加率は押さえられる、という話だ。
でも、食糧難で苦しんでいる人たちがいるのに、トウモロコシとか米とか、そういうデンプンを材料にしたものを燃やすってどうよ? 実際、世界中でトウモロコシの価格が急騰しているらしいし、そもそも、地球上の穀物生産量はほとんど増加していない (むしろ耕地が灌漑による塩分の蓄積なんかで使えなくなり、減少に転じる方向らしい)。で、日本では養鶏業者が飼料代高騰に耐えられずに、どんどん倒産しているのだそうだ。
人間はセルロースを分解できないので、稲藁とかそういう、収穫後に余る部分を原料にできればいいんだがね。デンプンをベースにするのが酒を造るテクノロジの応用なのに対して、セルロースを元にするのは新しいテクノロジの開発になるので、難しいのはわかってるけど。

いわゆる「理系の人たち」は、こういうことを理解してちゃんと周りのひとに伝える義務があると思うわけです。どうでしょう。

ばいよりにすと

| No Comments | No TrackBacks

古くからの友人の下村さんがデビューです。
みんな CD 買ってね!

finger の実装サーベイ

| No Comments | No TrackBacks

GNU finger ってずっとメンテされてないよなー、と思って、いくつか alternatives を調べてみた。

- efingerd
- ffingerd
- cfingerd
- サーベイ

cfingerd がいいかも。わからんが。

さる

| No Comments | No TrackBacks

Saru

仕事でサルの絵を描いた。人間もだけど。
ゲノムが読めてる連中、3種類。アカゲザルとチンパンジーとヒト。

研究・教育用にはご自由にお使い下さい。

ちなみにtgif で描いた。
着色は gimp だ。無償のイカすツールを使いこなすのは楽しいね。

UltraSPARC T1 と Solaris10

| No Comments | No TrackBacks

研究室のファイルサーバとして、UltraSPARC T1 なマシンの購入を検討中。
8 cores/chip で、4 threads/core なので、つまり最大 32 threads/chip だ。T2 という新しいプロセッサでは、これが倍の 64 threads/chip になるんだそうだ。しかも、T1 はメモリコントローラと JBus interface くらいしか集積してないが、T2 だと 10GbE とか PCIe なんかも集積している模様。すごいね。

ファイルサーバとか web サーバでは、つまり、多数のプロセスやスレッドを効率よく実行できることが重要なのであり、こういうアプローチをとる商用プロセッサがあってもいいと思う。単一のプロセスを高速に実行できるプロセッサは Intel や AMD が作っているが、SPARC だとか PowerPC なんかは、アーキテクチャ的にコンパクトなので、こういう方向へ進歩していくのはよい判断なのではないだろうか。

で、Fire T2000 買えるかなー。

LACP: 802.3ad

| No Comments | No TrackBacks

NFS サーバに行く Ethernet のリンクを2本とか束ねて速くしたいなー、と。

FreeBSD では ng_fec というのでできそう。
/etc/rc.conf から設定するパッチは send_pr されており、http://www.freebsd.org/cgi/query-pr.cgi?pr=104884 で見られる。

Linux にもあるみたいだ。
http://www.linuxhorizon.ro/bonding.html

腕時計その後

| No Comments | No TrackBacks

Alba のクォーツのやつを壊しちゃったのだけど、昨日お店から電話がかかってきて6000円で直るそうだ。
わーい。

ゼンマイの自動巻のやつは便利だが、じっと閉じこもっていたりとか、チャリに乗って生活していたり (自転車にのるときは腕時計とか付けないので) すると止まっちゃうんだよ。あたりまえだけど。
それに較べて、光発電のやつは、そのへんに置いておけば勝手に光合成 (違うって) して充電してくれるわけで、放っておいても安心。まさに永久機関というやつです (だから違うんだってば)。

gethostbyaddr

| No Comments | No TrackBacks

gethostbyaddr() で得られるホスト名がどうなってるか調べるには、
perl -e 'printf("%s¥n", gethostbyaddr(pack("C4", split(/¥./, "192.168.0.XX")), 2));'
とかすればいい。perl 便利だな。awk には gethostbyaddr() はないからな(笑)。

飯田

| No Comments | No TrackBacks

久しぶりに大垣行きの夜行列車に乗って、
豊橋を6時に出る天竜峡行きで信州へ。

目が覚めたら中部天竜を過ぎていて、唐笠駅でおりて下條温泉へ。
上り坂は、日差しが暑いけど、風が涼しかった。

天竜峡までタクシーで下って、また電車に乗って鼎へ。
電車の中から、Tour of Japan の日に走った赤い橋なんかが山の上にみえて、
懐かしかった。また行きたいなー。

鼎では「赤門や」にいってお菓子を買って、
向かいの cafe glam hearts でお昼ご飯。ランチは780円で大充実。
東京じゃ、1000円以上払わないと考えられない値段と内容。

飯田できんつばを買って、
飯島でまた温泉。で、帰る。
飯島駅から、中央アルプスに沈む夕陽がきれいに見えた。

一日中歩いて電車乗って、の繰り返し。それもいい。

rmt その後

| No Comments | No TrackBacks

FreeBSD の struct mtget は 76bytes あるが、rmt が 24bytes で切ってしまう。
xfsdump の BUFMAGIC が 64 に設定されており、76bytes 返されたら死ぬ。
というわけで、これはそれぞれあっという間に修正できるわけだが。

mt_gstat = 0 だと、drive not ready ということになってしまうらしい (笑)。そこで、猛烈に乱暴なやりかただが、rmtioctl.c で、

dstp->mt_gstat = 0;
dstp->mt_gstat |= GMT_ONLINE(0xffffffff);

と書いてみた。しかし、これではテープの終わりが正しく検出できなかったようで、

xfsdump: NOTE: dump interrupted: 18019 seconds elapsed: may resume later using -R option
xfsdump: Dump Status: INTERRUPT

ということで終わってしまった。つまり、正しく次のテープを要求させるには何らかの仕掛けが必要なのだが、これは FreeBSD 側の rmt の改造も含めて、けっこうがんばらないといけないのではないだろうか。うーん。EOT が正しく検出できればいいのかなあ。

EmacsでTAB連打?

| No Comments | No TrackBacks
俺は Linux が好きじゃないというのは、まわりの人ならみんな知ってることですが、 何が許せないかというと、こういうコードが平然と書かれているってことです。
struct  irix_mtget   {
        short   mt_type;          /* type of magtape device */
        unsigned short  mt_dsreg; /* ``drive status'' register */
        short   mt_erreg;         /* ``error'' register */
        short   mt_resid;         /* residual count */
        int     mt_fileno;        /* file number of current position */
        int     mt_blkno;         /* block number of current position */
};

struct linux32_mtget
{
    int32_t mt_type;           /* Type of magtape device.  */
    int32_t mt_resid;          /* Residual count: */
    /* The following registers are device dependent.  */
    int32_t mt_dsreg;          /* Status register.  */
    int32_t mt_gstat;          /* Generic (device independent) status.  */
    int32_t mt_erreg;          /* Error register.  */
    /* The next two fields are not always used.  */
    int32_t mt_fileno;        /* Number of current file on tape.  */
    int32_t mt_blkno;         /* Current block number.  */
};
インデント幅くらい揃えてくれ!

FreeBSD と Linux の rmt

| No Comments | No TrackBacks

研究室のファイルサーバは幾つかあるが、メジャーな奴は (残念なことに) Linux で、xfs を使っている。で、テープドライブのつながっているホストは FreeBSD なのだが、こいつに xfsdump しようとすると、

rmtopen: remote host type, "FreeBSD", is unknown to librmt.

というメッセージが出て、dump は始まるものの、ファイルサイズなどは無視されて、テープの終わりまでに dump が終了しなければそのまま abort 、という結末になってしまう。で、昔 Solaris と FreeBSD と Linux をごっちゃにして使っていた頃は、そんなの気にしたことなかったので、なんでだろうなー、と調べていると、librmt というのはどうやら、xfsdump のソースに含まれているライブラリらしい。それに、Linux の rmt はどうやら BSD 由来のものであり、rmt が理解するコマンドは Linux でも FreeBSD でも全く同じようだ。rmt のコマンドには、uname を返すようなものはないので、

ということで、xfsdump のソース取ってきて眺めてみた。librmt/rmtopen.c が怪しい。
まず、uname は rsh 経由で呼ばれているようだ。


170 snprintf(cmd, sizeof(cmd), "%s %s uname", rsh_path, system);
173 rmt_f = popen(cmd, "r");
183 char *c = fgets(uname, sizeof(uname), rmt_f);

検索に使われているテーブルはたぶんこれ。

50 struct uname_table uname_table[] =
51 { {UNAME_LINUX, "Linux"}, {UNAME_IRIX, "IRIX"}, {0,0} };

で、ここまでは簡単そうなのだが、rmt が I とか S で扱う構造体には互換性がなさそうだ。rmtioctl.c を見る限り、I (MTIOCOP) は使っていなそうだが、S (MTIOCGET) のほうは使う模様。これは、mtget 構造体をそのまま返すんじゃないかと思う。

rmtioctl.c には、


47 struct linux32_mtget
48 {
49 int32_t mt_type; /* Type of magtape device. */
50 int32_t mt_resid; /* Residual count: */
51 /* The following registers are device dependent. */
52 int32_t mt_dsreg; /* Status register. */
53 int32_t mt_gstat; /* Generic (device independent) status. */
54 int32_t mt_erreg; /* Error register. */
55 /* The next two fields are not always used. */
56 int32_t mt_fileno; /* Number of current file on tape. */
57 int32_t mt_blkno; /* Current block number. */
58 };

というのがあり、一方 FreeBSD の /usr/include/sys/mtio.h

110 struct mtget {
111 short mt_type; /* type of magtape device */
112 /* the following two registers are grossly device dependent */
113 short mt_dsreg; /* ``drive status'' register */
114 short mt_erreg; /* ``error'' register */
115 /* end device-dependent registers */
122 short mt_resid; /* residual count */
123 #if defined (__FreeBSD__)
124 int32_t mt_blksiz; /* presently operating blocksize */
125 int32_t mt_density; /* presently operating density */
126 u_int32_t mt_comp; /* presently operating compression */
127 int32_t mt_blksiz0; /* blocksize for mode 0 */
128 int32_t mt_blksiz1; /* blocksize for mode 1 */
129 int32_t mt_blksiz2; /* blocksize for mode 2 */
130 int32_t mt_blksiz3; /* blocksize for mode 3 */
131 int32_t mt_density0; /* density for mode 0 */
132 int32_t mt_density1; /* density for mode 1 */
133 int32_t mt_density2; /* density for mode 2 */
134 int32_t mt_density3; /* density for mode 3 */
135 /* the following are not yet implemented */
136 u_int32_t mt_comp0; /* compression type for mode 0 */
137 u_int32_t mt_comp1; /* compression type for mode 1 */
138 u_int32_t mt_comp2; /* compression type for mode 2 */
139 u_int32_t mt_comp3; /* compression type for mode 3 */
140 /* end not yet implemented */
141 #endif
142 int32_t mt_fileno; /* relative file number of current posit
ion */
143 int32_t mt_blkno; /* relative block number of current posi
tion */
144 };

みたいな感じで、圧倒的に FreeBSD のほうが詳しい情報が返ってくるのであり、こりゃ互換性はないね。というわけで、大幅に手を加える必要がありそうだ。IRIX の場合、最終的には

364 if (RMTHOST(fildes) == UNAME_IRIX) {
365 struct mtget *dstp = (struct mtget *)arg;
366 struct irix_mtget *srcp = (struct irix_mtget *)irixget;
367 short status = srcp->mt_dsreg;
368
369 dstp->mt_type = srcp->mt_type;
370 dstp->mt_erreg = srcp->mt_erreg;
371 dstp->mt_resid = srcp->mt_resid;
372 dstp->mt_fileno = srcp->mt_fileno;
373 dstp->mt_blkno = srcp->mt_blkno;
374 dstp->mt_dsreg = srcp->mt_dsreg; /* different semantics */
375
376 /* need to do tape status conversions */
377 dstp->mt_gstat = 0;
378 if (status & IRIX_MT_EOT)
379 dstp->mt_gstat |= GMT_EOT(0xffffffff);
380 if (status & IRIX_MT_BOT)
381 dstp->mt_gstat |= GMT_BOT(0xffffffff);
382 if (status & IRIX_MT_WPROT)
383 dstp->mt_gstat |= GMT_WR_PROT(0xffffffff);
384 if (status & IRIX_MT_ONL)
385 dstp->mt_gstat |= GMT_ONLINE(0xffffffff);
386 if (status & IRIX_MT_EOD)
387 dstp->mt_gstat |= GMT_EOD(0xffffffff);
388 if (status & IRIX_MT_FMK)
389 dstp->mt_gstat |= GMT_EOF(0xffffffff);
390 if (status & IRIX_MT_EW)
391 ;/* No GMT_ to map it to */
392 }

みたいにして、32bit Linux な mtget に反映されるし、32bit Linux の場合は、

393 else if (islinux32) {
394 struct mtget *dstp = (struct mtget *)arg;
395 struct linux32_mtget *srcp = (struct linux32_mtget *)linux32get;
396
397 dstp->mt_type = srcp->mt_type;
398 dstp->mt_erreg = srcp->mt_erreg;
399 dstp->mt_resid = srcp->mt_resid;
400 dstp->mt_fileno = srcp->mt_fileno;
401 dstp->mt_blkno = srcp->mt_blkno;
402 dstp->mt_dsreg = srcp->mt_dsreg;
403 dstp->mt_gstat = srcp->mt_gstat;
404 }

とするだけだ。こんな感じのを書いてやれば良さそう (ほんとはこの手前で、必要な場合にはバイトオーダの変換を行っているのだけれど、僕が使うのは今のところぜんぶ x86 だから手抜きをすることにする。Solaris なファイルサーバがあるという理想的な環境では、話が変わるわけだが...)。

FreeBSD の mtget から Linux の mtget にそのまま値を渡して良さそうなのは、
- mt_type (short → int32)
- mt_resid (short → int32: でもこれって 32kB だとすぐあふれるから、違う IOCTL を使うべきらしい)
- mt_dsreg (short → int32)
- mt_erreg (short → int32)
- mt_fileno (int32 → int32)
- mt_blkno (int32 → int32)
で、変換しなければならない (かもしれない) のは、
- mt_gstat ( ? → int32)
なのだが、これは FreeBSD の mtget には、該当する値がない気がする。これはつまり、テープの終わりとかが検出できないのであり、何本ものテープにまたがって dump する場合には非常に問題なような気もする。しかし、実際のところ xfsdump はこの変数を使っていないように見えるので、とりあえず 0 にしときゃいいんではないだろうか...?

(きっと、続く)

overdrive:/dev/DVD

| No Comments | No TrackBacks

OverDrive の DVD が出たので買ってしまったよ。
TV の2回分、48分で3000円というのはどうかと思うが... こんなもんなのかね。

今日の自転車

| No Comments | No TrackBacks

朝まで働いて、午前中はちょっと寝て、午後は友人がきたので一緒に出かけて、夕方から自転車で出勤。夕暮れの多摩川沿いに出ると、猛烈に身体が軽く感じた。

夕方のサイクリング道路は危ない。人が多いし、無灯火とか、そもそもどこ見て走ってるんだかわからない奴もたくさんいるし、こっちがフルブレーキして回避してるのに、全然気づいてくれなかったりするわけで。人間というのはたいてい、自分以上の速度で動くものを意識して行動することはできないものらしい。

そういうわけで、大変いい感じにもかかわらず、徐行を強いられるケースが多いわけで、往路は平均 26.8km/h. 復路は府中街道経由で、平均 29km/h くらい出してた。一番トバしたのは世田谷通りで、車の流れにのってズバァーっと加速して、48km/h くらい出てた。チャリに抜かれそうになって慌てて加速する自動車、というのはすごく怖い。だって、前が詰まってるんだからブレーキかけるのは必至なわけで、それくらいだったらおとなしく先に行かせていただきたいわけです。

一応明日から大学は休みですが、残念ながら出勤です。

36.69km @ 27.9kmh (1h17m46s) odo 3727.6km

LDAPその後

| 2 Comments | No TrackBacks

一晩中必死で root 仕事して、機器室で朝を迎えた28の夜 (朝だけど)。

netgroup も LDAP にしたぜ!
NIS format から hosts / netgroup を LDAP サーバに押し込む script を書いたので、FreeBSD では NIS, Linux では LDAP で生きていけるようになった。FreeBSD の libnss_ldap もちゃんと使えるようになるといいんだけどな。

あ、おまえが libnss_ldap を hack しろって?
おっしゃる通りです、ほんとすみません。

netgroup を LDAP に放り込んだのは、ログインできるユーザを制限したかったからなのだが、
passwd: compat
passwd_compat: files ldap
にして、+@ とか使って書くと、ちゃんと制限できてるようなのだが、getent とか finger では、LDAP なユーザが見えなくなっちゃって、つまり Linux なら LDAP support は完璧かというと、そうでもない模様。

ゼンマイ教

| No Comments | No TrackBacks

銀座で LASIK の術前検診を受けたときに、腕時計を修理に出したのが、先週帰ってきた。祖父が使っていた、Omega Seamaster で、巻き芯が折れてリュウズが取れちゃってたのを直して、さびていた文字盤も再生してくれた。時計屋さんの web に写真を載せていただいたのだが、まあなんというか、動かなかった時計が日差 2 秒 (!) で動くようになるのだから、これは仁術だ。日差2秒なんて、秒針の拘束機構がない時計ならどうせ秒のところは合わせられないのであり、まったく気にならないといっても差し支えない。

普段使っている腕時計は、ALBA のソーラーの奴であり、こいつはたった1万3千円なのにもかかわらず、クォーツの驚異的な精度と、ネジを巻いたり電池を替えたりする必要もないという、すごい奴で、買ったのは大学3年のときだから、もう8年くらい使っている。たまに日付 (31日ない月もあるわけで) や時間を合わせてやらないといけないけどね。で、Seamaster が修理終わったとたんにこいつをぶつけてしまい、風防のガラスが破損して現在修理中。ガラスの破片がカレンダー窓から中に入ってしまうと OH が必要になるかもしれないそうだ。なるほどね。

そういうわけで、時計は 1960 年代のゼンマイ式であり、写真を撮るのも同じ年代の Nikon F であり、普段手を触れる機械がみんなゼンマイで動くというのは愉快だ。だって、電池いらないんだぜ!エコロジーとかいうなら、まずこういうのを追求するべきでしょう。コンピュータはさすがにゼンマイじゃ動かないけどな。

60年代のテクノロジっていうのはいまでも充分現役なのであり、いま僕らが使っている、あるいは作っている電子機器っていうのは、そんな寿命があるものかしらん、とも思う。工業製品ってのは、本来そういうものじゃないといけないと思うんだけどね。

FreeBSDでLDAP

| No Comments | No TrackBacks

FreeBSD の nss_ldap port は、passwd と group にしか対応してないそうで、hosts には適用できません。ざんねーん。
Linux では OK みたい。ひゃっほー。

落車

| No Comments | No TrackBacks

12人落車 とか普通に報道されると、なんかすごい大事故みたいに聞こえるんだが、別に珍しいことでもなんでもないのであり、こういうので「自転車レースはアブナイから公道でやるのはやめさせよう」みたいになると悲しいと思う。
そりゃ、もちろんケガがないにこしたことはないですがね。

Windowsこわれたし!

| No Comments | No TrackBacks

作った奴出てこい!とかいってたら、
Internet Explorer が壊れて起動しなくなりました。Windows Update とかもできません(笑)。
あー、再インストールかよー。リカバリディスクどこだっけなー。

push_back() で即死

| No Comments | No TrackBacks

Windows でものを動かすのはほんと難しいです。
配列の要素追加しただけで死ぬんだぜ。もー。

Windows 作った奴、出てこい!

5.1mm

| No Comments | No TrackBacks

地球はもうちょっと小さかった らしい。
地球の大きさをミリ単位で測るって、すげーなー。

スイカで go

| No Comments | No TrackBacks

今日もチャリ乗った。大学までリセットボタンを押しにいっただけだが。

乗る前にバーテープ巻きなおした。だいぶ黒ずんでて気になってたところに、部屋にストックがあるのを見つけたのだ。いつもと同じ(だと思う)Silva のやつなんだけど、なんか色が違う感じ。いつものは若干ピンク色っぽいんですが、今回のは真っ赤だぜ、いえーい!俺の自転車は赤と黒でまとまっており、セキヤの前を通りかかったオジサン曰く、「いや、今年みたチャリで文句なしに一番かっこいいです。もう、なんていうか、病気ですね (笑)」というくらいにかっこいいわけですが、真っ赤なバーテープになったらさらにかっこよくなりました。こりゃ、ちゃんと同じ色のバーテープ探さなきゃいけないね。

で、昼にスイカを食べて、おなかいっぱいになっちゃったので、1時間ちょっと休憩してから出発。でも、二子橋のあたりで腹痛に襲われた。野菜山盛りに食べたら、やっぱり消化に悪かったかな。それまで順調に飛ばしてたんだが、往路は平均 25.1km/h とかいうありさま。お話になりません。大学でばたばたしているうちに復活。帰りはけっこう飛ばして、挽回した。平均で 28km/h 弱出てた模様。交通量が多くてブレーキかけまくりだったわりにはいい感じだ。

36.78km @ 26.5km/h (1h23m06s) odo 3689.8km

今日の自転車

| No Comments | No TrackBacks

フットサルでダメになってしまった右足裏の皮膚が、普通に歩ける程度に復活したのと、なんだかやる気にならなかったので、夕方多摩川に出てきた。
29.1km を 1h00m00s で走った。つまり、平均時速も 29.1km/h ってことだ。まあ、一週間ブランクがあいたにしては悪くないかな。でも、全然乗れてない感じだった。ベストには程遠いな。

夜、仕事が片付いてから、録画しておいた今週の overdrive をみる。
長かった山岳ステージのシーンも、ついに山頂。気力をふりしぼってライバルどもを追い詰め、一気に蹴散らす、この感じですよ。しかも、下ハンにぎったまま、パンターニばりのダンシングだ!
くぅーっ!しびれるぜ!

もうちょっと仕事してから寝よう...

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.01

March 2010

Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

About this Archive

This page is an archive of entries from August 2007 listed from newest to oldest.

July 2007 is the previous archive.

September 2007 is the next archive.

Find recent content on the main index or look in the archives to find all content.