thunderbolt最近技術ネタをqiitaに放出しがちでブログ書いてなかったけどまた書き始めることにした。成果物https://github.com/k0kubun/thunderboltなんで書いたのyorufukurouが使いづらい状況(お察しください)のとき、earthquakeを使っていた。割りと頻繁にクラッシュしていて、僕の環境だとネット接続が不安定なときとかにクラッシュする。そのうち原因を調査しようと思っていたんだけど、めんどくさくてそのままになってて、まぁなんか自分で書き直せるのではという気もしたので書いた。課題でschemeの処理系を書いてて、思ったより時間がかかってストレスが溜まってきたのでその気晴らしにサクッと一本書きたい気持ちもあった。本家と同じく、手で取得しなくてもUserStreamsでリアルタイムにツイートが流れてくる。earthquakeでよくつかっていた機能だけ実装した。本家と違うのは、複数アカウントを管理できるようになっていて、起動時にアカウントを指定できること。dirを指定しなければいけないしreadlineの依存は面倒くさい。ツイートの編集中は普通にカーソル移動をしたいので、それと同等の何かは必要だった。redisで使われてるlinenoiseを使うのもありかなと思ったけど、そもそもunicodeをサポートする気がない設計になっていて、それを直したフォークもあったけど、ちゃんと動かなかった。linenoiseを自力で全角文字に対応しようとして全部コード読んだりしてた(けどめんどくさくなって諦めた)ので結構大変だった。linenoiseがダメそうだったので仕方なくreadlineを使うことにした。自分がツイートするための行の上にタイムラインを挿入して表示するのが結構たいへんというか自分では思いつかなくて結局earthquakeのコードを読んだ。moduleのソースを参考にしていくつか自分で足した。(一部本家にも反映した)というか、現状もなんかちょっとおかしい。go-readline側を直す必要があるかも。APIがどうなっていてどう実装するのかがよくわからなかった。その辺に転がっているgoのライブラリを使ってもよかったけど、あまり設計が美しいものが見つからなかったので自分で書くことにした。APIのエンドポイントにPOSTしたレスポンスをIOとして入力を待ち続けるとなんか期待の挙動になるっぽい。APIのライブラリも必要なものだけ自分で書いたので、OAuthライブラリとreadline以外はほぼ自分で書くことになった。ないと思っていたけど、もうちょいearthquakeは色あるよなと思って、brightとかでググってたんだけど、どうやらboldのエスケープシーケンスを使うと色が明るく表示されるということらしかった。自分が不便を感じた時に開発を続ける予定。いくつか直したい部分があってissue書いてあるけど、とりあえずschemeの処理系書くのに集中したいので、それが終わってから対応する。APIを正式公開したあたりから、GraphQLが...2016-12-312016年にやったことクックパッドで働くのは4年目、社会人としては2年目になった。月別アーカイブ検索はてなブログをはじめよう!k0kubunさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。