Kotlin Eclipse Plug-In: jvmTarget einstellen

English version below

Beim Versuch, ein Java/Kotlin-Projekt in Eclipse zu importieren, erhielt ich die folgende Fehlermeldung:

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6.

Leider konnte ich mit Google keine sinnvolle Lösung zu dem Problem finden, lediglich eine kurze ergebnissoffene Diskussion welche auf einen Pull-Request verweist. Zwar ist der Pull-Request längst gemerged, in den Einstellungen sehe ich aber nichts davon. Offenbar haben die Entwickler vergessen, den Einstellungsdialog entsprechend zu erweitern.

Das jvmTarget lässt sich dennoch einstellen, in dem das entsprechende Konfigurationsfile manuell geändert wird.

Die Datei liegt im Projektverzeichnis unter .settings/org.jetbrains.kotlin.core.prefs und muss wie folgt modifiziert werden:

globalsOverridden=true
jvmTarget=JVM_1_8

Mit der oberen Option aktiviert man projektspezifische Einstellungen. Die untere Option setzt das jvmTarget auf den gewünschten Wert. Mögliche Werte sind hier zu finden.

English Version

Kotlin Eclipse Plug-In: how to set jvmTarget for a project

When I recently tried to import a Java/Kotlin project into eclipse, I got the following error message:

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6.

Google could not give me an answer how to solve this issue. The only useful information I found was a short discussion in which a pull request was mentioned. Although the pull request is already merged, there’s no setting in eclipse to change the jvmTarget. Looks like the developer forgot to implement the GUI for this settings.

Nevertheless, with the change it’s possible to set the jvmTarget by changing a configuration file manually. The file is located within project folder at .settings/org.jetbrains.kotlin.core.prefs and has to be changed in this way:

globalsOverridden=true
jvmTarget=JVM_1_8

The first option enables project specific Kotlin settings. The latter sets the actual jvmTarget. Valid options can be found here.

Root auf dem Tolino Shine 1 mit aktueller Firmware

Mein Tolino Shine der ersten Generation ist zwar schon etwas in die Jahre gekommen, leistet mir aber weiterhin gute Dienste. Ich hatte das Gerät damals mit der Firmware-Version 1 gekauft, welche man noch recht einfach rooten konnte. Diese Chance hatte ich aber mit dem ersten Firmware-Update, welches ich einspielte, verpasst.

Inzwischen bin ich bei Firmware-Version 10.5 angekommen, die sich nicht ohne das Gerät zu öffnen rooten lässt. Da das Gerät aber sowieso keine Garantie mehr hat und es sich nach einem Sturz an einer Ecke schon leicht geöffnet hat, will ich es noch einmal mit dem Rootzugang versuchen.

Weiterlesen

Netcup 5€ Gutschein – September/Oktober 2019

In meinem Vergleich von Anbietern von vServern habe ich regelmäßig aktuelle Netcup-5€-Gutscheine für Neukunden verlinkt. Aufgrund der hohen Nachfrage aktualisiere ich diese zukünftig regelmäßig in diesem Post.

Die folgenden Gutscheincodes für September/Oktober 2019 sind jeweils nur 1x verwendbar, also einfach einen anderen probieren, wenn einer nicht funktioniert.

  • 36nc15426077160
  • 36nc15296487660
  • 36nc15058841820
  • 36nc15296487860
  • 36nc15296488180

Um die Gutscheine zu verwenden, muss eine spezielle Bestellseite bei Netcup verwendet werden.

Vodafone GigaCube SIM im E3372 Surfstick am LEDE/OpenWRT Router

Ich habe mir Vodafone GigaCube mit einem Volumen von 200 GB / Monat als DSL-Ersatz zugelegt. Der Cube selbst war schnell eingerichtet und im LEDE-Router als Gateway eingetragen. Allerdings muss ich damit ein weiteres Gerät und bekomme auch noch Doppel-NAT. Daher habe ich das ganze auf einen Huawai E3372 Surfstick umgebaut.
Die Prozedur war holpriger als erwartet, was nicht an der Komplexität sondern an den lückenhaften Infos im Netz liegt. Daher trage ich hier mal alle notwendigen Schritte zusammen.
Weiterlesen

Docker-Container mit eigener, statischer LAN-IP ausführen

Unter Docker haben Container in der Regel eine dynamische IP in einem docker-internen Netzwerk. In einigen Fällen ist es jedoch sinnvoll, Container direkten Zugang zum LAN über eine eigene LAN-IP zu gewähren. Beispiele dafür sind dockerisierte VPN-Gateways, über die geroutet werden soll sowie Dienste, welche auf Layer 3 im Netzwerk ereichbar sein sollen.

Docker bietet mit MacVLAN einen Netwerktreiber, der ein solchen Setup ermöglicht. Eine Einschränkung ist jedoch, dass ein solches Netzwerk keine Kommunikation zwischen dem Host und den Containern zulässt – dies kann man jedoch recht einfach ändern.

Weiterlesen

Traefik und Let’s Encrypt Zertifikate via DNS-01 über OVH

Für meinen Heimserver setzte ich seit einer Weile Docker ein. Um auch die heimischen Dienste mittels HTTPS abzusichern, soll Let’s Encrypt zum Einsatz kommen. Da die Webserver aber nicht öffentlich erreichbar sind, muss zur Bestätigung der Zertifikate das Verfahren DNS-01 zum Einsatz kommen. Ich habe meine Domains inzwischen bei OVH, da diese eine ordentliche API zur DNS-Verwaltung anbieten – was Grundvoraussetzung für DNS-01 ist.

Als Webserver bzw. Reverse-Proxy setze ich Traefik ein – dieser kann Docker-Container anhand von Tags über Domains verfügbar machen und auch gleich Let’s Encrypt Zertifikate ausstellen.

OVH als DNS-Provider wird von Traefik unterstützt. Das Setup möchte ich hier vorstellen.

Weiterlesen

Vergleich alter und neuer vServer-Generationen bei Netcup

Bei Netcup wird regelmäßige Produktpflege betrieben. Oftmals wird die Leistung von vServern bei gleichem Preis verbessert, oder der Preis sinkt sogar bei gleicher oder besserer Leistung. Allerdings ist dies nicht immer der Fall. Beispielsweise werden die alten Server mit den Bezeichnungen „Root-Server XXL“ oder ähnlich, welche zum kleinen Preis große SSD-Volumes enthielten, nicht mehr angeboten.

Ältere Angebote lassen sich aber noch aufrufen, wenn man die Links kennt – und bei Verfügbarkeit auch nach Einführung der nächsten Produktgeneration noch bestellen.

In diesem Artikel vergleiche ich einige derzeit bestellbare vServer aus den verschiedenen Generationen.

Weiterlesen

Congstar / Ja!Mobil Messaging Option automatisch buchen

Vor kurzem bin ich auf die Messaging-Option von Congstar aufmerksam geworden – mit der Prepaid-Karte (die es übrigens auch von Ja!Mobil gibt) kann man einen Tarif buchen, welcher kostenloses „Internet“ mit 32kbit/s bietet. Wozu braucht man das? Für es ist die ideale Sim-Karte für IoT-Projekte. Konkret möchte ich den Windmesser unseres Surfvereins via GSM/GPRS ans Netz bringen – dafür reicht die angebotene Bandbreite völlig aus.

Allerdings gibt es eine kleine Hürde zu nehmen: Die Messaging-Option muss auf der Seite http://datapass.de monatlich neu gebucht werden. Um dies zu automatisieren, habe ich mir den Buchungsvorgang mal näher angeschaut.

Weiterlesen

Öffentliche IP-Adresse mit Tinc-VPN von einem Server auf einen anderen Tunneln

Für einen Server-Umzug sollte das neue System übergangsweise mit IP-Adressen des alten Systems betrieben werden. Da das neue System bei einem anderen Anbieter gehostet wird als das alte, war eine Übernahme der IP-Adressen via Routing nicht möglich. Daher habe ich ein Routing über einen verschlüsselten Tunnel via Tinc-VPN eingerichtet.

Der Prozess war nicht ganz so einfach wie ich dachte. Wie ich es zum Laufen bekommen habe, dokumentiere ich in diesem Artikel.

Weiterlesen