LGBTPZNは無料の治安維持装置として再出発すべきか?

LGBTPZNは「やってしまわないための連帯」の可能性を開拓しうる概念であるという驚くべき主張を知り、たいへん刺激を受けた。

身内から犯罪者を出さないよう相互監視するペドフィリアの団体は、牧村朝子の主張によれば国内外に存在するそうだが、そのような無料の治安維持装置がLGBTPZNの「可能性を開拓しうる」というのは、あまりにも虫が良すぎる。まるで、アウシュビッツの看守にユダヤ人を任命するかのようだ。

未遂者が、既遂者を生贄として差し出すことで保身を図ろうとするであろうという期待、そして、それを無料の治安維持装置として利用できるという期待は、いずれも哀れな空想である。実際のところ、もしLGBTPZNの団体が組織されれば、既遂者の逃亡と証拠隠滅を全力で支援するだろう。

どんなに強力な殺虫剤をもってしてもゴキブリを根絶することはできないし、どんなに花粉症が辛くてもすべての杉の木を伐採することはできない。もちろんペドフィリアも。しかし、そのような空想を表明することは自由だ。

補足 「性的指向を生得性と変更不可能性の二点から性的嗜好より上位に置く価値観を問い直」す、という主張については、何ら反対する理由がない。

広告

マストドンのユーザーレコメンデーションについて追記

マストドンのユーザーレコメンデーションがブームに? の補足。

Misskey

Misskeyはマストドンではないが、ActivityPubで連合を形成する。そして、おすすめユーザーを持っている。Misskeyのおすすめユーザーのアルゴリズムは以下:

  • 7日以内に投稿している。
  • ローカルユーザーである。
  • フォロワーが多い。

https://github.com/syuilo/misskey/blob/master/src/server/api/endpoints/users/recommendation.ts

それとは別に、投稿のカテゴリーによっておすすめユーザーを推定する構想があるようだ。

Halcyon

Halcyonは、タイムライン (ホーム、ローカル、連合) に出現したユーザーのうち、まだフォローしていない者をランダムに選ぶ。

マストドンのユーザーレコメンデーションがブームに?

ITmedia NEWSマストドンを始めたら誰をフォローすべきか? に言及しているのだが、情報が古いので補足。

ITmedia NEWS が マストドンを始めたら誰をフォローすべきか? に言及しているのだが、情報が古いので補足。

追記 マストドンのユーザーレコメンデーションについて追記

ユーザーを推挙するソフトウェア

マストドンでユーザーを推挙するソフトウェアには、以下のものがある。ウェブサイトの名称は似たようなものになりがちなので、作者または運営者を付記した。

さっそく、これらの特徴を見ていこう。

マストドンユーザーマッチング (墓場人夜)

マストドンユーザーマッチングは、語彙の類似性をもとにユーザーを推挙する。語彙の抽出には、スクリーンネーム、bio、トゥート本文を使う。マストドンとPleromaのほとんどすべてのインスタンスが検索対象となる。

Mastodonおすすめユーザー検索 (きゅうりうむ)

Mastodonおすすめユーザー検索で検索を実行すると、類似ユーザーとおすすめユーザーが表示される。類似ユーザーとは、共通のユーザーをフォローしているユーザーである。そして、おすすめユーザーとは、類似ユーザーがフォローしているユーザーである。作者自身の説明 を読んだほうが早い。対応しているインスタンスは少ない。

おすすめフォロワー (おさ)

「あなたがフォローしている人が、よくフォローしている人を紹介します。」という公式の説明が分かりやすくていい。何も付け加えることはない。マストドンとPleromaのすべてのインスタンスに対応している。

Pawoo

Pawooはインスタンスの独自機能として「おすすめユーザー」を持っている。残念ながら検索結果はPawooユーザーのみである。ソースコード を見る限り、ユーザーを推挙する基準は以下であるようだ。

  • pixivでフォローしているユーザー
  • 人気のある (ファボ・フォロワー数・画像投稿経験の高い) ユーザー
  • アクティブな (最近のトゥートが多い) ユーザー

累進性と逆進性の評価

脱中央集権のためのデザイン: セレブのためのインターネットを99 %の手に取り戻す の補足。「フォローされている」情報をユーザーの推挙に使うと、それだけで逆進性が強い。

  • (↑逆進的)
  • おすすめフォロワー (おさ)
  • Mastodonおすすめユーザー検索 (きゅうりうむ) のおすすめユーザー
  • Pawoo
  • Mastodonおすすめユーザー検索 (きゅうりうむ) の類似ユーザー
  • マストドンユーザーマッチング (墓場人夜)
  • (↓累進的)

ユーザーのリスト

マストドンのユーザーのリストみたいなものも複数ある。ここからユーザーを選んでフォローしてもよい。

また、ローカルタイムラインまたは連合タイムラインからユーザーを拾ってフォローするという使い方もある。これらの 累進性と逆進性を評価した記事 もあるので、よろしければどうぞ。

マストドンのユーザーレコメンデーションの歩み

株式会社ユーザーローカルのランキングは2017年4月から、Pawooのおすすめユーザーは2017年5月から存在するらしい。墓場人夜の流速順リストは2017年7月。

マストドンユーザーマッチング (墓場人夜) は2017年11月15日に公開されたものの、公開初日は検索結果がぶっ壊れており、その後は少しずつ検索アルゴリズムが改良されてきた。

Mastodonおすすめユーザー検索 (きゅうりうむ) は2018年2月4日に 仮完成 した。3月25日に 作者のブログ記事 が出ると、その日のうちに ITmedia NEWSの記事 になった。

そして3月27日には、おすすめフォロワー (おさ) が出た。タイミングから見て、ITmedia NEWSの記事に触発されたようだ。

というわけで、ITmedia NEWS (というか、マストドンつまみ食い日記) の影響力は2018年にも健在ということだ。マストドンユーザーマッチングの作者としては、急に競合が増えたことが励みになるので、PleromaにWho to followパネルを設置する などの異常な機能拡張をやっていきたい。

pleroma-fe の開発環境を作る

Pleromaの開発環境を作る の補足。pleroma-fe の開発環境を作るところの説明が雑すぎたので、書き忘れていたことを書く。

前提として、ディストリビューションは Ubuntu (TODO: バージョンはあとで調べて書く) とする。Pleromaの開発環境を作る では、いきなり npm install を叩いているが、その npm はどこから来るのか? 特に驚くようなことはなく、apt から来る。注意事項としては、npm だけでなく node-legacy も必要っぽい。

あと、現時点での環境だと node_sass が壊れているので、npm uninstall node_sass で消してから npm install node_sass で入れなおすみたいなワークアラウンドが必要っぽい。

LGBTPZNは攻撃的であるべきだ、ただし遊戯的である場合に限って

LGBTPZNの攻撃性は、ある時はLGBTに向けられ、またある時はアングロサクソン的なペドフィリア弾圧に向けられる。前者は、LGBTがPZNを切り捨てる冷酷な既得権益集団であるという見方である。後者は、ペドフィリアに対する攻撃を、海外の価値観の輸入による内政干渉とみなす見方である。

私はこれらの立場には与していない。わが国のLGBTは既得権益ではないし、いまだ決して安全ではない。海外の価値観を否定することでナショナリズムを称揚することにも反対である。

ここで、マジョリベーション (majoribation) という用語を紹介したい。これは majority と masturbation の造語であり、「私たちはあいつらみたいなキチガイじゃなくてよかったね」という、エンターテイメントとしての相互確認のことである。

マジョリベーションに回収された攻撃性は遊戯的でない。V (vanilla) はもとより、LGBTの当事者でさえ、LGBTの運動家を非難するためにLGBTPZNを援用することがある。しかしながら、当事者と運動の分断を煽ることは、マジョリベーションの常套手段である。

同様に、ナショナリズムに回収された攻撃性も遊戯的でない。私たちは自由闊達に、攻撃したり攻撃しなかったりすべきだ。

LGBTPZNは遊戯的であるべきだが、遊戯ではない

運動の本体は暴徒であるべきである、理論家はその支援者に過ぎない、というのが私の意見である。LGBTPZNは原理的に、理論家によって真面目な運動に仕立て上げられることが不可能であるように思われる。では、私たちは、暴徒であることができただろうか? あるいは、その支援者として振る舞うことができていただろうか?

LGBTPZNのうち、特にペドフィリアは、多様な困難に直面している。まず、性徴前の人間と性交することの問題に絞って考えると、相手に性欲がないこと (状況を限定すればこれに論駁することも可能かもしれない)、相手と知識や力に差があること (しかし、ペドフィリアの側が童貞であったり、知的障害者であったりする場合にはどうであろうか?)、などの倫理的な問題があることが分かる。ペドフィリアであること自体が (たとえ内面の空想に限定したとしても) 倫理的に罪であるという風潮も、多くの敵対者たちに共有されている。

児童ポルノを製造・販売・所持することは、わが国では (あるいは、ほとんどすべての先進国で) 違法である。前段落では問題を「性徴前の人間と性交すること」に限定したが、法的な児童とは18歳未満の者を指し、この中には人格、体格、あるいは性体験のうえで成人と遜色ない者が多く含まれている。ペドフィリアに対する社会的な禁忌感は強固であり、性徴後の児童と成人との恋愛ですらしばしば指弾されるけれども、児童と児童との恋愛はむしろ奨励されている。

法と倫理によって徹底的に自分自身を破壊された者が、なおも何らかの倫理や価値観に対して誠実であることは可能だろうか?

LGBTPZNのうちのPは本質的に倫理的な困難を抱えている。かつてはLGBTもそうであった、特にそれが宗教的な禁忌と強く結び付いていた時代には。

だから、LGBTPZNはLGBTPZNの (あるいはPZNの) 権利運動にはなり得ない。そのようなものを夢想したり、あるいは、そのようなものに擬態したりしながら、それの周りで歌ったり踊ったりしている。これは熱狂的な死の舞踏である。

遊戯的な運動には前例がある。というよりも、わが国のシリアスな運動は、浅間山荘を最後に敗北した。それ以降の運動は、革命的非モテ同盟やSEALDsのように、パロディーあるいはコメディーとして振る舞わざるを得ない。

LGBTPZNは遊戯的であることしかできない。そして、それは呼吸や排泄と同じくらい、私たちにとって重要なことである。

GitLabと仲良くなる

Pleromaの開発はGitLabが使われている。本稿では、GitLabの使い方情報と、Pleromaの開発に固有の事情を織り交ぜてやっていく。

developブランチとfeatureブランチ

まず超実践Gitは強いのでみんな読むといい。ところで、超実践Gitの既存の戦略を知るという節によると、Git界隈で使われているブランチの名前には、以下のような流派がある。

  • git-flow: development, features, hotfix, releases, master
  • github-flow: master

さて、PleromaのGitLabがどうなっているかというと、develop がデフォルトのブランチであり、feature/XXX というブランチと fix/XXX というブランチが大量に作られている。masterブランチは、存在するがまったく使われていない。

Pleromaの開発体制は、ブランチの名前はgit-flowだが、実際にやっていることはgithub-flowである。Pleromaのdevelopブランチは、github-flowにおけるmasterブランチと同じように使われている。そのため、インスタンスを運営したい人はdevelopブランチからコードを持っていくことになっている。

余談だが、ブランチの名前に / を含めることが普及しているのは、初心者にとっては割と驚きがある。

ブランチをいっぱい作る

開発者にとって最終的な目標の一つがマージリクエストを出すことだ。GitHubにおけるプルリクエストのことをGitLabではマージリクエストと呼ぶ。

マージリクエストの実体は2個のブランチの組である。これらのブランチは別のレポジトリに置かれていてもよい。いずれかのブランチに新しいコードがコミットされれば、マージリクエストの内容も変化していく。そのたびに、マージが成功したりコンフリクトしたりするし、テストが通ったり通らなかったりする。

マージリクエストを出すことを想定して、1個のブランチには1個のテーマのコードのみをコミットする。このようなブランチを特にトピックブランチと言うこともある。

トピックブランチとは別に、インスタンスで実際に稼動しているコードを入れるブランチも必要である。AGPLにより、インスタンスが独自機能を持つならば、コードを公開する義務があるからである。私はdistsnという名前のブランチにしたが、deploy/distsn のような説明的な名前のほうがわかりやすいかもしれない。

本稿の読者の知識をどのように想定すればよいかわからないが、クローンとは以下のようなコマンドをやっていくことである。-b のあとの feature/who-to-follow-panel はブランチの名前であり、最後の who-to-follow-panel はローカルのディレクトリ名である。

git clone https://git.pleroma.social/hakabahitoyo/pleroma-fe.git -b feature/who-to-follow-panel who-to-follow-panel

本家のdevelopブランチに追従する

インスタンスを運営しているならば、新機能を取り入れることは欠かせない。また、トピックブランチにおいては、他の開発者による変更と衝突がないようにするために、きりのいいところで本家のdevelopブランチに追従する必要がある。

この作業はGitLabではなくローカルのgitコマンドでやっていく。Pleromaのレポジトリにはpleromaとpleroma-feがあり、ここでは例としてpleroma-feの方でやっていく。

git remote add official https://git.pleroma.social/pleroma/pleroma-fe.git
git fetch official
git merge official/develop

git remote add はレポジトリをクローンしたときに1回やればよく、git fetch と git merge は本家のdevelopブランチに変化があったときにはやるべきである。余談だが、git remote add でスペルミスをやらかしたときの直し方は git remote set-url である。

応用としては、レポジトリをクローンしたときには、自分のレポジトリが origin という名前で登録されている。これに対して fetch と merge をやっていくことにより、トピックブランチから機能を取り込むことができる。

git fetch origin
git merge origin/feature/who-to-follow-panel

pleroma.distsn.org は本番環境が開発環境を兼ねているので、この方法でトピックブランチを取り込んで動作確認をやっている。

ESLintを倒す

PleromaのGitLabレポジトリでマージリクエストを出すと、自動的にテストが走る。マージリクエストではなく普通のコミットでも自動的にテストが実行される。pleroma-fe は JavaScript 的なもの (Vue.jsとwebpackあたり) で書かれているので、ESLintでチェックされる。Lintとは人類にコーディングスタイルを強制するプログラムで、ESLintはそれのJavaScriptのやつである。

ESLintを倒さないと気分が悪いので、倒す。JavaScript Standard Styleという偉そうな名前のやつが相手なので、あらかじめ読んでおくと倒しやすい。

ユニットテストを倒す

pleromaレポジトリはElixirで書かれているので、それ用のユニットテストフレームワークが作動する。ただし、テスト環境が壊れていることも多い。テストの結果を見て、自分が書いたコードとは関係なさそうなところがエラーになっていたら、マージリクエストのコメントあたりで発言すれば、強い人たちが直してくれそうである。