Fediverse: the two years
联邦宇宙:这两年来

Posted on fediversecodepleroma

Table of Contents 目录

It's more than two years I have been here, maybe almost three.

我呆这块儿两年有余了,可能几乎有三年了。

-1+y: hitorino

This is the actual beginning of me in the fediverse though I did not realize it then. Someone invited me to hitorino, a then-functioning Mastodon server. And they suggested an app to me, maybe it's Pawoo or something, but I cannot remember. No one told me anything about the fediverse, not even Mastodon. They just gave me a link, and that's it. So I just registered, and that's it.

这是我在联邦宇宙里的实际开始,虽然我那时没得意识到。 有人邀请我去 hitorino,当时还在运作的一个 Mastodon 服务器。 对面还推荐了一个 app 给我,可能是 Pawoo 或者什么玩意儿吧,但是我记不得了。 没得人告诉我关于联邦宇宙的任何东西,甚至没得讲 Mastodon。伊就给了我一个链接, 然后就没得了。所以我也就注册了,然后就没得了。

0: t.tusooa.xyz

It was the end of 2020 I remember. I was browsing through some old archives on #archlinux-cn. There were many interesting people, including those I've been known for a decade or so. Some got a blog, and they put their link to their Mastodon account on it. I followed that link, and got (re-)introduced to that little simple interface. "Oh, it's a microblog." I was like. I was already using Matrix for a long time, and my feeling was, "So I can self-host this as well?" So I did, and that was https://t.tusooa.xyz . I began posting poems, posting some daily life, and it turns out that I have already been interacting with those who later became my lovers.

我记得那是 2020 的末尾。我在浏览 #archlinux-cn 高头的一些老档案。 那块有好多有意思的人,包括那些我晓得了有十年多了的人。 有人有个博客,而把伊的 Mastodon 账号链接放在上面了。 我追随了那个链接,被(重新)带到了那个小小的简单的界面高头。 「哦,这是个微博啊。」我这么想到。我已经用了 Matrix 蛮长时间的了,我的感受就是, 「所以我也能自己 host 这个玩意儿?」那我就干了,就成了 https://t.tusooa.xyz 。 我开始发诗,发点儿日常生活,我还发觉在那个时候我就开始跟那些后来成为我的恋人的人们互动了。

Good life was short. I got burned out by my internship. Covid was there. I wasn't able to see my girlfriend. I tried to participate in discussions peacefully, there were always people who spread hatred, discrimination, and especially transphobia. Since the beginning, I tried to give constructive feedback, but those just won't listen and will just violently push you back against a rock. And the more I use Mastodon, the more I feel it was really uncustomizable. The text limit can't be changed without changing the code. The requirement for email upon registration is constantly bothering me because it is inherently unnecessary information collected against users' privacy, and Eugen refused to make it optional. I never actually opened up registration on the server.

美好生活是短暂的。我被实习搞得精疲力竭。Covid 在那块。我见不到女朋友。我试到和平地参与讨论, 总有人散播仇恨,歧视,而尤其是恐跨。从最开始来讲,我试到给出建设性的反馈,但是伊们就不听, 还粗暴地把你推到石头高头。而且啊,我越是用 Mastodon,就越觉得它真的不可定制。文字上限不改代码就改不了。 要求注册时填邮箱真的是让我很苦恼,因为是原本不必要的信息被收集起来,损害用户的隐私,而 Eugen 拒绝让它变成可选的。我从来没得在那个服务器高头开过注册。

Watching for Pleroma 注视到 Pleroma

It was no surprise I began searching for alternative microblogging software. And somehow I found out about Pleroma. It looks so nice, so customizable, and is so friendly towards those who do not register (Mastodon requires you to register to perform most read-only actions). Immediately I was amazed about that. Only one thing though: Mastodon allows you to take all ("conditions apply"!) your followers with you when you jump ships. Pleroma had no such feature. The good side was, I found out about one merge request on their GitLab, which allows you to move from Mastodon to Pleroma, by adding an alias referring the old account to the new account. I was never thinking of going back, so that was enough for me. I looked at it and that gave me hope of using some other software than Mastodon. But after a month or so, there was literally no progress on that MR, so I decided to shout out in the dev channel and ask what was going on. One of them, maybe rinpatch, told me that if no one cared about it then it was probably going to be ignored, and suggested that I comment on the MR. I ended up testing it and reported my results -- initially it did not work. It went the wrong way as the original method added it to the WebFinger profile, but Mastodon expects the alias in the Actor object. After the problem was fixed, I was able to open up a Pleroma server for my own use.

我开始搜索替代的微博软件就不值得惊讶了。然后我不知怎么的就找到了 Pleroma。它看上去很棒, 很可定制,而且对不注册的人非常友好(Mastodon要你注册才能完成大部分的只读操作)。 我立刻就为之惊叹了。但有一事:Mastodon允许你跳船的时候把所有的关注者带走(「要符合条件的才行」!)。 Pleroma 还没得这个功能。好的一面就是,我在伊们的 GitLab 高头找到了一个合并请求, 能让你从 Mastodon 移动到 Pleroma。原理是在新账号上加一个指向旧账号的别名。 我从来没得想过回去,所以那对我来讲就足够了。我看到它,就觉有希望能用 Mastodon 意外的什么软件了。 但过了一个月吧,那个 MR 高头完全没得任何进度,所以我决定去开发者频道高头吼一嗓子问问到底怎么样了。 其中一个,可能是 rinpatch 吧,告诉我如果没得人关心,那可能就会被忽略了,然后建议我去那个 MR 高头评论。 我最终还是自己测试了,汇报了我的结果——一开始是不能用的。它走错了道路,之前的方法是把它加到 WebFinger profile 高头,但是 Mastodon 想要别名在 Actor 对象里头。这个问题修好了之后,我就能开一个自己用的 Pleroma 服务器了。

And that was the beginning of kazv.moe, somewhere April in 2021. It started out as a tiny little server. I invited my girlfriend and some friends there. Some people who I have known when I was on Mastodon registered alt accounts on it. Even though registration was completely open without any verification, there was not a lot of people.

而那便是 kazv.moe 的开端了,2021年4月的某日。 它开始是一个微小的服务器。我把我的女朋友和一些朋友邀请了过来。 一些我在 Mastodon 高头认识的人在上面注册了小号。 尽管完全开放注册,没得任何验证机制,它也还是没得多少人。

Hacking Pleroma

As time goes, I feel that I want more features for Pleroma. First of all, I want account migration to fully work. A lot of people are posting really long images and I could not zoom in conveniently. I really liked Misskey's tree-style thread display and nice mention links. The emoji picker was a disaster to use because it was really slow to load, and everything was mixed together, there being only two groups: "custom" and "unicode," effectively making emoji packs useless.

时光流逝,我感觉我想要 Pleroma 有更多功能。首先,我想要账号迁移能完全工作。 好多人在发巨长的图,我没得办法方便地放大。 我真的很喜欢 Misskey 的树状线索显示和好看的艾特链接。 表情选择器用起来简直是灾难,因为它加载起来真的真的慢,所有的东西都糊在一起,只有两个分组: 「自定义」和「unicode」,让表情包完全无用。

So I started to write code, for the features I want, and deployed them to kazv.moe . At the beginning, I just touched the frontend. It was relatively easy. It's JavaScript, and I knew JavaScript since 2017, when I joined Rikumi's project and started writing server-side JavaScript. It took me some time to figure out how Vue works, but since I knew React, it wasn't that much of a problem. Then, suica asked me why search on Pleroma was broken. And debula found out the cause of it. To fix that took me a couple of hours -- that was the first time I touched Pleroma's backend code. I was never exposed to any Elixir or Erlang before, and all I read was Elixir's official tutorial. I did not get to read the OTP part -- it could have saved a huge part of my time if I did, because I did not know how to run individual test cases and wasted a lot of time on running the whole coveralls process.

所以我开始给我想要的特性写代码,然后把它部署到 kazv.moe 去。一开始,我只是动动前端。 还是比较简单的。它是 JavaScript 的,而我从 2017年加入 Rikumi 的项目开始写服务端 JavaScript 的时候就懂得 JavaScript 了。弄清楚 Vue 怎么工作花了点时间,但是我懂 React, 所以问题不大。 然后,suica 问我为什么 Pleroma 的搜索是坏的。debula 找到了问题的原因。修它花了我几个小时—— 那是我第一次去动 Pleroma 的后端代码。我之前从来没得接触过任何 Elixir 或者 Erlang, 我当时就读了 Elixir 的官方教程。没得读 OTP 的那部分——要是看了的话,那能节省我一大半的时间了, 因为我不晓得怎么运行单个的测试案例,在运行整个 coveralls 过程里浪费了好多时间。

And so I continued adding new features: grouped emoji picker, remote interaction, misskeyish mention links, confirmation dialogs, account migration, translations for backend-rendered pages, server announcements, editing. Those are all things wanted by people, and they really love to see it. However, Pleroma at that time was on the verge of collapsing: AG was using his power to push all his changes into Pleroma in any way he could, while caring little if nothing about other people's work and especially Pleroma-FE, as Soapbox was the frontend of his legacy. There were not a lot of people who can review my code, so it got stuck in the process for a very long time. My very first MR took half a year to get merged.

然后我就继续加新功能:分组的表情选择器远端互动misskey 式的艾特链接确认对话框账号迁移后端渲染的页面的翻译服务器公告编辑。 这些都是人们想要的功能,伊们真的很想看到的。但是,Pleroma 在那个时候处在崩溃的边缘: AG 在用他的权力以任何可以的方法把他的修改推进 Pleroma 里头,但是对别人的工作,尤其是 Pleroma-FE (毕竟 Soapbox 是的遗迹前端嘛)的关注微乎其微,如果不是完全没得的话。没得什么人能审阅我的代码, 所以它卡在过程里就卡了好久。我第一个 MR 用了半年才被合并。

In the meantime, hj organized a meeting for Pleroma developers and users to reunionize the community and rethink about the next steps. AG was stripped off the maintainer title, and later got kicked out. He then became really abusive on the fediverse, calling names towards me and Hélène, the other girl at that time on our team. I wonder whether it is due to this that she ended up quitting developing Pleroma. I ended up banned both of his instance from kazv.moe . Reflecting on that, I would say, "A self-claimed feminist, and all he does is... harassing women? What a shame?" By the end of the year of 2022, I was named a new maintainer through the consensus of the current devs on the IRC channel. And we released 2.5.0, the one with many of the long-longed features I wrote. The Akkoma folks forked away from us and advertised their software with the features I wrote, claiming credits just because they released earlier than us. I really can't say I like how this works.

在同时,hj 给 Pleroma 的开发者和用户组织了一个会议,为了重组社群,再思考下一步怎么办。 AG 被削除了维护者的头衔,之后被开除出去了。他之后在联邦宇宙上面变得非常粗暴,咒骂我跟 Hélène,当时我们团队里头的另一个女孩。我不晓得是不是因为这个,她才从 Pleroma 的开发里退出的。 我最后在 kazv.moe 高头把他的两个实例都给封得了。 现在回想起来,我就要讲了:「一个自称的女权主义者,而他做的事情都是在...伤害女性?多么可耻啊?」 2022年底,IRC 频道高头的现任开发者们一致同意授予我新的维护者的职位。然后我们释出了 2.5.0, 这个有很多我写的,大家都期盼已久的特性的版本。Akkoma 那一帮人从我们这边 fork 走了, 拿着我写的那些特性来宣传伊们的软件,只因为伊们释出的早,便抢了名头。我真的没得办法讲我喜欢这事的。

My personal life 我的个人生活

From here on there might be depiction of sex. You have been warned.

从这里开始可能有性描写。你已经被警告过了。

That's not as much dramatic as the Pleroma drama, no? I still posted my poems (2021 was the year when I wrote the most poems till then). I occasionally posted the food I cooked, and I posted my political viewpoints. Definitely a lot of people hate me for my views, but I do not care any more. I created an alt account for more intimate relationships, and I started to flirt with Reiki. We used paired avatars, expressed our feelings to each other, and maybe after half a year, I asked them to be my girlfriend. They agreed. Since that time I realized I was not a "pure lesbian" but rather can be attracted to non-binary people as well, which is a type of Bi+. I use the term yuri to represent my sexual orientation now. And later I got to be girlfriends with two other cute people.

那远不如 Pleroma 的戏剧那么戏剧化,不是吗?我仍然发诗(2021是我在以往年份里写过最多诗的一年)。 我偶尔发点自己做的食物,我还发我的政治观点。肯定有很多人因为我的观点而恨我的,但我不再在意了。 我创了一个小号给更加亲密的关系,并且开始和蕾姬调情。我们用一对的头像, 向对方表达自己的感情,可能有半年之后吧,我让伊做我的女朋友。伊答应了。 从那个时候起,我意识到我不是一个「纯女同」,我其实也可以对非二元的人产生吸引的,这是一种 Bi+。 我现在用百合这个词来表达我的性取向。再之后我又和另外两个可爱的人成为了女朋友。

After covid I have been able to see Saya more often, but only during my school breaks. She masturbated me and I think that counts as sex. I hate it that I have to cross the border. At school it's still busy, and I have encountered a couple of small problems, but luckily they were resolved promptly.

covid 过后我能更频繁地见 Saya 了,但是也只有学校放假的时候。 她给我自慰了,我觉得这算是性交。 我讨厌必须穿越边境这事。 在学校还是很忙,碰到了好多小问题,但还好能妥善解决。

Revealing my political views isn't necessarily a bad thing right? Someone came to kazv.moe because she love my views, and I ended up having a crush on her. Unfortunately she doesn't love me back so we are just being friends and sisters. I guess that's the bitterness of life, huh. (Oh have I told you that she now has a Pleroma instance with the exact same setup as mine?) I finally actually used my Funkwhale, and please, look forward to our new song, ok?

揭示我的政治观点不一定是坏事,对吧?有人就是因为喜欢我的观点才来到 kazv.moe,再后来我爱上了她。 但不凑巧,她并不也爱我,所以我们只是在做朋友和姐妹啦。我想这就是人生的酸涩吧,嘛。 (哦,我啊讲过啊,她现在有一个 Pleroma 实例了,用的是跟我一模一样的配置诶?) 我终于把我的 Funkwhale 真的用起来了,请期待一下我们的新歌吧?