Geany IDE für Entwickler mit Python

Entwickler brauchen die passenden Werkzeuge, um effizient zu programmieren. Die Open Source Software Geany nennt sich auch Lightweight IDE und ist eine Entwicklungsumgebung, die auf Windows, Linux und MacOS installiert werden kann.

Der Geany Editor IDE unterstützt über 50 Programmiersprachen und ist in 40 verschienen Sprachen nutzbar. Eine Programmiersprache ist zum Beispiel Python, eine der zur Zeit beliebtesten Programmiersprachen. Dabei unterstützt Geany Interpreter und Compiler Sprachen. Auch optisch kann Geany durch auswählbare Themen grafisch verändert werden.

Der Funktionsumfang kann durch wählbare Plugins individuell angepasst werden. So bietet Geany auch Unterstützung für Git, Subversion, einen Datei Manager und den Projekt Organizer.Probieren Sie Geany aus.

Meine Empfehlung lautet: Installieren Sie unter Windows und Linux die zusätzlich erhältlichen Geany Plugins. Diese sind bei MacOS bei der Standard Installation enthalten.

Die 10 Gebote der Netzsicherheit

Datenschutz und Datensicherheit spielen immer eine wichtige Rolle und das ist bereits seit mehr als 2500 Jahren bekannt. Denn Meister Sun, auch unter den Namen Sunzi, Sun Tsu oder 孫子 / 孙子bekannt, schrieb in seinen Schriften: 

Der General ist ein weiser Verteidiger, wenn sein Gegner nicht weiß, was er angreifen soll.

Die weltweit führenden Schulen des Management unterrichten diese wichtigen Schriften noch Heute. Daraus leiten sich auch die 10 Gebote der Netzsicherheit ab.

10 Gebote der Netzsicherheit

  1. Lege stets Verantwortlichkeiten fest
  2. Finde einvernehmliche Regeln für alle Akteure
  3. Stelle ausreichend Ressourcen bereit
  4. Beziehe die Nutzer stets mit ein
  5. Definiere wichtige Prozesse und kontrolliere die Ausführung
  6. Sichere regelmäßig die Daten
  7. Setze Firewall-, Antiviren und weitere Schutz-Software ein
  8. Nutze Verschlüsselung für wichtige E-Mails und wichtige Internet Verbindungen
  9. Gib nur notwendige Daten preis
  10. Bedenke: Der Mensch hinter dem Computer ist das größte Sicherheitsrisiko

Ignoranz und Unwissenheit erzeugen auch solche Worte:

Das Internet ist für uns alle Neuland

Seien Sie wachsam und sorgen Sie für eine zeitgemäße Entwicklung. Denn Freiheit sollte niemals gegen für vorübergehende Sicherheit aufgegeben werden, wie bereits Benjamin Franklin sprach.

Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, der wird am Ende beide verlieren

Darstellung von Klassen und Objekt Diagrammen mit UML

UML wird zur Modellierung und zur Darstellung der Struktur von Softwaresystemen eingesetzt.  Die Unified Modeling Language nutzt dazu verschiedene Diagrammarten und wird zur

  • Beschreibung aller Arten von objektorientierter Software und der dazugehörenden Dokumentation eingesetzt;
  • zeigt die Prozesse, zeitlichen Kommunikationsverläufe, Objekte, Klassen zum Erstellen eines Modells auf;
  • dient zur Erkennung von Risiken und Fehlern;
  • sowie der Zuweisung von Verantwortlichkeiten und Ressourcen.

Inzwischen gibt es Software Tools, mit denen nicht nur UML dokumentiert werden kann. Es wird auch der passende Quellcode für verschiedene Programmiersprachen generiert.

Das Klassen Diagramm

Das Klassendiagramm ist ein Bauplan verwandter Objekte mit ähnlichen Eigenschaften und Methoden. Die Kommunikation dieser Objekte erfolgt über Schnittstellen. Dafür sind Schnittstellenmethoden notwendig.

Beispiel eines Klassen Diagramms

UML Klassendiagramm

  1. Name der Klasse
  2. Attribut oder Eigenschaft der Klasse mit Datentyp
  3. Eine Methode der Klasse

Das Objekt Diagramm

Das Objektdiagramm zeigt eine Instanz der Klasse zu einer bestimmten Zeit. Das heißt, ein aus dem Klassenbauplan erzeugtes Objekt wird zu einem bestimmten Zeitpunkt dargestellt.

Beispiel eines Objekt Diagramms

UML Objekt-Diagramm

  1. Klasse : Objekt => beschreibt das Objekt
  2. Zeigt an einem Beispiel den Wert und Datentyp des Attributs

 

 

 

AMD SOC auf Basis von ARM Prozessoren

Die Entwicklung von Prozessoren und Betriebssystemen ist einer fortlaufenden Änderung unterworfen. Die x86 Prozessoren von Intel stoßen auf immer neue Hemmnisse. Die Technologie bei der Produktion vieler Prozessoren von Intel liegt bei 14 nm. AMD stellt seine Ryzen x86  Prozessoren im 7 nm Prozess her. ARM RISC Prozessoren werden meist mit 5 nm Technologie gefertigt und Apple wird im nächsten Jahr seine M1 Prozessoren von 5 nm auf 4 nm umstellen. Die RISC Prozessoren sind leistungsfähig, effizienter und haben einen geringeren Energieverbrauch als die CISC Prozessoren von Intel.

In diesem Kontext tauchen immer wieder Information auf, dass AMD seine Ryzen Serie mit den x86 Prozessoren um ARM Prozessoren erweitert. Die K12 ARM CPU aus dem Jahr 2014 wurde von AMD weiterentwickelt und nun soll der erste SoC „AMD Ryzen C7“ heißen. Es würde der erste Prozessor der AMD Ryzen Mobile Platform sein.

AMD Ryzen Mobile Platform
AMD Ryzen Mobile Platform, Image Source: chiphell.com

Der SoC soll zwei  der neu spezifizierten Cortex-X1 Kernen mit 3,0 GHz und zwei Cortex A78 mit 2,6 GHz, sowie vier Cortex A55 Kerne mit 2,0 GHz enthalten. Eine Besonderheit soll die von AMD entwickelte GPU darstellen. Sie unterstützt Ray Racing, Sharing, 144 Hz Bildwiederhol Frequenz und HDR10+. Die Geschwindigkeit liegt um ca. 45% höher als bei der von ARM momentan käuflichen GPU Ardeno 650 mit Snapdragon 865. Damit bietet AMD Produzenten von Notebooks und weiteren mobilen Geräten einen leistungsfähigen Einstieg in die neuentwickelte Prozessor Technologie.

AMD Roadmap
AMD Roadmap 2017 – 2022 mit SKU Liste, Image Source: @KOMACHI_ENSAKA on Twitter

Sollte diese Prozessorreihe von den Geräteherstellern angenommen werden, dann wird sich daraus eine Erweiterung des Marktes ergeben. Denn Tests haben ergeben, dass Windows on ARM schneller läuft, als auf x86 Prozessoren.

Wird Intel nachziehen können, wo NVIDIA die Prozessorschmiede ARM gekauft hat?

Fazit:

Diese RISC Prozessoren mit 5 nm Technologie sind für mobile Geräte wie Notebooks, Tablets vorgesehen. Der SoC soll in etwa der gleichen Leistungsklasse wie der Apples M1 Prozessor liegen. Ein Grund mehr für Kunden auf stromsparende, kostengünstigere und leistungsfähigere Geräte umzusteigen. 

 

PSPad – hochwertiger Editor für Entwickler

Entwickler brauchen regelmäßig einen Texteditor mit umfangreichen Funktionen. PSPad ist ein hochwertiger Editor mit umfangreichen Möglichkeiten. So kann der Editor unter anderem:

  • Quellcode Entwicklung mit Syntax Highlighter für viele Programmiersprachen
  • Umfangreiche Funktionen für die Textverarbeitung
  • Integrierter Dateivergleich
  • Integration von HTML-Tidy
  • Integrierter Hexadezimal Editor
PSPad-Editor

Besonders interessant die Möglichkeit weitere Funktion über viele zusätzliche Plug-ins einzubinden. Dies ermöglicht eine individuelle  Funktionserweiterung des Editors.

PSpad

Wer den Editor ausprobieren möchte, kann die Installationsdatei des kostenlosen Editors und https://www.pspad.com finden.

Fazit:

PSPad ist ein hochwertiger Text Editor, mit dem verschiedene Programmier- und Datenbearbeitungsaufgaben in Windows gelöst werden können. Der eingebaute Hexadezimal Editor lässt sich für Analysen auf binärer Ebene verwenden. eine klare Empfehlung für PSPad.

Pseudocode in Entwicklungen und Prüfungen einsetzen

Prüfungen von Fachinformatiker können Aufgaben enthalten, die mit Pseudocode geschrieben werden sollen. Verschaffen wir uns dazu einen Überblick was Pseudocode ist.

Was ist Pseudocode?

Pseudocode ist eine Schritt für Schritt Anleitung zum Entwickeln einer Abbildungsvorschrift mit allgemeiner Logik. Meist wird damit ein auf Anforderungen basierender Algorithmus beschreiben. Pseudocode kennt keinen Standard, die Nutzer orientieren sich aber an den Strukturen von Programmiersprachen.

Grundformen bei Pseudocode

Die Sequenz

Die Sequenz ist eine lineare Abfolge an Befehlsschritten. Dazu ein Beispiel:

Gib die Seitenlänge des Quadrats ein
Berechne den Seitenumfang ist gleich 4 *Seitenlänge
Gib den Seitenumfang aus

Die IF- oder WENN-Abfrage

Mit der IF Abfrage können Entscheidungen getroffen werden, wie das einfache Beispiel zeigt.

IF GefahreneGeschwindigkeit >= 100 THEN
    Zeige im Display „Geschwindigkeit zu hoch“
ELSE
    Zeige im Display „Geschwindigkeit in Ordnung“
ENDIF

Die SELECT CASE Auswahl

Wenn eine Auswahl von mehreren Möglichkeiten angeboten werden soll, dann lässt sich dies mit mit der WENN Abfrage lösen. Meist wird aber der Code kompliziert und daher ist es einfacher, eine SELECT CASE Auswahl zu schreiben.

Bewertung = 0
EINGABE „Geben Sie die Note zwischen 1 und 6 ein“ Bewertung
CASE = 1
AUSGABE „Sehr gut“
VERLASSE den CASE
CASE = 2
AUSGABE „Gut“
VERLASSE den CASE
CASE = 3
AUSGABE „Zufriedenstellend“
VERLASSE den CASE
CASE = 4
AUSGABE „Ausreichend“
VERLASSE den CASE
CASE = 5
AUSGABE „Mangelhaft“
VERLASSE den CASE
CASE = 6
AUSGABE „Ungenügend“
VERLASSE den CASE
DEFAULT
AUSGABE „Die Bewertung wird wiederholt“
GEHE ZU EINGABE

Die WHILE-Schleife

Mit der WHILE Schleife kann ein Code wiederholt ausgeführt werden, bis die Bedingung nicht mehr erfüllt ist.

ASCIICode = 32
WHILE (ASCIICode <= 126)
Umwandlung und Ausgabe in ASCIICode Zeichen
ASCIICode = ASCIICode + 1
ENDWHILE

Fazit:

Mit dem Pseudocode kann ein Algorithmus beschrieben werden, ohne dass eine Programmiersprache ausgewählt wurde. Daher ist dies eine gängige Methode, um den Algorithmus in kodierter Form  lesbar darzustellen.

 

Mozilla Javascript Engine WARP beschleunigt Firefox

Mozilla wird voraussichtlich in der KW 47/2020 für den Browser Firefox ab Version 83 den neuen Javascript Compiler WARP ausliefern. WARP bringt Verbesserungen bei der Ausführung von Javascript mit sich. Bei geringerem Speicherverbrauch werden die Lade- und Antwortzeiten von Javaskripten in den Webseiten beschleunigt.

Mozilla Javascript WARP Diagramm
Mozilla Javascript Compiler WARP

Die Javascript Funktionen können zwischen dem Javascript Interpreter und dem JIT Compiler wechseln. Ähnlich wie bei Java wird in einem ersten Schritt der Javascript Quellcode in nativen Bytecode umgewandelt. Der Bytecode wird durch den Javascript Interpreter des Browsers ausgeführt.

Mozilla Javascript Prozess
Mozilla Javascript Prozess

Fazit:

Eine praktische Verbesserung bei Mozilla Firefox ab Version 83, die die Nutzung von Webseiten erhöht und noch zukünftig weiter optimiert werden wird.

Qualitätsanforderungen an Software

Standardsoftware wird nach unternehmensinternen Qualitätsrichtlinien programmiert und verkauft.
Wie ist das aber bei individuell erstellter Software?

Es gibt allgemeine Qualitätsrichtlinien, die aber vor der Auftragserteilung festgelegt sein sollten. Denn es gilt:

„Qualität ist die Erfüllung der Kundenanforderungen.“

8 Kriterien für Qualität bei Software Entwicklung

Es gibt wichtige Eigenschaften, die bei der Softwareentwicklung eine tragende Rolle spielen. Denn schließlich soll die Software während der Nutzungsdauer problemlos und kostengünstig eingesetzt werden können.

Benutzerfreundliche Bedienung

Ein Programm oder eine App sollen einfach zu bedienen sein. der Anwender soll möglichst ohne Hilfe zum Erfolg kommen.

Unempfindlich gegen Fehler

Eingabefehler sollen abgefangen werden, Fehlbedienung nicht möglich sein.

Integrität und Sicherheit

Die Daten und das System sollen gegen unberechtigte Zugriffe und Manipulation geschützt sein.

Korrekte Funktion

Bei der Eingabe, Verarbeitung und Ausgabe dürfen keine Fehler auftreten. Bei gleichen Eingeben muss stets das gleiche Ergebnis erscheinen.

Portable Verwendung

Die Software soll auf anderen Systemen nutzbar sein.

Überprüfbarkeit

Bei der Abnahme der Software soll der Prüfungsaufwand gering sein.

Kompatibel zu anderen Anwendungen

Die Software soll einfach mit weiterer Software verbunden werden können.

Erweiterbare und wiederverwendbare Eigenschaften

Die Software soll leicht mit neuer Funktionalität ausgestattet und vorhandene Funktionen erweitert werden können.

Fazit:

Software Qualität ist wichtig und entscheidet mit, wie die Nutzung im beruflichen Alltag stattfindet. Gerade bei den Projekten Industrie 4.0 und der zunehmenden Digitalisierung in allen beruflichen Bereichen ist fehlerfreie, hochwertige Software eine Basisvoraussetzung.

Algorithmen in der Software Entwicklung

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.

Statue of al-Khwarizmi in front of the Faculty of Mathematics of Amirkabir University of Technology in Tehran,]IRAN
Al-Chwarizmi, vor der Universität in Teheran von M. Tomczak

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

 

Farbmodelle bei Monitoren, Druckern und weiteren Geräten

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.

Amiga 1000 mit Deluxe-Paint
Original photo by Kaiiv

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).

Additive Farbmischung

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.

Subtraktive Farbmischung

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.

RGB Farbraum

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.

CYMK Farbtest

Original photo by Kaiiv

Tipp

Wer gerne mehr über IT Technologien kennenlernen möchte, kann das Computer History Museum in Mountain View, Kalifornien besuchen.

Computer History Museum in Mountain View, Kalifornien

Dort gibt es seit 1996 die größte Ausstellung über die IT Geschichte.