On Being a Free Software Maintainer
feaneron.com
feaneron.com
At some point the pressure from the community made me pass the magical threshold between fun/useful/rewarding and downright chore.
It has permanently changed my perception of OSS management, to the point that I stopped releasing further projects, no matter how small, simply due to the work that these entail.
Just look at the discussions you find here monthly about being "a good author/maintainer/leader", where most expect full documentation, professional landing pages, useless code of conduct, and so on... BESIDES the project itself. You'll be criticized irregardless.
I have deep respect for the maintainers of popular OSS projects because of the amount of s*it they must take. I know I wouldn't do it for free at these scales. I also wouldn't do it besides another job since it is so demanding.
For me this is one of our flaws as society. When we like something we just continue with our lives. When there is something that we do not like we stop to say so.
One of the best learnings I got as a manager is to give positive feedback. So, employees know how much we appreciate their job, and that we see their value. And just that one time that it does not work out, I will give them feedback to improve.
But, I realize how little I have applied this with OSS and on-line in general. I rarely stop to say thank your for your comment, it was informative. Even, that I may donate some money I never stop to say thank you to the maintainers of OSS.
So, that's probably why you mainly hear complains and comments from seemly entitled people.
Thank you for sharing your experience it gave me a perspective to think about.
Or at least I value it.
#Code of Conduct
This is not a community project. This is my project. I know that will disappoint some people, but I do this for fun in my own spare time. If it stops being fun, I will stop working on it, which will pretty much kill the project. There are millions of projects in the world and the only reason they continue (if they actually do) is because the maintainers stubbornly stick at it.
With that in mind, here is the code of conduct: If it is fun for me then it is good. If it is not fun for me, then it is not good.
Things I find fun include: Bug reports that explain what you saw and what you expected to see. Suggestions for features that would make your life better. Stories of how the software so far has already made your life better. Entertaining stories of how you used the software (bonus points if it includes pictures of cats). Offers to volunteer to improve something (super bonus points if you actually improve it). Questions about how the software works. Offers to write documentation (super, executive class bonus points if you actually write some). Answering questions that other people ask (bonus points if you get the answers right).
Things I don't find fun: Drama. That is all.
To some extent, I will accept drama in exchange for money. But it has to be a lot of money. Think FANG level money. If you don't have FANG level money that you are willing to give me in exchange for drama, just don't do it -- even if you think it is the most important thing in the world.
There is no other code of conduct. I may arbitrarily declare some things fun for me and some things not fun. Please pay attention when I declare one way or the other and act accordingly.
Thank you.
But, in all seriousness, I've been thinking about it a lot and really the main thing, I think, is for everyone (even the maintainer) to avoid drama. If you find yourself in a dramatic situation that seems to have been caused by your actions, simply apologise for the drama that you have unintentionally invoked. I think that's all that is necessary.
This is a dictatorship, I do what I want.
Thanks.
Ownership is essentially the main problem of OSS here.
> If it stops being fun, I will stop working on it, which will pretty much kill the project.
See what I mean ?
Makes me think of Hickey's "Open source is not about you" rant and I can't prevent myself from hearing "It's about me".
But if it isn't about me, somebody else has to do the project management and the code commits.
That's just the way it is. When OSS goes further than the "my itch to scratch" scenario, it gets complicated and there needs to be a way to motivate people to scratch other people's itches.
If one lacks the skills to or time & interest in helping, the two most productive courses of action are either to move along or throw money at the problem. Now maybe your issue is the developer/maintainer themselves. i.e. the project has value but you don't want to deal with the author(s)/maintainer(s). That's fine: fork the project. If enough people feel like you do, the original project will likely die due to these open source 'market' forces. That's a risk any author takes making the project open source to begin with.
I have absolutely no problem with a developer saying 'this is my project' or 'I'm not interested in your problem' as a default answer. It is their project/time and my problem after all. Assuming I don't have the time/skills and really want their help, I can offer to throw money at them and many will develop an interest in solving my problem. If that doesn't work, I can offer to throw money at someone who will.
Note that none of these issues are unique to open source: try to get Apple/Microsoft/Google to fix a longstanding bug or add a feature that you really want or need. Odds are, you don't have the order of magnitude of money to get them to care. And you usually don't have the source either, so you're out of luck.
I'm not sure I see the problem. Care to elaborate on just how ownership is a problem for OSS projects?
> Makes me think of Hickey's "Open source is not about you" rant and I can't prevent myself from hearing "It's about me".
Hickey's and the parent's CoC both express that, as far as people go, the OSS project is about the project owner(s) and not about "you" as a user of that project. It seems you are implying that this stance is bad and narcissistic instead of a healthy approach to working with OSS (which seems to be the more general interpretation).
It's my project, I will lead it the way I see fit. I decide what gets merged, what issues have priority, what gets you banned.
It's also open source. Fork it if you want, drive your fork's development the way you see fit. Now it's your problem, not mine.
I thought long and hard about why I write free software. It's not for an altruistic reason. I do it because it is something important to me. If I allow others to dictate what I should be doing, then I lose my reason to write free software. The free software license is their guarantee that no matter what crazy thing I decide to do, or say, they can carry on without me. That's as fair as I want to get.
It seems most people who have responded seem to think I defend the kind of guy who joins an open source project, get some importance and then starts to act like a jerk (or in other words, starts challenging the power status of the main maintainer which is a natural thing once an individual invests a certain amount of time in a project).
No wonder so many people react against this kind of guy. There is resentment on both sides. Now let me tell you about another kind of "maintainer", the casual one. He just goes by, fixes a bug or broadens the interface of a function and he's gone. You'll most likely never have resentment against this kind of maintainer even though he might, because you're not engaged in a power struggle against him. Why ? Because you have already won it. You just can ignore/forget about his PR he won't harass you about it anyway. For what he knows you might be dead and have carried that holy merging power with you in the afterlife. He has invested work in this, because working for the benefit of community brings him joy, only to have his work briefly considered and discarded. And most of the time when this happens, the real reason behind this is never explicitly told "This is my project and I am in power – firmly kicks the ground" but this is paraphrased with words like "this does not fit the community needs". There are also maintainers who truely are dedicated to the community and if in power only for this greater good with no personal gains. They are sincere. If so why not let the community express itself, for instance through voting, instead of making decisions in its name ?
Now let's consider some points for an alternative take on what "code" and it's management could be.
- A library is not just a pack of implementations for a given solution (a categoria) it's also the public place on top of which such implementations can be enunciated (an agora). Version tags hint at this reality (code is a Becoming) but we prefer to play it down and hide it in a Changelog because the listed changes are seen as mere incidents on a road that leads to an idealized, objective and optimal state of code in front of which personal preference have almost nothing to say.
- To generalize what versions are variants are introduced. A code variant can be defined at any granularity level, small or large and there is ways to state a certain variant must be used, from global to more local scales.
- Each user can push variants in its own namespace (e.g: the-lib.public.the-user).
- A team of maintainers only curates such variants and its goal is to provide a comprehensive default perspective on the implementation space of the library. A library can have competing team of maintainers.
- There is no fork. Either your library is totally different and there is no point in starting it as a fork, or only parts of the library change and this is the wrong variant granularity. Plus a fork is a way to push unwanted changes "out of sight, out of mind", both for the irritated chief maintainer and for the library users that may be interested in what the fork has to offer.
- There is no ideal community to please, only a standard/reference set of implementations and multiple variants at multiple scales. Each variant has its own community, i.e. users/projects that use such variants.
- Variants are not just code fragments but are places where they can be proposed, discussed, versioned, tested, measured, etc. Want to collect data on the way a function is used in order to bootstrap some machine learning model ? It's the place where this data is stored and can be reached.
Like it or not, volunteer software is not meant to be about users. If you want it to be about you, you have to pay money.
https://en.wikipedia.org/wiki/Facebook,_Apple,_Amazon,_Netfl...
If you're not representing one of these companies, you feel excluded. If you are, you don't want to be represented by the word FAANG.
The poster is talking about a level of money, not the exact companies. The whole point of the line is that you should feel excluded from bringing drama if you don't have that level of money to give the developer.
I cooked one up myself after too much wine and reading of other smarmy CoCs written by the kinds of church lady busy bodies who ruin everything.
https://github.com/locklin/iron-sheik-code-conduct
It's mostly a drunken walk through Sheiky's twitter, but I'm sorely tempted to include it in a few R packages I'll eventually release.
# Code of Conduct
in the United States, the development of the Code of Conduct appears to be a mechanism, refined by lawyers, to make a legal case to -> kick someone out <- of an 'open' system
The code of conduct uses words to describe desired outcomes of cooperation, but actually, it defines boundaries such that there is a specific reason to require a person with some behavior pattern, to leave, be blocked and removed from the project.
Legally, if the project is declared 'open' then there was no way to require someone to leave, legally. IANAL
For feature requests, perhaps it'll be good to encourage people to discuss it first, before they start implementing it.
But make it very clear that you're not doing free work for anyone simply because they ask. (And that this is open-source project, and everyone is expected to contribute.)
You are implying that criticism is bad. But criticism is not bad. Negative feedback is, usually, eve more useful than positive feedback.
Friendly heads-up that 'irregardless' is not a real word, rather a mashup between 'irrespective' and 'regardless', either of which alone will do. It's particularly one to avoid because it's probably in the top five of "words that irritate sticklers", who will judge you for it.
> You will be told that you need to develop a thick skin.
It's the equivalent of a bully taunting with "stop crying!"
I have been doing open source for about 10 years. A couple of my projects have 1000+ stars on gh for what it's worth.
Most people are chill. Some people disagree without being disagreeable. Then there's others who are completely toxic. A guy who was cto of a company and wanted to use one of my libraries made me absolutely miserable for weeks. Wrote about the experience here:
I also found 1-year old follow-up discussion on Redit:
https://www.reddit.com/r/programming/comments/69ehe6/your_id...
That story can be useful for interviewing project managers and team leads for software projects.
Q1: Could you please read this story and identify the most significant mistakes key players made?
Q2: What would you do if you were one of these players?
Q3: Why?
The vast majority of people are understanding, I don't remember anyone making a fuss about it.
https://github.com/skorokithakis/catt
And at most we got a few users asking about why they couldn't install it on 2. Maybe my users are just better-behaved.
(If you reply to this that GNOME is not for normies either, or Linux in general, I'll reply 'touche' though.)
Just look at some places where you get couple of guys that think they are next Linus Torvalds. Other thing to search for, are holy crusaders for something like tabs or spaces.
Where I would say real "normies" would not care and be "oh it just does not work, meh". There is probably the same amount of crazy people that would go full length to find you to fix their problem and do it for free.
Some times I am wrangling internally and that has an emotional cost. I find that being super crystal clear on where I stand is absolutely necessary to be able to say no.
Also it is very important to reverse the emotional costs. I mean, usually people come to your repo and demand/ask for a feature. Instead of feeling overwhelmed from this request, say that you welcome contributions and without this this feature won't happen and the feature request will be closed (after 1/2 a year). Or if it is a bug report, ask for a reproduce with the latest master and so on ... so: try to reverse the demand to offload your maintaining work if it is no longer fun to you :)
Even when I'm completely honest about it and would like to see the fix happen, there is a level of my mind where I'm all, "great, now they won't respond and I can forget about this."
It's a very important skill, as people are donating their time to helping you out, even if they're complaining about something. Especially for collaborators, I want them to feel like I listened to them and that I have concrete reasons for rejecting their proposal, even if the reason is "I don't believe this is in scope for this project, but maybe it could be implemented a layer above or as a plug-in".
You aren't doing anyone any favors if you say yes to everything.
This is not great, I'd love to be able to do OSS fulltime and help hundreds of people out there. But the reality is that, with a fulltime job, it is either not helping 90+% individuals or risking burning out, which would be even worse (especially for me). Also, the fact that my software is used by millions of people per year (directly and indirectly) and I've received $10 in donations in total (~5 years of OSS) hints me that it's a very non-sustainable market.
I am running a fairly popular Ruby gem. Donations are indeed very low. To the point I have just remove the link.
Our world is incredibly indebted to Free Software Maintainers and I wonder how we can pay them back in our little ways.
You do get to break the ice faster during interviews and contacting new clients. But it can easily backfire as well: people will ask why "project X" is not up to their coding standards, why you didn't contribute to "X" and/or why "X" has not been fixed yet.
Not everybody seem to grasp this notion that these might not be professional products.
I often discuss with my friends that do not have any public projects to show off during interviews. It really doesn't seem to affect the outcome, unless the company in itself is interested in one of your projects (which is pretty rare considering the breadth of OSS).
I've had some challenging discussions that have made me rethink how I solve problems, and have resulted in deep dives that I would otherwise not have made. ultimately, that helps me, not just those using the software. so, there's a net positive that's sometimes overlooked.
Of course, one of the questions will be "uh so you know you won't be able to contribute to open source much here?"
All my consulting work is JUCE based, so having a library of my work is helpful. But what I do is a very niche field. I don't know if this would apply in general.
Am I a bad/irresponsible person? Since anyone can fork the project I don't think I'm doing disservice to the community (whatever it is). Also I'm frankly a little annoyed that I am getting this by just using my personal repo and mostly being passive (I've never promoted my project anywhere, except uploading it on PyPI).
Edit I can see that there would be a moral issue if I used my GitHub creds for my personal gain (such as applying for a job). But I've never done that. Again, I've never asked for this and I just want to play in my sandbox.
I've dealt with hostile users, and hostile packagers, but ultimately I've stuck with it due to some quite incredible challenges and communications I've received, ranging from very difficult problems that they've reached out for help solving, causing me to rethink some solutions, to very nice notes asking if it's ok to use software that I released as building-blocks (what it was designed and specifically licensed for). But, there are still those people that I dread hearing from, that make me want to just stop -- thankfully there are enough of the other kind, and interesting problems, to keep me going.
As for donations - I have only put donation links on the virtual synthesizer modules, and have received a grand total of $5, not exactly game changing, but worth a pint of beer.
So, I maintain for another day, maybe not as actively as some would like, but at least at a level that keeps me from burning out on it.
I’m not certain about that though, because there are always like 10x or more free users than paying users, so the volume of interaction with free users is simply much greater. It would be interesting to study and find out whether free users are more entitled than paying users, statistically. Anyone know if such research has already been done?
But the "problem" really does lie with you if you cannot tell people they got what they paid for (in case of pro bono work, like FOSS-development, even more).
Once upon a time I organized an annual pretty large demonstration for the legalization of Cannabis in Europe. After every event, at the first meeting, we had people show up who understood we desperately needed their advice. You can either let them hurt you or you sit back, light up and play ping-pong with them... Listen 10 minutes, then spend 10 seconds to confront them with reality (actual laws and regulations, the practicalities of your work or simply your experience of actually /doing/). It can be fun.
But wether it is fun or a dreadful experience is only defined by you.
Back to your sentiments, the amount of nonsense I have to put up with from some family members is unbelievable. Luckily there are some good family members who usually step in and put them in their place. So yes people are a problem, even our own family members give us problems. I still organise get together and ignore the naysayers.
FOSS, in my experience, will not make you money, will not get you a job, and will gradually suck up more and more of your free time until you have none left.
In can also be tedious and frustrating, especially dealing with users.
Usually if any money is made off of your labor, it's made by other people, and they never contribute any of it back.
Spend your time on something you can monetize.
It means those things to the org that made you the maintainer. It means nothing in particular to the users, bug reporters, and people who offer up fixes and features who don't already know you.
> If you are open to review other people’s contributions, there is a high change you will find challengers disguised as contributors.
New devs making a first-time pull request typically do not yet trust a project's dev process. They also realize that the project has no way to trust their own skillset. To break the stalemate the new dev typically "oversells" their patch set and errs on the side of TMI to the point of being defensive.
Doesn't it fall to the maintainer to keep things positive, clear, and on-topic in such situations? If the org takes that as a necessary skill of a maintainer and mentors to it, it's at least possible to have a decent experience as a maintainer. If not, then I speculate any maintainer would interpret those skills as out of scope for project maintenance.
I also speculate they'll interpret each "challenge" as a distraction from their duties and steadily progress toward an increasing likelihood of burnout.
Some of these emails are negative or even rude. But that negativity does not really bother me. I evaluate level of "Negativity" in the email to understand the nature of the request better (Is the request realistic? Is the request fair? Could our team realistically prevent that negativity in the first place?)
Requests like: “How dare you not (use your free time to) fix this ultra high priority bug that is affecting me?” -- I do not even consider negative. In fact, that is a positive comment to me, because it may indicate an opportunity (to make our job board better or to even add another revenue stream).
The complainer in such case already did some of the work for our job board: identified potential problem, described how to reproduce it, defined the use case explaining why fixing that problem is important.
If that is not helpful feedback, then what kind of feedback is more useful?
Nothing wrong with that, but that has nothing to do with a FOSS maintainer doing his work in his free time and getting insults for it.
So if you enjoy insults and like to filter them out for technical feedback, good for you. But you make money with it. (I asume)
So please advertise somewhere else.
"FOSS maintainer" uses similar "fremium" model: basic product is free, but customization and support of that product typically requires to hire maintainer.
Alternatively, maintainers are getting hired by BigCo for brand recognition, improving hiring competitiveness of BigCo and other benefits that FOSS product brings.
Not really. With FOSS the whole product and especially the sourcecode, is free. You can "maybe" hire the maintainer to do extra work and support for you, but you don't have to.
And the main point was, that this maintainer(and most others) did his work in his free time, not out of comercial interest, but altruism. You are doing your website out of altruism? I doubt it.
Sometimes, especially at "political moments" (like elections in a project I was involved in recently - and I wasn't even a candidate), it can feel like being overwhelmed by a tidal wave.
If I only have 1 spare hour per day for a project, there is neither time nor emotional energy to handle emails that are so full of demanding questions that it would take 3 hours to process carefully and reply carefully. And if you don't reply carefully, they send you more, writing longer and getting more obsessive (and sometimes personal) as if they sense you'll engage them in a long conversation, so being careful in the first place is a net win.
Even if it only took 1 hour, that's still used up all the time I was going to use on other productive things, the "real work".
I am in awe of maintainers who seem to reply to an onslaught of demanding questioners, and somehow satisfy them.
For me, these are relevant:
"Assholes are Killing Your Project" (Donnie Berkholz) https://www.slideshare.net/dberkholz/assholes-are-killing-yo... https://www.youtube.com/watch?v=-ZSli7QW4rg
... then your project is unlikely to become useful anyway. 5-7 hours per week is just too little in order to make a meaningful progress in a software project.
And if you are not getting critical feedback from customers, you are unlikely to know the right direction to develop your project.
> https://www.slideshare.net/dberkholz/assholes-are-killing-yo...
According to Donnie Berkholz' definition - I do not communicate with assholes at all, because demanding and even rude feedback does not make me "feel oppressed, humiliated, de-energized, or belittled".
What I appreciate a bit less is a burnt out maintainers that does not ask for help and has his hands full. Hats off for your hard work, we use your library and we want to help. You are not alone.
What I dislike is a burnt out maintainer / not so great person of multiple important libraries of a popular language that randomly closes issues and PRs without explaining the reasons and then blocking people once asked why he did close an issue that was still relevant.
If it's a personal project open sourced, sure, you have the absolute freedom to do whatever you like. If it's a multi-maintainer project that has a huge piece of the market, then that's absolutely not okay - it causes a toxic environment that only damages the library and it's future.
Sigh... and everyone else thinks programming is a lonely job.
And those multi-billion dollar firms will show no greater willingness hire you, despite relying on your software, which they also won't pay for.
Zed Shaw has spoken about this:
https://news.ycombinator.com/item?id=19375895#19376190
> There was sort of like this unwritten contract in open source that we had; the unwritten contract with corporations was if you wrote open source that they were using, you got some sort of job, or consulting fees, or at least some respect so that way you could find jobs.
> ... I started to realize that “No, that contract has completely been rewritten. It’s totally different now. If you write open source, you’re not gonna get a job”, and now what’s been happening - and part of my tweet storm and whatnot about open source - is that it’s gone the opposite direction, where what I see is sort of like almost direct action to prevent open source developers from making money…
(seriously, there is a difference between a day job programmer, and a lifestyle programmer)
Free as in freedom, not beer. Ask for beer and give freedom in return.
I have this idea in the back of my head. Where I live in Japan, in the countryside they just put up these vegetable stalls. Nobody is there. There is a box and on it is say "100 yen" (about 1 dollar US). There are bags of fruit and vegetables. You take a bag and you put a 100 yen coin in the box. Not rocket science and nobody who isn't starving won't put the coin in (and if you are starving, take the damn fruit!)
You don't need leverage, you need it to be the norm that people pay for the software. That requires a cultural shift. Luckily, community cultures can be crafted (I think... maybe I'm wrong). People need to feel that if they pay for the software, you will make more (which they want). If they don't pay for the software, you will not make more (which they do not want). I think that's all it probably takes to earn money at this. I think... One day I'll test that theory.
This is the case for consumer software. I am not even trying to imagine how harsh it would be for an open source maintainer - who has absolutely no leverage given the source is already out there. What’s happening with docker, elasticsearch, Redis, MongoDB et al is not giving me hope either.
There's definitely a startup opportunity for this - making it super easy to receive payment as an OSS developer (either as a business or sole developer) and making it easy for businesses to pay.
If I saw a new issue on github and it came from a corporate "OSS gold account member" which potentially comes with $$$ attached I'd be much more inclined to implement it.
As it is my motivation drops off fairly quickly unless it's a serious bug or it's a relatively easy ask.
I think it would be much easier to get budget if the cost to get expedited OSS bugfixes were subscription based and accounts gets to deal with a professional billing department rather than "One Man and His Hat Inc. in Iowa".
GitHub is the de facto hub of open source/free software, and if it was as easy to donate to a repo as it is to star it, I imagine more people would do it.
- Ask for donations
- Ask commercial users to pay a fee (still voluntarily though)
- Offer yourself as a consultant on the software, you can help businesses with implementation or migration.
Of course, there is a thin line. Having people to pay for your software raises expectations. Also, paying customers could steer you into a direction you (or the FOSS community) don't like.
In my experience, almost all businesses are perfectly willing to pay for the software that make their business possible. Businesses understand that FOSS is free speech, not free beer.
Of course, this is hard and often not reasonable to do. But at least, let's do things based on some assumption.
Imagine if he was maintaining a core piece of software more people use, like: a web browser or SSH client...
The biggest mistake some software maintainers make is showing empathy for abusive and unreasonable users. Most of them simply deserve to have the door slammed in their faces. If you can't do that, then you'll lose your time and stress yourself.
> deserve to have the door slammed in their faces
Totally, but you need to (try to) be careful not to slam it in the potentially-helpful peoples' faces. There's one very popular open project that I've moved away from due to getting tired of seeing seemingly every single question/suggestion being met with "you don't like it, start writing some code".
Not to say that my decision not to use that project is significant in any way. I'm just one anonymous person. Just a point that it may be possible to be too aggressively self-defensive.
I totally get that I'm not entitled to anything, and you (maintainer) are entitled to do what you choose with your time. It's just that constantly, repeatedly pointing those facts out isn't going to win you much cooperation.
There's nothing to do but to just accept it, put whatever workarounds I can come up with in place, hope I can remember what I did before the next time it comes up, and move on. It regularly moves me to anger, with nowhere to put it. It's not fair to unload it on your coworkers or your manager. So I'll vent a little bit, still trying to find the best way to do this, and just hope I'm not a raging alcoholic by the time I'm 40.
But I'm a skilled tech worker whose getting paid very well in order to deal with these things. If they're not just douchebags, I would guess that most people who get unreasonably angry at OSS maintainers are not getting paid very well to deal and are likely the target for generated externalities. They need a focus, someone to hold responsible.
But tech is inhuman and so there is no one to hold accountable. And if ever there was someone to hold accountable, by God get rid of that chink in the armor! The OSS maintainer thus becomes that chink.
I sometimes wonder if the brave new world that the West is building is not the great horn of plenty that we all believe it to be, but rather a monster that consumes the best parts of us and spits the rest out, too cruel to just put its victims out of their misery.
Then I remember that inhuman bureaucracy is nothing new, and pour another glass.
Yes, there's a lot of wishful thinking and religious zeal out there, helped by the modern "we can f* up your brain and you won't even notice it" techniques. It seems to me you can spend your whole life developing some free software which gets used, among other things, to create tons of money for other people. Makes you wonder (at least it makes me wonder), if this whole thing is not meant or at least supported by the good guys and girls who know how to make a buck and can convince even your granny to learn html because knowing how-to-web it's the new literacy while the purpose might be no other than "not even third-world countries want to work at boring websites, so we have no one to do the dirty work now. How can we convince some poor souls to do it, and freely too."
I'm really interested if you have something in the department. A nice article, a good book, something that can be used to wake one from it's slumber.
I spend my time these days writing rather than reading. Chasing my own muse. Quora is my usual outlet, though I'll occasionally feel compelled to comment on HN.
Whatever crumbs of truth (treat others like you want to be treated, life is short, etc.) included are better expressed elsewhere and without all the baggage.
You need a map to the Bible in order to really understand it. I like YouTube videos, and the best ones I've seen on this topic are the ones by the Bible Project.
https://www.youtube.com/user/jointhebibleproject
And they only feel like crumbs because we've spent the last 2000 years building a society based on those ideas. But they were new and shiny at one point in time. Just like tech is new and shiny now.
Matthew: https://www.biblegateway.com/passage/?search=Matthew+22:36-4...
Mark: https://www.biblegateway.com/passage/?search=Mark+12%3A28-31
Luke: https://www.biblegateway.com/passage/?search=Luke+10%3A25-28...
We love because he first loved us. Those who say, "I love God," and hate their brothers or sisters, are liars; for those who do not love a brother or sister whom they have seen, cannot love God whom they have not seen. The commandment we have from him is this: those who love God must love their brothers and sisters also.[1]
Elsewhere there's the commandment to "love as I loved you", i.e. love others to the point of dying for others. The standard set is incredibly high and hard—hence the Saints, whose lives & sacrifices are commemorated for their selflessness despite other struggles and failings.
[1] First letter of John, ch 4
So, there's good takeaways even if there's lots of bad stuff in there. I'll throw in Buddhism and Confucianism given they have some good advice. As always, keep the good tossing out the bad or questionable stuff.
Many of it's teachings are certainly counter-cultural. And it does take time and effort to learn and interpret wisely. But I find much in the Bible that is very applicable to life today and, arguably more important, applicable to the life to come.
As for the imaginary part, there are plenty of rational reasons to consider the claims of the Bible. This isn't a bad start:
http://www.veritas.org/how-does-christianity-measure-up/
A lot of it boils down to your own personal presuppositions and worldview. For more advanced treatment that gets to the heart of how we know what we know and how our presuppositions affect what we think we know:
https://www.amazon.com/Doctrine-Knowledge-God-Theology-Lords...
Maybe. But my early worldview was shaped almost entirely by Bible believers. Now after thirty years my perspective has changed. And it's hard to see value in evaluating the world from ideas and testimonies that cannot be proven, especially those that condemn those born different.
>>> Kundalini is your polar opposite within you. When it awakens, you realize how immensely powerful you already are. You experience how there is a whole universe within you. It is your feminine energy if you are a man and your masculine energy if you are a woman. It is your passage, your path to eternal fulfillment within you.
>>> when you start meditating on the chakras, it is only from your experiences and newly gained abilities that you come to know that a transformation is taking place within you. The greatest transformation upon the awakening of the kundalini is not that you see blinding light (although, that can happen and has happened to me on numerous occasions) or you feel feather-light or you feel highly energetic. These are epiphenomena. This is not the real product; it’s more like buttermilk than the actual butter. The real transformation upon the awakening of kundalini is that you shed your old tendencies and negativity like a snake sheds its old skin. You no longer feel angry or flustered over trivial matters unlike the earlier times. Your emotions and thoughts don’t overpower and trample all over you anymore. You begin to gain control of yourself. ‘Supranormal’ streams of creativity and energy gush forth at the awakening, surprising even you with talents you never thought you had.
>>> Awakening of the kundalini is reaching your innermost state of bliss and joy. This state is covered with ten layers – desire, anger, greed, attachment, ego, passion, jealousy, hatred, fear and selfconcern. As you elevate spiritually, you start shedding these layers. These avarana, layers, veil the true you. The real you that is beyond the duality of pain and grief, good and bad, moral and immoral. Awakening is a steady and gradual process on the path of kundalini sadhana. It is not an instant realization. It builds up, it grows on you. With each level of awakening, you discover bit more about the new you and you shed bit more of the old you.
>>> Awakening of the kundalini is realization of your pure abstract intelligence, the type that is not conditioned by your fears, emotions and worries. It is your pristine nature. When you are able to tap into this latent source of energy, you truly become the master of your universe. You can manifest whatever you wish in your life because your scale of consciousness is no longer limited to your body alone; it envelops the whole universe.
>>> What’s even more beautiful is that anyone who is willing to put in the effort can experience it.
https://daniel.haxx.se/blog/2016/11/14/i-have-toyota-corola/
This sort of thing seems to hit senior citizens harder because of their general unfamiliarity with technology. So they use the toolset they're familiar with, to find somebody to get on the phone to make them deal with the problem.
I'm tempted to take vicious glee in the notion that this is the comeuppance Baby Boomers are getting for selling future generations down the river to fund their own retirements. If they could have just shared the post-war wealth equally their children wouldn't have needed to destroy the world that made it.
Stress-induced displacement of aggression: the practice works wonders at minimizing the stressfulness of a stressor. It’s a real primate specialty as well. A male baboon loses a fight. Frustrated, he spins around and attacks a subordinate male who was minding his own business. An extremely high percentage of primate aggression represents frustration displaced onto innocent bystanders.
Extended quote here (not my blog): https://transferringstuff.wordpress.com/2010/09/07/disturbin...
I think you're right and what's tough is that the impulse to unload on someone seems to be hard-wired and even salutary. I have to catch myself from doing it and even then I'm sure I'm a regular source of microaggressions.
I think to a certain extent bureaucracy, humane bureaucracy, can be a corrective to the bite-your-subordinate instinct. But I agree there's nothing so effective at generating find-me-an-innocent-bystander-to-swipe-at fury as mindless ineffective bureaucracy where the architects of it are hidden and unaccountable. And, as you point out with technology, it's very easy to slip into regarding that third-party service your company signed up for or the open-source library you downloaded after glancing at the README -- when it doesn't work as expected or you promised yourself it would -- in just those terms.
Maybe someone could start a Punching-Bag-as-a-Service platform to collect and safely dispose of all this displaced aggression. Is there a good online screaming pillow where I could direct myself and others in these moment of impotent rage?
A service is unlikely to work because anger requires immediate release when triggered otherwise it's repressed. Repressed anger builds up and makes the next outburst worse. I believe that the "lives of quiet desperation" described refer to anger that's continually repressed with no outlet.
There's a seeming epidemic of burnout in tech that I think is driven by this dynamic. I've seen people start jobs and almost immediately start exhibiting symptoms of burnout. The inhumanity of tech builds up and every little thing builds up.
I don't get burned out. I think this is because I'm skilled at managing my emotions. But as I get older my tolerance for repressing anger to release it in a controlled explosion later when nobody is watching grows less and less. And my jobs get more and more visible. I'm not sure how much longer I'll be able to stay in this career.
I run a popular website, and I switched from selling books, to free content.
I make 6 figs at the day job, but put in 2-3 hours a night on figuring out new ways to save time or save money. The occasional email is nice, but its a very temporary feeling. I consider it my responsibility to society, so things will be free, but it also means only 1-2 people study this.
Capitalism and growth might cause me to change.
I also want to mention that I donate whenever the option is available.
However, here is my personal opinion that will most likely get downvoted to oblivion: if you are putting a tool out there for others to use (not just software but any tool), then you are responsible for its wellbeing and maintenance, regardless of whether you charge money for it.
In my opinion, it is irresponsible to release something, anything, and then abandon it.
If you don’t want to be responsible for it, for example if it’s a hobby project or something, keep the repo private. If you release it with the intention of maintaining it, and your circumstances change later, do your best to find another maintainer.
If you want to charge money for it, do that.
But if your attitude is gonna be “I’ll work on this when I want, however much I want, and you should just be grateful for what you get and deal with it” then, well, that’s where my sympathy and respect for you ends.
I think there's also room for software that's dumped on the internet like a free couch left on the sidewalk, but it should be treated similarly: probably full of bugs and not worth your time. I agree that software maintainers shouldn't feel entitled to gratitude without obligation.
The problem is that this puts what I consider the right amount of responsibility squarely in the middle of a continuum: library authors shouldn't be totally free of obligations to others, but the insane abuse that people level against open source maintainers is also obviously unacceptable.
Because I've found that use-value often decays (or bit-rots) pretty quickly in unmaintained software, sometimes due to nothing more than changing packaging requirements.
Or that all professionals who just play around technology or mini projects are required to keep them secret until they are totally sure they will maintain it forever.
That is just not workable and overly limited.
While owner can not expect gratitude, the "I’ll work on this when I want, however much I want, and you should just take it or leave it" is absolutely fine and should be fine. Just because it exists on the internet does not entitle the rest of the world to anything.
Human social instincts strongly push toward this position, informed (largely) by metaphors and similies rooted in excludable goods even when nonrivalrous (eg. the prototypical Commons).
Software, though - and most especially Free Software - is part of another realm entirely, or at least verges on it: Things that largely grow, proliferate, and spread themselves, even if they do it through coopting human agency. Examples are stories, families, communities, ideologies, movements, hobbies, cultures, and most importantly, individual humans themselves.
"If you save a life you become responsible for it" is one of the few succinct ways this has been expressed, which of course doesn't do much to delineate the obligation or its limits. But the sentiment is clear.
To what extent can an author (of fiction or non-fiction) disclaim responsibility for their work if it takes on a quasi-life of its own? An artist for a work that is misappropriated?
How difficult is it to disavow a family that you have broken with? An embarrassing ancestor who accumulated the family fortune through unsavory means? A child that has grown to become a notorious public enemy?
Can a founder of a movement disavow its extremist fringes?
Does a celebrity actually have any responsibility at all toward their fans?
How difficult is it (or should it be) for a hobbyist to avoid being associated with those who share their hobby, but who also make the hobby unwelcoming to the Other?
By now you must have a dozen objections to this post, of all the ways writing software is not like these things I've mentioned, but there is also something deeply similar, though it is difficult to articulate exactly what that is.
An author of software, and more precisely a maintainer of software, is responsible in some sense for the nebulous thing that the group of people that software draws together is, even while also being a member of that same group.
That the responsibility does not necessarily create much of an attendant obligation is not necessarily clear, when so many social customs are predicated on such obligations being implicit (at least).
Even less clear is the extent to which such obligations, when voluntarily assumed, can then be discarded.
An analogy may be helpful here:
Having moved to a new city, and subsequent to joining some existing social group or club, you volunteered to take care of some aspect of a shared recreation (to bring the salad for a weekend picnic, for example), but you then discover that there are additional logistical and even financial costs involved that you didn't anticipate (the picnic starts much earlier than you're used to, the group includes many vegetarians and vegans who are used to having an extensive variety of salads at such occasions, etc.).
So, having voluntarily assumed this obligation, but not having given what could be objectively called fully informed consent, to what extent are you still responsible for addressing the expectations of this group (as a group, and also as individuals) you're now disappointing?
And how do the analogous obligations change (and grow) when you are (effectively) the founder of the group?
This morass of interpersonal relationships is the sort of thing that being a software maintainer requires navigating, and the situation isn't made simpler just because the central artefact the group revolves around is some non-excludable, non-rivalrous software that is being created and maintained, especially when the name attached to the software is just such a rivalrous good.
Disavowal of otherwise implicit responsibilities and obligations is something that seems to crop up more often in recent decades than previously, from IANAL and TINLA (or even IAAL, But Not Your Lawyer), to the increasingly commonplace "I Do Not Speak For My Employer".
Such disavowals being (apparently) necessary, authoring and maintaining software clearly also strongly implies at least some responsibilities and obligations, at least as a great many humans perceive things, and it is worth discussing just what those are, as well as when and how to effectively disavow them when not appropriate.
As I said at the outset, I personally feel the set of those obligations is smaller than the parent post states (neither software nor the community that forms around it is something that you are obliged to actively nurture), but my disagreement doesn't imply a downvote. It is a valid contribution to the debate on this topic.
Maybe what would be useful would be some standard (and required!) marking for all software projects on what the current level of maintenance is. Is it
Level 0. I wrote this in an afternoon and have no plans to ever look at it again — use at your own risk.
all through
Level X. This project is under active development and also has maintainers for a stable branch, which also receives security bug fixes in a timely manner.
In short, what I think is actually irresponsible is for projects to look like they are close to level X but then have maintainers behave like they are at a much lower level, and who think that any level of behavior is OK since they don't get paid and haven't personally promised anything. It would be better for all involved if the expected (approximate, of course) level of maintenance could be explicitly announced – this might make it clear to users what level they can expect, and make it clear to maintainers what level of involvment is expected of them to be able to call themselves “maintainers”.
Does that fit the level of responsibility you require?
However, I think that bugs would annoy me enough so I'd fix those. But I don't feel obligated. Nowhere do I state any level of support.