summing up 3

a more or less weekly digest of juicy stuff

summing up 2

a more or less weekly digest of juicy stuff

summing up 1

a more or less weekly digest of juicy stuff

jquery scramble plugin

an often found way to randomize an array in javascript is the following

[1,2,3,4,5].sort(function() { return 0.5 - Math.random() });

or using a jquery selector

$('.myclass').sort(function() { return 0.5 - Math.random() });

i probably don't have to tell you that this is a bad way to randomize stuff. it also seems to be browser specific and as such some browsers deliver quite good results (based on murphy's law, this will be your test browser) while others almost don't randomize at all.

as i needed the randomization to happen in-place but not touching the elements in the dom at all, i was looking for already existing jquery plugins. unfortunately i was out of luck here. or i didn't search desperately enough. whichever makes you feel better.

i quickly hacked down a jquery plugin which uses the fisher yates shuffle algorithm to shuffle a jquery selection with quite good results.

(function($) {
  $.fn.scramble = function() {
    var len = this.length;
    if (len > 0) {
      var i;
      var tmp;
      while (--len) {
        i = Math.floor(Math.random() * (len + 1));
        tmp = this[i];
        this[i] = this[len];
        this[len] = tmp;
      }
    }
    return this;
  };
})(jQuery);

you probably want to do something like this afterwards:

var elements = $('.myclass').scramble();
do_whatever_the_hell_you_want(elements);

please find the code along with a minified version and demo in the git repository: http://git.dgsiegel.net/jquery-scramble.git

as always, i would be more than happy for any corrections or suggestions!

typical development processes of free and open source software projects

ladies and gents, today i proudly present you my master's thesis on the typical development processes of free and open source software projects.

after yesterday's official graduation ceremony i am able and allowed to publish my thesis to the public. interestingly enough i decided to not go with a publishing company as negotiations with several academic publishers resulted into terms like loosing the copyright or having big expenses before even being able to publish a book.

lucky for you, i decided to publish my thesis under a creative commons by-nc-sa license. being a believer in the values of free and open source software and having done research on the very same topic i truly think that this is the right way to go.

in the next weeks i will take the opportunity to present some very interesting findings and results and discuss them here.

a short note at the very last. i encourage you to download, share und make use of my research under the terms of the above mentioned license and hope that it helps you somehow or other. if that is the case i would be very grateful if you could afford a small donation as described on this page.

with no further delay, go ahead and download my thesis!

october 2012

august 2012

july 2012

may 2012