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

 

 

 

Neue RISC Prozessor Generation v9 von ARM

RISC Prozessoren bei mobilen Geräten gibt es seit vielen Jahren. Wir befinden uns jetzt am Anfang des Wandels durch RISC Prozessoren bei Notebooks, PCs, Netzwerk Geräten und Servern. Apple hat mit dem M1 Prozessor gezeigt, wie leistungsfähig und gleichzeitig stromsparend diese Technologie funktioniert.  Bald wird die zweite Generation von hauseigenen Prozessoren nochmals zeigen, wie leistungsfähig die Apple Computer damit werden.

Lizenzierung und Produktion

ARM ist das Unternehmen, das eine leistungsfähige CPU Architektur für mobile Geräte entwickelt hat. Das Lizenzmodell lässt den Käufern dieser Architektur weite Bereiche an eigenen Entwicklungen zu. Zudem gibt es Unternehmen, die die Pläne von Unternehmen in tatsächliche Produkte wandeln. Dazu kommt, dass die Fabriken dieser Auftragsfertiger im Gegensatz zu Intel einen wesentlich höheren Produktions-Standard besitzen. So werden dort CPUs und weitere elektronische Bauteile in 4nm Technologie hergestellt, wo Intel immer noch die 14nm Technologie einsetzen muss.

So hat ARM mit der Version 9 seiner CPU Architektur optimale Voraussetzungen, um Marktanteile in den Bereichen Automotive, Computer, Smartphones, Tablets, Netzwerk Geräten und IoT zu gewinnen. ARM rechnet 100 Milliarden Geräten in den nächsten 5 Jahren, bei einer Gesamtproduktion von 300 Milliarden ARM basierenden Chips. Die hohe Anzahl ist neben dem Einsatz bei Computern auch dem Internet der Dinge (IoT) geschuldet. Denn immer mehr Geräte arbeiten computergesteuert und vernetzt.

Sicherheitsarchitektur bei ARM v9

Dabei hat ARM auch eine neue Sicherheitsarchitektur entwickelt. Die ARM Confidential Computer Architecture (CCA) schützt den ausführbaren Code und die Daten vor Zugriffen oder Veränderungen.

Performance der CPUs

Dabei wird bei den ersten neuen Version von einem Performance Gewinn von 30% ausgegangen. Dieser Zuwachs betrifft aber nur die Standardentwicklung. Da jeder Käufer den Aufbau der CPU ändern darf, ist mit höheren Systemleistungen zu rechnen. Zudem wird für die KI notwendige Unterstützung in die Hardware integriert.

Fazit:

Ampere Computing, Foxconn, NVIDIA, NXP, Volkswagen, Zoom, Raspberry Pi, Google, Microsoft und viele Weitere IT Unternehmen arbeiten als Partner von ARM. So werden in den nächsten Jahren viele leistungsfähige, energiesparende Produkte auf den Markt kommen.

Quelle:: https://www.arm.com/company/news/2021/03/arms-answer-to-the-future-of-ai-armv9-architecture

Das ISO-OSI Schichtenmodell

Um die  Datenübertragung in Netzen leichter beschreiben zu können, wurde in den 1960er Jahren das DoD Schichtenmodell entwickelt.

Schicht Name
4 Process
3 Host-to-Host
2 Internet
1 Network Access

Dieses Modell besteht aus 4 Schichten und bildet eine Grundlage des heute verwendeten ISO-OSI Schichtenmodells. Die Organisation ISO hat den Open Systems Interconnect im Jahr 1978 entworfen.

Das heutige OSI Modell nutzt 7 Schichten, bei der die Kommunikation zwischen Sender und Empfänger mit Hilfe von technischen Einrichtungen beschrieben wird.

Schicht Deutsche Bezeichnung Englische Bezeichnung Protokolle Geräte oder Hardware
7 Anwendungs-schicht Application Layer HTTPS
FTP
SMTP
LDAP
Gateway
Proxy
6 Darstellungs-schicht Presentation Layer
5 Sitzungsschicht Session Layer
4 Transport-schicht Transport Layer TCP
UDP
3 Vermittlungs-schicht Network Layer IP
ICMP
IPsec
Router
Layer 3 Switch
2 Sicherungs-schicht Data Link Layer WLAN
Ethernet
MAC
Switch
Bridge
Access-Point
1 Bitübertragungs-schicht Physical Layer 1000BASE-T
Token Ring
Repeater
Hub
Netzwerk-kabel

In Schicht 7 werden Daten durch die Anwendung über das Netzwerk an ein weiteres Gerät gesandt.

Das ISO-OSI Schichtenmodell

Dabei nehmen die Daten den Weg von Schicht 7 (Application Layer) des Senders zu Schicht 1 (Physical Layer) des Senders. Dann werden die Daten als Datenpakete über das Netzwerk zum Ziel transportiert. Beim Empfänger nehmen die Daten den Weg von Schicht 1 zu Schicht 7 und werden aufbereitet. Die Anwendung im Empfänger nutzt die Daten und visualisiert sie.

 

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.

 

Abkehr von Intel Prozessoren durch Apple M1 und ARM

Intel kann seit längerer Zeit nicht mehr mit der Konkurrenten bei der Chip Herstellung mithalten. Apple, ARM und Huawei verkaufen Prozessoren, die leistungsfähiger als die Intel Prozessoren sind.

Intel stellt immer noch CISC Prozessoren mit 14 nm Strukturen her, wo die Konkurrenz auf RISC Prozessoren mit bis zu 5 nm Strukturen produziert. Durch die geringere Größe der Transistorfunktionen und Leiterbahnen sind die hergestellten Prozessoren nicht nur leistungsfähiger, sondern auch energieeffizienter.

So verlängert sich die Laufzeit der Apple MacBooks mit dem Apple Silicon M1 je nach Nutzung um fast 80%. Die CPU- sowie die Grafikleistung bei Apple Silicon M1 CPU steigt signifikant an. Da durch den geringeren Energieverbrauch auch weniger Abwärme entsteht, sind Geräte meist geräuschlos oder haben durch kleinere Kühler ein geringeres Gewicht.

Apple MacBook mit dem M1 Chip
Foto aus dem Apple News Room

Die Revolution findet aber nicht nur im Notebook und Desktop Segment statt. Mit dem Raspberry Pi 400 wird ein Einsteiger Computer mit Ubuntu Linux oder Raspberian OS angeboten. Der funktioniert mit einer ARM V8 CPU und dem Broadcom BCM2711 bei einer maximalen Leistungsaufnahme von 15 Watt ebenfalls herausragend, selbst bei passiver Kühlung.

Raspberry Pi 400 Mainboard
Aufbau des Mainboard bei heise.de zeigt, wie klein die ARM CPU ist
Foto Raspberry Pi 400 von heise.de
Der Computer ist in der Tastatur eingebaut

Fazit:

IT Innovationen werden nicht nur Informatiker, Fachinformatiker und Anwender beschäftigen, sondern durch Industrie 4.0 an immer mehr Plätzen in Unternehmen eingesetzt.

Das Pflichtenheft im Anforderungsmanagment

Das Pflichtenheft beschreibt, wie der Auftragnehmer die Anforderungen des Auftraggebers lösen will. Die Anforderungen sind im Lastenheft beschrieben. Das Pflichtenheft enthält das Lastenheft als Anlage. Genaues ist in der DIN 69901-5 und der DIN VDI/VDE 3694: 91-04 geregelt.

Das Pflichtenheft schildert, wie und mit welchen Mitteln die Anforderungen umgesetzt werden. Die Umsetzung wird erst nach der Zustimmung der Auftraggebers durchgeführt. Die Abnahme wird mit Hilfe der Beschreibung aus dem Pflichtenheft und Lastenheft durchgeführt.

Das Lastenheft im Anforderungsmanagement

Jeden Tag werden durch Auftraggeber Projekte gestartet und Auftrage vergeben. Häufig wird dabei das Lastenheft eingesetzt, das in verschiedenen Normen wie z.B. VDI 4403 Blatt1, DIN 69901-5, VDI 3694 beschrieben ist.

Was ist ein Lastenheft?

  • Im Lastenheft werden alle Anforderungen des Auftraggebers an den Auftragnehmer beschrieben.
  • Es wird beschrieben, was für Aufgaben vorliegen und wofür dies zu lösen ist.
  • Es werden alle Forderungen vollständig beschrieben.
  • Eine Abgrenzung wird getroffen und beschrieben, was nicht zur Aufgabe gehört.

Nach der Klärung der Anforderungen folgt eine Analyse der Interviews und der verfügbaren Daten. Dann kann das Lastenheft strukturiert geschrieben werden.

Aufbau eines Lastenhefts

Die Gliederung ist nicht fest vorgegeben. Von dem Beispiel kann abgewichen werden.

  • Einführung und Beschreibung des Ist-Zustands
  • Beschreibung des Soll-Entwurfs und der Schnittstellen
  • Zusammenfassung der Anforderungen und der Spezifikation
  • Risikobewertung
  • Aufzeigen der Architektur, Entwicklungsmethoden und Projektphasen
  • Umfang der Lieferung und gegebenenfalls Lieferzeitpunkt
  • Kriterien für die Abnahme
  • Vereinbarung für Wartung, Support und Pflege

Auf Basis des Lastenhefts erstellen mögliche Auftragnehmer ein Pflichtenheft, das ich noch ein einem weiteren Artikel beschreibe.

Web Entwicklungsumgebung XAMPP installieren

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.

Web Entwicklungsumgebung XAMPP installieren from Karl Högerl on Vimeo.

Fazit

XAMPP ist eine häufig genutzte Entwicklungsumgebung mit viel Potential. Es gibt Unterstützung von HTML, CSS, PHP, MySQL DB, JSP und dem Tomcat Server.