2017年4月12日

最近ブログ書いてなかったから適当につらつら書く

pero

blog.kazuhooku.com

最近よく使うやつ。上の記事ではリリースされてない感じですがもう brew から入る peco にも入ってます。

用途としてはざっと該当箇所のコードを読みたいときに適当に検索してる。
インクリメンタルサーチなのでファイル構成とかクラス構成を把握してないようなときに便利。あと Ruby で include, extend してるけど結局実装どこだよというときにもよい。

ラッパーは微妙に変えてる。 less じゃなくて vim のほうがいろいろなれてるので。うっかり編集しちゃうのはご愛嬌。

#! /bin/sh
exec ack "$@" . | peco --exec 'awk -F : '"'"'{print "+" $2 " " $1}'"'"' | xargs -o vim '

これの何がいいって、「メソッドAしらべる」→「どうも実際の処理はメソッドBっぽいな」っていうときにすぐ検索対象を変えられるとこ。めっちゃ便利。たぶん他の人はctagsとかつかってジャンプしてるのかしら

ack つかってるけど ack のオプション全然覚えてないから変えようか迷ってる。
とりあえず pero --ruby '.*' lib みたいな感じでつかってることが多いです。

hkdnet.netのアレ

go 部分と js 部分を完全に分割した。あと go から html とかサーブしてたのを nginx に変えた。そしたら go のバイナリと public ディレクトリ内をまるっと更新すればいいだけになったので ansible で置いて適当に supervisor を restart すればデプロイが完了する。楽。

api サーバとして動くコードと1日1回バッチ処理を行うコードがあったんだけどそれも完全に分割して2バイナリ生成するようにした。管理がめっちゃ楽になってよかった。
ただなんとなく ansible が好きになれないので mitamae とか使いたい感じがある。

技術書典2

湊川さんのところで店番してた。なかなかない経験で楽しかった。本もいくつか買ったけど積んでます。すみません

Rust

書いてる。これを読んでテンションがあがったあとに Rebuild.fm で typester さんが言及してたので。

六本木ではたらくソフトウェアエンジニアへのよくある質問とその答え (FAQ) (2015 - 2017) — hayato.io

なんか書くかーと思って自分で tcp コネクションを張って自分で http のプロトコル書いて読むやつ書いてる。まあ curl ですね。
適当に実装して HTTP はしゃべれてるっぽい気がするんだけど https は handshake とかあってめんどくさ!!!ってなって投げてる。
これのあとに GitHubAPI 叩くコード書いてるあたりでエラーの扱い方をようやく学んだ。面白い。

Rust 自体の感想としては、オブジェクトがメモリ上でどういう風になってるのかを意識させられる感じがある。そこがつらくておもしろい。
「全然わからない。俺達は雰囲気で C++ を書いている」という感じがあったけど Rust は 「雰囲気ですら書けていない」という感じ。コンパイル通らんし。

コンパイラが出すメッセージがかなり親切で「もしかしてこうじゃない?」って言ってくるあたりほんと賢い。
コンパイラに叱ってもらって関係ありそうな節を Rust book で読んでというトライアンドエラーをしている。叱責駆動の勉強。

ほんとに親切なんだけど一方でわかってんならよしなにやってくれという気持ちもあってそういうところは人間が機械に傅いている感じがあって趣がある。また数年後にはこのあたりが解決される新言語あるいは新バージョンが出るのだろうか。

curl 代替を書いているときにヘッダーも書いて1行あけてボディなくて、でなんか読み出しできねぇ!みたいなことがあってなんでだろーって感じだったんだけどボディが空のときに空行が必要だからでした。てへぺろ
あと RFC 読んでてはじめて HTTP は改行コードが CRLF なことを知った

Rust に対する不満は VSCode の拡張でフォーマットかけると Vim モードが解除されるとこ。Rust の不満じゃなくて VSCode の不満ですね。

Rubocop

0.48の変更がめんどくてあげたくないという気持ちがある

ますとどん

酔った。たぶんもうやりません。


追記

JSON Schema

という感じ。