$30 off During Our Annual Pro Sale. View Details »

Twitterをちっちゃいリソースで

 Twitterをちっちゃいリソースで

Kenichiro MATOHARA

November 28, 2020
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. /
    Twitterをちっちゃ
    Twitterをちっちゃ
    いリソースで
    いリソースで
    Kenichiro Matohara
    1 / 26

    View Slide

  2. /
    南隅から参加(鹿児島の右下)
    好きなLinuxディストリビューションはDebian
    鹿児島Linux User Group発起人
    Kenichiro Matohara(matoken)
    Kenichiro Matohara(matoken)
    https://matoken.org
    https://matoken.org
    2 / 26

    View Slide

  3. /
    鹿児島Linux勉強会 2020.11@オー
    鹿児島Linux勉強会 2020.11@オー
    プンソースカンファレンス福岡
    プンソースカンファレンス福岡
    (オンライン開催) 「Twitterを
    (オンライン開催) 「Twitterを
    ちっちゃいリソースで-軽量
    ちっちゃいリソースで-軽量
    TwitterフロントエンドNitterの紹
    TwitterフロントエンドNitterの紹
    介-」
    介-」
    3 / 26

    View Slide

  4. /
    micro blogの利用
    micro blogの利用
    2007年04月頃Twitterに参加
    StatusNetをホストしてみたり
    GNU Socialをホストしてみたり
    Twitter凍結を経験してからGoogle+とOStatusをメインに
    Google+(一般向け)が死ぬ
    またTwitterを使い始めたらBANされる
    新しいアカウント取得 < イマココ
    Twitterは主にキーワード検索をしている
    ActivityPubに移行したいけど情報検索はTwitterが便利
    4 / 26

    View Slide

  5. /
    Twitterの閲覧
    Twitterの閲覧
    太古
    Adobe Air製 Tweetdeck → Adobe Airが死んだ
    少し前
    Mikutter
    現在はTwitter API Keyの設定が必要
    アカウントがTwitterからBAN → 新しいアカウントでAPI Key申
    請 → 却下
    最近 こんな感じでChromiumでTwitter専用プロファイルを用意して
    Tweetdeckを利用
    chromium --user-data-dir=$HOME/.config/chromium/Protile_Tweetdeck \
    --app=https://tweetdeck.twitter.com/
    5 / 26

    View Slide

  6. /
    Tweetdeck
    Tweetdeck
    検索やリストで複数タブで時系列にTweetが並び広告も表示され無
    くて便利
    いつもはそんなに気にならないけどビデオチャット利用時などに
    よく固まる
    ビデオチャットと併用は少し辛い
    メモリ結構食っている 1GB以上!
    タブ10個くらい開いているし?
    $ pstree 33936
    tweetdeck_chrom───chromium─┬─chromium───chromium───14*[{chromium}]
    ├─chromium───chromium─┬─chromium───9*[{chromium}]
    │ └─chromium───13*[{chromium}]
    ├─chromium───6*[{chromium}]
    ├─chromium───4*[{chromium}]
    └─22*[{chromium}]
    $ ps -eo rss,pid,args | grep -i chromium | grep -v grep | awk '{sum += $1} END {print sum}'
    1130684
    6 / 26

    View Slide

  7. /
    そもそもChromium自体が重い
    そもそもChromium自体が重い
    初期プロファイルでTwitterを開いただけでも結構メモリを食ってい

    850MB程
    $ chromium --user-data-dir=`mktemp -d` https://twitter.com/matoken1 &
    [1] 2777238
    $ pstree 2777238
    chromium─┬─chromium───chromium───13*[{chromium}]
    ├─chromium───chromium─┬─chromium───14*[{chromium}]
    │ └─chromium───9*[{chromium}]
    ├─chromium───6*[{chromium}]
    └─27*[{chromium}]
    $ ps -eo rss,pid,args | grep -i ZkYNg5IODV | grep -v grep | awk '{sum += $1} END {print sum}'
    852624
    7 / 26

    View Slide

  8. /
    軽いウェブブラウザを使う
    軽いウェブブラウザを使う
    Dilloやw3mなどのJavaScript非対応ウェブブラウザでもモバイル版が
    利用できる
    見た目はちょっとレガシー
    2020年12月15日に無くなるらしい?
    https://mobile.twitter.com/
    従来のバージョンのtwitter.comが表示されていま
    す。このサイトは15 12月 2020に閉鎖されます。
    サポートされているブラウザまたは端末に切り
    替えてください。サポートされているブラウザ
    のリストについては、ヘルプセンターをご覧く
    ださい。
    8 / 26

    View Slide

  9. /
    Dillo + mobile Twitter
    Dillo + mobile Twitter
    9 / 26

    View Slide

  10. /
    mlterm + w3m + w3m-img
    mlterm + w3m + w3m-img
    10 / 26

    View Slide

  11. /
    Twitter代替フロントエンドの
    Twitter代替フロントエンドの
    「Nitter」を試してみる
    「Nitter」を試してみる
    nim製AGPL-3.0 LicenseのFOSSなTwitter代替フロントエンド
    Nitterを経由してTwitterを利用
    JavaScript不要,軽量,Twitterの追跡をできないように,非公式
    API,RSS対応
    モバイル版Twitterよりもリッチな画面で画像やOGPが表示される
    ※ログインや投稿は出来ない
    でとりあえず試せる
    Nitter
    https://nitter.net/
    11 / 26

    View Slide

  12. /
    Debian sid(不安定版) amd64での導
    Debian sid(不安定版) amd64での導
    入例
    入例
    $ sudo apt install nim libsass-dev
    $ git clone github.com/zedeus/nitter && cd nitter
    $ nimble build -d:release
    $ nimble scss
    $ mkdir ./tmp
    $ ./nitter
    12 / 26

    View Slide

  13. /
    Raspberry Pi OSでの導入例
    Raspberry Pi OSでの導入例
    ディストリビューションパッケージのnimが古くてbuildできない
    (nim (>= 1.2.0)に対して0.19.4)
    から入手できる nim 1.4 のバイナリを試してみた
    (snapもある)
    Raspberry Pi OSでの例
    nim公式ページ
    $ wget https://github.com/nim-lang/nightlies/releases/download/latest-version-1-4/linux_armv7l
    $ tar tvf linux_armv7l.tar.xz | lv
    $ sudo tar xf linux_armv7l.tar.xz -C ~/opt/
    $ sudo apt install libsass-dev
    $ git clone github.com/zedeus/nitter && cd nitter
    $ PATH=~/opt/nim-1.4.1/bin:$PATH nimble build -d:release
    $ PATH=~/opt/nim-1.4.1/bin:$PATH nimble scss
    $ mkdir ./tmp
    $ ./nitter
    13 / 26

    View Slide

  14. /
    Nitter設定と利用
    Nitter設定と利用
    nitter.conf で設定
    ./nitter で起動
    既定値では全アドレス8080で受け付ける
    http://localhost:8080/
    14 / 26

    View Slide

  15. /
    その他
    その他
    Dockerもある
    ウェブサーバや自動起動設定などはREADME.mdを参照
    15 / 26

    View Slide

  16. /
    ユーザページ(JavaScript off)
    ユーザページ(JavaScript off)
    16 / 26

    View Slide

  17. /
    検索(JavaScript off)
    検索(JavaScript off)
    17 / 26

    View Slide

  18. /
    mlterm + w3m + w3m-img
    mlterm + w3m + w3m-img
    18 / 26

    View Slide

  19. /
    RSS出力
    RSS出力
    zepier無料枠で使ったり?
    ※Twitter,Instagram,Facenook等のRSS化だけなら というも
    のもある
    $ curl -s 'http://localhost:8080/search/rss?f=tweets&q=%23osc20fk+OR+%22OSC%E7%A6%8F%E5%B2%A1%
    /dev/stdin: XML 1.0 document, UTF-8 Unicode text, with very long lines
    $ curl -s 'http://localhost:8080/search/rss?f=tweets&q=%23osc20fk+OR+%22OSC%E7%A6%8F%E5%B2%A1%



    Search results for "#osc20fk OR "OSC福岡" OR "オープンソースカンファレンス
    https://nitter.net/search
    Twitter feed for search "#osc20fk OR "OSC福岡" OR "オープンソース
    en-us
    40

    tweeper
    19 / 26

    View Slide

  20. /
    Nitterメモリ利用量
    Nitterメモリ利用量
    Nitterだけで16.5MB程( + ウェブブラウザ分も必要)
    数時間起動してもあまり増えなかった
    Nitterメモリ利用量
    $ ps -eo rss,pid,args | grep -i nitter | grep -v grep
    16440 1753314 ./nitter
    $ pstree 1753314
    nitter
    20 / 26

    View Slide

  21. /
    初期状態のプロファイルでitterを
    初期状態のプロファイルでitterを
    開いたときのメモリ利用量
    開いたときのメモリ利用量
    ウェブブラウザ メモリ利用量
    Firefox 1657392
    w3m 25868
    Dillo 62712
    Chromium 801836
    21 / 26

    View Slide

  22. /
    Twitterを自動的にitterへ転送
    Twitterを自動的にitterへ転送
    幾つかの専用拡張機能がある
    EFFの でもTwitterURLを自動的にNitterに転送可能
    (Firefox, Chrome, Opera)
    https://twitter.com/ と https://mobile.twitter.com/ を
    (や自分の立てたものや )に転送
    日常使いのウェブブラウザで便利
    Extensions · zedeus/nitter Wiki
    HTTPS Everywhere
    https://nitter.net/
    他のインスタンス
    22 / 26

    View Slide

  23. /
    類似の代替フロントエンド
    類似の代替フロントエンド
    Youtube → ※NitterのInspire元
    Instagram →
    Invidious
    Bibliogram
    23 / 26

    View Slide

  24. /
    Invidious
    Invidious
    24 / 26

    View Slide

  25. /
    Bibliogram
    Bibliogram
    25 / 26

    View Slide

  26. /
    まとめ
    まとめ
    閲覧だけならNitterは軽いし見た目もリッチで便利
    Twitter社の追跡も回避できる
    投稿は不可能なので別の手段で
    軽量だしVPS等に設置しておくと便利そう
    ロードマップには埋め込み機能やアカウントのタイムライン機能
    もあるので期待
    26 / 26

    View Slide