2018-12-31: 2018年最後の日です
やったこと
diaryに芝を実装した
この上にGitHubの芝的なものが表示されるようになっているはず。
ちなみに芝の漉さはテキストの分量で決まる。大きな記事ほど色が濃くなる、はず。
漉さは4段階あって、計算式は、
Math.min(Math.max(7, Math.floor(Math.log2(size))), 10) - 7
になっている。1024文字以上書けば一番濃い色になるらしい。なんだ余裕だな、と思ったけど実際見てみると結構薄い。難しいものだ。
また、テキストの長さというのはMarkdownのファイルサイズそのものじゃなくて、Markdownの記号を削ったものになっている。それが余計に濃くするのを難しくしている。
ともかく、2018年が終わる前にdiaryをもう一段階アップデートできて良かったと思う。
CrystalにPull Requestを出したりした
-
https://github.com/crystal-lang/crystal/pull/7240
呼ばれたので直した。ぶっちゃけこれを直すくらいならば難しくはない。
ややこしいのは、現状だと、
foo(&.foo )
が、
foo(&.foo)
にフォーマットされてくれないところ。これは普通の引数でも同じなんだけど、さらにややこしいことに、
foo(1 )
は、フォーマットしてもそのままなのに、
foo(1, )
はフォーマットすると、
foo(1)
になる。つまり、末尾のコンマの有無で結果が変わっている。が、
&.foo
のあとに,
を置くことはできないので(これも謎の制限)この回避策が使えない。タイミングを見て直していきたい。
-
https://github.com/crystal-lang/crystal/pull/7241
crystal tool format foo.cr
とかしたときに出たエラーメッセージがcrystal tool format foo.cr
を実行しろというやつなんだけど、それをやっても当然同じエラーメッセージになってスタックトレースとか出ないのでcrystal tool format - < foo.cr
を表示するように修正した。
多分問題ないと思う。1引数の場合の特殊パターンが消えた時点で気付くべきだった。
spec
のやつ確認しようと思っているのだけどやる気が出ない‥‥。
スマブラ
年内に全キャラ集められたので有能。がんばったと思う。
2018年
終わる。今年を総括した記事を書きたかったけど普通に間に合わなかった。