PCBSD

長年使っている血圧計が壊れた。会社勤めしてる時に、出入りの業者さんが在庫整理 特別価格の2500円だったかで売ってくれたやつ。もう5年は優に使ってるから、十分に 元を取っているな。

新しいのを仕入れてこなければ。家電ショップに行ったら、あるわあるわ、安いのは 旅行用の携帯のやつ3000円ぐらいから、高いやつは2万円ぐらいまで。メーカーは、 テルモ、オムロン、パナソニックだったかな。年寄り需要を当て込んでの激戦区です。

体重計は、オムロン対タニタの対決でタニタに軍配を上げたので、今回はオムロンを チョイスしてみた。在庫整理っぽいやつで、3660円。今まで使っていたのと同機能で、 1月分のメモリー付き。

高機能のやつは、青歯で、パソコンへ測定データを転送出来るようになってたり、USB 経由でWebに転送してグラフ表示出来たりするみたいだけど、そんな贅沢しなくたって おいらは大丈夫。測定データを紙にメモしといて、10日分まとめて、キーパンチですよ。 後はPythonにお任せで、統計処理だね。

ipadのアプリを漁ってる時、無料の血圧ノートってのが有ったんで、ちょっと使ってみたけど、 入力が面倒で止めちゃった。いちいち入力する所をツンツンするなんてCUIな人間には 耐えられないですから。

今回の血圧計にパンフレットが付いてて、WellnessLink へ誘っていた。会員登録は無料みたいだけど、アンドドロドロイド推進派なのね。 まあ、自分のデータは自分で管理するから利用はしませんけど。

でも、血圧グラフの表示方法は学ぶべき点があるなあ。今までは高・低血圧値を2本の折れ線グラフで 表示してた。オムロンでは、ローソクチャート宜しく表示してる。これだと、高・低の血圧差も 一発でくっきりと視認出来るな。こういう棒グラフはどうやって描く?

最初に高血圧のデータを黒棒で書く。次に、低血圧のデータを白棒で書く。これで、 ろーそくチャートと言うか、宙に浮かんで棒になるな。pythonのグラフライブラリィー、matplotlibで やってみよっと。

子の面倒

前回知ったDeb専を見てたら、gdbを使って、forkしたプログラムの子供の部分を追跡 出来る事を知った。参考にやってみる。実験プログラムは下記


     1  #include <stdio.h>              /* printf, stderr, fprintf */
     2  #include <sys/types.h>          /* pid_t */
     3  #include <unistd.h>             /* _exit, fork */
     4  #include <stdlib.h>             /* exit */
     5
     6  int
     7  main(void)
     8  {
     9      pid_t           pid;
    10
    11      pid = fork();
    12
    13      if (pid == 0) {  // child
    14          int             j;
    15          for (j = 0; j < 5; j++) {
    16              printf("child: %d\n", j);
    17          }
    18          _exit(0);
    19      } else {         // parent
    20          int             i;
    21          for (i = 0; i < 5; i++) {
    22              printf("parent: %d\n", i);
    23          }
    24          exit(0);
    25      }
    26      return 0;
    27  }

mainの中で、すぐに子を生み、親子揃って、番号を唱えるっていう辛気くさいやつです。

sakae@debian7:~/t$ gdb -q a.out
Reading symbols from /home/sakae/t/a.out...done.
(gdb) b main
Breakpoint 1 at 0x80484b5: file fork.c, line 11.
(gdb) b 16
Breakpoint 2 at 0x80484cf: file fork.c, line 16.
(gdb) b 22
Breakpoint 3 at 0x8048505: file fork.c, line 22.
(gdb) run
Starting program: /home/sakae/t/a.out

Breakpoint 1, main () at fork.c:11
11          pid = fork();
(gdb) c
Continuing.

Breakpoint 3, main () at fork.c:22
22                  printf("parent: %d\n", i);
(gdb) child: 0
child: 1
child: 2
child: 3
child: 4

Continuing.
parent: 0

Breakpoint 3, main () at fork.c:22
22                  printf("parent: %d\n", i);
parent: 1

Breakpoint 3, main () at fork.c:22
22                  printf("parent: %d\n", i);

何も設定しないと、gdbは親の方しか相手してくれません。困ったものです。こういう時は 普通、子の方に待ち時間を入れておいて、待ってる間に子のpidを調べて、gdbをアタッチ するってのが常套手段でした。 面倒ですね。

(gdb) set follow-fork-mode child
(gdb) run
Starting program: /home/sakae/t/a.out

Breakpoint 1, main () at fork.c:11
11          pid = fork();
(gdb) c
Continuing.
[New process 4003]
parent: 0
parent: 1
parent: 2
parent: 3
parent: 4
[Switching to process 4003]

Breakpoint 2, main () at fork.c:16
16                  printf("child: %d\n", j);
(gdb) c
Continuing.
child: 0

Breakpoint 2, main () at fork.c:16
16                  printf("child: %d\n", j);

gdbに子供を追っかけるよって指示すると、今度は、子供の方に注目してくれました。 子供が死ぬまで、gdbはけなげにfollowしてくれます。親の方を追いかけるようにするには 、set follow-fork-mode parent です。

followとか聞くと、ツイターを思い出しますが、おいらはツイターも顔本も嫌いなんで、 こちらのfollowなら、大歓迎ですよ。

PCBSD

FreeBSDのメーリングリストを久しぶりに読んでいたら、PCBSDを熱く薦める人が居た。その 人曰く、FreeBSDでサーバーだけじゃつまんないしょ。FreeBSDでDeskTopしたっていいじゃない。 Linuxはみんなやってる訳なんだから。それもそうだな。やってみんべ。(これで何度目だ?)

PCBSD Downloadへ行ってVMWARE版のDiskを 落としてくる。 jaist.ac.jpあたりから落とすのがよかろう。V-box版もあるからお好きに どうぞ。

2.4Gあったんで、無線経由だと15分ぐらいかかったかな。展開するのにまた15分ぐらい。 仮想マシンを作る。メモリーは豪華に1Gを割り当て。OSは後で入れるって事で、ダミーDISKを 作成。そうやって準備してから、展開したDiskファイルをダミーDISKに上書き。

こうしておいて起動。初回は、画面のサイズ、rootのパスワード、ユーザーの登録。使う言語、使う場所 (アジアの中の東京)を指定。これで使えるようになる。

/etc/rc.confをいじって、sshdをイネーブルにし、em0のNICにdhcpでIP Addressを振るようにし、 ファイアーヲールに22番の穴を開けるようにしたら、外側から覗けるようになった。

デフォではKDEが起動してくるけど、使えるようになるまでの待ち時間が長くてイライラ。

記念にDiskの状態をば

[sakae@pcbsd] ~% df -h
Filesystem            Size    Used   Avail Capacity  Mounted on
/dev/label/rootfs0      2G    316M    1.5G    17%    /
devfs                 1.0k    1.0k      0B   100%    /dev
/dev/label/var0         2G    310M    1.5G    17%    /var
/dev/label/usr0        28G      7G     19G    27%    /usr
procfs                4.0k    4.0k      0B   100%    /proc
linprocfs             4.0k    4.0k      0B   100%    /compat/linux/proc

イライラは体にも、マシンにも負担(メモリー大喰いで、300Mも使ってる)をかけるので、 ケチケチ作戦発動。使いもしない産婆さんとか印刷系は殺す。青歯なんてのも殺す。 おまけで、gdmも殺す。使いたい時だけ、Xが上がればいいや。どんなマネージャが動くねん?

ヒントを教えてもらいましょ。startまで入力して後はTABを押し、候補を列挙。

[sakae@pcbsd] ~% start
start-pulseaudio-kde startkde             startx
start-pulseaudio-x11 startkde4            startxfce4
startfluxbox         startlxde

ふむ、Debianとかとマネージャは合わせておくかな。ってんで、.xinitrc に

konsole &
startlxde

とだけ設定。Xを使う時だけ、startx する事にしましたよ。rootユーザーだと、startkdeが お勧め。rootはcshって調子狂うなあ。chshしてみるか。

AppCafeなんて言うパッケージインストーラが付いてた(これって、pbiと言う、 独自パッケージコマンドのGUIラッパー)。 一般ユーザー権限でも アプリをインストール出来るのね。どんな仕組みになってるか追ってみると、、、

HomeDirにbinを自動的に用意。その中にはリンクファイルが出来ていて、本体は、/usr/pbi って所に入ってた。このdirは、ルートさんとオペレータ権限がある人が操作出来るのね。

[sakae@pcbsd /usr/pbi]$ ls -a
./                      .pbiwrapper-i386        r-i386/
../                     etc/                    scala-i386/
.hashdir/               gawk-i386/              share/
.hashdir-sakae/         gnuplot-i386/
[sakae@pcbsd /usr/pbi]$ ls -a gawk-i386/
./                      .xdg-mime/              libdata/
../                     bin/                    libexec/
.auto-external-links    etc/                    man/
.pbi-hash-list          gauk.png                sbin/
.sbin/                  include/                share/
.xdg-desktop/           info/                   www/
.xdg-menu/              lib/

こんな具合に、それぞれのパッケージが完全に独立するような作りになってた。だから、 パッケージを気楽にuninstallしても、問題が他に波及する事は無い。ドットファイルに 管理情報とかを埋め込んでいるのね。

正にDiskのbit単価が安いんで、富豪的に使いましょって方針で管理してんだな。こういう のもありだな。(心情的には、もったいないって貧乏根性が見え隠れしてますが)

日本語のmanも読めるといいなってんで、pkg addしたんだけど、manpath.configが無いよと 言われてjmanが起動しない。古いFreeBSDから借りてきた。こういうの盲点だね。 どんな内容かと言うと

MANDATORY_MANPATH       /usr/share/man
MANDATORY_MANPATH       /usr/share/openssl/man
OPTIONAL_MANPATH        /usr/local/man
MANPATH_MAP     /bin                    /usr/share/man
MANPATH_MAP     /usr/bin                /usr/share/man
MANPATH_MAP     /usr/local/bin          /usr/local/man

manの原稿の在り処と、コマンドの対応表だね。これって、jmanだけが使ってるのね。 パッケージに入れておいて欲しいな。このソースは、src/gnu/usr.bin/man/manpath/manpath.config,v に置いてあるはずなんだけど、今見たら無かったぞ。

マイブーム

近頃のipadアプリの我が家のブームは、 漢字力診断ってやつです。 女房がはまっていて、風呂に入るのを忘れてやってますよ。 ドロドロイド版も有るようですから、一粒で2度美味しい、アプリ作成SDKでも使って 作られているのかな。

読み取りは、まあ楽だけど、書き取りが難しい。これもそれも、自分で筆を持って 字を書かない環境になっちゃからだな。パソコンは人間の能力を退化させますよ。

写経なんてアプリを 使って鍛えないとだめかな。

漢字バージョンもいいけど、横文字バージョンの豆単みたいなのはないかな? 探して みると、有りそうで余りないのね。無料のやつが。有料のやつは有りますよ。 でも、こういったモバイル端末に有料のアプリは、皆さん余り入れていないようです。

平均で、4.8本が有料あぷり、18本が無料あぷりらしいです。おいらの場合も大体、平均 ぐらいだな。うかうかしてると、あぷりも値上げされるぞ。そして誰も買わなくなった。

あぷるは干上がってしまう可能性があるんで、慎重に値上げを検討中って所かな。