Hacker News new | past | comments | ask | show | jobs | submit login
The "Everyone gets the source code, donations get you binaries" software model (lunduke.com)
114 points by TroysBucket on June 29, 2012 | hide | past | favorite | 100 comments



I hate hate hate hate this model, because it just splits off people who could be using, advocating for, and contributing to your product (by documentation, by bug reports, by leaving positive reviews, ...) into two groups of people: those who are willing to pay for the program before they get to run it, and those who will just google "program name +free" and click on the first link.

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.


The vast majority of Linux binaries out there were built by someone other than the original author of the product (usually the distro). I haven't seen much evidence that this causes a split in the community. Usually to have a split someone has to futz with the source.

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.


Limewire was this way to some degree. The source was free if you were willing to check it out from CVS, or you could download a binary from Limewire.com which strongly encouraged you to pay for "Pro".

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.


What if you combine this model with how Mozilla handles trademarks? Firefox is 100% open source, but if you distribute your own binaries, you can't use the name "Firefox" or the logo. That arrangement would seem to address your concerns.


That would help some of them, although it still cuts you out of potentially great feedback from your users (if you care about that.) Instead, users will file their bugs/raise their concerns/send their suggestions to Icestoat instead of your product.

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.


How hard is it to run ./configure && make && sudo make install (at least on a *nix-compatible OS)? Most of the time the defaults work fine.

I have no idea how this would translate into the world of Windows though.


For 98% of the world's population? Very hard, approaching impossibly hard.


We have top-notch programmers which have never heard of configure, and to them anything opensource that does not compile straight in Visual Studio is not worth it.

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.


I'm genuinely curious and I'm not being antagonistic, but why do you call them top-notch if they refuse to learn and shy away from a problem that should be (to them) relatively easy?


Because they are the best at what they do?

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.


I think he was referring to the "top notch" developers being unwilling to learn, which to me would disqualify them from the category of "top notch", no matter what how good they are at using their preferred toolset. I'm curious, if they are so resistant to learning new things, how well do they deal with changes in MSVS? Like for instance going from 2008 to 2010, the solution file format changed (and the importer is far from perfect), and things were moved around in the GUI.


I have an immensely hard time believing someone is the "best programmer in VS" without knowing how to use more advanced tools.


Because you can't learn everything under the sky. Most of them are strictly Windows programmers, with lots of console (video game) experience. They are just not interrested in Linux, OSX, etc the way other people are (me for example).

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?


Maybe he's talking about notches on the pay scale ;)


"You keep using that word. I do not think it means what you think it means." —Inigo Montoya


Slightly off topic: May I ask you what's wrong with XML (as long as it is used for what it's meant?).


The syntax. I can't stand the fact that I have to close a tag with the same name. S-expr (lisp), Lua, Json are much visually better (IMHO) way to express that. And readable (again IMHO).


Agreed. Even with a comprehensive Read Me there will be issues that people wont be able to overcome due to lack of experience...mismatched library versions, compiler versions, OS, etc.


Why is it good to shelter people from learning experiences? Forums, documentation, Q&A sites, IRC, Google, etc are all excellent resources for n00bs.

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.


Because of train wrecks like this (there are plenty of other examples around, let us no pretend there aren't):

/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.


In addition to the other response, most of these are terrible resources for people trying to learn.

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.


Perhaps I'm lucky, but I've never had any of the experiences you've described. The worst that's happened to me is having a question closed on one of the Stack Exchange sites.

I also did forget to mention mailing lists; I knew I was missing something.


I have occasionally had them. If you're doing something relatively common, like trying to compile a popular project on a popular platform, you can get answers pretty reliably.

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.


In that case I like this model, not because I want to feel like a special snowflake, but because it encourages and rewards leaning.


Wonderful! Remember those words when you encounter a program that "encourages" you to master quantum physics, tort law for interstate commerce, and accounting for mergers and acquisitions before you're allowed to use it.


It's easy to Google "how do I compile this?" or "how do I install X program?" and get results. It is not, however, easy to Google "How do I use the Hartree-Fock approximation on toluene?"

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, ...


The top Google result for "How do I use the Hartree-Fock approximation on toluene" is this comment thread. Smashing!


Ironically, the top result for "How do I use the Hartree-Fock approximation on toluene" is now your comment saying this thread is now the top result! [1]

[1] http://i.imgur.com/8EiBm.png


Even more ironically, now the top result for "How do I use the Hartree-Fock approximation on toluene" is your comment!


Point made. ;p



No. Learning about configure, make and make install is more like learning basic arithmetic than quantum mechanics. And I certainly wouldn't begrudge a program having basic arithmetic as a prerequisite!

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.


How to type ./configure, make, etc, sure

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


The last time I used make was when I was in school, about 10 years ago. I don't think I've ever used configure. The last time I used arithmetic was... every day. To me, make is closer to quantum mechanics than arithmetic.

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.


If there is anything I have learned in life, I am pants on head retarded, but so is pretty much everyone else, except for like 1 in 10 million people who must cry at night knowing everyone else is a dumb monkey, who got the combined benefits of born into upper middle class living for security + untroubled childhood + high iq + passion for learning taught early on + ambition + connections.


Okay, maybe arithmetic is too basic. But it certainly isn't beyond basic trig! I bet you don't use trig daily, but it's hardly unreasonable for you to need to know what sin and cos do.

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...


if this metaphor is still in terms of the general populace, then expecting people to understand how sin and cos work to use something is definitely too high of a bar. if you're lucky they might remember sin and cos as a magic button that changes whatever number they put in on their ti83.


In which case this model allows them to substitute money for an understanding of sin and cos.


Getting some piece of FOSS to work on a VPS many years ago was how I got started learning GNU/Linux. I couldn't be more grateful for the pitfalls and minor struggle I had before I could get whatever it was working.

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.


> I have no idea how this would translate into the world of Windows though.

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.


Don't forget to install any dependencies before you configure, otherwise you might have a shiny new ImageMagick that doesn't support PNGs!


I think it could serve as a reminder to people who aren't really sysadmins that, hey, I don't know enough to fix this if it breaks so maybe I should pay for support for this product that I rely on.


Not everything is that easy. An example would be NeoOffice for Mac. You have to "donate" to get the binaries or compile it yourself, except it requires 10.4 and XCode 2.5 [1].

[1] http://neowiki.neooffice.org/index.php/NeoOffice_Build_Instr...


To run those, if everything works, simple.

If you are even slightly embedded in dependency hell, then nearly impossible, spending a reasonable amount of time.


Or worse, they bundle it with malware/adware.


  I also take umbrage to calling this a 'donation'.
I take it you don't have a medical card?


Well, I mean, it's great to feel passionate about your users and all of that. But surely, there some of us that want to actually male money (and not modest kind that allows one to live a very simple life Costa Rica).


Hopefully he will be able to maximize his income by making it as difficult to compile on a given platform as possible, with all sorts of specific dependent libraries needed and not specified from a variety of locations. It also helps to make sure that it breaks instantly when you try to compile and fixing that takes days of work and research to find out all the problems.


Interesting that you say this because that is what I was thinking. Giving away the source, but not dependencies, makefile, etc.

Another possible model:

- Source (stripped) = free

- Source + dependencies and build instructions = small donation/contribution.

- Binaries = larger donation/contribution to save the hassle.


The reason this has no chance of working with open source software is the same reason DRM doesn't work.

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.


Or you could make it compile fine and ask for a nominal donation for the binaries. For those who are willing to give up a couple bucks for the convenience and to show their support, it might be an attractive option.

I can't say it'll work but it's nice to see people experimenting with new monetization schemes.


Good point. There are surely ways around all the ways to distribute the IP under this model.


This is not allowed under the GPL, which he is using.


If the author owns copyright on every line of code used to make the binary, they can do what they like with it without need for a license.

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.


Even though this is incorrect, I agree that this seems to totally violate the spirit of GPL which is meant to be used with free software. It's one thing to open source your code and have people donate to get support and fund development. It's quite another to charge for binaries. Others can just redistribute your binaries instead of you, so what is the point? Also, you are open sourcing and GPL'ing it, and yet you won't follow through and actually provide the built code- that's just shooting yourself in both feet. But, you have to appreciate the fact that he did open source it and that he is trying to make money off of it.


Sure it is. Under the GPL you are not allowed to distribute a binary without also distributing the source and dependencies. But it is fine to distribute the source code without bundled dependencies.


The problem is that you also need to supply the dependencies that you used to build it (makefiles and such).


Certainly. I'm not saying it's a viable business model. As I mentioned elsewhere in this thread, one person could even buy the pre-built binaries and freely redistribute them. The GPL allows this. However the parent is still factually wrong.


not to people to whom he's not distributing a binary


But once he distributes them to one person who gets the binary that person can distribute them freely to everyone else.


and he's perfectly fine with that


Is it? From my understanding, he only needs to give the full source (with a GPL license) to people he's distributing the binaries to.


Only if the binaries are released under the GPL.


good point. I wasn't trying to imply this was allowed, just another possible model depending upon circumstance.


http://www.webyog.com/en/sqlyog_feature_matrix.php does a variation on this.

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.


If you strip out dependencies, makefile's, etc., that is technically a violation of the GPL. Now, as the copyright holder, he can distribute however he wants, but no one who receives the software would be able to, and it would not be considered open source software by any stretch of the imagination.


I was under the impression that he is only not giving away the binaries. To me, that implies that the makefiles are included with the source code. But you have to compile it yourself.


Well, for me to donate I definitely want to try it first... This creates an unnecessary barrier to even trying, meaning I will try a 'competitor' first and only come back if I didn't find anything else of interest.

And I probably won't be as inclined to donate if you forced me to compile it first...


Hold them horses. There are many applications distributed ONLY after payment (called commercial) who are doing just fine. To sell an app and then let people have the source is just nice and kind.


Well, just as I'm skeptical about donating to an application I haven't tried I'm skeptical about buying an application I haven't tried.

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.


XChat does this for Windows. But inevitably, free-as-in-beer alternatives appear, like XChat-WDK.


I think it's worth noting that even with several free alternative builds, some of them more frequently updated from source than the official binaries, people still buy and pirate the official one. I'd be really interested to compare how many people have paid for Xchat against download numbers for Xchat-WDK and Silverex.


This model only works for unsuccessful software. As soon as the software gets popular somebody will redistribute his binaries in an easily accessible place. Also, like the support model, this creates an incentive for the developers to make their software worse (in this case making it harder to compile).


So it's not a "donation".


By that logic, PBS sells a lot of $100 beer-can insulators.


It's self-evident that people aren't giving $100 to PBS because they really want the PBS-logo beer cozy and can't find it cheaper or easier elsewhere.

That's a donation, and along with it the donor does some advertising exposure via the cozy.


> wants more donations from users

> 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


One problem is that I'm happiest when I can install software from software repositories I'm already pointed at, and here I either don't get that convenience or the donations are irrelevant when someone else builds it for the distro.


"Donations". Programmers are collectively very stupid, as far as economics goes.


I really don't like the software as a service business model since it under-values the coding part of things. I wish more people would experiment with partially commercialize open source projects like this.


Another possible variant is: Paid users get the newest version + support + immediate patches/bugfixes. Everyone else gets it with an n month delay + GPLed source code + binaries.


This is basically the model Couchbase (though Apache licensed, not GPL) and some other products already use.


I really, really don't like this guy. But the idea is very neat, it's basically the "sell support, no licenses"-model, just with support beginning in the pre-distribution stage.


Would you care to explain why you threw that out there?

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 :-)


You don't like the model he chose to use or you "don't like this guy"?


I do like the model - I don't like the person. @jason: My dislike for him is based on his apperances on the Linux Action Show.


I see.

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.


Will the links be nofollow, or follow links? If follow, I imagine you will get a lot of potential donators from people who aren't even interested in your software.


This is what MySQL implemented long time ago. They stopped providing windows binaries download but provided the full source code access


Are you sure? I see a giant Windows banner here: https://dev.mysql.com/downloads/

You can download that without even registering (tiny link on second page).


I think that must be new. I also remember a login prompt when attempting to download binaries from MySQL. I remember it being non-obvious that there even was a version without paid support.


He's basically just selling his software for a monthly fee, same as loads of other software companies. I don't see what the issue is.


Also know as the Red Hat model


You may want to review the Red Hat model, I think you must have it mixed up with something else.


Uh...

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.


side note, that is so cool that you have an old bbs running! that sent me back about 15 years. awesome

http://lunduke.com/?page_id=1316


Interesting model. Is the binary free to distribute?

Even if it's not, someone will just make something like lunduke-free.com and put up compiled binaries.


From the linked post: You’ll note that all of this software is GPL’d. Which means any Tom, Dick or Harry (or any other awesome name) can build their own binaries and distribute it on their website or repository. And I have absolutely no problem with that.


It has to be, since it is GPLed.

(If not, he could sue himself for copyright infringement).


As long as all the source is his or has been contributed under a less restrictive license, he should be free to release the binaries under another license.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: