Algorithmen treffen wir tagtäglich in unserem Leben, denn Sie sind Anleitungen zur zielgerichteten Lösung von Problemen. Erstmals beschrieben hat dies der choresmische Gelehrte Al-Chwarizmi im 9. Jahrhundert. Er lebte in Bagdad, Iran.
Verfeinert wurde der Begriff im 20. Jahrhundert durch den in Großbritannien diffamierten Mathematiker Alan Touring.
Definition eines Algorithmus
Das Verfahren muss zum richtigen Ergebnis führen
Der Verfahren muss mit einem endlichen Text die Anforderungen ganz erfüllen
Das Verfahren besteht aus Arbeitsschritten, die zielgerichtet zur Lösung führen
Jeder einzelne Schritt muss ein eindeutiges Ergebnis besitzen
Gleiche Eingabewerte müssen immer zum gleichen Ergebnis führen
Das Verfahren muss auf alle zulässigen Daten fehlerfrei anwendbar, also Allgemeingültig sein
Hochwertige Programme erfüllen diese Anforderungen. Denn die Definition von Qualität lautet:
Qualität ist die Erfüllung der Kundenanforderungen
Computermonitore aus der Frühzeit der EDV waren monochrom. Es gab grün- und bernstein-farbene anzeigende Geräte. Als Mitte der 80er Jahre die Farbmonitore auf den Markt kamen, hat die Bildbearbeitung mit dem Computer begonnen. 1985 wurde mit Deluxe Paint eine leistungsfähige Bildbearbeitung mit dem Commodore Amiga präsentiert. Photoshop kam 1990 auf den Markt.
Die Monitore veränderten sich zu Flachbildschirmen und die Anforderungen an die Bildqualität dieser Geräte stiegen in den folgenden Jahrzehnten. Druckereien waren auf Farbtreue während des ganzen Produktionsprozesses angewiesen. Schließlich sollte eine fotografierte, rote Tomate in der gedruckten Zeitschrift ebenso aussehen wie das Original. So war die Standardisierung des Farbraumes notwendig. Dazu wurden verschiedene Farbmodelle entwickelt, von denen ich zwei Modelle vorstelle.
Betrachten wir zuerst die Grundlagen der Farbmischung. Um eine große Menge an unterschiedlichen Farben darzustellen, werden aus drei Grundfarben viele unterschiedliche Farben gemischt. Auf dieser Basis gibt es eine additive Farbmischung und eine subtraktive Farbmischung. Der darstellbare Bereich von Farben wird Gamut genannt.
Additive Farbmischung
Diese Farbmischung basiert auf selbstleuchtenden Farben. Von Schwarz (Keinerlei Farbe) wird durch die drei grundlegenden Farben Rot, Grün und Blau (RGB).
Ein Abbild vieler Farben ist so möglich. Nach diesem Prinzip arbeiten die Computer Monitore.
Subtraktive Farbmischung
Bei der subtraktiven Farbmischung werden die Farben durch eine Lichtquelle beleuchtet. Das reflektierte Licht fällt in unsere Augen und wir können die Farben sehen. Wenn das weiße Licht auf die Farben fällt, dann werden Lichtanteile verschluckt. Durch die reflektierten Lichtanteile sehen wir die Farbe. Die drei Grundfarben der subtraktiven Farbmischung sind Cyan, Magenta und Gelb.
Nach diesem Prinzip arbeiten Drucker und Farben, die wir im täglichen Leben benutzen. Allerdings wird bei Farbdrucken im Regelfall kein perfektes Schwarz erreicht. Daher gibt es Fotodrucker die noch weitere Farben wie Schwarz, Grau oder ein helles Gelb verwenden.
Das RGB Farbmodell
Das RGB Farbmodell basiert auf additiver Farbmischung. Es wird daher bei Farbdisplays, Fernsehern, Beamern und ähnlichen Geräten genutzt. Aus den 3 Grundfarben Rot, Grün und Blau werden die dargestellten Farben gemischt. Die Werte der einzelnen Farben können zwischen 0 und 100% liegen. Im Internet werden Farbtiefen von 24 Bit (= 8 Bit Rot, 8 Bit Grün und 8 Bit Blau) genutzt. Dadurch ergibt sich ein Wertebereich von 256 Stufen bei jeder Grundfarbe und eine Farbanzahl von 16.777.216 Farben. Sehr gute Monitore können eine Farbtiefe von 10 Bit pro Grundfarbe abbilden. Also insgesamt 30 Bit Farbtiefe und damit 230 oder mehr als 10 Milliarden Farben. Viele Grafikkarten können bis 232 Bit Farben darstellen. Dazu die RGB Farbraum Darstellung von Torre Anders. Der RGB Farbraum liegt innerhalb des schwarzen Dreiecks.
Das CMYK Farbmodell
Auf subtraktiver Farbmischung basiert das CMYK Farbmodell. Es basiert auf den Grundfarben Cyan, Magnet, Gelb und einem Schwarz-Anteil, der auch „Key“ genannt wird. Da es bei der Umsetzung dieses Farbmodells keine passend tiefes Schwarz gibt, wird Schwarz als 4. Faktor hinzugefügt. Dieses Farbmodell wird seit 1843 im Druckbereich beim 4-Farben Druck eingesetzt. Geräte dafür sind der Tintenstrahl Drucker, Farblaser Drucker, 4-Farben Druckmaschinen für Bücher, Zeitschriften und weitere Druckerzeugnisse.
Heute stelle ich den Webseiten Editor Brackets von Adobe vor. HTML Seiten lassen sich mit jedem Editor erstellen. Der Unterschied bei den Editoren liegt in der Unterstützung bei der Erstellung des Webseiten Kodes. Hier leistet der Open Source Editor Brackets gute Unterstützung.
Funktionen von Brackets
Horizontales und vertikales Aufteilen des Editorfensters mit „Split View“
Umfangreiche Funktionsergänzung durch viele Erweiterungen
Auswahl verschiedener Themen und dadurch „Dark Mode“ möglich
Aufruf von Quick Edit (CTRL+E)
zum schnellen Bearbeiten von Klassen und Ids
Auswahl von Farben
Erstellen von CSS Regeln
Aufruf von Javascript Funktionen
Unterstützung von LESS, SCSS und CSS
Umfangreicher Quellcode kann gefaltet werden
Eine Mehrfachauswahl und mehrfacher Cursor erleichtern das Schreiben des gleichen Textes an verschiedenen Stellen
Eine Suche von Text in geschlossenen Dateien ist möglich
Mit CTRL+Leertaste werden Code Vorschläge angezeigt
Dazu gibt es noch viel weitere Funktionalität die zeigen, warum dieser Quellcode Editor so beliebt ist.
Web Entwickler brauchen für die Erstellung von Webseiten, CMS, Blogs und weiteren internet-affinen Systemen eine Entwicklungsumgebung. Hier bietet seit vielen Jahren die Open Source Entwicklungsumgebung XAMPP eine tragende Rolle.
XAMPP Installation
Im nachfolgenden Video wird die Installation von XAMPP gezeigt. Mit dabei sind Tipps und Tricks.
Vor Kurzem ist die neue Version Linux Mint 20 „Ulyana“ erschienen. Diesmal handelt es sich um ein großes Upgrade, bei dem es Einiges zu beachten gibt. In meinem Video wird klar gezeigt, wie Linux Mint 19.3 erfolgreich auf Linux Mint 20 Ulyana aktualisiert wird.
Im letzten Beitrag haben wir Phil Zimmermann, den Entwickler der Verschlüsselungssoftware PGP kennengelernt und wie das weltweit eingesetzte GPG GNU Privacy Guard entstanden ist.
In diesem Video wird die Installation des Schlüssel Verwaltungsprogramms Kleopatra bei dem Betriebssystem Linux Mint gezeigt. Danach wird ein GPG Schlüsselpaar mit einem privaten und einem öffentlichen Schlüssel erstellt.
Das Internet ist ohne den Einsatz von Verschlüsselung wirtschaftlich kaum nutzbar. Einer der Pioniere zur Nutzung von Verschlüsselung ist Philip R. Zimmermann, der Erfinder des Verschlüsselungssystems Pretty Good Privacy (PGP). Das ist eine Software mit der E-Mails und Dateien geschützt werden können. 1991 veröffentlichte Phil seine Software als Werkzeug, um die Menschenrechte im Internet umzusetzen und weltweit zu verbreiten.
Das Pentagon war der Meinung, das jegliche Verschlüsselungstechnologie zu Kriegswaffen gehört und daher hätte Phil Zimmermann gegen US Gesetze verstoßen. Es folgte eine 3-jährige Klärung, bei der Phil Zimmermann sogar für einige Zeit unschuldig im US-Gefängnis war. Phil hatte zu Recht den Quellcode als Open Source weltweit auf Papier veröffentlicht und somit gegen keine US Gesetze verstoßen.
Seine Freunde in Europa tippten den Quellcode in einen Editor ein und konnten so GPG, GNU Privacy Guard veröffentlichen und weltweit in neuen Versionen verbreiten. Mit den Nachfolgeprogrammen dieser Versionen arbeiten wir noch heute.
Klassische E-Mails sind wie Postkarten. Es kann jeder den Absender, den Empfänger und den Betreff und den Inhalt der E-Mail lesen. Eine optimale Situation für die Geheimdienste und für kriminelle Organisationen wie zum Beispiel Spammer. Mit dem Einsatz von GPG wird aus der lesbaren Postkarte ein Brief, der in einem Kuvert steckt. Der Brief ist ohne zu öffnen nicht lesbar und das Gleiche gilt für E-Mails, die mit GPG verschlüsselt werden.
In einem zukünftigen Artikeln werde ich die Nutzung von GPG beschreiben.
Oft gibt es kleine Werkzeuge, die man häufig benutzt und die nicht immer sofort zugreifbar sind. Ein oft genutztes Tool ist der Screenshot. Bei Linux Mint gibt es die Möglichkeit ein Screenshot- und Videotool in die Startleiste zu integrieren.
Viele benutzen jeden Tag einen Computer und freuen sich über die umkomplizierte Nutzung dieses Geräts. Dazu arbeiten das Betriebssystem und die Hardware des Computers zusammen. Betriebssysteme heißen auf Englisch Operating System und werden häufig mit OS abgekürzt. Wir wollen die grundsätzlichen Aufgaben eines Betriebssystems betrachten.
Grundlegende Aufgaben des Betriebssystem
Das Betriebssystem hat verschiedene Aufgaben, um dem Nutzer die Funktionalität des Computers zur Verfügung zu stellen.
Die Prozessverwaltung
Die Prozessverwaltung stellt den allgemeinen Teil an Aufgaben des Betriebssystems dar.
Es werden neue Prozesse erstellt, der notwendige Arbeitsspeicher wird beobachtet.
Zudem werden bei laufenden Prozessen die Speicherzugriffe überwacht und bei Fehlern wird der Prozess beendet.
Ein weiterer Richter Vorgang ist das Sicherstellen der Kommunikation zwischen den Prozessen untereinander.
Bei manchen Aufgaben ist die Synchronisierung der Prozesse notwendig und wird unterstützt.
Die Speicherverwaltung
Die Speicherverwaltung gehört zur Verwaltung von Ressourcen des Computers und ist ein wichtiger Bestandteil, der für eine fehlerfreie Funktion gebraucht wird.
Die Reservierung und Freigabe von Speicher ist eine Aufgabe.
Bereitstellung und Verwaltung des Arbeitsspeichers.
Zur Analyse gibt es eine Protokollierung der Speichernutzung.
Die Geräteverwaltung
Das Betriebssystem muss seine Komponenten mit ihren Möglichkeiten kennen, damit die volle Leistung aus des Computers genutzt werden kann.
Prüfung der Funktion bereitgestellter Komponenten und Vermeidung von Konflikten.
Bereitstellen und Steuern von Kommunikationskanälen für die Ein- und Ausgabe.
Dateiverwaltung
Daten sollen nicht nur während der Verarbeitung im Arbeitsspeicher verwaltet werden, sondern mit Datenträgern genutzt werden. Das ist die Aufgabe einer Dateiverwaltung.
Laden, Speichern und Löschen von Daten auf Datenträgern.
Verwaltung des Dateisystems.
Rechteverwaltung
Erstellen, Ändern und Löschen von Benutzern und Benutzergruppen.
Bereitstellung von Ressourcen basierend auf den vergebenen Rechten des Systems.
Es gibt für PCs verschiedene Betriebssysteme, wie zum Beispiel UNIX, Linux, Apple OS-X und Microsoft Windows.
Fazit:
Computer funktionieren im fehlerarmen Zusammenspiel von Hardware und Software. Einen gänzlich fehlerfreien Computer gibt es ebensowenig, wie der Wirkungsgrad einer arbeitenden Maschine bei 100% liegt. Betriebssysteme halten also den Fehlergrad klein und ermöglichen dem Nutzer eine einfache Bedienung dieser komplexen Maschinen.
Linux Mint ist ein einfach zu erlernende Distribution, die sich durch sehr gute Kompatibilität mit Debian und Ubuntu auszeichnet. Dadurch lassen sich viele zusätzliche Programme einfach hinzufügen und verwalten.
Nach der erfolgreichen Konfiguration der Virtualbox kann die Installation von Linux Mint Cinnamon beginnen. Virtualisierung wird häufig von Informatikern aller Fachrichtungen eingesetzt. Die für den privaten Gebrauch kostenlose Virtualbox inklusive Erweiterung kann verschiedene Betriebssysteme zur Verfügung stellen.
Linux Mint ist eine beliebte Distribution und eignet sich sehr gut, um das Betriebssystem Linux kennenzulernen. Denn die Bedienung der Benutzeroberfläche ist der Windows Benutzeroberfläche sehr ähnlich. Im Zuge der Digitalisierung werden virtuelle Maschinen und Remote Verbindungen eine immer größere Rolle spielen. Anwendungsentwickler benötigen Testsysteme mit unterschiedlichen Betriebssystemen. Da gibt es die Wahl zwischen Cloud Lösungen und der Virtualisierung von IT Geräten.
Möglichkeiten der Virtualisierung für den PC
Für die meisten Betriebssysteme gibt es Software zur Virtualisierung. Bei Windows und Linux werden häufig die Virtualbox von Oracle oder der VMware Player eingesetzt. Bei Apple gibt es zusätzlich zu diesen noch eine interessante Virtualisierungsumgebung, den Parallels Desktop.
Ich zeige im Video die Konfiguration von Linux Mint Cinnamon in der VirtualBox.
In unserem täglichen Leben benutzen wir immer wieder Algorithmen. Aber wenn wir erklären sollen, was ein Algorithmus ist, dann wird es schwierig.
Ein Algorithmus ist eine Anleitung, mit bestimmten Eingabedaten bestimmte Ausgabedaten zu produzieren und auszugeben. Mit anderen Worten:
Es ist eine Handlungsvorschrift, um ein Problem schrittweise zu lösen
Anforderung an Algorithmen in der Programmierung
Der Algorithmus muss vollständig beschreibbar sein
Das Rechenverfahren muss aus einzelnen Arbeitsschritten bestehen, die zur Lösung des Problems führen
Jeder Schritt davon muss zu einem eindeutigen Ergebnis führen
Bei gleichen Eingaben erhält man immer das gleiche Ergebnis
Das Verfahren muss zu einem Ergebnis führen
Der Algorithmus muss universell und auf alle Daten anwendbar sein
Wie wird ein Algorithmus notiert oder aufgeschrieben?
Insgesamt kann dieser in einer Sprache wie zum Beispiel in Deutsch aufgeschrieben werden. Allerdings kann ein Computer den Algorithmus im Regelfall nicht verstehen.
Wie kann ein Computer mit Algorithmen arbeiten?
Damit der Computer den Algorithmus versteht, werden Programmiersprachen eingesetzt. Dabei wird zwischen strukturierter und objektorientierter Programmierung unterschieden. Die meisten Programmiersprachen bieten ähnliche Möglichkeiten die Lösung einer Problemstellung zu beschreiben oder wie der Programmierer sagt, zu implementieren.
Wie kann ein Algorithmus dokumentiert werden?
Dazu kann die Unified Modeling LanguageUML eingesetzt werden. Hier können Algorithmen grafisch dargestellt werden. Dies stellt eine praktische Ergänzung zur textuellen Beschreibung dar.
Die XOR Logik wird ebenfalls häufig eingesetzt. Logik kennt zwei Zustände: Wahr (true) und Falsch (false). Für true wird auch die 1 verwendet und für false auch die 0.
XOR Logikgatter
Der Schaltplan zeigt die Logik mit den hier notwendigen Doppelschaltern.
Schalter A
Schalter B
Lampe Q
0
0
0
0
1
1
1
0
1
1
1
0
Wenn beide Schalter eingeschaltet sind oder beide Schalter ausgeschaltet sind, dan ist die Lampe Q aus. Wenn ein Schalter betätigt wird und der andere Schalter nicht, dann leuchtet die Lampe Q. Die Logikformel lautet:
Eine Verneinung kommt im Leben häufig vor und wir denken daher beim Einsatz kaum darüber nach. Dieses Element gibt es auch in der Logik und nennt sich NOT Logik oder Inverter.
Bei Logik gibt es zwei Zustände Wahr und Nicht-Wahr. Wahr kann auch true, 1 oder Ein sein und Nicht-Wahr kann false, 0 oder Aus sein. Ein Inverter dreht die Logik Zustände. So wird aus true der Zustand false. Bei false wird das Ausgangssignal true.
NOT Logikgatter
Der Schaltplan ist hier nur mit einem Taster ausgestattet.
Schalter A als Taster
Lampe Q
nicht gedrückt = 0
Leuchtet = 1
gedrückt = 1
Leuchtet nicht = 0
Das Signal am Ausgang Q ist immer entgegengesetzt dem Signal am Eingang A.
Logische Verknüpfungen werden unterbewußt von jedem täglich eingesetzt. Anwendungsentwickler und Systemintegratoren brauchen diese Logik bei ihrer täglichen Arbeit.
Logik kennt zwei Zustände: Wahr (true) und Falsch (false). Für true wird auch die 1 verwendet und für false auch die 0.
OR Logikgatter
Der Schaltplan zeigt die Funktionsweise dieser Logik auf.
Schalter A
Schalter B
Lampe Q
0
0
0
0
1
1
1
0
1
1
1
1
Wenn Schalter A oder Schalter B oder wenn beide Schalter geschlossen sind, dann leuchtet die Lampe Q. Die Logikformel lautet