What I've learned about open source community over 30 years
opensource.net
opensource.net
However, the landscape has shifted. When an Open Source project becomes successful today, creators often transition the original product into a proprietary version with added features and support, available only through paid access. This practice undermines the original Open Source project, and usually end off killing the original project.
When a FOSS project gets big now, users show up in the issue trackers expecting the kind of support they are accustomed to from companies. They do not have the desire or ability to contribute.
Maintainers then get overwhelmed unless they have some way to support these users. Either they can raise money somehow in order to hire help -- like adding a proprietary version -- or get burned out and complain they didn't get enough donations.
This is just reality. We don't live in RMS's MIT computer lab where he set all the passwords to empty because computers should be free and everyone (every MIT student) is capable of writing software and thus should be able to.
Regular people just want to use the software and they will always outnumber contributors from now on.
Many small open source projects still operate this way and their community consists a small number of people who have fun hacking on a project together after work.
But as projects grow some of them acquiesce to end-user expectations and slowly turn into "organizations".
They have schedules and regular releases, commit to timely triaging of bug reports, provide forums for end-user support, publish status updates, respond to feature requests, write documentation, have a slick website with a nice logo, form committees and sub-committees to make decisions, adopt codes of conduct to try to deal with the jerks who invariably show up, file the paperwork necessary to deal with big donations, etc -- all the "necessary bureaucracy" that comes with being a large, reputable organization.
At that point you've basically added back all the unfun parts of working and turned it into a second job, so why not get paid?
Some developers get paid by companies, but they usually come late to the project when most fundamental work has been done already (this depends on the project, Linux for example might be an exception in that sponsorship has started comparatively early).
Most developers who have done fundamental work before the commercialization of OSS get nothing. The beneficiaries of the whole thing are developers who are now 25-30, work for FAANG and take over existing projects while not doing really much.
BTW, the real jerks are often wolves in sheep's clothing who do excessively well in the bureaucratic apparatus.
I stay anonymous, but I built some software that people use for scientific analysis. I give it away; I don't put it on my resume; the only thing I've gotten from it is it makes me a bit happy that maybe I've saved someone else hundreds of hours of work. There's also some subtle numerical properties that take real work to get right.
(Not all, but some) people demand support, features, or bugfixes; and on their schedule. Or docs, or a prettier site, or blah blah blah, and every second of this takes away time from my real job, my now elderly dog, hobbies, etc. Recently there was a wave of it from some library weirdness on m-chip macs, which I don't even own. And they're guaranteed to get very pissy when I tell them I don't care at all (and, in several cases, if they want me to care they can start by shipping me a new mac and I'll think about it). I honestly mostly just delete the emails anymore because reading them makes me wonder why I'm wasting time on a computer.
As I mentioned, sharing makes me happy and feel like I gave a bit back, but all the shit that comes after that is ugh.
In this landscape it’s unfortunate but I think one way to avoid this especially if published on GitHub is to be upfront in the README that this is a hobby project with no support, only to be used professionally at your own risks (buried in the license is not enough). Otherwise if projects are presented too similarly to professional ones it’s fair to expect developers to be confused, it’s just unfortunate to what GitHub has turned and that the burden is on hobbyist maintainers to differentiate now but that’s where we are.
And also unfortunate is the practice of resume building by publishing professional looking projects on GitHub that adds to the confusion.
Level 0: This code meets (met?) my personal needs. I'm pleased if you find it useful but do not expect a response to suggestions or bug reports.
Level 1: This tool has a solo maintainer. I'll do my best to incorporate suggestions that fit my vision and address bug reports with reproduction steps when I have free time.
Level 2: This project is maintained by a handful of like-minded contributors. Besides suggestions and bug reports, if you're interested in contributing, please join our discord/element/forum/listserv.
Level 3: This project is maintained by an organization. Before submitting a bug report, please read our wiki.
This has not dissuaded people from complaining.
Deleting inappropriate requests is totally reasonable, but one alternative could be a template letter, if you don't happen to have one already. When I receive inappropriate demands for my time I find it hard to muster the sympathy necessary to write a kind and patient message explaining that their priorities are not my priorities. It's much easier if I have something ready to go.
As an aside, I think it's worth noting that most attempts to build long-lasting, vibrant communities for software fail, regardless of whether they're open source or not. Open source might not have a high success rate of community-building, but neither does proprietary software (or whatever middle ground you consider to be in the space between those terms, like "open core" or "source available"). If what you care about most is building a large community, the more effective choice probably depends on a lot of factors specific to what you're building and what else is going on at the time you're trying than something as simple as "always be open source" or "always be proprietary".
This is perhaps a good example of a project being more than the product. By which I mean, we don't really need it - it serves no practical purpose, and yet it continues.
Of course I generalise, but the original premise ("I liked the command line") is amply served by Linux, Mac or Windows. The other original motivations are similarly obsolete now.
All of which is irrelevant. It remains an active project "just because" and isn't that the purest form of Free Software? Sure it's "useless" but we make it because we can, and because we want to.
Perhaps that's the biggest Open Source Community lesson of all- build something that the community enjoys making, unburdened by a large userbase, unburdened by popularity, or usefulness. It's gathered like-minded people who enjoy the journey more than the destination.
So tip of the hat to you all. FreeDOS is an example of capturing the heart of programming - code that doesn't need a reason beyond "because we wanted to."
FreeDOS is used by PC OEMs for tech support, e.g. https://support.hp.com/us-en/document/ish_9586495-9586656-16
You can create a DOS-bootable USB flash drive by downloading and saving a FreeDOS operating system image. The bootable USB flash drive can then be used for testing and troubleshooting any component on your PC.
FreeDOS helps sell PC hardware without the expense of a Windows license, for customers who would like to install Linux, OpenBSD, or separately licensed Windows, e.g. http://h10032.www1.hp.com/ctg/Manual/c02628224.pdfFirstly "selling pcs without Windows". If you want to sell a machine without windows feel free to ship it with Linux or indeed nothing. Yes, FreeDOS is an option, but it's not unique.
Sure, some techs find it useful as a bare-metal hardware diagnostic tool. Presenting that micro niche as a use case kinda proves the point. (I'm not sure how FreeDOS fares with supporting new hardware but I'll assume it does. My experience with BSD doesn't make me over-optimistic though.)
But I think you missed my point. The main utility of FreeDOS is FreeDOS. It doesn't need to be more than that.
That requires the OEM to support Linux on the device. This has only been done for select devices, e.g. Dell XPS, and was a major undertaking.
> Presenting that micro niche as a use case kinda proves the point
Everything is a niche until you need it, e.g. installing a BIOS update from FreeDOS USB drive, without needing an OEM-certified Linux or Windows install for firmware distribution.
I think your overall point, ars gratia artis, is correct. People have a proclivity for trying to quantify the 'success' of OSS projects by virtue of user counts, use cases, etc, and yet all such measures are totally irrelevant for a non-profit project. There could be a single maintainer and a single user, and so long as they're both happy, the project is a success.
Hell, I think HP actually did put Linux on some of their laptops, but just as a compatibility layer to run FreeDOS, since they couldn't get it to work directly. This was clearly done for Microsoft's benefit and nobody else's - don't let anyone convince you otherwise.
Windows development currently sucks, versus Balmer era, and is full of Web developers for a reason.
> Barton recalled O'Grady suggesting it would be great for developers "if you took one of your laptops, put Ubuntu on it, and just got it to work. We said that's an awesome idea, but it'll never happen, because we're talking about Dell. Our laptops need to deliver huge volumes and revenue. When I talked to one of our higher-ups about the volumes that we thought we would sell, he said, 'Yeah, that's what we sell in Belgium on Tuesday, between three and four in the afternoon.' Despite this disheartening evaluation, when Dell started an in-house innovation fund, Barton pitched it again. This time, he was granted $40,000 to pursue the idea.
UEFI is roughly a modernized subset of DOS in firmware, with saner calling conventions.
https://permacomputing.net/bedrock_platform/
That freedos will run on almost any x86 PC built in the last 43 years it a testament to software that truly transcends obsolescence.
Just because it isn't the latest and greatest doesn't mean it doesn't have use.
Does it? FreeDOS is very useful as a DOS to run in DOSBox or dosemu to run DOS programs, including old games.
Spending a lot of time and money on a complete rewrite upgrade to make these control systems to use some other OS 'just because' would serve no practical purpose. They work fine on DOS. It would be expensive and risky to change that.
At the same time, MS-DOS has been unmaintained for decades. FreeDOS is almost entirely compatible with MS-DOS applications, and is still actively maintained with bugfixes and so on.
FreeDOS sounds like a very practical option indeed.
Back in the day my go-to method for making DOS boot disks was to find a win9x machine and type "format /s". That used to be easy to do, but there are no more abundant Win9x machines anymore. FreeDOS was an alternative to that.
The last time I used FreeDOS was a few years ago to flash a bios update that required DOS to do so.
(2014) https://arstechnica.com/information-technology/2021/07/dos-b...
> Twenty years ago this week, as Microsoft announced that it would end support for the MS-DOS operating system, James Hall announced to the world that he intended to create a public domain version of the OS in order to keep the universe of character-based DOS software alive. Hall’s “PD-DOS” project eventually became FreeDOS, which today supports an ecosystem of developers, retro gamers, and diehards who will give up their WordStar when you pry the floppies from their cold, dead fingers.. WordStar, George R.R. Martin's favorite word processor, also runs happily in FreeDOS.
Emacs
Firefox
foot (terminal)
swaywm (and the associated utilities)
KeepassXC (password management)
mpd (music)
calibre (ebooks)
mpv (for the few local videos I still watch on my computer)
evince (for pdfs)
various cli utilities
What I like about these is how consistent it is. No sneaky updates that shuffle things around (I don't mind learning new stuff, but I don't like to have my workflows break for no sensible reason). If WordStar was everything I needed, I wouldn't want Office 365 either.Because even if you do tons of very good work - if you don't publish it, then it's as if you're doing nothing.
This is where a lot of non-profits fail.
A lot of them are doing very, very good work - but because they suck at documentation & publication ; then people doesn't know about it at all.
That said, Hall does offer good and sensible advice to keep the community together and civil.
Sometimes there's a lot of value in reiterating core concepts.
Maybe doubly so if they're validated by his long experience in the OSS world.
I think I would pretty a suspicious of a blog akin to “Linus Torvlads wants this website banned - build an enthusiastic and productive OSS community in just one week with this one neat trick.”
I'm a bit surprised by this statement. Does this imply that there are now a bunch of FOSS projects that don't use mailing lists? Mailing lists are by far my preferred method of communicating with projects. Please don't tell me people are moving to github issues or some such?
The fact that there is little real progress can be suppressed.
FOSS projects should communicate over open protocols with a variety of interoperable implementations -- whether with tried and true tools like NNTP, mailing lists, and IRC, or more novel solutions like Matrix -- instead of allowing a proprietary third-party web application to present a one-size-fits-all interface and function as a single point of failure for project coordination.
You can shake your fist against the tide as much as you want, but a lot of projects are populated entirely from people who grew up after the web was born, and their members see no need to keep looking back to a system designed for a world before TCP/IP itself.
Discord is out not because it's proprietary, but because it doesn't have usable history. They could be GPL and they'd still be bad.
Discord's lack of searchability is certainly a biggie, but having all history locked away and unexportable in any way is the worst part of it.
And damn the two similar names are confusing, I find myself typing one when I meant the other...
"Message organization" is one of the most significant elements of this particular use case. Maintaining well-organized archives is extremely important, and it's not enough for messages merely to be searchable -- they should be easily browseable by topic and time range.
Another annoyance are projects that choose to autolock threads in Discourse. On a technical forum such actions are unwarranted as there are times when an investigation can take months and remembering to add a nonsense post to keep a thread from autolocking doesn't always happen. So, a collection of disjoined threads result and even with links to the prior thread(s) the flow of investigation is greatly disrupted. SMH
Besides, many social conventions "exclude" people. I was once reprimanded for using the phrase "getting shit done" because any profanity, no matter the context, is forbidden, apparently. I felt that was childish and infantile enough that I didn't really feel like being part of that.
In the end all that's needed is publishing the code. You don't need to care about community or anything. You can, but don't need to.
All social conventions exclude people. There's no way to be inclusive of everyone. For an extreme example, if you allow Nazi ideology in a place, for instance, that excludes people who won't put up with that or who the Nazis chase away. But if you disallow Nazi ideology, then you're excluding Nazis. Of course, this will devolve into Popper's paradox of tolerance, but the point is, you can't please everyone. Someone's always going to be excluded by whatever social conventions you put in place. You just have to decide which groups of people you're willing to exclude.
If you don't exclude people who don't exhibit basic hygiene (e.g. smelling like literal shit), then a whole lot of casuals will be driven away. If you do exclude them, you exclude them.
Now, you might say, "what exactly is the difference between nazis and some people who smell like actual shit? you just swapped some words out", but, you see,
I'm not sure why Nazis are "controversial". They're generally the universal boogeymen. Although these days, it does seem like some Nazi ideology has become more popular in some places in recent years...
When we test software, one thing we normally do is look for edge cases, and test those. If the program works with the edge cases, then it can handle any cases. So picking Nazis for my extreme example is just my use of an edge case to illustrate my point about the limits of inclusivity, and also points to Popper's paradox of tolerance, since the Nazis were the poster-child for intolerance.
But yeah, for a workplace setting, for instance, excluding people lacking basic hygiene (smelling like shit) is a good example. I've actually had problems like this at work, unfortunately (with coworkers smelling like this, not me!).
That's the problem actually. It's so strong that it makes it more difficult for the principle to be applied for what is less strong. Also in some place it has also been overused to the point it's not effective because you don't know if the people accused are really nazi or not (in my country even left politicians may be called literal fascists by others at the left)
When a person invokes the Nazi's while discussing subjects that aren't nearly as heavy (emotionally speaking) the horrors of everything Nazi related, they're leave themselves open to being perceived as hyperbolic. No matter how strongly one might feel about open source, the subject matter is just simply on a different emotional level than all the horror which is Nazi. (and therefore, ought not to used as a comparison)
And again just to be clear, I'm not accusing you of being hyperbolic personally, I just want to elaborate on why some people groan when they see Nazi's beings inserted into topics which they have nothing to do with.
"Free speech" is the standard defense of nazis. "Censorship" makes banning nazis somehow controversial. Which is stupid, but it's a thing that exists. Sigh.
Like as a platform for running basic diagnostics and whatever not.