Please provide VM for your Open Source project!

tl;dr

Please save everyone some time and provide VM for your Open Source project, it takes far too long to build from source,

I’m tired of searching Google for weird error messages and dependencies that need building from source.

I’m not talking on just running the binaries, but about changing the source and rebuilding, which can be a lot easier that it is currently.

 

Hi,

I’m spending way too much time on building Open Source from source,

On one project I had to compile other needed projects from source, and had to switch Linux distribution, to get some newer packages, on top of understanding weird error messages, using forums and what not.

Just the other night I’ve build a very famous open-source project, it took ~5 hours, including several Google searches for errors and at last – manually fixing the Makefile after configure.

What I’m asking is this – you are the developers, you know how to compile your project better than anyone, and heck – it’s already running on your computers – can’t you just give it to me working on a VM?

You can also use a VM during development, it may save time, and maybe you already do use one, so could you provide it in a transferable way?

You want to know the real reason that more people don’t contribute to Open Source?

It’s that huge learning-curve of time and efforts for every single project when you desperately try to understand all kinds of errors during the first compilation attempt.

You really don’t give much motiviation for someone else to contribute to your project if she spends so much time just trying to run it from source – it’s a mental thing – first impression means a lot!

If you see nice GUI and then some bugs you may forgive, but the other order is tricky – if you first get lot’s of error messages and look all over forums for help – you may not want to wait for the GUI.

I don’t understand why I have to spend several hours building trivial little programs, and clear up several days for big ones. it’s wasted time I should put into fixing new bugs – not “fixing build features” that are encountered and fixed by every user trying to install.

No problem should ever have to be solved twice

Right?

So please save me, you and everybody some time, and provide a VM.

PS

* No ‘configure and make’ usually don’t make it work. (You can spend several years trying to make those better, and that’s fine by me, but in the meantime…)

The build problems on a new computer will probably be there regardless of your programming ingenuity – it’s not a trivial problem, and you can bet your new users have it too, just don’t let them tackle problems they don’t really have to – provide VM pretty please 🙂

* If there are problems of bandwidth, storage etc’ we could solve them together… servers and disc space are getting cheaper by the day. I’d rather spend several hours downloading (when I can do other things as well) than several hours debugging.

The Computer and the Perfect Pie, (Slice A)

Let’s say that an Algorithm is like a pie recipe.

You really want to make someone you love a good pie,to match his or hers perfect taste right?

well let’s assume you don’t really know his or hers taste…

What do you do?

Well you could go here,  but let’s assume that you don’t 🙂

So…

There are two (more) ways to make the pie perfect his or hers perfect taste.

The first is to make every possible pie in the world!

Every possible pie (well,,, many :))

on one just a tad more sugar, on the other one cherry more. there are a lot of combinations, really.

sounds a bit crazy?

Well that’s what happens when you let a computer make a pie.

OK, not always, just when the programmer tells it to do it.

This ‘try everything until it’s perfect’ is called “Brute Force Search” and sometimes it even works in a reasonable amount of time.

that’s because computers, while not naturally good chefs, can “cook” very very fast.

The other option is cooking like most people (who don’t run 5 stars restaurants) do –

You try several recipes, and ask your loved one “did you love the Fresh Strawberry Pie more than the  Chocolate Bourbon Walnut Pie” ?

and then, and this is where the fun starts, your change the recipe!

For example, you conclude that Strawberry is the thing, so you do two strawberry pies, with slight differences, and ask “Did you love the Fresh Strawberry Pie more than the Strawberry-Rhubarb Pie ?”

and after several of this steps, you reach the perfect (or good enough) taste! (or can’t look at pies anymore, either way, after finite amount of steps, the process ends :))

Now this kind of process is usually faster then “Brute Force Search” as you usually don’t try every possibility, for example, if the taster preferred strawberry over Chocolate you won’t try every other  Chocolate flavor right? just try strawberry, right?

(by the way, you could be wrong about this, and the taster may only like one specific Chocolate pie, much more than any other kind of pie, but prefers strawberry over other less desired types of chocolate pies, it’s a problem with this process, especially with people with odd tastes, so with them you’ll probably have to settle for ‘very good’ instead of ‘perfect’, or try many combinations… :))

That method of work, in which you try something, get a score about the quality of your answer, and than retry is well it’s Trail and Error, but it’s more than that, basically you had the following steps:

* choose pies. (Random phase), this is done only once at start.

The number of pies is called the “population” number.

* taster grades pies. (Grading phase)

* Throw away low graded pies.

* Keep some high graded pies (well at least their recipes) at the side.

* Mix high graded pies (if both cherry pie and apple pie got high grade, try a cherry+apple pie!). (Both previous steps are the “Breed phase” – high graded pies breed with each other, bringing little cherry+apple pie or some other breed, lower graded pies will have low chances to breed…)

(* Taste good graded pies, because they should taste good `))

* Change a bit the high graded pies (Mutation phase), maybe change some quantities or add some  Brazilian nuts!

* Repeat the process (from the second step) until score == 100 (for perfect) or until score is higher than (score enough to make taster happy, yet amount of tries less than needed to make the chef angry), every repeat is a “new generation” of pies.

Not every chef will do every step, maybe some chef will use just one cake and modify it on every

“generation”, that is have a  population of 1, and doing just the Grading, and Mutation phases (and well maybe “keeping good recipes” phase) others, life food companies and highly patient mothers, will do some more, but all of this is what is called in Computer Science a Genetic Algorithm.

Yes, there is an entire field on how to make good pies. (ignore the ‘computer’ part, really)

Well not just pies, or even pies recipes, but all kind of recipes. and even on recipes for how to make better recipes (here a recipe called Genetic Algorithm for making better pie recipes).

I hope to discuss it some more, but not until I get some pie! :).

PS you aren’t suppose to write about Computer Science and pies without mentioning Pi but I managed! No wait…