惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
Jina AI
Jina AI
雷峰网
雷峰网
月光博客
月光博客
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
B
Blog RSS Feed
美团技术团队
C
CXSECURITY Database RSS Feed - CXSecurity.com
小众软件
小众软件
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
Last Week in AI
Last Week in AI
A
Arctic Wolf
Latest news
Latest news
Attack and Defense Labs
Attack and Defense Labs
I
Intezer
F
Fortinet All Blogs
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog
S
Secure Thoughts
Help Net Security
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
V
Visual Studio Blog
P
Proofpoint News Feed
博客园 - 【当耐特】
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
Stack Overflow Blog
Stack Overflow Blog
Know Your Adversary
Know Your Adversary
云风的 BLOG
云风的 BLOG
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
H
Help Net Security
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tenable Blog
Cloudbric
Cloudbric
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog

Linux - Tag - This Cute World

OS as Code - My Experience of NixOS NixOS & Nix Flakes - A Guide for Beginners
Why do I explore these niche technologies?
Ryan Yin · 2023-08-01 · via Linux - Tag - This Cute World

I have dabbled with many niche technologies, and this year, the main ones I explored are NixOS, window manager i3/hyprland, and Neovim. NixOS, in particular, took me to a whole new level - I even created an open-source bilingual booknixos-and-flakes-book to help beginners get started. Additionally, I worked on several NixOS-related open-source projects like nix-darwin-kickstarter and ryan4yin/nix-config, which all received positive feedback.

Based on my experiences with these niche technologies and the frequent questions I receive (e.g., why did I choose NixOS / Neovim /Flypy Chinese Input Method? What are their advantages? Can they really improve productivity?), I would like to briefly share my thoughts on them.

“Niche” refers to being different from the mainstream. Niche technologies are those with a relatively smaller user base within their respective domains.

According to this definition, I can list some niche technologies I have encountered in different fields:

DomainNiche TechnologiesMainstream Technologies
Text EditorsNeovim, EmacsVSCode, Pycharm, IDEA
Keyboard LayoutDvorakQWERTY
Linux DistrosNixOS, Gentoo, Arch LinuxUbuntu, Fedora
Window Managersi3, hyprlandKDE, GNOME

Most people tend to choose mainstream technologies in these fields due to their lower learning curve and ease of use. I was once part of the majority, but I gradually discovered the advantages of niche technologies, which led me to try and eventually transition to them.

Niche technologies obviously have some advantages to attract a portion of users and make them choose these technologies over mainstream ones.

Based on my personal experience with these niche technologies, they share some notable common characteristics.

Firstly, they have a common downside: higher learning curve and more time required to get familiar with them during the initial stages.

This filters out the majority of users, and only those who enjoy tinkering and embracing challenges will be willing to explore these niche technologies.

For instance, with the Dvorak keyboard layout, the learning curve is steep, requiring a significant amount of time to memorize the key arrangement and practice, leading to a challenging input experience in the early stages. To achieve the typing speed you had with the QWERTY keyboard layout, you might need to practice Dvorak for at least an hour a day consistently for a month.

Now, let’s discuss their common advantages:

  1. High customizability: Users can freely customize various functions according to their needs.
  2. Strong sense of control and excellent user experience: The high level of customization gives users a sense of complete control while using these technologies, resulting in an excellent user experience.
  3. High user retention and active communities: Users continuously explore, learn, and customize these technologies, creating a strong sense of belonging within the communities.

Due to these reasons, once users successfully familiarize themselves with a niche technology (e.g., dvorak keyboard layout, Neovim/Emacs editors), it becomes challenging for them to revert to the previous mainstream solutions. They will find the previous solutions less convenient and enjoyable.

I have explored various niche technologies, and curiosity is the primary reason. However, what makes me stick with them is their excellent user experience.

For instance, with Neovim editor and Hyprland window manager, once configured, they are aesthetically pleasing! Moreover, Neovim is exceptionally fast, even too fast! This speed may not impress those VSCode / IDEA users who haven’t experienced Neovim before, but once you get used to it, you’ll find the speed truly impressive, just like the character Tu Hengyu exclaims in the The Wandering Earth 2 (550W is too fast! This speed is too fast!).

Additionally, after mastering these technologies, I find them enjoyable to use. The keyboard-driven interaction provides a sense of control and smoothness(elegant, so elegant!).

My NixOS + Hyprland Desktop

My Neovim Editor

Similarly, my love for NixOS is based on similar reasons. NixOS with its declarative, reproducible (consistent runtime environment), OS as Code features aligns perfectly with what an Site Reliablility Engineer like me desires. I couldn’t wait to use it and even wanted to improve it promptly to make it suitable for more scenarios.

A few days ago, I saw a comment from a foreign netizen on 4chan (although the language was a bit extreme, I still somewhat agreed…): Completely and utterly unacceptable. Imagine having a tool that can’t even properly undo an operation and then relying on it to manage an operating system. apt, pip, pm, rpm, pacman, whatever are all a mad fucking joke.

Many people claim that niche tools like Neovim editor, i3 window manager, can boost productivity, but I believe it is a misconception. In fact, many of these tools or technologies can be time-consuming distractions, driven by one’s interests to continuously explore their boundaries and adjust configurations to better suit individual needs. During the initial phase, the time invested in these endeavors often outweighs the saved time from increased productivity.

So, ultimately, trying to use these technologies to significantly boost productivity is not realistic. They can improve your efficiency, but to a limited extent, unless your typing speed is the limiting factor in your productivity, emmm…

Or some may argue that once you become completely proficient, vim/emacs makes it easier to enter a state of flow? That is also difficult to say.

If we look at it from a purely pragmatic perspective, there may not be many benefits; it’s like playing games, just spending leisure time.

Why do you always delve into these things that are useless for the business? (teasing tone)

However, compared to doing something boring for leisure, there are some useful takeaways. For instance, when I encounter a bug in AstroNvim , I provide a PR to the upstream repository. When I find that NixOS documentation is inadequate, I write my own documentation and share it. If I notice that NixOS lacks support for a SBC I have, I might try to port it. And if I find that a certain tool lacks a feature I want, I might just write one myself.

The experiences gained, open-source projects created, PRs left in upstream repositories, and the appreciation received in the community all feel valuable. It may not necessarily have business value, but it’s fun, and you get to make friends, help others, and leave your mark in the open-source community - isn’t that interesting?

Linus, when he first created Linux, did itjust for fun.

You can’t connect the dots looking forward; you can only connect them looking backward. So you have to trust that the dots will somehow connect in your future. You have to trust in something — your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.

Stay Hungry. Stay Foolish.

——You’ve got to find what you love, by Steve Jobs, CEO of Apple Computer