@kyanny's blog

My life. Opinions are my own.

RubyKaigi 2017 に参加した

広島は初めてだったけど、素晴らしかった。良いものいろいろあったけど、原爆ドーム・厳島神社の大鳥居・路面電車が良かった。特に原爆ドームは次元が違った。来年も広島ですと言われたとしても喜んで行くと思うし、普通に旅行でも行きたい。

RubyKaigi は Ruby コミュニティ(Rails コミュニティ、とは少し違う)の関心がどこに向いているのかなんとなくわかるので定点観測に良いし、仕事とあんまり関係ない話も多いので、かえって仕事を忘れてただ参加できるのも良い。

ご無沙汰な人たちとも会えて、いつもどおりの同窓会みたいな感じもあった。 RubyKaigi で一年ぶりに会う、という間柄の人もいたり。

気になったキーワードなど:

  • アジャイル時代のオブジェクト脳の作り方
  • RubyでつくるRuby
  • インクルーシブデザイン
  • 点字ディスプレイ
  • Quoram
  • ExecutorService

見た中ではこのスライドが一番良かった。

来年は仙台で日本三景を制覇するそうだ。松島は数年前に旅行で見たことがあり、天橋立も学生時代京都で暮らしてた頃に見たことがあるので、広島ではなんとしても宮島を見ておきたかった。

スケジュールの都合でほんの少ししか滞在できなかったけど、「ゆく年くる年」で何度も見て憧れていた厳島神社の大鳥居を間近で見られて良かった。

一足先に日本三景は制覇したけど、仙台にも行くつもりだし、今年参加して「また何か発表してみたいな」という気持ちが湧いてきたので、 CFP にも出せるように考えながら暮らしていきたい。

RubyKaigi 2017 に参加します

rubykaigi.org

人生初の広島。修学旅行は広島を飛ばして長崎だった。

去年の RubyKaigi はオフィシャルパーティー以外の催し物に全く参加しなかった。京都は学生時代に四年暮らしていたので個人的に思い出深いスポットが多く、土地勘もあったため、一人行動に抵抗が無かった(むしろ一人のほうが好都合だった)。また、ちょうど「君の名は。」が上映中だったのでうっかり初日の夜に観たらハマってしまい、毎晩映画館へ行った。一年経っても奥さんから「京都まで行って交流もせずアニメの映画なんか観て、うまいものも食べずコンビニ飯で済ませて、一体何をやっているのか」と叱られる。今年は反省を活かしてもう少し活動的に過ごしたい。

スケジュール

  • 9/17(日)午後に広島入り。厳島神社か原爆ドームを見に行く。
  • 9/18(月)Kaigi に参加。夜は RubyKaigi 2017 Official Party に参加する。
  • 9/19(火)Kaigi に参加。夜は freee DRINK UP at RubyKaigi 2017 に参加申し込みしてみた。前に書いたブログに興味深いブコメをくれた人が freee の人らしいのでもしいたら会ってみたいのと、 QA の話をする勉強会でも freee の人の話が良かったのとで freee の中の人に興味があるので。あと、いま関わってるサービスの競合サービス*1を作ってる人が参加予定らしく、それもやや興味があるので。
  • 9/20(水)Kaigi に参加。夜は After Party に現れる予定。
  • 9/21(木)昼に広島発。当日の夜に東京で用事があり、また翌金曜日の午後にも埼玉で絶対に外せない用事があるので、残念ながら週末まで滞在して観光することができない。

*1:俺を含めて開発者は特に競合という意識はないが、親会社の営業の人たちは競合とみなしているようだ

ディスク使用量に余裕があるのに No space left on device エラーが出るときは inode 枯渇を疑え

df -i で inode 使用率がみえる。

-[3940]% docker run bash df -i
Filesystem              Inodes      Used Available Use% Mounted on
none                   1218224    523382    694842  43% /
tmpfs                   255879        16    255863   0% /dev
tmpfs                   255879        15    255864   0% /sys/fs/cgroup
/dev/vda1              1218224    523382    694842  43% /etc/resolv.conf
/dev/vda1              1218224    523382    694842  43% /etc/hostname
/dev/vda1              1218224    523382    694842  43% /etc/hosts
shm                     255879         1    255878   0% /dev/shm
tmpfs                   255879        16    255863   0% /proc/kcore
tmpfs                   255879        16    255863   0% /proc/timer_list
tmpfs                   255879        16    255863   0% /proc/sched_debug
tmpfs                   255879         1    255878   0% /sys/firmware

MongoDB とドットを含むキーと Embedded Document

途中で調べるのが面倒くさくなったので中途半端だけど、調べた範囲でメモしておく。

  • MongoDB ではドキュメントのキーにドットを含むことはできない
    • Embedded Document 内のキーにアクセスするとき、階層の区切りとしてドットを使うので、ドキュメントのキー自体にドットを含めてしまうと、そういうキーなのか embedded document へのアクセスなのか判別できないため
  • mongo-ruby-driver v2.4.3 だと insert 時にエラーになる
  • しかし mongo-ruby-driver v1.12.5 だと insert 時はエラーにならない
  • しかし insert できたドキュメントを update するときはエラーになる
    • クライアント側ではなくサーバ側にコマンドを送った結果がエラーなのでサーバ側でエラーになっていそう
    • ではなぜ insert は通って update は通らないのか?が謎
  • おそらく v1.12.5 の振る舞いのほうがおかしい
  • v.1.12.5 だとうっかりドットをキーに含むドキュメントを作れてしまうが、本来おかしいデータなので作らないほうがよい

GitHub - kyanny/mongo-dotted-key: My study about MongoDB and dotted key name

ちなみに mongo shell から試した場合も、キーにドットを含むのは NG となる

-[3880]% mongo
MongoDB shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.2.11
WARNING: shell and server versions do not match
> db.books.insert({"meta":{"ok.google":"hey.siri"}})
2017-09-12T02:33:37.425+0900 E QUERY    [thread1] Error: can't have . in field names [ok.google] :
DBCollection.prototype._validateForStorage@src/mongo/shell/collection.js:244:1
DBCollection.prototype._validateForStorage@src/mongo/shell/collection.js:252:13
Bulk/this.insert@src/mongo/shell/bulk_api.js:663:17
DBCollection.prototype.insert@src/mongo/shell/collection.js:349:13
@(shell):1:1