Week 12 - 2019
The weeknote for 3/18 - 3/24.
OSS
c3js/c3
📊 c3 は d3 ベースのチャートライブラリ
-
https://github.com/c3js/c3/pull/2584
- .selected() API が壊れていたのを修正する PR をマージ. D3 v4 移行時のリグレッションだったぽい.
-
https://github.com/c3js/c3/pull/2590
- favicon を適当に考えて実装. 最近タブを大量に開いているので favicon が無いタブがあると QoL が下がるため.
JavaScript
decorator
- https://docs.google.com/presentation/d/1mGqWHfs1EkBneG9CGJZj5mefzMrXQnt2FjqRp9geGxI
- decorator の新しいスライドが出てきた. 根本的に仕組みが変わっていて, ビルトインデコレータというものがいくつか出来て, それの組み合わせで任意のデコレータを表現していくような仕組みに変わる. こうなることで compiler は decorator に関する情報を静的に解析することが出来るようになって, 以前の proposal よりも最適化がしやすくなるらしい. (以前の proposal は最適化が困難/不可能になるというような意見が支配的になって却下されたぽい雰囲気)
MyProject
kt3k/moneybit-app
💰 Moneybit はオープンソースのモバイル経理アプリ
- 科目設定画面の実装が進捗. 科目の表示で, ジャーナル(仕訳帳)で使われている科目と使われていない科目を区別する処理を実装. (ジャーナルで使われている科目は削除が出来ない.) ある科目があるジャーナルにとって使われているかどうかという判定はビジネスロジックに属するため moneybit-domain 側に処理を追加して, それを app 側で取り込む形で実装した. moneybit-domain は何ヶ月ぶりに触っても, いつもきちんとやりたいことが実装できるため, 非常に満足.
kt3k/mini-hello
- https://github.com/kt3k/mini-hello
- hello と出力する docker container を小さくしていったらどこまで小さく出来るんだろうと疑問に思って作ってみたコンテナ. 最終的に63バイトのコンテナを作ることが出来た. 最初は C Compiler を使ってやってみたけど, それだと, 自分の知識だと 14kB が限界だった (https://github.com/kt3k/docker-scratch-hello). そういえば昔 breadbox さんとか @shinh さんが, ELF ゴルフという競技をやっていたのを思い出して, breadbox さんのサイトを漁ったところ nasm で assemble 出来る非常に小さい hello world を見つけたので, それを持ってきて docker 内においてみたところきちんと動いていた. (出力を
Hello, world!
にしたかったのでちょっとだけ改変した.) 面白いなと思ったのは, breadbox さんの記事によると ELF の spec にきちんと沿った実行ファイルは最低でも300バイトは必要になるらしい. つまりある意味で Linux Kernel は標準に準拠していない ELF を実行してしまっているわけで, それも相当大胆なショートカットがいくらでも出来てしまって, おそらく誰もそれをやらないので放置されているのだろうけど, 実行形式のローダーみたいな, 毎日ヘビーにみんなが使っている基本的な部分で, そういう準バグ的な挙動がずっと放置されているのは面白いなと思った.
- hello と出力する docker container を小さくしていったらどこまで小さく出来るんだろうと疑問に思って作ってみたコンテナ. 最終的に63バイトのコンテナを作ることが出来た. 最初は C Compiler を使ってやってみたけど, それだと, 自分の知識だと 14kB が限界だった (https://github.com/kt3k/docker-scratch-hello). そういえば昔 breadbox さんとか @shinh さんが, ELF ゴルフという競技をやっていたのを思い出して, breadbox さんのサイトを漁ったところ nasm で assemble 出来る非常に小さい hello world を見つけたので, それを持ってきて docker 内においてみたところきちんと動いていた. (出力を
kt3k/buttons
🌱buttons は毎日やるタスクのボタンを作って, 毎日押すアプリ.
- 久しぶりに buttons を改修. Silent Authentication という仕組みがあることが分かって, Access Token が expire した後に自動的に auth0 から新しい Access Token を払い出してもらう処理を追加した. この変更でユーザーは毎日ログインすれば最大30日程度セッションを維持できるようになった (今の所, 実験の意味も含めて最大は7日に設定中)