たんでー のすべての投稿

いつのまにやらgooブログ変わったな。–その他どうでもよいこと。

いつの間にか、アクセスログで14682位とか表示されるようになった。いままでは10000位に入ってないと数字がわからなかったのに。

最近仕事が変わって面倒だなぁ、、、あ〜あって感じで。

それはさておき、最近NECのLavieZというのが気になる。dynabookSSをサーバにでも降格させて、モバイル用のマシンに買ってしまおうかと本気で考えてしまう。13.3インチで875gとかまぢで欲しい。http://121ware.com/navigate/products/pc/special/lavie/lvz/index.html

ウルトラブックものでは、ちょっと前まではdynabookR632もよかったんだけど、重さが違うよなぁ。やっぱり。
http://dynabook.com/pc/catalog/dynabook/120611r632/index_j.htm

最近は、でかいノートPCで、解像度が1366×768でないのも結構手ごろなのが出てきていて、そろそろ換え時かなぁと思っている。
けれども、このブログにはいつも新しいPC欲しいけどまだ早い、としか書いていない気がする。。。いや、そろそろ本気で買い時と思っているよ。

AMDでもintelでもいいから、消費電力が低くて解像度が高いやつが欲しいなぁ。AMDの新しいのも割と期待しているけど、まだあんまり製品が見えてこないからいまいち。

サーバ機として、本気でfit-pc3が欲しい。もちろん消費電力が一番小さい奴。intensePCもいいけど、あれはどうせならクライアントとして使いたい。まともに使おうとしてストレージとメモリとモニタを買うと結構高くついてしまうのが難点だけども、、。http://www.fit-pc.com/web/

サーバ機の候補としては、別にレノボの小さい奴がいいかもと思ってる。なんでもそのうち、バッテリーをオプションで搭載できるようになるとか。今から楽しみ。http://www.lenovo.com/news/jp/ja/2012/04/0409.html

今年ことは買う。きっと買う。たぶん。

fedora17あれこれ

fedora17はpreupgradeできるようになってからすぐに入れていたけど、どうもpreupgradeがいまいち調子が悪いようで、grubの設定など手で変えないといけないところがあった。

壁紙以外はfedora16とたいして変わらない印象。btrfsも、システムのインストール先には指定できないようなので、まだまだいまいちかな。

USBメモリとかを刺したときに。自動マウントしてくれる場所が、/mediaじゃなくて/run/media/UIDの下になってる。

で、今日 yum update しようとして気付いたけれども、fedoraの公式リポジトリでruby1.9.3が来てる!!!
fedora16からそのまま残っていたruby-irbなどと競合して気付きましたよ。はい。

とりあえず、ruby-1.8依存な古いものは yum remove で消して、updateをやりなおし。rubyが変わって大丈夫かなぁ〜〜〜〜〜。なんとなく不安だ。

webcalendarをやめた!

phpのwebcalendarで構築したカレンダー。何だかんだ言って、これのために毎回mysqlを立ち上げたり、一応バックアップをとったりしていて、サーバの入れ替えの時なんかに結構障害というか、面倒になっていた。もういやになったので、サーバでmysqldを止めてしまった。最近アップデートが出ていることには気づいていたけど、どうも1年くらいインストール時の不具合をリリース版には入れずに放置されていて、いつになったら安定するのかよく分からないし、、、。

まぁ便利に使えるとは思うんだけれども、googleとかのカレンダーが便利に使える今となっては、別にもうそこを頑張らなくてもいいかなぁ、と。いうことで、mysqldを切ってしまいました。バックアップデータもそのうち捨てようかな。

バージョン番号がわからない。

android4.0のことをICSと書いたり、Mac OS XのバージョンをMountain LionとかSnow Leopardとかいったり、UbuntuのバージョンをPrecise Pangolinとか書いたり、debianのバージョンをlennyとかsqueezeとかかかれてもそれはいつの何番のバージョンなのかさっぱりわからないんだよ、、、、。

そういう文化なのはわかるけど、もう少し門外漢でもわかるようにならないもんか。利用者の方を向いた記事をみていないってわけではないと思うんだけど、、、。

(いや、ちょっと慣れてきたけどさ、、。)

Xperia ray あれこれ

4800円だと買う気にならなかったけど、980円だったら買う気になったXperia ray。

回線はIIJMIOの高速モバイル/D(128kbps、945円/月)を用意。クーポンを買う必要はない感じ。地下鉄の中で接続が切れたりつながったりするのにタイムラグがありそうなのが気になるけど、十分使える。

ただ、xperia側で、テザリングがきかないというのは買うまで知らなかった。(docomoの端末のテザリングの仕組みのため、テザリングのときにはAPNを専用のものに書き換えるとか。) それが一番つらい。

==

mediagoでビデオを買って入れてみた。プレイステーションネットワークの動画サービスで、videounlimitedというのがあるみたいだったけど、無線LANで入れるとちょっと遅そうだったので、PCのmediagoのPSストアで買って入れてみた。Xperia側でUSB接続モードをMTPにしていたら、mediagoからXperia rayに転送できなかった。MSCに変えたらできた。windowsではMTPがおススメとか書いてあったのに、むむぅ。

最初から入ってるマイクロSD 8GB だと足りないかもしれん。

zoffで眼鏡を買ってみた。

PC用の度が弱いのを一つ作ってもらった。
眼鏡の度数を測定するのを機械で簡単にやるから人件費が安くなって値段が、、というからくりの商売だったはず。

モノは試しとやってもらったら、なんか、はかり方が適当だった気がする。あんなの、年に一回の健康診断でやるようなレベルのと同じだったなぁ。サクサクっとすんでだいぶ早かったし。なんとなく大丈夫かなぁ?という不安な感じ。PC向けのzoffPCってレンズも、見てみたら結構カラーレンズっぽい感じに色がついていたし、薄型非球面レンズには出来ないとのことだったので、パス。

まぁ、次に買うときはもっと別のところも比べて考えるかも。

 

=====

その後、3週間使ってもメガネに酔うので、1か月の補償を使って今つかっているメガネと同じ度にしてもらった。交換するとき、これで酔うなら今のメガネの方が悪いかもよと言われたが、それは、新しいメガネの方がちゃんとまっすぐ見れてないんじゃないかという気がしているが、まぁ完全にゴミにしてしまわないために、とりあえずバックアップには使えるように、度を変えてもらう、というわけ。

どうなることやら。

xperia ray を買った。

ヤマダ電機で3月末までに売りきれなかったらしいxperiarayの赤?が機種変980円だったので購入。
とりあえず、回線はあとでb-mobileあたりにすることを考えて、今までのケータイにSIMをさしたままでお持ち帰り。

がちゃがちゃといらないオプションをつけられたり、3時間位待たされたりしたけど、まぁ持ち帰ってwifiにつないでみたらモノは充分使える。そのうちandroid4.0へのアップデートがあるはずだから、楽しみ。

やっぱりdynabookazのときと比べると、キーボードがないだけ入力が面倒だけど、タッチ出来るからまぁ楽といえば楽。画面が小さいからちょとつらい部分もあるし、入力の時のキーが小さくて、ちょっとつらいかもしれない。入力はテンキー入力が現実的かなぁ。

pspgoの都合でPCに入っている、mediagoとデータをやりとりできるっぽいが、まぁあまり使わないかなぁ。

これから液晶にはるフィルムを買わねばならんなぁ。あとは、必要に応じて外付けバッテリ?まぁこちらは様子をみて、といったところ。
google アカウントとか、すごく久々につかったなぁ〜。

sheevaplugをfedora14にしてみた。

まずは、fedora14を入れるSDカードを用意。今回はamazonで安く仕入れた東芝の8GBを利用。

パーティションは

/boot ext3 300MiB

/   ext4 (ジャーナルなし) 残り全部

swap      500MiB

で切ってみた。

swapなんていらないよな〜なんて話もあるし、あまり使って無かった気がするけど、まぁ一応切っておく。SDカードも使い切らないから。

ジャーナルなしext4は、gpartedでパーティションを切ってから設定したので

tune2fs -O ^has_journal /dev/mmcblk0p2 した。

前はきっとjournalに書きまくったせいでSDカードが壊れたに違いないということです。はい。

このとき、fstabを書くときに楽をするため?、パーティションにラベルを設定。

tune2fs -L rootfs /dev/mmcblk0p2 みたいな感じ。

これをしておくと、fstabのデバイスのところに、LABEL=”rootfs” とかかける。

man tune2fs とか、 man fstab 参照。
fedora14のrootfsは、http://lists.fedoraproject.org/pipermail/arm/2011-December/002386.htmlで入手できるものを使用。まぁ多分使えてる。デフォルトのrootのパスワードは、fedoraarm

fstabは適当に編集。 /tmp /var/lock/subsysはtmpfsにした。

試しにtftpでカーネルを読み込んで、nfsで起動させようとしたが、うまくいかないので、こちらは断念。

SDカードからなら起動できた。(/bootに、最新のkernelをおいときました。 いつもの、http://sheeva.with-linux.com/sheevaから拾えるものです。)

次に、uImageからの起動時に、/のデバイスをfsckしに行って待ってしまうのを解消するために、uinitrdを作成する。

http://www.mulsys.net/blog/archives/2010/02/864.html (Wayback Machine経由) http://legacyos.homeip.net/sheeva/ (リンク切れ) を参考にして、まずはsheevaplugでfedora14に入ってから、

# cd /boot

mkinitrd ./initrd-3.2.5 3.2.5

mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "3.2.5 ramdisk" -d ./initrd-3.2.5 /boot/uInitrd-3.2.5

ln -s uInitrd-3.2.5 uInitrd

reboot

u-bootの設定に入って

>> setenv bootargs_mmc 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootdelay=3'

> setenv sd_prepare 'mmc init ; ext2load mmc 0:1 0x800000 /uImage; ext2load mmc 0:1 0x1100000 /uInitrd'
> setenv bootcmd_sd 'setenv bootargs $(bootargs_mmc); run sd_prepare; bootm 0x800000 0x1100000'
> setenv bootcmd 'run bootcmd_sd; run bootcmd_nand'
> saveenv
> reset

(bootcmd_nandには、以前設定した、nandフラッシュから立ち上げるためのコマンドが入っています。

u-bootを更新したので、mmc initとなっていることに注意。)

これで無事に起動できたので、早速いろいろインストール

yum install emacs mtd-utils* openssh-clients lzop nano git-all etckeeper w3m

ここらで、sheeva.with-linux.comから拾ったREADME-SHEEVA-UPDATE.sh をもう一度やって、一応アップデートしておく。

yum install httpd mysql ruby php ruby-irb rubygems php-mbstring php-mysql ruby-sqlite3

zabbix があったので、あとで遊んでみようと入れてみる。

yum install zabbix zabbix-web-sqlite3 zabbix-server-sqlite3 zabbix-agent zabbix-docs

以前使っていたものを思い出しながら入れていく。まずはプリンタ設定とntp。

yum install cups ntpdate ntp

ntp設定は不要なようだ。デフォルトで動く。

タイムゾーンをJSTに変えておく、、、。

cp /usr/share/zoneinfo/Japan /etc/localtime

ハードウェアクロックをUTCで保存するように、/etc/adjtime のLOCALをUTCに書き換え。(趣味)

hostname が、デフォルトで、fedora-armというのになっているので、 いつものやつに変える。

/etc/sysconfig/network の編集

作業は明日以降ということにしてここらで寝ます。

=====

続き

yum install screen nkf mysql-server sane xinetd sdparm

cupsの設定

以前同様 http://honana.com/system/cups.html に従って、、、

・/etc/cups/cupsd.confの編集

Listen 631 を追記

<Location /> <Location /admin > <Location /admin/conf>の中に allow 192.168.0.0/24を追記

・openssl req -new -nodes -x509 -keyout /etc/cups/ssl/server.key -out /etc/cups/ssl/server.crt -days 3650

・/etc/init.d/cups/restart

・https://192.168.0.2:631/admin でプリンタ追加。rawドライバを選択。(=sheevaplugのIPアドレスです。)
そろそろ疲れてきたので、etckeeperのgitで、バックアップのetcから、設定ファイルのへんこうになっているところを探してみる。

cd /etc

git remote add f12 /path/to/back/up/etc # パスは嘘です!

git fetch f12

git diff --summary f12/master master

うーん、多い。とりあえず、httpd/conf.dと、手で書いたanacronのシェルは復旧しておく。

# cd /etc/httpd/conf.d

git checkout f12/master -- .

これで一応  git diff を見て、変更を確認。 うーん。便利。

====

sambaの設定。sambaのパスワードをどうやって移すのか調べた。

まずは yum install samba

とりあえず、バックアップしてあった以前の環境にchrootして、

# pdbedit -i tdbsam -e smbpasswd:aaa

してから、chrootから抜けて、aaaファイルを適当な場所に移して

# pdbedit -i smbpasswd:aaa -e tdbsam

してユーザアカウントを移す。

次に、またetckeeperのgitを見ながらsmb.confを移して、

/etc/init.d/smb start && chkconfig smb on
/etc/init.d/nmb start && chkconfig nmb on

====

スキャナも使えるようにする。

yum install sane xinetd

設定はhttps://ttandai.info/archives/734で以前やった通り。だけど、まぁ、etckeeperでcheckoutするだけ。

/etc/xinetd.d/saned はこんな感じ

# default: off

description: The sane server accepts requests

for network access to a local scanner via the

network. copied from manpage of sane.

service sane-port
{
port = 6566
socket_type = stream
wait = no
user = root

user = saned

group = saned

server = /usr/sbin/saned
}

====

php、mysqlも、設定をetckeeperから引いて、走らせるだけで終わり。

====

メールはまたeximに入れる。いい加減postfixとかにするべきかとも思うが、以前設定したものをそのまま使うので、、。

====

anacronジョブでやっていたバックアップものを復旧。

====

pukiwikiもちゃんと動いた。でもそろそろdokuwikiにしようかな。

====

バックアップ用のハードディスクに、メインのものと同じ容量のハードディスクを用意したので、そこに移して、おしまい。
全体的に、etckeeper便利ってことでした。

u-boot更新@sheevaplug

DENXで配っているu-boot、をビルドしたらしいものがここで配っているので入れてみた。

操作は全然むずかしくない。指示どおり。fedora16の母艦でtftpでつなげるようにして、

setenv serverip 192.168.1.2 # IP of your TFTP server
setenv ipaddr 192.168.1.200
tftpboot 0x0800000 u-boot.kwb
nand erase 0x0 0x60000
nand write 0x0800000 0x0 0x60000

だけ。MACアドレスも含めて設定がすべて上書きされるので、そこだけ注意。
自分の場合は、screenの ctrl+a,Hでprintenvのログを出してから、整形(sedで、 s/^/setenv / s/=/ ‘/ s/$/’/ だったかな?)してからテキストファイルに保存、for i in `cat setting` ; do echo $i > /dev/ttyUSB1 ; sleep1 ;done みたいな感じでu-bootの設定を書いて、u-bootの画面でprintnevで確認してからsaveenvした。(分かりにくい書き方で申し訳ないです。 screenで端末につないでいますが、echoで書き込んでいるときは、screenの端末を閉じています。同時に二つ開くとろくなことにならない。)

mmcinitコマンドが mmc init になっているくらいの変更点はあったが、他は特になさそう。

u-bootの環境変数がだいぶすっきりしたけど、http://www.denx.de/wiki/DULG/UBootEnvVariablesを眺める限りでは今まで書いてあったものが解説されていないので、ここは気にしないということで。

fedora16のnfsサーバについて

fedora15からpreupgradeであげたサーバでnfsを久々に使おうと思ったらハマったのでメモ。

端的に言うと解決方法はこれ。
http://fedoraforum.org/forum/showthread.php?t=273173

アップグレードした時に必要な設定ファイルが、/etc/sysconfig/nfs.rpmnewになっていたが、
これの中にどうしても必要な設定がかかれていた様子。中は見てないけど。
というわけで、
mv /etc/sysconfig/nfs.rpmnew /etc/sysconfig/nfs
で終了。

あとは、fedora16でのnfsの立ち上げ方は
http://www.server-world.info/query?os=Fedora_16&p=nfs
あたりを参考にした。

SDカードが壊れた!

sheevaplugのOS(fedora12)をつっこんでいたSDカードが壊れた。1年持ったかもたないかくらい。どうも起動する度に壊れるファイルがあり、ファイルシステムに不具合が出るような感じがしていたので怪しいとは思っていたんだが、確信に変わったので心置きなく捨てられる。
ext4が悪いのかと思って、ext3でフォーマットして、その直後に1GBくらいの適当なファイルおいてfsckしたら、いきなり破損ファイルあり。fsck -c したあとにdumpe2fs -b しても、badblockは出てこないけど、物理的に壊れていると解釈するべきなんでしょう。
windowsで、checkflashというのを試してみたら、こちらでも必ずCRCエラーが出てくるので、(特定のブロックが壊れている分けではないが)不具合があるとみている。

まぁ、OS動かしてたわけだから、書き込み回数過多で死んだってとこでしょう。vabatimのclass6、16GB。容量が大きければウェアレベリングがきいて寿命が長いかとも思ったけど、そうでもなかったということかなぁ。1割くらいしかつかっていなかったんだけれども。

まぁもう壊れたものはしかたがないので、u-bootをアップデートしつつ、OSもfedora14にしてみようと思う。

ってか、OSインストールするのを考えたら、圧倒的にHDDとx86なcpuの方が楽だよなぁ、、、と思う次第。需要と供給なのかなぁ。次は、epsonのちいちゃいやつでも買おうかなぁと画策してみたり。sheevaplug自体が壊れるにはまだまだだいぶ時間がかかりそうだけれども、、、。

というわけで明日以降作業したら追記する。
SDカードのガワはずして眺めてみようかな。

==

その後、追加のSDカードを買ったので、壊れたSDカードを割ってみた。
SDカードは、verbatimのクラス6 16GB。
中のチップは、TOSHIBA TH58NVG6D2ETA20 が2枚(台湾製かな?)。 ぎちぎちにつまっているけど、コントローラのようなチップが見当たらないんですけど、、、。独立したチップじゃないのかなぁ、、、。
以前予備として買っておいたA-DATAのSDカードは大丈夫なんだろか、、、、。いろいろ不安だ。

fedora16でlinuxデスクトップ環境

最近はデスクトップ用途にはwindows7を使っていることが多かったが、必要に迫られて、前に中古で買った dynabookSS RX1のデスクトップを最近結構使っていて、2〜3年前に使っていた時よりだいぶ便利になったと実感しているのでメモしておく。

一応断っておくと、毎日(別の場所で)fedoraのデスクトップを触ってはいたのだけど、必要最小限の機能しか使っていなかったので、気付いていないことが多かった。

前提条件としては、ハードウェアのほかに、
・64bit環境
・ブラウザはchrome
・flashプラグインと、moonlightはインストール済み。

で、気付いたことを箇条書き。
・youtube、radiko、niconico動画あたりは余裕。
・flashのブラウザゲームも大丈夫。
・skydrive、office web appsも使える。
・rythmboxはまぁまぁ使える。smbの共有ファイルから拾って流してる。
・chromeのタブを増やしているとちょっと重いかも。topで見てると、chrome、gnome-shellが重いのか。
・プリンタドライバのインストールが圧倒的に楽。個人的にはwindowsよりも楽。
・指紋認証の精度はwindowsXPの方(独自ソフトかな?)が高い。
・無線LANの設定はwindowsXPよりは簡単。windows7はどうだったか忘れた。
・リポジトリに入っている限りソフトのインストールが楽。すごく楽。最近はリポジトリに入っていないようなものは、chromeとか以外にはとくになくて、自前でコンパイルしたり、どっかから拾ったrpmをいれるということもない。

・(関係ないけど)dynabookの「東芝HDDプロテクション」に相当する機能がlinux側では実装されていないっぽいのが気にはなる。SSD使えってことかもしれんけど、SSD買ってつけかえるくらいなら新品かうので、、、、。

最近、パソコン立ち上げてもブラウザしか使っていないことが多いことに気付いてしまったので、もうwindowsよりはこっちでいい気がしてきた。Ctrl+Alt+矢印を押してデスクトップ切り替えとか、windowsキーを押してウインドウ一覧を表示させたくなってしまい、すでにgnome-shellに手がなれてしまったのもある。(ノートパソコンだと、Fnキーが邪魔でAltがずれることが多いのは不満、、、。普段はlogicoolの Illuminated keyboard なので。)

まぁ、linuxでいいじゃん、とか、fedoraがあればwindowsいらないじゃん、という主張は、そのままwindowsでいいじゃん、とか、macでいいじゃん、とかいう思想の人には、積極的に使う理由を提案できない時点で、使ってもらう余地は無い、というのは理解してます。

自分としては、yumでプログラムのアップデートが楽とか、gnome-shellが便利とか、fedoraの方がベターな点がある一方、windowsの方はデスクトップが一枚しかつかえないとか、いろいろはかどらないです。

最後に、gnome-shellで感動した機能が、スクリーンキャストが動画で残せる、という機能について。
Ctrl+Alt+Shift+rをおすと、右下に赤い丸が出て、録画が始まる。もう一度Ctrl+Alt+Shift+rを押すと録画が終わる。
動画ファイルは、ホームディレクトリの直下にshell-20120201-1.webmのような形で残っている。

手順を残して共有するのに非常に便利。画像のスクリーンショットとは情報量がまったく違う。素直に感動した。

特許庁システム更新中断とかの話。

ツイッターで書いたことをコピペしてこっちにも残しておく。
気が向いたら後でまとめる(こう書くときは大抵気が向くことはない。)
ここまで長文を何回も書くなら、ブログでいっぺんに書くべきだったな。

時系列順


業務を「理解している」特定業者のみが落札して、随意契約で儲けてもらうのが、結局安上がりだったと言う話?初期コストだけの問題かもしれんけど。|[スクープ]特許庁、難航していた基幹系刷新を中止へ – ニュース:ITpro http://nkbp.jp/zNS4TM #itprojp


総合評価方式だからなぁ、、、グダグダになったのは、仕様とか技術点の設定の仕方がそもそも悪かったというのもあるのかも。仕様はどうだったんだろ。|http://web.archive.org/web/20140615002654/http://www.jpo.go.jp/koubo/choutatu/keikakushyo/pdf/kiban_system/kiban_system.pdf


H22年時点でこんな感じのステータス。調達の分離単位の見直しとか提言されちゃって、頭からだめってことじゃん。飛ばしじゃないのか、と思ったが。。 |http://web.archive.org/web/20130124010551/http://www.meti.go.jp:80/press/20100820003/20100820003-2.pdf


特許庁のシステム更新中止のニュースが未だに日経のサイト以外から出てこないのはどういうことなんだろう、、、?見つからないだけか?


調達プロセスとかプロジェクト管理とかが問題だったと。ソースはこちら。「現体制によるプロジェクトを取りやめる」のも仕方なさげ。 http://web.archive.org/web/20141014070634/http://www.meti.go.jp/press/2011/01/20120124001/20120124001.html|特許庁の基幹系刷新「中断が妥当」、外部委員会が報告書  :日本経済新聞 http://s.nikkei.com/wSt4se


総合評価落札方式で、価格点に比べて技術点をもっと加点できるような措置を考慮しろ、と言っているのがよさげ。現体制では無理だから一旦中断して対策してからやりなおせってことか。日経のように中止と言っていいのかはわからん。| http://web.archive.org/web/20130813181426/http://www.meti.go.jp/press/2011/01/20120124001/20120124001-2.pdf

ここまで。
ちなみに、このあと、
http://news.braina.com/2012/0124/move_20120124_001____.html
日経新聞の続報
など、この件についていろいろ報道されている。(はじめは、割と日経新聞の論調について疑っていました。)

入札時の技術点を柔軟に加点できるように、という方向で改善されるのはすごくよいことだとは思うが、システム調達ごとに、専門的な、まともな仕様を作れるような職員を必ず配置しないといけないことになる。公務員にこの方向の専門性を求めるというのはよしあしが分からん。もっと別なことをやれという気もするし、専門性がなければ、仕様作成まで業者に丸投げされて、(業者はいいだろうが)税金の無駄遣いになるような気も、、、。難しい問題ですね〜。

ベンダーロックインの解消は容易ではない、という例なんでしょうか、、、

フィルタースクリプトなシェルスクリプト

今日はじめて気付いたので、忘れないうちにメモ。

bashとかでフィルターのスクリプトを書くとき、
cat $@ | hoge | huga
とか書くと便利なことを今日知った。
スクリプトの引数がなければ$@が無視されるので(man bash参照のこと)、catが標準入力を読む。つまり、スクリプトに渡された標準入力に対して動作する。
スクリプトに引数としてファイル名をいくつか与えると、$@にすべての引数が入るので、普通に引数を処理する。
別にcatじゃなくても、sedでもawkでもgrepでもいけると思う。

例えば、 
nkf $@ | less
というスクリプトを(たとえばnkflessと言う名前で)用意しておけば、 nkfless text でも cat text | nkfless でも両方使える。
ちなみに、bashでなくdashでも使えたので、たぶんshでもいけるかも。
(でも、lessのこんなことは、LESSOPEN=”|nkf %s” みたいな環境変数で本当はできるんですけどね、、、。)

引数の個数を判断して、while read line (場合によってはcat – | と書いてた)と、
for i in $* を分ける必要はなかったという話。
while read がどうしても必要なら、
 cat $@ | while read line ; do hoge;done| huga
とか、好きにかける。
そもそも、複雑なフィルターならシェルスクリプトで書くなって話もあるけど、、、。

年間20ミリシーベルト「発がんリスク低い」 政府見解(朝日新聞) – goo ニュース

年間20ミリシーベルト「発がんリスク低い」 政府見解(朝日新聞) – goo ニュース

こうやって、他のリスクも放射線量で危険性を書けば同じ尺度で評価できるからわかりやすいな。
発がん率とかから換算したんだろうけど、説明のための方便としてはこういうやり方もあるのか、と感心した。
まぁでも本当は、シーベルトじゃなくて発がん率でも評価できるはずだよなぁ、、、、。
そういう議論がニュースサイトとかからなかなか聞こえてこないのはどうしてなんだろう。アンテナが届いていないだけだとは思うけど。

ネタは
http://www.cas.go.jp/jp/genpatsujiko/info/news_111110.html
にある。11月9日から12月15日で8回も会合をやっている。そんなに頑張るものなのか。
議事録はまだ出ていないので、議事録に期待。

====
ついでにここにも書くけど、

NHKあさいちの放射線測定間違ってごめんなさいってのを今朝半分位みたけど、ちょっと神経質なんじゃないかなぁ、とはじめは思った。
しかし 視聴者に分かるように解説するって言うのはすごく大変なんだろうなぁ、と思い直した。スペクトル線から核種の同定までいちいち説明するわけにもいかないだろうし、どうやって説明したらいいのかね、、、。ご苦労様です。
(web魚拓へのリンク)とか。)

(番組の中でコンクリートからのカリウム40の遮蔽ができてなかったってのはちょっとおかしいんじゃないかと思ったけど、ひょっとしたら普段はそんなものバックグラウンドに埋もれる位の線量しか測らないとか、そこの線はあまり見てなかったとかなのかなあ。実際にはよくわかんないな。)

fedora16ではchkconfigがいまいち使えないという話とか、unixの起動の話とか。

redhat系のlinuxディストリビューションでは、起動時のサービス立ち上げには、chkconfigコマンドとか、ntsysvコマンドとかを使うことになると思うんだが、先日ちょっと使ってみたら、fedora16では、chkconfigではすべてのサービスをいじれるわけではないことに気付いたので、メモ書き。(デーモンとサービスという表記が混ざるけど、この記事の中では同じもんと思ってます。はい。)

まず、chkconfigが何をしているかというと、/etc/rc.d/init.d 以下にある、各種デーモンの起動スクリプトを、/etc/rc.d/rc[0-6].d/以下に適当な名前でシンボリックリンクを張るということ。
たとえば、chkconfig –level 2345 sshd on とすると、rc[2-5].dの中にS??sshdという名前で、rc0.d rc1.d rc6.d の中にK??sshdという名前でそれぞれシンボリックリンクができる。例えば、この状態でランレベル1になるとsshdが停止し、ランレベル5になると、sshdが立ち上がるという仕組みになっている。(??は起動順、停止順に振られる2桁の数字。起動スクリプトにコメントで書いてある。)

ランレベルが変わり、たとえば3になったとすると、/etc/inittab を読んだり /etc/event.d/rc3 を読んだりして、とにかく /etc/rc.d/rc 3 を実行する。 で、この rc というスクリプトを読めば分かるけど、(fedora16な環境ではすでに存在しないため読めない!) /etc/rc.d/rc3.d のなかで、Kから始まるスクリプトを停止して、Sから始めるスクリプトを起動するという処理がかかれている。というわけ。 この辺の話は検索すればたくさん出てくるので、とりあえずこんなもん。後者のやりかたupstartについては、ここ(WayBack Machine 経由)が参考になりそう。

で、Fedora16。

Fedora16には/etc/rc.d/rcスクリプトがないし、inittabはすべてコメントで頭に ”# inittab is no longer used when using systemd.” とかかれる始末。

inittabを読むsysvinitや、/etc/event.dを使うUpstartと違って、fedora15から現在使われているsystemdでは、この辺の管理が変わってきていて、/etc/rc.d/init.dには、あまりスクリプトが置いてない。ntpdやsshdもない。

試しに、fedora16でchkconfigを叩いてみると、

“注記: この出力は SysV サービスのみであり、ネイティブな systemd のサービスは含まれていません。
systemd services. SysV 設定のデータはネイティブな systemd の設定によって上書きされます。”

と表示され、いくつかデーモンが表示される。ネイティブなsystemdのサービスとはなんじゃい、ということだが、それは、/lib/systemd/以下にファイルが配置されているようだ。
/lib/systemd/system/ntpd.serviceなどのファイルを見ると、サービスを起動、停止するコマンドのようなものがかかれている。この辺の仕組みはまだよく分かっていないので、適当に今度まとめる。

とりあえず、fedora16でのサービスの起動、停止、起動時に勝手に立ち上げるようにするにはsystemctlコマンドか、以前からあったserviceコマンドを使う。というか、serviceコマンドはsystemctlコマンドを呼ぶようになっただけ。serviceコマンドの方がタイプが少なくて簡単。

sshd 起動

systemctl start sshd.service (または service sshd start 以下同様)

sshd 停止

systemctl stop sshd.service

sshdを起動時に立ち上げるようにする

systemctl enable sshd.service

などなど。
勝手に立ち上がらないようにするには、disable、起動状態を見るにはstatusやshowなど。いろいろある。

systemctlコマンドは他にもいろいろと機能がある様子で、引数なしにsystemctlコマンドを叩くと、.service のみならず、.deviceなる項目も出てくるので、いろいろできる様子。この辺のことはまたしらべてから。

また、systemdではランレベルとかはどうなっているのかも気になる。/lib/systemd/system/runlevel?.targetというファイルは、それぞれgraphical.targetやmultiuser.target、reboot.targetなどへのシンボリックリンクになっているので、ランレベルという概念がなにやら希薄になっているような気がする。それもまた気が向いたら読んでみる。

systemctlコマンドって、叩くのが面倒なので、この辺はGUIで設定した方が楽なんだけど、どこにもみあたらない。コマンド名がわからんので探せないが、、、。まぁ、あとで”ソフトウェアの追加/削除”でさがしてみるか、、、。 system-config-serviceかな?いれてみよう。

そもそもこんなことを気にしはじめたのは、某UNIX、というかAIXでどうやって起動時にデーモンを勝手に立ち上げるかということを気にしたから。そもそも、普段はめったなことでは落とさないんだけど、どうしてそんなことが必要なんだろうというのはさておいて、、、。ランレベル変更時に起動スクリプトを処理するのではなくて、inittabに必要なことを書いてしまうという方式で、(管理コマンドを通さずにinittabをいじっちゃいけないみたい)面倒だなぁ、chkconfigは楽だよなぁ、と思ったからなのでした。

起動スクリプトを適切に用意するのは、適切に終了するためのコマンドを指定できるから、便利なのだと思うけど、どういうことになってるんだろ。

この記事誰得なんだろうという気がしないでもないが、
この記事は適宜追記・書き換えします。

無駄に数独を解くアルゴリズムを考えた話。

暇つぶしにrubyで書いた(といっても、ここには今のところコードを載せないし、rubyを使ったのは、Array周りで楽するためだけ。)

1.候補を列挙して確定した値を埋める関数
すべてのマス(i,j)について、(i,j)が属する行、列、ブロックの数字を参照して、(i,j)に入る値の候補すべてを配列Aに格納する。このとき、(i,j)に入る値の候補がただ一つに決まるときは、(i,j)
に入る値を確定する。
((i,j)に数字がすでに入っているとき、(i,j)に入る候補が存在しない時は、空の配列を入れる。)
すべてのマスが埋まったら、正解の状態として記憶する。
この処理を候補を入れる配列Aが変わらなくなるまで繰り返す。(←終わらない場合があるかもしれない。検証してない。)

2.メインループ
・適当に初期化してから、1.の関数に入る。
・すべてのマス(i,j)について、順に以下の処理を行う。
 すでに値が埋まっていれば次のマスの処理へ。
 このときのマスの状態、数字の候補の配列Aを記憶
 値の候補が入っている配列A(i,j)から値を選んで仮に入れる。
 1.の関数の処理へ。
 次のマスの処理へ。
 戻ってきたら、数字の候補、マスの状態を戻す。
(途中で矛盾が出たら関数から抜けて、勝手に矛盾があったところまで戻ってくる。)

で、複数回答がある場合もすべての正解の状態が記憶されるはず。
あとは、こまごまとした、解けたかどうかを判別したり、矛盾が起きてないかを判別する関数とかを用意した。

そもそも、サンプルとして食わせるために適当に用意した数独が、解答が一通りに定まるまともな数独じゃなかったので、そこあたりですべて解答として列挙するのに苦労した。解答を一通り見つければ終わり、というアルゴリズムなら、バックトラック法、でググればコードがすぐに出てくるし、そちらの方が賢いかもしれない。

ちょっとアルゴリズムを工夫できるかもしれない。たとえば入る数字の候補の配列Aの同じブロックを見て(1,2,3),(2,3),(2,3)が候補になるような3点があったとすると、はじめのマスは1に確定する。(でも、2とかを入れてみればすぐに矛盾とわかる、、、)これをやるには、行、列、ブロックのそれぞれで全部ループを回さして探索しないといけないから、実際にやってみないと速いかどうかはわからない。というか、遅いかも?

fedora16

fedora16が出てたので、使っている3台の端末でpreupgrade。
特に問題は起こらず終了。preupgradeは、なるべく早めにやった方がよいという感じになんとなく思っている。

rpmconf -a して設定ファイルを書きかえるときに、ユーザーUIDが1000番からになっている部分があるので、そこは書き換えてしまわないようにちょっと気をつけるくらい。

見た目はあまり変わらない。grubがgrub2になったのと、kernelが2.6.xから3.xに変わったくらい。内部的にはいろいろかわってるっぽい。起動はともかくシャットダウンが速い気がする。