Image for post
Image for post
Photo by amin khorsand on Unsplash

GitLab has strong Kubernetes integration. Unfortunately, GitLab has its own idea of how apps are deployed in the cluster. This is not necessarily the method of choice, especially for existing clusters. But you can reach your goal very easily without the existing integration. And with RBAC you can secure your CI job so that it is not allowed to do more than is absolutely necessary.

First we need a deployment (configurations for service, ingress, etc. omitted).

The name of the deployment my-app is important, we will need that later.

In order for GitLab to have access to the deployment, we have to create a ServieAccount and set up the necessary authorizations. …

Error: command line to long

Image for post
Image for post
Image by mohamed Hassan from Pixabay

If you create a Java application with the Gradle Application Plugin, you will sooner or later encounter the problem that the application can not be started under Windows.

The error message: command line too long

This limitation is documented in Windows Help.

But why does the error occur at all? (Needless to say, Microsoft just can not get it to develop a working OS?)

The problem can be found in Gradle’s Starter Script. It builds a CLASSPATH environment variable that contains the paths to all dependent JARs.

It will look like that:

set CLASSPATH=%APP_HOME%\lib\my-application-1.2.3.jar;%APP_HOME%\lib\jackson-module-kotlin-2.9.9.jar;%APP_HOME%\lib\kotlin-reflect-1.3.40.jar;%APP_HOME%\lib\kotlin-stdlib-jdk8-1.3.40.jar;%APP_HOME%\lib\slf4j-simple-1.7.25.jar;%APP_HOME%\.....

It’s clear that this variable gets bigger as the application gets more dependencies. The variable is then simply appended to the Java command as a -classpath parameter. …

Creating a SLF4J logger is sometimes clumsy. Not that it would be very complex. But what I like about Kotlin is its expressive, yet compact spelling. An extension function can help!

Normally one would use the SLF4J LoggerFactory and give it a Java class. Unfortunately, you can not directly pass the Kotlin class (KClass), but still have to add a .java. That makes the whole line somehow ugly.

With an extension function you can make the whole more beautiful and expressive.

From now on you can create a new logger with *::class.logger() .

Happy logging!

Am Montag Abend hat das World Wide Wohnzimmer zu einer Diskussion unter dem Motto: Jetzt wird geredet! eingeladen. Ich kann jedem nur empfehlen, sich die Sendung anzuschauen. Sie war sehr interessant, vor allem die Vertreter von Gema und Politik haben hier einen guten Einblick in deren Absichten, Interessen und Erwartung ermöglicht.

Vor allem interessant fand ich die Aussage von Dr. Helga Trüpel (MdEP), die ganz klar betont hat das primäre Ziel der Richtlinie ist, Lizenzverträge abzuschließen. Und auch Dr. …

Absatz 2 von Artikel 13 hat einen interessanten Twist. Denn er räumt auch den Benutzern einen Teil der Rechte ein, welche die Plattform selbst erworben hat.

Image for post
Image for post

Als Quelle dient mir der von Julia Reda veröffentlichte Entwurf.

Disclaimer: Ich bin kein Anwalt, sondern nur ein einfacher Bürger der versucht sich eine eigene Meinung über die EU Urheberrechtsreform zu bilden. Getroffene Aussagen sind — solange nicht anders gekennzeichnet — meine persönliche Meinung!

Artikel 13, Absatz 2
Member States shall provide that when an authorisation has been obtained, including via a licensing agreement, by an online content sharing service provider, this authorisation shall also cover acts carried out by users of the services falling within Article 3 of Directive 2001/29/EC when they are not acting on a commercial basis or their activity does not generate significant revenues. …

Absatz 1 von Artikel 13 beschäftigen sich — wie es sich wohl für den ersten Absätze gehört — mit der Anwendbarkeit und der grundsätzlichen Frage nach der Genehmigung.

Image for post
Image for post
Image by Pete Linforth from Pixabay

Als Quelle dient mir der von Julia Reda veröffentlichte Entwurf.

Disclaimer: Ich bin kein Anwalt, sondern nur ein einfacher Bürger der versucht sich eine eigene Meinung über die EU Urheberrechtsreform zu bilden. Getroffene Aussagen sind — solange nicht anders gekennzeichnet — meine persönliche Meinung!

Artikel 13, Absatz 1-1
Member States shall provide that an online content sharing service provider performs an act of communication to the public or an act of making available to the public for the purposes of this Directive when it gives the public access to copyright protected works or other protected subject matter uploaded by its users. …

In meinem letzten Artikel habe ich die Frage erörtert, wer eigentlich diese “online content sharing service provider” sind. Doch das alleine ist nicht ausschlaggebend, es gibt noch Abgrenzungen wie Groß die Plattform sein muss, damit Artikel 13 Anwendung findet.

Image for post
Image for post
Image by geralt on Pixabay

Ich werde versuchen, dem auf den Grund zu gehen in dem ich mir die entsprechenden Absätze raus nehme und diese mit “einer Portion gesundem Menschenverstand” analysiere.

Als Quelle dient mir der von Julia Reda veröffentlichte Entwurf.

Disclaimer: Ich bin kein Anwalt, sondern nur ein einfacher Bürger der versucht sich eine eigene Meinung über die EU Urheberrechtsreform zu bilden. Getroffene Aussagen sind — solange nicht anders gekennzeichnet — meine persönliche Meinung!

Artikel 13, Absatz 4aa
Member States shall provide that when new online content sharing service providers whose services have been available to the public in the Union for less than three years and which have an annual turnover below EUR 10 million within the meaning of the Commission Recommendation 2003/361/EC, the conditions applicable to them under the liability regime set out in paragraph 4 are limited to the compliance with the point (a) of paragraph 4 and to acting expeditiously, upon receiving a sufficiently substantiated notice, to remove the notified works and subject matters from its website or to disable access to them. …

Momentan gehen viele Aussage durcheinander. Wer von der neuen EU Urheberrechtsreform eigentlich betroffen sein wird. Die einen behaupten “das trifft doch ohnehin nur die Großen wie Google und Facebook”. Die anderen sagen “auch kleine private Foren, die sich über Werbung finanzieren” sind betroffen.

Image for post
Image for post
Image by PublicDomainPictures on Pixabay

Ich werde versuchen, dem auf den Grund zu gehen in dem ich mir die entsprechenden Absätze raus nehme und mit “einer gesunden Portion gesundem Menschenverstand” analysiere.

Als Quelle dient mir der von Julia Reda veröffentlichte Entwurf.

Disclaimer: Ich bin kein Anwalt, sondern nur ein einfacher Bürger der versucht sich eine eigene Meinung über die EU Urheberrechtsreform zu bilden. Getroffene Aussagen sind — solange nicht anders gekennzeichnet — meine persönliche Meinung!

Starten wir mit der Definition der “online content sharing service provider”.

Artikel 2, Absatz 5
‘online content sharing service provider’ means a provider of an information society service whose main or one of the main purposes is to store and give the public access to a large amount of copyright protected works or other protected subject-matter uploaded by its users which it organises and promotes for profit-making purposes. …

Image for post
Image for post
Image by geralt on Pixabay

Gitlab ist in der Lage die Test Coverage zu erfassen und wiederum als Badge bereitzustellen (gibt es noch andere sinnvolle Einsatzzwecke?). Das Gradle jacoco Plugin wiederum kann lediglich HTML / XML Reports erzeugen.
Doch wie kommt beides zusammen?

Die Gitlab Dokumentation sagt dazu:

If you use test coverage in your code, GitLab can capture its output in the job log using a regular expression.

Also muss man die Coverage irgendwie in die Konsolenausgabe bringen. Ein paar Stackoverflow’s später habe ich dann festgestellt, dass es nichts brauchbares “Out-of-the-box” gibt. Aber man kann es sich auch recht einfach selbst bauen:

Der coverageReport Task ließt den erstellten XML Report aus und gibt die nötigen Informationen direkt aus. Man führt den Task einfach zusätzlich im Gitlab CI mit…

Dass ich mich mit dem Thema Datenschutz beschäftige, sollte spätestens nach meinem Beitrag Der Spion in der Hosentasche bekannt sein. Und jetzt kommt die EU mit ihrer Datenschutz-Grundverordnung, DSGVO (General Data Protection Regulation, GDPR) um die Ecke und versetzt alles und jeden in Panik.

Also eigentlich ist es übertrieben zu behaupten “die EU kam mit der DSGVO mal eben so um die Ecke”, denn die DSGVO wurde bereits am 27. April 2016 beschlossen. Und nein, ich habe mich in der Jahreszahl nicht verschrieben. Wir hatten 2 Jahre Zeit uns darauf vorzubereiten. …

About

Tristan “tril” Lins

A mixture of developer, software architect and administrator — or in modern words: a devop

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store