Möglich

Wenn du dir einen echo-Server in Java schreibst, kannst du ein Anpingen natürlich auch als Event behandeln.

Ansonsten könntest du eine entsprechende Logdatei auf Änderungen überwachen, aber diese Lösung halte ich für Pfusch.

Dann könntest du noch den Netzverkehr sniffen und bestimmte Pakete an dein Java-Programm weiter leiten. Aber das wäre schon im Hinblick auf Security ein Unding.

Naja, gibt noch unzählige weitere Herangehensweisen, auch wenn viele davon unschön sind.

...zur Antwort
Raspberry Pi

Die Raspis sind hardwaretechnisch eigentlich schon total veraltet, wenn sie raus kommen.

Aaaaaber, der Softwaresupport ist unvergleichbar gut, und gerade für Anfänger sind die deshalb sehr geeignet.

Ein Raspian auf eine SD-Karte zu schubsen ist nun mal einfacher, als eine Cross-Compiler-Build-Chain aufzusetzen, und ein ganzes System - vom Kernel über Module - zu bauen.

Also nimm als Einsteiger auf jeden Fall einen Raspi, und wenn du irgendwann wirklich Erfahrung damit hast, kannst du auch mal links und rechts vom Wegrand gucken, ob du etwas interessantes findest.

Viel Spaß! :)

...zur Antwort

Ja, gab es, mit dem Excelsior JET, der inzwischen aber leider leider eingestellt wurde.

Es ist aber immer noch möglich, wird aber sehr hässlich werden, und wird dich heillosüberfordern, falls du nicht gerade aus der Systemprogrammierung kommst ... und wenn das so wäre, müsstest du hier nicht nachfragen.

Also ja, es ist möglich, aber nicht leicht, und alles andere als hübsch! ;)

PS: Vor vielen Jahren hat die Steuersoftware ELSTER vom Finanzamt es genau so gemacht! Das war unfassbar grauenvoll ... Qt, .net und Java in EINER riesen großen fetten Applikation mit einem undurchdringlichen Dschungel aus DLL-Dateien!

Wie gesagt, ja es geht, aber will man das denn auch? ;)

...zur Antwort

Die absolute Zahl an Genesenen zu betrachten, ohne sie in Relation zur Zahl der Infizierten zu setzen, erlaubt absolut keine sinnvolle Aussage.

Bei einem Kopfschuss beträgt die Überlebenswahrscheinlichkeit ca. 7% ... wenn man jetzt so argumentiert, dass es Tausende von Menschen gibt, die einen Kopfschuss überlebt haben, und er deshalb ja offensich recht harmlos ist, dann führt das genauso auf die falsche Fährte.

Von daher: Ohne Zahlen in Relationen zu setzen, kann man unter keinen Umständen eine auch nur halbwegs sinnvolle Aussage treffen!

...zur Antwort

Dir wurde gestern mehrfach (!) erklärt, dass Neugeborene, Ältere oder kranke Menschen sich nicht impfen lassen KÖNNEN und auf eine Durchimpfung ihrer Umgebung angewiesen sind. (also quasi der sog. Herdenschutz)

Desweiteren wurdest du ebenfalls mehrfach (!) darauf hingewiesen, dass Impfbeführworter nicht behaupten, dass eine Impfung bei ihnen selbst erst wirkt, wenn die Umgebung auch durch geiimpft ist, sondern dass es sich hierbei um eine Behauptung von Impfgegnern handelt.

In der Tat gibt es zu dem Thema hier auf GF in der letzten Zeit ca. 5 bis 10 Fragen pro Tag, und unter jeder dieser Fragen wird der obige Zusammenhang den Impfgegnern je-des-mal aufs Neue haarklein erklärt.

Du stellst dich jetzt hier hin, und tust so, als hättest du noch nie etwas davon gehört (obwohl man an deinen Antworten und in den Kommentaren leicht sehen kann, dass es dir hier STÄNDIG erklärt wird).

Fazit: Du stellst dich absichtlich dumm und veröffentlichst hier so eine Suggestivfrage um zu provozieren.

Es geht dir also nicht um Erkenntnisgewinn, sondern du willst ganz offensichtlich nur stänkern.

Mit anderen Worten: Du verbreitest hier (wiederholt) Lügen, obwohl du nachweislich die Wahrheit kennst.

Und weißt du, was jetzt passieren wird? Du wirst schon heute abend wieder unter irgendwelche Kommentare schreiben: "Aber warum glauben Impfbeführworter denn, dass die Impfung nur wirkt, wenn alle anderen auch geimpft sind?".

Und das wirst du morgen, übermorgen, überübermorgen, ... auch wieder tun und natürlich "noch nie etwas" von meiner obigen Erklärung gehört haben, die dir übrigens von zich anderen Leuten schon genau so unter die Nase gerieben wurde.

Es geht dir also ...

  • nicht um Erkenntnisgewinn
  • um Provokation
  • darum Lügen zu verbreiten

Und da GENAU solche Impfgegner WIE DU mit ihrem Verhalten und ihren Unwahrheiten die Allgemeinheit (also Kleinkinder, ältere und kranke Menschen) gefährden, ist euer Verhalten höchst asozial.

Für bestimmte Krankheiten braucht es einen Herdenschutz von ca. 85%. Deutschland hat ca. 3% Impfgegner und momentan einen Herdenschutz bei Masern von ca. 83%.

Das heißt, dass genau der Teil der Impfgegner ganz aktiv dafür verantwortlich ist, wenn ein Herdenschutz nicht ausreichend funktioniert.

Der Rest verteilt sich ca. 50:50 auf Menschen, die nicht geimpft werden können (also Kinder, Ältere, Kranke) und Leute, die es verschlafen haben, bzw. zu faul waren oder sich nicht drum gekümmert haben.

Also ... jetzt weißt du, warum Impfgegner eine Gefahr für die Gesellschaft sind.

Aber da du hier täglich zeigst, dass dein Kurzzeitgedächtnis nur wenige Minuten hält, wirst du garantiert schon heute Abend einen unschuldigen Dackelblick aufsetzen, und naive Suggestivfragen zum Dingen Äußern, die Impfbeführworter so nicht behaupten.

Ernsthaft, schäm dich! Dass du keine Argumente hast, merkst du ja selbst ... da brauchst du dich also nicht selbst betrügen.

Aber dass du so Dickköpfig und borniert bist, dass du das Risiko von schweren Erkrankungen, Behinderungen und sogar dem Tod Dritter in Kauf nimmst, nur um deine Weltanschauung durchzudrücken, und dich als Opfer darzustellen, schießt echt den Vogel ab.

Wie gesagt, schäm dich!

...zur Antwort

Nein, C und C++ sollten als völlig unterschiedliche Programmiersprachen angesehen werden, auch wenn selbst Fortgeschrittene oft den Fehler machen, diesen beiden Sprache eine viel zu große Nähe nachzusagen.

Diese Aussage stammt sinngemäß von Bjarne Stroustrupp, dem Erfinder von C++, und er hat völlig Recht.

Genau genommen haben C und C++ nur wenige Teile der Syntax gemeinsam. Was du übersiehst, ist die Art und Weise, wie ein Programm entworfen wird. Diese Paradigmen oder Konzepte sind wichtiger als die Syntax und wer sie nicht kennt und beherrscht, der wird nicht vernünftig programmieren können.

Du wirst kaum einen Quelltext finden in dem selbst wenige Zeilen in der C-Version genau so aussehen, wie in der C++-Version, weil diese Sprachen, und die Programmierung darin, VÖLLIG unterschiedlich ist!

Nehmen wir mal an, wir wollen ein etwas an den Haaren herbeigezogenes Programm schreiben, welches einen String aus einem statischen Speicher in einen dynamischen kopiert, den Text ausgibt, danach den Speicher aufräumt, und wenn alles geklappt hat, einen "Erfolg" zurück gibt.

In C wäre das ungefähr so etwas:

#include <stdio.h> // puts
#include <stdlib.h> // calloc, EXIT_FAILURE, EXIT_SUCCESS
#include <string.h> // strlen

int main() {
    static const char * const foobar = "foobar";
    
    int result = EXIT_FAILURE;

    char * const copy = calloc(strlen(foobar) + 1, sizeof(*foobar));

    if (copy) {
        if (puts(strcpy(copy, foobar)) >= 0) {
            result = EXIT_SUCCESS;
        }

        free(copy);
    }

    return result;
}

In C++ hingegen würde die gleiche Funktionalität ungefähr so aussehen:

#include <iostream> // cout, endl
#include <string> // string

#include <cstdlib> // EXIT_FAILURE, EXIT_SUCCESS

int main() try {
    using namespace ::std;
    cout.exceptions(ostream::failbit);

    constexpr auto foobar { "foobar" };
    const string copy { foobar };
    
    cout << copy << endl;

    return EXIT_SUCCESS;
} catch (...) {
    return EXIT_FAILURE;
}

Natürlich gibt es noch etwas andere herangehensweisen, und man könnte in C auch strdup() nutzen, was aber nicht portabel ist, und ich will in den Beispielen bei Standard-C und Standard-C++ bleiben.

So, und nun frage dich mal selbst: Sehen die Beispiele gleich aus? Sehen die sich wenigstens ähnlich?

Ich würde beide Fragen mit Nein beantworten, obwohl es zwar in beiden Klammern, Präprozessoranweisungen und einige gemeinsame Literale gibt, so ist die herangehensweise doch komplett unterschiedlich!

C hat eine recht hohe zyklomatische Komplexität, C++ hingegen kaum. Und das ist auch bei den meisten "richtigen Programmen" so, wenn man a) auf sauberes Programmieren mit Fehlerprüfungen achtet und b) in der Art bzw. mit den Konzepten programmiert, welche die Programmiersprache vorsieht.

Fazit: Es wird nicht nur "behauptet", dass C und C++ unterschiedlich sind, das ist schlicht und ergreifend ein Fakt! Und nur weil du C-Code größtenteils mit einem C++-Compiler übersetzen kannst, und beide Sprachen einige Überschneidungen haben, ändert das nichts daran.

Man kann auch Java-Code teilweise mit einem C++-Compiler übersetzen! Und Java hat sogar mehr Gemeinsamkeiten mit C++, als C++ mit C, aber niemand würde ernsthaft behaupen, dass diese Sprachen (fast) gleich sind.

Gut, Anfänger denken das oft, weil sie noch keinen Überblick haben, und auch Fortgeschrittene, die oft zu faul sind, sich weiter zu bilden, und auf einem sehr niedrigen Sprachlevel dahindümpeln, denken das ... stimmt aber überhaupt gar nicht.

Wie gesagt, du wirst kaum einen Code finden, den man Eins zu Eins von C in C++ übernehmen würde, ohne ihn massiv anzupassen und zu verändern.

Einfach weil C und C++ ganz unterschiedliche Programmiersprachen sind. Punkt. :)

Und um noch auf ein paar Dinge einzugehen, die du missverstanden hast:

C++ ist nicht nur eine Erweiterung von C und C-Code kann man NICHT immer auch mit einem C++-Compiler übersetzen!

Das obige C-Beispiel wird eine Compilerwarnung auslösen, wenn es mit einem C++-Compiler übsetzt wird, weil das Ergebnis von calloc() nicht gecastet wurde.

Ein großer und wichtiger Unterschied zwischen C und C++ ist nämlich das implizite Casting von void-Zeigern! Und es gibt noch VIEL mehr Unterschiede! Kannst dir ja mal sizeof('a') mit einem C-Compiler und mit einem C++-Compiler ausgeben lassen!

Und C hat z. B. einen eigenen Namensraum für Strukturen und Enums ... bei C++ liegt das alles im globalen Namensraum. Das mag unwichtig erscheinen, wird aber richtig wichtig, wenn du eine kompatible Bibliothek schreiben willst.

C und C++ haben unfassbar viele Unterschiede und C ist sehr oft ganz und gar nicht aufwärtskompatibel zu C++.

Außerdem kann man bei C++ Code sowohl vor als auch nach der main() Methode ausführen. Bei C ist das nur sehr sehr eingeschränkt möglich, wenn überhaupt.

Und C++ kann zur Kompilierzeit interpretiert werden! Das heißt, wo du bei C oft kryptische Arrays mit vorberechneten Konstanten hast, werden diese bei C++ zur Kompilierzeit einmalig berechnet, und können ganz nebenbei - ebenfalls zur kompilierzeit - auf Korrektheit überprüft werden! Das ist mit C leider völlig unmöglich.

Naja, lange Rede, kurzer Sinn: C und C++ haben DEUTLICH mehr Unterschiede als Gemeinsamkeiten. Genau genommen muss man die Gemeinsamkeiten schon mit der Lupe suchen, wenn man das Gesamtbild betrachtet.

Viel Spaß noch! :)

...zur Antwort

Schon wieder? Zum Glück wird das hier nicht jeden Tag mindestens 10 mal ausdiskutiert ...

Wobei jedes mal aufs Neue rauskommt, dass Impfgegner mit ihrem Verhalten die Allgemeinheit gefährden, was sie aber nicht einsehen wollen, obwohl sie keine Gegenargumente haben, und dann drehen sich alle Diskussionen im Kreis ...

Mangels Logikverständnis, fehlenden grundlegendsten Rechenkenntnissen, massiven Lücken in Bio / Chemie / Physik bis zur 7ten Klasse uvm. lohnt es auch gar nicht, mit Impfgegnern zu reden ... Denen fehlen einfach viel zu viele Grundlagen der Allgemeinbildung, als dass die sinnvolle Argumente verstehen könnten.

...zur Antwort

Es dauert im Schnitt mindestens 2 bis 3 Wochen, bis Maßnahmen sich in den aktuellen Zahlen wiederspiegeln.

Deshalb stammmen alle positiven Effekte, die wir momentan beobachten noch mitten aus der Lockdownzeit.

...zur Antwort

Wenn dich das wirklich aufregt, dann kannst du dich sehr glücklich schätzen, keine wirklichen Probleme zu haben.

Farben ... Wie unglaublich belanglos ...

...zur Antwort

Das ist sehr leicht!

Guck dir einfach mal die manpages zu "tr" und zu "uniq" an.

Das ist in Kombination mit "shuf" alles, was benötigt wird.

Viel Spaß! :)

...zur Antwort

Wenn du unbedingt programmieren willst, hier noch eine kurze Python-Lösung:

with open('sortcsv.py') as fin:
  with open('out.csv', 'w') as fout:
    for line in sorted(fin.readlines()):
      fout.write(line)

Aber wie andere schon geschrieben haben, das macht auch jede Tabellenkalkulation (GNUmeric, LibreOffice Calc, Excel, etc.) automatisch.

Naja, viel Spaß! :)

...zur Antwort

In einer beliebigen unixoiden Shell einfach ...

sort in.csv >out.csv

... eingeben.

Ich glaube, das ist selbst für Laien selbsterklärend. :)

...zur Antwort

Wenn du auf CLI mit C++ zugreifen willst, ist C++/CLI natürlich ideal.

Falls nicht, ist C++/CLI wie ein fetter Klotz am Bein!

Erwarte von C++/CLI nicht die selbe Ausführungsgeschwindigkeit und schon gar nicht den geringen Speicherverbrauch von C++.

Und die Syntax ist auch so eine Art Knickei. Vergleiche mal folgenden Code von Wikipedia ...

array<String^> ^arr = gcnew array<String^>(10);
int i = 0;

for each (String^% s in arr) {
  s = i++.ToString();
}

... mit meiner Übersetzung in "echtes C++":

array<string, 10> arr;

for (int i {}; auto & s : arr) {
      s = to_string(i++);
}

Ich denke, letztere Variante ist leichter zu lesen, da sie kürzer ist und weniger exotische C++/CLI Syntax verwendet.

Außerdem ist das letzte Beispiel deterministisch und es ist völlig klar, was wann wo genau passieren wird. Das trifft auf das erste Snippet aus der Wikipedia nicht zu. (Aber das ist genau genommen bei so einem Quark auch egal ... später aber irgendwann nicht mehr, wenns ans Eingemachte geht!)

Wenn du also wirklich keine guten Gründe zur Benutzung von CLI hast, dann bleib auf jeden Fall beim "normalen" C++, allein schon wegen der Portabilität.

Wenn du CLI aber brauchst und mit C++ arbeiten willst, dann bietet sich C++/CLI natürlich an.

Falls du aber gerade beim Lernen bist, und noch nicht wissen solltest, was zum Beispiel der Code in dieser Funktion hier tut ...

template <typename T>
Foo foo_from_bar(T && bar) {
  return { ::std::forward(bar) };
}

... dann lerne auf jeden Fall erst das "normale C++" in aller Ruhe, bevor du dich mit CLI befasst! Vermutlich wirst du am Ende sowieso die Finger vom CLI lassen.

Manchmal ist es einfach besser zu wissen, wann man C++, und wann man C# nutzen sollte, aber so ein Mischmasch wie C++/CLI wird selbst von Microsoft stiefmütterlich behandelt, und langfristig wird es wohl fallen gelassen werden.

Zumindest gerüchtet es immer wieder, dass C++/CLI wohl eingestellt werden wird. Naja, mal sehen. Sonderlich schade drum wäre es nicht, denke ich. :)

...zur Antwort