ついっとぺーんとぞーぺんを技術的な視点で振り返る

2023年は激動の年でした。 個人的には常に全力で走りつづけた一年で、過去の5~10年分の作業量をこなした気がします。

その成果は、

  • TwitPane Limited
  • ついぺんリサーチ
  • ついぺんリサーチR
  • ぞーぺん Mastodon対応
  • ぞーぺん Misskey対応
  • たいぺん(タイッツーアプリ試作版)
  • ぞーぺん Bluesky対応

とありますが、この記事では技術的な観点から振り返ってみたいと思います。

技術的な成果

アプリ単位で振り返ってみます。

以下、主に箇条書きで書いていきます。

TwitPane Limited

  • 1/13(金)、TwitPane無料版、有料版のBAN(API無効化、SUSPENDED)によりストア版が使えなくなったため、急遽Kindle版をベースにしたLimitedを作成。
  • Androidのプロジェクトの複数アプリ構成で、アプリを増やした形なので技術的には特段違いはない。

  • 技術的には、この1月の大混乱の時期に、細々と続けていたRealm廃止を一気に達成したのが大きい。これによりビルド時間が大幅に短縮された。

ついぺんリサーチ

  • 同一プロジェクト内でアイコン等も含めて異なるアプリを作成するノウハウを確立。

TwitPane Light(未公開)

  • 完全なTwitter v2 APIによるタイムライン実装
    • v2 データのDB保存手法の確立。

ついぺんリサーチR

  • Web版に準じたクライアントの作成(技術的にはいろいろあるけど自粛)

ぞーぺん Mastodon対応

  • アプリ内の別サービス追加
    • 内部的にServiceIdという仕組みを導入、TwitterMastodonという構成に。
    • その後、Misskey、Taittsuu、Blueskyが追加されることに。
  • アカウントID、スクリーンネームのオブジェクト化
    • アカウントIDはLong値、スクリーンネームはStringで管理していたがそれぞれAccountId、ScreenNameというオブジェクトにラップするようにした。数百箇所の書き換え。
  • アカウントIDのインスタンス名追加
    • アカウントの識別にインスタンス名(サーバー名、mstdn.jpやfedibird.comのような)が必要になったので、AccountIdのほかにInstanceNameというオブジェクトを導入。
    • これらを組み合わせたAccountIdWIN (With InstanceNameの略) がアカウント識別の基本単位に。これはBluesky対応まで一貫して続く。
    • 余談だが○○WINという響きのいい略語を付けられたことがモチベーションに繋がった気がする。ちなみにMastoPane内ではAccountInstanceName、略してAIN(アイーン)だった。
    • ScreenNameにも同様にScreenNameWINという単位を導入。
  • idの文字列化(旧Calckey 現FirefishのMastodon API対応のため)
  • カスタム絵文字のレンダリング
    • MastoPaneでは未実装だったカスタム絵文字レンダリングに対応。
    • 絵文字対応の独自のSpanを作り、軽量かつ柔軟に絵文字をレンダリングできるようになった。
  • 絵文字リアクションの実装
    • Fedibirdの絵文字リアクション対応のため。
    • 絵文字Spanに枠線やリアクション数表示の機能を追加
    • さらに、タイムラインから絵文字リアクションタップで直接リアクションをしたり、+ アイコンから追加したり。
    • 絵文字一覧画面やリアクション一覧画面も。絵文字リアクションの長押しからリアクション一覧を開けるのとか地味に便利でよく使うけど、技術的には淡々と作った感じ。
  • カスタム絵文字ピッカー
    • Twitter向けの拙作の別アプリ EmojiPicker4T のコードをベースにカスタム絵文字ピッカーを追加
    • 任意のインスタンスの絵文字一覧を任意のサイズ、任意の行あたりの個数で表示して選択できるようにした。
    • デッキ編集→ピン留めした絵文字をドラッグ&ドロップで配置変更できる独自のデッキ機能を作成。
      • 行単位で任意の数の絵文字が表示されている状態で、ドロップ先の絵文字の位置を判定し移動する処理を、比較的現代的なコードで書いた。
    • 新着絵文字対応。新規に取得した絵文字の差分チェックをし、新規分だけ日単位に記録、表示する機能。技術的には普通だけどわりと面倒くさい。

ぞーぺん Misskey対応

  • idの完全文字列化
    • Misskeyの各種idは文字列なのでAccountId、StatusIdなどの内部idを文字列化した。
    • 一般的に「MastodonアプリのMisskey対応が難しい所以」の1つ。アプリ内1000箇所くらいのオーダーで修正が必要だった。
  • カスタム絵文字(サイズ情報のない横長絵文字)のレンダリング
  • Jetpack Composeによるリスト一覧、クリップ一覧、チャンネル一覧の実装
  • MFM対応
    • MisskeyはシンプルなAPI故にクライアント側ががんばる文化。開発者のしゅいろさんがクライアントWebに強いだけあってほとんどのことをクライアントでやっちゃう感じ。他のSNSとの大きな違い。
    • ノートのコンテンツがユーザー入力の生のテキストで、そのレンダリングはクライアントに任されている
    • その記法はMarkdownにちょっと似た独自のMFMと呼ばれるもの。カスタム絵文字やURLの表記はもとより、Markdown風の太字等の修飾、独自の関数などを含む。
    • というわけで当然parserから必要で、Misskeyが使ってるmfm.jsと同等機能のmfm.ktを自作した(テストケースだけmfm.jsを参考にした)
    • mfm.ktはプログラミングの教科書に載ってるような字句解析、構文解析をセオリー通りに実装したもの。字句解析からparserを書くのは10年以上ぶりだけど何とか作れた(たまに無限ループのバグとか作り込んでしんどかった)。
    • いわゆる意味解析はぞーぺん側の仕事で、mfm.ktの実行結果のツリーを辿りながら、Spanを組み上げていくロジックを作成。MFMの凝った修飾記法、特にアニメーション機能などは全然無理なのでMiriaとかすごいよねって話。

たいぺん(タイッツーアプリ試作版)

  • タイッツーのAPIをお試し。
  • Jetpack Composeによるタイムライン実装
  • Jetpack Composeによるプロフィール実装

ぞーぺん Bluesky対応

  • Jetpack Composeによる本格的なタイムライン実装
    • 性能チューニング
    • カラーラベル、引用・カードエリアなどの細かい&凝ったレイアウト

その他

  • 上記に加えて、数ヶ月ごとに大規模なリファクタリングを継続して実施した。
  • 直近ではモジュール構成が複雑化しすぎていたので、依存関係の見直しとクラス・ファイル単位での大幅な移動を行ったりした(今月だけで10時間以上かけてる)。
  • とにかくビルド時間が遅くて開発体験が悪すぎたので丁寧に時間をかけてシンプルな構成になるように心がけた。

  • 設定画面やタブ編集画面もサービス追加のたびに大幅な作り替えが必要だった。

  • アカウントカラーとかアカウントエイリアス機能も導入したけど、個人的には、Materialカラー対応のカラーピッカー表示が気に入ってる(技術的には平凡な処理だけど)

まとめ

絵文字レンダリングのようなユーザーに見える部分から、内部のサービス分類、mfmパーサーのような見えない部分まで、上から下までいろんなことに挑戦することになった一年でした。

1つ前の成果が次の開発に繋がるのがおもしろく、例えばFedibirdのサイズ固定の絵文字リアクション対応がMisskeyのサイズ不定の絵文字リアクション対応に繋がったり、Jetpack ComposeをMisskey対応で導入して、タイッツーやBluesky対応で本格的に作り込んでいくというような流れがありました。 また、ついぺんリサーチという「アプリ」を作るノウハウが、ぞーぺんの開発に繋がりました。

というわけでやはり、同一プロジェクト(プロジェクト自体はTwitPaneという名前、もはやそんな名前のアプリ自体が存在しませんが…)に複数のアプリを同居させて「どのアプリも時代に取り残さない」ように作れたのは今年の一番大きな成果だったかなーと思います。

来年も引き続き、もう少し頑張りますのでよろしくお願いいたします。

TwitPaneからぞーぺんへ

こちらは FediverseAdvent Calendar 2023 第二会場 17日目の記事です。

TwitPane&ぞーぺん周辺の今年1年の出来事と、ぞーぺんのおすすめポイントなどの紹介を書きましたのでご興味がありましたらどうぞ。

TwitPane の停止とZonePane(ぞーぺん)の開発

2023年1月、TwitterクライアントのTwitPane(ついっとぺーん)が突然終了することになりました。

Twitter(現X)関連アプリとしては「ついぺんリサーチ」やTwitPane Limited、「ついぺんリサーチR」と引き継ぎ、現在も自分用として細々と維持していますが、事実上開発は中断することになりました。

ついぺんちゃん

これと並行して開発を始めたのがMastodonやMisskeyに対応したアプリ、ZonePane(ぞーぺん)です。ぞーんぺーんは言いにくいのでぞーぺんです。

ぞーぺん君

元々 TwitPane の兄弟アプリとして開発していた Mastodon 対応アプリの MastoPane がありましたが、これとは全く別に Mastodon 向けのアプリとして開発を始めたのがぞーぺんです。

MastoPaneのマスコット、ますぺんさん

本記事ではぞーぺんの紹介と他のアプリにはない特徴、おすすめの機能などを紹介したいと思います。

ぞーぺんのコンセプト

TwitPane終了という残念な経緯もあり、ぞーぺんを開発する上での一番のコンセプトとしては 「ついっとぺーん(TwitPane)のユーザーさん向けに他SNSへの移住先となる環境を提供する」 ということを考えています。

Mastodon/Misskeyってなんやねん?」という方に向けて、とりあえずぞーぺんを使ってもらえれば、慣れ親しんだUI/UXで新しいSNSに馴染んでもらえるように意識しています。

もちろんこのコンセプトはぞーぺんにとどまるものではなく、タイッツーやBluesky、Threads(API提供の可能性がちょっぴりあるらしい?)に向けても考えていて、これらのSNSに対応したアプリを用意できればいいなぁ、と考えています。

ぞーぺんの主な機能

ぞーぺんはMastodonやMisskeyの主要な機能を概ねカバーしています。

また、MastodonではFedibird(fedibird.com)やkmyblue(kmy.blue)の独自拡張(特に絵文字リアクション)にも対応しています(サークルや相互のみ投稿など対応できていない機能もあります)。

同様にMisskeyでは最新版だけでなく、misskey.devのようなv11系、フォークであるFirefish系にも対応しています。

※ぞーぺんが対応している全機能の一覧を書いても長くなるだけで見づらいので割愛しますね。

ぞーぺん特有の機能紹介

他のアプリには見られない特徴的な機能をいくつか紹介していきます。

未読管理機能(未読・既読位置保持機能、続きから読むサポート機能)

多くのAndroid向けTwitterクライアントがある中でTwitPaneが支持されていた理由の1つに強力な「未読管理機能」がありました。

これは「前回閉じたところの続きから読む」機能で、ぞーぺんにもそのまま搭載されています。 Android特有の謎の振る舞いでアプリが急に閉じたときであってもきちんと「どこまで読んだか」を保存するのは泥臭いノウハウの世界だったりします。

逆に「遡上」と呼ばれるような「新しい記事⇒古い記事」に読み進めていくときであっても、どこまで読んだかが記憶されるのは大事ですね。

Twitter(おっともうXでしたっけ)やMastodonの公式アプリは割と刹那的な「最新のタイムラインを読む」ことがメインのようで、未読管理はサードパーティーアプリのサポート範囲という感じがしますね。Xのサードパーティーアプリなんてもうないですが。

自動更新機能

ホームタイムラインやリスト、通知などを例えば「10分おき」のように、自動的・定期的に巡回し、投稿を溜め込んでくれる機能です。 そのため前項の「未読管理機能」との相性もいいですね。

言い換えると、ぞーぺんがまだ対応していない「ストリーミング」の代わりとも言えます。

電波が悪い環境に行く前に溜め込んでおくのも便利です。

ちなみに本機能はもともとTwitPaneの2022年の目玉機能でした。 内部的に数ヶ月かけて大きく作り替えて、年末にようやく完成し、年明けにブラッシュアップしていこうとしていたところ、1/13(金)のアプリ停止を迎えました。

新着絵文字

Twitter(おっともうXでしたっけ)と比較したときのMastodonやMisskeyの大きな特徴がカスタム絵文字(および絵文字リアクション)かなと思います。

(2017年頃のMastodonにはまだなかったのでMastoPaneは未対応でしたっけ)

どんなカスタム絵文字があるのかがサーバ(インスタンス)の特徴の1つになってる気がします。

そんなカスタム絵文字が新しく追加されたときいち早く使いたいものですが、MastodonもMisskeyも「管理者さん(もしくは絵文字管理ロールを持ってる方)が教えてくれる」ことがあまりなくいつの間にか追加されていたり、botが教えてくれたりしていて、アプリで分かるようになるといいなぁと思って作ったのが「新着絵文字」機能です。およそ2~3日おき、または手動でリロードするたびに絵文字の差分を日単位で記録してくれる機能になっています。

この機能も他のアプリではあまり見られない機能かと思います。

アカウントカラー&エイリアス

↑の通りです。投稿画面やいいね、BT/RN確認画面の配色も変わるので「誤爆防止」にもめちゃめちゃ役立ちます。

カラーラベル

TwitPaneから引き続き搭載している機能の一つです。元々は Twitter クライアントの twicca にあった機能を搭載したものです(twicca愛用していました)。

ユーザー毎にカラーを割り当てて、タイムラインの左側に表示することで「友達」「趣味友」などのクラスタ識別をしやすくするための機能です。

下記はカラーラベル+チャンネルカラーの例です。

前後の投稿検索(BT/RN一覧からの検索)

Twitter(おっとX)に限らずMastodonやMisskeyでも「ブースト/リノートしたあとに自分の感想・意見を書く」というスタイルは多いですね。 引用するほどでもないというときに気軽にそういう投稿の仕方をするわけですが、元の投稿をした人には届きにくいですよね。

そんな風に、自分の投稿をブースト/リノートしてくれた人が次にどんな投稿をしているのかを検索する機能が「前後の投稿検索」機能です。

いわゆるエゴ検索支援の一つかもしれません。絵描きさんが「自分の投稿の感想を知りたいな」というときに活用してると聞いたとこともあります。

「BT/RNで流れてきた投稿のその前後を知りたい」といった用途にももちろん使えます。

ブースト/リノートしたユーザー一覧からも右側のボタンから前後投稿検索ができるのではかどります。

BT/RNの通知のメニューからもできます。

その他のおすすめ機能

他にも下記の機能もおすすめです。

  • いいね、ブースト/リノート時にサブアカウントから実行できる機能
  • 下書き・投稿履歴
  • よく使うハッシュタグの一覧、記憶機能、ピン留め機能
  • カスタム絵文字ピッカー、デッキをD&Dで編集できるぞ

MastoPane と ZonePane のプロジェクト管理の違い

※本節はアプリ内部の開発上の話なので興味ある方だけ読んでください!

MastoPaneは 2017年頃のいわゆる「第一次Mastodonブーム」に誕生した TwitPane の兄弟アプリです。

当時はTwitPane開発から4年目ということでまだまだ進化が激しいこともあり、MastoPaneは「TwitPaneのソースコードを丸々コピーし、Twitter機能をMastodon機能に置き換える」形でスタートしました。そのため、TwitPaneの変更にMastoPaneが置いて行かれる結果となりました。 (後に2020年の騒動でPlayストアからも消えることになりました)

2023年2月時点においては、TwitPane自体の「ProductFlavorの廃止とマルチアプリ化」が完了していたこともあり、「TwitPaneプロジェクトのアプリの1つとして」ぞーぺんの開発に着手することが出来ました。いわば「無料版や有料版といったエディションの1つとしてぞーぺんが存在する」ような形です。

その後、今年いっぱいはぞーぺんの開発が主になるわけですが、ソースコードを同一プロジェクトとしたおかげで、ぞーぺんに搭載した様々な機能、例えばアカウントカラー機能やアカウントエイリアス(別名)機能などは逆に「ついぺんリサーチR」にもそのまま導入することができました。

余談ですが同一プロジェクトで管理しているため1行のgradleコマンドで下記7種類のアプリを一気に作成することが可能です。

  • TwitPane 無料版(apk+aab)
  • TwitPane 有料版(apk+aab)
  • TwitPane Kindle Edition (apk)
  • TwitPane Limited (apk)
  • ついぺんリサーチR
  • ぞーぺん (apk+aab)
  • たいぺん (apk+aab)

たいぺんはデビュー待ちのかわいい子です。

最後に

先週の12/14(木)頃からThreadsのActivityPub接続が徐々に始まり、MastodonやMisskeyなどのいわゆるFediverse側ともつながり始めています。 いわばThreadsという大波がやってくる嵐の前といった状況ですが、2024年もぞーぺんくんと一緒に楽しく過ごせていってもらえると嬉しいなぁと思います。

ここまで読んでいただきありがとうございました。ちょっと早いですがメリークリスマス&良いお年を。

ぞーぺんはこちらから↓ Google Play で手に入れよう

データドライブのSSD変更

(5/18追記) やけに遅いのでさらに変更しました。

メインPC (tm-5)

カテゴリ 品名 備考 購入価格 導入時期
CPU AMD Ryzen 9 5950X   \110,800 2021/04
MB ASUS TUF GAMING B550M-PLUS   \17,380 2021/04
CPUクーラー Cooler Master MasterLiquid ML240L   \10,006 2021/04
Memory CFD CT2K32G4DFD832A DDR4 3200(PC4-25600) 32GBx2 \29,790 2022/08
Case Sharkoon SHA-S1000-VBK MicroATX \5,480 2018/10
OS Windows 10 Pro   - 2021/04
VIDEO GIGABYTE GV-N207SGAMING OC-8GC GeForce RTX 2070 SUPER \63,900 2019/12
電源 Antec NE750 GOLD   \9,080 2018/10
キーボード REALFORCE R2SA-JP3-BK   \31,260 2020/12
SSD Samsung MZ-V8P2T0B/IT Samsung SSD 980 PRO 2TB \38,979 2022/08
SSD Samsung MZ-V9P2T0B-IT/EC Samsung SSD 990 PRO 2TB \27,758 2023/05
HDD Seagate BarraCuda ST8000DM004 8TB F:内蔵 メディア \17,152 2021/06
DAC Microshar μDAC111   \53,800 2012/03
ディスプレイ LG 43UN700-B 43インチ 4K DisplayPort接続 \69,800 2021/08
- HP 27f 4K Display 27インチ 4K HDMI接続 \37,750 2020/10

自宅サーバ (tm-nuc2)

カテゴリ 品名 備考 購入価格 導入時期
MB Intel® NUC 11 Performance kit - NUC11PAHi3   \41,800 2021/07
CPU Intel® Core™ i3-1115G4 MB on board - 2021/07
Memory Crucial CT8G4SFS832A DDR4-3200 SO 8GB \6,680 2021/07
Case Kitに同梱 - - 2021/07
電源 Kitに同梱 - - 2021/07
SSD Samsung MZ-V7E1T0B/EC Samsung SSD 970 EVO 1TB \40,879 2018/11
SSD Crucial CT4000MX500SSD1 Crucial MX500 4TB \47,780 2022/08

その他

  • Surface Pro 8 8PV-00026 (13インチ/Core i7-1185G7/16GB/SSD 256GB/Windows 11 Home/2880x1920/891g) / 2022/04 / \215,380
  • Surface Pro Signature キーボード ブラック 8XA-00019 / 2022/04 / \28,980

  • Surface Pro 3 MQ2-00015 (Core i5-4300U/4GB/128GB) 798g / タイプカバー RD2-00010 (パープル) 522g / 合計1,320g / 2014/07

  • Surface Go 3 8VA-00030 (10.5インチ/Intel Pentium Gold 6500Y/メモリ 8GB/SSD 128GB/Intel UHD グラフィックス 615/Windows 11 Home(Sモード)/Office Home and Business 2021/ブラック) / 2022/01 / \85,580

  • Surface Go Signature タイプ カバー プラチナ KCS-00144 / 2022/01 / \16,940

  • ASUS RT-AX3000 / 2020/9 / \19,000

  • キヤノン PIXUS TS8330 BK / 2021/04
  • dynabook T552/58FR
  • BOSE Companion20
  • NAS: Drivestor 4 |AS1104T / ASUSTOR / WD WD60EZAZ-RT * 3 * RAID5 = 12TB / 2021/06 / \36,600 + \10,670*3
  • PX-Q3U4

  • SSD Intel SSDPEKKW020T8X1 Intel SSD 760p Series 2TB / \43,980 / 2019/09 => 未使用

  • SSD Crucial CT2000MX500 Crucial MX500 2TB / \26,999 / 2019/07 => PS4 に。

メインPCのSSD交換

メインPCが突然起動しなくなり、BIOS画面に。

てっきりブートローダーが壊れた程度だろうと diskpart で調査するもなぜかSSD自体が読み取り専用のまま書き込めず。 その後、バックアップからの復元を試みるも途中でエラーに。

仕方ないので急遽、最近移転したツクモ大谷地店に行き 980 PRO 2TB を購入、バックアップから復元して復旧しました。

調査するとSSDの故障でした。

あとどうやら 980 PRO 2TB 特有の問題っぽいんですよね。同一モデルを購入してしまったのは失敗だったかも?

(2022.8.20追記) 自宅サーバSSDを交換し、メインPCのメモリを交換しました。

  • 自宅サーバSSD: Crucial MX500 2TB -> Crucial MX500 4TB
  • メインPCのメモリ: CFD W4U2400CM-16G DDR4-2400 16GBx2 -> CFD CT2K32G4DFD832A DDR4 3200(PC4-25600) 32GBx2

メインPC (tm-5)

カテゴリ 品名 備考 購入価格 導入時期
CPU AMD Ryzen 9 5950X   \110,800 2021/04
MB ASUS TUF GAMING B550M-PLUS   \17,380 2021/04
CPUクーラー Cooler Master MasterLiquid ML240L   \10,006 2021/04
Memory CFD CT2K32G4DFD832A DDR4 3200(PC4-25600) 32GBx2 \29,790 2022/08
Case Sharkoon SHA-S1000-VBK MicroATX \5,480 2018/10
OS Windows 10 Pro   - 2021/04
VIDEO GIGABYTE GV-N207SGAMING OC-8GC GeForce RTX 2070 SUPER \63,900 2019/12
電源 Antec NE750 GOLD   \9,080 2018/10
キーボード REALFORCE R2SA-JP3-BK   \31,260 2020/12
SSD Samsung MZ-V8P2T0B/IT Samsung SSD 980 PRO 2TB \38,979 2022/08
SSD Intel SSDPEKKW020T8X1 Intel SSD 760p Series 2TB \43,980 2019/09
SSD Crucial CT2000MX500 Crucial MX500 2TB \26,999 2019/07
HDD Seagate BarraCuda ST8000DM004 8TB F:内蔵 メディア \17,152 2021/06
DAC Microshar μDAC111   \53,800 2012/03
ディスプレイ LG 43UN700-B 43インチ 4K DisplayPort接続 \69,800 2021/08
- HP 27f 4K Display 27インチ 4K HDMI接続 \37,750 2020/10

自宅サーバ (tm-nuc2)

カテゴリ 品名 備考 購入価格 導入時期
MB Intel® NUC 11 Performance kit - NUC11PAHi3   \41,800 2021/07
CPU Intel® Core™ i3-1115G4 MB on board - 2021/07
Memory Crucial CT8G4SFS832A DDR4-3200 SO 8GB \6,680 2021/07
Case Kitに同梱 - - 2021/07
電源 Kitに同梱 - - 2021/07
SSD Samsung MZ-V7E1T0B/EC Samsung SSD 970 EVO 1TB \40,879 2018/11
SSD Crucial CT4000MX500SSD1 Crucial MX500 4TB \47,780 2022/08

その他

  • Surface Pro 8 8PV-00026 (13インチ/Core i7-1185G7/16GB/SSD 256GB/Windows 11 Home/2880x1920/891g) / 2022/04 / \215,380
  • Surface Pro Signature キーボード ブラック 8XA-00019 / 2022/04 / \28,980

  • Surface Pro 3 MQ2-00015 (Core i5-4300U/4GB/128GB) 798g / タイプカバー RD2-00010 (パープル) 522g / 合計1,320g / 2014/07

  • Surface Go 3 8VA-00030 (10.5インチ/Intel Pentium Gold 6500Y/メモリ 8GB/SSD 128GB/Intel UHD グラフィックス 615/Windows 11 Home(Sモード)/Office Home and Business 2021/ブラック) / 2022/01 / \85,580

  • Surface Go Signature タイプ カバー プラチナ KCS-00144 / 2022/01 / \16,940

  • ASUS RT-AX3000 / 2020/9 / \19,000

  • キヤノン PIXUS TS8330 BK / 2021/04
  • dynabook T552/58FR
  • BOSE Companion20
  • NAS: Drivestor 4 |AS1104T / ASUSTOR / WD WD60EZAZ-RT * 3 * RAID5 = 12TB / 2021/06 / \36,600 + \10,670*3
  • PX-Q3U4

Surface Pro 8 購入など

サブPCとして Surface Pro 8 を購入しました。

その他、PCのHDDを買い換えたりしていました。

メインPC (tm-5)

カテゴリ 品名 備考 購入価格 導入時期
CPU AMD Ryzen 9 5950X   \110,800 2021/04
MB ASUS TUF GAMING B550M-PLUS   \17,380 2021/04
CPUクーラー Cooler Master MasterLiquid ML240L   \10,006 2021/04
Memory CFD W4U2400CM-16G PC4-19200(DDR4-2400) 16GBx2 \26,600 2017/04
Case Sharkoon SHA-S1000-VBK MicroATX \5,480 2018/10
OS Windows 10 Pro   - 2021/04
VIDEO GIGABYTE GV-N207SGAMING OC-8GC GeForce RTX 2070 SUPER \63,900 2019/12
電源 Antec NE750 GOLD   \9,080 2018/10
キーボード REALFORCE R2SA-JP3-BK   \31,260 2020/12
SSD Samsung MZ-V8P2T0B/IT Samsung SSD 980 PRO 2TB \47,980 2021/04
SSD Intel SSDPEKKW020T8X1 Intel SSD 760p Series 2TB \43,980 2019/09
HDD Seagate BarraCuda ST8000DM004 8TB F:内蔵 メディア \17,152 2021/06
DAC Microshar μDAC111   \53,800 2012/03
ディスプレイ LG 43UN700-B 43インチ 4K DisplayPort接続 \69,800 2021/08
- HP 27f 4K Display 27インチ 4K HDMI接続 \37,750 2020/10

自宅サーバ (tm-nuc2)

カテゴリ 品名 備考 購入価格 導入時期
MB Intel® NUC 11 Performance kit - NUC11PAHi3   \41,800 2021/07
CPU Intel® Core™ i3-1115G4 MB on board - 2021/07
Memory Crucial CT8G4SFS832A DDR4-3200 SO 8GB \6,680 2021/07
Case Kitに同梱 - - 2021/07
電源 Kitに同梱 - - 2021/07
SSD Samsung MZ-V7E1T0B/EC Samsung SSD 970 EVO 1TB \40,879 2018/11
SSD Crucial CT2000MX500 Crucial MX500 2TB \26,999 2019/07

その他

  • Surface Pro 8 8PV-00026 (13インチ/Core i7-1185G7/16GB/SSD 256GB/Windows 11 Home/2880x1920/891g) / 2022/04 / \215,380
  • Surface Pro Signature キーボード ブラック 8XA-00019 / 2022/04 / \28,980

  • Surface Pro 3 MQ2-00015 (Core i5-4300U/4GB/128GB) 798g / タイプカバー RD2-00010 (パープル) 522g / 合計1,320g / 2014/07

  • Surface Go 3 8VA-00030 (10.5インチ/Intel Pentium Gold 6500Y/メモリ 8GB/SSD 128GB/Intel UHD グラフィックス 615/Windows 11 Home(Sモード)/Office Home and Business 2021/ブラック) / 2022/01 / \85,580

  • Surface Go Signature タイプ カバー プラチナ KCS-00144 / 2022/01 / \16,940

  • ASUS RT-AX3000 / 2020/9 / \19,000

  • キヤノン PIXUS TS8330 BK / 2021/04
  • dynabook T552/58FR
  • BOSE Companion20
  • NAS: Drivestor 4 |AS1104T / ASUSTOR / WD WD60EZAZ-RT * 3 * RAID5 = 12TB / 2021/06 / \36,600 + \10,670*3
  • PX-Q3U4

Android用Twitterクライアント年表をまとめました

「そういえばあのTwitterクライアントっていつから使えなくなってたんだっけ?」とふと思うことがあったのでざっくりと調べてまとめてみました。

調べ方

Playストアに現存するアプリは簡単に公開日と最終更新日を調べることができました。

なぜか twicca や Txiicha Lite は Play ストアに「公開日」が載っていなかったので、公式アカウントのツイート等から推定しました。

beeter はPlayストアに存在しないためブログ記事等より調べました。

雑感

自分がTwitPaneを開発し始めたのは 2013年前半で、当時は「既にTwitterクライアントはたくさんあるんで今さら自分が作るまでもないやろ」などと思ってましたが、2013年の時点ではtwitcle plusもSobaChaも公開されたばかり、ついーちゃやJanetterも1年経ってなかったんですね。

元々自分がtwiccaを愛用していたというのもあり、twicca が開発終了する前に移行できて良かったような気もしてきます。

その他の雑感:

  • ついーちゃ2が1年以上更新されてないのは気づいてなかった
  • 2017年~2019年にかけて開発終了したアプリが多い

Twitterクライアント界隈は Twitter API v2 への移行も必要になってくるんで今後数年間で新規にリリースされたり終了したりするアプリが増えそうな予感です。がんばってついていくしかないですね。

自宅サーバのリプレース

自宅サーバ2017.11.22のMB変更 以来、約3年半ぶりにリプレースした。

CPUがCore i3の第3世代 -> 第11世代になってかなり速くなり、ファンの音も静かになった気がする。NIC が 1GbE から 2.5 GbE になり、2.5インチベイもあるのでメインPCのSSDをこちらに載せ替えた。

当初 Ubuntu 2020.04 LTS を入れていたけど NIC が 100 Mbps でしかリンクアップしないので Ubuntu 2021.04 に変えたりしたけど直らず半日ほど無駄にしたけど、結局 LAN ケーブルを変えたらさくっと 2500 Mbps でつながった。今の時代に 100 Mbps というのはちょっとあり得ないので早めに LAN ケーブル疑うべきだった。。

メインPCで使っていたNTFSSSDUbuntuマシンにつないでmountするだけで日本語のファイル名も含めて問題なく使えるので非常に楽だった。

起動ドライブのSSDは余ってたのを使ったけど明らかにオーバースペック。発熱も考えるともう少し低速で手頃なものでも良かった気がする。

(追記)8月にディスプレイを買い換えておいたので追記。

NAS も買い換えた。

自宅サーバ (tm-nuc2)

カテゴリ 品名 備考 購入価格 導入時期
MB Intel® NUC 11 Performance kit - NUC11PAHi3   \41,800 2021/07
CPU Intel® Core™ i3-1115G4 MB on board - 2021/07
Memory Crucial CT8G4SFS832A DDR4-3200 SO 8GB \6,680 2021/07
Case Kitに同梱 - - 2021/07
電源 Kitに同梱 - - 2021/07
SSD Samsung MZ-V7E1T0B/EC Samsung SSD 970 EVO 1TB \40,879 2018/11
SSD Crucial CT2000MX500 Crucial MX500 2TB \26,999 2019/07

メインPC (tm-5)

カテゴリ 品名 備考 購入価格 導入時期
CPU AMD Ryzen 9 5950X   \110,800 2021/04
MB ASUS TUF GAMING B550M-PLUS   \17,380 2021/04
CPUクーラー Cooler Master MasterLiquid ML240L   \10,006 2021/04
Memory CFD W4U2400CM-16G PC4-19200(DDR4-2400) 16GBx2 \26,600 2017/04
Case Sharkoon SHA-S1000-VBK MicroATX \5,480 2018/10
OS Windows 10 Pro   - 2021/04
VIDEO GIGABYTE GV-N207SGAMING OC-8GC GeForce RTX 2070 SUPER \63,900 2019/12
電源 Antec NE750 GOLD   \9,080 2018/10
キーボード REALFORCE R2SA-JP3-BK   \31,260 2020/12
SSD Samsung MZ-V8P2T0B/IT Samsung SSD 980 EVO 2TB \47,980 2021/04
SSD Intel SSDPEKKW020T8X1 Intel SSD 760p Series 2TB \43,980 2019/09
HDD WDC WD101EFAX-EC 10TB F:内蔵 メディア \27,081 2020/10
DAC Microshar μDAC111   \53,800 2012/03
ディスプレイ LG 43UN700-B 43インチ 4K DisplayPort接続 \69,800 2021/08
- HP 27f 4K Display 27インチ 4K HDMI接続 \37,750 2020/10

その他

  • Surface Pro 6 KJV-00023 (12.3インチ/Core i7 8650U 1.9GHz/16GB/SSD 512GB/Windows 10 Home/2736x1824/784g / 2018/10 / \242,780
  • Surface Pro 3 MQ2-00015 (Core i5-4300U/4GB/128GB) 798g / タイプカバー RD2-00010 (パープル) 522g / 合計1,320g / 2014/07
  • ASUS RT-AX3000 / 2020/9 / \19,000
  • キヤノン PIXUS TS8330 BK / 2021/04
  • dynabook T552/58FR
  • BOSE Companion20
  • LS-V2.0TL
  • LS210D0401C / BUFFALO / 4TB / 2018/08 -> 10TB(WD101EFAX-EC)に換装(2020/10) -> 発熱が大きすぎるので下記のNASに置き換え
  • Drivestor 4 |AS1104T / ASUSTOR / WD WD60EZAZ-RT * 3 * RAID5 = 12TB / 2021/06 / \36,600 + \10,670*3
  • PX-Q3U4