Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Twitter Client for ZSH (2)

955 views

Published on

  • Be the first to comment

  • Be the first to like this

Twitter Client for ZSH (2)

  1. 1. Twitter Client forZSH (2)Dentoo.LT #3ゆたか/@tmyt
  2. 2. 自己紹介• Twitter @tmyt • 社会人2年目• プログラミング言語 • C++, C#, Object Pascal, ZSH• シェル • ZSH• エディタ • VIM• 国立じゃない方の電通大の出身です
  3. 3. 前回
  4. 4. Dentoo.LT #2
  5. 5. 今回紹介するのは
  6. 6. こちら
  7. 7. tw.zshsha1.zshjson.zsh zss.zsh
  8. 8. sha1.zsh
  9. 9. sha1.zsh• Pure ZSH実装のSHA1• OpenSSLその他外部ライブラリは不要• Macについてるshasumコマンドと比較して% time (seq 1 1000| shasum)0.19s user 0.03s system 95% cpu 0.229 total% time (_sha1_hash "$(seq 1 1000)")33.36s user 65.04s system 92% cpu 1:45.83 total353倍遅い
  10. 10. json.zsh
  11. 11. json.zsh• Pure ZSH実装のJSONパーサ• 外部ライブラリなどすべて不要• 必要なものはZSHだけ!!• Node.jsと比較して% time (cat hoge.json | node)0.05s user 0.01s system 101% cpu 0.061 total% time (_json_parse_value )11.93s user 21.67s system 94% cpu 35.627 total584倍遅い
  12. 12. zss.zsh(Zsh Shared Storage)
  13. 13. zss.zsh• Sub shellの境界を越えて値を保存するライブラリ• JSONパーサの解析位置を保持するためにSub shellを超え て値を共有する必要があった• 親→子への伝播はされるが、子→親はできない• ZSHにはTCP/IPを扱う機能があるのでClient/Serverモデル で壁を乗り越えてみた
  14. 14. tw.zsh
  15. 15. tw.zsh• Pure ZSH実装のTwitterクライアント• TimelineへPostする機能しかありません• Timeline取得するサンプルもあります
  16. 16. 前回と比較して• curlが不要になりました• JSONパーサが添付されました• SHA1ハッシュを単独で計算できるようになりました
  17. 17. そして…
  18. 18. % time ./tw てすとめっせーじ./tw てすとめっせーじ 2.16s user 3.32s system 88% cpu 6.172 total
  19. 19. 1秒遅くなった!!
  20. 20. github.com/tmyt/tw

×