Successfully reported this slideshow.

More Related Content

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Twitter Client for ZSH (2)

  1. 1. Twitter Client for ZSH (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.zsh sha1.zsh json.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 total 353倍遅い
  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 total 584倍遅い
  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

×