自分で言うなよ。¶
勉強会などで最近たまにお目にかかるので気になる言葉。
「私、学生です」
学生である事実が気になるのではなく、この言葉には「だから参加費を免除 or 減額にしてください」という意味が含まれている点について。質の悪いお子ちゃまだとこれも言っちゃう。一歩譲って、経済力の無い中高生が言うならまだしも、大学生や院生ですら言うのを見かけたことがある。恥の文化から恥知らずの文化、とか言うつもりはないが、はっきり言って格好悪い。見知った仲で冗談半分でいうなら兎に角、そんなこと自分でいうなよ。
勉強会の主催者や宴会の幹事が最初に明言している場合は良いのだが言わないこともある。社外でやっている勉強会では誰がどんなことを生業としているのか、あるいは学生なのか予め分からないことの方が多いし。だからと言って、大学生にもなってそんなことを自分からいうか、と。MLなどで「初心者です」という輩と何も変わらんではないか。
R25に良い記事があったので、社会人でなくてもぜひ一読してほしい、と思った今日この頃。
http://r25.jp/b/honshi/a/ranking_review_details/id/110000007787
新たな会議室を求めて。¶
今日、10/18に新しくオープンした 稲城市立iプラザ へ行ってみた。京王線若葉台駅北口駅前のロータリーの向かい。徒歩2分ということだが本当に目の前。今日はオープンということで結構賑わっていた。賑わっていたのは併設のサンクスもオープンで記念セールでおにぎりやサンドイッチが50円引き、スイーツ30円引き、玉子M玉10個98円などで賑わっていたのかもしれないが。でもまぁ施設の中、特に稲城市立中央図書館の分館の図書館と、喫茶コーナーは人気だった。
電波状況¶
GDDフォンを片手に無線LANの電波状況を探って見たところ、1Fのエントランスロビーを中心にHotSpotが使えた。認証は不要。ただし、1階だと喫茶コーナーから管理事務所のあたりまでで、iプラザ図書館内はほぼ電波が弱くて使えないと言ってよいだろう。2階だと、エントランスロビーが吹き抜けになっているため、階段を上がったプレイルームの前から小会議室の前までは使えるようだ。会議室内については後述。
飲食¶
館内は基本的には飲食禁止だが、喫茶コーナーでは可。併設のサンクスで買出しできる。
会議室¶
大会議室50人、中会議室30人、小会議室20人で2階に1部屋ずつ。大、中会議室は2分割できるようだ。大~小会議室を一つの大広間としても利用できるとのこと。今日は全て締め切っていたので中を見られなかった。というか、借りるときに解錠し、終わったら施錠するらしい。
飲食¶
会議室内は飲食可能だ。これは大きい。
電源¶
床にあるので問題ないとのこと。
無線LAN¶
上記のように廊下を歩いて見た感じでは使えないのでは?と危惧したのだが、どの会議室も無線LANを使えるようになっているらしい。使えなければ何のために無線LANを配備しているんだか訳分からんが、まぁ一度使って確認した方が良さそうだ。
その他設備¶
ホワイトボードは据え付けらしいが、プロジェクタ、スクリーンは共通備品らしい。ただ、これが有料なのか無料なのかが分からん。聞くの忘れた。ホールでは少なくとも有料で、スクリーン、プロジェクタは一コマ単位になっている。ただ、ホールでの一コマは、2時間単位ではなく、3時間ないし4時間になっているので無料なのではないかと踏んでいる。後日聞いてみるか。
利用料金¶
稲城市民であれば、午後なら2時間単位で、小・中会議室は600円、大会議室でも1000円なのでかなり安い。というか設備も考えると今までで一番安いんじゃなかろうか。スクリーン、プロジェクタは無料なのかちゃんと確認しておくか。
予約方法¶
最初に一度利用者登録を現地でしていないとダメらしいので、今日早速個人で利用登録してきた。予約は市民、市内団体なら半年先からできる。
6ヶ月先の場合、抽選予約となる。
空きがあれば5ヶ月先から使用日前日までは市外個人、団体も含めて空き施設予約ができる。
とまぁ市民には結構有利だが 1 、注意が必要なのは支払いについて。支払いは予約できてから数日以内に支払いが必要なのだが、一度支払ってしまうと返金されない。なので使うか使わないか分からんけど取り合えず予約しておこう、というのはダメだ、ということ。
とは言え、Webサイトの利用申し込み上では×になっていても、それは支払い済み、ということではなく支払いが完了しなかったか、あるいは支払い済みで変更またはキャンセルした場合、再び予約可能になるかもしれない、ということらしい。
で、試しに予約状況を見てみたら、会議室も土日は結構埋まっている。例えば、仮にDebian勉強会の2010年1月をここでやるとしたら2010年1月16日だろうから、空き状況を確認してみたら、30人部屋の中会議室は午後3(17:30~19:30)、夜間(19:45~21:45)しか空いていない。半年先から予約できる、というのは料金も料金なのでかなり競争は激しそうだ。
宴会は向いてないかも。¶
飲み屋はあまりないが、 多少はチェーンのレストラン はある。駅改札向かい奥の牛角に行くのが良いだろうが、参加者が23区方面が多いなら調布に出た方が便利だろう。が、それなら最初から調布でやった方が良いよねぇ。ちなみに、
http://twitter.com/ar1/status/4939072851
@mkouhei 若葉台といえばはんだや
ということで 駅前のフレスポ若葉台に半田屋 という店があるらしいので、これは安い!と思い、今日見に行ったついでに飯食ってこようと思ったら、無かった。 すでに撤退していた ようだ。
でも場所が不便だね。¶
仮に午後3を使う場合だと16:50 新宿発、調布乗り換えで17:18若葉台着。川崎方面からくる場合なら、16:25川崎発、稲田堤乗り換えで同時刻着。立川だと16:33発で稲田堤乗り換え、同着。と、行きは一見良さそうではある。が、問題は帰りだろうな。仮に武蔵浦和から来ているとしたら終電は23:25発。西船橋から来ているとしたら、若葉台発の終電は23:35発。まぁこの辺は許容範囲かも知れないが、西船橋の隣の東西線原木中山駅が帰る先だと22:51発が終電。先日のCouchDB JPの勉強会の宴会でも話題になったのだが、やはり参加者は通常住んでいる場所がバラバラだと23区内でやらないと結構難しいだろうなぁ。
ワシは自宅から行きも帰りもマウンテンバイクで10分くらいでいけるから結構便利なんだけどね。坂道多いけど。(わら
- 1
そりゃ市民税払っているんだから当然だな。
ちょっと違う問題だった。¶
CouchDB 0.10がリリースされたので一部界隈で盛り上がっているのだが、以前Debianで0.8.0をパッケージで入れただけになっているので、最新のtrunkを取得してコンパイルしてみることにした。
CouchDBはSubversionで管理されているので、git-svnでローカルリポジトリを作成する。これもちろん常識だよね?
$ git svn clone https://svn.apache.org/repos/asf/couchdb/trunk couchdb
足りないパッケージがあったらインストールしておくべし。
$ sudo apt-get install automake autoconf libtool help2man build-essential erlang \
libicu-dev libmozjs-dev libcurl4-openssl-dev
コンパイルする。変なところにインストールしたくないので、/opt/couchdbとか掘ってそこにインストールすることにしよう。
$ cd couchdb
$ sudo mkdir /opt/couchdb
$ ./configure --prefix=/opt/couchdb
$ make
(snip)
/usr/bin/erlc couch.erl;
make[4]: *** [couch.beam] セグメンテーション違反です
make[4]: ディレクトリ `/home/kohei/devel/couchdb/src/couchdb' から出ます
make[3]: *** [all-recursive] エラー 1
make[3]: ディレクトリ `/home/kohei/devel/couchdb/src/couchdb' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/home/kohei/devel/couchdb/src' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/kohei/devel/couchdb' から出ます
make: *** [all] エラー 2
なんと。couch.erlをコンパイルするところでこけてしまう。その後時間なくてそのままだったのだが、昨日の宴会ではErlangのバージョンが低いのでは?という話になり、確認してみた。
$ dpkg -l erlang
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ 名前 バージョ 説明
+++-==============-==============-============================================
ii erlang 1:13.b.2.1-dfs Concurrent, real-time, distributed functiona
13RB2だね。CouchDBの要件はというと、
$ grep erlang README
* Erlang OTP (>=R12B5) (http://erlang.org/)
と、なっているので問題なさそうだ。
じゃあどうすっかなぁと思っていたのだが、別の問題だったのでぶったまげた。何気なく、erlを実行してみたら、
$ erl
セグメンテーション違反です
はい?!なんじゃこりゃ。
straceをかけてみたら分かった。
$ strace erl
(snip)
lstat("/sys", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/node", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/node/node0", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/node/node0/cpu0", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/sys/devices/system/node/node0/cpu0", "../../cpu/cpu0", 4095) = 14
lstat("/sys/devices/system/cpu", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/cpu/cpu0", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/cpu/cpu0/topology", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/cpu/cpu0/topology/core_id", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
open("/sys/devices/system/cpu/cpu0/topology/core_id", O_RDONLY) = 5
read(5, "0\n", 50) = 2
read(5, "", 48) = 0
close(5) = 0
lstat("/sys", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/node", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/node/node0", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/node/node0/cpu1", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/sys/devices/system/node/node0/cpu1", "../../cpu/cpu1", 4095) = 14
lstat("/sys/devices/system/cpu", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/cpu/cpu1", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat("/sys/devices/system/cpu/cpu1/topology", 0x7fffbefe8e90) = -1 ENOENT (No such file or directory)
getdents(4, /* 0 entries */, 4096) = 0
close(4) = 0
getdents(3, /* 0 entries */, 4096) = 0
close(3) = 0
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff5650ee000
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff5650cd000
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff5650ac000
brk(0xa6f000) = 0xa6f000
brk(0xa71000) = 0xa71000
brk(0xa81000) = 0xa81000
brk(0xa91000) = 0xa91000
mmap(NULL, 2101248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff563cc7000
brk(0xa93000) = 0xa93000
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff56506b000
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff56502a000
brk(0xa96000) = 0xa96000
brk(0xaa6000) = 0xaa6000
brk(0xab6000) = 0xab6000
brk(0xab8000) = 0xab8000
brk(0xac8000) = 0xac8000
brk(0xad8000) = 0xad8000
brk(0xada000) = 0xada000
brk(0xaea000) = 0xaea000
brk(0xafa000) = 0xafa000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
SIGSEGVの前に、
lstat("/sys/devices/system/cpu/cpu1/topology", 0x7fffbefe8e90) = -1 ENOENT (No such file or directory)
があるが、cpu0の場合と結果が違う。ワシのMacBookは、現在maxcpus=1をgrub2で指定して起動させている。指定しないと起動しないから問題に悩みつづけているからだが、おそらく原因はこれだなと思い、erlのsmpを無効にしてみた。
$ erl -smp disable
Erlang R13B02 (erts-5.7.3) [source] [64-bit] [rq:1] [async-threads:0] [kernel-poll:false]
Eshell V5.7.3 (abort with ^G)
1>
ああ、やっぱり起動した。だからBTSでも報告されていないんだろうなぁ。でもこれは面倒なので、grubのオプションを変更してみた。
diff --git a/default/grub b/default/grub
index ce041b5..28fe50e 100644
--- a/default/grub
+++ b/default/grub
@@ -4,7 +4,7 @@ GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
-GRUB_CMDLINE_LINUX="maxcpus=1"
+GRUB_CMDLINE_LINUX="nosmp"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
これだと、
$ erl
Erlang R13B02 (erts-5.7.3) [source] [64-bit] [rq:1] [async-threads:0] [kernel-poll:false]
Eshell V5.7.3 (abort with ^G)
1>
で -smp disable
オプションをつけなくても起動できる。
一応 BTSしておいた のだが、やり方がまずかったな。最初に送った subjectの指定を間違えたのまで登録されてる 。retitleかスレッド自体を消すか何か必要?
RelaxCafe@CouchDB.break2参加。¶
昨日のKVMのセミナーの後、id:shase_labさんと四ツ谷のケンタで時間潰し、というか悪あがきして終わっていなかった資料作りを。19時になり結局完成していなかったのだが、できている範囲でやることにすっか、ということでルノアール四ツ谷店へ。
前回のおさらい¶
id:yssk22さんが前回のおさらいを。前回は会社の合宿で参加できなかったのと、資料準備しているときに分からん部分がおさらいの中で理解できたところもあったので良かった。続きものの勉強会にはおさらいが必要ですな。
Design Documents¶
ワシが担当。 The Denitive Guide の 第5章 Design Documents 。単なる翻訳にしないつもりだったのだが、意外に資料のボリュームが増えてしまった。分からないところは参加された皆さんに指摘いただいたりしながら理解することができた。うーむ、コードを読む所から入って途中でPendingになったままになっているので、はよCouchDBを導入してみようかね。
おまけ¶
slideshareで公開するのが流行りなのかどうかは知らないが、他のヒトはslideshareで公開しているので、アップしてみたら日本語部分がまるごと表示されない。フォントを組み込めば良いのかもしれないが面倒なので、githubで公開することにした。資料は こちら 。修正済です。背景画像に入っているねこは、もちろん我が家のこまめ姫のリラックス姿。
お酒のはなし¶
id:z-ohnamiさんが お酒のはなし を。彼のお酒の話はやっぱり楽しいね。心が疲れたときしか例がなかったが結構お疲れですな。次回はやめておこうかと言っているようだが、ぜひやってほしい。と思ったら、次回はワシは参加できないのだった…。偶数回参加になりそうな予感。
Finding Your Data with Views¶
id:yssk22さんが 担当 。ワシが時間取り過ぎたせいで、結局ハンズオンはできないことに。大変申し訳ないです。内容的にはFutonを使ってのデモを見ながらMapReduceの話がメイン。実際に見ながらだと理解しやすいですな。
余談¶
MapReduceおもしろそうだなぁと今更思ったので、 Hadoop Conference Japan 2009 に参加してみることにした。
宴会¶
宴会は 焼酎DINING おかわり屋 四ツ谷店 にて。id:yssk22さんがPCをルノアールに忘れたとかハプニングも。会社のじゃなくて良かったですな。ごはんもお酒もおいしかったし、まぁ他では話せないようなオフレコ話もありので楽しかった。ちなみに帰宅は午前二時。駅から歩くのが嫌で、タクシー乗れるのを待つのに駅前コンビニで立ち読みしてから帰った。こまめが寂しかったらしく昨夜も今日もベッタリとくっついて離れなかった。かわいいなぁこまめ。