I agree with most of those, although I'd add a bullet point to the agreement:
- If I don't have the time or interest to support the project any longer I agree to reach out to trusted contributors and give them commit rights, or put a clear notice on the readme: "This project is not actively maintained" so users can make an informed choice
Great point. I think there always comes a time for developers of popular open source libraries where their "workload" (that is their responsibilities to their end users) becomes too much for them to deal with, even if you don't have a family.
The only sensible solution here is to bring on regular contributors as repository owners and spread the responsibility.
True, but there are problems with GitHub forking: namely that its often non-obvious which is the best fork to use, since too much prominence is given to the original project. Also if the maintainer doesn't even put a note on the readme "This is dead, use XXX fork" you have even more problems. Also maybe the original project was published to a package manager ... forking is one thing, but publishing and maintaining your fork on a package manager too?
It can take some effort to feel comfortable giving the keys of a project to someone else. In one project that I had abandoned, I encouraged others to fork and rename the project.
They can advertise it as a fork of the original project to attract stranded users, I would even have promoted it, but I think that it would have been very misleading to our users if suddenly the project changed hands. (the project was a management tool often used by non-profits, it stored personnal data and security was important. I had received a ton of very shady non-sense proposals, to this day, 10 years later, I still get the occasionnal weird message or request for support)
Forking is an approach to keep the project moving but the underlying problem is then notification & distribution. If I use one of the package managers - npm, composer, gems, etc - people only know of the original project and have its namespace somewhere in the project.
If I fork a project, resolve all the issues, and make it better, faster, etc, there's not a mechanism for those users to pick up my fork unless they actively go looking for it.
I think many of those package managers would be well-served to have a 301-like redirect saying "deprecated, but continued over in this new package"
It's not clear whether this is getting sincere upvotes despite that the page is currently failing to load or ironic upvotes because the page is currently failing to load.
In any event, he's not fixing your issue yet because he has limited free time and, apparently, has issues of his own to fix.
Thanks, I didn't realize the blue headline was actually a link to click. I thought the author had replaced the body of the article with a "please go away, my site is overloaded" message.
It wasn't really clear to me that that is supposed to be a link. It's in a position I would normally expect a headline to be and it's not underlined or accompanied by any other text indicating it might be clickable.
I thought the "thanks for the hug, HN" comment was unrelated.
EDIT: It now says "(link)" in front of it. Not sure whether that's new or I just overlooked it.
"It's not clear whether this is getting sincere upvotes despite that the page is currently failing to load or ironic upvotes because the page is currently failing to load."
Thought the blank page was the point he was trying to make in that a blank canvas, editor, notebook, etc is daunting when you first get started and you can easily find excuses to keep putting it off. But apparently there's a technical issue here. Or is that intentional?
It's making an ajax request for the blog post and that page is returning a 500 error because of a Database connection issue (assumed because of higher traffic).
I feel the pain. I maintain a couple of slightly popular repos and the issues are sometimes overwhelming, even more when I have to debug some issue in an environment I don't own (iOS) or when the issue runs deep (PhantomJS issue => testing issue => now my issue).
So the Bing cache is good and the article worth reading
This is however the money shot:
>> how many parts of your company’s product are coupled to the lifestyle and priorities of some lone, unpaid package maintainer? It’s something I have to think about too – in my day-job I build software on top of many FOSS libraries, many of which are probably maintained by people in similar circumstances to my own.
Given that my day job builds on (last count) 953 npm packages, most of which are probably different authors, not to mention servers, backend etc etc, I do really worry we are finding OSS backwards.
Good luck to the OP and his young family. And perhaps GitHub can set up a "pay me a days freelance rates work for issues fixed" feature
He misses another way to get bugs fixed in open source software: Pay a developer to fix them. However that does raise the problem that it's hard to find a competent developer to do piecework (easy to find an incompetent developer of course). All the good open source developers are employed.
All of my published work clearly states that commercial support is available (and when other companies actively contribute, I list them too). Then again, most of my projects are work-related, not hobbies, so I don't mind developing a funding plan to keep the projects sustainable.
In some cases, however, it can also attract poor quality patches from contractors working on gigs, and make life hell for the maintainers. I personally prefer if people contract me directly (as the project/component maintainer).
Tangential anecdote: a while back I helped maintain a caching module for a CMS. I was once asked by a user to look into the performance problems of their website. They were a big media company from the Middle East. I had no idea they used my module, which was usually for small websites on cheap hosting. Their contractors had enabled every possible caching module in the world. I basically disabled a few modules, including mine, tweaked their Varnish config, and things ran smoothly afterwards.
I've responded to user requests with "I'm really busy; if you want this to be a priority my rate is $120". Those conversations almost always end with bitching (theirs) and me emailing something like "You mistook yourself for a paying customer. You aren't and I still don't work for you. Bye!" then adding their email to my delete on receipt rule.
Why? Everything else being equal that would just mean you'd get a completely blank page because the database connection would have died in the initial request rather than the ajax request
Heh, I have an issue filed in a repository of his too, but I had a suitable workaround.
As a maintainer of a major library myself, I completely concur with the article - while I don't have a baby, I am a long distance runner, as well as someone who directs albums of music. I also like to socialize as well, and every now and then I give talks (oftentimes traveling to give them), interview (even having excessive time lost to take home projects), and experiment with new technology or contribute to other open source projects.
I think one thing people need to do is help us help you. It saves us a lot of mental energy, as well as speeds things up. If you can, filing a pull request would be great too if you understand the parameters of the problem
Funny, I had exactly the reciprocal experience with Fritzing, I spent 3 weeks (I know, I'm slow) developing a significant improvement in one of the most important part on a software they make money on. And one year later, the PR is still not merged.
I think money might be a good motivator in such circumstances. Maybe Github should think about integrating "paid requests". I think we would definitely have more open source software at better quality.
I don't think it would. I have had people offer to pay for features etc. They always offer tiny amounts as if I'm going to jump up in gratitude and get to work in it straight away. TBH I see it as an insult.
Most people (even many programmers) have no idea how much software costs. This minor feature you want? It'll take a couple of hours to design, a few more hours to implement, you need to test it, write docs for it, and all of a sudden the better part of a week is gone.
Even at a very cheap rate that quickly adds up to way more than most people are willing to give...
Depending on their attitude, I don't think you should necessarily treat a lowball offer as an insult. The problem isn't that the user is offering (say) $10 for the work, but that not enough users offer $10 for the work.
That's actually a good idea for a first-class feature. That way, the GitHub email can mention a financial offer in the subject line to stand out from the noise of free requests.
I think this could be a valid reason - I know there are issues in some of my projects that I won't get around to because I may have lost interest in but which if someone would pay me to fix an issue or two I'd glady fix it:
"Because you are not offering me any money to fix it"
I might be wrong here, but I think you need your data in kernel memory (fs cache f.ex) to leverage zero copy I/O. Putting things in your process heap would then be counter productive.
Beside there are things doing just that for you. Like varnish.
It's nice except for the one part where he says he has some responsibility to his users. He doesn't. Not at all. That would be a one-way relationship or responsibility. If his users were paying him, then I could see some responsibility. If it's free and/or incomplete, it's the users that have responsibility when they download it: be grateful for work done so far, make sure it works as intended, and so on.
FOSS developers shouldn't feel guilty or responsible in the slightest for their users unless their users' success is part of the developers' lifelong goals. For instance, protecting liberty by making sure Tor and GPG work properly. Otherwise, screw them if they want something done but won't contribute anything back.
...that you shouldn't feel responsible for that or anything else unless people pay you to. So, feel free to ignore NoScripters inconvenience. :)
First time I've seen your apps, though. Shooter didn't work on my Firefox. Chromata did, though. I like both it and the name you chose for it. The fractal example that loaded reminded me of drawings of a neuron. The others were trippy with one almost looking like an old snake game. Overall impression reminds me when I used to watch the visualizations of Winamp, esp tunnels and stuff, while trying to think of next solution to a programming or system problem. Your stuff might even moonlight as a decent screensaver if the CPU use is low. :)
Re: you other comment - perhaps this is just my own take on it. I have actively promoted some of my libs, so in that regard I feel a small responsibility for the resulting decisions people take on my advice. That's why I included that note at the end.
Re: noscript - yeah, it's an Angular app. Unnecessary? Sure! I used my site as a way to learn Angular a while back, that's all.
Re: my other projects. Glad you like them! I'm actually just working on a music visualization app whenever I get time. The idea is that it will be a native (electron) app, which can read any output from your sound card, and then use JS to write visualizations for it (so anyone can write their own if they like).
Off topic, but to me this indicates a dev tool issue:
"Do you know what I like to do in that time? Unfortunately for you, the answer is not "fire up my IDE, get the build pipeline going, start a local dev server, ..
I pick my tools carefully, so that my hobby projects don't feel like work. If I have to suffer through slow tools, then they feel like work, and then what's the point in doing them? It's supposed to be fun.
So I basically use vim and bash as the IDE and shell scripts for the build pipeline. Everything works quickly and reliably, on any machine.
I realize that not every project has that luxury. But for personal projects, if it requires shitty tools, I'm just not even going to bother in the first place, and then there are no bugs to fix.
He's not lying about the role of weird build pipelines in making it harder to dive into a project (though it may not be the point he intended to make). Simplicity & repeatability yields surprising dividends.
The thing is you can’t tell someone who work for free on their free time on a project you use for free what to do with their time. If they want to make silly JS animations on their website it’s not a problem.
If he'd used HTML, the thing designed for formatting text on the internet, his site probably wouldn't have been hugged to death. I wish people wouldn't use javascript like this.
It does for NoScript users. I told him not to worry about us, though, cuz we aren't paying him. The HTML comment up thread applies, though, because I never had these sorts of problems serving HTML/CSS for text parts out of, say, web servers instead of databases. The stuff that absolutely had to be dynamic was on dedicated pages back in the day often with static fall-backs.
These JS and database-powered sites have issues we simply didn't have on mostly HTML sites. Probably one reason static site generators are making a comeback. ;)
Opera Android: empty page with blinking cursor. That could be a reason for not fixing issues, the blank page syndrome :-) but I guess there is some technical problem going on.
And Firefox android. Am I supposed to disable my JavaScript/trackers blocking plugins? It's not worth the risk. I only do that when booking cheap flights.
Is it just me or is this website really buggy/confusing. Some of the menus blog/projects open to a blank page (with a cursor that does nothing?) and the other ones are just way to slow at producing the content... The time it takes for some page to artistically produce the readable content I've already clicked back button about 24 times.
I fail to see why this is on hacker news in the first place? Is this a demonstration of some web developers failing in new creative ways? (I saw some other interactive CV stuff that was also not only buggy but also just creative in a _bad_ way few days before...)
And oh yeah, if this is supposed to be some kind of "recruiting" tool to advocate the creator of the website in question.. If I was the recruiter, I would consider this website against him. Just my 2 € cents.
Since mostly an issue is nothing but.
Even if it won't get fixed (directly).
Also some people in Open Source are akward. They tell me that they have limited resources in their project and they can't fix it or won't fix it or whatever. They don't even think that I could try to fix my own issue. They better start a conversation that they have too less people and that this particular issue will be closed. They don't even care if you've done some open source contributions already (even minor one's) on another project / language.
It's like some people just don't want your help, even if they told you.
Isn't that why Github has forking? If people recognize that you'll accept more updates to your fork than the original, then maybe your will become the defacto proper one. If not, at least you fixed it for yourself and all your friends who trust you.
If you don't like that you'll then have to include the original author's future changes in yours, then, well, you're doing just what he was - not wanting to spend time managing other people's things.
Not sure what you are saying but next time make a pull request that includes good test coverage.
Even then though, if they don't have time to test it themselves in another project then they could end up breaking a lot of people's projects down the line. So they might not have the time to test and so can't even merge a PR.
- If I don't have the time or interest to support the project any longer I agree to reach out to trusted contributors and give them commit rights, or put a clear notice on the readme: "This project is not actively maintained" so users can make an informed choice