Cliquen in der Wikipedia

Im Rahmen eines Projekts im Studium habe ich ein Skript gebaut, das Cliquen (Gruppen von Artikeln die untereinander alle verknüpft sind) in Wikimedia Installationen findet.

Hier möchte ich die größten Cliquen in der Deutschen Wikipedia betrachten.


Clique der Größe 23:
Planscher, Cornalin, Roussin de Morgex, Humagne Rouge, Vien de Nus, Durize, Prëmetta, Eyholzer, Goron de Bovernier, Roussin, Fumin (Rebsorte), Petit-Rouge, Lafnetscha, Bonda, Crovassa, Rèze, Himbertscha, Prié Blanc, Completer, Humagne Blanche, Mayolet, Vuillermin, Petite Arvine
Es handelt sich um eine Gruppe von Rebsorten, die vorwiegend in den Italienischen Alpen zu Hause ist.


Clique der Größe 19:
Systematik der Minerale nach Strunz (9. Auflage), Systematik der Minerale nach Strunz (8. Auflage), Sakuraiit, Toyohait, Famatinit, Luzonit, Velikit, Ferrokësterit, Briartit, Kuramit, Liste der Minerale, Stannit, Pirquitasit, Permingeatit, Hocartit, Rhodostannit, Petrukit, Černýit, Barquillit
Unschwer zu erkennen, handelt es sich hier um eine Gruppe von Mineralen (und die Bücher zur Einteilung) die (schwerer zu erkennen) gemeinsam die  “Stannitgruppe” bilden.


Clique der Größe 17:
Mertieit-I, Stibiopalladinit, Ungavait, Systematik der Minerale nach Strunz (9. Auflage), Arsenopalladinit, Polkanovit, Stillwaterit, Genkinit, Liste der Minerale, Menshikovit, Majakit, Palladoarsenid, Palladobismutoarsenid, Systematik der Minerale nach Strunz (8. Auflage), Palladodymit, Rhodarsenid, Atheneit
Unschwer zu erkennen, handelt es sich hier um eine Gruppe von Mineralen (und die Bücher zur Einteilung) die (schwerer zu erkennen) gemeinsam eine Untergruppe der Sulfide bilden.


Clique der Größe 17:
Ludwig Hopf, Arthur Guttmann, Hermann Bonin, Rudolf Ruer, Karl Walter Mautner, Adolf Wallichs, Leopold Karl Pick, Robert Hans Wentzel, Alfred Meusel, Theodore von Kármán, Paul Ernst Levy, Walter Fuchs (Chemiker), Otto Blumenthal (Mathematiker), Hermann Salmang, Hubert Hoff, Ludwig Strauss, Felix Rötscher
Hierbei handelt es sich um eine Reihe von Professoren mit “nicht-arischer” Abstammung, die im September 1933 im Rahmen des “Gesetz zur Wiederherstellung des Berufsbeamtentums” Lehrverbot erhalten sollten.


Clique der Größe 17:
Rätzlingen (Oebisfelde-Weferlingen), Weferlingen, Etingen, Döhren (Oebisfelde-Weferlingen), Hödingen, Hörsingen, Eschenrode, Walbeck (Oebisfelde-Weferlingen), Seggerde, Siestedt, Bösdorf (Oebisfelde-Weferlingen), Schwanefeld, Eickendorf (Oebisfelde-Weferlingen), Kathendorf, Landkreis Börde, Oebisfelde, Oebisfelde-Weferlingen
Hierbei handelt es sich um eine Reihe von Orten im Landkreis Börde um die Gemeinde Oebisfelde-Weferlingen.

Ein paar weitere Cliquen mit weniger Bilder gibt’s nach dem Break.

Weiterlesen

Computerspiele der Sieger 2013 – Top 5

Das Jahr neigt sich dem Ende und ich werfe einen Blick zurück auf das Jahr 2013. Das Jahr der Sieger.

Ich habe 2013 zwar kaum Zeit zum Spielen gehabt und trotzdem…

Platz 5: Kerbal Space Program

Recht viel Zeit investiert habe ich in “Kerbal Space Program”, eine NASA-Simulation bei der es darum geht, nichtsahnende Kerbonauten mit selbstgebauten Raketen ins All zu schießen.

Kerbal Space Program gibt es für 24,99EUR bei Steam und läuft angeblich auch unter Linux.

Platz 4 bis 1 gibt es nach dem Break.

Weiterlesen

Computerspiele der Sieger 2013 – Runner-ups

Das Jahr neigt sich dem Ende und ich werfe einen Blick zurück auf das Jahr 2013. Das Jahr der Sieger.

Ich habe 2013 zwar kaum Zeit zum Spielen gehabt und trotzdem…

Don’t Starve

Don’t Starve ist ein Singleplayer Survival Roguelike (mit Permadeath usw.). Es ist in einem netten Stil gezeichnet und es gibt viel zu entdecken.

Wer Tim Burton, Crafting, Erforschen und die Permadeath Spannungsfrustrationsspannung mag und damit klar kommt, nicht so kreativ arbeiten zu können wie in Minecraft oder Terraria, für den ist Don’t Starve genau das Richtige.

Don’t Starve gibt es im Humble Store für 14,99USD (aber ist so gut wie immer ordentlich rabattiert) und läuft auch auf Linux (sogar unglaublich ordentlich).

Little Inferno

Little Inferno ist eine Art Physik-Puzzler in dem Sinne, dass es darum geht, Objekte in speziellen (coolen) Kombinationen anzuzünden und abbrennen zu lassen. Little Inferno hat beim “Independent Game Festival” den Preis für “technical excellency” gewonnen und das Spiel sieht auch fantastisch aus und ist ein sehr kurzweiliges Vergnügen.

Ein toller Soundtrack und eine interessante Story runden dieses Spiel ab.

Little Inferno gibt es auf der Herstellerseite für 10USD für Desktop-Plattformen und für weniger auch für Android, iOS und Wii U.

Antichamber

Antichamber ist ein Puzzle-Platformer, der Kopfzerbrechen und -schmerzen bereitet. Ein Spiel im MC Esher-Universum, wie es verwirrender kaum sein kann. Man biegt 12 Mal rechts ab und ist immer woanders. Wenn man sich aber umdreht, steht man vor einem langen, geraden Gang, der da vorher garantiert nicht war. Spaßig auf jeden Fall. In kleinen Portionen zu genießen.

Antichamber gibt es für 19,99USD im Humble Store und sollte beim nächsten Sale mit abgegriffen werden.

Releasing Quadrapassel 3.8.2

After I had some Issues releasing Quadrapassel 3.8.2 which have been resolved thanks to the quick work of Andrea Veri.

Disable preview-button in difficult block mode

Disable preview-button in difficult block mode

As of now, the most current stable version of gnome Quadrapassel is 3.8.2. Here’s what the news file says:

Colin Kinloch:

  • Fixed repeated down press bug

Mario Wenzel:

  • Hiding preview embed when preview is unavailable or disabled
  • Disable preview-button in difficult block mode
  • Fix bug where falling block shadow would get missing
  • Fix segmentation fault when down key was released after game was over
Hiding preview embed when preview is unavailable or disabled

Hiding preview embed when preview is unavailable or disabled

Michael Catanzaro:

  • help: update translate  link for new module name

Andika Triwidada:

  • Updated Indonesian translation

Yuri Myasoedov:

  • Updated Russian translation

I wish to thank all contributors, especially Michael who brought me in and vouched for me.

Quadrapassel 3.8.2 should be in your repositories soon.

GNOME, I am here

I’ve checked in with the games maintainers, [...], and we’d like to extend an offer to become a maintainer for Quadrapassel.

Bildschirmfoto von »2013-07-12 10:59:41«So that’s what I am now, I guess. I will keep you posted on the new stuff I’ll help getting into the quadrapassel repository.

If you want to contact me, you can write an email to maweki at gmail dotcom or you’ll usually find me hanging out in #gnome-games on the gnome irc servers.

It will take me some time to get all the bureaucracy out of the way so bear with me a bit but I’ll be triaging bugs in notime. :)

Mario

p.s.: I’d like to thank Michael Catanzaro for his quick and competent help.

Solving a math puzzle with Python’s generator expressions

Recently James Grime of numberphile-fame posted a puzzle on YouTube. The video is right here but the question is (if you don’t care to watch): “How many ways are there to completely fill a Noughts and Crosses (tic-tac-toe) board, with four noughts and five crosses? Not including rotations and reflections.”

So I am not much of a mathematician and I also did not really care for fopping about much so I wrote a small program in python to find the solution. And I took the chance to make a post about generator expressions in python as well.

A generator expression can take two general forms:

def gen(count):
  c = 10
  while c > 0:
    yield c
    c = c - 1

Here the yield keyword is what it’s all about. This will generate an iterable object that returns the yielded items. The cool thing is, that computation of this method is suspended until the next item is needed.

If you already have an iterable you can create a new generator expression from it:

g = (x for x in gen(10))

Here you can filter or map the value of x as you will see. And again, this is only a generator. No computation happens unless you actually want to print any values or you manifest them into a list.

you will find the source code of my solution below the fold

Weiterlesen

Using ExtJs’ bind to partially apply a function

Because of my work I dabbled a bit in ExtJs and I wanted to show you something that I need quite regularly. It has become common practice in JavaScript to pass around function object like no man’s business. Which is quite alright. But sometimes you prepare a function for another library. Usually this looks something like this:

var somefunction = function (arg1, arg2, arg3, arg4, arg5) {
  console.log(arg1, arg2, arg3, arg4, arg5);
};

var caller = function (fObject) {
  return fObject(1,2);
};

caller(somefunction);
// 1 2 undefined undefined undefined

But you can’t pass any argument to somefunction (because JavaScript is not Haskell and you cannot build partially applied thunks). So how do we partially apply some values? ExtJs gives us quite a powerful tool:

caller(Ext.bind(somefunction, undefined /* this is the bound scope which, in this case, is not needed */, [3,4,5], true));
// 1 2 3 4 5

Usually, you would bind the scope to “this” but in this rather trivial case, we don’t need it. The “true” at the end is to tell Ext to append the new parameters (3, 4 and 5) rather than overwriting the existing ones. But we can put them any place we want.

caller(Ext.bind(somefunction, undefined, [3,4,5], 1));
// 1 3 4 5 2

We also can, which is rather cool, apply them in instead and therefore “cancel out” other paramters by leaving the last bind-parameter as undefined:

caller(Ext.bind(somefunction, undefined, [3,4,5]));
// 3 4 5 undefined undefined

You can, of course, save your partially applied function objects:

var partiallyAppliedFunction = Ext.bind(somefunction, undefined, [3,4,5]);
partiallyAppliedFunction();
// 3 4 5 undefined undefined

But remember: The function is saved as reference at binding time (and not by name). Therefore changing the original function won’t change anything:

somefunction = function () { console.log('I no longer do as I am told.') };
partiallyAppliedFunction();
// 3 4 5 undefined undefined

You can also construct function objects from anonymous functions/closures that way, for whatever reason you would need that:

var SomeBoundAnonymousFunction = Ext.bind(function (a) { console.log(a); }, undefined, [3,4,5]);
SomeBoundAnonymousFunction();
// 3

cool, huh?!