Am Nachmittag merkte ich, das es der zweite Konferenztag ist. Die Aufnahmefähigkeit nimmt suzessive ab… Von meinen Rechtschreibungsqualitäten möchte ich gar nicht reden. Wahrscheinlich werde ich in ein paar Wochen nochmal über die Beiträge drüber arbeiten 😉

14:15 – PHP to Hack, an incrementally typed Adventure at Slack

Tja das war mir jetzt etwas zu hoch, zu früh und zu Komplex um auf Englisch noch mitzukommen.

15:00 – Open-Source-Software und Quellcode aus dem Internet rechtssicher einbinden und nutzen

Hier wird Deutsches Recht diskutiert. Sollte aber ähnlich dem unseren sein….

nach Berner Übereinkunft: Copyrightsymbol entstanden
Erreichen der Schöpungshöhe: Die Untergrenze des Urheberrechtsschutzes ist klassischerweise niedrig angesetzt.
Wenn das Copyrightzeichen nicht dabei ist, ist es aber dennoch geschützt. Das eine hat nichts mit dem anderen zu tun.

HTML-Code und SQL-Statements sind eher nicht schutzfähig, was umstritten ist. Datenbanken und Benutzeroberlächen können grundsätzlich geschützt werden.

Lizenzen und Lizenzrecht
Rechte welcher Arten werden über Lizenzen erteilt.
Open Source / Freeware ist eine sogenannte Schenkung. Solange keine arglistige Täuschung vorliegt (z.B.: grober Fehler im Code den ich verschweige) bin ich Haftungsfrei.
Lizenzen kann ich nicht gutgläubig erwerben. Hier greift der “gutgläubige Käufer” Ansatz nicht.

Open Source-Lizenzen

BSD, MIT: “Mach mit meiner Softare was du willst – aber verklag mich nicht”
GPL und dgl: “Ich habe meine Software Open Source gemacht – und du solltest das auch tun.”

Strenges Copyleft: GPL
Eingeschränkts Copyleft: LGPL, CDDL, EPL
Kein Copyleft: MIT, BSD, Apache License

Copyleft
Copyleft-Lizenz fordert, dass auch die abgeleiteten Werke unter einer solchen Lizenz zur Verfügung gestellt werden
Sorgt somit dafür, dass Fortentwicklungen des freien Ur-Programms frei bleiben
Veränderungen sind nur erlaubt, wenn sie unter den gleichen Lizenzbedingungen weitergegeben werden.
Der Gedanke ist letzlich der Schutz der freien Software (vor Wandlung in proprietäre Software) – wenn man das verstanden hat, lösen sich alle weiteren Fragen von selbst.

Fallstricke für Unternehmen als Einsetzende von Open Source

  • Infizierung: Problem des sog. “Viralen Effekts” (werden Lizenzbedingungen nicht eingehalten, kann durch Copyleft-Effekte die Gesamte proprietäre Software infiziert werden. Schlimmstenfalls steht dann die gesamte Software unter Open Source Lizenz)
  • Kompatibilität von Lizenzen mit strengem Copyleft
  • Kompatibilität von Lizenzen mit eingeschränkten Copyleft

Zu dem Thema gibt es vom Vortragenden einen auführlichen Foliensatz der allerdings erst am 14. Juni für mich zur Verfügung steht…

Minifyer sollten so eingestellt sein, das Verweis auf Urheber drin bleibt sowie Link zum Originalquelltext. Zur Erklärung: Minifyer komprimieren den Entwicklern das Stylesheet und die JavaScript Files

Wo gebe ich Lizenzen an

  • im Quelltext
  • wenn User Interface, dann in der Lizenzübersicht
    Getrennt für jede Lizenz die Pakete einzeln auflisten
  • wenn auf einem Gerät ohne User Interface: Bspw: mit einem Label auf dem Gerät à la “Lizenzübersicht unter http://……/licenses.html” verweisen

GPL und LGPL: wo stelle ich meinen Sourcecode zur Verfügung, wenn laut Lizenz erforderlich?
Auf meiner Webseite eine eigene Seite erstellen, wo ich den Code zur Verfügung stelle nach jedem Release oder einen Written Offer online stellen. Wenn dann eine Anfrage kommt, Sourcecode schicken

Das abgeleitete Werk
Unbedingt versuchen darauf zu verzichten, dass es ein “derivative work” wird. Nur dann, wenn ich daraus eine eigene Komponente mache und meine Software über eine API damit kommunizieren lass. Denn dann muss ich nur die Komponente Open Source stellen aber nicht die gesamte Software.

Wenn Code aus dem Internet z.B. Stackoverflow: Urheber unbeding nennen!

Lizenzscanner

  • Blackduck (unheimlich teuer)
  • WhiteSource (eher wenig intuitiv in der Bedienung)
  • Sonarqube (noch nicht evaluiert)
  • Flexera

Können in übliche CI/CD Tools eingebunden werden wie GitLab
Können aber nicht sagen ob es ein “derivative work” ist. Ob das irgendwann noch möglich ist, wird sich zeigen.

Buchtip: Jäger – Open Source Lizenzen

16:15 – Undoing Things and saving your Neck with Git

Persönliche Einführung: Was kann man mit Git alles machen. Prinzipiell. Git wird in der Softwareentwicklung oft benutzt. Einerseits erleichtert es Teams miteinander an einem Projekt zu arbeiten, ohne den Code über USB Stick austauschen zu müssen, andererseits versioniert es die einzelnen Arbeitsschritte. Git bietet hierzu umfangreiche Möglichkeiten. Wenn Benutzer mit dem Terminal oder der Eingabeaufforderung nicht so vertraut sind, gibt es dementsprechend Programme die man sich installieren kann wie zum Beispiel Sourcetree oder SmartGit (kostenpflichtig)
Was ist ein Commit laut Wikipedia:

Als Commit oder Check-In bezeichnet man bei der Verwendung von Versionsverwaltungssystemen den Vorgang des Einspielens von neuem oder geändertem Quelltext und anderen Dateien in das Versionsverwaltungssystem. Dabei wird eine neue Version der Software den anderen an der Softwareentwicklung beteiligten Entwicklern zur Verfügung gestellt.

Leider hab ich die ersten paar Anweisungen verpasst, deshalb der Einstieg mitten drin.

  • Reverting a Commit in the Middle
    git revert – erstellt einen neuen Commit
    reset –mixed not hard, bedeutet er mischt die Veränderungen und zeigt diese als Lokale Änderungen an
  • Resetting a file to an old revision
    checkout a single file
    $ git checkout 6bcf266b – index.html

Reflog: Git Tool
Im Reflog ist alles dokumentiert. Das Reflog ist somit das Protokoll, das Tagebuch

  • Recovering Deleted Commits
    $ reflog
    $ git branch happy-ending ..commit-id..
  • Recovering a Deleting Branch
    $ git branch featuer/login ..commit-id..
  • Moving a Commit to a New Branch
    create new Branch and than reset head –hard
  • Moving a Commit to a Different Branch
    move to feature
    than cherry pick
    than go pack to master and clean up reset –hard

Was ist mit Interactive Rebase alles möglich:

Change Commit Text
$ git rebase -i Head~3 (for 3 steps)
reword instead pick. do not change the text from commit yet – save here
in the next step you could change the text

  • Deleting Old Commits
  • Squashing Multiple Commits Into One
  • Adding a Change to an Old Commit
  • Splitting / Editing an Old Commit

Link: https://www.git-tower.com/learn/git/first-aid-kit

17:15 – Diversity – a different Perspective

Sorry, today to much for me. Brain is overload.
Aber sie hat eine sehr energiereiche Art auf der Bühne zu interagieren.