Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

/ 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

Slide 6

Slide 6 text

/ 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

Slide 7

Slide 7 text

/ そもそも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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

/ 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

Slide 12

Slide 12 text

/ 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

Slide 13

Slide 13 text

/ 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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

/ 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

Slide 20

Slide 20 text

/ 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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

/ 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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

/ Invidious Invidious 24 / 26

Slide 25

Slide 25 text

/ Bibliogram Bibliogram 25 / 26

Slide 26

Slide 26 text

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