How to speed up Maven and Eclipse?

At work I am constantly bugged by modal dialogs in my Eclipse whenever the m2e plugin starts any kind of long-running Maven action, like downloading artifacts from our company repository. It startet to get really annoying a couple of weeks ago when almost every single one of our own artifacts downloaded only with a few kB/s. So I started to investigate some of the usual suspects:

To test network speed I did regular HTTP Get requests and tried downloading our artifacts from different computers around the network. All downloads were much faster than the downloads inside my Eclipse installation.

Then I removed all proxy settings from my set up, although I already had exclude rules for our Nexus repository. No improvement.

My Maven settings are pretty bare from the start, but I tried to strip everything from old projects and only kept my custom repository location and some other stuff related to my local set up. I also upgraded to Maven 3.2.3, just to have to latest version. No improvement.

Then I took another look at the Nexus repository and tried to add a custom routing for our artifacts. Instead of looking into all configured repositories (or whatever Nexus decided to route based on internal automatic routing rules…) I added the first to elements of our company groupId to a custom routing and let Nexus only look in the hosted snapshot and release repositories.

Finally, that seems to bring an improvement and now download speed and overall maven performance in Eclipse is much, much higher. I’m not quite sure that the annoying modal dialogs will not pop up in my face anymore, but at least I feel like I am not constantly waiting for Eclipse anymore…

Javadoc FTW!?

Heute bin ich über ein gutes Beispiel gestolpert, wieso ich Javadoc mittlerweile ablehne und nur noch auf öffentlichen APIs haben will:

Super Javadoc!

Alles drin was man sich so wünscht:

  • Supergenerischer erster Satz
  • Fehlende Beschreibung
  • Hinweis auf mind. verbesserungswürdige Funktionalität (oder Bug?)
  • zur Abrundung noch ein Schreibfehler
  • vermutlich autogenerierte @version Annotation

Sowas kann man getrost weglassen.

Minecraft Audiodevice unter Ubuntu ändern

Ich benutze ein Logitech G430 USB Headset und wenn ich unter Linux das Geräte einstecke, kann ich bis vor kurzem das Audiodevice für Minecraft nicht mehr ändern. Das ist sehr nervig und muss nicht sein.

Wenn ihr die Datei ~/.alsoftrc mit folgendem Inhalt anlegt, könnt ihr auch bei Minecraft das Audiodevice nach dem Start noch ändern:

drivers=pulse
[pulse]
allow-moves=true

Wenn ihr jetzt pavucontrol aufruft, könnt ihr Minecraft auf das neue Audiodevice verschieben.

Hier gibt es auch eine entsprechende Antwort bei AskUbuntu.

Running Minecraft in a Docker container

If you ever want to run a minecraft server, but you don’t want to add all the Java and minecraft files directly to your servers filesystem, you can use the following Dockerfile:

FROM google/debian:wheezy
RUN apt-get -y update
RUN apt-get -y install openjdk-7-jre-headless wget
RUN wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar
EXPOSE 25565
RUN echo eula=true > eula.txt
CMD ["java", "-jar", "minecraft_server.1.8.jar"]

You can then build a Docker container with the following command:

sudo docker build .

After that, you have a Minecraft 1.8 server running and you can connect to 127.0.0.1:25565 with your Minecraft client. Enjoy!