timelyというエンジニアのための情報収集CLIツールを作った

エンジニアのための情報収集のためのCLIツールを作りました。

Github - takp/timely

timelyのコンセプト

エンジニアとしてフォローすべき情報は日に日に増えています。ニュース、ブログ、facebookの投稿、ツイッター等々。

全ての情報を追いかけるのは簡単ではありません。簡単に素早くタイムリーな情報を手に入れるベストな方法は何でしょうか?

コマンドラインで簡単なコマンドを打つだけで情報が得られたら、便利かもしれない。

それと、個人的に、Go言語を用いてCLIを開発してみたい…

そこで、このtimleyというCLIツールを作ってみました。

timelyの使い方

次のコマンドを打てば、Qiitaの人気の投稿を得られるようにしました。

$ timely q
--- Qiita 人気の投稿 ---
1 【詳解】モテたいVimmer必見 快適にコーディングするためのvimrc解説
2 日本語で読める GitBook まとめ
3 無料のドメインを取得する(2016年10月)
# ... 20番まで取得

はてなの技術ブログホットエントリーも取れます。

$ timely h
--- はてなブックマーク 技術ブログ ホットエントリー ---
1 ディープラーニングによるファッションアイテム検出と検索 - VASILY DEVELOPERS BLOG : 511 users
2 イラストを Git で管理したかったのでツールをつくった - blog.syfm : 379 users
3 デザインのバージョン管理をする世界 – Medium : 218 users
# ... 約25番まで取得

Githubのトレンド入りリポジトリの一覧も取れます。

$ timely g
--- Github Trending Repositories ---
1 /zeit/next.js : A minimalistic framework for server-rendered React applications
2 /engineerapart/TheRemoteFreelancer : Listing of community-curated resources to find topical remote freelance & contract work for software developers, web designers, and more!
3 /Microsoft/CNTK : Microsoft Cognition Toolkit (CNTK)
# ... list up to 25

Twitterについては、事前に登録したアカウントの人たちがシェアしたリンクをリストにして取得します。

$ timely t
--- Twitter most shared links from the engineer accounts ---
Fetch Tweets: mizuno_takaaki
Fetch Tweets: yukihiro_matz
Fetch Tweets: rob_pike
Fetch Tweets: dhh
# ... fetch twitter accounts that are set in twitter_accounts.go
1 https://t.co/NL6V9djElt : 2 times
2 https://t.co/PzQKvJyWgs : 2 times
3 https://t.co/tJwB1xdYKF : 1 times
4 https://t.co/ikB1FwbEGf : 1 times
# ... list up to 10

全てを一度に取得したい時はこれで可能です。

$ timely a

とても簡単にタイムリーな情報をCLIで取得できます。

課題

このtimelyを試してもらうとすぐに気付くのが、$ timely tに時間がかかり過ぎるという事です。

これは、Twitter APIを利用していないために、ウェブページをスクレイプしてデータを取得しており、そのアクセスに間を開けているためです。

APIを使っても良かったのですが、このtimelyのユーザが使い始めようと思うと、まずTwitterでAPIトークンを取ってこないといけなくなります。 これでは使い始めるのが面倒ではないかと思い、スクレイプするようにしました。

ただ、自分自身で普段使っていると、やはり遅すぎるので、自分でAPIトークンを設定すれば、APIからの利用も出来るようにすべきだなぁと考えています。

Github - takp/timely

他にも沢山改善すべき所があると思いますが、一度使ってみてもらえると嬉しいです。

@takp