グーグルとウィキペディアとYouTubeに未来はあるのか? - Andrew Keen

本書で言いたいことはただ一言「アンチWeb2.0」とでも言うような、強硬なアンチWeb2.0論を書いた一冊です。どちらかといえばあまり深く考えもせずに、Web2.0礼賛に行きがちな最近の傾向化らすると、とても興味深い本で、実際この本の内容は、Webに関わっていく人なら避けられないような部分がテーマとなっています。


グーグルとウィキペディアとYouTubeに未来はあるのか?―Web2.0によって世界を狂わすシリコンバレーのユートピアンたち
グーグルとウィキペディアとYouTubeに未来はあるのか?―Web2.0によって世界を狂わすシリコンバレーのユートピアンたち
アンドリュー キーン (著)
Andrew Keen (原著)
田中 じゅん (翻訳)
¥ 1,995


Web2.0で「信用」は成り立つのか?

この手のアンチ論の例に漏れず、この本でもかなり強固なアンチ論が展開されています。そのため、若干その時点で共感しづらい感が出ているのですが、本書で言っているのは、今後このWebが解決しなければならない問題点ばかりです。

いくつか論点があるのですが、その一つが「信用」の問題。ウィキペディアの場合では、編集者は、大学教授でも単なる学生でも同じ「個人」として扱っていますが、当然その知識の量と正確性が同じはずはありません。それを同列に扱って、本当に良い物ができるのか?というのが本書の問いかけです。他にも、匿名の問題、コピーの問題など、日本でもよく問題視されている部分ばかりです。

もちろん一技術者として、反論したい部分は多々あるのですが、実際にこの著者と同じように感じている人は多々いると思います。今まではどちらかといえば避けがちだったこの手の議論ですが、そろそろ避けてばかりもいられなそうだな、という感じの感想をもつ本書です。

SELinuxでのapacheのパーミッション

SELinux上でapacheを動かしたときにファイルのパーミッションでハマったのでメモ。

apacheでPermission deniedが出たので、よくあるいつものパーミッションの設定のミスだろうと思って、パーミッションの変更。

$ sudo chmod 644 index.html

しかし、全然解決せず。

なんでだー、と思っていろいろ調べたところ、どうもSELinuxパーミッションの設定ミスっぽい。設定前のパーミッションはこんな感じ。

$ ls -lZ
-rw-r--r--  root root user_u:object_r:user_home_t      index.html

ファイルをホームディレクトリで作って、それを移動したため、そのときのパーミッションが残ってしまっていたようです。このパーミッションの変更。

$ sudo /sbin/restorecon index.html
$ ls -lZ
-rw-r--r--  root root system_u:object_r:httpd_sys_content_t index.html

これで無事アクセスできるようになりました。

SELinuxパーミッションはどうも作ったディレクトリによって設定されるらしいです。結構盲点でした。

IIR輪講 第18回

IIR輪講の18回目です。ラスト3章は読み物なので一気にやろう−、ということなので、残り3回になります。本日は階層的クラスタリングのお話。前回はフラットなクラスタリングで、そのクラスタ間には特に関連性は無かったのですが、今回はクラスタ間に上下関係を入れてクラスタを作成するクラスタ構成法になります。


Introduction to Information Retrieval
Introduction to Information Retrieval
Christopher D. Manning (著)
Prabhakar Raghavan (著)
Hinrich Schutze (著)
¥ 7,198 (税込)


階層的クラスタリングとは、たとえば「社会 > 政治 > 選挙」のようなクラスタ間に上下関係(包含関係)があるようなクラスタを生成するためのクラスタリング手法です。大まかに言って全体をクラスタリングして、その各クラスタをさらに再帰的にクラスタリングしていくトップダウンな方法と、逆に似た要素を集めてクラスタを作り、さらにそのできあがったクラスタ同士で似たものをさらにクラスタリングしていくボトムアップな方法があります。

実際には計算量的な問題で、ボトムアップな方法が用いられることが大半のようです。この章でも個のボトムアップな方法の説明が大部分となります。

ボトムアップな階層的クラスタリングを用いる上で、最も考えなくてはならないのは、クラスタ同士の類似度をどうやって計算するかです。この章ではsingle-link、complete-link、centroid、group-averageの4種類の方法が紹介されています。

single-linkとはクラスタ内の一番近い点同士の類似度をクラスタ間の類似度とする方法です。complete-linkは逆にクラスタ内の一番遠い点同士の類似度をクラスタ間の類似度とする方法になります。centroidは2つのクラスタの全点同士の類似度の平均を取ったもので、今ある2つのクラスタの類似度の平均を取る方法です。group-averageはcentroid法に加えて、さらにクラスタ内の点の類似度も加えて平均を取ることによって、2つのクラスタをマージした後の類似度を用いる方法となります。

それぞれ一長一短があるようなので、状況によってうまく使い分ける必要がありそうです。

最後は階層的クラスタリングとは少し離れて、クラスタのラベリングの話。結局クラスタ内の特徴語を取ってきましょうというようなお話で、これはという手法があるわけではないようなので少し残念です。

次回はMatrix decompositions and latent semantic indexingです。よく知らない話なので、しっかり予習せねば。

Xenで仮想環境を構築

新年ですが、普通に技術の話題です。

Xen徹底入門」を参考にXenの構築を行ってみました。ちょっと調べたら、この本に書いてないようなツールもあるようなので、それを確認しながらの作業です。

この本は個人でXenを使って開発をするときに使うような、お手軽な構成から、複数マシンを使って構築するような大きな構成まで、幅広く言及されてます。VNETやマイグレーションの話題までしっかりと載っているので、会社でXenを使おうと思っているような人も、手元に置いておくと便利かもしれません。

Xen徹底入門
Xen徹底入門
平 初 (著)
長谷川 猛 (著)
宮本 久仁男 (著)
大島 孝子 (著)
¥ 3,444 (税込)


CentOSによるDomain-0の構築

今回作るのはCentOSの準仮想化環境になります。まずはXenのDomain-0の構築です。

基本的には普通にCentOSをCDなりDVDなりを使ってインストールするのと同じです。ただ、インストールするソフトウェアの部分で、「仮想化」という項目があるので、その部分にチェックを入れてインストールするだけです。この部分は特別難しいことはありません。

それ以外の部分は基本的にどんな構成でも良いのですが、Xenのベースとなる部分ですので、なるべく無駄なものを入れずに構築した方が、重さ的にもセキュリティ的にもいいと思います。僕は最小構成+仮想化でインストール。GUIとかはなーし、という感じです。

あとは普通にCentOS用の設定をするだけです。別にXen用の特殊な設定とかはまだ必要なし。僕の場合、以下の設定をしてます。
まずは、ルートだけだといろいろ面倒なので、作業用のユーザの作成。

# adduser user
# passwd user
# visudo
user  ALL=(ALL)  ALL

ネットワーク関連の設定。

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.***.***
NETMASK=255.255.255.0
BROADCAST=192.168.***.255
GATEWAY=192.168.***.1
HWADDR=**:**:**:**:**:**
IPV6INIT=yes
IPV6_AUTOCONF=yes
ONBOOT=yes
PEERDNS=no
DHCP_HOSTNAME=******
$ sudo vi /etc/resolv.conf
search
nameserver 192.168.***.*
$ sudo /etc/init.d/network restart

sshの設定。

$ sudo vi /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
UsePAM no

最後にyumのアップデート。

$ sudo yum update

本来なら、この後必要のないサービスを消したりする必要があるのですが、開発環境なので、とりあえずこんな感じで。

Domain-U (ファイル)

まずはストレージとしてファイルを使っての、Domain-Uの作り方です。本には書いてなかった野ですが、virt-installというツールを使うと、とてもお手軽に作れます。

$ sudo /user/sbin/virt-install -nographics -n xen-file-test
Would you like a fully virtualized guest (yes or no)? no
How mach RAM should be allocated (in megabytes)? 256
What would you like to use as the disk (file path)? /home/xen/test/imgfile
How large would you like the disk (/home/xen/test/imgfile) to be (in gigabytes)? 2
Would you like to enable graphics support? (yes or no) no
What is the install location? ftp://ftp2.riken.jp/Linux/centos/5/os/i386

使用するRAMのサイズは最低で256Mになっています。これは後述しますが、後で直接設定をいじることでもっと少ない値にも変更可能です。

ストレージとして使うファイルは前もってddなどで作っておけば、そのパスを指定すれば自動的にそのファイルを使ってくれます。パスにファイルが存在しないときは作成するファイルサイズを聞かれるので、サイズを指定すればその大きさのファイルを作ってくれます。

install locationはネットワークインストールに使うソースフォルダのパスです。www.centos.org - centos.org contentから選んできます。

あとは、CUIのインストール画面が出てくるので、普通にインストールすればOKです。CUIの画面が若干見にくく、チェックしたところと違うところにチェックがついてるー、なんてことによくなりますが、地道に設定してください。

ネットワークインストールなので若干時間がかかりますが、後は待ってればOK。

Domain-U (パーティション)

ストレージとしてパーティションを使う場合も非常に簡単です。まずはDomain-Uで使うパーティションを作成しておきます。

$ sudo /sbin/fdisk /dev/sda
コマンド (m でヘルプ): n
コマンドアクション: e
Selected partition 4
最初 シリンダ (1384-19452, default 1384): Using default value 1384
終点 シリンダ または +サイズ または +サイズM または +サイズK (1384-19452, default 19452): Using default value 19452
コマンド (m でヘルプ): n
最初 シリンダ (1384-19452, default 1384): Using default value 1384
終点 シリンダ または +サイズ または +サイズM または +サイズK (1384-19452, default 19452): +10240M
コマンド (m でヘルプ): w

今回は拡張パーティション(sda4)と論理パーティション(sda5)を切ってます。論理パーティション(sda5)上にインストールします。

$ sudo /usr/sbin/virt-install -nographics -n xen-part-test
Would you like a fully virtualized guest (yes or no)? no
How mach RAM should be allocated (in megabytes)? 256
What would you like to use as the disk (file path)? /dev/sda5
Would you like to enable graphics support? (yes or no) no
What is the install location? ftp://ftp2.riken.jp/Linux/centos/5/os/i386

パーティションの場合は、そのままパーティションのパスを指定すればOKです。それ以外はファイルの場合と同じ。

パーティションの場合も設定をして、しばらくまてばできあがります。簡単です。

作成後に設定を変更

virt-installによるデフォルトのインストールだと、最小RAMが256Mだったり、ネットワークはブリッジ接続になっていたりします。この設定だと困る、という場合は、作成後にも設定の変更を行うことができます。

設定は、/etc/xen/ドメイン名にあります。この設定ファイルを直接編集してドメインの再起度をすればOK。

$ sudo vi /etc/xen/xen-part-test
$ sudo /usr/sbin/xm shutdown xen-part-test
$ sudo /usr/sbin/xm create xen-part-test

Domain-Uを自動起動

再度にDomain-UをDomain-0起動時に同時に自動起動する方法です。

$ sudo ln -s /etc/xen/xen-part-test /etc/xen/auto/

/etc/xen/auto/以下に設定ファイルへのリンクを貼っておけば、自動的に起動してくれます。

Hacking Vim - Kim Schulz

最近emacs党からvi党に宗旨替えしつつあるのですが、viの本は見たことがあるのですが、viの本だと、どうしてもコマンドの説明ばっかになってしまっていて、設定系の話がほとんどないので、どっかにいい本がないかなーと思って見つけたのがこの本です。名前の通り、vimエディターに関する使い方説明の本です。vimの設定をごりごり書いて、カスタマイズしたいと思っている人には良い本ではないかと思います。


Hacking Vim: A Cookbook to Get the Most Out of the Latest Vim Editor
Hacking Vim: A Cookbook to Get the Most Out of the Latest Vim Editor
Kim Schulz (著)
¥ 5,436 (税込)


vimの設定を網羅

vimに特化した本なので、viの設定項目なんかは、結構ばっさりと切り落とされています。そういう部分はほかのviの本参照という感じですかね。ただ、その代わり、ほかの本ではあまり見ない感じのvimの設定項目が多数載っています。

:set cursorline
:set cursercolumn

でカーソルの形式の設定ができるあたりとかは初めてみました。

載っている設定も本当に多岐にわたり、

  • カラースキーマ
  • キー変更
  • テンプレート
  • ディクショナリ
  • キーボードマクロ

などの内容が網羅されてます。

Vim Scriptingがおすすめ

この本の一番の良いところは、結構な量をVim Scriptの説明に費やしてくれている部分です。emacsもそうですが、vimの人気の一番の理由はこのScriptのおかげです。確かにカスタマイズできる項目も多いのですが、設定の変更だけだと、結局人の決めたことをon、offするくらいしかできません。その点、Scriptが使えるというのは、自分のほしい機能をそのままエディターに組み込める、ということです。

そういう意味で、このScriptが使えるようになる、というのは非常にこの手のエディターを使っていく上では大事なことで、その部分についてもきっちり説明してくれている本書は非常に好感が持てます。

1981忘年会#2に参加

今年も1981忘年会に行ってきました。相変わらず人が多いー。

こういう同年代がたくさん集まる会というのも、学生時代はあったのですが、社会人になってからは全然なかったので、自分と同じくらいの年の人が、どういうことをやっていて、これからどういうことをしようと考えているのか、聞くことができてとても楽しい会でした。

比較的ゆるーいつながりの会ですが、今後もゆるゆるとこういうことをやっていけるといいですね(人任せですいません)。