Yokohama.rb Monthly Meetup #74 に参加した

2016-11-12(土)の Yokohama.rb Monthly Meetup #74 に参加しました。

yokohamarb.doorkeeper.jp

  • 前半は Ruby レシピブック読書会
  • 後半は LT

という 7 月以来の流れでした。

レシピブック

今回はいつもより 30 分短かったこともあって、レシピ 238, 239 だけ読みました。

レシピ 238

のふたつを使って、プログラムの処理途中に実行ユーザの権限やグループ権限を切り替えたりする方法についてのレシピです。Docker や Foreman のグループを処理途中で使いたいときなどに便利ではという話でした。

スーパーユーザから一般ユーザへとプロセス実行権限を一時的に切り替えるために、実効 UID というものを Process#euid= を使って書き換えています。一方で、実 UIDというまた別の ID もあるようで、それらの違いがよくわからなかったので、質問してみました。その場で調査した結果(Wikipedia のユーザ識別子)、次の違いがあるとわかりました。

  • 実効 UID, 実効 GID(グループ ID)
    • ファイルの作成やアクセスに影響する ID
    • たとえばあるファイルを開く権限があるかチェックするときに使う
  • 実 UID, 実 GID
    • シグナル送信に影響する ID
    • たとえば kill でプロセス終了できる権限があるかチェックするときに使う

もはや Ruby とはあまり関係ないですが、勉強になりました。

レシピ 239

Windows レジストリにアクセスするためのライブラリ win32/registry についてのレシピです。メモ帳 (notepad.exe) 終了時のウィンドウ位置取得を例にした、レジストリの操作方法についてでした。

Windows ユーザが会場にいないので、完全に読むだけになるかと思いきや、@igrep さんがあらかじめ準備してあった自宅の Windows 環境にリモート接続しレシピを実演してくれました。ありがとうございます!

LT

LT 一本目は、@hamakn さんからリクエストがあったこともあり、僕が先月受けていたGMO ペパボの第二新卒向け研修についてかんたんにご紹介しました。

LT 二本目は、@hamakn さんから Rails の accepts_nested_attributes_forlimit オプションでハマった話や、DB 設計の悩みについてなどでした。DB 周りの知識大事という話に収束していきました。

懇親会

いつも使っている吉田飯店というお店の名前が「吉田飯店」に変わってました…

いかにエンジニアとして満足できる仕事をして成仏するか、みたいな人生観的な話と昨今のゲームの話が展開されていました。


次回 2016-12-10(土)の Yokohama.rb は以下リンクから申し込めます。読書会に参加するもよし、もくもくするもよし、他の方と技術トークするもよしで初心者から上級者までフィットするコミュニティだと思いますのでぜひぜひ。

yokohamarb.doorkeeper.jp