Essays

NixCN Conference Shanghai

The article documents my personal experience of participating in a community conference. Therefore, I do not intend to include too much technical content.

Jv.··11 min read
STU

GMT+8 This event took place on August 9th, 10th in Shanghai, China, and was hosted by @prince213. It is the first conference in China dedicated to Nix. As I didn’t take many photos at the time, the images used in this article may have been taken by other attendees. I will provide a list of photographers in the footnotes. e.g. the first photo below was taken by @nihui.

This content was modified by an LLM to fix structure and syntax. Some parts may still be incorrect. Since it was ported over from a different framework, conflicts are to be existed.


First Encounter

Within two days, I spoke less than 10 sentences face to face.

during.webp

As someone with severe social anxiety, I’ve always preferred expressing myself online. I dare not say a single word to people I’m not close to. I didn’t even know what I was afraid of. watching everyone chat freely, I want to join in too, but I just can’t bring myself to speak. In early August, I saw the promotion for the Conference and joined their channel, but I froze for a moment when I saw the sign up form. It’s, uh, scary.

Should I go or not? I couldn’t figure out why I hesitated.

  • If I don’t speak up now, eventually, I’ll have to.
  • If I can’t learn to interact with people now, in the future, interactions always fail.
  • Or, was it because I lacked confidence in my looks?

Well, I don’t care about my appearance, nobody can decide it, just keep tidy then it is fine. I have to show my face to people anyway, can someone hide forever? High school doesn’t leave me much time to gain social experience, although hesitated for a long time, I think, just go for it. After all, I’m still a student, it’s okay to embarrass myself a little. I might as well use up all the awkward moments I’d have in the future ahead of time, and,

it’s even(?) a gain
.

Eventually I decided. This was once revealed to me in a dream :)

dream.jpg

I told my parents about it, and to my surprise, they agreed right away! and were unusually excited. Maybe it’s because I’m not like other high school students who stay home all day? I’m not sure. Few of us play games or scroll through short videos at home, we’re just a group of students who balance study and activities. In recent years, the local government leveled several hills and built Lishui Airport, even our mountainous area now has flights. It was the perfect chance to take a plane for the first time.

Some people might laugh at what I was going to say in this note block, I can understand, but I’m not going to lie and not afraid of being laughed at. These are all experiences I’ve never had before, that was it. Looking back now, this trip gave me so many firsts.

  • Have a flight, the time I was with Airbus A3201 MU6986 ;
  • Leaving Zhejiang Province2 (Like California in the U.S.) ;
  • Take a high speed train and a subway rides ;
  • Participating in a social conference individually ;
  • And many many others …

When I arrived in Shanghai, I was struck by how huge and crowded the city was. The crowds weren’t a big problem, but the prices were shockingly high.


Off We Go!

Take the Plane

ariport.webp (Above: Reached the airport, below: landed in PVG, Shanghai) arrived.webp Too bad it’s a night flight, nothing is visible.

Reach the Venue

ground.webp (Left is the photo of the venue, taken by @prince213 on August, 6th. Right are tags of attendees)

waiting.webp

Volunteers had already arrived early that day to set up the venue. Since it was the first of its kind for Nix in China, objectively speaking, attendance wasn’t huge around 60 people judging by the name tags, but it was enough to scare me half to death. Well, since I’m here, I’d better get some experience out of it, and better don’t complain again.

Some of the machines on display were quite special. For instance, there was a Loongson3 3A6000 capable of running NixOS and even playing Minecraft, which I hadn’t expected at all. And, amidst this linux con, I brought a Windows laptop. Uh… maybe if I just keep Tailscale SSHing into my workstation, nobody will notice. Em mm, I hope.

“Wow, an undercover agent.”

loongson.webp

If even the Loongson can run it smoothly, compatibility shouldn’t be an issue. But my NixOS setup with an R9 9950x and 7200MHz RAM(ECC:ON) is unstable, throwing tons of Corrected Errors in L1 cache. I’ve tried many to tackle it, didn’t work. I’m not sure if it’s a hardware problem because… actually the instability only happens on NixOS

LMAO
. Really reproducible, bro.

Take the Subway

Yes, I use a COMPASS to figure out which subway I should take.
…
Just about passable for now. Uh, perfect to use as embarrassing dirt.

Ownership Moved to Main

It’s Rust Calling! Oops, wrong script.

A functional package management ecosystem for perfectly reproducible, rollback-ready environments. Its core components:

ComponentDescription
NixThe underlying functional language & package manager
NixpkgsAs the name, also the world’s largest monolithic software package repository
NixOSA Linux distribution built entirely around Nix, more originally reproducible

Routines and Arrangements

Day 1

  1. 09
    On-site check-in and registration
  2. 10
    @Zh40Le1ZOOB User program config management with wrappers
  3. 10
    @NoaVirellia Promote Nix adoption within your company
  4. 11
    @Aleksana Personal review focus areas and preferences
  5. 11
    @Aleksana Implementation deep dive: Nix/Nixpkgs/NixOS
  6. 12
    Project demo, lunch break and networking
  7. 14
    @Jinser Evangelize Nix effectively in the workplace
  8. 14
    @prince213 NixOS mirror hosting without Kubernetes
  9. 15
    @Leah Nixpkgs packaging from personal to upstream
  10. 15
    @linj Panel: Nix commercialization in China
  11. 16
    Afternoon coffee break and discussion
  12. 16
    @wegank Nix adaptation and support for loongarch
  13. 17
    @prince213 Closing speech and summary of Day 1

dimsum.webp

Day 2

  1. 09
    Morning check-in and preparation
  2. 10
    @prince213 Opening address for Day 2
  3. 10
    @prince213, @NoaVirellia Workshop: Nix basics for beginners
  4. 11
    Tech demo, lunch and casual networking
  5. 14
    @ryan4yin My journey with the Nix community
  6. 15
    Mid-afternoon coffee break and relaxation
  7. 15
    @dram Introduction and overview of nix-dram
  8. 16
    @linj Declarative Emacs config in Nixpkgs
  9. 16
    @HaonanChen Nix usage in scientific computing
  10. 16
    @linj Tips for contributing to Nixpkgs
  11. 17
    @Cryolitia CJK support analysis: a Steam case study

Time for Meeting? Having Classes

After that, I just listened along as usual. Let me go ahead and share my current personal thoughts on Nix, Nixpkgs and its Community. As for the various knowledge and information provided during the agenda, you can find it all here.

If it was said that Gentoo Linux has grown up alongside me, then,

K.I.S.S. we will also crash and burn together, too.

In the final moments, it will be just like this:

∃DepsChainsmess▹Chaos§Rm∗\mathit{\mathbf{\exists DepsChains_{mess}\triangleright Chaos\S Rm*}}

Each standalone Nix declaration file corresponds to one system environment. This also gives it unique vitality when users have multiple devices or complex working scenarios. With Nix, the situation above can be effectively prevented. System crashed? Just select a hash entry and roll back. Got a new computer? Just run:

doas nixos-rebuild switch --flake /path/to/your/flake#your-hostname

Nix is a great fit for scientific research work4 and people who love tinkering, esp. those into ricing who are still Linux hopping (no offense intended). Rollbacks are incredibly convenient, and its strong declarative design makes syncing environments across multiple machines really straightforward. This is a godsend for people with multiple computers, like myself, for instance.

(PkgMgr≠Sys∧Sys≠Lang∧Lang≠PkgMgr)≡T∀Nix  ⟹  PkgMgr⟺Nix TrinitySys⟺Nix TrinityLang\left( \mathbf{PkgMgr} \neq \mathbf{Sys} \land \mathbf{Sys} \neq \mathbf{Lang} \land \mathbf{Lang} \neq \mathbf{PkgMgr} \right) \equiv \mathbb{T} \\[0.8em] \forall \mathbf{Nix} \implies \mathbf{PkgMgr} \overset{\text{Nix Trinity}}{\Longleftrightarrow } \mathbf{Sys} \overset{\text{Nix Trinity}}{\Longleftrightarrow } \mathbf{Lang}

That said, it doesn’t seem to suit me all that well. First, there’s the stability issue I mentioned earlier. Second, Nix feels like it goes beyond my actual needs. Kubernetes and Podman are more than enough for what I do. Just run the codes, by server side. ure, Nix has many advantages compared to Kubernetes as well. So there are also some people who prefer Nix, like the organizer of this event, @prince213.

k8s.webp continue.webp

Of course, there are also some special cases, like @ryan4yin, the author of The Nix & Flakes Book.

By the way, I also highly recommend Ryan Yin’s The Nix & Flakes Book It is the perfect choice for getting started with Nix, which is an unofficial, beginner-friendly.

ryan.webp

Translation in YAML

messages:
  - id: "1"
    speaker: "Kris Hu"
    content: "Come give a hot take on Yin's k3s on NixOS setup."
  - id: "2"
    speaker: "Ryan Yin"
    content: "Regarding the issue of configmaps being arbitrarily modified, enterprise solutions involve tightening permissions—typically only allowing updates via GitOps pipelines."
  - id: "3"
    speaker: "Ryan Yin"
    content: "I think the overall direction is fine. I use k3s on NixOS simply because I already know k8s really well."
  - id: "4"
    speaker: "Kris Hu"
    content: "I tried reading that part of your config, it felt like a brain upgrade."
  - id: "5"
    speaker: "Ryan Yin"
    content: "I'm a professional myself. This is the level of complexity I deal with at work every day, so it's totally fine for me to use this setup personally."

ryan_lt.webp (above is Ryan Yin’s laptop, photo taken by Ryan Yin)

From community side, contributors to the Nix community come from all over the world. Due to inconsistent review quality, some packages with strong regional characteristics may not be well understood by others. As a result, some poorly packaged versions can be merged into the main branch relatively quickly, though the situation has improved somewhat recently.

dingtalk.webp

In addition, many issues are not caused by packagers, and such problems are particularly prominent with close source software. The dingtalk package shown above is a pull request I previously submitted to nixpkgs (also first one). Apart from the issues I pointed out in my comments, there are also various other small and large problems with dingtalk. I tried to report these issues to Alibaba , but either the relevant features were directly removed,

Wow, great job “fixing” the bug by just removing the feature 🫰🏻
or there was no response at all.

meta = {
    description = "Enterprise-level communication platform developed by Alibaba";
    homepage = "https://www.dingtalk.com";
    license = lib.licenses.unfree;
    platforms = [
        "x86_64-linux"
        "aarch64-linux"
        "x86_64-darwin"
        "aarch64-darwin"
    ];
    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
    maintainers = with lib.maintainers; [
        svecco
        prince213
    ];
    mainProgram = "dingtalk";
};

Nowadays, it is extremely difficult to reach a human customer service representative at Alibaba opening the customer service interface only leads to an unhelpful AI chatbot. These are problems I cannot resolve on my own, and many other close source software packages suffer from the same issue, such as ToDesk.

On a side note, nixpkgs is the world’s largest monolithic software package repository, with more than 400,000 pull requests totally. This has made reviews extremely tough. Even though there are far more active maintainers now than when I am using Gentoo, it’s still common for issues to sit unreviewed or unmerged for quarters.

oldpr_example.webp (Above shows a randomly selected PR that has been ready for merge for a “while”).

To ease the problem, nixpkgs has added a bot that lets maintainers merge their own pull requests. But using the bot requires you to be a maintainer first, which creates a “chicken or egg” problem unless you actively reach out to people. I hope the Nix community will come up with better solutions down the line.

I’m still optimistic about Nix’s future. In a time when systems and distros are thriving everywhere, it’s definitely a trend to watch. NixOS is “the BTW” now.

Interludes

Chairman Aleksana

presidenta.webp

Translation

Unswervingly uphold the leadership of Chairman @Aleksana .

If you log in to her personal homepage, you’ll find that the cards or tiles in the middle, and even the text, are draggable; Just a heads up, she’s usually busy.

@Aleksana is one of the vital figures in the Nix community, a dedicated contributor, and a pretty respected person for me. Although she participated in online way, we still have a, em, memento.

presidenta.webp

Old Friend

kun.webp

What Does It Mean?

This is a Chinese internet meme. The laptop is a Lenovo Legion.

Glasses

Some people like to push their glasses up with their middle finger.
They may sometimes right beside you, staying somewhere, or hide themselves.
Getting too caught up in listening, may not control the force well when pushing glasses.

So I pushed my glasses up with my middle finger, look at the person speaking on stage.
and unsurprisingly,

glasses broken then, from the middle btw
. Good job. Pop!5.


Time to Go Back

I took a few photos before I left. Opportunities like this don’t come easy for me. shanghai.webp

Two days only. It felt like torture the whole time. I came here to push myself, to get over this fear, to talk to people. I failed. Barely a word out of my mouth the entire time. But even so. It really did broaden my horizons.

I know I need to step up. Next time.

If there even is a next time
*sigh.


Chores

People Mentioned Specially (A-Z)

Aleksana@aleksanaa. Really bad, don't watch. Haonan Chen@chn and many. A man not as cute as his avatar. Ryan Yin@ryan4yin. Long and hard the road, but walkers shall arrive. Sizhe Zhao@prince213. ShanghaiTech University, the vice president of the GeekPie Association.

Speechless.

glasses.webp Actually, I’ve become even more socially anxious 😭

References

  1. You know, as an aerospace enthusiast, DCS player, I only took my first flight today … ↩

  2. Strictly speaking, when we visit relatives, geographical factors mean we technically cross the provincial border a tiny bit. But we’ve never done it with a plan. ↩

  3. Loongson is a leading Chinese brand of homegrown general purpose CPUs. It has built the independent LoongArch instruction set architecture. Its processors serve PCs, servers and embedded systems. Detail can be found in here. ↩

  4. Haonan Chen is one of the attendees who has dabbled in this field. I find him to be a fascinating character really. ↩

  5. Like what you can hear in chemistry laboratory. Attracting everyone’s attention stare. ↩

Tags#Life
Share
Written by
Jv.

Explore. Dream. Discover.

Continue reading

Essays·

Encounter Apache Iggy

Documenting my experience as a student contributing to Apache Iggy, an incubating high‑performance message‑streaming project under the Apache Software Foundation. It covers many obstacles overcoming, alongside pitfalls.

Jv. · 20 min