The "Everyone gets the source code, donations get you binaries" software model
lunduke.com
lunduke.com
It also eliminates significant amounts of feedback that would be sent to you as the developer and instead splits your mindshare among you and whoever compiled your program and has the best SEO. In the worst case scenario, somebody compiles your program with a suboptimal set of optimization flags, or with a bad library, or any number of things, and it makes your program look terrible. People start posting that "Foosoft makes terrible software" because they downloaded a version that is terrible, and you get all the blame for that - do you think they'll even remember that they downloaded their binary from free-foosoft-binaries.com.net.mx.biz.cc?
I also take umbrage to calling this a 'donation'. If you get something in exchange for it that people who don't donate can't get, it isn't a 'donation', it is a purchase. Call it a purchase. Say you're buying the binaries. It isn't a "contribution", a "donation", or "feel good warm fuzzies", it is a cold hard transaction of cash for something of value.
I have no idea how this would translate into the world of Windows though.
The two also don't compare. Quantum physics is different and more complex than ./configure && make && sudo make install. Also, the user doesn't have to learn any of this and can just make a "donation" if they prefer.
Remember: the internet was built by computer users. We have some of the most detailed documentation and most accessible learning materials of any discipline. The same cannot be said of computational chemistry, quantum physics, systems metabolomics, ...
your google-fu is weak my son.
Of course I don't begrudge a program having basic category theory as a prerequisite either (turns out the very basics are actually very simple!) so maybe I'm not truly representative.
I also dabbled in Haskell. Honestly, I struggled. There's a distinct possibility that I'm not that smart, but if I'm not, then there are a lot of people that aren't.
The first time I ran into the whole configure and make system, I just looked at the INSTALL file and followed the instructions. It was actually easier than some GUI stuff I had to do because I could basically copy the commands verbatim instead of having to look through a bunch of complicated screenshots.
It also took me a little bit of effort to get used to Haskell. But once I did, it was great. It really is a magical language; it combines all the benefits you normally hear about with a unique sort of expressiveness I haven't found in any other languages (even close ones, like OCaml, don't quite cut it, although they are awesome in their own ways).
The real breakthrough for me was implementing a simple Scheme interpreter in Haskell. There is a tutorial [1] that explains exactly how to do this; I found it very helpful. However, I am a little leery of suggesting it now because the code there doesn't always follow best practices. It's great for getting the right mindset, but you should probably not carry all the exact techniques over to your real code.
[1]: http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H...
But it never works the first time, and then you have to figure out how to install this libsdl that's missing
And no, packaging name is a crapfest, between Debian based and RPM based, they all bring me to tears
Go on, try to install libsdl in Fedora. Oh, you see, there it is called SDL. And then you install it and it doesn't work, because you need the dev version. Or devel. Or maybe it's consolidated in a package with a different name. Or maybe it's split in 2 packages and that thing you need is in some god-forsaken package like libfoo-extras-nooneneedsthis-promise
When I was a complete and utter beginner I relied on all the above methods for support when I encountered seemingly insurmountable problems, and as a consequence I learned a lot and quickly. This was one of the best things that ever happened to me.
/home/rob/projects/gnu/gcc/configure -target=arm-linux-androideabi --host=i386-linux-gnu --build=i386-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --without-ppl --without-cloog --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-shared --disable-tls --disable-libitm --with-float=soft --with-fpu=vfp --enable-target-optspace --enable-initfini-array --disable-nls --prefix=/usr/local/android-toolchain --with-sysroot=/usr/local/android-toolchain/sysroot --enable-gold --with-pkgversion=Rob Savoye --disable-libquadmath --disable-plugin --enable-gold=default target_configargs=lt_cv_shlibpath_overrides_runpath=yes --enable-cxx-flags='-fexceptions -frtt
You say shelter, someone else says complete waste of time. I am actually for people building their own but if you don't recognize that some problems at some instances of dev are simply over complicated winding hacks that will not ever be used again... well. That just turns to the 'Holier than Thou' moments that look over pedantic to people that, while not lacking coding skills, will just be put off when contacting with this reality. And the n00bs, l33t talk, not so much.
Forums: "omfg search u fucken noob!!"
Documentation: Haha, what documentation?
Q&A sites: Find 1000 threads with no replies all asking your same question. Find 1 thread with your question, and then a reply - which says "Never mind, I figured it out."
IRC: "omfg rtfm!" - as a best case scenario. More likely, -- leeter sets mode +b noob@noobisp.net / -- noob has been kicked by leeter (learn to rtfm)
Google: See Q&A site
Mailing lists might work as a resource. Reading the code might work. And sure, you might have some success with these methods, but pretending like you can just send someone trying to learn a piece of software into any of those places and expect them to get answers easily is laughably naive.
I also did forget to mention mailing lists; I knew I was missing something.
However, if you're doing something really uncommon, or your problem is unusual in some way, there may be no remedy beyond building the required technical knowledge to solve it yourself. Sometimes that's years beyond you.
Compilations with lots of flags are a great example of that. If your particular system needs a flag that isn't there, Google isn't much help. And if you don't know what those flags do, you may not be able to learn enough to solve your problem in a reasonable amount of time.
You can't even get them to learn a little bit about make, but then again some of them glamorize XML as the best thing ever.
Someone are just the best programmer in Windows/Visual Studio environment. And being "top-notch" should not be reserved to only those who use command line.
What's the point for them to learn something like this, if they don't see how this is going to help them in what they do?
Spend an hour downloading Visual C++ Express (assuming it works in express, otherwise buy the professional version). Try to fix any build errors (not an easy task if you're not a programmer). Install NSIS and any installer dependencies. Make sure the binary is in the right place. etc.
If you are even slightly embedded in dependency hell, then nearly impossible, spending a reasonable amount of time.
[1] http://neowiki.neooffice.org/index.php/NeoOffice_Build_Instr...
I'm not sure it is really different on Windows or Mac either. I'm pretty sure most open source software binaries found in the wild were not built by the individual project's authors.
This produced tons of scam sites that at best just compiled the binary themselves then took people's money, and at worst just bundled malware. It also produced Frostwire, which I think was a net positive, but was really just a re-branding. Limewire's open source community never materialized, and they got the worst of both worlds.
You could, of course, watch that bugtracker (if they have one and if it is public), but it seems to me still to be counter to the ethos of releasing open-source software.
I also take umbrage to calling this a 'donation'.
I take it you don't have a medical card?Another possible model:
- Source (stripped) = free
- Source + dependencies and build instructions = small donation/contribution.
- Binaries = larger donation/contribution to save the hassle.
However, if there is other GPLd software in there, and they are relying on the GPL to be able to distribute it, then you are right, they need to comply with the GPL requirement to distribute everything needed to build it (Makefiles etc...).
Disclaimer: IANAL, this is not legal advice.
If you cripple your version of the software, the next guy to figure out how to uncripple it will release his version, and everyone moves over to that. And your deliberately broken version dies the death it deserves.
That's on top of the fact that breaking your software deliberately until someone pays is pretty much the opposite of FOSS philosophy anyway.
I can't say it'll work but it's nice to see people experimenting with new monetization schemes.
The core product is technically open source (see http://code.google.com/p/sqlyog/downloads/list) but is difficult to compile. They even offer a free binary version -- but it's a trial with nag screens.
And I probably won't be as inclined to donate if you forced me to compile it first...
Most commercial applications allow you to try them in one way or another before buying, if I'm not allowed to do that (which by itself smells bad) commercial applications more often have reviews (at least user reviews) and if I'm ultimately about to buy an application that I haven't tried or really got a feel for you can bet that it is because I'm becoming desperate and haven't found anything else decent (in other words I've put in quite some time in exploring alternatives before even considering to buy that application).
The same goes for this software model, only when I buy an application I usually get some support etc. If I donate, I usually, already have what I'm donating for. Quite a big difference.
And honestly, if the author is deliberately trying to make my life difficult just to trick me into donating I'm going to be annoyed, and since I deeply disagree with that type of model (donations should be earned, it's not a form of annoy-ware) I will, out of principle, be very hesitant of donating (I'd like to say that I'd never donate, but if the application was truly exceptional I'd probably donate anyway (but I'd attach a comment describing that I dislike it)).
I can put up with quite a bit of tinkering to get something to run, but not if it is because the author have deliberately kept the make-file to himself (as he implied in the comments) just to get people to donate. Huge difference.
I'd probably be more recipient towards a commercial application with a decent trial-version. I much rather pay for something than getting it for free from someone being rude about it.
That's a donation, and along with it the donor does some advertising exposure via the cozy.
> makes users compile software by hand
> because new users will want to try his software so much that they'll manually build or donate cash to try it
I dont like cheese on my hamburgers and when someone asks me why I usually tell them that I dont like the consistency and the toppings slide all over :-)
I can understand being displeased with someone.
In this case your comment is sort of not relevant to the content of the submission.
But your point about the model is taken.
You can download that without even registering (tiny link on second page).
Red Hat gives its source out for free as it is legally obliged to do (which CentOS and others take and build).
To get official RHEL binaries (which also come with support), you must pay for a subscription.
Even if it's not, someone will just make something like lunduke-free.com and put up compiled binaries.
(If not, he could sue himself for copyright infringement).