ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

私のロールモデル: エンジニア立ち居振舞い番外編

お題「エンジニア立ち居振舞い」

pepabo Advent Calendar 2016 24日目の記事です。

割と飲みの席とか、某ポエムサービスでは語ってはいるんですが、そういえばブログで書いたことがないような気がしたので父の話をします。

実は今年の福岡での新卒研修で同じような話を若者にしていて、でもまあ、あまりに個人の話なのでとスライドも公開していなかったのですが、せっかくなので内容を加えて書き下します。


僕の父は欄間職人をやっていて、6X歳を超えるいまも自営で東三河の片隅に店を持ってやっていってるわけだけど、僕は子どもの頃からそういう背中を見て育ってきたからか、今の自分を振り返ってみると随分自分の仕事ぶりが影響を受けているなと思ったりする。

今日は、6X歳のいまも職人の父を見ていて思ったこと、あるいは直接言われたことなどいくつかをしたためてみる。

続きを読む

AppArmorとDockerとその他コンテナ的プロセスについて調べた

ここ数日のAppArmorに関する調査をまとめておく。アドベントカレンダーの季節だけど、特に該当しそうなカレンダーがなかったのでただの記事を書きます...

突っ込みどころはあると思うので、修正指摘等お気軽に。

AppArmor とは

AppArmorはMAC(Mandatory Access Control - 強制アクセス制御)を実現するためのミドルウェアの一つ。同じようにMACを実現するものにはSELinuxなどがあるが、AppArmorはシステム全体というよりはプログラム単位で、ファイル別またはプロセスごとにセキュリティプロファイルを紐づけることができる。

そのプロファイルでは:

  • どのファイルにどのようにアクセスできるか/できないか(読み書き実行など)
  • ネットワークやRaw Socketなどへのアクセスができるか

以上についてUNIXのファイル権限やKernel Capabilityに関係なく強制的な制限をかけることができる。

UbuntuCanonical社により開発がされており、Ubuntuではデフォルトで統合されている。その他サポートしているディストロはDebian、Arch LinuxOpenSUSEなど(CentOSは...)。詳細はWikiに。

Dockerと統合して使う

AppArmorが使える環境では、DockerはAppArmorのプロファイルをシステムにインストールし、デフォルトで立ち上げるコンテナでは必ず使うようにしている。

なおこれから以下の手順は、Ubuntu Xenial/Docker 1.12.1/AppArmor 2.10.95(-0ubuntu2.5) で検証している。

続きを読む

mruby-passwd のサンプルからわかるmgem(あと、C言語)を書くときの罠

mruby advent calendar 8日目 としてやっていかせていただきます。7日目はけいぞうくんのすごい記事でした。

keizobookman.hatenablog.com

さて先日、mrubyのgemをコーディングするスクリーンキャストを撮り、実際にコードを残しました。

udzura.hatenablog.jp

ですが、mrubyのお作法的な点、後そもそもの題材である getpwnam_r(3) とpasswd構造体の扱いについて不適切なところがあった点の2ヶ所で、補足しないといけないところが見つかりましたので、今回記事を書かせていただこうと思います。

まずは、先日の時点での最終形としたコードを眺めてみましょう。

なお、本記事の環境としてはLinuxx86_64 の Ubuntu Xenial、gcc 5.4.0-6ubuntu1~16.04.4 を利用しています。mrubyはこの日の時点のmasterとします。

続きを読む

mruby gemを作るスクリーンキャストです

mruby advent calendar 2016 5日目の記事なのですが、公開が遅れ失礼します。

前日の様子です。

qiita.com


先日の Fukuoka.rb で、mrbgemをライブコーディングで作る、という一芸をやったのですが、とはいえ特に映像などを記録するでもなくという感じでした。

せっかくですのでもう少し違う実装で再現してスクリーンキャストを撮ってみました。公開します。

続きを読む