Samstag, 6. Januar 2018

Was tun bei "read from master failed : Input/output error" (Netbeans)

Getestet mit Netbeans 8.0.1

Programmieranfänger, die Netbeans zum Erlernen der C/C++ Programmierung nutzen stehen anfangs vor dem Problem, dass ein sorgsam aus einem Buch abgetippter Code einfach nicht laufen will. Mit Cygwin gehts, Netbeans weigert sich.

Lösung:

Der häufig verwendete Quellcode weist für einige moderne Compiler Probleme auf:
Wichtige Headerdateien fehlen, so kennt der Compiler zum Beispiel die Funktion printf noch nicht.
Setze also an den Beginn des Quellcodes die folgende beiden Zeilen:

#include <stdio.h>
#include <stdlib.h>




In unserem Fall wäre <stdlib.h> nicht zwingend erforderlich, ich habe es mir jedoch angewöhnt diese beiden Bibliotheken in mein "Standard-Dateigerüst" aufzunehmen.

Drücken wir nun nacheinander  F11 ("Build Project") und F6 ("Run Project"), erhalten wir folgende Fehlermeldung

Hallo Welt 
read from master failed
                       : Input/output error

RUN FAILED (exit value 1, total time: 324ms)

Offensichtlich hat die Ausgabe funktioniert, aber Netbeans passt irgendetwas noch nicht. Es handelt sich hierbei um den Bug 25217. Ein Workaround ist das Ändern der Konfugration der Entwicklungsumgebung:
  1. Klicke mit rechts auf den Projektnamen
  2. Wähle den Menüpunkt "Properties"
  3. In den "Categories" wähle "Run"
  4. Ändere den "Console Typ" von "Internal Type" zu "Standard Output"
  5. Schließe den Dialog mit OK

Ein erneuter Test mit  dem Aufruf von Build und Run zeigt die Ausgabe mit dem Hinweis "RUN FAILED (exit value 10, total time: 52ms)" .

Lösung: Wir lassen die Funktion etwas zurückliefern, und zwar 0. Dazu ändern wir unseren Quellcode nochmals:


Ergebnis: "RUN SUCCESSFUL (total time: 51ms)"

Das war's  auch schon ;)

Literaturtipp:


Donnerstag, 4. Januar 2018

C-Programmieren - Einrichten einer Arbeitsumgebung unter Windows

Programmieren besteht aus mehreren Arbeitsschritten. Weitläufig gefasst umfasst der Begriff
  • das Formulieren eines mit einem Algorithmus lösbaren Problems, 
  • das Finden und Formulieren der Lösung, 
  •  die Umsetzung in einer geeigneten Programmiersprache - und letztendlich das, was von vielen als das eigentliche Programmieren verstanden wird: 
  •  die Umsetzung in einer Programmiersprache. 
 Auch dieser Prozess besteht aus mehreren Schritten, die auch als Kreislauf gesehen werden können:
  1. Editieren, 
  2. Compilieren, 
  3. Linken, 
  4. Testen 
Nur die vier letztgenannten Schritte sollen in diesem kleiner HowTo beschrieben werden. Basisannahme ist ein durchschnittlich ausgestatteter PC/Laptop mit Windows XP, 7 oder 10 als Betriebssystem. Ziel ist es, eine sehr schlanke, schnell eingerichtete Lösung für diejenigen zur Verfügung zu stellen, die schnell und ohne sich mit Integrierten Entwicklungsumgebungen oder anderen Betriebssystem zu beschäftigen, das Programmieren mit C erlernen möchten.

Eine Arbeitsumgebung mit Cygwin einrichten

Cygwin Logo
Diese Lösung stellt eine einfache und oftmals zum Erlernen einer Programmiersprache ausreichende Möglichkeit von sehr vielen Alternativen dar (wie. z.B. parallel bootendes Linux, Linux in VirtualBox, Netbeans mit C/C++ Plugin, MS Visual Studio ....).

Der Vorteil liegt in der schnellen Installation und dem Fokus auf dem Erlernen der Programmiersprache. Es müssen nicht zusätzliche Fähigkeiten für das Betriebssystem, einem Editor oder einer IDE (Integrated Development Environment) erarbeitet werden. Und letztendlich gilt:
"a fool with a tool is still a fool".
Windows 10 ist "out of the box" nur bedingt zum Programmieren geeignet, es verfügt zwar über einen Editor (notepad.exe), es fehlen jedoch Compiler, Linker und Debugger. Diese notwendigen Tools lassen sich mittels Cygwin einfach nachrüsten.

Laden Sie zunächste von der Cygwin-Website das für Ihr System passende Installationspaket herunter: https://cygwin.com/install.html

Cygwin ist OpenSource-Software, steht damit u.a. kostenlos zur Verfügung und ist unter der LGPL lizenziert.

Weitere Informationen in kurzer Form bietet Wikipedia.

Wenn Sie zum ersten Mal Pakete installieren, installiert setup * .exe nicht jedes Paket (wovon ich auch dringend abrate - Sie erhalten jede Menge Ballast, den Sie vermutlich niemals benötigen werden). Die Cygwin-Distribution wird standardmäßig installiert, was etwa 100 MB in Anspruch nimmt.

Als Root-Installationspfad habe ich c:\cygwin64 beibehalten und als Local Package Directory C:\Cygwin Package Directory anegegben. Sie können diese Einstellungen Ihren Gegebenheiten anpassen.

Wenn Sie im Installationsschritt "Cygwin Setup - Select Packages" im Suchfeld die zu installierenden Pakete angeben (zum Beispiel gcc), können Sie die Installationsmenge gering halten.

Folgende Pakete aus der Kategorie "Devel" werden benötigt:

  • gcc (gcc-core: GNU Compiler Collection (C, OpenMP)
  • gdb (gdb: The GNU Debugger)
  • make (make:The GNU version of the 'make' utility
Auswahl des GCC-Paketes
Sind die zu installierenden Pakete ausgewählt, löst Cygwin im nächsten Installationsschritt die Abhängigkeiten selbständig auf und installiert die Pakete.

Sobald Sie Ihre gewünschte Teilmenge der Cygwin-Distribution installiert haben, speichert setup * .exe die von Ihnen ausgewählte Datei, so dass Sie Ihr System später mit neuen Paketversionen aktualisieren können. Hierzu genügt der nochmalige Aufruf der Setup-Datei.

Der Aufruf des Terminals kann über "Start - Alle Programme - Cygwin - Cygwin64 Terminal" erfolgen (Windows 7).

Im Terminal steht Ihnen als Editor mindestens der vi zur Verfügung, die Arbeit mit ihm ist gewöhnungsbedürftig, ich mag ihn (mittlerweile....) Eine kurze Anleitung finden Sie hier.

Da unser Fokus jedoch auf Programmieren in C liegt machen wir es uns einfach und erzeugen im home-Verzeichnis eine erste C-Quellcodedatei ("HalloWelt.c").

Öffnen Sie dazu den Editor Ihrer Wahl (Empfehlung: notepad++), geben den folgenden kurzen Quelltext ein und speichern diese Datei als HalloWelt.c im home-Verzeichnis (in meinem Fall C:\cygwin64\home\hoernke.


Somit ist der Schritt "Editieren" erledigt, folgt das Kompilieren und Linken. Dazu geben Sie im Cygwin-Terminal ein: gcc Ha und drücken die Tabulatortatse, die Eingabe wird vervollständigt zu gcc Hallowelt.c. Darauf lassen Sie ein Leerzeichen folgen und geben '-o' (für Output) und 'Hallowelt' ein und drücken die Return-Taste.

Folgt keine Meldung, ist alles fehlerfrei verlaufen und wir können zum Testen kommen. Andernfalls zurück zum Editieren.

Der in diesem Fall sehr einfache Test geschieht durch Aufruf der erstellten Programmdatei (HalloWelt.exe), geben Sie bitte ein: ./HalloWelt. Es sollte u.a. Ausgabe erfolgen.


Eine detaillierte Erläuterung der Schritte und Programmzeilen erfolgt zum späteren Zeitpunkt, zunächst sollte uns dies als motivierender Erfolg genügen.

Freitag, 1. Dezember 2017

Welcome to the Darkness!

Youtube im Dark Mode

Bereits seit Frühjahr 2017 verfügt Youtube über eine Möglichkeit im so genannten "Dark Mode zu starten. Leider ist diese Funktion etwas versteckt und muss zunächst aktiviert werden.

Statt im gewohnten Weiß-Rot-Design erscheint Youtube nach Aktivierung des Nachtmodus in einem dunklen Design. Dazu werden alle hellen Oberflächen auf der Youtube-Seite dunkel eingefärbt.

Das soll, so Google, das "Nutzererlebnis insbesondere nachts" verbessern.

Mir gefällt es sehr gut, es ist IMHO ein wesentlich angenehmeres "Nutzererlebnis".



Was müsst ihr tun, um diese Option zu erhalten?

1. Starte Firefox oder Chrome und rufe Youtube.com auf.

2. Starte nun die die Entwickler-Konsole über Strg + Shift + I

3. Wechsele innerhalb der Entwickler-Konsole in den Tab "Console" (Chrome) bzw. "Konsole" (Firefox)

4. Kopiere das folgende Code-Snippet und gib es in die Kommandozeile ein:
var cookieDate = new Date(); cookieDate.setFullYear(cookieDate.getFullYear( ) + 1); document.cookie="VISITOR_INFO1_LIVE=fPQ4jCL6EiE; expires=" + cookieDate.toGMTString( ) + "; path=/";

Erläuterung: Die Befehlszeilen aktivieren den Nachtmodus auf Youtube und setzen ein für ein Jahr gültiges Cookie. Dadurch steht der Nachtmodus im gleichen Browser ein Jahr zur Verfügung.

5. Lade mit Strg - R die Seite neu

6. Klicke oben rechts auf das Icon mit Deinem Profilbild. Es klappt nun ein Drop-Down-Menü herunter. In diesem Menü kann nun über den Schalter bei "Nachtmodus" der selbige aktiviert bzw. auch wieder deaktiviert werden.

Als Zugabe befinden sich in diesem Drop-Down-Menü auch einige weitere neuen Optionen, die bisher nur über die Youtube-Einstellungen erreichbar waren.


Und hier ist nun natürlich auch das passende Video - Blutengel - Black (Official Video Clip)



 Quelle: youTube now has a dark mode built-in i.redd.it