25
Twitter Client for ZSH (2) Dentoo.LT #3 ゆゆゆ /@tmyt

Twitter Client for ZSH (2)

  • Upload
    shigure

  • View
    452

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Twitter Client for ZSH (2)

Twitter Client for ZSH (2)Dentoo.LT #3ゆたか /@tmyt

Page 2: Twitter Client for ZSH (2)

自己紹介• Twitter @tmyt• 社会人 2 年目

• プログラミング言語• C++, C#, Object Pascal, ZSH

• シェル• ZSH

• エディタ• VIM

• 国立じゃない方の電通大の出身です

Page 3: Twitter Client for ZSH (2)

前回

Page 4: Twitter Client for ZSH (2)

Dentoo.LT #2

Page 5: Twitter Client for ZSH (2)
Page 6: Twitter Client for ZSH (2)
Page 7: Twitter Client for ZSH (2)
Page 8: Twitter Client for ZSH (2)
Page 9: Twitter Client for ZSH (2)

今回紹介するのは

Page 10: Twitter Client for ZSH (2)

こちら

Page 11: Twitter Client for ZSH (2)

tw.zshsha1.zshjson.zshzss.zsh

Page 12: Twitter Client for ZSH (2)

sha1.zsh

Page 13: Twitter Client for ZSH (2)

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 倍遅い

Page 14: Twitter Client for ZSH (2)

json.zsh

Page 15: Twitter Client for ZSH (2)

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 倍遅い

Page 16: Twitter Client for ZSH (2)

zss.zsh(Zsh Shared Storage)

Page 17: Twitter Client for ZSH (2)

zss.zsh• Sub shell の境界を越えて値を保存するライブラリ• JSON パーサの解析位置を保持するために Sub shell を超え

て値を共有する必要があった• 親→子への伝播はされるが、子→親はできない

• ZSH には TCP/IP を扱う機能があるので Client/Server モデルで壁を乗り越えてみた

Page 18: Twitter Client for ZSH (2)

tw.zsh

Page 19: Twitter Client for ZSH (2)

tw.zsh• Pure ZSH 実装の Twitter クライアント• Timeline へ Post する機能しかありません• Timeline 取得するサンプルもあります

Page 20: Twitter Client for ZSH (2)

前回と比較して• curl が不要になりました• JSON パーサが添付されました• SHA1 ハッシュを単独で計算できるようになりました

Page 21: Twitter Client for ZSH (2)

そして…

Page 22: Twitter Client for ZSH (2)
Page 23: Twitter Client for ZSH (2)

% time ./tw てすとめっせーじ./tw てすとめっせーじ 2.16s user 3.32s system 88% cpu 6.172 total

Page 24: Twitter Client for ZSH (2)

1 秒遅くなった!!

Page 25: Twitter Client for ZSH (2)

github.com/tmyt/tw