StartseiteSoftwareentwicklung

Softwareentwicklung

Webbrowser automatisieren: Web Scraper mit Python + Selenium auf dem Raspberry Pi für Anfänger

Was ist „Web Scraping“? „Scraping“ heißt kratzen oder abschürfen. Beim Web Scraping ließt man bestimmte Dateien einer Internetseite automatisiert aus, um sie weiterverwenden zu können. Beispielsweise um sie irgendwo anzuzeigen oder Analysen durchzuführen. Das wohl bekannteste Beispiel sind Bots von Google und anderen Suchmaschinen: Sie durchsuchen Internetseiten und speichern Informationen in ihrer Datenbank, um sie für die Suchergebnisse zu nutzen. ...

Weiterlesen »

Was ist eine Python virtualenv/venv und wozu braucht man sie? Virtuelle Python Umgebung für Einsteiger

Wer damit anfängt mit der beliebten Sprache Python zu programmieren, wird früher oder später bei der Paketverwaltung Pip landen. Als Entwickler kann man seinen Code über Pip anderen anbieten, die ihn mit einem Befehl installieren und in ihren eigenen Programmen nutzen können. Dank der Arbeit anderer kann man dadurch Funktionen einfacher und schneller einbauen. Man findet dort hunderttausende Pakete, von ...

Weiterlesen »

Mit PHP zu einer MySQL-Datenbank verbinden für Anfänger erklärt

In einem vorherigen Beitrag habe ich gezeigt, wie man Apache mit PHP und MySQL auf dem Raspberry Pi installiert. Heute möchte ich auf den Einstieg in die Webentwicklung mit PHP eingehen: Wir verbinden uns auf die Datenbank, die wir zuvor angelegt haben. Setzen eines Passwortes Die Standard-Installation von MariaDB erlaubt den Zugriff ohne Passwort über den Linux-Nutzer root. Damit verbinden ...

Weiterlesen »

HTTP-Anfragen mit curl in C++ senden inklusive Installation der Library

C++ bietet keine eingebaute Bibliothek für HTTP-Anfragen, wie C# mit der WebClient bzw. HttpWebRequest Klasse. Statt das Protokoll selbst mit Sockets zu implementieren, stehen jedoch andere Bibliotheken zur Verfügung. Eine der verbreitetsten ist curl, bekannt durch das gleichnamige Kommandozeilenwerkzeug. Es wird jedoch auch eine C-Bibliothek angeboten. Zunächst müssen wir diese installieren, unter Debian/Ubuntu via apt-get Paketverwaltung: sudo apt-get install libcurl4-openssl-dev ...

Weiterlesen »

ASP.NET Core SignalR hinter Nginx: Fix für „Requests with Connection: Upgrade cannot have content in the request body“

ASP.NET Core bringt mit Kestrel einen minimalistischen Webserver mit. Dieser setzt den Fokus darauf, dynamische mit ASP.NET Core generierte Seiten möglichst effizient auszuliefern. Ganz anders sah es mit dem alten ASP.NET aus: Hier musste der sehr umfängliche IIS eingesetzt werden. Dies hatte Vor- und Nachteile. Der IIS war zwar recht komplex, konnte dafür aber mit einem vollumfänglichen Webserver wie dem ...

Weiterlesen »

Absolute Pfade in Batch und Bash-Skripten zum Aufruf aus anderen Ordnern heraus verwenden: Pfad des Skriptes statt Aufrufers ermitteln

Wenn man Skripte über den absoluten Pfad aufruft, müssen alle Aufrufe innerhalb des Skriptes ebenfalls absolut sein. Ansonsten funktioniert der Aufruf nur, sofern man zunächst in das Skriptverzeichnis wechselt und das Skript von dort ausführt. Je nach Anwendungszweck kann das passabel sein. Doch besser ist es, diesen Anwendungsfall direkt zu bedenken. Hierfür benötigt man nur den Pfad des Skriptes, der ...

Weiterlesen »

PHP-Erweiterung php-ssh2 unter Docker installieren

Die PHP-Erweiterung php_ssh2 ermöglicht den Aufbau von SSH-Verbindungen aus PHP heraus. Sie kommt beispielsweise bei der ssh-key-authority zum Einsatz – ein Open Source Projekt von Opera, um SSH-Keys automatisiert auf Server zu verteilen. Leider wird die Bibliothek nur spärlich aktualisiert, wenngleich sie noch funktioniert. Allerdings gestaltet sich die Installation dadurch als etwas schwierig. In meinem Anwendungsfall möchte ich ein Docker-Image ...

Weiterlesen »

Visual Studio hinter Proxy: Automatische Windows/Internet Explorer Proxyeinstellungen verwenden

Die Entwicklungsumgebung Visual Studio benötigt für verschiedene Zwecke Internetzugriff: Beispielsweise für den Paketmanager NuGet. Über ihn lassen sich Bibliotheken beziehen und verteilen. Aber für Aktualisierungen ist dies nötig, damit Visual Studio nach Updates suchen und diese herunterladen kann. Befindet man sich in einem Unternehmensnetzwerk mit Proxyserver, stellt das ein Problem dar. Ohne zusätzliche Konfiguration fragt Visual Studio beim ersten Start ...

Weiterlesen »

Git: Nicht vorgemerkte Änderungen in neuen Branch verlagern

Branches sind eine sehr praktische Funktionalität des Versionsverwaltungssystems Git: Man kann parallel an verschiedenen Funktionen arbeiten, die sich während der Entwicklung nicht beeinflussen. Dennoch lassen sich diese später zusammenführen. Stellen wir uns folgendes Szenario vor: Man entwickelt regulär an einem Projekt, beispielsweise im Entwicklungszweig. Es wurden bereits mehrere Dateien geändert. Nun soll ein Hotfix erstellt und veröffentlicht werden. Möchte man ...

Weiterlesen »

Zeitstempel in (ASP) .NET Core Anwendungen auf der Konsole anzeigen

Die ILogger Schnittstelle ermöglicht das einfache Injizieren eines Loggers in jegliche Klasse. Durch das Protokollieren des Namespace ist stets klar, von welcher Komponente die Informationen stammen. In der appsettings.json können wir für jeden Namespace den Detailgrad einstellen. Dies geht bis hin zu Debug- und Tracelogs, die uns z.B. beim EntityFramework die SQL-Abfragen protokollieren. Das standardmäßig verfügbare Logging-Komponente ist also recht ...

Weiterlesen »