ローファイ日記

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

2016年を振り返る、前に振り返りを振り返る

ここ3年ぐらい、ブログで一年を振り返っていないことに気づいてしまった...

むしろここ3年ぐらいは、なんだかとっても情緒的なアドベントカレンダーのエントリを書いて満足している様子がうかがえる。情緒的なのはいいんだけど、燃え尽きておる...

2012年の年末はめちゃ若いな、とがってるなという感じの内容をかろうじて書いている。こいつ結局HaskellScalaD言語もやらずにC書いとるやんけ、というのはある。あ、リンクは貼らないので遡って確認しないでください。

一方で、今や世代交代の波に飲まれ切る寸前のtanpakuというウェブシステム*1や、あと某ポエム*2にメモが残っていたのでその辺を今サルベージして、ちゃんと振り返りができてるか、そして抱負は達成できているか、確認してみようと思った。

*1:旧日報など書く用の社内SNS。今は新日報システムがある

*2:あえてぼやかしておく...

続きを読む

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

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

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とします。

続きを読む