Anonymous Contributions & Contributors in Open Source Projects [closed] - open-source

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Having witnessed in various open source projects, in which I have been involved, several more or less significant totally anonymous contributions, I am wondering what could be the possible rationale behind such anonymous contributions?
Occasionally, there are contributors who quite obviously prefer to remain completely anonymous - i.e. by just posting to a mailing list using an obvious nick name for months (whereas everyone else would use their real name), or sometimes even by submitting completely anonymous patches to trackers on sourceforge, where there wasn't even the slightest comment about the origins/authors, usually just a license header or a header stating that the code in question were to be released into the public domain.
Often, the code in question was obviously written by fairly competent programmers/developers or even software engineers, who presumably do code for a living.
I am wondering:
What's the motivation behind such contributions?
Have you previously witnessed such and similar instances in open source projects?
Have you, yourself possibly contributed to an open source project in such a fashion?
If so, why?
Can you provide any other insight into this?
After having read another question here on SO, and also after having read two related discussions (at slashdot and perlmonks) about potential work-contract related issues when contributing to open source projects, I am wondering whether some contributors could possibly prefer to remain completely anonymous due to their contract requirements, in order to avoid potential legal issues.
Thanks

I can think of several reasons:
some people simply value privacy - I know that I usually do not post on most forums with my name - SO is the exception for me (and even here it was only after a couple months);
many programmers work at places where part of the employment agreement is that any code you write (whether on company time or not) belongs to the employer. Whether or not these agreements might apply to the submissions, the programmer may be wanting to avoid 'tainting' the submission or may want to avoid going through the bureaucratic hoops to get permission from the employer;
the submitter may not want to be contacted for support;
the submitter may not be particularly proud of the code (rightly or wrongly);

I own two reasonably popular open source projects. I have accepted such contributions. The rationale is simple. They are using the project and want a problem resolved or feature implements sooner rather than later.
The contribution benefits them!

The most likely reason I can think of is they have some sort of contractual binding preventing them from contributing openly, such as working for a large software corporation that views open source projects as a potential liability. Or they just don't want to be bothered with people asking for more information or more support.

Related

Tips on language or environment with better results in teaching numerical methods [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am preparing my first course on Numerical Methods for Electrical Engineering and would like to collect feedback from colleagues with experience in the subject, about which language or environment has generated more positive results in relation to student learning. MATLAB / Octave?, Python? C / C++? It would be interesting to use the R? Sorry if the question is outside the scope of the site.
Thanks for the feedback
Octave
Gentle learning curve-- easier to start using, than C, FORTRAN or even Python. Allows you to focus your curriculum on the concepts and not the minutiae.
Uses an interpreted programming model-- students receive feedback quickly. No compile/link. Rapid feedback also encourages students to explore concepts freely.
It works very well with the command line interface. Simple is good.
Runs on many operating systems.
Many, many scripts available freely.
Large community that supports MATLAB and Octave. Help is never far away.
Installation is very simple.
Many high-level numerical function are built-in, so to speak. You can choose to let your students use them, or not. It will depend on the curriculum.
Octave is free and works very well.
The only thing I miss is IDE integration with a debugger.
Check with the other faculty. They might have an opinion about what tool sets are appropriate for the class.
Environments with a Read-Execute-Print-Loop are far, far better than anything which requires a compiler. C and C++ (and Java for that matter) impose some intellectual overheads that may not be helpful.
In all cases (Matlab, Python, R) the basic rules of Floating Point arithmetic are absolutely essential.
It seems like (almost) every week someone posts yet another question here on why
>>> 555*(1/.555)
999.9999999999999
happens in Python (or Java or C).
Please don't allow your students to ask this question here.

Open source for application development [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm developing an application and am thinking about releasing it open source.
Is it good choice to open source it, even though it's not a developer API library, but an end user app?
When is it a good time to release the source code? Should I start the project open source from the very beginning or wait until it's v1.0?
If the source code is GPL, how do you prevent someone from grabbing it and illegally releasing a proprietary closed source application? In practice, how can this violation of copyright law be spotted and is the law enforceable?
This is all inherently subjective, of course...
Yes. There are many open source end user applications. Firefox, GIMP, Inkscape, Open Office, and many many (other) GNOME and KDE apps, for example.
You definitely don't need to wait until v1.0, though it might be good to wait until you've got some early proof of concept code to "announce" the project. If you announce an empty code repository you'r unlikely to get contributors, and it may be hard to drum up enthusiasm later.
Spotting a GPL violation of an app is probably easier than spotting a GPL violation of a library, on average.
If the code is GPL and you have evidence (or strong suspicions) that the GPL was violated you could try contacting gpl-violations.org or the FSF.
Here are my opinions:
1 - Yes. It can be a portfolio, an example app for others, anything... IMHO, it doesn't matter if it's not a dev-focused project.
2 - Since the beginning. One great thing about these open-sources repositories is that it holds the source code. And there, you can but some ideas about the direction of the project, maybe even discuss it with other users / developers.
3 - Thats tough. I guess you can't, but I'm not sure.

What is the fastest way to learn from pet projects? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to make really good websites.
Pet projects do really help in exploring blank spots and consciously mastering aspects you want to acquire.
I'm happy with the process and the result but what to do next with this product?
Users start to use it and I don't want to support them because I want to continue building my skills, not end user products. Hosting for all these web apps cost some money too.
Should I just code it till I find it interesting and technically challenging and then just junk it and move to another one? Or release everything as Open Source and don't care about support?
The reason why I don't want to do support is because I want to specialize. There is too wide topic already so I don't want to wide it even further.
I heard about the idea that you shouldn't care a lot about what you working on during your early years in development because pretty much everything will be junk. So just try more. Is it the way I should follow?
What is more effective?
You don't say how technical your websites will be - are you looking to build pure HTML, more dynamic DHTML or web applications with server scripts?
Regardless, you should look at taking on pet projects that challenge you in a variety of areas. As you get more experienced with web projects, you'll find that you end up doing many tasks over and over for different projects.
A good start would be to take on pet projects to tackle 'common' problems (layouts, styling, user logins/sessions, persisting data etc) and then look to abstract your work to a series of components that you can reuse in future projects. This way you will build up a library of reusable 'widgets' that means you don't have to scrap everything and start again each time.
As you get more experienced, set yourself tougher challenges, and before long you'll have a considerable arsenal of sample code, if architected well it will be mostly reusable, and at the same time you'll expand your experience.
Good luck!
I wouldn't say your early years are junk. Let's not think about the obvious intangible gains, like experience, insight, pattern recognition..etc....one tangible gain to think about is the development and organization of your own method libraries. My early years were in ASP so having my own set of includes was invaluable to my overall success and efficiency. I'd carry over a set of utilities and databasing methods that I had previously developed so new projects got easier and easier because the bare bones stuff had already been vetted.
It may not be important as it was 10 years ago because class libraries are getting so robust ...but you'll still find that as you develop new projects it'll be very useful to have utilities that you've already developed and organized into your very own class libraries.

Wanted: suggestions on how to implement subscription / recurring billing [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I would like to set up a premium subscription service for a PHP/MySQL based site. The site is Wordpress based, but highly customized and I'm not looking for a plugin solution necessarily. To oversimplify, I need to query the signed in user's subscription level (paid or free) and tailor the content that gets presented accordingly.
I'm looking for suggestions on how to implement the back end for billing/payments. I know one option is to use the paypal API, but I was wondering whether there are alternatives that I should also be considering. One thing I have noticed with many sites using paypal is that the experience is quite disjointed in the way one gets passed from the original site to the paypal site and back again. Is this just the way these sites have implemented the integration or are there better options than paypal from a UX point of view?
Also...
Have you used any tools / libraries / services that made this easier?
Do you have any advice on this topic in general? Gotchas, pointers, etc.
Finally, we're not a large corporation (yet), so a solution that could scale with us would be ideal.
UPDATE: After learning an enormous amount about the different options, we decided to use Braintree. Deciding factors were:
We could easily get full PCI
compliance and still control the
user experience completely with
their transparent redirect
They guarantee portability of your
customer data from their vault (very
few vendors do this)
They remove
the need to set up your own payment
gateway and merchant account
I wrote a detailed review here: http://expletiveinserted.com/2011/03/18/comparing-recurring-payment-solutions/
I also put the cost comparison list for our shortlist of solutions here: http://expletiveinserted.com/recurring-payment-cost-calculator/
Every payment gateway is different, and whichever one you decide to go with will provide complete instructions on how to integrate with the various features they offer.
PayPal is of course the only one that is not regulated by any governmental body, and coincidentally enough, the only one that makes their money by robbing people blind. Shouldn't be too hard to find thousands of horror stories if you look.

Which Google Code license should I use? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
This is the first time I'm creating an open-source project, and I've decided (based on this question) to host it on Google Code. Now, I'm asked which of several open-source licenses I'd like to use. I'm not interested in digging into them to figure them out, so:
Which one should I pick?
From what I understand, BSD, MIT, and Apache licenses all allow another person/company to use the source code in a closed-source, commercial project, as long as they provide acknowledgement. GPL requires that any project using the code will also be released as GPL. GPL will reduce the number of people who can legally use your code, but it helps to keep improvements in the public. Those are the most important differences in my opinion. Your opinion determines which one is best for your project.
(Edit: You really should read through the licenses, though, in case "what I understand" is incorrect.)
Assign each one to a number on a dice and give it a roll. If you don't want to take the time to read each one and decide for yourself which one fits you best, there's really no difference between rolling a dice and using the one someone suggests for you.
Of course the most important consideration is to choose a license that is compatible with your project goals and philosophy. If your software is intended to be used in conjunction with some other open source software, prefer to use the same license if possible, or at least a compatible license. If you do not wish your code to be used in non-free software without your permission, prefer GPLv3 (or GPLv2). If you want your code used as widely as possible, even allowing others to distribute it under a different or closed license, prefer Apache v2 (or MIT or new BSD).
A summary of open source licenses can be found at http://en.wikipedia.org/wiki/Comparison_of_free_software_licences. Read the Wikipedia article on any license of interest to get more details. Once you have tentatively chosen one, read the license itself to ensure that there are not any surprises. If there is some part you are not comfortable with, pick a different one.
You should really read about each licence and select the one that suits the most. Read and read again, to understand well. There is no other easy way to select a licence.
Take a look at this
It's contains pretty much every thing about open source licenses
This question is one which is likely to result in numerous differing and quite heated answers from various camps. Some believe that the BSD / MIT license is the best way to go, others believe that the GPL is the best license.
Suffice to say it really depends on what the goals of the project are and how you feel personally about the restrictions or lack of restrictions that the license imposes on third parties.
Only you can really answer this question.
If you forced me into an answer I would most likely choose the BSD license.