Author Archives: clarkzjw

Random bits of Week #44, 2023: Lean 4

Lean 4

I saw several Mastodon posts by Terence Tao recently on his learning journey with Lean 4 and used it for the formalization of his paper. He began his learning with Lean 4 from scratch on Oct. 9 [1] with the help of ChatGPT and completed the formalization on Nov. 5 [2]. It's always fascinating to see how differently the same tools can be used by such talented people. Some of his comments on ChatGPT in the past:

AI tools like will soon be capable of answering a large fraction of traditional university homework type questions with reasonable accuracy. In the long term, it seems futile to fight against this; perhaps what we as lecturers need to do is to move to an "open books, open AI" mode of examination where we give the students full access to AI tools but ask them more challenging questions, both to teach the material and also to teach the students how best to use the AI tools of the future.

Dec 19, 2022, 16:21, https://mathstodon.xyz/@tao/109543141003492779

Today was the first day that I could definitively say that has saved me a significant amount of tedious work. As part of my responsibilities as chair of the ICM Structure Committee, I needed to gather various statistics on the speakers at the previous ICM (for instance, how many speakers there were for each section, taking into account that some speakers were jointly assigned to multiple sections). The raw data (involving about 200 speakers) was not available to me in spreadsheet form, but instead in a number of tables in web pages and PDFs. In the past I would have resigned myself to the tedious task of first manually entering the data into a spreadsheet and then looking up various spreadsheet functions to work out how to calculate exactly what I needed; but both tasks were easily accomplished in a few minutes by GPT4, and the process was even somewhat enjoyable (with the only tedious aspect being the cut-and-paste between the raw data, GPT4, and the spreadsheet).

Am now looking forward to native integration of AI into the various software tools that I use, so that even the cut-and-paste step can be omitted. (Just being able to resolve >90% of LaTeX compilation issues automatically would be wonderful...)

Apr 09, 2023, 20:37, https://mathstodon.xyz/@tao/110172426733603359

On the other hand, Lean 4 [3] is a very interesting project. Sure, Lean 4 can be learned by people from different perspectives [4]. I'm wondering how I can benefit from Lean 4 in the field of computer networking. I saw some ongoing projects such as SciLean [5] which is currently a proof-of-concept project on optimization and machine learning. Maybe it can be helpful in computer networking in term of algorithm formalization or to proof certain algorithm properties. Nonetheless, it should be "fun" to learn something completely new to me, maybe in 2024.

Cloud Computing in Africa

Somehow I needed a VPS running in Africa, specifically in Lagos, Nigeria. Currently, major cloud computing companies don't have a major market share in Africa and most of them are located in South Africa.

Google Cloud Platform:
Announced in Oct. 2022 [6], there will be a new region in Johannesburg, South Africa.

Amazon Web Service:
Launched Africa (Cape Town) Region in 2020 [7].

Microsoft Azure:
Launched South Africa datacenter in Cape Town and Johannesburg in 2019 [8].

It was actually quite tricky to find a reliable VPS provider in Lagos and I just used Google search to find any available one randomly.

Cloudflare Outages

Cloudflare experienced a serious outage, again [9]. Luckily, it only affects the control plane and analytics. They are always transparent in post mortem report.

[1] https://mathstodon.xyz/@tao/111206761117553482

[2] https://mathstodon.xyz/@tao/111360218854032278

[3] Lean 4 programming language and theorem prover
https://github.com/leanprover/lean4

[4] Learning Lean 4
https://leanprover-community.github.io/learn.html

[5] Scientific computing in Lean 4
https://github.com/lecopivo/SciLean

[6] New cloud regions coming to a country near you
https://cloud.google.com/blog/products/infrastructure/introducing-new-google-cloud-regions

[7] Regions and Availability Zones
https://aws.amazon.com/about-aws/global-infrastructure/regions_az/

[8] Microsoft opens first data centers in Africa with general availability of Microsoft Azure

Microsoft opens first datacenters in Africa with general availability of Microsoft Azure

[9] Post Mortem on Cloudflare Control Plane and Analytics Outage
https://blog.cloudflare.com/post-mortem-on-cloudflare-control-plane-and-analytics-outage/

Random bits of Week #43, 2023: Patching the Voyagers

Remote accessing a mini PC in the Western Indian Ocean

This week, I was given a task to configure an Intel NUC-like mini PC, which will be sent to a remote island country in the Western Indian Ocean. This mini PC has two Ethernet ports (both will be connected to different ISPs) and one wireless interface (which will not be used however).

lspci
...
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter

After it's been connected, it will act as a network probe for one of our ongoing network measurements. However, the liaison there who will help us host the mini PC is not a professional IT guy. We have to take every precaution possible to prevent losing the remote connection.

Here is what I have done so far:

1. Linux distribution of choice: Debian 12.2. It's the latest Debian stable as of writing and we are more familiar with Debian-based distributions. Why not Ubuntu? Previously we had some networking issues (possibly DHCP-related) on Ubuntu with another mini PC of the same specs. Although we didn't figure out whether that's Ubuntu to blame, we chose Debian anyway for the myth of the "stability" of Debian over Ubuntu.

2. For remote login, we installed Tailscale. Cloudflare Tunnel and Ngrok [2] are also configured as backups. Cloudflare Tunnel also supports `--edge-bind-address` [1] to bind the tunnel to specific network interfaces. So I started two `cloudflared` instances using different systemd unit files and bound them to two Ethernet cards respectively (Does that make any sense?).

3. Set up automatic recovery from power loss in BIOS.

4. Set up auto reboot from kernel panic after 5 seconds using `/proc/sys/kernel/panic` [3].

5. Set up syslog forwarding using syslog-ng and Telegraf [4] to a centralized InfluxDB instance back here in Canada. In case of kernel panic/system hang or any connection loss, we can still query the last available system log from Grafana dashboards.

6. Set up Grafana's No-data alerting. I didn't use any external alert manager but stick to Grafana's built-in alerting capabilities. It's the first time I used Grafana's built-in alerting functions. At least it works and meets our demands for now.

However, things will be much easier if the mini PC has Intel vPro or any other IPMI capabilities. Unfortunately, it doesn't. We also considered whether we should purchase a PiKVM. We haven't, yet. We still have a few days before the mini PC is sent out. Meanwhile, we are trying to conduct some stress testing (just using `stress`?) on the mini PC to see whether there are any issues.

Software patching the Voyagers

NASA wants the Voyagers to age gracefully, so it’s time for a software patch

It's fascinating to see NASA is still trying to push software patches to decades-old Voyagers!

Voyagers current locations: https://voyager.jpl.nasa.gov/mission/status/

Voyager 1 Voyager 2
One-Way Light Time (hh:mm:ss) 22:29:04 18:43:07
Launch Date Mon, 05 Sept 1977 12:56:00 UTC Sat, 20 Aug 1977 14:29:00 UTC

One way light time is 22 hours...I happened to come across an IETF draft (draft-many-deepspace-ip-assessment-00 [5]) recently on "Revisiting the Use of the IP Protocol Stack in Deep Space: Assessment and Possible Solutions" and also a new IETF mailing list on deepspace [6]. TCP/IP was invented and implemented in the late 70s, CCSDS was founded in the 80s, and NASA definitely used some very specific protocols to communicate with the Voyagers. But what about the future? NASA currently releases version 4 of "LunaNet Interoperability Specification" [7]. How will the existing networking stack work on an interplanetary scale?

Flash Player Emulator

> Ruffle is an Adobe Flash Player emulator written in the Rust programming language. Ruffle targets both the desktop and the web using WebAssembly.

https://github.com/ruffle-rs/ruffle

[1]: Cloudflare Tunnel run parameters
https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/configure-tunnels/tunnel-run-parameters/#edge-bind-address

[2]: Ngrok
https://ngrok.com/

[3]: proc(5) - Linux man page
https://linux.die.net/man/5/proc

[4]: Telegraf / InfluxDB / Grafana as syslog receiver
https://nwmichl.net/2020/03/15/telegraf-influxdb-grafana-as-syslog-receiver/

[5]: Revisiting the Use of the IP Protocol Stack in Deep Space: Assessment and Possible Solutions
https://datatracker.ietf.org/doc/draft-many-deepspace-ip-assessment/

[6]: IETF deepspace mail archive
https://mailarchive.ietf.org/arch/browse/deepspace/

[7]: LunaNet Interoperability Specification

LunaNet Interoperability Specification


Random bits of Week #42, 2023: HEPiX

HEPiX

This week, the HEPiX forum's Autumn 2023 [1] meeting was held at UVic. About HEPiX, quote from their website:

The HEPiX forum brings together worldwide Information Technology staff, including system administrators, system engineers, and managers from the High Energy Physics and Nuclear Physics laboratories and institutes, to foster a learning and sharing experience between sites facing scientific computing and data challenges. Participating sites include ASGC, BNL, CERN, DESY, FNAL, IHEP, IN2P3, INFN, JLAB, KEK, KIT, Nikhef, PIC, RAL, SLAC, TRIUMF and many others. The HEPiX organization was formed in 1991, and its semi-annual meetings are an excellent source of information and sharing for IT experts in scientific computing.

ref: https://www.hepix.org/

I learned about this event from the conversation with the UVic networking architect mentioned in last week's randombits #41. What surprised me is that this event covers a wide range of topics, from CERN/affiliated site reports, networking & security, storage & filesystems, cloud, virtualization and operating systems, etc. All the slides are available at [2]. It's amazing to see the gargantuan amount of data that CERN and its affiliated institutions have to deal with. For example,

The Worldwide Large Hadron Collider Computing Grid (WLCG) as a specific (and very large) example of HEP research infrastructure supports multiple CERN experiments, with a reported 200PB of data generated annually and distributed to over 170 computing centers in 42 countries. As a massively distributed infrastructure with approximately 1.4 million CPU cores and 1.5 exabytes of storage, WLCG makes use of Research and Education (R&E) networks which have been highly engineered to handle this as well as other data-intensive sciences. Within the connected R&E networks, WLCG further makes use of the Large Hadron Collider Optical Private Network (LHCOPN) consisting of dedicated physical and virtual links, as well as a global-scale L3VPN overlay called the Large Hadron Collider Open Network Environment (LHCONE) which provides additional dedicated resources and segmentation from other R&E traffic.

ref: https://datatracker.ietf.org/doc/draft-cc-v6ops-wlcg-flow-label-marking/

That's why high-energy physics has always been the driving force of the evolution of the Internet and all kinds of other related technologies.

perfSONAR

One of the tools I learned from the slides of HEPiX is perfSONAR [3] and I played with it a bit. If I understand correctly, on one hand, it's just a collection of wrappers of many networking diagnostic and performance evaluation tools, including ping, traceroute, iperf3, owping, etc and you can schedule tasks using `pScheduler` [6]. The test types can be found at [4]. However, what makes it appealing and useful is that end users can submit tasks to different testpoints (or perfSONAR instances) to initiate measurements. There is a Grafana dashboard showing the list of perfSONAR testpoints [5] and you can also install a dashboard for a specific grid/network [7]. To some extent, I think it's similar to RIPE Atlas, but it's more widely deployed in academic institutions. You can get started and install perfSONAR on your own. For example, start a perfSONAR testpoint by running a single Docker container [8].

Framework Laptop 16

The first hands-on video of Framework Laptop 16 is out by Dave2D [9]. As a current user of the 12th Gen Intel Framework Laptop 13 (previously mentioned in 一些2022年的感想), after using it for about a year, I'm very glad to see Framework as a company continues to evolve and grow steadily. I'm not a fan of big laptops, none of my previously used laptops exceeds 14". I do like the form factor of Framework Laptop 16 (now with six expansion slots!), especially the swappable extension bay system. As Dave2D mentioned, building the cooling fans into the rear module expands the possibility of future upgrades when you need more advanced cooling solutions. Though it's pricey, I do hope they can succeed and the 3rd party accessory ecosystem continues to grow further.

Wrinkle the duck

A YouTube channel that can bring inner peace. "Wrinkle The Duck" [10].

I, Voyager

An open-source software planetarium [11] that reminds me of the game Universe Sandbox [12].

Raspberry Pi Thermal Upgrade

I purchased a Raspberry Pi 4 Model B with the official fan case back in July, and have been running several programs (PiHole, Grafana, Cloudflare Tunnel, etc) on it. The official fan case does not help a lot, the temperature barely drops below 60 degrees. Recently, I bought a USB to SATA adapter and replaced the boot drive from microSD to a SATA SSD. Strangely, the thermal situation becomes worse, the fan kicks in a lot more frequently (and it's very loud). So I bought a new cooling fan, with a relatively "huge" radiator, and applied thermal paste. Now the CPU temperature rarely increases above 30 degrees. Huge improvements.

[1]: HEPiX Autumn 2023
https://indico.cern.ch/event/1289243/overview

[2]: HEPiX Autumn 2023 Slides
https://indico.cern.ch/event/1289243/timetable/#20231016.detailed

[3]: perfSONAR
https://www.perfsonar.net/

[4]: perfSONAR Test and Tool Reference
https://docs.perfsonar.net/pscheduler_ref_tests_tools.html

[5]: Current list of global perfSONAR services
https://stats.perfsonar.net/d/spFwAQi4z/perfsonar-public?orgId=2/

[6]: What is pScheduler?
https://docs.perfsonar.net/pscheduler_intro.html

[7]: ESnet perfSONAR Dashboard
http://ps-dashboard.es.net/maddash-webui/

[8]: Using perfSONAR with Docker
https://docs.perfsonar.net/install_docker.html

[9]: This Laptop Can Last FOREVER

[10]: Wrinkle the Duck
https://www.youtube.com/@wrinkletheduck

[11]: I, Voyager

About

[12]: Universe Sandbox
https://universesandbox.com/

Random bits of Week #41, 2023: IPv6

IPv6

Last week, I finally setup IPv6 support in my home network. My landlord uses Telus. Telus actually has end-to-end IPv6 support for quite a while. But I've always been reluctant to set up IPv6 in my home network.

For one reason, my landlord only gives me access to a WiFi access point, and I have been using an OpenWRT router to setup a wireless bridge [1], and connect my own router and switch behind it. The `relayd` package only had IPv6 support quite recently.

And IPv4...despite all the criticism on NAT, it just works. Especially since I started using Tailscale [2], remote login to my home network from the Internet, regardless of all the complexity of NAT, it works.

Recently, I've been doing a research project that requires some investigation on the IPv6 allocation of Starlink networks, I thought it was time to get some hands-on experience with IPv6.

To get a crash course and refresh on IPv6, I found the Netgate documentation [3] covers a lot of basic concepts of IPv6, and I can always learn something useful from wzyboy's blog [4]. Setting up IPv6 on OpenWRT with the `relayd` package is relatively straightforward, by following the documentation [1]. I did find something confusing on (3) in the Section of "Adding IPv6 support", probably because of the outdated documentation, but I did find some workaround from a forum post [5]. Nonetheless, it works.

One caveat though, I don't have access to the Telus router, which may have built-in firewall rules that disable the incoming IPv6 traffic. However, at least for now, I can use Tailscale or Cloudflare Tunnel to either remote login with IPv4 or publish my self-hosted services.

My institution (UVic, also maybe most major Canadian universities) has very sparing support for IPv6. BCNet and Canarie both have full support of IPv6 for a long time. And UVic, indeed has IPv6 support at the edge [6], with `2607:f8f0:c00::/40`, `2607:f8f0:c10::/48` and `2607:f8f0:c11::/48`. Last week, I happened to have a discussion with a networking architect at University IT Systems. He claimed that previously they indeed wanted to push the deployment of IPv6 in the campus, but Microsoft Update/Office 365 somehow doesn't work properly with dual-stack networks. (I believe I read some similar news before). And the OpenStack cluster they deployed had issues with IPv6 as well (I don't know what version they deployed at that time, but later last Friday, he told me the OpenStack cluster the university uses now has end-to-end proper IPv6 support already). So they retracted the IPv6 deployment on campus WiFi, and only enable it on case-by-case basis. For example, the university web portal does have IPv6 support.

```
~ dig @1.1.1.1 AAAA uvic.ca
;; ANSWER SECTION:
uvic.ca. 219 IN AAAA 2607:f8f0:c10::100
```

And some research groups have requested to use IPv6, such as the high energy physics research group that has research collaboration with CERN [8] [9].

"randombits" series...

This series was inspired by a friend of mine, he/she recently started this blog series [7] covering random topics he/she encountered during a week. I always read a bunch of random and weird stuffs every day on social media. Previously, I might just read it and forget it, or just archive the link in a random bookmark.
I hope my series can keep updating, at least for a while.

And this is the first blog post since I installed the ActivityPub plugin for WordPress [11]. It says the comments from the Fediverse will be displayed as comments of this blog post. Not quite sure how that looks like and how that interacts with the Fediverse. Follow the Fediverse account of this blog ([email protected]) and leave a comment! It turns out the ActivityPub plugin for WordPress is quite messy and creates a lot of messes, I might consider uninstall it someday in the future.

[1] Wi-Fi extender / repeater / bridge configuration
https://openwrt.org/docs/guide-user/network/wifi/relay_configuration

[2] Tailscale
https://tailscale.com/

[3] Netgate Documentation on IPv6
https://docs.netgate.com/pfsense/en/latest/network/ipv6/index.html

[4] IPv6 学习笔记 (In Chinese)
https://wzyboy.im/post/1536.html

[5] How to set up IPv6 with relay bridge
https://forum.openwrt.org/t/how-to-set-up-ipv6-with-relay-bridge/13723/5

[6] AS16462 University of Victoria
https://bgp.he.net/AS16462#_prefixes6

[7] マヨイノネグラ
https://blg.1e41.com/posts/999main.md.html

[8] ATLAS at UVic
https://particle.phys.uvic.ca/atlas/press.shtml

[9] The ATLAS-Canada network
https://iopscience.iop.org/article/10.1088/1742-6596/119/5/052032/pdf

[10] HEPNet Canada
http://www.hepnetcanada.ca/

[11] ActivityPub for WordPress

ActivityPub

Victoria Film Festival 2023

2023年一月初的时候我得知了温哥华岛上也有一个区域性的小电影节 Victoria Film Festival (VFF)。创立于1995年,定于每年的2月份进行,通常持续10天,展映一些加拿大本土和海外的独立电影,今年已经是第29届了。作为一个区域性的小电影节,其影响力和展映电影的数量/多样性当然比不上温哥华国际电影节或者是多伦多国际电影节。作为一个入门(?)电影爱好者,我得知消息的当下便决定购买一个自选5场电影的套票(64加币)已示支持。

本次电影节展映影片的排片表现在依然可以通过VFF网站获取(Wayback Machine 存档)。我选择的五部影片分别是(按照我实际观影时间排序):

  1. My Small Land (2022)
  2. Viking (2022)
  3. Savage Waters (2022)
  4. Into the Ice (2022)
  5. Godland (2022)

以下简单记录一下每部电影的观影感受。

第一场 My Small Land

My Small Land 是2022年的日本电影,讲述了一个在日本的库尔德难民家庭因为申请难民身份被拒后的各种遭遇。库尔德人主要分布在土耳其、叙利亚、伊拉克、伊朗四国境内,但是这一个民族历史上从来没有过属于自己的独立国家。20世纪90年代有不少库尔德人流浪来到日本,但是毕竟日本不是一个容易接纳移民的国家,临时居留许可需要定期续签,随时可能面临失去身份的危险,这部电影讲述的就是当女主角一家的难民申请被拒绝,临时居留许可被注销,工作和学习都受到不同程度的影响的故事。

女主角嵐莉菜很好看,根据日文维基百科的条目,她的母亲是日德混血,父亲是获得了日本国籍的伊朗人,有伊拉克和俄罗斯血统。 所以日本媒体介绍嵐莉菜的时候是「5カ国のマルチルーツをもつ嵐莉菜」,大意就是 has multiple roots in 5 countries 的意思?

观影体验,这一家电影院(Cineplex Odeon Victoria Cinemas)是我第一次去,至少这一个影厅的座椅是很柔软的皮椅很大很舒服。但是影院位于市中心,受限于空间限制,影厅都不大,隔音也一般。播到一些安静的镜头的时候甚至能听到一些隔壁影厅的声音。

本片由 University of Victoria Centre of Asia-Pacific Initiatives 赞助播出。

第二场 Viking

Viking 是2022年的加拿大法语片,算是科幻喜剧片,讲述了当人类第一次登陆火星之时,在地球上招募了另外一群和实际登陆队员性格类似的人,试图模拟登陆团队在火星上日常生活过程中遇到的困难,观察这群人会如何解决困难,并给火星上的团队提供参考意见。

这一场观影的人挺多,感觉观众整体还挺喜欢。本场电影由魁北克的 La Tournée Québec Cinéma 赞助播出,La Tournée Québec Cinéma 是一个致力于在加拿大英语区推广法语电影的组织。电影开映之前还有来自该组织的一个代表在现场发言,当然噼里啪啦一大段法语我是完全听不懂,现场也有一些法语观众。

第三场 Savage Waters

Savage Waters 讲述了冲浪爱好者挑战大西洋上偏远小岛危险巨浪的纪录片。一般,中间一段篇幅比较长的叙事有点无聊快睡着了,不过很多冲浪的画面确实非常刺激,感觉拍摄过程大部分应该都是 GoPro 之类的运动相机?

本场展映是在一个很小的剧院,回来之后查了一下才知道是一个历史非常悠久的剧院。最初开业于1949年2月,叫做 Fox Theatre。后来几经易手,现在的定位更像是一个小型的 Live House。

看了看1949年的报纸,现在的外观看起来几乎还是没有怎么变。

第四场 Into the Ice

Into the Ice 是2022年的丹麦纪录片,讲述了三位冰川科学家在格陵兰岛实地探访气候变化对冰川影响的影片。

在冰天雪地的格陵兰岛拍摄这些画面真是太不容易了。

第五场 Godland

Godland 讲述了19世纪一个丹麦牧师远赴冰岛的一个偏远地区建立一座教堂,在这期间和当地人之间发生的一些故事。

影片中主角牧师有一个摄影的爱好,扛着巨大的大画幅相机拍人像。片中交替出现丹麦语和冰岛语,虽然英语观众根本区分不出来。

本片由 University of Victoria Germanic & Slavic Studies 赞助播出。放映前有邀请一个来自 UVic 该学院的教授讲了几句,貌似现场还有好多去过冰岛的观众,据说本地也有一个不小的 Icelandic 社群。

总结今年本次电影节看的五部影片,发现只有看的第三场 Savage Waters 是英语片,其他分别是日语,法语,丹麦语和冰岛语。这五部影片里我自己最喜欢的应该还是第一部 My Small Land 吧,故事背景发生在日本,毕竟还是东亚文化背景,讲述的又是和新移民相关的故事,和现阶段的我比较容易产生共鸣。

看电影的爱好

原本我其实并没有看影展的爱好,还得感谢2018年底回到上海工作之后一位爱好电影的同学介绍我入坑了上海艺术电影联盟不定期举办的影展。我印象中朋友带我看的第一部影展电影是1969年的Kes,中文片名是「小孩与鹰」。后来参与了两届(2019年与2021年)上海国际电影节的抢票和观影。

平日里除了上海艺术电影联盟不定期举办的专题影展,上海电影资料馆也有一些不定期的周末放映活动。那两年(2020年对我自己也是一个观影空白)时间通过这些渠道看了不少平时很难在大银幕上看到的电影作品,有一些至今依然印象深刻。例如2021年度的「英伦电影大师展」放映了「奇妙的比沃格拉夫电影公司:欧洲最早的活动影像(1897-1902)」。在上海市最大的IMAX银幕之一呈现一百多年前欧洲的真实活动影像的4K修复版,真的非常震撼。

又例如在2021年5月的「俄罗斯电影大师展」中放映了前苏联长片「战争与和平」。在上海影城的千人影厅度过共计四场总共七个半小时的电影马拉松,也是非常难忘的体验。

原本以为离开上海之后来到温哥华岛就彻底与电影节告别了,没想到本地也还是有类似VFF这样的小规模影展,一开始还挺意外的。不过据我在这五场电影的观影体验来看,似乎大部分观众还是以本地面孔的中年人为主,年轻人比例很少,像我这样的亚洲面孔的观众就更少了。大概和电影节的影片题材也有关系,独立/艺术电影很难符合大多数年轻人的口味。

挺意外的是,本次电影节中也有一部来自中国的电影,Hidden Letters,中文片名应该是「密语者」,讲述的是「女书」这一种起源于湖南江永县的非常独特的文字系统,是世界上唯一一套由女性创作和使用的书写系统。由于排片时间不合适,没能在此次电影节中在电影院中观看,但是在电影网站上列出了Amazon Prime等可以播放的在线串流平台,有机会可以看看。

一些2022年的感想

按照往年的惯例(201720192021),这篇文章的标题大概会是《2022年度总结》,但是现在回想起自己的2022年乏善可陈,本文也是记录了一些琐碎且泛泛的感想,于是就有了现在这个标题。正因如此,这篇文章涉及了许多完全不同的主题,读者可以根据自己的兴趣选择性阅读。

观影

在往年的年度总结中占了很大一部分篇幅的是观影记录,包含在电影院上映的院线片、在各种影展/电影节展映的电影以及在串流平台观看的电影/影集。离开上海之后自然也就缺少了丰富的影展资源,今年在串流平台观看的电影/影集也不怎么丰富,平时也没有特意做记录,以下就尽可能罗列一下。

在电影院观看的电影

時代革命

讲述2019年夏天发生在香港的反抗运动的纪录片。本地的香港人社团在今年年初举办了两场该片的放映活动。(后来还有一场《憂鬱之島》的放映活动,但是我没有参加)。

Doctor Strange in the Multiverse of Madness

觉得普通。漫威电影宇宙第四阶段的内容大部分都不太能引起我的兴趣。不过去年上映的洛基独立影集还是非常精彩,期待预订于2023年上映的洛基第二季以及第五阶段中征服者康的戏份和多重宇宙的更多发展。

Top Gun: Maverick

最令我印象深刻的一幕是汤姆克鲁斯与 Val Kilmer 饰演的 Iceman 重逢时的场景。36年之后,Val Kilmer 因为喉癌而沙哑失声,而汤姆克鲁斯依旧卖命活跃在电影一线。

Bullet Train

轻松诙谐的夏日爽片。

Avatar: The Way of Water

CG 画面是如此精美,让人不禁感叹如今电影工业之发达。

在Netflix观看的电影/影集

紙房子

愛.死.機械人

終極攔截戰

灰影人

世紀戰疫

世紀炭疽恐襲

聯合 93

今際之國的有栖

神探白朗:抽絲剝繭

社交媒体

今年在社交媒体上发生的一件大事就是马斯克收购了推特。我的推特帐号注册于2011年,但一直到2015~2016年左右才开始放弃使用新浪微博而将推特作为日常使用的社交媒体。马斯克收购推特之后的种种恶劣事迹就不赘述了。由他的收购而引发的一股「推特难民潮」为 Mastodon 等「去中心化」的社交媒体带来了前所未有的流量和关注。其实我在2017年的时候就听说了 Mastodon (流传最广最常见的中文译名是「长毛象」,但是这通常被认为是一种误译,「长毛象」的英文名是 Mammoth,而「乳齿象」才是 Mastodon)。现在回忆起来应该是那段时间了解到有 g0v 这个社群,然后刚好在某个时间看到 g0v 的成员建立了一个 Mastodon 站点,于是就去注册了帐号。不过彼时的我并没有搞明白 Fediverse 联邦宇宙是怎么一回事,于是就荒废了这个帐号继续使用推特。

2021年5月和某朋友聊天的时候无意中提到了 Mastodon。这位朋友原先是网易 Lofter 的用户,后来 Lofter 关闭之后转向使用了 Mastodon(尽管这位朋友也有推特帐号,但朋友的推特帐号只用来关注了一些画师,而日常还是以 Mastodon 为主)。惊讶之余我开始去了解了一下 Mastodon 是如何运作的,并出于爱折腾的心态自己也搭建了一个 Mastodon 站点,慢慢开始意识到在如今社交媒体依然可以是脱离广告和推送算法而回归最原始朴素的社交本身的。于是从2021年5月开始逐渐降低了自己使用推特的频率,而今年11月的这一波「推特难民潮」使得更多的用户选择逐渐离开推特,其中也包含许多我在推特上关注的用户。如今我的 Mastodon 个人时间线也已经挺丰富,可以满足日常刷社交媒体的需求了。如果读者想要了解 Mastodon 以及 Fediverse 联邦宇宙的概念以及除了 Mastodon 以外其他的 ActivityPub 实现,可以阅读此文 Fediverse 联邦宇宙 by wzyboy。我在 Fediverse 中的主要帐号是 @[email protected],欢迎读者追踪。

减肥

从今年年初开始有意识地控制自己的体重并尝试减肥。一年下来至少从体重的数字上看倒也挺有成效,尽管在许多朋友看来减肥的进度有些过激了。

足迹

今年的大部分足迹依然只停留在温哥华岛上。4月的时候随同实验室的同学去了 Nanaimo,8月去了 Salt Spring Island,算是自从去年来到岛上之后第一次离开本岛。8月底随朋友乘船观鲸(一些观鲸的照片:https://photo.jinwei.me/index.php/category/23),在靠近美加边境的海峡被海风吹到瑟瑟发抖。至今依然没有重新踏上温哥华地区的土地,但是明年肯定会去了(吧?)。

Podcast

今年依然是 Podcast 重度用户。Podcast /播客这种形式似乎是最近几年才在中文圈内火起来,涌现出了许多新的中文 Podcast 节目。许多人批评 Podcast 这种形式的缺点是资讯不易二次检索(相信绝大部分节目都不可能提供逐字稿或者是包含同等信息量的文字版),或者是资讯密度过低。我基本上认同这个观点,因此我个人收听 Podcast 的习惯是收听一些不那么费脑的谈话/新闻类节目,收听这些节目的过程中即使偶尔分神或是错过了一些内容也不会对整体的节目造成太大的影响。再加上我收听 Podcast 的时段通常是早晚乘坐公交车通勤以及做家务的时候,因此很多时候 Podcast 节目起到的是一种陪伴的作用。

之前几年收听的大部分是台湾的 Podcast 节目,譬如「台灣通勤第一品牌」,「壹加壹電台」,「呱吉」这种轻松日常讲幹話的节目。也有一些更严肃的诸如「《The Real Story》By 報導者」。还有一类是新闻资讯 Podcast,最常听的是 BBC Global News Podcast,因为每集时间长度刚好等于我通勤的单趟时间。今年下半年开始尝试听更多元题材的英文 Podcast,比如 The Journal., Front Burner, The Prince, The NPR Politics Podcast, The ReadME Podcast 等。

疫情

COVID-19 引发的全球大流行发展到现在,世界上绝大多数的国家似乎都快进入了疫情的尾声。万万没想到11月底的中国几乎毫无预警地来了政策急转弯,随之而来的感染数字的急速上升不禁让人错愕。不管是原先的「共存」与「清零」之争还是当下许多人对于政府开放过快的批评,我最近几年开始认识到的一点是任何一个社会议题总是会存在不同的声音,不可能做到完全调和。然而许多人就是以极端的二极思维看问题,似乎我们的政府也是从极端的一刀切防控迅速转向到一刀切放开,让人非常失望。各地严厉防控期间,我们看到的是各个小区内的住户们自发的团购互助,没想到现在又看到了在药品等必需品上的自发互助。希望国内的朋友们可以早日渡过这个难关。

Framework Laptop

下半年购买了 Framework Laptop。尽管同样的价钱在市面上可以买到配置更好的笔记本电脑,但是出于对 Framework 这家公司理念的认同以及逐渐受够了 macOS,选择购入了 Framework,配备了12代 Intel i7 1260P 的 CPU,自行选购了64GB的内存,并第一次尝试使用 i3 作为 Linux 桌面日常使用。

上一次长时间将 Linux 桌面作为日常使用大概还是2016年左右。那时候在我自己的第一台笔记本电脑 Thinkpad E430c 上安装并使用 Ubuntu 长达一年多吧,直到在第一家公司实习了几个月之后换到了 Macbook Pro。这次在 Framework 上安装的 Linux 发行版是 EndeavourOS,一个基于 Arch Linux 的衍生版。挺喜欢 EndeavourOS 的一点是其提供的 i3 配置文件还挺适合新人上手。现在的 Linux 桌面体验已经比2016年提升了许多,另一方面也是因为自己的常用软件发生了变化。2016年那会儿装完 Linux 之后我常做的第一件事就是使用 Wine 安装腾讯QQ和微信。现在虽然腾讯又重启了 Linux QQ 的项目,使用 Wine 安装微信也有了一些比较成熟可用的方案,但是他们已经不是我在电脑上绝对必备的软件了。

目前这台 Framework 笔记本已经使用了两个多月,唯一不太满意的是这块2256×1504分辨率的屏幕。尽管现在 Linux 对于非整数倍屏幕缩放已经比以前成熟了许多,但是我还是更倾向于喜欢使用1080P的屏幕使用原生1X的缩放来避免许多额外的配置麻烦(当然如果使用 KDE 或者 Gnome 又能比使用 i3 减少更多麻烦)。当然,得益于 Framework 模块化的设计,在不远的未来不论是 Framework 自身推出了不同的屏幕选项或是有了第三方可兼容的屏幕(例如4K分辨率或是带有触控功能的屏幕),只需额外单独购买屏幕组件替换即可,而不必淘汰整台电脑。

摄影

今年无意中踏入了胶片摄影这个大坑,可以说现在真不是一个最适合入坑胶片摄影的时机。一方面由于过去三年疫情的影响,胶卷厂商的供应链也不可避免受到了影响。加上胶片摄影在全世界范围内的「文艺复兴」,不断推高胶卷和二手胶片相机的价格。但胶片本身的质感和色彩还是非常吸引人。今年总共拍摄了7卷胶卷,尝试了许多不同的胶卷型号来找到自己最喜欢的色彩。我拍摄的胶卷数字化后的照片可以在我的在线相册中找到:https://photo.jinwei.me/index.php/category/7

除了胶片摄影之外,今年卖掉了原本的 Canon M6 Mark II,反而购买了一台二手的 Canon 6D Mark II 和一颗 Canon EF 24-105mm f/4L IS II USM 镜头。初衷是想从 APS-C 升级到全画幅,虽然更合理的升级路径是选择佳能更新的 RF 无反相机和镜头,但最终选择了旧世代的EF单反的理由一是更便宜,二是EF镜头还可以配合我的胶片相机(在eBay花了40多加币购买了一台同样使用 EF 镜头的 Canon EOS Kiss III L,虽然我购买的第一台胶片相机是使用 FD 镜头的 Canon A-1)使用。

以下列举今年喜欢的几张照片。

Kodak Ektar 100

晋美海鲜酒楼/Don Mee」是位于维多利亚 Chinatown 的一家近百年历史的餐馆。而维多利亚的 Chinatown 是加拿大最古老的中国城,全北美范围内也只是晚于旧金山的 Chinatown位于历史悠久第二位。如今维多利亚的 Chinatown 只有范围很小的一两条街道,但 Don Mee 的广式早茶的口碑据说非常好。

Fujicolor Superia X-TRA 400

某一个下午拍摄的,非常喜欢这张照片中下午阳光柔和的色彩。

Fujicolor Superia X-TRA 400

大概是拍摄于6月份的 Pride Month,本地的一家婚纱店外。当时已经接近傍晚,天色渐暗,隔着马路拍下了这张彩虹色的照片。

Fujicolor Superia X-TRA 400

这一张依然是富士的胶片。还记得那天下午带着相机拍了不少照片,结果最后整卷拍完把胶卷往回卷的时候 Canon A-1 的过卷扳手(film rewind knob ?)卡住了,打开后盖的时候发现还剩好长一截胶片没有卷回盒子里面,痛失好几张照片。这张便是为数不多仅存的那天下午拍摄的照片,不知道那几个红色的手印是不是这家的小朋友印上去的。

Kentmere Pan 100

没记错的话这两张黑白的是在今年加拿大国庆日 Canada Day 的时候本地社区举办的庆祝活动上拍的。

更多的照片可以前往 https://photo.jinwei.me 观看。

对2023年的展望

2023年对我来说应该会是充满挑战和变化。预计会在2023年夏天完成硕士论文和答辩,毕业,并在温哥华找一份工作(也有可能是远程?),随之而来的是可能需要从维多利亚搬家到温哥华地区,以及最重要的是还要申请 PGWP 签证和枫叶卡的BC省提名项目。完成每一件都不容易。

与此同时还得和自己的专注力缺失做斗争。尽管觉得目前的状态还没有严重到需要寻求专业诊断是不是 ADHD 的地步,但偶尔也会受到没办法集中注意力做事的困扰,包括但不限于需要集中注意力看论文、看书、写代码的时候,有时候对于需要花2小时看的电影也没办法集中注意力看完。但目前还算值得庆幸(?)的是,一旦抓住了自己的注意力开始做某件事,这个专注的时间段还是可以持续挺久的,只要中途不被来自外界的干扰打断(例如同个实验室内其他人的说话声)。所以也许我该尝试做的是找到一个更适合自己的工作和学习的环境。

另外依旧是希望各地受到疫情影响的生活可以早日尽可能回归正常,希望不要发生战争,世界和平。