Monthly Archives: 7月 2009

成人年齢を引き下げることが悪いんじゃない

“ しかしそうした頼りなさや消費者被害の心配は、20代前半の若い大人たちにもつきまとっているのではないか。つまり法制審部会が要請した「若者の社会的、精神的な自立を手助けする公的な仕組み」「若者を悪質商法の被害から守る策」は成年年齢問題と離れても、政府が取り組むべき課題と言えよう。”

NIKKEI NET(日経ネット):社説・春秋−日本経済新聞の社説、1面コラムの春秋
法制審議会の「成人は 18 歳からが適当」という報告を受けての社説です。最終報告はこちら。

“法制審議会民法成年年齢部会第15回会議(平成21年7月29日開催) 議事概要”

法制審議会民法成年年齢部会第15回会議(平成21年7月29日開催) 議事概要 (ホームページ掲載用)
で、昔から思ってるんだけど、社会って契約でできてると思うんです。売買契約もそうだし、雇用契約とか、あと何だろう、賃貸契約とか。広義で言うと、憲法に定められた三大義務を守ることで、国が色々守ってくれるってのも契約だと思います。
三大義務の内容を忘れたのでちょっと引用。

“ 1.子女に普通教育を受けさせる義務(憲法26条)  
2.勤労の義務(憲法27条)  
3.納税の義務(憲法30条)”

日本国憲法の「国民の3大義務」を改めて確認!:活動報告・実績:愛媛県議会議員よこやま博幸-民主党
別に民主党支持って訳じゃないけど Google で上の方に出てきたので。こっちの方がいいかな。

“第3章 国民の権利及び義務”

日本国憲法
っつーわけで、社会は契約で成り立っていると思うんですよ。でも、義務教育を通じて契約とはなんぞやって勉強はなかったと思います。教えてもいないのに従えって理不尽ですよね。
法律で守るとか支援団体を作るとかあるのかな。でも、ちゃんと教えればいいだけだと思います。教育をちゃんとしましょう。そうしないから、痛い目にあって覚える感じになっちゃう。

やっぱF1は金がかかるっぽい

“BMW、F1撤退を発表 業績悪化で戦略転換”

NIKKEI NET(日経ネット):主要ニュース−各分野の重要ニュースを掲載
またまた残念なニュースです。BMW までも F1 から撤退。他のモータースポーツは続けるらしいけど、最高峰の参戦者が減るのは寂しいですね。
にしても、F1 はやめるけど他のモータースポーツは継続なんですね。やっぱ F1 は金がかかるのか・・・。給料が高いの?開発費が高いの?参加するために主催者に対して多額の参加費が必要とか?
最高峰だけ止めざるを得ないってことは、他のモータースポーツよりも割高な参加費を取ってるのかなってことかな、って勘ぐっちゃう。世界不況なんだから F1 主催者も考慮しないと、F1 自体も続かないかもしれないですね。

Linuxならファイル単位でデフラグ

“For better results, you should call Shake on the whole partition, when you”

Vleu.net: ShAkE
Linux には shake というデフラグツールがあります。Linux のファイルシステムは Windows のファイルシステムに比べてフラグメンテーションされにくいなんて噂もありますが、フラグメンテーションは実際に発生します。
で、この shake ってコマンドでファイルごと、ディレクトリごとにデフラグをかけられます。一般ユーザで実行すると

FIBMAP failed: Operation not permitted

って言われて処理できません。root ユーザで実行しましょう。
何やってるか詳しく見たかったら -v オプション付けましょう。色々と情報を出してくれます。他にも色々とオプションがあるようで、ファイルのサイズや年齢で対象ファイルを切り分けられるようです。
で、気になったのが最初に引用してきた一文。「いい結果を出したかったら、使ってないときに、ファイルシステム全体を Shake しろよ」って話。これは、単にファイルのロックがかかってない時に実行するべきって話なのか、ファイルを開いていたら整合性がつかなくなるのか、疑問に思いました。
ってことで、とりあえずデフラグの前後で inode が変わってないか検証。

ls -1i /dir | md5sum
shake -v /dir
ls -1i /dir | md5sum

って感じで。何も変わらないねー。
DB の稼働中に shake してみた方がいいかな。今度 XFS のデフラグツール xfs_fsr と合わせて試してみよう。

紀伊國屋で有意義な時間を過ごしてきた

あなたの街の紀伊國屋書店-新宿本店-
紀伊國屋に行ってきた。本当はヨドバシで情報処理技術者試験の本を買おうと思っていたんだけど、ちょっと服を見にいこうかと思ったら、紀伊國屋に吸い込まれてしまった。二時間ぐらい立ち読みしてたかも。
で、衝動買いしたのはこちら。
森北出版|Rによるデータサイエンス
情報処理の本を探して 4F の学術系なフロアに行くと、試験対策的な領域はなく、学門ばかり。まぁいっか、って思って、とりあえず統計学のコーナーへ行くと、Rを使った統計学の本がたくさん出ていてビックリ。マニアックな言語かと思っていたけど、けっこう広まっているのかも。
ちなみに R ってのはデータ操作、計算、グラフィック表示のための統合ソフトです。商用の S って言語のコミュニティ版みたいなもんらしいです。物理化学系の実験データ解析にも使えそうな感じですね。日本語の情報が欲しかったら、こちら。
RjpWiki – RjpWiki
で、その後にエレベータに乗ってみると、エレベーターガールが!!何年ぶりに見ただろうか・・・。自分で操作できないのがじれったいですが、ちょっとホッとしますね。
そして、やっとたどり着いた試験対策の階。じゃなくてコンピュータとかの階。エレベータを降りたら経営とか独立とかのコーナー。やっぱ IT やってる人は独立指向な人が多いのかなぁ、と一冊手に取ってみると、「職人気質じゃ経営できないぜ」みたいなことが書いてあってグサッときました。でも、まー、そうだよなって納得。伸びる経営者は経営者とマネージャと職人の三重人格なんだとか。本の名前はたぶん、これ。
Amazon.co.jp: 起業家精神に火をつけろ!―会社のために働くのではなく、あなたのために働いてくれる会社をつくる7つのルール: マイケル E.ガーバー; 原田 喜浩, 原田 喜浩: 本
ついでに横の「こんな会社はヤバい」的な本の目次を流し読み。○×つけるのは楽しいけど、本質は読まなきゃわかんねーな、って思いつつ読みませんでした。
やっと情報処理技術者試験のコーナーへやってきました。システムアーキテクトを受けようと思っていたので、それに関する参考書を流し読み。ついでに隣の IT サービスマネージャってのも流し読み。なんだか、システムアーキテクトよりも IT サービスマネージャの方が合ってる気がしてきました。うーん、でも、どっちも現状からすると違う気もする。やっぱ一段下げて応用情報技術者試験でも受けようか。
って色々考えていたら答が出なかったので保留にしてきました。
ちゅーわけで、当面は R と Python のチュートリアルを進めていきます。レンタルサーバのメンテはいつになるんだろう・・・。

Pythonコードの最適化は役に立たない

“.pyc ファイルや .pyo ファイルから読み出されたとしても、プログラムは何ら高速に動作するわけではありません。.pyc ファイルや .pyo ファイルで高速化されるのは、読み込まれるときの速度だけです。 “

6. モジュール
Python のチュートリアルやってます。
Python は PHP なんかと同じように実行時にソースをバイトコードにコンパイルして実行しています。なので誰もが思うのが、バイトコードをそのまま実行すればいいんじゃん、ってことです。PHP だと別途モジュールを入れる必要があると思いますが、Python は標準機能なんですね。
でも最適化は期待しない方がいいみたいです。最適化オプション -O を使っても assert 文とかを除去しているだけ。本番利用の際は .pyo を使うって感じなのかな?

PostgreSQLの声を聞け

“LISTEN — 通知を監視する”

LISTEN
標準 SQL ではないですが、PostgreSQL では LISTEN/NOTIFY という SQL コマンドがあります。とある接続から LISTEN name しておくと、他の接続で NOTIFY name したときに知らせてくれます。
実際、psql コマンドからやったら上手くいきました。こりゃ使えそうだ。
でも、よく読むと、

“クライアントアプリケーションが通知イベントを検出する方法は、使用しているPostgreSQLアプリケーションプログラミングインタフェースに依存します。”

LISTEN
だそうです。PHP から pg_query() とかで試してみたら、待ってくれませんでした。他にやりかたあるのかなぁ。
ちなみに Python では専用のハンドラがあるようです。
pgnofity
PHP だと exec() とかしかないのかな。

おバカって素敵

“「効率や生産性だけを重視した遊び心のかけらもないアプリ開発からは卒業だ! 今日は僕らの独立記念日だ!」”

D89クリップ(10)3回目はあるのか? おばかアプリ選手権レポート(6/6) – @IT
おバカっていいですねぇ。幸せになれる気がする。
業務系アプリもバカを取り入れて行った方がいいんじゃないかな。仕事をするのが楽しくなりそう。人のやる気が上がれば効率も上がるはず。データの整合性とか、なくてはならないものをきちんと実装していれば、インタフェースは遊び心を持たせた方がいいって思うんです。
キーボードをギターに置き換えるのは考え物ですが・・・。

CentOS 5.3でepelを使う

“epel-release – Extra Packages for Enterprise Linux repository configuration”

RepoView:
CentOS 5.3 に epel を入れてみた。CentOS のリポジトリだけじゃ満足できなかったので・・・。
リンク先に RPM へのリンクがあるので、直接インストール。

# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm

ってな感じ。こんな感じのファイルが入ります。

# rpm -q --filesbypkg epel-release
epel-release              /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
epel-release              /etc/yum.repos.d/epel-testing.repo
epel-release              /etc/yum.repos.d/epel.repo
epel-release              /usr/share/doc/epel-release-5
epel-release              /usr/share/doc/epel-release-5/GPL

普段使いたくなければ *.repo ファイルの enabled を 0 にすればオッケー。一時的に使うなら yum のオプションで –enablerepo=epel って感じ。面倒だからエイリアスを設定してる人も知ってます。

議員特権と役員特権

“今年は不況をかんがみ、夏季の期末手当(国会議員のボーナス)の20%、約60万円がカットされた。すでに議員年金は廃止され、これまで議員特権で保障されてきた特典の廃止・削減も進められてきてはいる。それでも一昨年の国会議員一人当たりの歳費は、最低でも約2190万円。さらに、文書通信交通滞在費が年間1200万円、公設秘書の人件費が年間約2600万円、立法事務費、海外視察費のほか、JR無料パス、私鉄等の無料パスなどの支給も加わる。これは高いか安いか。庶民の感覚ではつい高いと思ってしまうが、さてさて…。”

JRの無料パスどころじゃない「議員特権」の解体新書 | R25
なんか、国会議員が優遇され過ぎているんじゃないかって、そんな話が出るのは R25 だけじゃないはず。庶民的には、自分が損してる気にもなりますよね。
でも、ちょっと待って。高すぎるんじゃないと思う。僕等が投票するときに、その優遇でも許せる人に一票を入れればいいんだと思います。選んでおいて、後から金使いすぎって言うのも変な話。国会議員一人雇うのにどれだけのコストがかかっているのかって視点は国民として大事だと思います。
そして、こんな考え方は株式会社にも当てはまると思います。株式会社は一株ごとに権利を割り当てた制度、民主主義国家は国民の各人に権利を割り当てた制度。自分の権利を守るためには、運営の主体を厳しく評価することが大事ですね。

Xenなんかの仮想ディスクをどう読むか

“■ mountコマンドのオフセット指定でマウントする”

HDDイメージファイルをマウントして使う方法 – adsaria mood
最近、仮想化が流行ってますが、仮想ホストで使用する仮想ディスクを仮想の外から見たいときはどうしていますか?自分は仮想ディスクを仮想ホスト内で一つのパーティションにしてしまうのが一番いいと思っています。でも、それが許されるのは特殊な構築方法の場合だけで、普通のインストール手順に従っている場合はそうもいかないと思います。
まぁ、特種なっても、Gentoo を適当なパーティションに入れて、そのまま外部のカーネルから起動する場合なんですけど。普通のって言ってるのは CentOS なんかを CD イメージからインストールする場合を言ってます。
で、普通に仮想ホストをセットアップした場合、仮想ディスクのファイルがパーティションに分けられてしまって、それぞれのパーティションを仮想ホストの外からは読めないんじゃないか、ってことがあると思います。というか、ありました。そんな時に、どう読み出すかってのがリンク先の話です。
簡単に言うと、物理ディスクの場合にパーティションのメタデータを格納している部分を飛ばして扱えばいいんじゃん、ってのに感動しました。mount オプションの offset=31744 ってのがそれ。そんだけ読み飛ばせばパーティションが始まるから、そっから利用すればいいんですよ。
はて、それだとディスクのオフセットを暗記するような変な文化ができそうですが、そんな必要はありません。fdisk コマンドの -u オプションでどれだけ読み飛ばせばいいかが読み出せるんですね。

“-u パーティションテーブルをリストするときに、サイズをシリンダ単位ではなく セクタ単位で表示する。”

Manpage of FDISK
てな感じで、fdisk -l -u <仮想ディスクのファイル> とかするとセクタ単位での切れ目を表示してくれます。物理ディスクでも fdisk -l -u /dev/?d? とかすると表示されるので楽しいです。
後はそんだけ飛ばせばいいんだけど、そのまま指定できないのが辛いところ。mount の offset オプションはバイト単位なんですよね。てなわけで *512。

mount -o loop,offset=$(( ${START_BYTE} * 512 )) /path/to/image/file /path/to/mount/point

てな感じ。
これで完璧、と思いきや、そうは行かないのがシステムの楽しい所です。パーティションの中で LVM を使っていたらどうなんだよ、って場合は別の方法を使う必要があります。それは最初のリンク先の kpartx ってのを使っているとこ。kpartx を使えば、仮想ディスクに含まれる各パーティションを普通のブロックデバイスとして利用できるようになります。
まぁ、仮想システム内の LVM だけじゃなく、バイトの計算とか面倒だから上手いことやってよ、って人には kpartx コマンドがお薦めですね。つーか、kpartx の方がオペミスも起きにくいので安全だと思います。
逆に Gentoo では kpartx のパッケージが見当たらないので、そういう人は仮想ディスク内で LVM を使わないことをお薦めします。他のパッケージを使えばイケるのかな?私は知りません。
でも、イメージ的には仮想システム内で LVM の処理が走るよりは、走らない方が軽くなると思います。そんな変わらないだろうけど。でも、そんな小さな努力の積み重ねが効率的なシステムを実現すると信じています。