Posts by noisefloor

    Hallo,


    in einer der letzte Ausgabe der c't (ich glaube die vorletzte?) ist genau zu dem Thema ein längerer, IMHO ganz objektiv geschriebener Artikel. Mit dem Ergebnis, dass Wordpress (bzw. ein gehostetes Wordpress) die tendenziell bessere Wahl ist.


    Gruß, noisefloor

    Hallo,


    der Ansatz ist in der Tat pragmatisch.


    Nachteil: wenn der Scanner während des `sleep` das Signal sendet, verliert sich das im Nirwana. Ob das im gegebenen Fall ein wirkliches Problem ist oder ein praktisch irrelevantes muss du selber entscheiden, weil nur du deine Anforderungen genau kennst.


    Gruß, noisefloor

    Hallo,


    simonz : wohl eher nicht, weil da die komplette Kommunikation zwischen Scanner und Countdown fehlt. Außerdem kann man das ganze mit einem Workerthread für den Countdown implementieren IMHO einfacher implementieren.

    Dein Code hält sich nicht an die gängigen Konventionen für Funktion - und Variablennamen.


    Gruß, noisefloor

    Hallo,


    Code bitte im Codeblock posten, nicht als Bild. Als Bild ist das fast noch schlimmer als ohne Codeblock.


    Wie gesagt: `sleep` blockiert die weitere Ausführung des Codes. Wenn der Scanner weiterhin abgefragt werden soll brauchst du nebenläufige Programmierung, im gegebenen Fall wohl per asyncio oder Threading. Beides ist nicht unbedingt ein Einsteigerthema, Threading ist hier IMHO die einfachere Variante.


    Nochmal zum Verständnis: wenn der Scanner was scannt soll das Relais für 12 Sekunden geschaltet werden. Wenn innerhalb der 12 Sekunden ein neuer Scan kommt, dann sollen die 12 Sekunden neu los laufen?


    Gruß, noisefloor

    Hallo,


    was meinst du genau mit "Zeit neu starten"? In deinem Code ist nichts mit Zeit oder einem Zähler..


    Den Code bitte in einem Codeblock posten, den erreichst du über die </> Schaltfläche im Editor. Sonst ist der Code schwer lesebar und die bei Python wichtigen Einrückungen gehen verloren.


    Die doppelte while-Schleife in deinem Code ist in der Form auf jeden Fall quatsch, weil doppelt.

    Du schaltest das Relais z.Zt. auch ca. 12 Sekunden, nicht 10.

    `sleep()` blockiert den Code komplett, d.h. wenn innerhalb der sleep-Dauer macht dein Programm nichts, auch keine Eingaben von der Tastatur bzw. dem Scanner entgegen nehmen. Ist das so gewollt?


    Gruß, noisefloor

    Hallo,


    Quote


    HTML durcheinander bringen? Wie darf ich mir das vorstellen?

    Wenn im Dateinamen irgendwas drin wäre, was in HTML eine Bedeutung hat, im Sinne von das der HTML-Parser im Browser es interpreitert, könnte das zu einer falschen Darstellung führen. Z.B. wenn & oder < oder > im Dateinamen sind. Was je nach Betriebssystem ja gehen würde.


    Quote

    Das minimum hast du umgesetzt mit markupsafe.escape_silent()

    Richtig.


    Quote

    Das ich Jinja2 hier auch standalone nutzen hätte können, der Gedanke kam mir nicht.

    Jinja2 sieht an zwar meistens im HTML-Kontext, aber grundsätzlich kannst du damit beliebige Tempates mit beliebigem Inhalt erstellen, in Sinne von dass damit alles möglich ist, was textbasiert ist. Du könnstest damit z.B. auch Markdown oder LaTeX erstellen.


    Gruß, noisefloor

    Hallo,


    Quote

    gefunden. 6 Leerzeichen waren notwendig.

    Nein. Bzw. ja, kann sein, hängt vom dem Code davor und danach ab. Entspricht aber nicht der Empfehlungen für Python. Die liegt bei 4 Leerzeichen pro Ebene.

    "Visual Studio Code" für die Programmerstellung nutzen ... ;)

    Nützt aber auch nichts, wenn man nicht versteht, warum Python die Einrückung verlangt bzw. Teil der Sprache sind und man keinen Plan hat, wodurch ein IndentionError geworfen wird.


    Gruß, noisefloor

    Hallo,


    das macht Sinn, weil das zwei grundlegenden Datenstrukturen in Python sind. Besonders Listen laufen einem immer und überall über den Weg. Am besten mal die entsprechenden Abschnitte im Python-Tutorial auf docs.python.org durcharbeiten.


    Gruß, noisefloor

    Hallo,


    was hält dich denn davon ab, dass selber zu machen? Das passt doch genau zu deinem Code, musst du halt nur einbauen. Der Code macht genau das, was ich dir vorgeschlagen hatte, nur halt in Form einer List Comprehension. Und die neu entstandene Variable `ohne_datum` per `print()` ausgeben sollte ja auch machbar sein.


    Wenn was nicht klappt -> bitte deinen kompletten Code plus Fehlermeldung posten.


    Gruß, noisefloor

    Hallo,


    nee, du hast eine Liste von Tupeln, keine reine Liste. Tupel sind unveränderlich, d.h. du musst du Liste von Tupeln neu bauen.


    Dazu iterierst du über die Liste Namens `Ausgabe`, extrahierst aus dem Tupel per Slicing den 2. und 3. Wert (also Index 1 bis 2) und schreibst das Ergebnis in eine Datenstruktur deiner Wahl.


    Aber wenn du das Datum nicht brauchst -> dann frag' es doch erst gar nicht ab.

    Gruß, noisefloor

    Hallo,


    wenn du das Script über den Autostartmechanismus deiner Desktop Umgebung startest sollte das Netzwerk eigentlich immer zur Verfügung stehen, weil das `network-online` Target von systemd dann schon lange erreicht sein sollte. Vorher sollte IMHO gar nicht der Displaymanager der DE den Login anzeigen?


    Gruß, noisefloor

    Hallo,


    Quote

    ich bin kein Programmierer, sondern Bastler, das wird hier oft missverstanden

    Das hat damit nichts zu tun, dass ist bestenfalls eine Ausrede gegenüber dir selber. Auch als Hobbyprogrammierer egal auf welchem Level kann man einen Qualitätsanspruch an seinen eigenen Code haben.


    Gruß, noisefloor