Humans have optimized the fun out of League of Legends

Recently I have played League of Legends aka LOL again because – well – it is a fun game, isn’t it? Controlling your character, seeing cool graphics, having those big clashes of teams that make the screen explode. And in the end LOL is much more relaxed than Dota 2, right?

Yes, I had a short honeymoon phase, before I realized why I quitted LOL so many times before: Humans have optimized the game so hard that it’s no longer fun for a „casual“ player like myself to play it.

But what the hell do I mean with that?

Determined hero role3

Well to begin with: You can’t f***ing decide how you play the game.

So let’s talk again how you start a game of LOL:

  1. You press the button to start the game. Alright.
  2. You find a game
  3. You join the game
  4. And in the first 3 seconds every other player except you spams the chat with the role he/she wants to play.

So all you see is „jgl“, „top“, „mid“, „adc“.

What now?

Well, this means you are „forced“ to play support in the bottom lane. You are „forced“ to choose a support hero and support the ADC in the bottom lane – so basically you watch him get money while you stand around and heal him occasionally.

Haha no I am just joking about this part, I actually love playing support. But still you get my point. Every f***ing role is determined beforehand. You need to take a suppor thero, you need to go to that bottom lane, and you need to support that ADC player.

It’s not that the game forces you, but the other humans in your team – without even saying a word. Because as soon as you do something „unexpected“ they will start to flame you and WOOOW TAKE CARE report you like an 8 year old boy that starts crying because you ran over his feet with your car… well no wait that would actually hurt, so let’s go with the old „you stole my candy!“-story.

Need an example?

Leave my lane you asshole you steal my money

LOL is a team based game, so it’s all about teamplay, right?


Many times it happened that I was support in the bottom lane and I saw the guy in midlane struggle so I thought to myself: „Hey Marcel, you are such a good guy, you are a white knight, a hero! You must go help this poor fellow!“

So I ported to mid, helped either kill or at least scare the enemy mid guy away and protect my mid-lane team collegue.

And what happens?

Many times my mid-lane „friend“ who was supposed to be thankful that I helped him in times of danger, he actually yelled at me (in chat) saying shit like „Go back to your lane, you don’t belong here!“ „How dare you steal my money!!! Go away! Don’t last-hit the creeps!“

Is this how you thank a white knight? I doubt it.

Go back to your lane you already cost us two towers!!!

This was also a funny one. So I was in the top lane fighting against this other guy and it was suuuper boring because for 10 minutes we could not kill each other but just both try to farm as much money as possible.

Then I realized that there is a big team fight going on on the bottom lane. And in my dictionary of „How to play a f***ing moba“ if you have a team fight you better go there to help.

So again, I ported to bot, and we were able to kill some of the other guys or whatever.

Anyhow, so while we were fighting at the bottom lane, one single enemy pushed the top lane that was undefended at this time.

I immediately noticed it… because one of my teammates pinged it like 100 times on the map.

And of course he also said in the chat „What are you doing? Go back to your lane you already cost us two towers!!!!“

Now the rule # 1 in a game like LOL is of course: Never try to argue with foreign players about your playstyle, you can not win.

But sadly rule # 2 is you can NOT just be quiet. You need to say something.

So I was like „Yes I know I know the tower has gone but I was here in the bottom lane helping in the teamfight“

Of course he was not happy and threatened to report me.

Humans have optimized the fun out of League of Legends

LOL would be such a great game. The graphics are beautiful, the heroes well-designed (more or less). But the fact that you can not just pick whatever hero you want based on whatever you feel like just kills the game for me.

And you need to stay in your lane, you need to do exactly what people expect your role to do.

I don’t play games so other people can tell me how the f*** I should play my game (never tell that to others, you will lose).

This can go so far that you can play as jungler and people in your team will „command“ you to either take the blue or red buff first. Come on guys just leave me play my game ffs.

That’s why Dota 2 is so much better

Now how does this look in Dota 2?

(PS: Play „Turbo mode“ not regular „All Pick“ for more casual fun)

During character selection you can pick any character you like. Any. Nobody gives a f*** because people believe in the creation of random synergy between heroes.

During the game you can more of less just roam around on the map because people believe in your skills to react to the game and potentially gank a lane that is not „your“ lane.

People will (mostly) not flame or report you for such behaviour. Instead, everyone is happy to see and welcome you on his lane because it’s awesome that you want to help him on his lane against his enemy, especially if he is behind.

I can’t stress this enough: People are actually happy to see you on their lanes because it might give you an advantage over the enemy.

So long story short: Dota 2 > LOL 🙂

Wo speichert ein Datenbank Docker Container seine Daten?


Die Frage, die aufgetaucht ist, ist folgende: Ich möchte einen Datenbank Docker Container zum Beispiel in OpenShift erstellen. Dies ist eine sehr einfache Sache, da OpenShift bereits Templates für diverse Datenbanklösungen wie PostgreSQL anbietet.

Die Frage ist nun: Wenn ich diese PostgreSQL Instanz verwende und fleissig Daten inserte und update – Sind diese Daten dann im Container gespeichert oder brauche ich extra einen externen Speicher?


Docker Container sind von kurzlebiger/flüchtiger Natur – Das korrekte Englische Wort dafür ist ephemeral. Heisst, alle Daten, die ich in meinem Docker Container speichere, sind verloren, wenn ich den Container neustarte oder wenn sonst etwas mit ihm passiert.

Um Daten persistieren zu können wie etwa in einer Datenbank muss man diesen Container an einen externen Speicher anschliessen (etwa NFS, Block Storage wie SAN oder Container Native/Ready storage wie gluster/ceph). Werden die Daten dort persistiert, überdauern sie auch das brutale Töten des Docker Containers.

Wenn man dann Daten in die PostgreSQL Tabellen einfügt, schreibt es die Daten dann effektiv auf den angegebenen Speicher, den man an den Container beziehungsweise an den Pod angehängt hat.

So macht mans also richtig: Immer zuerst ein persistentes Volume anlegen und dann mit einem sogenannten Persistent Volume Claim auf diesen Speicher zugreifen.

Du kannst in deinem Java 8 Projekt keine JAR Datei verwenden die in einer höheren Version kompiliert wurde

Was wie das elfte Gebot klingt ist mir tatsächlich passiert: Ich habe an meinem Java 8 Projekt gearbeitet und musste dann eine Model-Klasse von einem anderen Projekt verwenden. Doof nur: Das andere Projekt ist bereits in Java 11 programmiert (noch ohne Module zu verwenden).

Ich habe mir nichts dabei gedacht, sondern wie gewohnt die Maven Abhängigkeit im Pom.xml eingetragen und kurz darauf habe ich die Jar-Datei in meinem Projekt in IntelliJ gefunden.

Als ich die Klasse versucht habe, zu verwenden, war IntelliJ sogar noch höflich zu mir und hat mir gesagt „Ja gut, ich kenne diese Klasse, die liegt doch in diesem Jar-Dings, du kannst sie also einfach importieren„.

Als ich die Klasse aber tatsächlich importiert habe kam nur die Meldung „Cannot resolve symbol„.

Ich habe alles mögliche versucht: Den Cache in IntelliJ invalidiert+restartet, den Target Ordner gelöscht und nochmals Maven:clean-install gemacht, und so weiter, aber nichts hat geholfen. IntelliJ konnte die Klasse einfach nicht finden. Selbst im Classpath war die Klasse beziehungsweise das Jar vorhanden.

Ganz zufällig habe ich etwas entdeckt, als ich die Klasse dekompiliert betrachtet habe: IntelliJ hat mich darauf hingewiesen, dass die Klasse in Java 11 kompiliert wurde. Das habe ich zu Beginn nicht gewusst, obwohl ich in diesem Blogpost natürlich explizit über genau diese Situation schreibe.

Was auch mühsam war: Bei meiner Internetrecherche bin ich auf niemanden getroffen, der die gleiche Situation beschrieben hat. Sobald man irgendwas wie „Use class from java 11 in java 8 project“ bei Google sucht kommen alles nur Anleitungen, wie man von Java 8 auf Java 11 migriert.

Weder die Internetrecherche noch meine Arbeitskollegen konnten mir weiterhelfen. Was also tun? Natürlich! Frage auf Stackoverflow gepostet und prompt hatte ich 8 Minuten später ganze 3 Antworten, die es mir erklärten:

You cannot use a jar file compiled in higher version of java in a project developed in lower version of java

Da momentan viele Firmen noch Java 8 verwenden und gegebenfalls zum Teil bereits auf Java 11 gewechselt haben ist es sicherlich praktisch, wenn jeder Java-Entwickler diesen Satz zumindest mal gehört hat.