<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Quelle Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/quelle/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/quelle/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Sun, 16 Apr 2023 08:55:33 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Quelle Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/quelle/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Swagger &#8211; Mühelose API-Dokumentation und Interaktion für effiziente Entwicklungsprozesse</title>
		<link>https://ceosbay.com/2023/04/08/erklaerung-swagger/</link>
					<comments>https://ceosbay.com/2023/04/08/erklaerung-swagger/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 08 Apr 2023 13:16:16 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Aktualisierung]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[APIS]]></category>
		<category><![CDATA[Basis]]></category>
		<category><![CDATA[Benutzerfreundlichkeit]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Dokumentation]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[Frame]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Generator]]></category>
		<category><![CDATA[Gestaltung]]></category>
		<category><![CDATA[Offen]]></category>
		<category><![CDATA[OpenAPI]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Produktivität]]></category>
		<category><![CDATA[Programmiere]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Quell]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Quelle]]></category>
		<category><![CDATA[Restful]]></category>
		<category><![CDATA[Soft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Swagger]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Ware]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<category><![CDATA[Zeitersparnis]]></category>
		<category><![CDATA[Zusammenarbeit]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1328</guid>

					<description><![CDATA[<p>In der Welt der Programmierung ist es unerlässlich, effektiv und effizient zusammenzuarbeiten. Im Gegensatz zu seinem allgemeinen Bedeutungsgebrauch handelt es sich bei diesem Swagger um ein mächtiges Werkzeug. Primär zur Gestaltung, Dokumentation und Optimierung von &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/08/erklaerung-swagger/">Swagger &#8211; Mühelose API-Dokumentation und Interaktion für effiziente Entwicklungsprozesse</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In der Welt der Programmierung ist es unerlässlich, effektiv und effizient zusammenzuarbeiten. Im Gegensatz zu seinem allgemeinen Bedeutungsgebrauch handelt es sich bei diesem Swagger um ein mächtiges Werkzeug. Primär zur Gestaltung, Dokumentation und Optimierung von APIs (Application Programming Interfaces).</p>



<h3 class="wp-block-heading">Was ist Swagger?</h3>



<p>Swagger, auch bekannt als OpenAPI, ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>&#8211;<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> zur API-Entwicklung. Es bietet Entwicklern eine standardisierte Methode, um RESTful-APIs zu entwerfen, zu dokumentieren und zu testen. Es hilft Entwicklern dabei, die Kommunikation zwischen verschiedenen Anwendungen zu vereinfachen und fördert die Zusammenarbeit innerhalb und zwischen Teams.</p>



<h3 class="wp-block-heading">Die wichtigsten Komponenten:</h3>



<ol class="wp-block-list" type="1">
<li>Swagger Editor: Ein browserbasiertes Werkzeug zur Erstellung und Bearbeitung von OpenAPI-Spezifikationen.</li>



<li>Swagger UI: Eine benutzerfreundliche Oberfläche, die es Entwicklern und Endbenutzern ermöglicht, API-Dokumentationen interaktiv zu visualisieren und zu testen.</li>



<li>Swagger Codegen: Ein Generator, der serverseitigen und clientseitigen Code für APIs auf Basis der OpenAPI-Spezifikation erstellt.</li>
</ol>



<h3 class="wp-block-heading">Vorteile</h3>



<ol class="wp-block-list" type="1">
<li>Klare und präzise API-Dokumentation: Es ermöglicht Entwicklern, leicht verständliche und konsistente API-Dokumentationen zu erstellen. Dadurch wird die Kommunikation zwischen Teammitgliedern und die Integration von APIs in verschiedene Systeme erleichtert.</li>



<li>Zeitersparnis: Die automatische Generierung von serverseitigem und clientseitigem Code reduziert die manuelle Arbeit und beschleunigt die Entwicklung von APIs.</li>



<li>Fördert die Zusammenarbeit: Es erleichtert die Zusammenarbeit zwischen Frontend- und Backend-Entwicklern, indem es eine gemeinsame Sprache und Struktur bietet.</li>



<li>Einfache Aktualisierung und Pflege: Man kann Änderungen an einer API problemlos in die bestehende Dokumentation integrieren, ohne dass man die gesamte Dokumentation manuell aktualisieren muss.</li>



<li>Benutzerfreundlichkeit: Die visuelle Darstellung der API-Endpunkte durch Swagger UI erleichtert das Verständnis der API-Funktionalität und ermöglicht das Testen direkt aus der Dokumentation heraus.</li>
</ol>



<h3 class="wp-block-heading">Fazit</h3>



<p>Swagger, im Programmierkontext, hat sich als unverzichtbares Werkzeug für Entwicklerteams etabliert, um effizient und effektiv RESTful-APIs zu entwickeln und zu verwalten. Mit seinen leistungsstarken Funktionen zur Gestaltung, Dokumentation und Zusammenarbeit trägt Swagger wesentlich zur Steigerung der Produktivität und Qualität von Softwareprojekten bei. Es ist nicht nur ein nützliches Tool, sondern auch ein Beispiel dafür, wie offene Standards und innovative Technologien die IT-Landschaft nachhaltig beeinflussen können.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/08/erklaerung-swagger/">Swagger &#8211; Mühelose API-Dokumentation und Interaktion für effiziente Entwicklungsprozesse</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/08/erklaerung-swagger/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1328</post-id>	</item>
		<item>
		<title>SonarQube &#8211; Das Code-Qualitätsmanagement-Tool</title>
		<link>https://ceosbay.com/2023/03/17/erklaerung-sonarqube/</link>
					<comments>https://ceosbay.com/2023/03/17/erklaerung-sonarqube/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 17 Mar 2023 16:12:48 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[1061]]></category>
		<category><![CDATA[1998]]></category>
		<category><![CDATA[Analyse]]></category>
		<category><![CDATA[Anwendung]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Checkstyle]]></category>
		<category><![CDATA[Cobol]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Codebasis]]></category>
		<category><![CDATA[Entwicklungsprozess]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[FindBugs]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[IEEE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Komplexität]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[PMD]]></category>
		<category><![CDATA[Prüfung]]></category>
		<category><![CDATA[Qube]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Quelle]]></category>
		<category><![CDATA[Quelltext]]></category>
		<category><![CDATA[Rechner]]></category>
		<category><![CDATA[Richtlinien]]></category>
		<category><![CDATA[Schnittstellen]]></category>
		<category><![CDATA[Schulden]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Sonar]]></category>
		<category><![CDATA[SonarQube]]></category>
		<category><![CDATA[Sprache]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Standard]]></category>
		<category><![CDATA[Sting]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Überprüfen]]></category>
		<category><![CDATA[Zyklomatisch]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1176</guid>

					<description><![CDATA[<p>SonarQube früher Sonar, ist eine Plattform für die statische Analyse und Bewertung der technischen Qualität von Quelltext bzw. Code. SonarQube analysiert den Quelltext hinsichtlich verschiedener Qualitätsmerkmale und stellt die Ergebnisse über eine Website dar. SonarQube &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/17/erklaerung-sonarqube/">SonarQube &#8211; Das Code-Qualitätsmanagement-Tool</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>SonarQube früher Sonar, ist eine Plattform für die statische Analyse und Bewertung der technischen Qualität von Quelltext bzw. Code. SonarQube analysiert den Quelltext hinsichtlich verschiedener Qualitätsmerkmale und stellt die Ergebnisse über eine Website dar. SonarQube ist in <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> programmiert, unterstützt aber neben der Analyse von <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>-Anwendungen mit entsprechenden Plugins unter anderem die Programmiersprachen <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>, Groovy, Flex, PHP, PL/SQL, C#, Cobol und die des .Net-Frameworks.</p>



<h3 class="wp-block-heading">Wie funktioniert SonarQube?</h3>



<p><strong>SonarQube besteht aus drei Komponenten</strong></p>



<ol class="wp-block-list" type="1">
<li>Einem Modul für Build-Management-Tools wie <a href="https://ceosbay.com/2022/12/22/erklaerung-maven/" target="_blank" rel="noreferrer noopener">Apache Maven</a> oder Apache Ant. (Hauptsächlich für die Analyse des Quelltextes hinsichtlich verschiedener Qualitätsmerkmale.)</li>



<li>Einer Datenbank, für Speicherung der Ergebnisse der Qualitätsanalyse.</li>



<li>Einer Website für die visuelle Darstellung, Auswertung und das Management der Qualitätsanalyse-Ergebnisse.</li>
</ol>



<p>Durch diese Architektur kann man sowohl eine Prüfung des Quelltextes auf dem Entwicklungsrechner ermöglichen als auch eine Einbindung von SonarQube in den Entwicklungsprozess gewährleisten. Dies unterstützt die Ermittlung der Qualitätsmetriken auf einem Build-Server für die kontinuierliche Integration.</p>



<p>SonarQube analysiert den Quelltext hinsichtlich der Abdeckung durch Modultests, checkt den Quellcode nach doppeltem Code und in Bezug auf die Komplexität. Auch werden unter anderem potenzielle Fehler im Code, Kodier-Richtlinien als auch Kommentare überprüft.</p>



<h3 class="wp-block-heading">Modularer Aufbau und Erweiterungen</h3>



<p>SonarQube ist modular aufgebaut und integriert selbst einige bekannte Entwicklungswerkzeuge zur Analyse der Codequalität, darunter PMD und Checkstyle für die Erkennung von doppeltem Code für die Prüfung von Kodier-Richtlinien. Damit wird unter anderem auch nach ineffizientem Code gesuche. FindBugs dient beispielsweise zum Aufdecken potenzieller Fehler sowie Surefire und Cobertura zur Messung der Qualität der Modultests.</p>



<p>Diese Werkzeuge nutzen entsprechend ihrer Natur und Einsatzgebiete Metriken, um die jeweiligen Auswertungen bzw. Statistiken zu erzeugen. Der Name „Metrik“ trägt jedoch wenig Bedeutung von dem in sich, was eine Metrik ausmacht. Schlägt man nämlich nach woher der Name kommt, landet man im Lateinischen: „ars metrica„, die Lehre von den Maßen. Fragt man jedoch das Institute of Electrical and Electronics Engineers, was eine Softwaremetrik ist, erhält man folgende Antwort:</p>



<p>„software quality metric: A function whose inputs are software data and whose output is a single numerical value that can be interpreted as the degree to which software possesses a given attribute that affects its quality.“ „Eine Softwarequalitätsmetrik ist eine Funktion, die eine Software-Einheit in einen Zahlenwert abbildet, der als Erfüllungsgrad einer Qualitätseigenschaft der Software-Einheit interpretierbar ist.“ – IEEE Standard 1061, 1998</p>



<p>Folglich bedeutet dies, dass es sich bei einer Metrik am Ende des Tages um eine Funktion handelt, die für beliebige Eingaben Zahlen erzeugt. Die Beschaffenheit ist so, dass sie, nur so&nbsp;</p>



<p>lange sie von derselben Funktion erzeugt wurden, vergleichbar sind. Dadurch kann man Rückschlüsse auf die Eingabe mit Hinblick auf die Funktion erzielen.</p>



<p>Ein Beispiel dafür ist die McCabe-Metrik, auch zyklomatische Komplexität genannt. Diese sehr grundlegende Metrik berechnet die Anzahl der unterschiedlichen Pfade durch ein Stück Code. Die Formel ist relativ einfach: Es wird die Anzahl an Kontrollstrukturen wie if, while, case und boolescher Operatoren wie &amp;&amp; und || summiert und nochmals mit 1 addiert. Möchte man diese Information nochmals anhand eines Beispiels betrachten, sieht es folgendermaßen aus:</p>



<pre class="wp-block-code"><code>String nameDesWochenTags(int nr) {
  switch(nr) {
    case 1: return "Montag";
    case 2: return "Dienstag";
    case 3: return "Mittwoch";
    case 4: return "Donnerstag";
    case 5: return "Freitag";
    case 6: return "Samstag";
    case 7: return "Sonntag";
  }
  return "";
}</code></pre>



<p>Diese relativ einfache Methode gibt den Namen eines Wochentages entsprechend seiner 1-indizierten Position innerhalb der Woche zurück. Ihre zyklomatische Komplexität beträgt 8. Zumal 1 + 7 x case. Dies ist ein verhältnismäßig hoher Wert. Ein Maximalwert von 10 gilt als allgemein akzeptiert und ausreichend erprobt. Um also die Komplexität dieser Methode zu verringern, findet eine Refaktorisierung statt, die folgendermaßen aussehen kann:</p>



<pre class="wp-block-code"><code>String nameDesWochenTags(int nr) {
  String&#91;] names = new String&#91;] {
    "Montag", "Dienstag", "Mittwoch",
    "Donnerstag", "Freitag", "Samstag",
    "Sonntag"
  };
  if(nr) &gt; 0 &amp;&amp; &lt;= names.length) {
    return names&#91;nr - 1];
  }
  return "";
}</code></pre>



<p>Die zyklomatische Komplexität dieser Methode beträgt 3. Zumal 1 + 1 x if + 1 x &amp;&amp;. Durch den unterschiedlichen Ansatz kann man die Komplexität verringern. Dennoch ist es relativ unstrittig, dass die erste Version leichter zu verstehen ist.</p>



<p>Will man nun also alle Tools gemeinsam benutzen, muss man alle konfigurieren und ihre Ergebnisse zusammenführen, damit sich ein Gesamtbild darstellen lässt. Außerdem kommt es dabei zwangsweise zu Dopplungen in ausgewerteten Metriken oder anderen Kennzahlen. PMD beispielsweise besitzt durch seinen relativ vagen Aufgabenbereich Überschneidungen im Hinblick auf Codestil mit checkstyle, während es aber auch genauso wie FindBugs auf toten Code achtet. An solchen und weiteren Stellen kann SonarQube Verbesserungen herbeiführen.</p>



<p>Neben der visuellen Anzeige der Ergebnisse der einzelnen Bereiche, ermöglicht SonarQube das Drill-Down der Ergebnisse bis auf die einzelne Metrik und Codezeile sowie die Verknüpfung der einzelnen Metriken sowie die Darstellung ihrer historischen Entwicklung in einer recht übersichtlichen grafischen Oberfläche.</p>



<p>Über einen ausgeklügelten Plugin-Mechanismus ist eine relativ einfache Integration von Erweiterungen möglich. Neben den Erweiterungen für die Analyse zusätzlicher Programmiersprachen gibt es Plugins für ergänzende Metriken, Governance, Schnittstellen zu Entwicklungsumgebungen, Visualisierungen, Integration sowie zur Berechnung der technischen Schuld(en).</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Ich arbeite noch nicht so lange mit SonarQube. Um genau zu sein, habe ich es mir erst heute das erste Mal angeschaut. Zusammenfassend kann ich folgendes sagen:</p>



<p>Statistiken sind zwar interessant und es kann Spaß machen, sich diese anzuschauen, doch ist eine statische Codeanalyse erst dann wirklich vollständig, wenn ein Mindestmaß an Interpretation hineingeflossen ist.</p>



<p>Die Codeanalyse liefert ein gutes Gefühl für die Codebasis. Erst so kann man fundierte Aussagen darüber treffen, welche Bereiche des Projekts besonders gefährdet, instabil oder verbesserungsfähig sind.</p>



<p>Regelmäßige Analysen können die Teammotivation erhöhen. Eine positive Issuebilanz am Ende eines Sprints und aufwärtszeigende Historiengraphen sollten gute Treiber für eine Gruppe Entwickler und ein Beweis für die eigene Leistung sein.</p>



<p>Alles in allem sind Analyseergebnisse immer gut als Argumentationsgrundlage. Mit Hilfe der Projekthistorie, die eine Auswahl gut darstellbarer Kennzahlen beinhaltet, kann man vor Kunden oder Entscheidern besser über ein eventuell nötiges technisches Release diskutieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/17/erklaerung-sonarqube/">SonarQube &#8211; Das Code-Qualitätsmanagement-Tool</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/17/erklaerung-sonarqube/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1176</post-id>	</item>
		<item>
		<title>PHP &#8211; Die Sprache für dynamische und interaktive Webanwendungen</title>
		<link>https://ceosbay.com/2023/02/26/erklaerung-php/</link>
					<comments>https://ceosbay.com/2023/02/26/erklaerung-php/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 26 Feb 2023 18:03:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Betriebssystem]]></category>
		<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Anwendungsgebiete]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[APIS]]></category>
		<category><![CDATA[Arrays]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Commerce]]></category>
		<category><![CDATA[Cookies]]></category>
		<category><![CDATA[Dateien]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[Einfach]]></category>
		<category><![CDATA[Entwicklungszeit]]></category>
		<category><![CDATA[Hombrew]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Hypertext]]></category>
		<category><![CDATA[Integer]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Objekte]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Preprocessor]]></category>
		<category><![CDATA[PrestaShop]]></category>
		<category><![CDATA[Programmiersprache]]></category>
		<category><![CDATA[Quelle]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Sprache]]></category>
		<category><![CDATA[Standardbibliothek]]></category>
		<category><![CDATA[Strings]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web-Services]]></category>
		<category><![CDATA[Webhosting]]></category>
		<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zahlen]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1379</guid>

					<description><![CDATA[<p>PHP (Hypertext Preprocessor) ist eine weit verbreitete, serverseitige Skriptsprache, speziell für die Webentwicklung. Ursprünglich von Rasmus Lerdorf 1994 ins Leben gerufen, hat es sich zu einer der wichtigsten und einflussreichsten Skriptsprachen in der Webentwicklung entwickelt. &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/02/26/erklaerung-php/">PHP &#8211; Die Sprache für dynamische und interaktive Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>PHP (Hypertext Preprocessor) ist eine weit verbreitete, serverseitige Skriptsprache, speziell für die Webentwicklung. Ursprünglich von Rasmus Lerdorf 1994 ins Leben gerufen, hat es sich zu einer der wichtigsten und einflussreichsten Skriptsprachen in der Webentwicklung entwickelt. Es hat den Vorteil, dass man es leicht in <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a> einbetten kann und sich nahtlos in <a href="https://ceosbay.com/2023/02/28/erklaerung-cms/" target="_blank" rel="noreferrer noopener">Content-Management-Systeme</a> wie <a href="https://ceosbay.com/2023/03/01/erklaerung-wordpress/" target="_blank" rel="noreferrer noopener">WordPress</a>, Joomla und Drupal integrieren lässt.</p>



<h3 class="wp-block-heading">Grundprinzipien von PHP</h3>



<p>Es ist eine serverseitige Sprache, was bedeutet, dass man PHP-Skripte ausschließlich auf einem Server ausführt, bevor es das Ergebnis an den Webbrowser des Clients sendet. Dies hat den Vorteil, dass man sensible Daten wie Passwörter oder Datenbankverbindungen nicht direkt im Quellcode des Clients preisgeben muss.</p>



<h4 class="wp-block-heading">Einige der grundlegenden Prinzipien:</h4>



<ul class="wp-block-list">
<li>Einfache Syntax: Es ist bekannt für seine einfache und leicht verständliche Syntax, die es sowohl Anfängern als auch erfahrenen Programmierern ermöglicht, relativ schnell produktiv zu sein.</li>
</ul>



<ul class="wp-block-list">
<li>Dynamisches Typisierungssystem: Im Gegensatz zu streng typisierten Sprachen erlaubt es Variablen, verschiedene Datentypen (z.B. Strings, Zahlen, Arrays und Objekte) während der Laufzeit zu speichern. Dies ermöglicht eine höhere Flexibilität und verkürzt die Entwicklungszeit.</li>
</ul>



<ul class="wp-block-list">
<li>Integration mit <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>: Man kann PHP-Skripte direkt in <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Dateien einbetten, wodurch es einfach ist, dynamische Inhalte innerhalb einer statischen <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Seite zu erstellen.</li>
</ul>



<ul class="wp-block-list">
<li>Umfangreiche Standardbibliothek: Es bietet eine umfangreiche Sammlung von Funktionen und Klassen, die die Arbeit mit Dateien, Datenbanken, Sitzungen, Cookies, Netzwerkprotokollen und vielem mehr erleichtern.</li>
</ul>



<h3 class="wp-block-heading">Vorteile von PHP</h3>



<ul class="wp-block-list">
<li>Plattformübergreifend: Es ist kompatibel mit verschiedenen Betriebssystemen wie Windows, <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/">Linux</a> und MacOS. Dies macht es zu einer idealen Wahl für Webentwickler, die plattformunabhängige Anwendungen erstellen möchten. Bis vor einigen Iterationen von MacOS konnte man einen Server nativ über das Terminal starten. Dies hat man aber scheinbar aufgrund von Sicherheitsrisiken unterbunden. Möglich ist dies nun via <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/" target="_blank" rel="noreferrer noopener">Homebrew</a>. Hierzu verweise ich gerne auf den folgenden <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/" target="_blank" rel="noreferrer noopener">Artikel</a>.</li>
</ul>



<ul class="wp-block-list">
<li>Leistungsfähigkeit: Man kann komplexe und umfangreiche Webanwendungen verarbeiten und ist in der Lage, auch bei hoher Last stabile Leistung zu liefern.</li>
</ul>



<ul class="wp-block-list">
<li>Kostenfrei und Open Source: Es ist eine <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>-Software, was bedeutet, dass man sie kostenlos herunterladen, verwenden und modifizieren darf. Dies hat zu einer großen und engagierten Entwicklergemeinschaft geführt, die nach wie vor zur ständigen Verbesserung und Erweiterung der Sprache beiträgt.</li>
</ul>



<ul class="wp-block-list">
<li>Breite Unterstützung: Viele Webhosting-Unternehmen unterstützen PHP von Haus aus und man kann es leicht auf einem Webserver installieren.</li>
</ul>



<h3 class="wp-block-heading">Anwendungsgebiete von PHP</h3>



<p>Wie bereits erwähnt ist es ist eine vielseitige Programmiersprache. Man kann sie aus diesem Grund in einer Vielzahl von Anwendungsfällen einsetzen. Einige der wichtigsten Anwendungsgebiete von PHP sind:</p>



<ul class="wp-block-list">
<li>Content-Management-Systeme (CMS): PHP ist die treibende Kraft hinter einigen der beliebtesten <a href="https://ceosbay.com/2023/02/28/erklaerung-cms/" target="_blank" rel="noreferrer noopener">CMS</a> wie <a href="https://ceosbay.com/2023/03/01/erklaerung-wordpress/" target="_blank" rel="noreferrer noopener">WordPress</a>, Joomla und Drupal. Diese Systeme erleichtern die Erstellung und Verwaltung von Websites ohne tiefgreifende Programmierkenntnisse.</li>
</ul>



<ul class="wp-block-list">
<li>E-Commerce-Plattformen: Man verwendet es häufig zur Entwicklung von Online-Shops und E-Commerce-Plattformen. Beispiele hierfür sind WooCommerce, Magento oder PrestaShop. Die Skalierbarkeit und Flexibilität von PHP ermöglichen es Entwicklern, umfangreiche und leistungsfähige E-Commerce-Websites zu erstellen, die auf die individuellen Bedürfnisse der Kunden zugeschnitten sind.</li>
</ul>



<ul class="wp-block-list">
<li>Webanwendungen: PHP eignet sich hervorragend für die Entwicklung von benutzerdefinierten Webanwendungen und hat eine Vielzahl von <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a> wie Laravel, Symfony oder CodeIgniter, die den Entwicklungsprozess vereinfachen und beschleunigen.</li>
</ul>



<ul class="wp-block-list">
<li>APIs und Web-Services: Aufgrund seiner Fähigkeit, einfach und schnell mit verschiedenen Datenquellen und -formaten zu arbeiten, eignet sich PHP hervorragend zur Entwicklung von APIs und Web-Services, die als Brücke zwischen unterschiedlichen Anwendungen und Plattformen fungieren.</li>
</ul>



<ul class="wp-block-list">
<li>Social-Media-Plattformen: PHP ist die Grundlage einiger bekannter Social-Media-Plattformen wie Facebook, dass man ursprünglich in PHP entwickelt hat. PHP kann man aber auch bei der Entwicklung eigener Social-Media-Plattformen oder bei der Integration von Social-Media-Funktionalitäten in bestehende Anwendungen einsetzen.</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>PHP hat sich als eine robuste, vielseitige und weit verbreitete serverseitige Skriptsprache etabliert, die man in einer Vielzahl von Anwendungsbereichen einsetzt. Mit seiner einfachen Syntax, den leistungsfähigen Funktionen und breiten Unterstützung durch Webhosting-Unternehmen, ist PHP eine ausgezeichnete Wahl für Webentwickler, die dynamische, interaktive und benutzerfreundliche Websites und Webanwendungen erstellen möchten. Die engagierte und wachsende Entwicklergemeinschaft garantiert die fortlaufende Verbesserung und Erweiterung der Sprache, was PHP zu einer attraktiven Option für Webentwickler auf der ganzen Welt macht.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/02/26/erklaerung-php/">PHP &#8211; Die Sprache für dynamische und interaktive Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/02/26/erklaerung-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1379</post-id>	</item>
		<item>
		<title>Git &#8211; Die Codeverwaltung für effiziente Zusammenarbeit revolutionieren</title>
		<link>https://ceosbay.com/2022/11/18/erklaerung-git/</link>
					<comments>https://ceosbay.com/2022/11/18/erklaerung-git/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 18 Nov 2022 11:30:00 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Arch]]></category>
		<category><![CDATA[Branch]]></category>
		<category><![CDATA[Distribution]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[equo]]></category>
		<category><![CDATA[Fork]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[GitKraken]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Kollaboration]]></category>
		<category><![CDATA[Kraken]]></category>
		<category><![CDATA[Lizenz]]></category>
		<category><![CDATA[Manager]]></category>
		<category><![CDATA[Merge]]></category>
		<category><![CDATA[Offener]]></category>
		<category><![CDATA[Offiziell]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Pakete]]></category>
		<category><![CDATA[Paketmanager]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Quelle]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[Repo]]></category>
		<category><![CDATA[Repository]]></category>
		<category><![CDATA[Repository Manager]]></category>
		<category><![CDATA[Sabayon]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Source Control Manager]]></category>
		<category><![CDATA[Stupid Content Tracker]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Versionskontrolle]]></category>
		<category><![CDATA[Zusammenarbeit]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=609</guid>

					<description><![CDATA[<p>Git ist eine freie und Open Source Software für die verteilte Versionskontrolle. Es hilft Entwicklern dabei, Code zu speichern, zu verwalten, Änderungen darin zu verfolgen und zu kontrollieren. Zu den weiteren Zielen gehören Geschwindigkeit, Datenintegrität &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/18/erklaerung-git/">Git &#8211; Die Codeverwaltung für effiziente Zusammenarbeit revolutionieren</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Git ist eine freie und <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software für die verteilte Versionskontrolle. Es hilft Entwicklern dabei, Code zu speichern, zu verwalten, Änderungen darin zu verfolgen und zu kontrollieren. Zu den weiteren Zielen gehören Geschwindigkeit, Datenintegrität und Unterstützung für verteilte, nicht-lineare Arbeitsabläufe (Dabei können tausende von parallelen Zweigen auf verschiedenen Systemen entstehen &#8211; Dies ist keine Metapher sondern wörtlich gemeint! 😉 ).</p>



<p>Git wurde ursprünglich von Linus Torvalds im Jahr 2005 für die Entwicklung des Linux-Kernels entwickelt, wobei andere Kernel-Entwickler zur anfänglichen Entwicklung wesentliche Beiträge geleistet haben. Seit 2005 ist Junio Hamano der Hauptverantwortliche. Wie bei den meisten anderen verteilten Versionskontrollsystemen und im Gegensatz zu den meisten Client-Server-Systemen ist jedes Git-Verzeichnis auf jedem Computer ein vollwertiges Repository mit einer vollständigen Historie und vollständigen Versionsverfolgungsfunktionen, unabhängig vom Netzwerkzugang oder einem zentralen Server. Git ist, wie Anfangs angesprochen, freie und <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source Software</a>, die unter der <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html" target="_blank" rel="noreferrer noopener">GPL-2.0-Lizenz</a> vertrieben wird.</p>



<h3 class="wp-block-heading">Eine kurze Anekdote über Git und dessen Abbreviatur</h3>



<p>Linus Torvalds witzelte sarkastisch über den Namen git (was im britischen Slang &#8222;unangenehme Person&#8220; bedeutet): &#8222;Ich bin ein egoistischer Mistkerl und benenne alle meine Projekte nach mir selbst. Erst &#8222;Linux&#8220;, jetzt &#8222;Git&#8220;. Die Manpage beschreibt Git als &#8222;the stupid content tracker&#8220; Die Read-me-Datei des Quellcodes führt weiter aus:<br>&#8222;Git&#8220; kann alles Mögliche bedeuten, je nach Laune (Ich werde dies in der englischen Sprache belassen, da es so wahrscheinlich mehr Sinn macht 😉 ).</p>



<ul class="wp-block-list">
<li>Random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of &#8222;get&#8220; may or may not be relevant.</li>



<li>Stupid. Contemptible and despicable. Simple. Take your pick from the dictionary of slang.</li>



<li>&#8222;Global information tracker&#8220;: you&#8217;re in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.</li>



<li>&#8222;Goddamn idiotic truckload of sh*t&#8220;: when it breaks.</li>
</ul>



<p>Um Git zu verstehen sind im Prinzip 8 Begriffe relevant. Repository (Kurz: Repo), die Versionskontrolle, Fork bzw. Forking (Gabel bzw. Gabelung), Branch (Verzweigung), Stage (Phase oder Stadium), Modified (modifiziert), Commit (Verbindlichkeit) und Merge (Zusammenführung). Diese Begriffe werde ich nachfolgend beschreiben.</p>



<h3 class="wp-block-heading">Was ist eine Repository?</h3>



<p>Eine Repository, kurz Repo genannt, ist ein Speicherort für Softwarepakete. Oft wird auch ein Inhaltsverzeichnis zusammen mit Metadaten (Metainformationen bzw. -daten sind strukturierte Daten, die Informationen über Merkmale anderer Daten enthalten) gespeichert. Eine Software-Repository wird in der Regel von Source-Control-Managern (SCM) oder Repository-Managern (Ein Repository-Manager ist eine dedizierte Server-Anwendung, die für die Verwaltung von Repositories mit binären Komponenten entwickelt wurde) verwaltet &#8211; Dazu teilweise mehr in der Versionskontrolle und in späteren Beiträgen. Paketmanager ermöglichen die automatische Installation und Aktualisierung von Repositories (Deshalb auch &#8222;Pakete&#8220; genannt).</p>



<p>Viele Organisationen und Softwarehersteller unterhalten zu diesem Zweck Server im Internet, teilweise kostenlos oder gegen eine Gebühr. Repositories können können verschiedene Programmiersprachen, Betriebssysteme, Spiele oder andere Anwendungen sowie Dokumente und Daten beherbergen. Die Betreiber solcher Repositories stellen in der Regel ein Paketverwaltungssystem zur Verfügung. Folglich Werkzeuge, mit denen Softwarepakete aus den Repositories gesucht, installiert und anderweitig bearbeitet werden können. Viele Linux-Distributionen (Der Begriff Distribution stammt aus dem Lateinischen &#8222;distributio&#8220; und hat im Zusammenhang mit Software zwei unterschiedliche Bedeutungen: Softwarepaketierung und Softwareverteilung) verwenden z. B. das Advanced Packaging Tool (APT), das häufig in Debian-basierten Distributionen zu finden ist oder yum in Red Hat-basierten Distributionen. Es gibt auch mehrere unabhängige Paketverwaltungssysteme, wie z. B. pacman, dass in Arch Linux verwendet wird und equo, welches in Sabayon Linux zu finden ist. Ich bin primär mit Debian-basierten Distributionen unterwegs. Werde ich aber in zukünftigen Beiträgen ausführlicher thematisieren.</p>



<h3 class="wp-block-heading">Was ist Versionskontrolle?</h3>



<p>Die Versionskontrolle unterstützt Entwickler bei der Verfolgung und Verwaltung von Änderungen am Quellcode eines Softwareprojekts. Wenn ein Projekt und die Anzahl der Programmierer wachsen, wird die Versionskontrolle unabdingbar. Doch in der Regel kommen sowohl bei kleineren als auch größeren Softwareprojekten mehrere Personen zum Einsatz, die gemeinsam an dem Quellcode arbeiten. Wenn man beispielsweise als Core-Entwickler an einem bestimmten Teil der Codebasis arbeiten möchte, ist es nicht förderlich oder effizient, wenn der Quellcode direkt bearbeitet wird, da zeitgleich noch andere die an dem Projekt beteiligt sind und daran arbeiten. Dies kann am Ende des Tages für ein enormes Durcheinander sorgen 😀</p>



<p>Da man auf dieses Durcheinander gut verzichten kann, arbeitet man als Entwickler mit einer Versionskontrolle &#8222;sicher&#8220; durch branching (Verzweigungen) und merging (Zusammenführungen). &#8222;Sicher&#8220; in Anführungszeichen, da es auch da einige Stolpersteine gibt 😉</p>



<p>Beim branching dupliziert ein Entwickler den Teil des Quellcodes (Das so genannte Repository bzw. die Repo), der für ihn relevant ist und kann die Änderungen genau an diesem Teil des Codes vornehmen, ohne den Rest des Projekts zu beeinträchtigen. Sobald der Entwickler seinen Teil des Codes ordnungsgemäß fertiggestellt hat, kann er diesen Code wieder in den Hauptquellcode mergen (einbinden), um es offiziell zu machen. All diese Änderungen werden protokolliert, kommentiert und können bei Bedarf eingesehen, kontrolliert oder rückgängig gemacht werden.</p>



<h3 class="wp-block-heading">Was ist Fork. bzw. Forking?</h3>



<p>Ein Fork ist eine Kopie einer Repository. Das Forken einer Repository ermöglicht es, frei mit Änderungen zu experimentieren, ohne das Originalprojekt zu beeinträchtigen. Dieser Begriff wird auch anderweitig genutzt, doch darauf werde ich jetzt nicht weiter eingehen 😀</p>



<h3 class="wp-block-heading">Was ist Branch bzw. Branching?</h3>



<p>Ein Branch (Zweig) ist ein hervorstehender Teil eines Baumes. Etwas, dass aus einem Hauptteil herausragt. So, auch in unserem Kontext. Ein Zweig stellt eine unabhängige Entwicklungslinie dar. Zweige dienen als Abstraktion für den Prozess der Bearbeitung (Stage/Commit). Man kann sie sich als eine Möglichkeit vorstellen, ein neues Arbeitsverzeichnis, einen Bereitstellungsbereich und/oder einen Projektverlauf anzufordern.</p>



<h3 class="wp-block-heading">Was ist Modified bzw. Modifying?</h3>



<p>Modified (Geändert) bedeutet, dass die Datei(en) geändert wurden aber noch nicht in die Datenbank bzw. Repository übertragen wurden.</p>



<h3 class="wp-block-heading">Was ist Stage bzw. Staging?</h3>



<p>Staged (Phase/Stadium) bedeutet, dass eine geänderte Datei in ihrer aktuellen Version markiert wurde, um sie in dem nächsten Commit-Snapshot (Schnappschuss) zu übernehmen.</p>



<h3 class="wp-block-heading">Was ist Commit bzw. Committing ?</h3>



<p>Commits (Verbindlichkeiten) sind die zentralen Bausteineinheiten einer Git-Projektzeitleiste. Sie können als Schnappschüsse oder Meilensteine entlang der Zeitachse eines Git-Projekts betrachtet werden. Commits werden mit dem Befehl &#8222;git commit&#8220; erstellt, um den Zustand eines Projekts zu diesem Zeitpunkt festzuhalten. Im Endeffekt wie das Zwischenspeichern mit F5 bei Spielen oder Strg + S bei der regulären Arbeit am Computer. In der Betrachtungsweise einiger interessanter und manchmal nervtötender Zeitgenossen &#8211; Lediglich etwas fundamentaler 😉</p>



<h3 class="wp-block-heading">Merge</h3>



<p>Mit dem Merging-Befehl fügt Git einen geforkten (aufgegabelten) Verlauf wieder zusammen. Mit dem Befehl &#8222;git merge&#8220; kann man die unabhängigen Entwicklungslinien, die mit dem Befehl &#8222;git branch&#8220; erstellt wurden, in einen einzigen Zweig integrieren.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Alles in allem sollte dies für eine kurze Erklärung reichen. In naher Zukunft werde ich auch ein Tutorial über die Nutzung von Git schreiben. Sicherlich gibt es heutzutage auch kommerzielle Cloud-Lösungen wie GitHub oder GitKraken, die diese Schritte auf wenige Mausklicks reduzieren und so eine nahtlosere Zusammenarbeit ohne etwaige Vorkenntnisse ermöglichen, doch dies werde ich auch in zukünftigen Beiträgen thematisieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/18/erklaerung-git/">Git &#8211; Die Codeverwaltung für effiziente Zusammenarbeit revolutionieren</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/18/erklaerung-git/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">609</post-id>	</item>
		<item>
		<title>Open Source &#8211; Wissen teilen und vermehren</title>
		<link>https://ceosbay.com/2022/11/16/erklaerung-open-source/</link>
					<comments>https://ceosbay.com/2022/11/16/erklaerung-open-source/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 16 Nov 2022 17:03:21 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bildung]]></category>
		<category><![CDATA[Blockchain]]></category>
		<category><![CDATA[Buchempfehlung]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Autor]]></category>
		<category><![CDATA[CEO]]></category>
		<category><![CDATA[Deutschland]]></category>
		<category><![CDATA[Diskriminierung]]></category>
		<category><![CDATA[Eric Raymond]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Freie]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Instagram]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[Libre]]></category>
		<category><![CDATA[Lizenz]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Neutralität]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Personen]]></category>
		<category><![CDATA[Produktneutralität]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Quelle]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[SHARE]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Suse]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Technologieneutralität]]></category>
		<category><![CDATA[Umwelt]]></category>
		<category><![CDATA[Uneingeschränkt]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[USA]]></category>
		<category><![CDATA[UUCP]]></category>
		<category><![CDATA[Verantwortung]]></category>
		<category><![CDATA[Weiterverbreitung]]></category>
		<category><![CDATA[Welt]]></category>
		<category><![CDATA[Werke]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=557</guid>

					<description><![CDATA[<p>Heute kümmere ich mich um eines meiner Lieblingsthemen. Dafür werde ich mir auch ein bisschen mehr Zeit nehmen. Open Source (Offene Quelle) ist ein Begriff, der ursprünglich auf Open Source Software (OSS) zurückgeht. Dabei handelt &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source &#8211; Wissen teilen und vermehren</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Heute kümmere ich mich um eines meiner Lieblingsthemen. Dafür werde ich mir auch ein bisschen mehr Zeit nehmen. <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> (Offene Quelle) ist ein Begriff, der ursprünglich auf <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software (OSS) zurückgeht. Dabei handelt es sich um Quellcode bzw. Code, der für die Öffentlichkeit zugänglich ist. Folglich kann jeder den Code einsehen, anzeigen, nach Belieben verändern und verteilen. <br>Ganz im Sinne von &#8222;Das Wissen der Menschheit gehört der Welt&#8220;.</p>



<h3 class="wp-block-heading">Was ist Open Source Software?</h3>



<p><a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source Software</a> wird in der Regel dezentral, innerhalb einer Kollaboration entwickelt und stützt sich auf Peer-Review. Eine von Fachkollegen begutachtete Veröffentlichung wird als Peer(s) und Community-Produktion bezeichnet. Die Software ist nicht selten kostenlos bzw. günstiger, flexibler und langlebiger als proprietäre Produkte. Vor allem, weil sie nicht von einem einzelnen Programmierer oder Unternehmen, sondern in und durch Communities entwickelt wird. In der Regel verstehen die diese Personen etwas von ihrem Handwerk.</p>



<p>Open Source hat sich in der jüngeren Vergangenheit zu einer Bewegung geformt. Geradezu zu einer neuen Art des Arbeitens und des Lifestyles, die über die reine Softwareproduktion hinausgeht. Sie nutzt die Werte, sowie das dezentrale Produktionsmodell der Open Source Software, um neue Wege zu finden, Probleme in Communities, diversen Branchen und des Alltags zu lösen.</p>



<h3 class="wp-block-heading">Kriterien für Open Source</h3>



<p>Doch allein der freie Zugang zum Quellcode reicht nicht aus, damit eine Software als Open-Source-Software deklariert werden kann. Folgende Kriterien müssen ebenfalls erfüllt sein:</p>



<p><strong>Freie Weiterverbreitung</strong> &#8211; Die Lizenz muss es jedermann erlauben, die Software weiterzugeben oder als Teil einer Sammlung zu verkaufen. Man darf keine Lizenzgebühren verlangen.</p>



<p><strong>Zugang zum Quellcode</strong> &#8211; Die Software muss im Quelltext in verständlicher Form verfügbar sein.</p>



<p><strong>Zulässigkeit von abgeleiteten Werken</strong> &#8211; Die Lizenz muss Modifikationen und Weiterentwicklungen zulassen und deren Weitergabe unter denselben Bedingungen erlauben wie die Original-Software.</p>



<p><strong>Integrität des Quellcodes des Autors</strong> &#8211; Zwar muss die Lizenz die Weitergabe von Software mit verändertem Quellcode zulassen, darf aber verlangen, dass abgeleitete Werke einen anderen Namen oder eine andere Versionsnummer tragen müssen.</p>



<p><strong>Keine Diskriminierung von Personen oder Gruppen</strong> &#8211; Die Lizenz darf keine Personen oder Personengruppen benachteiligen.</p>



<p><strong>Keine Nutzungseinschränkung</strong> &#8211; Die Lizenz darf die Nutzung der Software nicht für bestimmte Zwecke oder Tätigkeitsbereiche ausschließen, etwa den Einsatz in Unternehmen.</p>



<p><strong>Allgemeingültigkeit der Lizenz bei Weitergabe</strong> &#8211; Die Lizenz muss für alle gelten, an die die Software weitergegeben wird. Es dürfen keine zusätzlichen Lizenzen vergeben werden.</p>



<p><strong>Produktneutralität der Lizenz</strong> &#8211; Die Lizenz darf nicht davon abhängen, ob die Software ein Bestandteil einer bestimmten Distribution ist. Sie muss auch dann gelten, wenn das Programm eigenständig verwendet oder zusammen mit anderer Software weiterverbreitet wird.</p>



<p><strong>Keine Einschränkung anderer Software</strong> &#8211; Die Lizenz darf keine Einschränkungen für andere Software enthalten, die zusammen mit der lizenzierten Software weitergegeben wird.</p>



<p><strong>Technologieneutralität</strong> &#8211; Die Lizenz darf die Weitergabe der Software nicht auf eine bestimmte Technologie beschränken.</p>



<h3 class="wp-block-heading"><strong>Wie ist Open Source entstanden?</strong></h3>



<p>In den Anfängen der Informatik, etwa in den 50er bzw. 60er Jahren, tauschten Wissenschaftler, Programmierer und Entwickler Software aus, um voneinander zu lernen und um die Informatik weiterzuentwickeln. Zu den frühen Beispielen für die freie Weitergabe von Quellcode gehören auch die von <a href="https://www.ibm.com/de-de">IBM</a> herausgegebenen Quelltexte seiner Betriebssysteme und anderer Programme sowie die SHARE-Benutzergruppe, die sich bildete, um den Austausch von Software zu erleichtern. </p>



<p>Ab den 60er Jahren nutzten ARPANET-Forscher ein offenes &#8222;Request for Comments&#8220;-Verfahren (RFC), um Rückmeldungen zu frühen Telekommunikationsnetzprotokollen zu fördern. Dies führte 1969 zur Entstehung des frühen Internets. Die gemeinsame Nutzung von Quellcode im Internet begann, als das Internet noch relativ primitiv war, mit Software, die über UUCP, Usenet, IRC (Werde ich demnächst auch mal thematisieren. Denn damit ging es auch bei mir los 😉 ) und Gopher verbreitet wurde. BSD zum Beispiel wurde auch zuerst durch Beiträge in comp.os.linux im Usenet verbreitet, wo auch die Entwicklung diskutiert wurde. Linux folgte diesem Modell. </p>



<p>Zwischen den 70er und 80er Jahren wurde der Open-Source-Gedanke schließlich von der Kommerzialisierung der Software verdrängt. Akademiker entwickelten jedoch weiterhin häufig Software in Zusammenarbeit. Beispiele hierfür sind Donald Knuth 1979 mit dem TeX-Satzsystem und Richard Stallman 1983 mit dem GNU-Betriebssystem. </p>



<p>1997 veröffentlichte Eric Raymond () das Buch „The Cathedral and the Bazaar“ (Dies ist gleichzeitig eine Buchempfehlung und stellt eine Bildungslücke dar, falls bisher noch nicht gelesen! Besonders, wenn man in der IT tätig ist!), eine reflektierende Analyse der Hacker-Gemeinschaft und der Grundsätze freier Software. Das Whitepaper fand Anfang 1998 große Beachtung. Es war ein wesentlicher Faktor, der die Netscape Communications Corporation dazu veranlasste, ihre beliebte Internet-Suite Netscape Communicator als freie Software zu deklarieren und zu veröffentlichen. Die Netscape Communications Corporation war ein unabhängiges amerikanisches Unternehmen, für Computerdienstleistungen mit Hauptsitz in Mountain View, Kalifornien, und anschließend in Dulles, Virginia. Dieser Quellcode wird später zur Grundlage von SeaMonkey, Mozilla Firefox, Thunderbird und KompoZer, die heute noch im Einsatz sind.</p>



<p>Das Vorgehen von Netscape veranlasste wiederum Eric Raymond und andere dazu, sich mit der Frage zu beschäftigen, wie man die Ideen der Free Software Foundation und die von ihr erkannten Vorteile, für die kommerzielle Softwareindustrie nutzbar machen kann. Sie kamen zu dem Entschluss, dass der soziale Aktivismus der FSF, für Unternehmen wie Netscape nicht attraktiv war. Also suchten sie nach einer Möglichkeit, der Freien-Software-Bewegung einen neuen Namen zu geben. Dies sollte das geschäftliche Potenzial des Austausches und der Zusammenarbeit an Software-Quellcode voll ausschöpfen. </p>



<p>Dies war die Geburtsstunde des Bergriffs &#8222;<a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a>&#8222;. Die Definition wurde bald darauf von Bruce Perens, einem amerikanischen Programmierer und Verfechter der Bewegung für freie Software definiert, manifestiert und veröffentlicht. Der Verleger Tim O&#8217;Reilly machte unter Anderem den Begriff <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> relativ schnell populär. Und Linus Torvalds, ein finnisch-US-amerikanischer Informatiker sowie Software-Entwickler, der bis heute als Initiator und als treibende Kraft bei der Entwicklung des Linux-Kernels gilt. Der Kernel bzw. die Arbeitsmethodik wird von vielen anderen genau so weitergeführt. Die Entwicklung wird übrigens bis heute noch von ihm koordiniert.</p>



<p>Im Februar 1998 die Gründung der OSI (<a href="https://opensource.org" target="_blank" rel="noreferrer noopener">Open Source Initiative</a>). Sie sollte die Verwendung des neuen Begriffs fördern und die Open-Source-Prinzipien propagieren. Was in Anbetracht der gegenwertigen Situation auch ganz gut gelungen ist. Vor allem wenn man bedenkt, wie viele große Konzerne damals zu <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software Stellung bezogen haben. Und wie sie heute selbst <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software nutzen. Dazu aber nachfolgend mehr.</p>



<p>Zur gleichen Zeit sahen sich kommerzielle Softwarehersteller zunehmend durch das Konzept der frei verteilten und erhältlichen Software und des allgemeinen Zugangs zum Quellcode einer Anwendung bedroht. Der Microsoft-Manager Jim Allchin, ein amerikanischer Informatiker und ehemalige Führungskraft bei Microsoft, erklärte 2001 öffentlich: &#8222;<a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> ist ein Zerstörer geistigen Eigentums. Ich kann mir nichts Schlimmeres für das Softwaregeschäft und das Geschäft mit dem geistigen Eigentum vorstellen.&#8220; Oder Steve Ballmer (CEO von Microsoft von 2000 bis 2014), der 2001, bei einem Interview, Linux als Krebs bezeichnete.</p>



<h3 class="wp-block-heading">Open Source Software heute</h3>



<p>Freie und quelloffene Software hat Anfangs eine Rolle außerhalb des Mainstreams eine Rolle gespielt.  Also eher in der privaten Softwareentwicklung. Größere Unternehmen wie Microsoft, Google, Facebook, IBM, Oracle usw. hatten begonnen, offizielle Open Source &#8222;Plattformen&#8220; im Internet aufzubauen. Damit haben sich die ehemaligen „Gegner“ auf die ein oder andere Art der Bewegung für freie und quelloffene Software angeschlossen. </p>



<p>Dadurch hat sich die Sichtweise auf Open-Source-Software grundlegend geändert. Hinzu kommt, dass auch von denen Konzernen viel Kapital und Resourcen in die Entwicklung von Open Source Software fließen. Zu den Mitwirkenden, Geldgebern und gemeinnützigen Organisationen an Open-Source-Projekten gehören unter anderem die Linux Foundation, die WordPress Foundation, Creative Commons, das Android Open Source Project und die Mozilla Foundation. Auch Epic Games hat in den letzten Jahren nicht wenig Geld in Blender und dessen Weiterentwicklung gesteckt. Doch das Thema Blender werde ich in den kommenden Wochen auch in Angriff nehmen und in einem Beitrag festhalten.</p>



<h3 class="wp-block-heading">Beliebte Open Source Software &#8222;Lizenzen&#8220;</h3>



<p><strong>MIT License©</strong>: MIT License ist eine freie Softwarelizenz. Nutzern ist es erlaubt, den Originalcode mit sehr wenigen Einschränkungen zu verändern.<br><strong>GNU General Public© (GPL)</strong>: GNU ist eine Reihe von Lizenzen für freie Software. Es gibt Endbenutzern die Möglichkeit, Software auszuführen, zu untersuchen, weiterzugeben und zu verändern.<br><strong>BSD</strong>: Die BSD Lizenz hat weniger Beschränkungen für Entwickler. Es erlaubt den Nutzern, den Code zu verwenden und zu verändern, ohne die Änderungen weitergeben zu müssen.<br><strong>Ubuntu®</strong>: Ubuntu ist eine Linux-Distribution, die aus freier und Open-Source-Software besteht. Es wird primär in den Bereichen Desktop, Cloud und IoT veröffentlicht.<br><strong>Red Hat</strong>: Eine Open-Source-Softwareplattform und ein IBM-Derivat, das eine Vielzahl von Produktivitätsanwendungen für Unternehmen bietet.<br><strong>Blender</strong>: Blender ist eine freie, mit der GPL lizenzierte 3D-Grafiksuite, mit der sich 3D-Körper modellieren, texturieren und animieren lassen. Die Inhalte finden in Grafiken, Animationen und Software Anwendung. Geschaffene Bildsynthesen können mithilfe des integrierten Compositors und Videoschnittprogramms nachbearbeitet werden. Programmiersprachen, die zum Einsatz kommen sind C und C++. Python wird als Skriptsprache verwendet.<br><strong>Mozilla</strong>: Die Mozilla Public License ist eine freie und quelloffene schwache Copyleft-Lizenz. Für die meiste Software der Mozilla Foundation wie Firefox und Thunderbird. Die MPL-Lizenz ist von Mozilla und die Entwicklung bzw. Pflege, findet In-House statt.<br><strong>SUSE</strong>: SUSE Linux basiert auf einem Open-Source-Linux-Kernel und wird mit System- und Anwendungssoftware vertrieben.<br><strong>LibreOffice</strong>: Ein Open-Source-Büroprogramm, das den Microsoft Office-Programmen ähnelt.<br><strong>Apache®</strong>: Die Apache License ist eine freie Softwarelizenz. Sie erlaubt den Nutzern, die Software für jeden Zweck zu verwenden, zu verändern und zu verbreiten.<br><strong>Berkeley Software Distribution</strong>: Ist ein Betriebssystem, das auf Research Unix basiert. Die Computer Systems Research Group an der University of California, Berkeley, entwickelt und kümmert sich um den Vertrieb.<br><strong>MySQL™</strong>: MySQL ist ein Open-Source-Datenbankverwaltungssystem mit zwei separaten Lizenzen &#8211; der MySQL Standard Edition und der MySQL Enterprise Edition.</p>



<h3 class="wp-block-heading">Nachteile von Open Source Software</h3>



<p>Obwohl Open Source Software und die Lizenzen enorm zum Wachstum der Softwareentwicklung und der Entwicklung der internationalen IT-Landschaft beigetragen haben, wird ihre weite Verbreitung nicht von Wenigen als negativ erachtet. Dies wird auf die fehlende Regulierung zurückgeführt, die zu zahlreichen juristischen Problemen führen kann. Auch bezüglich der Definition, was als Open Source und was Closed Source deklariert werden kann, stellt einen wesentlichen Problemfaktor dar. </p>



<p>Um diesen Umständen entgegenzuwirken hat die Open-Source-Gemeinschaft Klassifizierungsschemata eingeführt, die in der Regel auf Copyleft-Bestimmungen (Um ein Programm unter das Copyleft zu stellen, wird es zuerst unter ein Copyright gestellt; danach werden als Rechtsmittel Vertriebsbestimmungen hinzugefügt, die es allen erlauben, den Quellcode des Programms oder jedes davon abgeleiteten Programms zu verwenden, zu ändern und weiter zu verteilen) beruhen, um geeignete Anwendungsfälle für das Open-Source-Softwareentwicklungsmodell zu bestimmen. </p>



<p>Das US-Bundesberufungsgericht, entschied darüber hinaus, dass OSS-Lizenzen rechtsverbindliche Anforderungen für die Nutzung von urheberrechtlich geschütztem Material enthalten müssen. Findet durch einen Benutzer ein Regelverstoß gegen diese offenen Standards statt, verliert er seine Lizenz und verstößt damit gegen die Norm für Urheberrechtsverletzungen, ähnlich wie bei der unbefugten Nutzung einer proprietären Lizenz. Die Folgen dafür können gravierend sein.</p>



<h3 class="wp-block-heading">Übrigens: Open Source vs. freie Software</h3>



<p>“Open Source” und “Freie Software” bezeichnen im Wesentlichen das Gleiche. Der Begriff “Freie Software” ist lediglich etwas älter (1985) und stammt von der Free Software Foundation. Der Gedanke der frei zugänglichen Software ist gleich, nur die Motivation dahinter ist verschieden. Bei Open Source ist es der praktische Nutzen, der durch die gemeinsame Weiterentwicklung von Software entsteht. Bei der freien Software ist es die Ideologie dahinter und der Nutzen für den Anwender.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Ich bin davon überzeugt, dass das Wissen der Menschheit der Welt gehört und durch das Wissen auch die Vermittlung von Bildung besser vonstattengehen kann. So dient das Wissen auch der Fähigkeitsvermittlung, bei der eine Gesamtheit der Fähigkeiten zum Tragen kommt. Bildung wiederum hat auch eine moralische Funktion. </p>



<p>Daher kann durch Bildung die Voraussetzung dafür geschaffen werden, dass Menschen eher Verantwortung für sich selbst, sowie für andere in ihrem Umfeld und ihrer Umwelt übernehmen. Kurz: Mithilfe von Wissen und Bildung kann ein Mensch eher zwischen Gut und Böse unterscheiden. Ohne Wissen und Bildung funktioniert keine moderne Software oder Demokratie. Und dies sind nun einmal die Schlüssel für ein gutes Miteinander, zu Arbeit und Beruf in unserer heutigen Zeit. </p>



<p>Deshalb muss sowohl Wissen als auch die Bildung kostenlos zugänglich gemacht werden &#8211; Damit auch Quellcodes von Software. Dies alles mag zwar auf dem ersten Blick etwas verzerrt wirken, doch wenn man bedenkt, dass viele Menschen ihr Wissen heutzutage fast ausschließlich aus dem Internet bzw. von den digitalen Medien beziehen, kann es meiner Meinung nach durchaus Sinn machen. Aber ich lasse mich auch gerne jederzeit eines Besseren belehren 😉</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source &#8211; Wissen teilen und vermehren</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/16/erklaerung-open-source/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">557</post-id>	</item>
	</channel>
</rss>
