Imagine looking at your personal inbox giving you the same feeling of dread as you'd expect looking at your work inbox after being off for a few weeks..
I'm currently trying to offload one project because it's getting too much, and just finding a new maintainer who knows C and Python to a decent standard has turned out difficult. None of the regular project users have stepped up. Shrugs
It works like this according to my experience: You see a problem before it really does financial harm to the company. You start developing a solution. You expect to get rewarded with prices, raises, titles and public encouragement, because you solved the problem before anybody even saw it.
But instead this will happen: The employees who run into the problem first and therefore would be the one who suffer from it, find that your solution may be an answer. But instead of making it work they find ways to complain about it publicly. Since management hasn't yet realized that there is a problem, they just hear that you are not doing your job and put pressure on you to fix all the bugs, because of your bugs nobody else can work, so it seems.
This is not stupid by the other people or by accident. The moment they have found a way to complain about you it doesn't matter anymore if the task will be successful or not, since a failure wouldn't be blamed on them anymore as well. Everybody knows that the bugs are your fault, right?
In this regard open source seems less harmful to me. In open source at least there is no boss who can push you to solve the bugs, or fire you if you don't.
I left, and in my next job I tested the waters a little to see if they'd value such contributions. They did, and so I happily continue to make them. Had they not, I would have stopped quickly and moved on to another job. As an engineer, my job is to solve problems that need to be solved. I could be like everyone else and just go along with it (not solve them and maintain the status quo), but that's not why I became an engineer.
Code bases, get full of half-arsed framekworks and automation tools that nominally solve all your problems, but don't, either because they address the wrong issue, or because bugs prevent them from doing even the nominal job. Yet these half-working things can become the required internal standard that teams have to adopt against their wishes. They will not be forgiving when the maintainers start ignoring bug reports.
Now this is fundamentally a management failure: pushing a solution without knowing its limits or counting the cost of backing it up and compensating the maintainers. But as engineers we tend to be complicit, because when we make a new shiny thing, we also want to push it and don't want to tell mangement that it will really cost three times more than they were hoping.
You take the initiative and develop a new feature, automate a task, increase productivity, optimise costs, or increase revenue. You would like to reap the benfits (promition, bonus) but not increase your workload or take the blame for bugs that are unavoidable in the new tech.
1. Automate tasks and keep it to yourself or your immediate team and hopefully work less.
2. Talk to your boss before you reveal your solution, such that he will 'discover' it and let it be his idea. Depending on your idea, this might be hard.
Any other ideas?
Before open sourcing, I have that anxiety that people will look at my shitty code and judge.
Nobody really looks at the code in reality. People just come, write some terribly written bug report, and then they write "+1" in github issues.
That's what is pushing me away from releasing code to the public. It's really crushing to my self worth as a developer to feel good about a project only to be told how awful it is and how it's broken by design.
Most projects' development processes are under-documented, even healthy projects and those run by people not looking to get out. This may be the case with yours.
Have you written up a short description of your practices and the things that a maintenance takeover would entail?
Small world.
Thanks again for this library.
Have you considered offering support contracts, or a dual licensing approach? I don't mean to butt in and offer a bunch of unsolicited advice, just more curious because I might be trying to do similar stuff with some of my projects, so always on the lookout to see what works and what doesn't.
Thanks again for making papaparse it's really fast and has really helped me get some projects off the ground a lot faster than I would have otherwise!
I did consider a dual license, however I don't want to fragment the project, given that it's pretty much "done" and someone would just use a fork from before the license changes anyway. As for offering paid support, I could definitely still fall back on that if I need some extra income, but it takes time. So right now I'm leaning on my graduate research.
One method I have found somewhat successful (but I am still flushing out) through another project, Caddy, is selling sponsorships. They give me some flexibility to put more time into the project to benefit everyone, rather than a single customer.
This applies to things like date pickers and html5 charts as well. While these could be separated into a separate category based on the fact that their markets are oversaturated, the result is the same: why pay when there are perfectly usable options that are free, or can be done in-house on the cheap if necessary?
Could learn from the Pharma industry where they use techniques like changing the formulation or introducing a new drug administration route to "renew" the patent.
Instead of debating it, if it were me, I would just give a people a reason to pay and see if it works.
You could have the same product presented as: Lil Papa "recommend for individual use" - FREE/DONATE Fat Papa "recommended for business use" - 1 MILLION/month (the same thing but we send you one emoji a month and give you a proper invoice)
Looks like you already have people trying to pay you and they could easily do it if there was invoiced paid option.
If folks can make money off of "Laundry Balls" there is no reason you shouldn't off of work like papaparse.
Look at highcharts, you can use it commercially without anyone noticing it because its all client side JS but they are doing fine in terms of revenue because enough people pay for the software/support
If I see an unanswered 'dumb' question that's relatively recent I'll try and answer it in such a way that the maintainer(s) can effectively just close the ticket and be done with it.
Without contributing code I hope that me giving them 2-10min of their life back is a small but welcomed bit of help for them.
Instead of giving something for free to the world, I'd accidentally created an unpaid job & ongoing drama for myself (ie a net-negative for me personally, instead of at least being a neutral / zero).
With my commercial software, I'm being paid by customers to help them, and the better I make the software, the more likely people are to buy it. The incentives align. Those paying customers are mostly nicer to me as well, some wonderful compliments. And none of them have ever debated GPL vs BSD vs MIT with me - they just want the software to work, work well, and be beautiful & easy to use.
The paid users see your products value, and use it to solve a problem of theirs. They ask for fixes/features because it would make a bigger difference to them.
In the end, you tend to have a noticeable, vocal portion of users whom I'd generously call "social developers," who are bad at figuring things out by themselves and/or prefer asking things from another person to save a few minutes of their own time. Many of these users are very draining to deal with.
I've seen this said quite a few times in many contexts
but a problem that i run into often as a user of open source software is that in many cases the readme or other promotional material makes generous claims about quality or performance that the softwares fail to live up to. and in those cases i'm quick to bash the authors
open source doesn't excuse false advertising
The truth is, you can never really know what would have happened if you didn't open source in the first place. Would an open source alternative emerge? Would people pay for your project or would it die in relative obscurity? That's unknowable.
If there's any regret, it's probably the amount of time spent doing support work for the open source libraries. It's not particularly interesting (usually pertaining to something in the README), time consuming (everyone seems to have their own secret project that they don't want to discuss, so you have to draw out the underlying issue slowly), and uncompensated.
Especially when it comes to China. https://thelinguafranca.wordpress.com/2008/03/25/do-the-chin...
https://www.forbes.com/sites/kenrapoza/2012/07/22/in-china-w...
China's laws implement the Berne Convention, making copyright automatic.
Open source licenses usually provide conditional exceptions to that automatic and internationally accepted copyright.
So if they don't believe in open source licenses, or whatever, "all rights reserved" is logically the default fallback.
That obviously doesn't marry with what you said. China is famously awful at upholding IP laws they're party to, but I think that's all this is here. It's still against the law there, but nobody cares if it's not hurting China.
Just one typo in the ph7 readme: powerfull is too german
Even the links at the bottom of the readme are awesome.
In this regard open-source is really helpful, because it enables me to write code in one gig that is good enough to earn my pay there, but allows me in a legal way to use the same code in my next gig. Instead of giving my boss monopoly over my long-term viable content, I make it free to everybody and therefore useful to my future self.
I would even argue it's good for the boss too, since this way I am more motivated to produce, and 90% of the code used in production is totally useless once the author is gone, since most developers aren't good enough to reuse preexisting code and will instead start writing their own code from scratch.
What country is this? I can't imagine such a scenario outside of a serfdom.
http://www.salon.com/2004/08/18/evan_brown/
Follow-up:
https://everything2.com/title/The+Thoughts+of+Evan+Brown
Solution: never disclose anything to your employer unless absolutely required. If you have a new idea, keep it quiet until you quit your job.
FTA:
(After 5 1/2 years of litigation, Judge Curt B. Henderson of Collin County, Texas' 219th District Court ruled in favor of Alcatel, and Brown was obliged to fully disclose the idea to Alcatel and only Alcatel, and to repay in full Alcatel's legal fees of more than $330,000, which according to Brown forced him to sell his house and other assets.
During the court case, Brown argued that since his idea had never been committed to paper or physically manifested in any way, there were no grounds for the company to claim ownership of his very thoughts, and he drew comparisons to the fact that an invention cannot be copyrighted or patented until it is transferred from an idea onto paper.
He didn't handle his case well, which torpedoed it. But in parts of the US, yes... anything you do during the course of your employment is owned by the employer.
As a contractor, I've been asked to sign contracts with similar clauses. Uh... no. I have other customers, and you don't own what they pay me to do. Their typical counter is "But this is a standard clause".
Telling them to "no contract" is usually the only option. They just can't understand why an entirely one-sided contract isn't good for me.
Not that they are necessarily enforceable, but it doesn't stop employers from trying.
2. He understands that open-source != raise.
3. He agrees.
(the funny thing is, that the open-source code a programmer can benefit the most on is rarely that what a business considers its core value, e.g. I write an open-source package manager for our plugins that I can reuse to bring plugins to later jobs, boss considers the plugin's contents his core value)
Because if it was then I'd be able to take that awesome product with me when I left and benefit from it where it's needed.
Founded and released that in 2005, got so much trouble because of that and wasted loads of cash to keep up project through numerous DDoS attacks, hacks (one of them even causing github downtime in 2013).
oh well. Next :-)
This comes down to two parts being problematic:
- we took away business from private servers as there was now an open source solution - applying the open source community model on the private server scene was a disaster. It was to idealistic.
In hindsight, the open source part was basically painting a target on us.
As an example: private servers running mostly use MaNGOS (there is not much else to use) and pretend to have built their own software and advertise by bashing MaNGOS.
First time I made a project I wrote myself (a CP solver called Minion) GPL. I now know several companies had interest in it but we're afraid to put any GPL in their toolchain. I've never received useful external contributions, so I may as well have used BSD.
The second is a project I work on where GPL V2 was chosen. Now some committers have passed away so we are stuck on 2, so can't link with other, GPL v3-only code
I do require that contributors assign copyright to me before I'll merge their PRs.
Over the past 13 years, I've been developing console emulators for 12 systems and counting. If my work were closed source, I would not have received patches and contributions from 30+ people and counting. And I wouldn't have met several amazing people who ended up becoming very good friends for a very long time. One in particular has been amazing in helping me open up and be less guarded all the time.
I was also able to sell one complete commercial license, and received a partial payment for a license from another company that then vanished (I tried to refund the latter, but e-mails to them no longer work.) I've received a very large number of donations over the years. Should be around $5000 in license sales, $7500 in donations, and another $2500 to fundraise hiring a person to decap chips and extract program code from them for improving emulation. I've also had multiple people make very specialized custom hardware that has helped me out more than words can express. I've had people trust me and lend me thousands of dollars worth of rare games for the purpose of verifying information for emulation and then returning them.
But I would be lying if I said it was all good. At the time of writing, I am aware of eighteen forks of my emulator. Two of these projects in particular never talk to me or submit upstream fixes, and instead commit changes to their own repository with extremely derogatory remarks about me and my programming skills. Two of these intentionally undermine and sabotage the entire goal of what I've been working on from day one (namely, adding known-incorrect hacks to speed up emulation. My distaste for hacks was the whole reason I got involved with emulation in the first place.)
Most of the forks of my software are from versions I released either three and a half years ago, or six years ago. A small number of them are quite popular, meaning my work may as well have been discontinued for those users.
One fork collects over $2,000 a month on Patreon off the backs of others' emulator cores including mine -- even ones that are explicitly non-commercial. One developer just wantonly ignored my GPL license and sells my emulator on Steam, doesn't provide any attribution or credit for using my work, and plays games when people try and get the source code to said work (but to be fair, one person did obtain it.) That one was made particularly worse because he wasted a good 20+ hours of my time over the span of six months promising repeatedly to license my emulator, only to back away at the last minute and pull this without even telling me.
I've had people very blatantly read through my source code to improve their emulators and documentation, and not just avoid giving me credit, but outright deny having ever looked at my code. In the most egregious case, someone copied a set of opcode mnemonics from a CPU core. Only ... that CPU core was never publicly documented: I made up every single mnemonic myself, and the only place those mnemonics existed were in my source code.
I've ended up with two people who have harassed and impersonated me online for six and eleven years respectively now, for reasons I really can't comprehend. I've had half the main staff of the most popular emulator out there make a passtime of digging through my 400K-line codebase, looking for individual lines that were poorly written to mock completely out of context in a public chat area -- and they're people I still have to work with often.
But what I always remind myself is, it's easier to dwell on the negatives. It's possible I could have made a lot more money with commercial licensing sales if my work were closed source. But my software is vastly better than it would be without all the help I've received over the years due to being open source. And I benefited a lot from other open source emulators, so it would be pretty selfish to not return the favor to others. There's no sense in me trying to force people to use my version of my software. I'd rather have a smaller number of users who actually fully appreciate what I'm going for. And I have a pretty thick skin at this point for the rest of it.
That said, do put as much thought as you can into this before releasing as open source. Once you do so, you can never go back. Even if you try, your work will be forked at the last open source release. But speaking for myself, if I could go back and do it all again, I would still keep everything open source.
No legal trouble so far. I don't use any information that isn't publicly available (although let's be honest, no one can truly say that all public documentation was created clean room; and emudevs can't know without having seen the original or being informed of this), and I also don't include any copyrighted code. Only very small boot IPLROMs that qualify for fair use (ineligibility for copyright) under Lexmark v SCC.
The real kicker is the Game Boy Advance. It requires a 16KiB BIOS to boot. Any attempts at a high level emulation or a recreation of the ARM assembly code will result in inaccurate emulation, which is a bridge I won't cross. Games can literally read the whole BIOS out (unofficially, but it's possible.) Thus, games can even go as far as to compare every byte of the BIOS. Without the BIOS, the detection of an emulator is an absolutely trivial matter.
I suspect it would be safe to include it, but will not risk it after Sony v Connectix -- easily the worst court precedent in the history of emulation. A judge who had absolutely no understanding of technical matters with regards to emulation and how his ruling created a perfect end-run against the possibility of ever producing a perfect, legal, free emulator.
I'm also hamstrung on the coprocessor firmware included within many game cartridges. Titles using such things won't boot in higan like they will in emulators that use HLE, thus making my emulator more difficult to use than everyone else's.
Every time the price of Bitcoin goes up I start getting emails from wantrepreneurs asking me to essentially work for them without pay because they "have a great idea" and "just need a little help getting the software working". During Bitcoin mania phases ( like now ) I'll get 2-3 of these emails a month.
Too many stories to list. Everything ranging from offers of $2,000 to build a "BitStamp clone" or the time I was suppose to be having a sales call with the CEO and instead was greeted by their lead engineer with an endless list of questions on how they could build their own cryptocurrency bank. CEO got real nasty when I politely informed him they would have to pay me for my expert advice.
They all want something for nothing and get an attitude when I tell them I'm not going to build them their own cryptocurrency bank for free or for minimal pay.
Regret spending so much time on something which has only brought me grief.
I've had good experience with putting that kind of offer on open source projects in the past - fewer emails, more respect, and occasionally a few $.
safewallet.org Please update your contact information
They pushed up their code to github and within a few months a group of them had left the company to form a boot-strapped competitor using their same code -- essentially using the open source publication of their tools as a way to legally ex-filtrate corporate IP -- a nightmare scenario for many companies (and also recently in the news i.e. Uber v Waymo).
This one act burned all open source publishing plans to the ground and now that company open sources as little software as possible. Now, several years later, they haven't published a single line of open source code that I'm aware of.
Seriously, I'm not surprised people haven't thought to take advantage of this aspect of GPL for their own selfish benefit. It's only when you're someone like Apple where BSD or MIT or any of the "permissive" licenses make sense for you, that or you really want to be self-less.
What exactly did the company expect would happen when you open source some high end algorithmic work which needed lot of money in R&D.
Customers get access to a private repo for latest updates and priority support for 1 year (yearly maintenance fee = $150/year). ~20% of customers pay the yearly.
Each purchased key is bound to a mobile app id. If customer wants to make 3 apps, they need to purchase 3 keys.
Public repo contains latest stable release; purchased keys unlock product in public repo forever.
iOS lib is free. Only Android lib requires a key to unlock it. This gives users the chance to freely develop iOS first (and hopefully get hooked, like cheap crack ;). Chances are they're going to release an Android version too since most of the earth uses Android.
The Android version is fully operational in DEBUG builds. Key is enforced for RELEASE builds.
The person who did this didn’t even have a conversation with me about it before doing so.
This was before GitHub and forking and such, but it made me feel angry and unappreciated.
The code that went around was almost entirely my work.
I’m still bitter 25 years later and I’ve never contributed to Open Sores again.
Wow the guy the released his code for free which was used by others without giving him any credits and he is the one with crappy immature attitude.
If you don't want to be banned on HN, you're welcome to email hn@ycombinator.com and give us reason to believe that you'll follow the rules in the future.
That happens all the time with most people, I guess. Someday it may attract some people, but it is not a "fair" game. Chance matters a lot.
I have at least 10 libraries on GitHub that I think should have gained some visibility, but didn't. There are thousands of similar cases.
I suggest that you keep the idea machine on and keep building stuff.
Those decisions got propagated and didn't get fixed for a long time. I should have kept it closed and let someone else do it properly, rather than unless abandonware on the world.
In fact, come to think of it, I regret everything I've ever open sourced. I can't think of even one time it lead to a positive outcome. I can't think of even one time it didn't lead to a decidedly negative outcome.
The same is true of my writing. Every time I've wrote about the advancements of programming, people have made it their goal to oppose it and mock me over it.
Lots of people love to talk about how great this community is. But I've never seen our world as much more than a slowly spreading cloud of venom in a larger medium of confusion. I've felt this way ever since the days when I was a kid and the title "hacker" was rigorously gatekept in local and isolated oligarchies.
Would it be more "optimistic" to ignore all the bad things this community has done with and to me? That's not a thing I'm capable of doing.
I do the work because I love it. The community hasn't welcomed me in any non-barbed way since the early 90s.
There were some people who were not able to get it to work with their theme, shared hosting environment, other plugin conflicts, etc. and expected me to install/troubleshoot. I was spending almost my entire day trying to help people and I couldn't handle the demand especially with that many downloads in such a short period of time.
So I decided to put up paid support versions ranging from $50 to $150. People flipped out when I did that and literally attacked me in comment threads. I tried explaining the time commitment this entailed and that it was taking me away from my core business but the mob didn't care. They were mad that I wasn't willing to install or troubleshoot their environment for free.
I ended up taking the plugin down and since then (it's been 7 years) I haven't open sourced anything major and will probably never release a Wordpress plugin to the public again.
In hindsight, I probably could have made decent money from that plugin if I charged for it initially. It probably would not have gained as much traction or popularity but I think the outcome would have been very different.
I get a handful of emails each day requesting assistance. I direct them to the README, Stackoverflow and this page: https://github.com/nathancahill/Split.js/wiki/Split.js-Suppo...
This has worked out well, I've made money off of serious users and avoided a lot of painful back and forth with people who don't want to share code.
You always had a choice to stop development in the early stages and: 1) Make it proprietary - Why didn't you do it? 2) Have a commercial version - Why didn't you do it? 3) Change the license from MIT/Apache/etc - Why didn't you do it? 4) Charge for features/support/maintenance/etc - Why didn't you do it?
When you use certain OS licenses, you give the permission to its user to do whatever they wish including selling it and therefore, complaining about it later doesn't make any sense.
Mattermost for example, was APL. Then they changed it to AGPL because they experienced something similar.
Gitea was born out of the frustration that the original code was not maintained properly.
There are numerous examples like this.
So stop complaining and take action else embrace open source with all your heart.
When we call software “free,” we mean that it respects the users' essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.” These freedoms are vitally important. They are essential, not just for the individual users' sake, but for society as a whole because they promote social solidarity—that is, sharing and cooperation. They become even more important as our culture and life activities are increasingly digitized. In a world of digital sounds, images, and words, free software becomes increasingly essential for freedom in general. - Richard Stallman
One of the niches I specialized in was essentially taken over by an influx of offshore resources. It's like going into bizzaro world when you go to a meeting on a project and someone else is using your own powerpoint presentation and is doing it wrong. It's offensive when you go through project documentation and see that someone else has gotten paid for documents that you wrote for another customer - especially when they are not current.
When I began experiencing this kind of thing, I felt confident in my decision _not_ to open source software.
But the reality is that my biggest source of pride was given to the world at large. And all these years later I would appreciate having a lot of code which I no longer own in my portfolio. And while there are those who would have poached and pillaged my work, my income would have been minimally affected (or maybe not at all). The fact is that when I operated in that niche, the money I earned was all due to the fact that I was good, not because of any particular piece of software. Having a public portfolio of related software might have even brought in more business.
What normally happens next that the company loses control of this software which they probably didn't realise was so important to their core business as the employees who worked on it are empowered move to other companies and develop private forks or start up as a micro-ISV/contractor business based around providing private forks of the software to clients.
I think what people don't realise is that most of the legal structure around open source software is for software used by end-users. For internal software the GPL doesn't function in the same way: other organisations are more than able to keep private forks and realise all the benefit of the software without contributing back.
But it's still it's one of the best things I have ever done in computing. It was fun, and I got paid to do a kind of pure research, and enhance my own reputation while doing it. My former employer got free patches from very big and talented companies. I've made some interesting connections through this, that's for sure.
We recently started to go through our commercial projects in a structured way and setup a small budget for OSS donations / support. Please setup some easy way to just give a receipt for support or anything else I can document. Purchase via CC is okay but I need receipts. :)
Thanks to all creators in here that let's me keep a much higher development pace.
it helped that the lib never got popular so it was easy to do. there could still be some fork/clone somewhere that has them though :)
I do agree with the sentiment expressed here several times. Once my open source project gets popular it seems that there is a flood of incoming bug fix / feature requests and it is quite overwhelming.
People expect you to just work on the open source library almost as it were your full time job (without a compensation). So that can be frustrating.
This problem can be solved by finding skilled contributors who would be willing to work with you on maintaining the project but this can be quite difficult.
Let's say your project is just reasonably popular (1-2 thousand stars on Github), you will be hard pressed to find willing contributors. It's much easier once the project gets very popular (5k stars I guess).
It also depends on the language and niche of the library. Might be easier to find contributors in certain languages than others.
Having said all that, my open source projects have actually paid me back in a way of interesting work opportunities that I wouldn't otherwise stumble upon. And it's a nice to have some reasonably well received open source project on your CV.
Finally, I would like to shamelessly plug my project: https://github.com/RichardKnop/machinery
Core contributors / maintainers always welcome!
People expect you to work full-time on your project and get angry when you don't fix bugs. I have enough stress at work, where I'm paid to do things.
That hasn't stopped me from making things open-source though, I still enjoy it, and it has caused me to contribute more to other projects.
Lesson: if you use a permissive license, you are acknowledging that your work is worth nothing to you. Because that's what you'll get for it; whereas it may easily be worthwhile to sell a proprietary-licensed binary of your copylefted work.
Open source != foss