draft: technology has always been social

This commit is contained in:
Colin 2024-03-19 10:40:55 +00:00
parent bb10cd8853
commit 9a3b2d74c3
1 changed files with 105 additions and 0 deletions

View File

@ -0,0 +1,105 @@
+++
title = "Technology Has Always Been Social"
description = "add date field and remove DRAFT previx to link this from the index"
+++
stuff:
- NixOS (board) accepts Anduril as sponsor
- community is divided
- role of the community in decisions formally delegated to the board is unclear; not formalized
- only two actors can make direct decisions here: the board, or Anduril
- what's the responsible thing to do?
- both parties have the ability and the responsibility to make the Bad Thing go away.
- if the board does not, or can not (legal restrictions), Anduril remains responsible.
- but what *is* open source?
- volunteers
- from every country
- dreamers
- tell my own story
- people who refuse to compromise
- on ideals
- morals
- technical limitations
- but wait, how can we collaborate if we refuse to compromise
- compromise being "win-lose" scenarios
- mpv has 1000 options because each of those options greatly benefits _someone_ while being ~neutral for everyone else
- group-level consensus can not exist
- therefore, hypocratic
- nearly every open source project starts as a worse version of something else, but with a dream of being better
- we are, after all, *dreamers*
- take the route which does no harm, even if it sets the project back in a technical sense: because that's exactly the type of setback we're equipped to deal with
- in the extreme, this means no sponsorship, period.
- however, we already *do* compromise
- starting from scratch is truly infeasible
- we use closed-source microprocessors
- so it's a minimization game
- foregoing Anduril sponsorship is *possible*. it's a set-back, not an ending.
- foregoing all sponsorship is.. plausible. not immediately, but we can plot a path to it.
----
this is one of those posts where i try the impossible of sharing everything which makes me _me_, with a stranger behind a screen.
so please, forgive the ambiguities, assume the good faith interpretation wherever there is one, and above all try to _understand_: don't nitpick my beliefs, just try to understand what it would be like to _have_ them.
## The Context
i spend a lot of time around NixOS. less than some people, but more than many. "doing things with Nix" is the closest thing i have to an occupation.
NixOS is _growing_. it's way beyond a church group, it's more like a small city.
we don't _know_ eachother, not _really_: the average contributor is unlikely to ever interact with the other average contributor.
it may take months of contributions before you begin to recognize names at _all_.
and within this space we've somehow managed to build an extremely renowned operating system, "top in class" along more than one metric (package count, freshness, contributor count (TODO:?)), as collaborators, as _volunteers_.
how? why? the economist should raise his eyebrow at this. anyone who's worked a corporate internship should be skeptical about free labor. even those of us who _think_ we understand it, should be cautious.
frankly, i'll take the cop-out and say "there is no _one_ reason why we do open source". anyone who claims it's simple -- say, that open source is only about the code; that contributors all have some unexplained loyalty to "the codebase" -- is being dishonest. but i can, at least, explain why _i_ contribute.
## My Story
the 2000's were my childhood. CD-ROMs were a part of it. families mostly had just one shared desktop. if you and your sister both wanted to use the computer, you either set a timer and took turns, or one of you went to the library.
sure, whatever, old timer (or youngster). the point is that from those very first moments it was inseparably social. i went to the library during lunch break to play Neopets. i'd find the person seated next to me in-game and challenge them in the Battle Dome. another friend would be making a fansite, writing HTML in Notepad (poor thing). my brother was TA'ing a comp sci course. come summer, everyone here except one would team up and code a Neopets bot, and by next school year my Neopet was a beast and the one of us who spent the summer camping instead was totally crushed in the next Battle Dome.
except i don't actually remember doing the last part, probably Neopets became uncool and i gave my account to a younger friend. instead, that HTML friend got into _Game Maker_ next. and we found a couple other friends, and the four of us made some silly games, an awful website on some .tk domain for our brand, burned that shit onto a hundred CDs with a cover made in MS Paint, placed them in a giant pile in the computer lab, and somehow didn't get laughed out of the school. actually, i'm fairly certain the school enacted some new rules specifically to ban our game, because too many students were playing it when they were supposed to be studying instead.
and so, that was the start of my career. i made some more serious games after that: Dad taught me to use some ancient tracker on a dusty Amiga he dug out the attic, but i wised up and bought a license for some DAW instead. spent a lot of time on KVR finding the weirdest VST plugins to make music with, didn't really contribute much except beta-testing and providing feedback to a couple plugin authors. eventually i got tired of rebooting between Linux when i wanted to code and Windows when i wanted to make music, that i deleted the Windows partition and found a Linux-friendly DAW. i got so angry with it crashing that each bug became something of a personal vendetta and eventually they just gave me write access to the repo. once i was happy with it i chilled out a bit and just did maintainer-y things for a couple years, before moving on.
same story, retold for another N projects. for each one i started as a solo user, wanted to improve things for myself, joined some chatroom, and the moment i did got sucked into a social side of things i did not realize existed. for the DAW, that was weekly music competitions, jam threads (you start a song, i add four bars onto it, pass it on) and group albums. elsewhere it was dance meetups, fab labs, milk carton derbies (i.e. racing DIY boats).
work happened, life happened, and i disappeared for a bit. i use a new name now, have a few more scars, but that optimistic past is very much me.
### The Other Half
well the other half of my story is me leaving my job over ethical concerns, overriden by the corporate lawyer despite having support from my team. it's Aaron Swartz, Edward Snowden; Facebook, Google. it's Limewire, file sharing, Monero, drugs. it's me wanting to be more myself, and to find myself, with others, but being told not to under threat of violence. and it's me being told "nobody's threatening you when they say it's illegal to share ebooks, or <redacted>" and being completely lost because: is that not what rule of law _is_?
that's going to be the least relatable part of this post: i'm sorry. like i said: scars. if a terrorist attack against your innocent neighbors shattered your worldview to the point that you (gradually) became a _different person_, that you still find yourself thinking about this thing, and acting on it even marginally, ten or twenty years later, maybe you actually can relate. or maybe you can say that life is easier if i just accept the way things are and _move on_.
but i don't think you actually believe that last part. if we all just accepted the way things are, i don't know that we would _have_ a NixOS. at least, it wouldn't have quite the package count, the flexibility, or the other things you like about it.
### Why I Learned NixOS
gloss over a few years: i bought an iPhone because i thought it'd be more secure than my EoL'd Samsung. turns out you can't load mp3's onto it from Linux. spun up a jellyfin server so i can stream my library from my PC to my phone. moved it onto a raspberry pi, threw some more services on there for ebooks, etc. suffered some data loss, fs corruption, general ❄flakiness❄ that i thought Nix could help with. migrated my laptop and desktop to the same, shared NixOS config because "Don't Repeat Yourself", right?
3 months go by and just as many lightning -> 3.5mm audio cables break on me. this iPhone's shit: we can do better. so i throw NixOS on a phone. i package a bunch of new software, i fix a bunch of arm-specific or cross compilation-specific bugs, etc. i'd like to say it's finished, but actually it was finished a year ago and the time since then has been me nitpicking even _more_ and breaking-stuff-to-fix-stuff.
## Why I Contribute to NixOS
and now finally, we approach the end: "wow, you've got SXMO running on NixOS? you're gonna upstream that, right?"
everyone gets that question at some point: "_you're gonna upstream that, right?_"
the answer, at first, is obvious: "well yes, _of course_ i'll upstream it. it's scary to run this much custom software. if i don't upstream it, it's bound to break, and if it's not in CI then it'll break again after i fix it each time". right? but then it becomes less obvious: those PRs take some time to go through. during that time, you learn to be comfortable managing large patch stacks; to build things in a way they won't break every upgrade. over at some non-Nix project, another user yells at you for "breaking their shit" 2 months after the maintainer merges your patch. someone wants to hack on an obscure piece of the nixpkgs codebase last touched a year ago, in passing, by you: you've never met this person, but somehow you're the difference between their success, or failure. half the packages you volunteered to maintain, you're no longer using, but you're still manually testing/upgrading them: who are you doing this _for_?
### You
i do that for _you_, reader. user, contributor, colleague, friend. i do it because i believe that you, too, dream. not the same dream, but your own dream that'll be just as beautiful when i see it. i do it for those moments in which you've made me feel _known_.
----
what is NixOS? what lies beyond this screen? where does one stop, the other begin?
please _try to understand_.