Seite wählen

NETWAYS Blog

Python lernen?

Hier möchte ich meine Erfahrung teilen, wie ich in die Sprache Python eingestiegen bin.

 

Am Anfang der Ausbildung bin ich in PHP eingestiegen und fand die Sprache sehr angenehm.

Dazu gehören natürlich auch die Auszeichnungs-, Definitionsprachen HTML & CSS.

Doch mit der Zeit wurde PHP für mich als Programmier-Neuling immer komplexer.

Im Hinterkopf behielt ich Python, weil ich immer wieder von Programmierern hörte wie einfach diese Sprache sei

und diese auch von ihnen empfohlen wurde.

Zudem soll sie einer der beliebtesten und sehr gut für Beginner sein.

Also was spricht dagegen sie zu lernen?          Richtig. Gar nichts.

Aber wie lernt man eine Programmiersprache? 

Durch Blogs? Durch Videokurse?  Durch Bücher?

Der eine findet Videokurse gut, der andere Blogs und reinen Text. Das ist ganz ok.

Solange man Fortschritte macht, macht man nichts falsch.

Ehrlich gesagt muss man für sich selber herausfinden wie man am besten lernen kann.

Vielleicht mal alle Lernangebote durchstöbern und dann entscheiden was passt.

Ich persönlich habe Bücher sehr in mein Herz eingeschlossen. Ein Grund:

Das Buch liegt direkt vor einem. Videokurse sind etwas umständlicher.

Also habe ich mir ein Buch geholt. Sogar ein sehr gutes von O’REILLY.

Es ist echt wichtig das in einem Buch alles ausführlich erklärt wird. In dem Fall tut es das Buch.

Und wie komme ich mit der Sprache zurecht?

Anders als bei der anderen Sprachen gibt es eine kleine Umstellung.

Und zwar sind die Einrückungen (die Suiten) sehr wichtig. Da wird gleich die Syntax mit geübt.

Daran muss man sich erst gewöhnen. Sonst komme ich zurzeit gut zurecht.

So möchte ich mir mit Python ein weiteres Fundament aufbauen.

Ich kann Python nur weiter empfehlen!

NFC-Leser mit einem Raspberry Pi

In meinem letzten Blogpost habe ich schon etwas über NFC und RFID geschrieben. In diesem Blog erstellen wir einen Leser, mit dem man beispielsweise auch NFC-fähige Karten oder Chips auslesen kann.

Was brauchen wir?

  1. Einen Raspberry Pi
  2. Female-Female Jumperkabel
  3. RFID-Reader MFRC522 Modul

Hier benutze ich das zurzeit das aktuellste Modell des Raspberrys, den 3 B+.

Natürlich sind auch ältere Pi Modelle für dieses Projekt ausreichend.

Die Jumperkabel sowie das Modul können sehr leicht und kostengünstig auf Plattformen wie Amazon oder Ebay gefunden werden.

Verkabelung

Als Erstes nehmen wir uns sieben Jumperkabel her. Am besten verschiedenfarbige Kabel, zur besseren Übersicht.

3,3 V -> Pin 1,    RST -> Pin 22,

GND -> Pin 6,    IRQ -> bleibt frei,

MISO -> Pin 21,    MOSI -> 19,

SCK -> 23,    SDA -> Pin 24

Software

 

Wenn die Verkabelung abgeschlossen ist, können wir mit der Software beginnen.

Zunächst muss das SPI Interface aktiviert werden. Das kann unter „Einstellungen“ -> „Raspberry-Pi-Konfiguration“ ->

„Schnittstellen“ gemacht werden.

Nach einem Neustart kann per Befehl überprüft werden, ob SPI aktiviert ist.

Konsolenbefehl: lsmod | grep spi

Es sollte so eine ähnliche Ausgabe kommen:

Den Code findet ihr hier: SPI Py als Zip Datei, der Ordner kann heruntergeladen und entpackt werden.

Nun wechselt ihr in das  /SPI-Py/MFRC522-python Verzeichnis und führt dort die Read.py Datei aus.

Dies kann man mit dem Befehl  python Read.py  machen.

Zum Schluss den Chip auf den Reader legen.

Wenn alles richtig ist, solltet ihr diese oder ähnliche Ausgabe bekommen:

 

 

RFID & NFC

Die Namen RFID und NFC sind uns bestimmt irgendwo schon mal begegnet, aber viele wissen gar nicht was das ist oder was diese zwei „Dinge“ machen.
RFID steht für „radio frequency identification“ und ist eine Technologie (Sender-Empfänger) mit der man Daten kontaktlos speichern, lesen und verändern kann.
NFC steht für „Near Field Communication“, basiert auf RFID und ist auch eine Art mit der man Daten über wenige Zentimeter austauschen kann. Merke: NFC ist eine spezielle RFID Technik.
Einsatz
Immer mehr Banken statten die Kredit- und Debitkarten mit NFC-Chips aus, damit die Kunden an den Kassenterminals der Märkte kontaktlos zahlen können. Zu erkennen ist es am WLAN-ähnlichem Symbol.

Natürlich gibt es diese Technologie auch woanders, zum Beispiel bei Zutrittskontrollen oder für die Zeiterfassung. Auch zwei NFC-fähige Smartphones können untereinander Musik, Bilder, Videos usw. austauschen. Im Teil „Projekte“ dieses Blogpost werde ich ein paar Projekte ansprechen, die man auch zu Hause nachmachen kann.
Aber wie funktioniert das Ganze?
RFID arbeitet in drei verschiedenen Frequenzen: 125 kHz – 135 kHz, 13,56 MHz und 860 MHz – 960 MHz. Beim Hinhalten des Transponder erzeugt das Lesegerät ein elektromagnetisches Wechselfeld. Das dient während der Kommunikation als Stromquelle für den Chip. NFC arbeitet dagegen mit einer Frequenz von 13,56 MHz. Haben beide NFC-Chips, so muss man diese einfach nah aneinanderhalten und die Kommunikation kann beginnen.
Vorteile
RFID: mehrere Meter Reichweite. NFC: schnelles, bequemes Bezahlen an Kassen.
Nachteile
RFID: über größere Distanzen auslesbar (je nach Frequenz). NFC: nicht an jeder Kasse verfügbar.
Schutz
Wer denkt, dass diese Technologie sicher ist, der denkt falsch. Denn es gibt viele Angriffsmethoden. Beim „Sniffing“ werden während der Übertragung die Daten mit einem Lesegerät ausgelesen. So können Kriminelle auch neuere Autoschlüssel kopieren und ins Auto einsteigen. Sie können sich auch zwischen Sender und Empfänger reinhängen, die zu übertragenden Daten ändern und dem Empfänger weiterschicken. Dagegen hilft ein Schreibschutz. Wer aber eine Bankkarte besitzt, die eine NFC-Funktion hat, der kann sich eine spezielle Hülle oder einen speziellen Geldbeutel kaufen (z. B. auf ebay: RFID-, NFC-Blocker). Wer aber keine Lust hat Geld auszugeben, kann die Karte auch mit Alufolie einwickeln. 🙂  Was wir also wissen ist, dass noch viel in der Sicherheit verbessert werden muss.
Projekte
Im Internet gibt es zahlreiche Projekte, unteranderem mit einem Raspberry Pi in Verbindung mit einem RFID-Reader. Man könnte für Zuhause mit Hilfe einer App einen NFC-Tag (oder auch Transponder genannt) so programmieren, sodass er beim Hinhalten an das Handys eine WLAN-Verbindung für das Gerät herstellt. Auch sehr beliebt ist ein Schließmechanismus für eine Box, der nur aufgeht, wenn man seinen Transponder dabei hat.

DRBD 9 – NEW Features

drbd_logo_smallDRBD 9 wird eigentlich ja mit zwei neuen Features assoziiert – mehr als zwei Knoten in einer Ebene (ohne Stacking), und „auto-promote“ („Primary“-Rolle beim Öffnen, wenn sonst kein Knoten darauf arbeitet). Diese Kombination eröffnet nun eine große Menge an neuen Anwendungsgebieten – die so vorneweg einmal gar nicht so offensichtlich sind.
Beispiel 1: Rebalancing
Wenn man einen bestehenden Storage-Cluster mit z.B. 3 Knoten hat, diese alle Daten 3-fach halten, und der Platz eng wird, kann man 3 neue Maschinen anschaffen. Oder: es wird nur ein Knoten hinzugefügt; bei bestehenden DRBD-Resourcen wird die Redundanz kurzfristig erhöht, um die Daten auf dem neuen Knoten ebenfalls zu erhalten, dann kann die Datenhaltung wieder auf 3-fach reduziert werden – mit dem Ergebnis, dass auf den „alten“ Knoten Platz freigeworden ist, in dem man neue DRBD-Resourcen anlegen kann.
Also anstatt von N auf 2*N aufrüsten zu müssen, reicht einmal N+1. Und wenn im Zuge mehrerer Upgrades dann doch einmal 2*N Knoten herumstehen, können die Resourcen (falls notwendig) im Betrieb so verschoben werden, dass sich zwei unabhängige Cluster mit jeweils N Knoten ergeben – und das Upgrade-Spiel kann von neuem beginnen.
Beispiel 2: DRBD Client
Bei DRBD 8 war ja der Ausfall des Storage am Primary-Knoten schon ein erlaubter Zustand – alle IO-Operationen wurden dann eben nur noch über den Secondary durchgeführt. Diese Funktion kann mit DRBD 9 nun per Design verwendet werden: ein Rechner, der auf DRBD-Resourcen zugreift, ohne selber lokales Storage dafür zu verwenden, ist ein DRBD Client.
Die Palette an Anwendungen dafür ist enorm:

  • Ein Cluster kann einfach um weitere Knoten erweitert werden, ohne notwendigerweise die Redundanz (und damit den Platzverbrauch) zu erhöhen. Alle Maschinen können auf dieselben Daten zugreifen, unabhängig davon, ob die Daten lokal liegen oder „nur“ über andere Knoten zur Verfügung gestellt werden.
  • Ein paar Storage-Knoten im Hintergrund, die Frontend-Maschinen die Daten für VMs liefern. Die Vorteile dabei sind: auf den Storage-Knoten ist nur DRBD notwendig, kein Cluster-Manager, kein iSCSI, etc.; und, durch das seit 8.4.1 verfügbare read-balancing kann die IO-Last auf den Storages einfach aufgeteilt werden.
  • Für Zwecke der Konfigurationsverwaltung kann es sinnvoll sein, das komplette /etc in einem VCS aufzubewahren [siehe z.B. etckeeper, fsvs, git-home-history, etc.]. Wenn das Repository dabei über Automounter über alle Rechner des Clusters „geteilt“ werden kann, ist Integration/Nachverfolgen/Fehlersuche wesentlich komfortabler.

Weitere Ideen? Bitte diese bei LINBIT bspw. im Kontaktformular einbringen, damit wir diese in unserer zukünftigen „DRBD 9 Features“-Reihe anfügen können.
Wer mehr zur DRBD erfahren möchte, dem sei der DRBD-Workshop im Rahmen der kommenden OSDC ans Herz gelegt.