日報

serverkit

Serverkitのlineリソースの実装が未完成だったので、完成させてversionを上げた。lineリソースはファイルパスを指定してそのファイル内に指定した行が挿入されていることを保証するためのものです 。最初の目標としてはMacの開発環境をつくるために /etc/hosts を編集できるぐらいのものをつくろうと決めていて、これは既に今朝達成されてたので、今度は /etc/sudoers を編集するのに使えるぐらいのものにしようということで幾つか機能を追加した。

/etc/sudoers の編集は失敗すると誰もsudoできなくなるので、一般的にはvisudoというコマンドで検証しながら保存する。それをServerkitでもやるために、lineリソースにvalidation_scriptという属性を指定できるようにした。これが指定されていると、更新予定のファイルがひとまず /tmp ディレクトリに作成されて、その後指定されたコマンドを実行して成功したときだけ更新を行うようになる。開発途中で幾つか困って、例えば一時ディレクトリを /tmp の決め打ちにするのは良くないとか、cygwinだと環境変数TMP_DIRが違うとか、BSD系だとmktempに -t オプションが必須だがGNU系だとそうではないとか、あとファイル上書き時に前のowner:groupの情報保持するの忘れたりしてて、まあ色々あったものの実装完了してめでたい。こういう風に書いて実行できる。

# recipe.yml resources: - type: line path: /etc/sudoers line: "%wheel ALL=(ALL) ALL" validation\_script: visudo -cf %{path}
$ serverkit apply recipe.yml

databag的なやつの暗号化方法と利用者用ドキュメントが提供できたらv1.0.0出して適当にチュートリアル記事書くなどしたい。一応Mac用のチュートリアルは ServerkitでMacの環境構築を自動化する - Qiita にもある。ドキュメントをどういう形で見せようか、あるいはプラグインを書いてもらう人にどういうルールでドキュメントを書いてもらおうかというところで迷ってて、GitHub Pagesで静的サイトつくったりするのもいいし、GitHubのWikiで雑にやってもいいし、もっと雑にレポジトリ内の/docsにMarkdownファイル突っ込むだけでもいいなとも思ってる (Pull Requestとかに含められるのでそっちの方が楽だったりする)。

GitHubのIssue管理ページのUI

改めてよく出来てるなと思って昼休みにHTML構造とかCSSのあて方とかを見て回ってた。CSSほとんど書いたことないので動いてるもの見られるとやはり参考になる。GitHubのUIはほとんどレスポンシブじゃないけど、おかげで環境によって見た目が大きく崩れることはないし、幅決め打ちでデザインされてる部分が多いけど開発速度は速そうだし、まあこういうのも悪くなさそう。PC版とスマホ版で全然別のUIが採用されていて、これは賛否両論あるというか見た感じ否定的な意見の方が多いけど、最近スマホ版をよく見てると細かい部分の調整が結構な頻度で加えられてる。

その他

職場の平均年齢27歳って聞いてどんな顔すればいいのか分からなかった。