普通视图

发现新文章,点击刷新页面。
昨天以前一大加贝

Watch spoken drama 'Rhinoceros in Love'

作者 Tianhe Gao
2026年4月11日 00:00

A ticket bought out of curiosity, prompted by a fleeting conversation last year with an acquaintance about wanting to see this play. I never made it. This time, I went and watched it to the end. It was worth it.

What does love look like? I believe everyone has their own answer. What is mine? Plainness, joy, passion, happiness, quarrels, anger, compromise, submission, building together.

These are the words that shape my current imagination of love. I have never been in a relationship, so I have no first‑hand experience. These are simply the shades I suspect love might hold.

Watching Malu try so desperately to show himself to Mingming, only to be met with her utter indifference—a spontaneous sadness welled up from my heart. The saddest thing in the world, perhaps, is loving a woman who does not love you back.

When Malu poured out everything he had before Mingming, and she still refused, still loved another man, I felt a kind of dread: What if one day I meet a woman to whom I would willingly give all that I am, yet her heart belongs to someone else?

This is only a specter of the imagination. I hope I am lucky enough to meet someone whom I love, and who loves me in return.


Songs that moved me during the performance

Rhinoceros in Love

The birds have all flown south

I am not a bird, I have no need for the south

The leaves all turn to face the sun

I am not a leaf, I have no need for sunlight

How lonely I am, how brave I am

I am a rhinoceros sick with longing

How lonely I am, how brave I am

I am a rhinoceros in love

The train has pulled into the platform

I am not a train, I need no terminus

The rain has soaked through my clothes

I am not the rain, I need not stay up in the sky

I am a rhinoceros in love

To love without being loved in return, yet to call oneself "in love"—nothing but a brave face over a broken smile.

Oxygen — Mingming's Song

Smile at me, smile

As if we were meeting for the first time

Speak to me, speak

Even if the vows will change by tomorrow

Enjoy me now

Life drifts so weightlessly

Remember me in the years to come

In the year you grow old

The years gone by will surely pass

With you, my final love

The years gone by will surely pass

With you, beside me at last

All the light rushes toward me

All the oxygen is breathed in by me

All objects lose their weight

I have nearly reached the end of every road

When Mingming sang this song, a shiver ran through me.

A Poem for You — Malu's Song

Everything white, when it meets you,

Turns to black ink drained of light

Every bird and beast despairs at being unable to speak your name

Every intersection lights up green so you may pass freely

Every compass needle points out your direction for me

You are the wind that leaves no trace

You are the wind that brushes gently past the body

You are the wind that leaves no trail

You are the wind that is everywhere and at all times

My love, my love,

My love, my love,

My love, my love,

You are my warm gloves,

The ice‑cold beer,

The shirt that carries the scent of sunlight,

My day‑after‑day dream

You are pure, innocent, glass‑like,

You are pure, innocent, water‑like,

You are pure, innocent, and nothing can change that

Sunlight passes through you

And alters its own course

On the way home, listening to this song, I wept in silence, letting the tears trace down my cheeks.

Ah, Mingming, Mingming. Beloved one, how can you be so merciless? How can you let a heart that loves you slowly grow cold?

Ah, Malu, Malu. Pitiable man, the taste of unrequited love—how it aches, how it aches.

看话剧《恋爱的犀牛》

作者 Tianhe Gao
2026年4月10日 00:00

一次好奇心的驱使让我买了这张票,去年曾经和一位聊过几句的朋友说想看,最后也没成行。这次我看完了,我觉得值得。

爱情是什么样子,我相信每个人都有自己的答案,我的答案是什么?平淡、快乐、激情、幸福、争吵、愤怒、妥协、顺从、共筑。

我此刻对爱情的想象,就是这些词汇。我是个没谈过恋爱的人,所以没有什么一手经验。这些词是我觉得爱情里可能会有的样子。

当我看到马路那么努力地向明明展示自己,明明依然不为所动时,一种自然生发的悲伤情绪就从心间流淌。世界上最悲哀的事情,莫过于爱上一个不爱自己的女人。

当马路那么用力地把自己有的都给明明,明明依然拒绝,依然去爱着另一个男人。我有一种恐惧:当我真的遇到一个女人,遇到一个我愿意献出我的一切去爱的女人,她却爱着别人。

这只是想象。我希望自己足够幸运,遇到一个人,我爱她,她也同样爱我。


剧中打动我的音乐:

恋爱中的犀牛

鸟儿 全飞向南方

我不是鸟儿不需要南方

树叶 都面对着阳光

我不是树叶不需要阳光

我多么孤单 我多么勇敢

我是一只害相思的犀牛

我多么孤单 我多么勇敢

我是一只恋爱中的犀牛

火车 已驶进了站台

我不是火车不需要终点

雨水 已打湿了衣裳

我不是雨水不需要呆在天上

我是一只恋爱中的犀牛

爱而不得,却说“恋爱中”。强颜欢笑罢了

氧气-明明之歌

对我笑吧 笑吧

就像你我初次见面

对我说吧 说吧

即使誓言明天就变

享用我吧 现在

人生如此飘忽不定

想起我吧 将来

在你变老的那一年

过去岁月总会过去

有你最后的爱情

过去岁月总会过去

有你最后和我一起

所有的光芒都向我涌来

所有的氧气都被我吸光

所有的物体都失去重量

我都快已经走到了所有路的尽头

当明明唱这首歌时,我有种战栗感。

给你的诗-马路之歌

一切白的东西和你相遇

都成了黑墨水暗淡无光

一切鸟兽因为不能说出你的名字而万分绝望

一切路口亮起绿灯让你随意通行

一切指南针为我指出你的方向

你是不露痕迹的风

你是轻轻掠过身体的风

你是不露行踪的风

你是无时不在无处不在的风

我的爱人我的爱人

我的爱人我的爱人

我的爱人我的爱人

你是我温暖的手套

冰冷的啤酒

带着太阳光气息的衬衫

日复一日的梦想

你是纯洁的天真的玻璃一样的

你是纯洁的天真的水流一样的

你是纯洁的天真的什么也改变不了

阳光穿过你

却改变了自己的方向

在回家的路上,我听着这首歌,我静静地哭了,任泪水顺着脸颊流淌。

啊,明明,明明。被爱着的你,为何能这样的狠心,为何能放任一颗爱你的心,渐渐冷却?

啊,马路,马路。可怜的你,爱而不得的感觉,好痛,好痛苦。

What am I really leaving behind when I put pen to paper?

作者 Tianhe Gao
2026年3月1日 00:00

You should keep a journal, I advise you so. Because it can bring you many benefits. Now let me share the benefits that journaling has brought me.

I started journaling in 2020. I no longer remember what prompted me to begin, but from that moment on, the idea of keeping a journal took root in my mind. From the very beginning, I abandoned traditional paper diaries and fully embraced digital journaling. I use plain text format (Orgmode) for my entries and maintain backups.

A journal is a way to build memories. The thoughts and reflections of the moment, recorded casually, become the sole truth when memory fails to recall them later. Memories fade with time, but if text is properly preserved, it will not be lost for a long time.

A journal is a great aid for reflection. Often we are lost in the midst of situations; looking back at what happened, we realize how we could have done better, making change easier.

A journal is a grave for pain. Much suffering cannot or should not be shared with others. Recorded in the journal and buried there, tomorrow brings a brand new me. Past pains are forgotten.

Journaling gives me a sense of groundedness, because I know what I did today—whether they were meaningless trivialities or new insights about life.

What the journal records is a more authentic self. Through it, I am able to face who I truly am.

当我写日记时,我在记录什么

作者 Tianhe Gao
2026年3月1日 00:00

你应该记日记,我如是建议你。因为它能给你带来很多好处。接下来我就说说记日记给我带来的好处。

我是2020年开始记日记的,记日记的起因已经不记得了,但是从那时起要记日记的想法在我的心里扎下了根。从一开始我就抛弃了传统的纸质日记,全面拥抱电子日记。使用纯文本格式(Orgmode)记日记,并保留备份。

日记是建立回忆的一种方式。当时的所思所想,随手记下来,事后回忆不起来时,日记便成为唯一的真实。记忆会随时间消失,但文本若得到妥善保存,则很长的一段时间内不会丢失。

日记是反思的好帮手。很多时候当局者迷,事后回想当时发生的种种,会觉得自己有哪些地方可以做得更好,让自己更容易改变。

日记是痛苦的坟墓。很多苦痛不能不想和人诉说,记在日记里,埋葬下来,明天又是一个全新的我。过往的苦痛已被忘却。

记日记给我一种踏实的感觉,因为我知道今天都做了什么,是都是一些无意义的小事,还是自己又对生活有了新的感悟。

日记所记的是一个更为真实的自我,从日记中我得以面对真实的自己。

My relationship with computers

作者 Tianhe Gao
2026年2月28日 00:00

I've read countless stories of successful people's early encounters with computers, and their experiences are mostly similar: initially driven by interest, they gradually learned and eventually chose computers as a career. I didn't really get into computers until I was in university, on New Year's Day 2019, when my father took me to an HP store to buy a laptop. I've used it for both study and work ever since. I had some early exposure to computers, but it was all superficial at school because we didn't have a computer at home, so there wasn't an environment for learning programming. Although the laptop sometimes lags, it's still usable, and in these times of economic hardship, not buying a new computer will save a lot of money. I had my laptop professionally cleaned by the official after-sales service, replacing the old SATA mechanical hard drive with a SATA solid-state drive, and I'm using the new SSD as my system drive.

My operating system is Arch Linux, which has been with me for five years, and I'm very grateful for its existence. My daily desktop environment is KDE, which suits my usage habits, and I've always used it. When I left Windows, my first operating system was Ubuntu, using the GNOME desktop environment, which I used for six months. I eventually stopped using it, probably because I disliked Ubuntu's overall design philosophy and some aspects of GNOME as a desktop environment that I found unpleasant. I heard about Arch Linux naturally because of its biggest feature—rolling releases, meaning the software is always up-to-date.

After getting into this hobby, I encountered quite a few problems in the early stages, but in the last two years, I haven't had any major issues affecting my use when upgrading the system. I feel very lucky about that.

I admire those technically skilled developers. They are more passionate about technology and programming than I am, and they have a stronger desire to improve their programs. I feel like I'll always be chasing after them, imitating them, and learning from them. I can't understand their code because I lack their deep knowledge. The vast ocean of computer science may contain some boring and tedious things, but those truly captivating, sparkling gems keep me learning and understanding the principles behind the technology.

Code is pure and logical; developers write code to express their thoughts about the world—it's an incredibly romantic thing. I'm deeply drawn to this romance. In such a world, I can escape worldly affairs and immerse myself in the ocean of knowledge. I think I'll never want to leave this atmosphere unless I die.

When I read Ruan Yifeng's Weekly Tech Enthusiast (Issue 386), I was startled by his description of what might be the future: programs mobilizing human resources to automate processes. In the AI ​​era, it's AI models that mobilize human resources. Humans will no longer be the core of the socio-economic system; AI will be. This possible future makes me feel that I need a long time to adapt to this change, even though I don't know when it will begin.

When circumstances change, people's first thought is: What should I do? I'm the same way. I don't want to, and can't, just sit and wait for things to change. I have parents to support, and I might get married in the future. What can I do to maintain my competitiveness? I will continue to think about this question.

我与计算机之缘

作者 Tianhe Gao
2026年2月28日 00:00

读过太多厉害人物早期接触计算机的故事,经历大多相像:一开始因为对计算机感兴趣,后来慢慢学习直到选择计算机作为职业。我真正玩计算机时已经在读大学,那是2019年元旦,父亲带着我去一家HP专卖店买了一台笔记本电脑。从那时至今我一直用它学习工作。早年也接触过电脑但那都是在学校的浅尝辄止,因为家里没有电脑所以没有学习编程的环境。笔记本电脑虽然有时会卡顿但还能继续使用,在现在这个经济不好的时期不买新电脑会省下一大笔钱。我给笔记本做过一次官方售后清洁,把老旧的SATA机械盘换成了SATA固态,并把新固态作为系统盘使用。

我用的操作系统是Arch Linux,它已经陪伴我五年时间了,我很感激能有这个操作系统存在。日常使用的桌面环境是KDE,满足了我的使用习惯,我一直都在用它。当初我从Windows逃离时,第一个操作系统选择的是Ubuntu,使用的GNOME桌面,使用了半年时间。大概是因为不喜欢Ubuntu整体的设计思路以及GNOME作为桌面环境有些让我觉得不爽的地方,后来就弃用了。听说Arch Linux自然是因为它最大的特点——滚动发行、软件一直都是最新的。

入坑以后,初期阶段踩坑不少,最近两年升级系统时从未出现过影响我使用的大问题。我为此觉得很幸运。

我很羡慕那些技术厉害的开发者们,他们比我对技术更为沉迷、比我更热爱编程,也有着想让程序更好的意愿。我觉得自己可能永远都只是在追赶他们,在模仿、在向他们学习。我看不懂他们写的代码,因为我并不具备他们的深厚积累。计算机科学浩瀚的知识海洋里总有些无聊乏味的东西,但是那些真正吸引我的、珍珠般闪耀的事物,让我不断地去学习去了解技术背后的道理。

代码是纯粹的、逻辑的,开发者书写代码表达自己对于世界的思考,这是极浪漫的事情。我也深深地被这种浪漫所吸引。在这样的世界里,我能远离世俗的人情世故,尽情徜徉在智识的海洋。我想我永远也不愿离开这种氛围,除非我死掉了。

当我读到阮一峰的科技爱好者周刊(第386期)时,我被他所描绘的、可能就是未来图景的样子吓到了:程序在调动人力来完成自动化流程。AI时代调动人力的就是那些AI模型。人不再是社会经济的核心,AI是。这种可能的未来让我觉得,我需要很长时间来适应这种变化,尽管我并不知道这种变化什么时候开始。

当环境发生变化时,人们首先会想:我该怎么办?我也是这样。我不想也不能坐以待毙,我还有父母要养,未来可能会结婚。我要做什么来保持我的竞争力?我会持续地思考这个问题。

The taste of sea

作者 Tianhe Gao
2026年2月22日 00:00

It was around noon. I had just gotten off the bus and was looking for a place to eat. Walking along the road, I saw the Dark Sky Planetarium. At the intersection behind it, I saw some people eating. I asked if I could buy food from them. They said yes. The owner handed me a menu; everything was around 30 or 40 yuan. I asked if they had anything else. He said they had noodles. I asked what came with the noodles. He replied that there were vegetables and meat. I asked how much it cost. He said 25 yuan. Okay, I'll take that. When the noodles were served, I was surprised to find they were served in a large bowl, with noodles, meat, and vegetables. I was very satisfied and ate with great enjoyment.

After eating, I checked the navigation and decided to go to the beach. I asked for directions and walked along the road for a while, only to find that I had to buy a ticket, which cost 35 yuan. I went to Xichong No. 2 Beach. When I went, there were almost no people there because it was midday, and the sun was high overhead, but it wasn't hot.

After eating, I checked the navigation and decided to go to the beach. I asked for directions and walked along the road for a while, only to find that I had to buy a ticket, which cost 35 yuan. I went to Xichong No. 2 Beach. When I went, there were almost no people there because it was midday, and the sun was high overhead, but it wasn't hot.

After splashing around in the water a few times, my pants got wet, and so did the papers I'd brought—the ones I used to jot down notes. So I stopped playing. I wanted to walk along the line where the shore met the sea until I saw the observatory. So I went back to where I'd taken off my shoes, and put my socks inside them so they wouldn't fall out while I walked. And so, I walked, observing the sea and the people on the shore. The water was constantly churning, and sometimes I felt dizzy from the sloshing, so I'd rest in a spot where the water wouldn't get in, and then continue walking.

During my walk, I found several beautiful seashells. Their surfaces, smoothed by the long wash of the sea, were irresistible to me. Moreover, the even color of these smooth shells created a sense of harmony. This is another reason why I love them. Seeing these seashells reminded me of Newton's famous quote: "I do not know what I am in the eyes of others, but to my own eyes I have only seen myself as a boy playing on the seashore, occasionally pleased with the discovery of a smoother shell or a prettier one, while remaining completely oblivious to the vast ocean of truth that lay before me." I also saw mushroom-shaped transparent objects; I didn't know what they were, but I guessed they might be jellyfish.

And so I walked and walked. From beach number 2 to number 3, and from number 3 to number 4. I put on socks and shoes without washing my feet because I couldn't find a place to wash them. Then, I decided to go to the observatory. So I chose a path, but unexpectedly, it wasn't easy to walk on.

I walked the Kunpeng Path, and halfway through, I saw a silver pole with the words "Kunpeng Path" written on it. This path leads from the beach to the boardwalk at the observatory. I walked carefully, tense my body, step by step, afraid of stepping on a loose rock and twisting my ankle, or falling and scraping myself. Fortunately, I wasn't injured. When I reached the boardwalk, I was dizzy and needed to rest for a while to recover. The view of the mountains and sea merging in the distance from there was breathtaking. The blue-green sea was so beautiful, I could never get enough of it.

I started walking on the boardwalk, resting for a while after each step, and looking at the distant sea view, I felt that my trip hadn't been in vain.

海的味道

作者 Tianhe Gao
2026年2月22日 00:00

那是在中午时分,我刚下公交,四处找吃饭的地方。沿着路走看到了暗夜天文馆,在后面的路口,我看到有人在吃饭,我问能买饭吗?对方答可以的。老板递给我菜单,全都是三四十块钱的,我问他还有其他的吗?他说还有面,我问面配什么呢?他回有菜和肉。我问多少钱?他回二十五。嗯,我就要它了。当面条端给我时,我发现竟是用海碗盛的,面条肉菜都有,我很满意,吃得很痛快。

吃完,看了导航,想去沙滩。问了路,沿着公路走了一段距离,没想到还要买票,花了三十五。我去的是西涌2号沙滩。去的时候几乎没人,因为是中午呀,太阳高挂在头顶,但是并不热。

一开始我还犹豫到底要不要脱鞋脱袜子,后来我看到别人也脱了,我也脱了。不得不说,还是脱鞋玩得爽。我走到海边,那里的沙子因为浸润了海水凉凉的,很舒服。我向海走去,让海水没过我的脚,那股凉意我现在还能忆起。我看着海,浪一波接一波,永远不停歇。我看着那浪在远处形成,声势浩大,等到岸边时,那浪已渐停歇。像只温和的小猫,轻轻从我脚边掠过,为我带来海的清凉。沿着岸往前走,看着那浪,我玩心突起,在浪到脚边时,我猛地捧起那浪往海的方向扬起,水花四溅,溅到了我的嘴里。我终于尝到了海的味道。

这样击水玩了几次,我的裤子湿了,把我带来的纸都弄湿了。那是我用来随手记的纸。这样我停止了玩耍。我想沿着岸与海的交接行走,直到看到天文台为止。于是,我回到脱鞋的位置,把袜子放到鞋的最里面,省得走路的过程中掉出来。就这样,我一边走一边四处打量着这海这海边的人们。海水晃动不止,我有时被晃得头晕,就会到海水沾不到的地方休息一下,然后继续走。

在行走的途中,我发现了几个好看的贝壳,贝壳的外表经过长久海水的冲刷已经足够光滑,让我爱不释手。而且,这种光滑贝壳的颜色也很均匀,看起来有种和谐感。这也是我喜欢这些贝壳的原因。当看到贝壳时,我想到牛顿的那句名言:“我不知道在世人眼里我是什么样的人,但在我自己看来,我不过像一个在海边玩耍的孩子,偶尔为发现一块更光滑的贝壳或一颗更美丽的贝壳而沾沾自喜,而对于展现在我面前的浩瀚的真理海洋,却全然没有发现”。我还看到蘑菇形状的透明物体,不知道是什么,我猜可能是水母。

就这样,我走啊走,走啊走。从2号沙滩走到3号、3号走到4号。我没洗脚就穿了袜子、鞋,因为我没找到洗脚的地方。然后,我想去天文台看看。于是就选了一条路,没想到,这条路并不好走。

我走的是鲲鹏径,走到路途一半时看到了一个银色杆子,杆子上写这是鲲鹏径。这条路从沙滩通到天文台的栈道。我小心翼翼、绷住身体,一步一步走着,生怕自己踩到某块活动石头崴到脚,或者摔倒被石头磕破。好在,我没有受伤,当我到栈道时,我头是懵的,休息了好一会儿才缓过来。从那里看远处的山海相连,美极了。蓝绿色的大海,怎么也看不够。

我开始上栈道,走一段休息一会儿,看着远处的海景,自己没白来啊,心里这样想着。

How to self-host Forgejo with docker on Ubuntu 24.04

作者 Tianhe Gao
2026年2月14日 00:00

I want to deploy Forgejo for about two years, never want to write a post about it. Now I finally deploy it. Why I want to self-host this GitHub alternative? Because I hate complexity, I donot like GitHub which has more 'features' but users donot benefit from them. I want something certain, I'm sure I own the data when I have a Forgejo instance. If I host my code on GitHub, I have to deal with the terible UX. I couldn't stand with it anymore.

Now let me show the way how I deploy Forgejo.

Prepare the server

Use a Hetzner server(Ubuntu 24.04 LTS) deploy Forgejo. Donot forget to add SSH key.

1. Ubuntu initial setup

Edit local ~/.ssh/config:

Host forgejo
Hostname IP
User root
IdentityFile ~/.ssh/id_ed25519

Then run ssh forgejo login the server. Run below cmd to complete initial setup:

apt-get update && apt-get upgrade
## rm snapd, donot like it, never use it
apt autoremove snapd --purge -y
## install Docker
# https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2. Create a git user

adduser \
 --system \
 --group \
 --disabled-password \
 --shell /bin/bash \
 --home /home/git \
 git
usermod -aG docker git

Add a A DNS record

On the domain DNS manage site, mine is Cloudflare, add a A record to your domain that point to your server IPv4 IP.

Write docker-compose.yml file

Prepare the folder:

mkdir -p ./forgejo
sudo chown -R git:git ./forgejo
mkdir -p ./conf
sudo chown -R git:git ./conf
id git
# uid=108(git) gid=110(git) groups=110(git),988(docker)

Create Caddyfile:

git.example.com {
encode gzip zstd
reverse_proxy localhost:3001 {
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto {scheme}
}
}

Setup port forward, so that SSH url will be ssh://git@git.example.com/xxx/xxx.git not ssh://git@git.example.com:2222/xxx/xxx.git:

vim forgejo-shell.sh
chmod +x /path_to/forgejo-shell.sh
usermod -s /abs_path_to/forgejo-shell.sh git
vim /etc/ssh/sshd_config
systemctl restart ssh
sudo -u git /path_to/forgejo-shell.sh
# enter forgejo container shell
ssh -T git@git.example.com
# run above cmd in local PC
# Hi there, tianheg! You've successfully authenticated with the key named xxxxxx, but Forgejo does not provide shell access.
# If this is unexpected, please log in with password and setup Forgejo under another user.
# forgejo-shell.sh
#!/bin/sh
/usr/bin/docker exec -i --env SSH_ORIGINAL_COMMAND="$SSH_ORIGINAL_COMMAND" forgejo sh "$@"
# /etc/ssh/sshd_config
## add to bottom
Match User git
 AuthorizedKeysCommandUser git
 AuthorizedKeysCommand /usr/bin/docker exec -i forgejo /usr/local/bin/forgejo keys -u %u -t %t -k %k

Create docker-compose.yml:

services:
 forgejo:
 image: codeberg.org/forgejo/forgejo:14-rootless
 container_name: forgejo
 user: 108:110
 environment:
 - USER_UID=108
 - USER_GID=110
 - FORGEJO__database__DB_TYPE=sqlite3
 - FORGEJO__server__SSH_PORT=22
 - FORGEJO__server__SSH_LISTEN_PORT=2222 # port forward
 - FORGEJO__repository__DEFAULT_REPO_UNITS=repo.code
 - FORGEJO__repository__DISABLE_MIGRATIONS=true
 - FORGEJO__repository__DISABLE_STARS=true
 restart: unless-stopped
 networks:
 - forgejo
 volumes:
 - ./forgejo:/var/lib/gitea
 - ./conf:/etc/gitea
 - /etc/localtime:/etc/localtime:ro
 ports:
 - "3000:3000"

 caddy:
 image: caddy:2-alpine
 container_name: caddy
 network_mode: 'host'
 restart: unless-stopped
 logging:
 driver: 'json-file'
 options:
 max-size: '10m'
 max-file: '10'
 volumes:
 - ./Caddyfile:/Caddyfile:ro
 - caddy_data:/data
 command: 'caddy run --config /Caddyfile --adapter caddyfile'

anubis:
 image: ghcr.io/techarohq/anubis:latest
 container_name: anubis
 restart: unless-stopped
 environment:
 BIND: ":3000"
 TARGET: "http://forgejo:3000"
 SERVE_ROBOTS_TXT: "true"
 TRUSTED_PROXIES: "127.0.0.1,::1"
 networks:
 - forgejo
 ports:
 - "3001:3000"

networks:
 forgejo:
 external: false

volumes:
 caddy_data:
 caddy_config:

Backup Forgejo

I backup data to Hetzner Storagebox.

First, create SSH key, add pub key to Storagebox.

ssh-keygen -t ed25519 -f ~/.ssh/hetzner_storagebox
cat ~/.ssh/hetzner_storagebox.pub | ssh -p23 uxx@uxx.your-storagebox.de install-ssh-key
# type passwd

Note, if the key name is not id_ed25519, need add config in ~/.ssh/config:

Host storagebox
HostName uxx.your-storagebox.de
User uxx
Port 23
IdentityFile ~/.ssh/hetzner_storagebox

Second, run below script.

#!/bin/bash

# Configuration
STORAGE_USER="uxx"
STORAGE_HOST="uxx.your-storagebox.de"
STORAGE_PORT="23"
REMOTE_DIR="forgejo_backup"
LOCAL_BACKUP_DIR="/tmp"

echo "[$(date '+%Y-%m-%d %H:%M:%S')] === Starting Forgejo backup process ==="

# need at /home/git
if [ "$PWD" != "/home/git" ]; then
 echo "Changing directory to /home/git"
 cd /home/git
else
 echo "Already in /home/git"
fi

# Stop service
echo "Stopping Forgejo service (docker compose stop)..."
docker compose stop
if [ $? -eq 0 ]; then
 echo "Service stopped successfully."
else
 echo "WARNING: Failed to stop service, continuing anyway..."
fi

# Create timestamp and archive name
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
ARCHIVE_NAME="forgejo-backup-$TIMESTAMP.tar.gz"
ARCHIVE_PATH="$LOCAL_BACKUP_DIR/$ARCHIVE_NAME"

# Create compressed archive
echo "Creating archive: $ARCHIVE_PATH (from ./forgejo and ./conf)"
tar -czf "$ARCHIVE_PATH" ./forgejo ./conf
if [ $? -eq 0 ]; then
 echo "Archive created successfully."
else
 echo "ERROR: Failed to create archive. Exiting."
 exit 1
fi

# Upload to Storage Box
echo "Uploading archive to $STORAGE_USER@$STORAGE_HOST:$REMOTE_DIR/ using rsync (port $STORAGE_PORT)..."
rsync -avh --delete -e "ssh -p$STORAGE_PORT" "$ARCHIVE_PATH" "$STORAGE_USER@$STORAGE_HOST:$REMOTE_DIR/"
RSYNC_EXIT=$?

if [ $RSYNC_EXIT -eq 0 ]; then
 echo "Upload completed successfully."

 # Remove local archive if upload succeeded
 echo "Removing local archive: $ARCHIVE_PATH"
 rm "$ARCHIVE_PATH"
 if [ $? -eq 0 ]; then
 echo "Local archive removed."
 else
 echo "WARNING: Failed to remove local archive (permissions?)."
 fi

 echo "Backup successful: $ARCHIVE_NAME"
else
 echo "ERROR: Upload failed (rsync exit code: $RSYNC_EXIT). Keeping local archive at $ARCHIVE_PATH"
fi

# Start service
echo "Starting Forgejo service (docker compose start)..."
docker compose start
if [ $? -eq 0 ]; then
 echo "Service started successfully."
else
 echo "ERROR: Failed to start service. Please check manually."
 exit 1
fi

echo "[$(date '+%Y-%m-%d %H:%M:%S')] === Backup process finished ==="

Third, make it backup repeatly.

crontab -e
## add below line to edit area
# 0 2 * * * /home/git/backup.sh >> /home/git/backup.log 2>&1
crontab -l

Hong Kong Marathon in 2026

作者 Tianhe Gao
2026年1月18日 00:00

I signed up for the half marathon and it took 2 hours, 16 minutes and 49 seconds.

Marathon

When I first signed up for the marathon, I really wanted to train, and I would occasionally go for a run in the nearby park in the mornings. But as time went on, I gradually lost interest in it, and running became an occasional activity. Until recently, I only managed a short, last-minute run – just 7 kilometers.

My bib number was D7189, and I was assigned to the half marathon group 1. The marathon started at 7:45 AM, and I got up at 6:30 AM, went downstairs to McDonald's for breakfast. After eating, I waited on the street to enter the starting area. The street was full of people, all wearing different styles of sportswear, warming up. I looked a bit out of place – wearing casual trousers and the green T-shirt they provided. Later, I looked at the marathon photo album and didn't see anyone else running in casual trousers like me :).

At 7:45 AM, the crowd started moving, and I started my watch. When I saw the words "Starting Point", I realized that my previous location wasn't the starting line. But my watch had already been timing for about four minutes, so I didn't reset the timer and started running.

At first, I wasn't quite used to it. When I felt a bit tired and then saw the markers on the route, I was surprised to find I'd only run 3 kilometers. Well, I'll keep going. Around 9 kilometers, my lower back started to feel a little strange; this meant my muscles weren't used to long-distance running yet. I kept running, and the discomfort disappeared. Between 10 and 15 kilometers, there's an underwater tunnel, which is difficult to run through—the environment is stuffy and the air is thinner than outside. In this kind of environment, it's easy to get more excited and run faster. As I got more and more excited, I suddenly couldn't run anymore. I could only slow down and maintain a steady pace. The Hong Kong Marathon route has a very comprehensive terrain: uphill, downhill, slopes, and tunnels—you could say that if you can run the Hong Kong Marathon, a marathon on flat ground is indeed very easy.

When the markers indicated I had completed 18 kilometers, I realized the next 3 kilometers would be tough. Except for stopping at aid stations to drink water, I was running the entire way. I just kept persevering, running non-stop. My mind kept wandering: Why haven't I reached the finish line yet? When I finally reached it, I wasn't particularly excited; it felt rather bland. I took a picture of myself to compare with before the run. My complexion was a little pale, and my lips were dry, but overall, I felt okay.

While I was running, I was thinking:

  1. It's okay to run alongside others
  2. Don't stop, don't compare myself to others
  3. Um, the scenery is nice
  4. The shouts of the crowd are so noisy

The advantage of staying in a hotel is that I can shower after running. My pants had white crystals on the waist and knees; I looked it up and it said that this is what happens when sweat evaporates. I packed my bags and took the high-speed train back to Shenzhen.

The pain started as soon as I got home. My body wasn't used to the sudden increase in exercise, causing a lot of lactic acid to build up in my muscles. The symptoms were: muscle soreness. I was limping when I walked. Going up and down stairs was also difficult; going up was okay, but going down was painful. I could only go down one step at a time; if I went down too fast, I was afraid of falling.

Others

First. A beautiful woman

On the subway from Victoria Park back to hotel I saw an elegant woman in a black dress and liked her very much. She was so beautiful that I felt ashamed of myself. She just quietly gazed out the subway window. I glanced at her once, then glanced again, not wanting to look any longer. What was she thinking? Sometimes, meeting such a beautiful woman is truly a wonderful thing.

Second. Has my sensitivity to the suffering of others decreased, or am I refusing to feel it?

On my subway home, something happened:

A girl was squatting in the carriage. At first, I didn't pay attention until she stood up and suddenly knelt down, hitting her head on the floor. The sound was so loud it startled me; I thought she might be mentally unstable. Then, people around noticed something was wrong. A young man proactively helped her up, and someone offered her a seat. Only then did I see: her complexion was very poor, and she seemed listless. Afterwards, the young man talked to her, gave her water, and helped her off the subway.

If I had noticed her situation earlier, perhaps she could have suffered less? But I didn't.

Why?

I've lived alone for too long and don't know how to interact with others. I often plan my life in a purely rational way, never considering my potential interactions with others. I hope this solitary lifestyle can change somewhat, so I don't have to shut others out of my heart. Not everyone you meet wants to hurt you.

参加26年香港马拉松

作者 Tianhe Gao
2026年1月18日 00:00

我报名了半程马拉松,用时2小时16分钟49秒。

马拉松

刚报名马拉松的那段时间,我确实想训练,早晨时不时去附近的公园跑步。但是随着时间的推移,心里渐渐不再对这件事关注,跑步也就变成了偶尔一次。直到最近,我才临时抱佛脚似的跑上一次长距离——只有7公里。

我的号码是D7189,被分在了半马一组。马拉松起跑时间是七点四十五,我六点半起床,下楼在麦当劳吃早餐。吃完,就在街边等待着进入起跑区。街上都是人,人们穿着不同式样的运动装,做着热身。我显得有些另类——下身休闲长裤,上身是发的全绿T恤。我后来看了马拉松的相册,没见到和我一样穿休闲裤来跑的:)。

七点四十五的时候,人群开始移动,我按下了手表的计时。当看到“起点”这两个大字时,我才明白刚才的位置不是起点。但手表已经计时大概四分钟了,没有重新计时,就那样开始跑了。

刚跑的时候还不太适应,当我觉得有点累,进而看到路上的标记点时,意外发现只跑到3公里。嗯,就继续跑吧。跑到9公里时,腰侧开始有些异样,这是肌肉还不适应长距离跑步,我继续跑,这种不适感就消失了。10公里到15公里中间有一段是海底隧道,这段不好跑,闷热的环境、空气也比外面少。身处在这种环境,人很容易越跑越兴奋、越跑越快。当我越来越兴奋时,突然我跑不动了。只能慢慢放慢脚步,匀速前进。港马的路线地形很全面:上坡、下坡、斜坡和隧道一应俱全,可以说:港马能跑下来,平地上举办的马拉松确实是很轻松的。

当路标提示我已经跑完了18公里时,我意识到接下来的3公里多是很难熬的。前面的路我除了在补给点喝水时停下来,其他时刻都是在跑着。只是一味地坚持,不停地跑。心里不断在想:怎么终点还没到?当我跑到终点时,没有特别激动,好像有些过于平淡了。拍下来自己的样子,用来和跑步前对比。脸色稍微难看了些、嘴唇也比较干燥,但整体状态还好。

当我在跑步时,我在想什么:

  1. 跟着别人跑也挺好
  2. 别停下来,别和别人比
  3. 嗯,风景不错
  4. 人群的呐喊声好吵啊

住酒店的好处就是跑完之后能洗澡。我的裤子腰部和膝盖部位都是白色结晶,查了资料说是汗液水分蒸发后就是白色的。收拾一下行李,就坐高铁回深圳了。

到家后痛苦就开始了,身体并不适应突然增加的运动量,导致我的肌肉堆积了很多乳酸。表现就是:肌肉酸痛。走路时都是一瘸一瘸的。上下楼也不好受,上楼还好,下楼就很痛苦,只能一步一个台阶下,下得快了,担心会摔倒。

其他

一、美丽的女士

在维多利亚公园回酒店的地铁上,看到了身着黑色裙子、有气质的女士,很喜欢。好看得让我自惭形秽。她只是静静地望着地铁窗外。我看了她一眼,没看够又看了一眼。她在想什么呢?有些时候,能够遇见这样美丽的女人,其实是很好的事情呀。

二、我对他人痛苦的感受力下降了吗,还是拒绝感受呢

坐地铁回家时,发生了一件事:

一个姑娘蹲在车厢,一开始我没在意,直到她站起来然后突然跪下脑袋撞到地上。那声音大得吓我一跳,我以为她是不是精神不太正常。再然后,周围的人发现了异常,一个小哥主动上前把她扶起,有人给她让座,我才看到:她的脸色很差,整个人没什么精神。之后,那个小哥和她说话、喂她喝水,并扶她下了地铁。

如果,我能早点注意到她的情况的话,或许她可以减少一些痛苦呢?只是我没有注意到。

为什么呢?

自己一个人生活太久了,不知道怎么和他人相处。很多时候一直用一种纯理性的方式去规划自己的生活,从来不去考虑自己可能和他人有什么交集。我希望这种孤僻的生活状态,可以改变一些,自己不必把别人挡在自己的心门之外。并不是你遇到的每个人都是想伤害你的人。

Run 7 kilometers, Jupiter at opposition

作者 Tianhe Gao
2026年1月11日 00:00

I worked eight hours of overtime yesterday, and didn't want to work any more in the evening because I felt unwell, so I went home and slept from 6 pm to 9 pm. Seeing photos of the starry sky on my WeChat Moments reminded me that I could observe the "Jupiter opposition" phenomenon. So, I put on warm clothes, went downstairs, walked to an open area in a nearby park, lay down on the ground, and held up my binoculars. At first, I couldn't find Jupiter, so I opened a star chart app and found that Jupiter was roughly in the northeast at that time. Through the binoculars, Jupiter appeared as a very bright dot, but because the magnification of the binoculars wasn't high, Jupiter's rings weren't very clear.

I didn't fall asleep until after 2 AM this morning, and woke up after 8 AM. The sun was shining brightly outside, reaching the balcony, so I took out the blankets that hadn't been aired for a few days to dry. I was thinking about whether to go for a run. The reason I wanted to run is because of the marathon next week; if I don't run a long distance, I might not be able to finish the actual marathon. I set my fitness watch to 11 kilometers, but only ran 7 kilometers. My shoes started rubbing my feet while I was running, and when I took them off when I got home, I saw I had a blister on my foot :). I was constantly breathing heavily while running because I haven't run a long distance in a long time. Fortunately, I felt pretty good after the run, but my foot was still hurting because of the blister, so I could only walk a bit and then stop.

While running, I listened to an episode of the podcast "Culture Limited" that talked about some things about Buddhism and mentioned many profound concepts that I don't quite understand yet, but I want to learn more about them.

跑步七公里,木星冲日

作者 Tianhe Gao
2026年1月11日 00:00

昨天加班了八小时,晚上不想继续加班因为觉得自己身体有些难受,就回家睡觉了,从六点睡到九点。看朋友圈有人发星空的照片,我才想到可以观测“木星冲日”的天象。于是,穿好保暖的衣服就下楼,走到附近公园的开阔处,躺在地上手举着双筒望远镜看,一开始没找到木星在哪里,于是打开一个能显示星图的app,找到木星那个时候大概在东北方向。望远镜看木星是一个很亮的圆点,由于望远镜的倍率不高,所以木星的圆环看不太清。

今天凌晨两点多才睡,醒来已经八点多了。外面太阳真好呀,照到阳台上,把有几天没晒的被子拿出来晾晒。心里想着要不要跑步呢,之所以想跑是因为下周的马拉松,如果不跑一次长距离真正跑马拉松的时候可能会无法坚持下来。运动手表设定十一公里,最后只跑了七公里。因为跑着跑着鞋子磨脚,后面到家脱鞋一看,脚上已经磨了一个水泡:)。跑步的时候一直呼气吸气个不停,因为我很久没跑长距离了。好在跑完步状态还不错,就是脚因为水泡一直疼,只能走一段停一段。

跑步的时候听了《文化有限》频道的一期播客,里面讲到了佛教的一些东西,提到很多深刻概念,我还不太懂,但是想要学习了解。

2025 年终总结

作者 Tianhe Gao
2026年1月1日 00:00

今年做了很多尝试,被父母逼着去了一次相亲、看了几场音乐剧、计划看两场演唱会(都被取消:-))、看了两场Live、写了找女朋友的文章、和来深圳打工的妹妹一起吃了顿狼狈饭、去了一次香港;经历了一次很严重的压抑阶段,堪比22年那次。

工作依旧是在工厂,不过工作内容变了,以前是样品测试,现在是量产测试。中间还有些许波折,下文再说。

年初的TODO完成度

  • 多读书:25年阅读时间近600h,读了几部长篇网文,也读了几本非虚构
  • 提高积极情绪占比:会在人前微笑了,心态的确比年初时积极许多,经历更加丰富了

大事记

三场音乐剧:日落大道、芝加哥、罗密欧与朱丽叶

今年看音乐剧比较多,主要是想感受视听音乐的氛围,剧情对我来说并不重要。看罗密欧与朱丽叶的目的性很强,主要是想找个心仪的人一起看,最后还是没能如愿。看着舞台上的人在演绎着那样的人物,自己是在回顾经典吗?或许吧。又像是在找寻着什么。

借助故事、借助音乐,让人的思绪飘飞,短暂地脱离现实,离开束缚自己思想的工作,和人们一起幻想那别人的人生。这或许是我看音乐剧的想往所在。

两场Live:李上安、简约情人

李上安这场是第一次看Live,期待已久,感觉还可以。几乎全暗的氛围中,等待着开场,我靠在墙角等待。

简约情人这场比李上安的要更打动我,女主唱的声音让我觉得似乎一些不好的事情都不必久留心间,人要向前看、平和安宁。

看Live对我来说,像是一次探险,不知道现场会带我的感觉如何。只是慢慢地,人就这样不自主地沉浸其中了。等到回过神,曲终人散。

妹妹来深圳打工,我和她见了一面

妹妹高中毕业,来深圳打工。想见她一面,但是她一直不想见我。因为工厂工作很累不想出门。

直到她快离开深圳了,才说和我见一面,让我帮她带路去火车站。带完路后,打算去吃饭,没想到下了大雨。雨中我们慌不择路,随便用导航找了一家披萨店,吃了没那么好吃的披萨后,又打车回到地铁站。她回她的宿舍,我回我的住处。

工作转岗

工作到年底,我自嘲:自己在这家公司做了三种工作。一年多的工厂样品测试,一个月的研发测试,两个月的工厂PE。心理状况急转直下的时段就是在从研发测试换到工厂PE的阶段,我浑噩了两天,第三天还是去上班了,无他不上班活不下去。

未来会怎么样,天知道。走一步算一步。

今年读书

  1. 支付战争 by Eric M. Jackson
  2. 不要因为走得太远而忘记为什么出发:陈虻,我们听你讲 by 徐泓
  3. 在春天 by Karl Ove Knausgård
  4. 窗边的小豆豆&续 by 黑柳彻子
  5. 东莞乐队和流水线上的孔雀们 by 袁斯来(谷雨实验室)
  6. 别相信直觉 by Seth Stephens-Davidowitz
  7. 消失的多巴胺 by Tanith Carey
  8. 神曲 by Dante
  9. 失明症漫记 by José Saramago
  10. 可能性的艺术 by 刘瑜
  11. 希望之书 by Jane Goodall
  12. 被讨厌的勇气 by 岸见一郎, 古贺史健

在找这些书的时候,发现很多都忘记讲的什么内容了,如果不是微信读书有记录。我都不会记得今年读过这本书。

明年计划

  1. 思维能力的提升
  2. 折腾中心全部放在Emacs,其他技术只要能维持正常学习生活运转,就不再投入精力深度钻研
  3. 摒除一切非必要消费欲望,记账规划财务

Teeth Cleaning

作者 Tianhe Gao
2025年11月30日 00:00

Back in early November, I was reading up on health stuff, dental health included. The advice was to get your teeth cleaned regularly—it gets rid of tartar and plaque, preventing all sorts of oral problems.

Didn’t do much research for the clinic. Just did a quick search on WeChat and Amap and found Tongbu Dental. Booked an appointment for today two weeks ago at their Xixiang branch. Took almost 50 minutes to get there from my place. So yeah, based on that alone, won’t be going back there next time.

They put this mask over your face, everything but your mouth, because that operating light is insanely bright and uncomfortable otherwise. Didn’t hurt much during the cleaning, just a bit of sensitivity in one spot. But I was pretty on edge the whole time, scared I’d suddenly get a shooting pain. Thankfully, that never happened.

The Meituan group deal was only 68 yuan—felt almost too cheap. I’ve asked around, and my colleagues have paid two or three hundred. I’ll try somewhere else next time, test out different chains and see what the difference is.

洗牙

作者 Tianhe Gao
2025年11月30日 00:00

11月初的那段时间,在了解健康方面的知识,其中就有牙齿相关的内容。建议是每隔一段时间就洗一次牙,可以去除牙结石和牙菌斑,预防很多口腔疾病。

找口腔医院的话没怎么调研,就是在微信和高德地图上搜了一下,找到了同步齿科。两周以前约的今天,在他们的西乡店。离我住的地方不近,花了50分钟左右才到。所以基于这一点,下次洗牙不会选择这个地方了。

洗牙的时候会用一个面罩盖住除嘴以外的位置,因为无影灯光线太强,不盖的话人会不舒服。清洁的时候,我没觉得有很痛的地方,只是清洁到某个部位时有轻微的酸。不过,在过程中我到是挺紧张的,害怕自己突然牙痛。所幸这种事并没有发生。

美团团购价只花了68块,觉得有些太便宜了,我问过同事,他们花两三百的都有。下次换一家看看,多尝试不同品牌的口腔医院,看看有什么区别。

Romeo and Juliet (musical)

作者 Tianhe Gao
2025年11月23日 00:00

I bought tickets for this show the day it went on pre-sale—two tickets in total, costing over a thousand yuan. I wanted to watch it with a girl, and even looked for someone online. Eventually, someone did watch it with me, but it wasn't at all like I'd imagined. Today, I want to say: finding someone you like is actually quite difficult.

Because this requires me to overcome my own shortcomings, face myself honestly, and also to look forward to meeting such a person. Not finding one is partly due to bad luck, and partly due to my own lack of effort. I know perfectly well how much time I've spent on this.

The girl I watched the play with today was very interesting; her smile was beautiful, although we didn't talk much. To see the people on stage clearly, she even brought a small pair of binoculars, which surprised me.


What is love?

Everyone has their own answer. And what is mine? Regarding love, regarding intimacy, what am I really yearning for? My feelings about it are still very vague. I can't quite explain it. I haven't thought much about love because I've never been in a relationship, so I naturally don't know the joys and sorrows. I have aspirations beyond reality, but that's all.

Reality is already suffocating me; love is a luxury for me.

I hope I can meet someone like that, someone in whose presence I won't feel inferior, someone in whose presence I can talk and laugh freely, someone in whose presence I don't need to pretend. Will I meet such a person? You, the reader of this article, do you think I'll encounter this?

For the first two-thirds of the play, I didn't experience much emotional fluctuation, except for hearing familiar famous songs like "Lord of the World" and "Love," which brought me joy. But then came the deaths of Romeo and Juliet. All those earlier melodies, those pieces that had repeatedly struck my heart, seemed to erupt in those few short minutes. Both committed suicide; the world couldn't accept their love, and the hatred of their parents had affected their descendants.

If there truly is a heaven, Romeo and Juliet would surely be happy. That's what I thought.

The core of tragedy is the contradiction between what we desire and what we don't. You want a happy ending, but the author deliberately creates pain to stimulate people, to cause suffering, and to make them think. If everything goes smoothly, and there's no reverence in one's heart, one will act recklessly. If every day is just about getting by, like the cuckoo in the desert, living for today without thinking about tomorrow, what hope is there for the future?

I need an anchor, a fixed point, so that no matter how the outside world changes, my core beliefs will not waver. If I get lost, I can easily find my way back; it won't take too long.

Regarding the scenes in the play, two points are worth mentioning:

  1. When the mother tells Juliet that she must marry, there are two real people upstairs, and downstairs, as if mirrored, two more people, hidden in the shadows. I think this is a representation of the inner world of the mother and Juliet. Expressing their inner struggles through physical performance is quite interesting.
  2. The dance of death runs throughout the play; it's a very special element. The shadow of death looms over it constantly, and the tragedy reaches its climax at the moment of death.

I really liked the encore songs, and here are a few excerpts:

Avoir 20 ans, c'est jusqu'au matin

Being 20 means living until morning

Avoir 20 ans, c'est gratter sur des guitares

Being 20 means strumming guitars

Refaire le monde même si ça change rien

Reinventing the world even if it changes nothing

Avoir 20 ans, c'est rêver tout haut

Being 20 means dreaming out loud

Nous, on n'a rien du tout

We have absolutely nothing

La vie devant nous

Our whole lives ahead of us

Avoir 20 ans, c'est trembler de peur

Being 20 means trembling with fear

D'oser aimer, d'ouvrir son cœur

Of daring to love, of opening your heart

Avoir 20 ans, c'est se mettre en colère

Being 20 means getting angry

Ne croire en rien mais attendre tout

Believing in nothing but expecting everything

Avoir 20 ans, c'est rêver tout haut

Being 20 means dreaming out loud

Let us all strive together.

罗密欧与朱丽叶 Roméo et Juliette (musical)

作者 Tianhe Gao
2025年11月23日 00:00

这部剧刚开始预售的那天,我就买了,而且买了两张,花了一千多。心里想找个女孩一块看,甚至还在网络中找人,最后的确有人和我一起看,只是全然没有了当时幻想的样子。在今天,我想说:找到一个喜欢的人,还是蛮难的。

因为这需要我克服自身的缺点、正视自己,也满怀期待地希望能够遇到这样一个人。没有找到一方面是运气不够好,另一方面还是自己不够努力。自己花多少时间在这上面,我是一清二楚的。

今天和我看剧的女孩子很有趣,笑起来很好看,虽然没有聊几句。为了看清楚台上的人,竟然带了一个小望远镜,出乎我的意料。


什么是爱情?

每个人都有一个自己的答案。而我的答案又是什么呢?关于爱情,关于亲密关系,我到底在渴望什么?我对此的感觉还是很模糊的。说不清楚道不明白。我对于爱情其他没有太多思考,因为从未处过一段关系之中,自然也不知道其中酸甜苦辣。有超出现实层面的憧憬,但也仅此而已。

现实已经压得我喘不过来气,爱情对我来说很奢侈。

我希望自己能够遇到这样一个人,在她面前我不会感到自卑,在她面前我谈笑自如,在她面前我无须伪装。我会遇到这样一个人吗?在读这篇文章的你,你说,我会遇到吗?

观赏这部剧时,前三分之二我都没有太大的情绪起伏,除了听到了熟悉的名曲,比如世界之王、爱,那一刻内心是愉悦的。直到罗密欧之死、朱丽叶之死,那之前的一首首曲子,一次又一次冲击着我的心的曲子,给我的冲击似乎都在那短短的几分钟爆发了。两人相继自杀,这世间容不下这两人的爱情,父辈的仇恨牵连了后代。

如果这世间真有天堂,罗密欧与朱丽叶一定过得很幸福。我这样想着。

悲剧的核心就是事与愿违,你想看团圆结局,作者偏不如你愿。偏偏要创造一些痛苦来刺激人们,让人痛苦,也让人思考。如果一切顺心如意,内心没有敬畏之心,行事便会横行无忌。如果每天过得都是应付,如那寒号鸟一般,过了今天不讲明天。未来人生有什么希望可言?

我需要一个锚点,一个fixed point,不论外界如何变化,我的核心信念不会改变,如果迷失了,再寻回来就好,花不了太多时间。

关于剧中场景,有两点提一下:

  1. 当母亲告诉朱丽叶,她必须嫁人时。楼上有真实的两人,楼下仿佛是镜像一般也有两人,处于暗中。我以为这是母亲和朱丽叶的内心的具象。通过动作表演来表达双方的内心挣扎,很是有趣。
  2. 死神的舞蹈贯穿剧目始终,是个很特别的存在。死亡阴影一直笼罩在其中,一场悲剧在人死亡的那一刻达到剧情的高潮。

返场曲目我很喜欢,摘录只言片语:

Avoir 20 ans, c'est jusqu'au matin

二十当头,通宵悠游

Avoir 20 ans, c'est gratter sur des guitares

二十当头,抱起吉他胡弹乱奏

Refaire le monde même si ça change rien

想改变世界,可世界依旧

Avoir 20 ans, c'est rêver tout haut

二十当头,天真梦想云雾飘游

Nous, on n'a rien du tout

我们,一无所有

La vie devant nous

只有生活在前头

Avoir 20 ans, c'est trembler de peur

二十当头,彷徨无奈

D'oser aimer, d'ouvrir son cœur

谁敢为爱,敞开心怀

Avoir 20 ans, c'est se mettre en colère

二十当头,一腔愤慨

Ne croire en rien mais attendre tout

只信美梦,渴望期待

Avoir 20 ans, c'est rêver tout haut

二十当头,大声梦想

与诸君共勉

Stargazing Diary 251105

作者 Tianhe Gao
2025年11月6日 00:00

Yesterday, almost twelve o'clock in the middle of the night just finished the supper, suddenly remembered that today has the largest full moon of the year, picked up a long unused telescope, came to the balcony. Seeing a lot of stars with a telescope, the weather is really good today. The moon was above my head, and the telescope was raised to look hard, but it was hard to shake, so I had to put down the telescope and look at the round moon. Think about something I don’t know so-called.

❌
❌