kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Hilfe gesucht.

    geschrieben von noxious

    blogvvard schrieb:
    G. Ich habe um Aktive Hilfe gefragt, nicht um den gut gemeinten Rat mir PHP beizubringen. Wollte ich das, hätte ich hier nämlich nicht nach Hilfe gefragt, sondern wäre schon längst dabei.
    Ich habe aber nicht die Zeit und auch nicht die Lust für ein einmaliges, kleines (für jemanden der es kann) Problem mich in eine neue Programmiersprache einzuarbeiten.
    War eigentlich auch den ersten Zeilen meines Postings ("zielführend") zu entnehmen.}
    Echt jetzt? Das was ich dir schickte war die höflichste Form dir zu sagen, dass das Script technisch, philosophisch und in Sachen Sicherheit Schrott war. Wer sowas online stellt gehört ins Gefängnis, nicht auf ein Podest.

    Du willst ne simple Antwort? Lösch den Scheiß, den du da hast und installiere Wordpress. Ganz einfach und eine minimale Manipulation deines Codes
  • in: Rückkehrwilligen Flüchtlingen helfen

    geschrieben von noxious

    blogvvard schrieb:
    Eine Lösung die Alle, oder auch bloß eine signifikante Mehrheit, zufriedenstellen wird, gibt es nicht.
    Und eben dies bezweifel ich. Grade im Fall von "Heimkehrern" sollte doch Einigkeit bestehen, dass diese Leute zurück kehren können sollten. Die Rechskonservativen wollen diese Leute nicht hier haben, die Linken wollen den Leuten eine freie Wahl ermöglichen."Freiwillige Rückkehrer" sind quasi die Lösung, welche alle zufrieden stellen sollte.

    blogvvard schrieb:
    Und mit Mehrheit meine ich jetzt nicht das, was sich die politischen Clowns im Bundestag zurecht würfeln.
    Der Begriff "Mehrheit" bietet weng Raum für Interpretationen. Weder in der Politik, noch sonst wo.

    blogvvard schrieb:
    Eine strikte, juristisch korrekte, Orientierung an der gesamten Asyl/Imigrations Problematik hätte die aktuelle Situation erst gar nicht entstehen lassen.
    Mit der Entstehung der Situation hat die Asyl/Migrationspolitik gar nichts zu tun. Da spielen eher Sachen wie Wirtschaftfaktoren bis hin zum Konsumverhalten von einzelnen Personen eine Rolle.Die Asyl und Migrationspolitik ist eine Folgenregulierung.

    blogvvard schrieb:
    Moral ist ja was schönes, aber man muss sie sich leisten können und wenn auch der Strom aus der Steckdose kommt und man Geld nach Bedarf drucken kann, scheitert das irgendwann mal an der boshaften Realität.
    Ähhh... Einfach nur "Nein". Moral ist nichts, was man sich "Leisten können" muss.Moral ist etwas, was die Grundlage für Entscheidungen darstellt - unabhängig davon, ob man es sich leisten kann.

    blogvvard schrieb:
    In der Natur gibt es weder Belohnungen noch Strafen.
    Es gibt Folgen.
    Richtig, aber ob nun die Rückkehr zu primitiven "Friss oder stirb"-Philosophien die Menschheit irgendwie voran treibt?

    blogvvard schrieb:
    Und kaum einer, der seine Moral wie eine Monstranz vor sich her trägt, denkt wirklich konsequent über die Folgen für Andere nach.
    Ganz im Gegenteil: Bei der Moral geht es ausschließlich darum, über die Wirkung auf andere nachzudenken.
  • in: Hilfe gesucht.

    geschrieben von noxious

    blogvvard schrieb:
    Hallo erstmal.

    Ich habe NULL Ahnung von PHP, Hinweise wie "ist doch ganz einfach" und "mach das mal so" sind also nicht wirklich zielführend. Dafür kann ich copy&paste, wenns sein muss ;-}
    Ist doch ganz einfach! Mach das mal so!

    blogvvard schrieb:
    Ich habe ein extrem kompaktes Blog Script gefunden, würde meinen minimalistischen Ansprüchen genügen, wenn es die Einträge nach irgendeiner Logik anzeigen würde. Der Code ist nicht wirklich lang.
    Auf 3 Verschiedenen Servern, 3 unterschiedliche Reihenfolgen, auch unabhängig davon in welcher Reihenfolge ich Texte hochlade. Rein von der Struktur her kann ich auch nix im sourcecode erkennen, was irgendwas sortieren täte
    Okay, wenn du PHP nicht kannst, wäre der erste Schritt: Lerne PHP. Du kannst einfach nicht einen X-Beliebigen Snippet aus dem Netz nehmen und erwarten, dass dies läuft.

    Einen Blog zu schreiben ist ein Nicht-Trivialer Vorgang, weshalb es Lösungen wie Wordpress gibt. Ich bin auch kein Fan davon, aber wenn man wirklich keine Ahnung hat und keine Ambitionen sich näher mit dem Thema zu beschäftigen, ist dies das Mittel der Wahl.

    Zu deinem Problem: Da du keine Ahnung von PHP hast, wirst du die Lösung vermutlich nicht verstehen. Blog-Einträge sind in der Regel in Datenbanken organisiert, in der Regel in SQL-Datenbanken. Die Ausgabe wird also anhand vom Datum organisiert, dessen rückgabe dann beispielsweise durch
    ORDER BY `date`
    manipuliert werden kann. Da in diesem Snippet aber - bis auf die Darstellung - wenig Information darüber vorliegt, wie diese Daten "erschaffen" werden, kann man dazu wenig sagen.

    Meine Empfehlung:
    - Beschäftige dich damit, wie man in PHP Dinge darstellt.
    - Beschäftige dich mit der Übertragung von Daten
    - Beschäftige dich mit der Speicherung und Abfrage von Daten.

    Wenn du dies alles nicht verstehen willst: Benutze einfach Lösungen wie beispielsweise Wordpress, anstelle von irgendwelchen dubiosen Skripts aus dem Netz.
  • in: Email anbieten

    geschrieben von noxious

    muellerlukas schrieb:
    Die API kann genau das. Sowohl Mailboxen anlegen, ändern, löschen.
    Meine Infos sind da ziemlich alt - und ich hatte wenig Lust, mich da durch die Dokumentation zuwühlen, weshalb ich explizit die API verlinkt habe und darauf hingewiesen habe, dass man da möglicherweise mehr findet, wenn man sich da durch wühlt.

    muellerlukas schrieb:
    Generell sollte man aber beachten dass sich alle Mailboxen den Speicherplatz teilen. Nutzt also jetzt 1 Person alles kann keiner mehr Mails empfangen.
    Interessant, ich sehe grade zum ersten mal, dass dieser Speicherplatz begrenzt ist. Ich meine: Macht total Sinn, aber bisher ist mir die explizite Begrenzung nie aufgefallen.
  • in: Email anbieten

    geschrieben von noxious

    nmail schrieb:
    Hallo ich habe eine Domain und wollte wissen wie ich für Freunde ein Email Anbieter homepage erstellen kann wo sich Freunde und Bekannte eine Email erstellen können. Am besten kostenlose erstellen.
    Zu allererst einmal: Ich fürchte das ist so nicht ganz der Sinn und Zweck von Lima-City. Deshalb gehe ich heir erstmal darauf ein, wie man das ganze außerhalb von Lima-City anstellen kann und ergänze das ganze dann um ein paar Lima-City-Spezifische dinge.

    Grundsätzlich brauchst du zu einer Domain natürlich erstmal einen Web- und Mail-Server. Mail-Server einrichten ist ansich eine Wissenschaft für sich, aber so ziemlich alle Mailserver kannst du dahingehend konfigurieren, dass sie SQL oder SQLite als Datenbank benutzen. Das ist für Webseiten so weit erstmal ziemlichg optimal. Es gibt zu diversen Mailservern auch Tutorials, welche ich aber immer mit Vorsicht genießen würde, weil... Wie schon gesagt: Mailserver sind eine Wissenschaft für sich. Es gibt da so viele sicherheits-Aspekte, welche zu beachten sind, welche in den "Tutorials" oft nicht behandelt werden. Mit SQL/SQLite und PHP sollte das Erstellen, Verändern und Löschen von Accounts eine triviale Aufgabe sein.

    Als nächstes brauchst du natürlich eine Oberfläche. Da gibt es mehrere Optionen - zum einen fertige Lösungen wie RoundCube welche auch Lima-City benutzt, oder halt du schreibst dir etwas eigenes, wo du dich dann mit den Mail-Funktionen von PHP beschäftigen musst.

    Was nun Lima-City angeht: Da du keinen direkten Zugriff auf den Mail-Server und/oder dessen Konfiguration hast, bleibt dir im wesentlichen nur eine API. Da aber die Lima-City API meines Wissens wenig Zugriff auf Mail-Funktionen und so weiter bietet, müsste man da etwas eigenes, vermutlich deutlich langsameres und deutlich weniger sicheres basteln.Wobei man sich da möglicherweise etwas in die API rein lesen muss, um das sicher sagen zu können.
  • in: Rückkehrwilligen Flüchtlingen helfen

    geschrieben von noxious

    blogvvard schrieb:
    Das Programm gibt es schon lange, z.B. in Form von REAG/GARP, dann gab (gibt?) es noch ein zusätzliches Prämienprogramm der Bundesregierung 2017/18.
    Mir stellt sich da die Frage, ob diese Programme die Leute nur in ihr Heimatland zurück führen, oder ob die Leute auch in die Länder zurück geführt werden, wo sie dann Asyl beantragen müssen, bzw. beantragt haben. Allerdings ist ja niemandem geholfen, wenn wir quasi einen obdachlosen mehr auf den Straßen haben und letztenendes kommt es uns doch deutlich teurer, wenn wir diese in Notunterkünften, etc. unterbringen müssen, anstatt ihnen eine Rückkehr zu entsprechenden Stellen zu finanzieren. Wobei das ganze natürlich wieder ein nicht unerhebliches Missbrauchspotenzial bietet - denn wer bezahlt schon Hin- und Rückfahrt, wenn er die Rückfahrt vom Staat gesponsort bekommt.

    blogvvard schrieb:
    Aber schon eine rührselige Geschichte, die du erzählt bekommen hast.
    Wie schon gesagt: Mir geht es da weniger um den einen, spezifischen Fall - keine Ahnung, ob der Typ mir die Wahrheit gesagt hat. In der Regel hätte ich - wenn ich nicht grade durch Corona selbst sehr stark am Limit leben würde - dem Tpyen angeboten, ihm das Ticket zu kaufen, anstatt ihm Geld zu geben. Häufig stellt sich dann schnell heraus, dass diese Leute sowas eben ablehnen, weil es ihnen eher um das Geld, als um ein Ticket geht. Dennoch wirft die Geschichte halt Fragen auf, was es da für Möglichkeiten gibt.

    blogvvard schrieb:
    Und natürlich führt jede tiefer gehende Einlassung in diesem Thema zu moralisch-politischen Themen und ganz schnell zur Verschubladung des Gegenüber zum Gutmensch oder Wutmensch, an dem man dann seine Vorurteile abarbeitet, die in der Regel wenig mit dem Problem und noch weniger mit Lösungen zu tun hat.
    Wie schon gesagt: Ich will gar nicht darüber diskutieren, ob das ganze nun zu verurteilen ist, was der Mensch da getan hat. Es hilft halt niemandem, da mit dem Finger auf jemanden zu zeigen - weder uns, noch der Person. Deshalb konzentriere ich mich da lieber auf das Finden von Lösungen, die alle zufrieden stellen sollten.
  • in: Linux Adminaccount Nvidia

    geschrieben von noxious

    chatter schrieb:
    Ich glaub du bringst hier einiges durcheinander. Linux kennt genau EINEN "Admin" und das ist root. Deswegen ist mir auch nicht so ganz klar, was du mit "neuen Adminaccount angelegt" meinst. Üblicherweise arbeitet man immer nur mit dem normalen Benutzerkonto und das geht bei dir ja anscheinend problemlos.
    Vermutlich meint er damit einen wheel- oder sudoer-account. Vermutlich kommt der Begriff "Admin account" aus einer Benutzerverwaltung von Mint oder Cinnamon.

    chatter schrieb:
    PS:
    Mit root solltest du dich tunlichst niemals direkt am System anmelden.
    In sofern richtig, dass man sich damit niemals in einer grafischen Benutzeroberfläche anmelden sollte. Das wirft diverse Probleme auf - unter anderem ist das homedir von root in der Regel nicht in
    /home
    , sondern in
    /root
    . Dennoch gibt es durchaus Gründe, sich als Root im System selbst anzumelden - es gibt sogar Punkte, wo das unumgänglich ist, beispielsweise um Wartungen am Wheel/Sudoers-System zu vollziehen.
    In der Regel sollte man aber möglichst darauf verzichten, das ist richtig.
  • in: Rückkehrwilligen Flüchtlingen helfen

    geschrieben von noxious

    Hallo,

    ich hatte vor wenigen Tagen eine Erfahrung, wo ich tatsächlich nicht weiter wusste. Um die Situation zu umschreiben:
    Ich kam in einen Park, wo ein älterer, dunkelhäutiger Mann auf einer Bank saß. Er fragte mich, ob ich englisch sprechen würde, ich bejahte dies, woraufhin er mir seine Geschichte erzählte: Er kam offenbar aus Lampedusa, kam dann aber illegal nach Deutschland, weil er dachte, er könnte hier Arbeit finden und durch den Familien-Nachzug für ein gesichertes Leben für seine Familie sorgen. Lassen wir die politisch-moralische Diskussion darüber da mal außen vor. Sein Problem war: Er darf hier nicht arbeiten - und alles was er will ist: Zurück zu seiner Familie - da er jedoch praktisch ohne Geld kam, wüsste er nicht, wie er jetzt zurück käme. Er hätte nun aber ein Flixbus-Ticket-Angebot, wo er für 68€ zurück käme.

    Um das klar zu stellen: Ich bin nicht naiv und vermutlich war das ganze ein Typ, der einfach nur auf Geld aus war - und einem diese tränenreiche Story erzählt hat, um das ganze zu erpressen. Dennoch warf das bei mir die Frage auf: Wenn es solche Menschen gibt, wie kann man diesen Menschen helfen? Nicht, dass ich sie los werden will, aber Menschen, welche zurück wollen, sollte doch zumindest möglich sein, zurück zu kommen. Ich meine: Ich habe viel über die Idee von Rückführungsboni gelesen, welche Leuten ausgezahlt werden, welche freiwillig zurück kehren. Gibt es sowas wirklich? Denn dann könnte man den Leuten ja empfehlen, sich einfach zu stellen - den Behörden mitzuteilen, dass sie zurück zu ihren Familen wollen und dann führt man sie zurück. Ist die "Abschiebung" denn kostenlos? Und wie wirkt sich das beispielsweise darauf aus, wenn Leute beispielsweise in ihr Urspruings-Flüchtlingslager(Beispielsweise auf Lampedusa) zurück wollen, weil ihre Familien dort leben?

    Was denkt ihr über die ganze Geschichte?
  • in: Betriebssystem ohne programmieren

    geschrieben von noxious

    fabscho schrieb:
    Hallo! Ich wollte mal ins Forum fragen, ob ich eigentlich ein Betriebssystem ohne programmieren "erstellen" kann. Ich weiß, dass diese Frage irgendwie dumm ist, aber vielen Dank trotzdem schon mal im Voraus!:wave:
    Wie bereits geschrierben wurde: Kommt darauf an, was du vor hast. Willst du ein komplett eigenes Betriebssystem schreiben, mit eigenem Kernel, eigenen Tools, eigenem alles - dann musst du logischerweise programmieren können.Du kannst dich aber auch an Linux wenden - was quasi ein modularer Betriebssystem-Baukasten ist.Auf letzteres nehme ich im weiteren Bezug.

    Als erstes solltest du dich da damit beschäftigen, verschiedene Linux-Derivate kennen zu lernen.Viele schwören auf Ubuntu - für meine Zwecke ist das jedoch absolut überladen und nicht zu gebrauchen. Aber für den Anfang vielleicht nicht schlecht. Wenn man dann bemerkt, dass einem das eine oder das andere nicht gefällt, tauscht man diese Komponenten einfach aus. Keine Lust auf Unity? Dann wechsel zu Gnome, KDE, XFCE, LXDE, i3... Was auch immer. Kann man einfach installieren und im DM dann als Oberfläche das auswählen, was man bevorzugt. Das funktioniert in der Regel "Out of the Box". Wenn man sich dann etwas näher damit beschäftigt hat, wird einem möglicherweise auffallen, dsas einem auch tiefere Systemkomponenten nicht gefallen. Dann würde ichi empfehlen - je nachdem, wie tief man dann schon in der Materie ist - zu Arch oder Gentoo zu wechseln. Wenn man dann noch tiefere Einblicke haben möchte, empfehle ich LFS was dann weniger ein Betriebssystem, als eine Anleitung, sich ein komplett eigenes Linux-Basiertes System zusammen zu basteln ist.

    webfreclan schrieb:
    Das ist doch im Endeffekt was viele Linux-Distros machen? Sie sind eigentlich eine Sammlung von Programmen, die zusammen laufen.
    Im Prinzip richtig, wenn auch nicht ganz vollständig.Distributionen vertreten häufig Philosophien, setzen unterschiedliche Standards in Sachen POSIX-Konformität und zum Teil eigene, Distributionsspezifische Lösungen für spezielle Probleme.

    webfreclan schrieb:
    Das schwierige ist halt, alles im Zusammenspiel zum Laufen zu bringen und zudem einen Paketmanager (die meisten bekannten OS haben ja einen eigenen) und Server für die Infrastruktur anzubieten
    Das ist soweit gar nicht so schwer. Linux ist ansich so gebaut, dass die Programme miteinander laufen - sofern sich diese an entsprechende Standards halten.
    Ein Paketmanager ist tendenziell praktisch, aber nicht notwendig. Ich hab ne Maschine mit nem "eigenen Linux" laufen, welches als "Paketmanager" git nutzt. Prinzipiell spricht aber auch nichts dagegen, Paketmanager anderer Distributionen zu benutzen. Einige Distributionen bieten auch einfache "Umwandlungs"-Programme an, welche aus unterschiedlichen Repository-Paketen dann eigene bastelt.(Wie es beispielsweise Tiny Core macht)
  • in: Linux Adminaccount Nvidia

    geschrieben von noxious

    mawoka schrieb:
    Hallo an alle die das lesen und mir (hoffentlich) helfen wollen oder das gleiche Problem haben! :wink:

    Mein Problem ist es, dass ich in meinen Admin Account bei Linux Mint 19.3 (Cinnamon) (Ist ´ne 1660 mit dem 440 Treiber) nicht mehr rein komme. Also das Passwort ist richtig! Sobald ich das Passwort richtig eingebe, wird der Bildschirm schwarz, grau, schwarz und ich bin wieder auf dem Anmeldebildschirm... Wenn ich mich als normaler User ohne Passwort und Adminrechte anmelde, funktioniert das. Ich habe mir dann einen neuen Adminaccount angelegt, angemeldet und es hat geklapp! 5 Tage später, das gleiche...

    [Keine Ahnung wie ich den Post beenden soll :confused: LG? Freue mich über Hilfe?]
    Auch, wenn ich das Problem nie hatte, klingt das ganze für mich nach einem Problem in der Cinnamon-/DM-Konfiguration. Wenn du dich über STRG+ALT+F[1-7?] in ein TTY anmeldest und
    ~/.config
    , bzw. das etwaige Äquivalent welches Cinnamon nutzt(Möglicherweise
    ~/.cinnamon
    ?) löscht, könnte das Problem behoben sein - was jedoch auch alle persönlichen Einstellungen zurück setzt.
    Besser wäre es wohl, das Problem zu identifizieren - dazu ist erstmal
    dmesg
    hilfreich, sowie die entsprechenden Log-Dateien von Cinnamon, welche sich vermutlich in
    /var/log
    oder in
    ~/.cinnamon
    oder ähnlichem befinden. Dort lässt sich möglicherweise besser die Fehlerquelle einsehen.
  • in: Logo erstellen

    geschrieben von noxious

    duxaquila schrieb:
    https://pixabay.com/de/images/search/skull/

    grauzone da man nie weiß ob alle Bilder ohne Urheberrecht sind

    Spart dir das Zeichnen auf Phtoshop, gimp und co. musst du wohl dennoch zurückgreifen
    Alternativ kann man das ganze auch als Grundlage nehmen um eigene Saschen zu zeichnen.(Bei Photoshop/Gimp auf eine Hintergrund-Ebene packen und mehr oder weniger nachzeichnen.) Wenn man dies häufiger macht, fallen einem möglicherweise Ähnlichkeiten in den Vorgehensweisen zwischen den Bildern auf, welche es einem letztenendes erleichtern, wirklich selbst etwas zu zeichnen.
  • in: USB Stick verschlüsseln

    geschrieben von noxious

    duxaquila schrieb:
    Hatte ich auch schon gesehen so wie die Portable Version davon.

    Was mich daran stört ist, dass man die Software Installieren muss oder bei der Portable Wine(Linux) und bei Windows Administrative rechte brauch.

    Schade das es da nicht eine einfache Methode gibt.
    Das Problem an der Sache ist halt, dass das Dateisystem verschlüsselt werden muss. Und konzeptionell wird jedes angemessen sichere Betriebssystem erstmal nach Administrator-Rechten fragen, wenn es um die Veränderung von Dateisystemen geht.
    Eine alternative wäre, das Dateisystem nicht zu verschlüsseln, sondern ein "Pseudo-Dateisystem" in einem Containerformat zu erstellen. Um ein eher schlechtes Beispiel anzuführen: Diverse zip-Pack-Systeme unterstützen eine Verschlüsselung.
    Alternativ kann man natürlich auch ein Image einer verschlüsselten Partition erstellen, welches dann gemounted wird, aber auch das setzt wieder installierte Software voraus, welche das ganze dann interpretieren kann.
    Die wohl überskalierteste Variante wäre dann, eine komplette portable VM auf dem USB-Stick abzulegen, mit entsprechender vorinstallierter Software.
  • in: USB Stick verschlüsseln

    geschrieben von noxious

    duxaquila schrieb:
    Gibt es eine einfache Methode um Daten und Ordner unabhängig vom OS mit einem Passwort zu schützen?
    Die meiner Meinung nach einfachste, Crross-Platform-Methode die ich kenne ist VeraCrypt - auch, wenn sie genau genommen nur auf Windows, Linux(inkl. Android) und Apple-Produkten läuft.
  • in: Eigene Seite für angemeldete Benutzer

    geschrieben von noxious

    odersowas schrieb:
    Hallo Gemeinde,

    ich möchte gerne das nach einer Registrierung auf meiner Seite ein Benutzer eine eigene Seite oder Beitrag veröffentlichen kann.
    Ich verstehe nicht ganz, wo das Problem liegt. Wenn du ein Registrierungs/Login-System hast, sollte es doch ein leichtes sein, sowas umzusetzen. Du machst einfach eine Tabelle mit entsprechenden Inhalten, schreibst bestenfalls eine Nutzerkennung dazu und wählst halt bei den Seiten, wo sie angezeigt werden sollen die entsprechenden Spalten aus.

    Möglicherweise beginnst du erstmal damit, welche Voraussetzungen du hast. Hast du ein fertiges Login-System? Beherrscht du PHP? Hast du Erfahrung mit Datenbanken? Und so weiter. Ansonsten müsste man nun die komplette Seite für dich schreiben - und welchen Spaß hättest du dann noch daran?
  • in: Cookies und Session Cookies werden falsch gesetzt

    geschrieben von noxious

    witze-dschungel schrieb:
    Das session_start() gehört an den Anfang deines PHP-Skripts, direkt nach dem öffnenden <?php-Tag. Später wird es seinen Zweck nicht mehr erfüllen.
    Was so zwar nicht falsch, aber auch nicht ganz richtig ist. Die Session muss gestartet werden, vor jeglicher Ausgabe, kann bei entsprechender Berücksichtigung allerdings an jeder Stelle im Code ausgeführt werden. In einigen Fällen ist es sogar notwendig oder zumindest ratsam, die Session erst später zu starten.
    Nehmen wir beispielsweise die Tatsache, dass du aus Datenschutzgründen genau genommen die Session erst starten darfst, nachdem der Benutzer sein Okay dazu gegeben hat.
    Hierbei ist zu beachten, dass man dies vor jeglicher Ausgabe machen muss. Gerne passiert hier der Fehler, dass bei per
    include
    oder
    require
    eingebundenen Dateien hinter einem schließenden
    ?>
    noch ein Leerzeichen oder eine Leerzeile folgt, was als Ausgabe wiedergegeben wird. Umgehen kann man dies, indem man bei entsprechenden Dateien das schließende
    ?>
    einfach weg lässt. Zudem sorgen natürlich Fehler- oder Warnmeldungen dafür, dass Ausgaben erzeugt werden.

    Allgemein würde ich empfehlen, einen eher Objektorientierten Weg zu gehen. Zum einen zugunsten der Les- und Wartbarkeit, zum anderen, weil dadurch gewisse Fehler verringert werden, wie ein mehrfaches
    session_start
    . Zudem bietet es sich an, sämtliche Ausgaben in einen Buffer zu speichern um diesen am Ende des Skripts dann zu flushen.(s. Output-Buffering, Output Control Functions)
    Da hier offenbar allgemein kein Output gewünscht ist, kann man das auch gleich auf
    null
    umleiten. Dann spielt es im wesentlichen keine Rolle mehr, wann oder wo die Session gestartet oder der Cookie gesetzt wird.
  • in: merkwürdige Zugriffsquelle auf meiner Website

    geschrieben von noxious

    mehralsnurradio schrieb:
    Die Seite ist ja auch nicht leer, sie hat schon Inhalt und ca. 15 Benutzer pro Tag..
    Und sie ist schon fast 2 Monate vorhanden...
    Wie bereits gesagt: Ich ging dort von meinem Fall aus, welcher eben die selbe Charakteristik aufweist. Angenommen, das ist nun kein weirder Trend, wo sich Leute denken, "Hey, machen wir mal alle dasselbe", wird es wohl der gleiche Besucher sein. Und bei mir handelt es sich um eine leere Seite - welche zudem noch per htaccess geschützt ist und so weiter. Und dennoch habe ich in den Access-Logs die Zeile
    1.2.3.4 - - [27/Mar/2020:04:03:09 +0100] "GET / HTTP/1.1" 401 675 "http://www.bing.com/search?q=amazon" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)"
    (IP aus Datenschutzgründen verschleiert.)

    Wie schon gesagt: Letztenendes kann es alles mögliche sein, da sich das ganze aber wunderbar mit diversen Anfragen wie
    1.2.3.4 - - [27/Mar/2020:03:54:41 +0100] "GET /vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist HTTP/1.1" 401 638 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
    mischt, gehe ich davon aus, dass das ganze einfach irgendein Bot ist, der versucht da irgendwas auszuspähen.

    Alternativ könnte es natürlich auch ein Bot sein, der Referer-Spam verbreitet, ein normaler Nutzer, der zufällig halt auf der Seite gelandet ist oder sonst was. Da das ganze aber - wie ich grad noch mal an anderen Orten gecheckt habe - Deckungsgleich mit dem Vorkommen auf vielen Domains von mir ist, würde ich schlicht von einem Bot ausgehen.

  • in: merkwürdige Zugriffsquelle auf meiner Website

    geschrieben von noxious

    mehralsnurradio schrieb:
    Also ist das ein Bot, der seinen User Agent gefälscht hat und behauptet, dass er bei Bing "Amazon" eingegeben hat?
    Davon gehe ich aus - da das ganze auf einem Server gelandet ist, der gestern erst aufgesetzt wurde und nichts anderes als eine leere Seite zeigt...Es wäre ein ziemlicher Zufall, wenn wenn zufällig - nur Minuten nach dem Aufsetzen eines Servers da irgendwelche Leute drauf landen.
    Aber ansich kann das alles und jeder sein. Es gibt entsprechende Browser-Plugins, welche sowas fälschen. Das ist keine hohe Kunst.

    Ich persönlich gehe in meinem Fall davon aus, dass es sich um Bots handelt, welche versuchen "unauffällig" nach Sicherheitslücken zu suchen. Denn das sind im wesentlichen die einzigen, welche meine Seite bisher besuchen.
  • in: merkwürdige Zugriffsquelle auf meiner Website

    geschrieben von noxious

    mehralsnurradio schrieb:
    Hallo, ich habe eine Website, die eigentlich nur für eine App gedacht ist. Sie umfasst auch nur eine seite. Allerdings habe ich nichts hinzugefügt, um die Website nur über die App zugänglich zu machen weil ich nichts gegen eine andere Nutzung habe.
    Gestern ist etwas merkwürdiges geschehen. Laut Google Analytics und laut meiner eigenen Seite, die die Zugriffsquellen selbst auch speichert, ist jemand auf meine Seite verwiesen worden, nachdem er auf Bing "Amazon" eingegeben hatte. Das ergibt jedoch absolut keinen Sinn, weil meine app nichts mit Amazon zu tun hat und auch nie irgendwie auf Amazon verfügbar war. Der Zugriff soll über einen ganz normalen Windows 7 erfolgt sein.
    Hat jemand eine Idee, was das für ein Zugriff gewesen sein könnte? Der User Agent sieht nicht nach einem bot aus wobei die ja eigentlich auch immer direkt zugreifen...
    Meine Seite ist noch nicht Mal bei Bing gelistet...
    Ich habe dasselbe - da sind imho aktuell einige Bots unterwegs.. Das ganze ist bekannt unter Referer Spoofing. Ansich harmlos, wenn auch für Nutzer von Google-Analytics & Co möglicherweise verwirrend.
  • in: Google nervt

    geschrieben von noxious

    hjs schrieb:
    ich muss mich sehr wundern, wieso dieses Ding ständig auf meiner Seite kramt.
    Alles ist von Hand geschrieben und es gibt keine Teta-Tags.
    Das ist nicht verwunderlich - Google analysiert erstmal jeden Content.

    hjs schrieb:
    Und trotzdem ist ein
    gewisser 66.249.76 * ständig am wursteln.
    Jeder Gewerbetreibende wäre wahrscheinlich froh darüber.
    Ich allerdings weiß nicht, wie ich das einordnen soll.
    Ich weiß nicht, ob das Google ist - sieht aber durchaus so aus.

    Wenn du Google aussperren willst: Robot Exclusion Standart. Google behandelt das eigentlich recht gewissenhaft - da es sich jedoch lediglich um eine "Empfehlung" an die Bots handelt, könnten andere Bots das natürlich einfach ignorieren.
    Es kann jedoch dennoch sein, dass Google deine Webseite in den Suchergebnissen auflistet. Dort raus zu kommen ist nicht schwierig, jedoch in Kombination mit dem ersten erstmal eine "Warteaufgabe". Willst du "nur" dass die Webseite nicht in den Suchergebnissen auftaucht, kannst du dies mit dem Meta-Tag
    <meta name="robots" content="noindex">
    bewerkstelligen. Das Problem an der Sache ist: Wenn in der robots.txt verboten ist, dass der Bot die Seite parsen kann, kann er halt auch den Meta-Tag nicht parsen, was dazu führt, dass die Seite also doch noch bei Google auftaucht. Wenn du also willst, dass du weder in den Suchergebnissen auftauchst, noch dass Google deine Webseite durchsucht, kannst du das über den Weg machen, dass du erstmal den Meta-Tag einbaust, dann wartest, bis Google mal wieder vorbei geschaut hat (Aufpassen, dass du da das Caching beachtest) und dann das ganze per robots.txt verbietest. Dann wird Google dich weder listen, noch wird dich der Bot in Zukunft besuchen. Alternativ: Du sperrst Google per .htaccess aus.(Eine Fehlerseite mit entsprechendem Meta-Tag wäre natürlich vorausgesetzt.)

    Wenn es dir jedoch einfach egal ist, würde ich Google schlicht ignorieren. Ansich tut der ja nichts böses, außer in gewissen Intervallen die Seite mal besuchen.

    Wovon ich übrigens absehen würde wäre, bestimmte, sicherheitsrelevante Seiten in der robots.txt oder per Meta-Tag auszuschließen - das benutzen bösartige Menschen gerne, um eben genau solche Seiten zu finden.
  • in: 13-stellige Zahlen aus Text filtern

    geschrieben von noxious

    Ähm... Am Einfachsten geht das über einen regulären Ausduck.
    [0-9]{13}
    .Ob das der effizienteste Weg ist - darüber lässt sich streiten.
  • in: Hallo Lima-City

    geschrieben von noxious

    Hello World!

    from clang.
  • in: Grundsätzliches zu Server und PHP

    geschrieben von noxious

    bibliothek schrieb:
    1. Wie füge ich das PHP Skript hier auf Lima-City hinzu?
    2. Falls es nicht so läuft wie ich es mir vorstelle, wie müsste man es denn machen?
    Erstmal: Verstehe PHP. PHP ist ein Preprozessor - also ein Programm, welches Eingaben interpretiert. Als nächstes: Verstehe Webserver - diese sind einfach Programme, welche Inhalte vermitteln. In der Regel lesen sie diese Inhalte aus Dateien - im Fall von PHP benutzen sie den Preprozessor PHP um diese Dateien zu interpretieren. Sie geben also die Ausgabe von PHP, beispielsweise angewendet auf eine Datei an den Benutzer weiter.
    Was du möchtest, ist ein API(Application Programming Interface) - eine Schnittstelle, mit dem Programme mit Serverinhalten kommunizieren können.Ich persönlich halte PHP da für weniger geeignet,. da der CGI-Stuff auf Webservern da vergleichsweise lahm ist, aber gegeben an den Umständen(Freehoster, etc.) wohl unumgänglich.
    Du erstellst also eine PHP-Datei, welche Daten als Argument annimmt und ausschließlich jene Daten zurück gibt, welche für das Programm notwendig sind. Diese lädst du dann für gewöhnlich über FTP hoch - das "File Transfer Protocol" - und platzierst es irgendwo, wo der Webserver es finden kann. Dann teilst du dem Webserver über die Server-URI mit, wo dieser nach der entsprechenden Datei suchen soll. Dazu ersetzt der Webserver im wesentlichen deine Domain (www.deinedomain.tld) durch eine Variable (server-root). Rufe ich also
    http//www.deinedomain.tld/index.php
    auf, sucht der Webserver in $SERVER_ROOT im Verzeichnis
    ./
    nach der Datei
    index.php
    und - je nach Server-Regeln, welche auf die Dateiendung ".php" definiert sind, führt er beispielsweise
    php -f $dateipfad
    aus und gibt die Ausgabe an den Benutzer weiter.

    Was du möchtest ist also die PHP-Dateo über FTP an den Server übertragen - an jene Stelle, wo der Webserver sie relativ zum Domain-Pfad finden kann.

    Ohne zusätzliche Informationen darüber, was du genau machen willst, lässt sich leider keine explizite Handlungsempfehlung aussprechen. Möchtest du einfach einen Login verifziieren? Alles super. Möchtest du größere Datenmengen in hohen Intervallen austauschen? Da sind weder Freehoster, noch PHP das Mittel der Wahl.
  • in: PHP-Formular ohne Einbindung in HTML-Datei möglich ?

    geschrieben von noxious

    .
    joergreven schrieb:
    Hallo, ich suche nach einer Möglichkeit, ein Formular komplett in PHP zu schreiben. Weiß irgendjemand, ob das geht ?
    Danke.

    Kommt darauf an, was du mit "Formular" meinst. Man versteht darunter zum Teil recht unterschiedliche Dinge. Du kannst aber so ziemlich alles mit PHP schreiben. HTML ist schlicht eine Auszeichnungssprache, damit der Browser weiss, wie er den Text, den der Webserver ihm zurück gibt interpretieren/Darstellen soll. PHP hingegen wandelt in der Regel nur Code in ein Ausgabeformat um, das der Webserver dann auf Anfrage an den Browser übermittelt - weshalb man da HTML verwendet. Ansich spricht aber auch nichts dagegen, PHP zu verwenden, um ganz andere Dinge zu erstellen - via PHP-GTK, PHP-Qt, wxPHP oder ähnlichem kannst du sogar UI-Anwendungen erstellen.(Nicht, dass ich das für sonderlich sinnvoll halten würde...) Über Module wie ImageMagick kannst du Bilder erstellen, über diverse PDF-Funktionen kannst du dynamische Dokumente aushändigen.

    Am Ende bleibt: Willst du etwas im Browser darstellen: Produziere HTML.
  • in: Erpresser E-Mail erhalten, was tun?

    geschrieben von noxious

    mukerbude schrieb:
    Don't believe me? Please check (from the address) in your email header, you will see that this email was sent through your own mailbox. (pete.breit@netcologne.de)
    Hast du das denn getan? Also wirklich den Header gecheckt? Denn die "Absender-Adresse" lässt sich im wesentlichen über Mail-Spoofing ziemlich einfach fälschen. Ein schlichtes
    mail("ziel@provider.tld", "Titel", "Inhalt!", "From: donald.trump@washington.gov", "-f donald.trump@washington.gov");
    reicht im prinzip aus, auch, wenn professionelle Spoofer sich da schon mehr Mühe geben. Wirklich verbergen kann man das ganze aber nur auf den ersten Blick.

    Wie man dem ganzen prinzipiell auf die Spur kommt, ist hier auch für Laien ziemlich gut beschrieben. Wenn du die Email mit Header hier rein stellst, lässt sich darüber möglicherweise mehr sagen.
  • in: Abbildung SQLite in Dateisystem und umgekehrt

    geschrieben von noxious

    sebulon schrieb:
    Moin,

    ich habe zwar immer noch nicht verstanden, was das Ziel deiner maßnahme ist, aber wenn es nur darum geht, dateien Durchsuchbar in einer datenbank reinzumüllen, dann wären mein Ansatz:
    Okay, da ich offenbar nicht ganz deutlich war: Es geht nicht darum, ein beliebiges Dateisystem in eine SQLite-Datenbank umzuwandeln, sondern primär um das Gegenteil: Ich will eine vorhandene SQLite-Datenbank in ein Dateisystem umwandeln, um die Daten einfacher anpassen zu können.

    Nehmen wir folgendes - sehr stark vereinfachtes - Beispiel: Ich habe eine Datenbank, in welcher ich Bilder abspeicher - Sinnhaftigkeit sei erstmal dahin gestellt. Ich habe also beispielsweise die Tabelle "Images", welche einen PRIMARY KEY namens "id" hat, eine TEXT-Feld für eine Beschreibung und ein BLOB-Feld, in welchem die Bilddatei steckt.

    Ich möchte nun das Bild in der Bilddatei bearbeiten - ich muss es also aus der Datenbank ziehen, muss es in einem Bildeditor öffnen, es speichern und dann zurück in die Datenbank schieben. Manuell ein unglaublicher Aufwand - vor allem, wenn man das ganze für hunderte Bilder machen will.
    Das nächste Problem ergibt sich, wenn ich den Funktionsumfang erweitere und beispielsweise ein weiteres Feld mit einem weiteren Bild hinzufügen möchte. Ich müsste nun also die Datenbank-Struktur ändern, die Bilder sortieren und mir ein script schreiben, welches die neuen Bilder in die Datenbank einfügt. Grade im Entwicklungsprozess kommt dies sehr häufig vor was dazu führt, dass ich n% meiner Zeit darauf verwende, Scripte oder Methoden zu schreiben, welche neue Daten in die Datenbank schieben.

    Meine Lösung wäre also: Einfach alle Daten aus der Datenbank ziehen, im Dateisystem unter bestimmten Namenskonventionen ablegen, dort nacheinander editieren, möglicherweise ein paar neue Dateien erstellen und dann alle in einem Schub zurück schieben - defakto also ein mal eine Methode schreibe, welche verallgemeinert mit allen Daten und Datentypen umgeht.

    Das Probelm an der Sache ist, dass das Dateisystem nun mal nicht dafür ausgelegt ist, gewisse Feldinformationen zu speichern - wie speichere ich ob es sich um INT, TEXT oder BLOB handelt, wie behandle ich PRIMARY/FOREIGN KEY, wie definiere ich DEFAULT-Werte, wie sage ich, dass ein Feld UNIQUE ist? Sollte klar sein, worauf ich hinaus will.

    Möglicherweise verwirrt, dass meine Beispiele sich bisher immer nur darauf bezogen, wie man das ganze wieder zurück schiebt - der Grund ist schlicht: Es ist fehleranfälliger und somit ein besserer Test-Kandidat, ob das Parsen eines erstellten Dateisystems auch funktioniert. Wenn ich es schaffe, eine Datenbank aus einem Dateisystem zu erstellen, ist der umgekehrte Weg eher trivial. Diverse Probleme, welche sich beim erstellen der Datenbank ergeben, tauchen beim "herausziehen" der Daten gar nicht auf - zum Beispiel braucht man die ganzen Definitionen der Felder auf dem Dateisystem in die eine Richtung nicht, in die andere aber schon.

    sebulon schrieb:
    -keine sqlite (nicht leistungsfähig genug)
    Ich muss zugeben: Meine Recherchen gehen da noch nicht besonders tief, aber SQLite ist für mich in Sachen Leistungsfähigkeit erstmal gut genug. Andere Formate, welche ich bisher untersucht habe, sind entweder weniger Leistungsfähig oder haben andere Probleme. Die Gründe, weshalb ich mich für SQLite entschieden habe, sind: Es ist schnell (genug), es ist frei und es ist weit verbreitet. Natürlich gibt es schnellere Optionen - ein eigenes, binäres Format wäre vermutlich die schnellste Lösung, aber das würde eine künstliche Barriere für andere Entwickler schaffen, welche möglicherweise einen anderen Präsentationsansatz für die Daten schaffen wollen. Dasselbe gilt für die Lizenz - auch, wenn ich potenziell eher frei, aka "Open Source" arbeite, will ich niemandem Stöcke in die Speichen stecken, welcher was proprietäres daraus machen will. Grade Lösungen wie mongoDB(mit SSPL) sind da ja sehr restriktiv. SQLite ist da eine der wenigen, sehr umgänglichen Lösungen, die mir bisher unter gekommen sind. Dass SQLite sehr weit verbreitet ist, hat zudem den Vorteil, dass die Leute damit vertraut sind und es so erleichtert wird, damit zu arbeiten, ohne sich mehr oder weniger obskure andere Formate aneignen zu müssen. SQLite ist daher für mich von den mir bisher bekannten Varianten der beste Kompromiss zwischen Leistungsfähigkeit und Nutzbarkeit.

    sebulon schrieb:
    -ist die struktur von hunderten /tausenden/unbegrenz vielen tabellen erforderlich?
    Grundsätzlich? Ja. Praktisch werden es wahrscheinlich nicht mehr als Hundert Tabellen, aber wenn der Funktionsumfang erweitert wird, soll Raum nach oben da sein.

    Wie schon weiter oben beschrieben ist meine bisher bevorzugte Lösung jene die von horstexplorer vorgeschlagen/inspiriert wurde, einfach eine ini-Datei im Wurzel-Verzeichnis zu hinterlegen, in welcher dann die jeweiligen Konventionen zu Datentypen und sonstiges als Map hinterlegt sind. Durch diese kann ich dann einfach iterieren, die SQL-Query für die Erstellung der Tabelle erstellen und letztenendes die Daten rein schieben. Das Herausziehen der Daten ist da ziemlich trivial - man iteriert durch die Tabellen, selected * und speichert die jeweiligen Felder unter den angegebenen Namenskonventionen. Eine unkomplizierte Lösung, welche im wesentlichen genau das tut, was ich vorhatte - auch, wenn ich gerne auf eine Struktur-Datei verzichtet hätte. Aber mit der Zeit kommen ja schließlich mmer weniger "neue" Datentypen hinzu.
  • in: Abbildung SQLite in Dateisystem und umgekehrt

    geschrieben von noxious

    horstexplorer schrieb:
    Da gibt es doch eigentlich nur zwei Möglichkeiten dies zu tun, entweder an der Dateierweiterung oder am Inhalt der Datei.
    Der MIME-Typ ist für sich denke ich vergleichse unbrauchbar, da es ja viele Datentypen gibt, welche am MIME-Typ so gar nicht eindeutig identifiziert werden können. BLOB-Dateien lassen sich damit zwar relativ einfach erkennen, aber Integer und Text-Daten sind vom MIME-Typ her ja im prinzip identisch, ganz zu schweigen von Metainformationen wie PRIMARY KEYS und so weiter.
    Was mir vergleichsweise gut gefällt ist die Lösung mit einer Dateityp-Interpretations-Tabelle. Eigentlich ziemlich naheliegend - es ärgert mich, dass ich zwar darauf gekommen bin, die Tabellenstruktur in einer Datei abzulegen, aber so etwas einfaches übersehen habe. Ich denke, wenn sich nicht noch eine bessere Möglichkeit auftut, werde ich mich auch damit zufrieden geben.(Ich hab auch schon daran gedacht, mir nen Plugin für nen Editor zu schreiben... Aber der Aufwand wäre schon recht unverhältnismäßig.) Anstelle von von JSON werde ich wohl auf eine Art "INI-Format" zurückgreifen, da es vollkommen ausreichend ist, einfacher und potenziell schneller geparsed werden kann - und ich im Prinzip auch schon einen Parser dafür im Projekt habe.

    Vielen Dank für die Idee!
  • in: Abbildung SQLite in Dateisystem und umgekehrt

    geschrieben von noxious

    horstexplorer schrieb:
    Würde sich da nicht eine noSQL DB eher eignen? (Vermutlich nein da das ganze portabel sein soll denke ich) Da wäre man ja nicht auf eine Struktur angewiesen sondern könnte für jedes Objekt diese einzeln festlegen.
    Ich bin nicht sicher - da ich im Prinzip noch nie mit noSQL gearbeitet habe. Aber nachdem, was ich darüber in Erfahrung bringen konnte, hat noSQL grade bei größeren Datenmengen Performance-Probleme.
    Ich möchte hier noch mal anmerken, dass es sich hierbei um eine reine Datensammlung handelt, wo der schnelle Zugriff(Search&Select) auf die Daten wichtiger ist, als das Einfügen, da die Daten am Ende, wenn sie ein mal eingefügt sind, (in der Regel) nicht mehr bearbeitet werden - ich würde also aus Performance-Gründen eher dazu tendieren, die Daten von Hand in die Datenbank einzutragen, als dass ich im Endprodukt Performance-Einbrüche habe.
    Möglicherweise hast du dazu ja einen größeren Erfahrungsschatz, was die Performance-Probleme von noSQL angeht? Und welche Probleme bringt noSQL mit der portabilität mit sich?

    horstexplorer schrieb:
    In SQL würde ich das in etwa so lösen:
    Was ja im wesentlichen ein ähnlicher Ansatz ist, wie ich ihn verfolgte. Mein Ansatz war ja:
    1. Die Ordner im Zielbereich einlesen
    2. Für jeden Orner Eine Map<string,string> anlegen,
    3. Durch den Ordner der jeweiligen IDs iterieren
    4. Dateinamen zu Feldname und Datentyp parsen.
    5. wenn ein neuer Feldname "als Dateiname" existiert, wird dieser Feldname und der dazugehörige Datentyp in die Map eingefügt.(map<feldname, datentyp>)
    6. Aus der Map eine SQL-Abfrage erstellt, welche die Tabelle generiert
    7. Die Daten eintragen.

    Das Problem ergibt sich im wesentlichen bei Punkt 4 - das Parsen der Dateien in Feldname und Datentyp.

    horstexplorer schrieb:
    Das würde aber dazu führen das, sagen wir wir haben 3 Objekte (A,B,C) mit den Datentypen X,Y,Z; Dann wäre ja immer dort eine Lücke wo ein Objekt einen Datentyp nicht hat.
    Das ist im wesentlichen kein Problem - in einigen Fällen ist das sogar absehbar und so gewollt. Im Endprodukt wird selbstverständlich die Existenz und validität der Daten überprüft.

    horstexplorer schrieb:
    Persönlich finde ich die Wahl mit der getrennten Tabelle etwas schöner - man könnte so bestimmten Nutzern verschiedene Rechte auf verschiedene Datentypen geben und hätte das ganze etwas sauberer getrennt.
    Mehrbenutzer-Systeme spielen eigentlich keine Rolle. Ich benutze SQLite lediglich, um auf die recht mächtigen Search&Select--Funktionen zugriff zu haben und auf ein eigenes prorietäres Format zu verzichten - letzteres neben der offensichtlichen Zeitersparnis halt auch aus dem Grund, dass jeder die Daten auch außerhalb des Programms lesen können soll. Es wird keine Client/Server-Anwendung. Da würde sich SQL ja allgemein weniger anbieten, sondern ich würde auf eine REST-API oder ähnliches zurück greifen. Letztenendes haben also sowieso alle Leute Zugriff auf die Daten, mein (End-)Programm stellt im Prinzip nur eine Option zur Präsentation der Daten dar.

    Falls ich da nicht eindeutig war: Es geht mir nicht darum, eine feste Datenbank-Struktur zu haben, sondern darum, die Datenbank-Struktur und die beinhalteten Daten im Dateisystem bearbeiten zu können. Ich will im Prinzip die ganzen manuellen "CREATE TABLE"- und "INSERT"-Operationen verallgemeinert automatisieren. Das ganze wird im Prinzip nur ein mal pro Build aufgerufen - die Performance vom Meta-Programm spielt also ansich kaum eine Rolle, während sie im End-Prozess kritisch ist. Wären die ganzen Search&Select-Funktionen von SQL nicht so mächtig, würde ich wohl einfach auf zip oder sogar komplett auf ein Container-Format verzichten.
    Auf der anderen Seite habe ich jetzt wohl schon so viel Zeit in die Lösung dieses Problems gesteckt, dass eine manuelle Lösung letztenendes wohl doch schneller gewesen wäre.
  • in: Eure Vorbereitung auf die Covid-19 Pandemie

    geschrieben von noxious

    micropower schrieb:
    Also erst mal die Frage: Seid ihr aktuell in Panik
    Nein.

    micropower schrieb:
    Habt ihr euch etwas mit Nahrungsmitteln eingedeckt, damit bei einer möglichen Eindämmung der Krankheit die Behörden eine Woche Zeit haben um alles zu organisieren?
    (wäre blöd wenn man raus muss um etwas zu Essen zu holen und die Krankheit gerade tobt)
    Okay, zum einen: Nicht heraus gehen ist wohl das schlimmste, was man tun kann. Die Krankheit verbreitet sich eher in geschlossenen Räumen, als an der frischen Luft.Sich in geschlossenen Räumen aufhalten schwächt das Immunsystem, was den Virus erst gefährlich macht. Wenn man also etwas meiden sollte, sind das geschlossene Räume.

    micropower schrieb:
    Was kauft ihr ein (als Vorbereitung)?
    Nagelscheren.

    micropower schrieb:
    Die Statistiken aus China geben eine durchschnittliche Sterblichkeit von 2,8% an.
    Bei Menschen die über 80 Jahre alt sind ist sie 25%.
    Bei >60 Jährigen noch 8%.
    Bei Menschen die <40 Jahre alt sind nur noch 0,2%.
    Bei Kindern gab es scheinbar noch keine Todesfälle.
    Die Sterblichkeit ist alles in allem halt etwas höher als bei einer gewöhnlichen Grippe. Und niemand rennt bei einer Gripppe-Welle kreischend mit den Händen wedelnd im Kreis und meint, die Welt würde unter gehen.Das "neue" an Corona, aka Covid-19 aka SARS-CoV-19 ist im wesentlichen seine Antibiotika-Resistenz. Gesunde Menschen brauchen nicht mal eine behandlung - der einzige Grund, weshalb sie das behandeln lassen sollten ist, um nicht doch den einen oder anderen anzustecken, dem das ganze dann gefährlich werden könnte.
  • in: Abbildung SQLite in Dateisystem und umgekehrt

    geschrieben von noxious

    horstexplorer schrieb:
    Da würde ich zum Speichern der Daten erstmal JSON bevorzugen - einfach weil man an die Keys innerhalb der Objekte problemlos wieder ran kommt und damit sehr flexibel Unterwegs ist.
    JSON war die erste Idee, aber SQL bietet einfach Vorteile, die JSON nicht hat.So ist es beispielsweise vergleichsweise schwierig, Binärdaten in JSON abzulegen, ohne sie vorher in ein weniger effizientes Format wie base64 umzuwandeln. Des weiteren hat SQL schon diverse Search-Insert-Delete-Undsoweiter-Operationen implementiert, welche bei JSON im wesentlichen erst "neu erfunden" werden müssten. Zudem mag ich SQL.

    horstexplorer schrieb:
    Oh das hatte ich ganz überlesen. warum sollte das ganze dynamisch funktionieren wenn ich fragen darf? Die Daten könnten doch in einem einheitlichen Format existieren und der Code drum rum würde die entsprechende Funktionalität bereitstellen. Vermutlich ist mir nicht ganz klar was genau du damit vor hast bzw was das ganze darstellen soll.
    Natürlich darfst du fragen.
    Es geht hierbei nicht um einen "Enduser"-Prozess, sondern im wesentlichen um eine Komfort-Funktion, um mir das erstellen und bearbeiten der Daten für einen "Enduser"-Prozess zu erleichtern. (im wesentlichen ein mal im build prozess aufgerufen, also ein META-Programm) Es steht noch nicht fest, welche Daten vorhanden sind und welcher Art diese sind. Ich will nur recht zügigen Zugriff darauf, wenn ich diese Daten brauche, ohne jedes mal das Parsen von Dateien neu zu erfinden.
    Es soll im wesentlichen wie ein Notizblock sein: Man weiss noch nicht, ob man diese Daten braucht, aber man will dem Endprozess Zugriff darauf erlauben, falls man sie benötigt.
    Letztenendes kann man das ganze auch kindisch beantworten mit einem: Ichwillaber-ichwillaber-ichwillaber! *stampf*

  • in: Abbildung SQLite in Dateisystem und umgekehrt

    geschrieben von noxious

    Moin,

    ich habe ein kleines Projekt, wo ich größere SQLite3-Datenbanken mit entsprechenden Daten ausliefern möchte. Dabei möchte ich diverse Dinge in den SQLite-Tabellen speichern - von reinen INT oder TEXT-Feldern, bis hin zu BLOB-Elementen wie Bildern und ähnlichem.

    Nun stehe ich vor der Aufgabe, diese Felder zu füllen - und da sich die Daten nicht zwangsweise aus reinen Rohdaten zusammen stellen, sondern halt auch zum Beispiel Bilder darin vorkommen, welche vorher manuell erstellt/bearbeitet werden müssen, bietet es sich eigentlich an, diese in einem Dateisystem zu bearbeiten und unter entsprechenden Namenskonventionen dann in die Datenbank eintragen zu lassen. Diesen Vorgang wollte ich nun mehr oder weniger automatisieren.

    Das Problem ist, dass ich nicht nur die Inhalte, sondern auch die Tabellen-Struktur dynamisch anpassbar machen will. Kurzum: Aus dem Dateisystem soll später automatisiert heraus gelesen werden, wie die Tabelle heißt, welche Felder sie hat und wie diese zu verstehen sind. Für die einfacheren Dinge habe ich mir dann ein format ausgedacht wie
    ./tabellen_name/id/feldname.TEXT
    ./tabellen_name/id/feldname.INT
    ./tabellen_name/id/feldname.BLOB
    Und so weiter. Die Interpretation sähe dann in etwa aus wie
    ResourceFile * ResourceFile::interpretFileSystem(std::string path, std::string filename, TreeNode * parent)
    {
        for(const auto & table : std::filesystem::directory_iterator(path)){
            if(table.is_directory()){
                std::map<std::string, std::string> values;
                std::string table_name = table.path().filename();
                for(const auto & item : std::filesystem::directory_iterator(table.path())){
                    if(item.is_directory()){
                        std::string item_id = item.path().filename();
                        for(const auto & value : std::filesystem::directory_iterator(item.path())){
                            std::string data_type = "";
                            std::string data_name = "";
                            if(value.is_regular_file()){
                                std::string filename = value.path().filename();
                                if(filename.compare(filename.length() - 4, 4, "TEXT") == 0){
                                    data_type = "TEXT";
                                    data_name = filename.substr(0, filename.length() - 5);
                                    values.insert_or_assign(data_name, data_type);
                                }
                                /*
                                    [...]
                                */
                            }
                        }
                    }
                }
                std::string sql = "CREATE TABLE IF NOT EXISTS `" + table_name + "` ( `id` INT PRIMARY KEY NOT NULL";
                for(const auto &pair : values){
                    sql += ", `" + pair.first + "` " + pair.second;
                }
                sql += " );";
                // [...]
            } 
        }
        // [...]
    }
    Als ich damit anfing, fiel mir schnell auf, dass das ganze doch erhebliche Schwachstellen hat - wo beispielsweise das Dateisystem schnell mal mit der Namenskonvention kollidiert. Zum Beispiel stellen sich einige Bildeditoren wie GIMP ziemlich an, wenn es darum geht, Dateien mit veränderter Dateierweiterung richtig zu laden/speichern - es interpretiert Bilder offenbar anhand der Dateinamen-Erweiterung, was ich für ziemlich schräg halte, da der Dateiindikator aka "Magic Number" den Dateityp ja eigentlich ziemlich eindeutig bestimmen sollte.
    Kurzum: Schwergewichtige Workarounds schaffen oder das Konzept überarbeiten.

    Eine weitere Idee wäre gewesen, die Tabellen-Struktur in einer Datei im Wurzelverzeichnis einer jeden Datenbank festzulegen - was aber meiner Meinung nach keine zu bevorzugende Lösung ist, da man dann immer zwei Dateien editieren muss. Da könnte ich auch einfach die Datenbank in einem Datenbank-Editor(SQLite-Browser oder ähnlichem) öffnen und anpassen.

    Der letzte Weg wäre natürlich das Schreiben eines eigenen Editors - was ich aber wenn möglich vermeiden möchte.

    Habt ihr möglicherweise eine Idee oder Anregung, wie man damit umgehen kann? Hat jemand schon mal etwas ähnliches gemacht?

    PS: Sorry für den Code - der war eher so als "Proof of Concept", bzw. "Work in Progress" gedacht und ist deshalb weder kommentiert, noch wirklich gut oder sinnvoll strukturiert. Konstruktive Kritik nehme ich dennoch gerne entgegen. Der ganze Funktionsrumpf kann eigentlich ignoriert werden - Das ganze ist Teil der Klasse ResourceFile, der TreeNode-Pointer ist nur dafür da, weil das ganze später über eine zentrale Speicherverwaltung gemanaged wird und dadurch das ganze mit new und delete weg fällt. Also für den Fall unwichtig.
  • in: Multiplayer-Games mit PHP

    geschrieben von noxious

    mehralsnurradio schrieb:
    Ich habe ein PHP-Multiplayer-Game programmiert, etwas ganz simples. Das ganze läuft über Datenbanken und POST-Variablen. Nun habe ich des öfteren gehört, dass es unsicher ist, über PHP Multiplayer-Games zu programmieren und konnte bisher aber nichts im Netz finden.
    Mir ist bewusst, dass es umständlich ist mit PHP, weil die Seite immer aktualisieren muss, aber ich würde ungern wegen ein, zwei kleinen Spielen eine neue Programmiersprache anfangen.
    Oder gibt es da eine einfache Sprache oder Variante, welche auf Lima-City Webspace läuft?
    Den Anbieter würde ich nämlich auch ungern wechseln.
    Und was ist eigentlich an den Sicherheitsbedenken dran?
    PHP ist ansich - wie so ziemlich jede andere Programmiersprache - nicht "unsicher". Sicherheitslücken entstehen in der Regel durch eine Falsche Bedienung der Programmiersprache.

    Ob PHP nun für ein Spiel geeignet ist, hängt sehr stark von dem Spiel ab. Es gibt jede Menge "Multiplayer-Games", welche in PHP geschrieben sind - man nennt sie auch "Browsergames". Wenn du sehr experimentier-freuding bist, gibt es da draußen sogar Compiler, welche dein PHP dann in eine Binary übersetzen. Wenn du dann noch entsprechende Libraries für ne GUI und ähnliches findest, lässt sich theoretisch sogar etwas halbwegs Systemnahes in PHP programmieren. Letzteres macht in der Regel wenig Sinn, weil PHP einfach nicht dafür ausgelegt ist, aber es ist nun mal Turing-Vollständig.

    Ob das ganze auf Lima-City läuft, hängt natürlich immer vom jeweiligen Umfang ab. Es gibt sehr leichtgewichtige Browsergames, welche auch Lima-City gehandelt bekommt, aber in der Regel lässt sich sagen, dass Browsergames häufig das System unnötig belasten und so dem Fair-Use-Prinzip widersprechen.

    Abgesehen davon ist reines PHP auch immer etwas... Schwierig. PHP ist Serverseitig - im Frontend hast du dann HTML und bestenfalls Javascript. Vor allem mit letzterem lässt sich die Last auf dem Server doch stark beschränken.

    Zusammenfassend: Möglich sicher, es ist auch möglich, das ganze sicher zu machen. Aber ob das nun empfehlenswert ist... Fraglich.
  • in: Einfügen von Bildern via CSS3

    geschrieben von noxious

    Hallo,

    folgendes Problem: Ich möchte in eine Dropdown-Navigation kleine Icons einbinden, um die Navigation ansprechender zu gestalten Der Schwierigkeitsgrad entsteht dadurch: Da es sich um reine Design-Elemente handelt, möchte ich das ganze machen, ohne den HTML-Code direkt zu verändern - also ohne konkret Elemente hart Reinzucoden.

    Meine erste Idee war, Unicode-Emojis zu verwenden. Diese lassen sich einfach über Codepoints in
    ::before
    -, bzw.
    ::after
    -Pseudo-Elemente einfügen.Problem an der Sache: Sie sind weder konsistent über unterschiedliche Browser/Platformen, noch ist sicher gestellt, dass sie überhaupt verfügbar sind.

    Beispiel

    Meine erste Idee war, das ganze schlicht über
    .class::before{ content: url('/path/to/image.png'); }
    zu regeln, was jedoch daran scheitert, dass sich das Bild dann nicht mehr dimensionieren oder gar einer Klasse zuordnen lässt.
    Als nächstes hatte ich die Idee, dass man - so wie das Beispiel aktuell aufgebaut ist - ja auch mit
    list-style-image
    arbeiten könnte. Da ich jedoch auch unterschiedliche Bilder innerhalb einer Liste brauche, fällt das leider weg.
    Dann kam mir die Idee, ein leeres Pseudo-Element zu verwenden, welches dann das entsprechende Bild als Hintergrund-Bild bekommt. Leider fällt es mir schwer, hier exakt das Ergebnis (Im Prinzip genau so, wie es im Beispiel aussieht - nur eben konsistent) auf die Reihe zu bekommen.

    Möglicherweise hat ja jemand eine Idee, wie man das sauber auf die Reihe bekommt?
  • in: Raspbian Crontab

    geschrieben von noxious

    marvinkleinmusic schrieb:
    Der Pi hat alle 30 Minuten eine lokale Adresse aufgerufen, welcher ein PHP-Script ausführen soll.
    Der ursprüngliche Befehl (hatte zuvor funktioniert) lautet:
    30 * * * * curl http://192.168.178.2/external_ip.php
    Das ist so ja erstmal schon nicht richtig. So (sollte) das ganze jede Stunde auf der dreißigsten Minute ausgeführt werden.(Also um 00:30, 01:30, 02:30 [...]) Wenn du es wirklich jede halbe Stunde(also 00:00, 00:30, 01:00, 01:30 [...]) ausgeführt haben willst, sollte
    */30 * * * pi /usr/bin/curl --silent "http://192.168.178.2/external_ip.php"
    die richtige Aufforderung sein, sofern es da keine Einschränkungen in Sachen curl-/Netzwerk-Nutzung gibt.(
    iptables
    ?) Was du nicht willst, ist curl als root aufrufen - das ist ein erhebliches Sicherheitsrisiko.(Ich weiß, in dem Fall ist es wahrscheinlich "relativ" sicher, aber man sollte es aus Prinzip schon richtig machen.) Richte dir einen Nutzer ein - oder verwende einen bereits existierenden -, der so weit beschränkt ist, dass es grade so funktioniert und trage ihn oben anstelle von
    pi
    ein. Ich habe pi gewählt, weil das bei mir relativ problemlos funktioniert - ist aber systemabhängig.

    marvinkleinmusic schrieb:
    Was mir schon helfen würde, wäre eine Option um einen Cronjob manuell auszuführen.
    Ich fürchte, die Option gibt es nicht. Ich wüsste zumindest nichts davon. Man könnte alternativen basteln, welche aber letztenendes nur darauf hinaus laufen, dass man den Befehl manuell heraus sucht und dann startet.
    Zum debuggen lohnt es sich immer, die Ausgabe des Befehls in ein Log zu pipen (über ein angefügtes
    >> /path/to/temp.log 2>&1
    ) und/oder die Befehle mit Debug-Informationen in ein Bash-Skript zu verpacken, welches dann von crontab aufgerufen wird.(Natürlich sollte man da die Option
    --siltent
    aus curl weg lassen.)
  • in: Zum Thema "Fridays for Future"

    geschrieben von noxious

    micropower schrieb:
    @noxious
    Du verstehst nicht dass es nicht deine Entscheidung ist und es ist auch nicht mal die Entscheidung Deutschlands ob wir die Klimaerwärmung in den Griff bekommen. Fakt ist dass Deutschland in den nächsten paar Jahren immer mehr erneuerbare Energien nutzt. Die ganzen anderen Länder auf der Welt handeln aber nach ihrem eigenen Ermessen, da kann Deutschland oder auch Europa keinerlei Einfluss drauf nehmen. Fakt ist auch dass es erst mal mehr Kohlekraftwerke auf der Welt geben wird.
    Weil es also andere Menschen gibt, die Menschen ermorden, sollten wir doch gleich Mord legitimieren?
    Wir sind verantwortlich für unser Handeln, nicht für das der anderen. Wenn wir die CO2-Emissionen nicht in den Griff bekommen, werden die anderen es ganz sicher nicht tun. Wenn wir hingegen die CO2-Emissionen in den Griff bekommen, ist das zwar kein Garant dafür, dass die anderen es auch tun, aber wir sind dadurch in einer besseren Verhandlungsposition mit anderen Ländern. Wollen wir, dass die Welt ganz sicher zugrunde geht oder lassen wir ihr zumindest eine geringe Chance?

    micropower schrieb:
    Wenn du ernsthaft der Meinung bist dass wir alle sterben werden wenn der CO2 Ausstoß nicht gestoppt wird ... der wird in den nächsten 50 Jahren erst mal weiter ansteigen ... dann gibt es wohl nur ein mögliches Ergebnis auf welches du dich einstellen musst.
    Das ist keine Meinung - das ist schlicht die Datenlage.Wir spüren schon heute Einbrüche in der Landwirtschaft. Und das ganze wird jetzt noch ca. 800 Jahre lang schlimmer - selbst wenn wir CO2-Neutral werden. Es ist abzusehen, dass wir in einigen Jahrzehnten kaum mehr in der Lage sein werden, die deutsche Bevölkerung zu ernähren. Ganz davon abgesehen, wie es in anderen Ländern aussieht und welchen Einfluss dies auf Deutschland hat.

    micropower schrieb:
    Wenn man jetzt einfach mal die Realität betrachtet und die Wahrscheinlichkeiten, dann fällt aber auf dass Deutschland allein den Klimawandel nicht stoppen kann. Nicht mal wenn ganz Europa und die USA zu 100% regenerative Energien nutzen würden könnte man es stoppen.
    Das lässt sich so nicht sagen. CO2-Neutral zu werden ist ja in keinster Weise das Ende der Kette - wir können eine erhebliche negative CO2-Billanz aufbauen, wenn wir uns nicht nur auf den Energie-Sektor fokussieren. Aber du hast recht: Es ist unwahrscheinlich - und unnötig - dies ganz alleine zu schaffen.

    micropower schrieb:
    Die Menschen benötigen immer mehr Energie und zusätzlich gibt es immer mehr Menschen in den verschiedenen Ländern. Man versucht diesen Energiebedarf mit regenerativen Energien und Hilfen bei der Transformation der Netze in die richtige Richtung zu lenken. Durch die instabile Situation in Afrika ist das aber schwierig, die Projekte könnten von heute auf morgen irgend welche Probleme bekommen die einen weiteren Betrieb unmöglich machen.
    Nein, wir benötigen nicht immer mehr Energie. Wir verbrauchen nur immer mehr. So sind es im wesentlichen die ärmsten Gegenden, welche am Bevölkerungsreichsten sind - aber am wenigsten CO2 emittieren. Das Problem ist, dass wir uns an den Wohlstand gewöhnt haben, den wir uns auf Kosten der Natur "geliehen" haben, ohne irgendein Konzept, diese Schulden jemals wieder begleichen zu können. Milliardende Menschen leben uns vor, wie man es besser machen kann. Warum sollte das hier unmöglich sein?

    micropower schrieb:
    So lange kein kostengünstiger Energiespeicher gefunden worden ist, so lange wird auch der Traum von 100% regenerativen Energien ein Traum bleiben. Da kann man natürlich dagegen argumentieren dass wir ja alle sterben werden. Nur leider stehen dem die begrenzten Ressourcen und eine fehlende Technologie entgegen.
    Wie schon gesagt: Regenerative Energien wären schön, die Abwesenheit von Alternativen legt aber nur einen Schluss nahe: Wir müssen unsere Ansprüche zurück fahren. Das Problem ist viel mehr, dass viele Menschen diese Option nicht mal sehen wollen.
  • in: Zum Thema "Fridays for Future"

    geschrieben von noxious

    micropower schrieb:
    Deutschland wird vollkommen auf erneuerbaren Energien setzen können, aber nur wenn das Problem des Energiespeicherns gefunden wurde.
    Du verstehst noch immer nicht, was das Problem ist.
    ES IST NICHT UNSERE ENTSCHEIDUNG.
    Wir haben gar keine Wahl.
    Die Natur betreibt da so eine Art Geiselnahme: Entweder wir machen was sie verlangt, oder sie tötet uns alle. Und es gibt nichts, was wir ernsthaft dagegen tun können.
  • in: Zum Thema "Fridays for Future"

    geschrieben von noxious

    micropower schrieb:
    @noxious
    Richtig, wir sind im wesentlichen (zumindest mit-) verantwortlich für den IS und den damit einhergehenden Flüchtlingen.

    Was hat du persönlich dafür getan dass irgend ein Unheil auf der Welt passiert ist?
    Was spielt meine persönliche Angelegenheit da für eine Rolle? Du wirst nicht persönlich, sondern als Land dafür verantwortlich gemacht. Ich meine: Das ist doch der Schwachsinn an der ganzen Sache. Die Leute wollen nicht dafür verantwortlich gemacht werden, was schwachsinnige Politiker tun, aber wählen Politiker, welche öffentlich proklamieren es schlechter zu machen.Wir leben in einer Demokratie - wir sind DIREKT dafür verantwortlich, was Politiker tun. Denn wir gaben ihnen diese Macht.

    micropower schrieb:
    So einfach geht das natürlich nicht.
    Doch, ist es.

    micropower schrieb:
    Entweder ALLE werden gleichmäßig spüren dass die Stromversorgung einbricht oder keiner. Da der Strom europaweit verteilt wird um eine Versorgungssicherheit zu erlangen müsste quasi in ganz Europa der Strom ausfallen. Das funktioniert also nicht.
    Das widerspricht nicht im Geringsten meiner Aussage. Ich sprach von den wirtschaftlichen Konsequenzen. Diese schlagen im Osten möglichwerweise stärker ein - aber...
    Nehmen wir an, es gäbe eine Gruppe von Attentätern, deren Ziel es ist, jeden Menschen auf der Erde zu töten. Wenn du erkennst, dass einer von denen direkt vor dir steht, würdest du dir da ernsthaft sorgen darüber machen, wie sich die Abschaffung von Attentätern auf die Deutsche Wirtschaft auswirkt? Oder würdest du wollen, dass Attentäter augenblicklich verboten werden?

    micropower schrieb:
    Die in Bayern haben letztens die Zone in der kein Windkraftwerk gebaut werden darf auf 5h gesetzt. Das heißt dass eine 200m hohe Anlage 5*200m=1km weit zur nächsten Siedlung entfernt sein muss. Das ist auch der Grund weshalb dieses Jahr noch keine einzige Windkraftanlage genehmigt wurde.
    Nicht nur dass das Wachstum null ist, da die Förderungen entfallen überlegen sich die Firmen die Anlagen zurück zu bauen = Abriss.
    Hier geht es wieder ausschließlich um "Whataboutism". Man will genau sowas stoppen.

    micropower schrieb:
    Ich würde auch gerne mit einem E-Auto durch die Gegend fahren, aber es sind eben viele Dinge noch nicht geklärt und die Unternehmen bauen/entwicklen auch oft in die falsche Richtung.
    Okay, du hast die Aussage nicht verstanden: Wenn du nicht kannst, dann musst du halt. Ganz einfach.Was wir "müssen" ist überleben. Das heißt: Auf fossile Energieträger weitestgehend verzichten. Alles andere ist optional.

    Alles im Allem verstehst du offenbar nicht, dass der Kohleaustieg nicht in etwa etwas ist, was mir machen können.Es gibt keine Alternative. Wir müssen aus der Kohle- und Öl-Industrie aussteigen - nicht in 10 Jahren, nicht heute, sondern vor 30 Jahren. Heute können wir nur noch Schadensbegrenzung betreiben. Was wir aktuell machen ist Kredite aufnehmen - ohne Konzept, diese je zurück zahlen zu können. Die Natur fordert schon heute ihren Tribut - und das wird sich in der Zukunft noch erhöhen. Es spielt keine Rolle, welche Begründungen da hervorgezaubert werden.
  • in: Zum Thema "Fridays for Future"

    geschrieben von noxious

    micropower schrieb:
    Du siehst zum Beispiel die Leute welche nicht wollen dass Windkraftanlagen "zu nahe" an ihrem Grundstück errichtet werden oder Leute welche den Bau von Stromtrassen unterbinden.
    Deshalb muss die Kohlekraft weg - wenn der Kühlschrank nicht mehr läuft, werden die sich 'ne Windkraftanlage in ihrer Nähe wünschen.

    micropower schrieb:
    Wir werden weiterhin, eine ganze Zeit lang immer noch Öl, Gas und Kohle verbrennen müssen.
    Müssen wir nicht. Wir haben Jahrtausende ohne Öl, Gas und Kohle überlebt - rein mit Wind und Wasserkraft. Viele wollen Öl, Gas und Kohle verbrennen.
    micropower schrieb:
    Wir müssen darauf möglichst schnell zuarbeiten, aber das würde auch beinhalten dass zum Beispiel der Preis für Benzin/Diesel angehoben wird um Technologien wie "Energie zu Gas" eine Chance zu geben um hier Fuß zu fassen.
    Richtig - wir müssen die Preise für Benzin/Diesel anheben.

    micropower schrieb:
    Ja, es gibt in China Ausbeutung von Arbeitern und noch schlimmere Dinge. Das hat großteils mit dem Drang zu tun viel Geld zu verdienen und schnell reich zu werden.
    Nun, die Chinesen sind nicht ganz dumm - die können sich ausrechnen, dass sie bei einem Durchschnittsverdienst von rund 6000€ im Jahr ziemlich lange brauchen, um "Reich" zu werden.Ich rede hier nicht von "vor 50 Jahren", sondern "jetzt".

    micropower schrieb:
    Schau dir mal Deutschland an, wir (Sigmar Gabriel - SPD) haben den Saudis viele Waffen verkauft. Die Saudis finanzieren den IS und haben ihn logistisch und mit neuen Rekruten ausgestattet. Das ist den Politikern bekannt (von CDU und Grünen-Politikern schon gehört). Der IS ist ein Saudisches Konstrukt um den Weg für eine Mittelmeerpipeline frei zu machen die dann durch Syrien verläuft.
    Richtig, wir sind im wesentlichen (zumindest mit-) verantwortlich für den IS und den damit einhergehenden Flüchtlingen. Was hat das ganze nun damit zu tun, ob das Mitgefühl der Medien für Chinesische Kindersklaven "echt" ist?
  • in: Zum Thema "Fridays for Future"

    geschrieben von noxious

    micropower schrieb:
    @noxious
    Da ich einige Kommilitonen hatte die aus verschiedenen Ecken Chinas stammten und ich auch etliche Berichte über das Land gesehen habe denke ich dass ich ganz gut mitreden kann, was China betrifft. [...]
    Okay, offenbar hast du da ein kleines Defizit, wie Armut funktioniert: Armut misst sich nicht daran, wie reich ein Land ist. Armut misst sich daran, wie viel die ärmsten davon haben. China ansich ist ein sehr reiches Land und nicht umsonst eine der größten Industriemächte der Welt. Aber dieser Reichtum ist zum einen regional sehr ungleich verteilt - auf dem Land herrscht erhebliche Armut. Es gibt dort lediglich keine größeren Hungersnöte mehr, weil die chinesische Regierung die Agrarsteuer abgeschafft hat. Zum anderen ist sie auch innerhalb der "Reichen" Regionen sehr ungleich verteilt: China hat(Neben Hongkong - was ja praktisch dazu gehört) den höchsten Gini-Indext aller entwickelten Industriestaaten. Das liegt unter anderem daran, dass dort Menschen, unter anderem auch Kinder, kommerziell ausgebeutet werden. Von dem "Reichtum" im China haben die so gut wie gar nichts.

    micropower schrieb:
    Das Mitleid welches hier in den Europäischen Medien geheuchtelt wird, das können sich die Leute hier echt schenken.
    Ja, weil es ja absolut unmöglich ist, dass es empathische Menschen gibt.

    micropower schrieb:
    Ich finde Braunkohle auch doof, da ist auch viel Schwefel enthalten, es stinkt (jedenfalls wenn man sie privat verfeuert) und es werden dafür ganze Dörfer abgebaggert. Ich würde es auch toll finden wenn diese Technik weg wäre. Es geht aber nicht. Einerseits würde man den Osten damit einen letzten verbliebenen Wirtschaftsträger und Arbeitgeber entfernen und außerdem wäre man dann von Westdeutschem Strom abhängig.
    Und wieder diese alberne Versessenheit, mit der Natur verhandeln zu wollen.Dramatisch gesagt: Wir machen es oder wir sterben alle.Da ist kein Raum für "aber es macht uns so abhängig" oder "das kostet Jobs". Es kostet alle Jobs, wenn wir es nicht machen.

    micropower schrieb:
    China rüstet Braunkohlemäßig gerade sehr stark auf, die verbrennen bald weit aus mehr Braunkohle als Europa jemals einsparen könnte.
    Was spielt es für eine Rolle, was China da macht? China sperrt Regierungskritische Seiten im Internet - sollen wir das jetzt auch machen? China geht mit Waffengewalt gegen Demonstranten vor - wünschen wir uns sowas? Ansonsten ist die Aussage ja mal sowas von trivial. Wenn wir anfangen uns am schlechteren zu orientieren, können wir nur schlechter werden.
  • in: Zum Thema "Fridays for Future"

    geschrieben von noxious

    micropower schrieb:
    Also die Kinder, welche dort in den HighTec-Fabriken Elektronik zusammenbauen, die sind ganz sicher keine Sklaven.
    Wenn du das so sehen willst. Für mich ist es Sklaverei, Kinder Auszubeuten und zur Arbeit zu zwingen - egal mit welchen Mitteln man dies macht.

    micropower schrieb:
    [...]
    Das klingt alles so ein wenig, als würdest du annehmen, mit der Natur verhandeln zu können.Der ist es jedoch vollkommen egal wie viele Arbeitsplätze da verloren gehen - wenn wir nicht kuschen, löst sie das Problem, indem sie diese Arbeitsplätze(Und wahrscheinlich auch gleich die Arbeitnehmer) auslöscht. Es ist ihr auch vollkommen egal, ob wir unsere Keller mit Akkus vollstellen müssen - wenn wir es nicht tun, stellt sie unsere Keller mit dem Atlantik voll. Selbst falls wir all das nicht auf die Reihe bekommen - dann müssen wir halt ohne Strom leben. Denn sonst zieht uns die Natur den Stecker.

    Die Grünen haben in sofern unrecht: Braunkohle kann nicht einfach so weg, sondern sie muss einfach so weg. Natürlich wäre es schön, wenn man Lösungen für genannte Probleme findet, aber wenn nicht, dann haben wir halt Pech gehabt. Sowas passiert, wenn man aufs falsche Pferd setzt.
  • in: Unterstützung gesucht für Logo Korrektur

    geschrieben von noxious

    meadmin schrieb:
    Ja danke für deine Anregungen ... das nehme ich gerne auf. Also überarbeite ich das ganze das Problem ist bei dem Logo könnte ich HILFE gebrauchen. Ich probiere gerne immer selbst aber hier scheitere ich. Bin halt kein Grafik Designer. LG
    Wie stellst du dir denn die "HILFE" vor? Soll jemand für dich das Logo machen? Soll dir jemand erklären, wie du das Logo machst? Soll dir jemand Tips geben, wo du dir Tutorials zu solchen Themen besorgen kannst?
    - Das Logo komplett für dich machen, würde ich für mich erst mal ausschließen.
    - Wie du das Logo machst, erkläre ich dir gerne, wenn du spezifische Probleme dabei hast und erklären kannst.
    - Tips für die Erstellung von Logos... Da fällt mir auf die Schnelle der Youtube-Kanal Logos by Nick ein - der arbeitet viel mit GIMP, aber auch mit Inkscape, etc und erklärt das alles eigentlich recht schön - Schritt für Schritt.
    Problematisch ist, zu erraten, was du dir unter "HILFE" vorstellst.
  • in: Unterstützung gesucht für Logo Korrektur

    geschrieben von noxious

    Wenn du schon mit GIMP arbeitest, würde ich einfach da ansetzen, das Logo komplett neu aufzuziehen - wenn du da nur an den Farben herummanipulierst, bekommst du wahrscheinlich nie ein zufriedenstellendes Ergebnis.
    Als erstes würde ich eine klare Farbwahl vornehmen - bestimme als erstes, welches Gelb du auf der Webseite verwenden willst. Dann nimmst du dasselbe Gelb halt für die "großen" Kreise in den Logos.
    Als nächstes packst du einfach das alte Logo auf eine Hintergrund-Ebene, erstellst darüber eine Ebene und zeichnest auf dieser das Logo mit Kreisen nach. Das sollte eigentlich eine Arbeit von 10 Minuten - in ungeübten Händen vielleicht eine Stunde - sein.
    Aktuell hast du da das Problem, dass du innerhalb des Logos eine Transparenz hast.

    Noch besser würde es möglicherweise mit Vektorgrafiken funktionieren - mit dem Vorteil, dass diese dann auch noch frei skalierbar sind.
  • in: Script Error - unecspected...

    geschrieben von noxious

    mehralsnurradio schrieb:
    Zwei Sachen:

    1. Was stellt meine jetzige Anwendung für Sicherheitslücken / Risiken dar?
    Lässt sich so mit den paar Code-Schnipseln nicht sagen. Allgemein ist das ganze ein großes Ratespiel - deine Fehlermeldungen sind zensiert, deine Dateien unübersichtlich...
    Ich würde damit anfangen, den Code aufzuräumen.

    mehralsnurradio schrieb:
    2. Wir sind Mal wieder vom eigentlichen Thema abgewichen:
    - Die PDO-Meldung ist mit ausgeklammerter Weiterleitung weiter vorne im Thread
    Das Problem ist: Es ist keine Fehlermeldung - es ist eine "Alles okay"-Meldung. Das ist aber - so wie ich das sehe - kein PDO-Problem, sondern ein Logik-Problem. Du hast:
    $pdo = new PDO('mysql:host=localhost;dbname=xxxx', 'xxxx', 'xxxx');
    $statement = $pdo->prepare("SELECT COUNT(*) AS anzahl FROM challenge WHERE Status = 'not started' AND name1 = :name");
    $statement->execute(array('name' => $name)); 
    while($row = $statement->fetch()){
        if($row["anzahl"] > 0){
            // ...
        }else {
            $statementx = $pdo->prepare("INSERT INTO challenge (name1, Ext1, Status, Option)
            VALUES (:name, 'OIMELkill', 'not started', :option)");
            $statementx->execute(array('name' => $name, 'option' => $option));   
    
            echo "\nPDO::errorInfo():\n";
            print_r($pdo->errorInfo());
            // ...
        }
    }
    Was bedeuted, dass du möglicherweise keinen PDO-Fehler hast, aber einen Ausgibst. Kurzum: Kein Wunder, dass er dir da eine "alles okay"-Meldung liefert. Dazu kommt, dass das ganze nicht so funktionieren sollte, wie du denkst. Denn in der Zeile
    $statement->execute(array('name' => $name));
    fehlt ein Doppelpunkt. Es sollte heißen:
    $statement->execute(array(':name' => $name));
    . Dasselbe an der Stelle mit
    $statementx->execute(array('name' => $name, 'option' => $option));
    .Dazu kommt - hier weniger wichtig, aber an anderer Stelle - dass keine ordentlichen Type-Checks stattfinden. Richtiger wäre - wie weiter oben schon bemerkt wurde - mit PDOStatement::bindParam zu arbeiten und die Datentypen zu übergeben.
    Des weiteren zu SQL allgemein: Auch, wenn ich jetzt grade keine ernsthaften Konflikte sehe, sollte man um mögliche Konflikte zu vermeiden, die Namen von Tabellen und Spalten in Gravis verpacken. Des weiteren bietet es sich an, die Enden von SQL-Befehlen mit einem Semikolon zu beenden - es ist nicht notwendig, aber ich würde es als... "Höflich" bezeichnen.
    So wird aus
    SELECT COUNT(*) AS anzahl FROM challenge WHERE Status = 'not started' AND name1 = :name
    ein
    SELECT COUNT(*) AS `anzahl` FROM `challenge` WHERE `Status` = 'not started' AND `name1` = :name;
    Ganz davon abgesehen bietet es sich natürlich immer an, entsprechende Datenbank-Modelle als Klasse aufzusetzen, wo man dann die entsprechenden Daten anfordern kann. Zum einen vermindert das etwaige Fehler, man muss Fehler nur ein mal beheben und es macht den Code übersichtlicher, wenn man Logik von Daten trennt.
  • in: Script Error - unecspected...

    geschrieben von noxious

    witze-dschungel schrieb:
    Du kannst mit isset() überprüfen, ob der index existiert:
    if (isset($_GET['new']) && $_GET['new'] == "yes" AND $_GET['id'] != "3-0"){
    Zum ersten eine rein semantische Anmerkung: Die funktion
    isset
    überprüft nicht, ob ein index existiert, sondern ob er auf etwas anderes als null gesetzt ist. Dies impliziert natürlich seine Existenz, aber in bestimmten Fällen kann das zu Verwirrung führen - beispielsweise wenn der Index auf
    null
    gesetzt ist - hier gibt
    isset
    false zurück, obwohl der Index rein technisch existiert. Die Existenz wird mit array_key_exists geprüft.
    Zum anderen:
    [...] AND $_GET['id'] != "3-0") [...]
    - es sollte
    !==
    heißen, sonst hast du nur einen einfachen Vergleich, wo herumgecastet werden darf, wie es will.

    Was ich empfehlen würde wäre eine vollständige Klasse zum Umgang mit Get-Variablen. Sowas wie...
    class GetVar{
        private $m_key = null;
        private $m_default = null;
    
        public function __construct($key, $default = null)
        {
            $this->m_key = $key;
            $this->m_default = $default;
        }
    
        public function int($default = null)
        {
            if($default === null) $default = $this->m_default;
            if(!isset($_GET[$this->m_key])) return $default;
            if(!ctype_digit($_GET[$this->m_key])) return $default;
            return (int) $_GET[$this->m_key];
        }
    
        public function limitedString($allowedCharacters, $default = null)
        {
            if($default === null) $default = $this->m_default;
            if(!isset($_GET[$this->m_key])) return $default;
            if(preg_match('/[^' . $allowedCharacters . ']/', $_GET[$this->m_key])) return $default;
            return $_GET[$this->m_key];
        }
    
        public function value($default = null)
        {
            if($default === null) $default = $this->m_default;
            if(!isset($_GET[$this->m_key])) return $default;
            return $_GET[$this->m_key];
        }
    
        [...]
    
    }
    
    $get_new = new GetVar("new", "no");
    $get_id = new GetVar("id", "whatever")
    
    if ( ( $get_new->limitedString("A-Za-z") == "yes") && ( $get_id->limitedString("rule") !== "3-0") ) [...]
    Wobei die nur Quick&Dirty geschrieben ist - kann man sicher noch eleganter machen.
  • in: Preisgünstig Tor Unterstützen

    geschrieben von noxious

    bruchpilotnr1 schrieb:
    Ja das ist wohl leider so. Aber gibt es denn keine Möglichkeit dennoch Exit-Nodes bzw. Relais zu betreiben ohne gleich SEK oder was auch immer vor meiner Tür erwarten zu müssen? Wo die Server stehen ist mir ehrlich gesagt ja egal. Hauptsache Es funktioniert.
    Der wohl einzig legale Weg, den ich da sehe ist: Die Politik in diesem Land dahingehend zu beeinflussen, dass sie eine "gesündere" Einstellung zur Störerhaftung entwickeln - wir leben ja in einer Staatsform, in der jeder die Möglichkeit hat - durch Wahlen oder "direktere" Teilnahme - die Politik zu beeinflussen, wenn einem etwas nicht passt.Die Piraten waren dahingehend ja ziemlich aktiv, ehe sie wieder mehr oder weniger ins politische Vergessen verschwunden sind. Alternativ steht natürlich jedem offen, selbst eine Partei zu gründen, welche sich mit dem Thema befasst.
  • in: Einfach ich oder kurz meine Physiotherapie Seite

    geschrieben von noxious

    meadmin schrieb:
    Zitat Du : Über Design lässt sich streiten. Zitat ende. Ja das ist richtig stimmt und mit dem Design stimme ich dir zu nur da hab ich momentan ein Blackout und weiß nicht weiter .....
    Es gibt ja im wesentlichen nur drei Optionen: Du ziehst das Cyan/Gold-Design konsequent durch, tust dasselbe mit einem schlichten Schwarz/Weiß oder erdenkst etwas komplett neues.Ich persönlich bin ein fan von schlichten Designs und finde diese Gold/Cyan-Kombination wenig ansprechend - aber ich habe auch kein Auge für sowas.Was die Farbwahl angeht, gibt es massenweise Tools, welche einem die Wahl erleichtern sollen.(Beispiel)

    meadmin schrieb:
    Bei der Startseite .... hab ich momentan keine Idee wie ich die weiter aufwerten kann.
    Also der obere Teil sieht finde ich schon sehr gut aus - also der Slider und die Elemente darunter. Lediglich das Bild passt da unten nicht so rein. Wenn du auf das Bild bestehst, wäre es vielleicht möglich, es in größerer Form in den Slider mit einzubauen.

    meadmin schrieb:
    Die Kontakt & Termine-Seite fehlt mir die Idee wie das ganze noch ansprechender über die Google Capcha Geschichte weiß nicht ..... Am Wochenende hab ich noch einiges an Arbeit dank dir :D
    Wie schon gesagt: reCaptcha halte ich halt für eine zweiseitige Schneide - wenn ich sowas einbaue, würde ich es zumindest optional machen und erstmal schauen, wie es ohne läuft. Wenn sich der Spam dann anhäuft, kann man noch immer überlegen, ob man seine Besucher damit belästigen will.
    Wie du reCaptcha bei dir einbindest, hängt sehr stark davon ab, wie die Webseite erstellt wurde. Hast du ein CMS benutzt? Es von Hand geschrieben? Für diverse CMS gibt es entsprechende Plugins um reCaptcha zu integrieren. Bei selbstgeschriebenen Seiten gestaltet es sich eigentlich ziemlich einfach: Man legt das Konto bei Google an, wählt das bevorzugte Produkt aus, bindet die JavaScript-Source in den Header ein, bastelt im Zweifelsfall ein kleines div-Element wo der Captcha hin soll und fragt per PHP dann ab, ob der übermittelte Key richtig war. Die Dokumentation dazu ist eigentlich recht einleuchtend und erklärt das Schritt für Schritt. Zusammen gefasst:
    In der HTML-Datei:
    [...]
    <html [...]>
        <head>
            [...]
            <script src="https://www.google.com/recaptcha/api.js" async defer></script>
            [...]
        </head>
        <body>
            [...]
            <form [...] method="POST">
                [...]
                <div class="g-recaptcha" data-sitekey="abcdef123456"></div>
                <input type="submit" [...] />
            </form>
        </body>
    </html>
    PHP-Auswertung:
    <?php
        // Wenn g-recaptcha-response gesetzt ist, als der Captcha gelöst wurde
        if(isset($_POST['g-recaptcha-response'])){
            // Die Daten in $captcha speichern
            $captcha = $_POST['g-recaptcha-response'];
        }
        // Der "Secret Key", den man von Google bekommt, wenn man sich anmeldet
        $key = "abcdef123456";
        // Die IP der Anfrage ermitteln.
        $remoteip = $_SERVER['REMOTE_ADDR'];
        // Eine Anfrage mit den jeweiligen Daten an die recaptcha-api senden.
        $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . $key . 'response=' . $captcha . '&remoteip=' . $remoteip);
        // Der Rückgabewert ist in JSON kodiert - also dekodieren.
        $response_json = json_decode($response, true);
        // Wenn die API "success" zurück liefert:
        if(intval($response_json['success']) == 1){
            // Captcha korrekt!
        }
    ?>
    Es sei angemerkt, dass dies nur eine Übersicht über die grobe Funktionsweise ist und keinesfalls ohne entsprechende Verarbeitung verwendet werden soll.(Oder kann.)
  • in: Einfach ich oder kurz meine Physiotherapie Seite

    geschrieben von noxious

    Also, wo fängt man an... Bei validem HTML.
    - Das
    DIV
    -Element mit der ID "wrapper" wird nicht geschlossen.
    -
    IMG
    -Elemente müssen Alt-Tags haben.
    -
    id
    -Attribute müssen unique sein.
    - Es sind dort einige falsche Slashes drin -
    <i class='fa fa-circle-o-notch'/>
    ergibt so keinen Sinn. Self-Closing-Tags sind nur bei Void-Elementen erlaubt.

    Was die Funktionen der Webseite angeht, alles auf den ersten Blick okay...

    Über Design lässt sich streiten.Jedoch finde ich
    - Das "Design" wechselt praktisch, wenn man auf der Webseite scrollt. Die Farbgebung erscheint inkonsistent, wenn es von dem "Cyan/Gold"-Thema ins mehr oder weniger "Schwarz/Weiss"-Thema wechselt. Ich würde hier eine konsistentere Farbwahl vorschlagen.
    - Ich würde mir an selbiger Stelle überlegen, ob das Logo dort nicht etwas kleiner sein sollte. Man hat sehr viel leeren Raum unter den Links.

    Über den Inhalt:
    Die Startseite
    - Sie sieht etwas leer aus. Unter dem Bild ist eine ganze Menge Blank-Space, was das ganze gefühlt noch leerer erscheinen lässt.
    - Das vereinzelte Bild (Das mit der Unterschrift "Sich wohlfühlen ein Schlüssel um Stressfrei zu werden") wirkt allgemein ziemlich deplatziert.

    Die "Über Mich"-Seite
    - Sie ist ebenfalls ziemlich leer - ich weiß jedoch, dass es schwierig ist, hier passende Informationen zu finden.
    - Du hast einen Umbruch darin, der merkwürdig scheint ("[...] in der Waldstraße und seit 2012 bis" ... "heute [...]")
    - Die Geschichte mit der Plakette würde ich eher auf die Startseite bringen. Man hängt eine solche ja auch nicht irgendwo in eine Ecke eines Hinterzimmers, sondern dort hin, wo sie alle auf den ersten Blick sehen. Wenn man sich schon die Mühe macht, Behindertengerecht zu sein, kann man durchaus auch ein wenig Stolz darauf sein. Möglicherweise stellt die SoVD ja auch "Internet-Fähige" Zertifikate aus, die du dann einbinden kannst.
    - Inhaltlich wäre möglicherweise ein Werdegang/Lebenslauf, eine Liste von gemachten Fortbildungen, etc. sinnvoll.

    Die Leistungen-Seite
    - Die Gliederung ist ein wenig verwirrend. Du hast als erstes die Angebote, dann die Ziele, dann das "Wann" und zuletzt noch mehr Wann. Ich würde es wie eine kausale Folge behandeln: Wann ist eine Physiotherapie sinnvoll, was sind die Ziele, wie kann ich sie erreichen.
    - Ich würde mehr auf die Kostenübernahme durch Krankenkassen eingehen. Es ist ein wesentlicher Punkt, der viele Menschen interessieren wird, wenn sie deine Seite besuchen. Wenn du echten "Service" bieten willst, recherchierst du am besten in welchem Fall (gesetzliche) Krankenkassen das übernehmen, in welchem nicht und wie das bei den individuellen Krankenkassen aussieht.(Wahrscheinlich hast du da auch schon Erfahrungswerte?)
    - Eine Verlinkung zu den entsprechenden Therapieformen auf der "Behandlung"-Seite wäre denke ich sinnvoll.

    Die Behandlung-Seite
    - Nichts dran auszusetzen.

    Die Öffnungszeiten-Seite
    - Ansich gut, aber du hast da nun vier mal "Öffnungszeiten" stehen.(Im Header, in der Navigation, in der Überschrift und im Bild) Ich würde mir überlegen, entweder die Überschrift oder das "Öffnungszeiten" im Bild zu entfernen.(Mit starker Tendenz zur Überschrift)

    Die Kontakt & Termine-Seite
    - Der Screenshot von Google-Maps wirkt laienhaft und ist rechtsbündig irgendwie deplatziert. Zudem bin ich mir ziemlich sicher, dass man bei Bildern von Google-Maps eine Quellenangabe dazu packen muss - zumindest wäre es doch fair.
    - Die einzelne Angabe von Pflichtfeldern halte ich für Überflüssig. Ich würde einfach dazu schreiben, dass alle Felder ausgefüllt werden müssen.
    - Alternativ zur Email-Adresse würde ich mir überlegen, ob man nicht auch eine Telefonnummer hinterlassen können sollte, wo man dann zurück gerufen wird.
    - Die Betreff-Zeile würde ich weg lassen. Es ist im wesentlichen nur ein zusätzliches Feld, welches dem Nutzer keinen Nutzen und dir nur geringfügigen Nutzen bringt. Es ist im wesentlichen eine einseitige Kommunikation, welche am Ende dann nach Bearbeitung der Anfrage extern beantwortet wird. Zudem ist es häufig schwierig, einen expliziten Betreff zu formulieren.
    - Sicherheitsfragen... Naja. Über Sinn und Unsinn von denen lässt sich streiten. Moderne Bots lassen sich davon kaum abschrecken - normale Benutzer hingegen häufig schon. Professioneller würde eine reCaptcha-Lösung aussehen, aber aufgrund der Datenschutz-Problematik schrecke ich immer etwas davor zurück, sowas zu empfehlen. Was meiner Erfahrung nach recht gut funktioniert, ist ein Feld zur Email-Bestätigung, welches per CSS einfach ausgeblendet wird - welches bei normalen Nutzernalso leer sein sollte.

    Insgesamt würde ich zudem mehr Zeit darauf verwenden, die Seite auch für Mobile-Devices zu optimieren. Bisher sieht die Seite auf meinem Handy ziemlich kaputt aus.

    Ich hoffe, das ganze kommt nicht zu "Anti" rüber, weil ich nur Probleme anspreche. Ich meine es wirklich konstruktiv.
  • in: Preisgünstig Tor Unterstützen

    geschrieben von noxious

    bruchpilotnr1 schrieb:
    Das ist eines der Schlimmsten Szenarien, die du dir gerade ausmalst. Die von der Polizei werden doch wohl clever genug sein um erst die IP-Adresse zu besuchen ? Wenn man zb diese IP-Adresse eines Tor Exit Nodes besucht http://130.149.80.199/ dann wird man darauf hingewiesen, dass dies Ein Exit-Node ist und das Funktionsprinzip wird auf englisch erklärt. Und wenn, dann kann man auch Chrome verwenden um den Text zu übersetzen. So dumm kann kein Polizist sein. Um an Informationen zu kommen kann ich denen nicht Helfen. So mal rein Theoretisch könnte zwar ein Programm laufen lassen, was den Gesamten Traffic analysiert, im sinne von Uhrzeit, Datum, Anfrage Ip-Adresse, Angefragte IP-Adresse bzw. Webseite. Das könnte ich laufen lassen aber das wäre zuviel aufwand und es würde dennoch nichts Bringen, da der Node vor Mir garantiert keine Logfiles unbedingt anlegt.

    Aber naja, das mit den Exit-Nodes lasse ich lieber mal sein. Das hab ich aber mir auch schon durch den kopf gehen lassen.
    Es ist ja nicht die Polizei, welche das Urteil spricht - es sind Richter. Und der BGH hat (in diversen Urteilen) beschlossen, dass die Störerhaftung beim Betrieb eines Tor-Nodes nicht gilt. Möglicherweise könntest du dich als Telekommunikationsanbieter registrieren, was dich dann aber nicht von der Pflicht befreit, entsprechende Zugriffe zu speichern und im Zweifelsfall an die Behörden zu übermitteln. (Was den Sinn und Zweck von all dem nicht grade zuträglich ist.) Selbst wenn der Betreiber des vorherigen Nodes dann nicht dasselbe macht, ist er halt in der Verantwortung und du bist aus der Schusslinie. Ob das ganze dann im Sinn der Sache ist und du das Netzwerk damit nicht eher schwächst, als es zu unterstützen, ist natürlich fraglich.

    bruchpilotnr1 schrieb:
    Und genau das ist es. Ich muss ja keinen Exit-Node betreiben. Ich möchte nur dazu beitragen, dass das Tor-Netzwerk wenigstens ansatzweise zu gebrauchen ist in Sachen Geschwindigkeit.
    Wie schon gesagt: Theoretisch bist du damit auf einer "halbwegs" sicheren Seite - dennoch läufst du halt immer Gefahr, dass du in irgendeiner Weise auffliegst. Beim Easterhegg 2018 gab es sehr schöne Erfahrungsberichte darüber, wie ähnliche Unternehmungen(In diesem Fall: Freifunk-Exit-Nodes) in die Hose gehen können. Man sollte sich schon überlegen, ob man den Stress haben will - vor allem, weil man - wie schon weiter oben erwähnt wurde - im zweifelsfall auch noch zivilrechtlich belangt werden kann. Und das kann dann richtig teuer werden. Da sind dann die Kosten für einen Server ein Witz dagegen.
  • in: Preisgünstig Tor Unterstützen

    geschrieben von noxious

    muellerlukas schrieb:
    Der Hoster ist aus der Schusslinie, der nimmt ggf. deinen Server einfach offline wenn nötig.
    Rechtlich gesehen bist aber du dafür haftbar für das was über deinen Server passiert.
    Wenn über einen Server von dir z.B. Bombendrohungen gepostet werden dann wird da niemand vorher klären ob ein ExitNode aufm Server läuft und ob der dafür genutzt wird
    Da heißt es "IP xyz gehört Kunde bruchpilot mit der Anschrift bla.". Schon hast du eine Hausdurchsuchung (oder bei Bombendrohungen sogar einen SEK-Einsatz) am Hals. Das ist im besten Fall nur nervig und peinlich. Im schlechtesten Falle hängt deine Existenz dran.
    Und das unabhängig von der straf- oder zivilrechtlichen Verurteilung.
    Richtig, die Störerhaftung wurde da vom BGH schon häufig abgelehnt.Wovon der bruchpilot hier aber denke ich spricht ist, dass er im Zweifelsfall gar keinen Exit-Node sondern nur ein Relais betreiben will - seine IP also im zweifelsfall nirgendwo ernsthaft auftaucht.Und selbst wenn sie auftaucht, kann ihm die glaubhafte Abstreitbarkeit zugunsten kommen - denn er hat als Relais-Node ja im wesentlichen keine technische Möglichkeit herauszufinden, was sich in den Paketen befindet - hier gibt es in Deutschland afaik noch keine rechtswirksamen Urteile, im Gegensatz zur Störerhaftung. Man hat also zumindest eine realistische Chance, ungeschoren davon zu kommen.
    Dennoch ist das ganze natürlich äußerst kritisch zu betrachten und man sollte sich dringend mit den Konsequenzen auseinander setzen.
  • in: Forum-Restrukturierung

    geschrieben von noxious

    Wenn es um die "Wiederbelebung des Forums" ginge, fände ich anstelle von Domain-Auktionen ja zumindest einen Direktlink ins Forum nach dem Login als hilfreich. Ich meine: Ob man das Forum nun nutzen will oder nicht - es sollte doch zumindest die Option da sein, dort hin zu gelangen. Bisher muss man über diverse Umwege oder über manuelle Eingabe des URL dorthin gelangen.Es ist echt kein Wunder, dass das Forum tot ist - man muss schon wissen, dass es existiert, und es unbedingt finden wollen, um es überhaupt finden zu können - und braucht dann noch eine Weile, auf dem Weg dort hin. Finde ich persönlich äußerst verstörend.
    Domain-Auktionen... Naja. Kurbelt möglicherweise das Geschäft mit den Domain-Verlängerungen wieder an. Aber da Lima-City inzwischen das verloren hat, was es so "individuell reizvoll" gemacht hat... Hätte ich keine Domain hier, wüsste ich nicht, aus welchem Grund ich hier eine bestellen sollte. Da gibt es inzwischen deutlich bessere Angebote zu günstigeren Preisen.
  • in: Header Programmierung Webseite

    geschrieben von noxious

    So auf die Schnelle, würde ich sagen:
    html-Datei:
    <html lang="de">
    	<head>
    		<meta charset="utf-8" />
    		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
    		<title>Domainagentur Markus Kein</title>
            <link rel="stylesheet" href="./stylesheet.css">
    	</head>
    	<body>
    		<img src="/images/logo.png" alt="Logo" class="logo">
    		<nav class="navigation">
    			<ul>
    				<li><a href="#">Dies</a></li>
    				<li><a href="#">sind</a></li>
    				<li><a href="#">Navigations</a></li>
    				<li><a href="#">Items</a></li>
    			</ul>
    		</nav>
    		<div class="content">
    			Hier kommt der Content hin.
    		</div>
            <div class="footer">
                Dies könnte der Footer sein.
            </div>
    	</body>
    </html>

    CSS-Datei:
    body{
        margin: 0;
        height: 100%;
        display: grid;
        grid-template-rows: 100px auto 1em;
        grid-template-columns: 200px 200px auto 200px;
    }
    
    .logo{
        grid-column-start: 2;
        grid-column-end: 3;
        grid-row-start: 1;
        grid-row-end: 2;
        background-color: #ff0000;
    }
    
    .navigation{
        grid-column-start: 3;
        grid-column-end: 4;
        grid-row-start:1;
        grid-row-end: 2;
        background-color: #00ff00;
    }
    
    .navigation>ul{
        list-style-type: none;
        margin: 0;
        padding: 0;
        text-align: right;
    }
    .navigation>ul>li{
        display: inline-block;
    }
    
    .content{
        grid-column-start: 2;
        grid-column-end: 4;
        grid-row-start: 2;
        grid-row-end: 3;
        background-color: #0000ff;
    }
    
    .footer{
        grid-column-start: 2;
        grid-column-end: 4;
        grid-row-start: 3;
        grid-row-end: 4;
        line-height: 1em;
        background-color: #ffff00;
    }
    Natürlich nur als ausbau fähiges, einfaches Beispiel. Für mehr Informationen: Grid-Layouts
    Zudem sei darauf hingewiesen, dass ältere Browser (IE6&Co) damit Probleme haben könnten. Ich persönlich würde Leuten die IE6 benutzen nur ein "Holt euch nen modernen Browser"-Vor's Gesicht knallen, aber naja - gibt Leute, die legen wert auf solche Abwärtskompatibilitäten. Dafür hat man so diesen ganzen Wrapper-Crap nicht mit drin und HTML kann endlich das tun, worin es gut ist.(Design gehört nicht dazu.)
    Die Einfärbung ist nur zur verdeutlichung.
  • in: Einaches Animationsprogramm für Linux

    geschrieben von noxious

    hbss schrieb:
    Blender und Terragen sind bekannt.
    Mit welchem einfachen Tool kann man gifs erzeugen.
    Blender ist - wenn es ums einfache "gifs erzeugen" geht - auch ein totaler Overkill. Blender ist eher dafür gedacht, 3D-Animationen zu erstellen - auch, wenn es diese in gifs verpacken kann.

    Welches Programm da empfehlenswert ist, hängt grundsätzlich davon ab, was du tun willst. Willst du selbstgerenderte 3D-Animationen in ein gif-Format packen? Dann nimm Blender. Willst du (beispielsweise) ein Video in eine gif umwandeln? Dann ist ffmpeg das Werkzeug der Wahl. Willst du eine Serie von selbsterzeugten Bildern animieren? Dann würde ich GIMP empfehlen.(Auch, wenn sich dies im wesentlichen auch mit ffmpeg & complex-filter machen lässt.)
  • in: Nachträglich Inhalt an Platzhalter (smarty) in meine login.p

    geschrieben von noxious

    horstexplorer schrieb:

    Warum sollte DAS nicht gehen?

    Weil PHP so nicht funktioniert.
    Doch, eigentlich schon. Es handelt sich dabei um ein stark vereinfachtes Template-System.

    einsiedler schrieb:
    Hier ein Ausschnitt meiner login.php:
    <header>
    			<h1 class="heading"><span>ICH</span>DU</h1>
    		</header>   		
    		<form class"formular" action="login.php" method="post" accept-charset="utf-8">			
                            {logout}
                            [...]
    		</form>

    <?php 
    const TEMPLATES_FOLDER_PATH = './templates/';
    $_TemplateCardHml = file_get_contents( TEMPLATES_FOLDER_PATH . 'meldung.html' );
    $template = str_replace(
       [ "{meldung}", "{warnung}", "{titel}" ],
       [$meldung, $warnung, $titel ],
       $template);
    ?>
    Reduzieren wir das mal auf das wesentliche. Ich gehe davon aus, dass - nachdem der Logout von statten ging, die login.php angezeigt wird. In der login.php hast du den Platzhalter
    {logout}
    , welcher mit der Meldung gefüllt werden soll, falls man sich ausgeloggt hat. Nun stehst du vor dem Problem, dass
    $template
    gar nicht definiert ist. Ich gehe mal davon aus, dass darin der Inhalt von... login.php stehen soll? Und in
    $_TemplateCardHml
    soll die Meldung 'Logout war erfolgreich' oder ähnliches stehen? Dann wäre das doch relativ einfach:
    <?php
    const TEMPLATES_FOLDER_PATH = './templates/';
    $_TemplateCardHml = file_get_contents( TEMPLATES_FOLDER_PATH . 'meldung.html' );
    $template = str_replace(
       [ "{meldung}", "{warnung}", "{titel}", "{logout}" ],
       [$meldung, $warnung, $titel, $_TemplateCardHml],
       $template);


    Eine bessere Übung wäre jedoch, das ganze Programm zu strukturieren. Heißt: Programm-Logik von Präsentation und Datenmodell trennen.
  • in: Rechteproblem mit Chromium-Entwicklertools (Xubuntu 18.04)

    geschrieben von noxious

    regioweb schrieb:
    Am einfachsten ist es, einen neuen DocumentRoot-Folder in seinem Home-Verzeichnis zu erstellen. In den verschiebt man die Webseiten aus htdocs. Dann muss nur noch der DocumentRoot-Pfad in /opt/lampp/etc/httpd.conf und /opt/lampp/etc/extra/httpd-ssl.conf auf diesen neuen DocumentRoot-Folder geändert werden.
    Stellt sich am Ende folgendes Problem: Der Webserver sollte gar nicht auf /home/user zugreifen dürfen. Rechte wie 755 oder gar 757/777 sind im Home absolut fatal. (Vor allem, wenn ein Webserver Zugriff darauf hat.) Also bleibt am Ende nur die Möglichkeit auf ACL zurück zu greifen, wenn man das sauber machen will.
    Alles in allem also(unter der Berücksichtigung, dass der Benutzer 'user' und der Webserver-Benutzer 'www-data' heißt):
    - Mit
    sed -i.bak 's/\/opt\/lamp\/htdpcs/\/home\/user\/htdocs/' /opt/lamp/etc/{httpd.conf,extra/httpd-ssl.conf}
    das Document-Root ändern. (Und zur Sicherheit ein Backup der alten Datei behalten.)
    - Mit
    setfacl -m "u:www-data:--x" /home/user
    Ausführungsrechte für den Webserver in /home/user geben, damit er das Verzeichnis einlesen kann.
    - Mit
    setfacl -Rdm "u:www-data:rwx" /home/user/htdocs
    dem Webserver Lese/Ausführungs/Schreibe-Rechte auf htdocs einräumen. (Letztere sind optional - in den meisten Anwendungsfällen braucht man die nicht.)

    Die Methode ist aber ganz klar der userdir-Methode unterlegen - welche eben für genau den Zweck entwickelt wurde.Der Punkt ist, dass bei der "DocumentRoot"-Methode andere Benutzer keinen Zugriff auf das DocumentRoot haben. Und auch, wenn an dem speziellen System nun grade keine anderen Nutzer arbeiten, ist es dennoch besser, es richtig zu machen. Die userdir-Methode ist auch nicht deutlich schwieriger einzurichten (Im Prinzip unterscheidet sie sich nur im ersten Schritt.) und verhindert etwaige Konflikte.
  • in: Rechteproblem mit Chromium-Entwicklertools (Xubuntu 18.04)

    geschrieben von noxious

    regioweb schrieb:
    Die Dateien einfach in ein Temporäres Verzeichnis zu kopieren kann eigentlich nicht helfen, weil die CSS-Dateien über PHP-Dateien eingebunden werden und deshalb alles in htdocs bleiben muss. Aber ein Test ergab, das sich ein Ordner im Heimverzeichnis als workspace einbinden lässt, wenn er einem gehört. Ist root der Besitzer, get's nicht. Um sicher zu gehen habe ich natürlich mal den Besitzer von "/opt" geändert, dann kommt aber trotzdem die Fehlermeldung.
    Ich glaube mir dämmert so langsam, wo das Problem liegt - du benutzt XAMPP? Das funktioniert allgemein nicht besonders gut. Wie bereits im Ubuntu-Wiki zu lesen ist:
    Das häufig für Windows empfohlene XAMPP bereitet unter Ubuntu immer wieder Probleme. Da Ubuntu (fast) alle in XAMPP enthaltenen Serverdienste auch über die offiziellen Paketquellen bereitstellt, sollten bevorzugt die Einzelpakete genutzt werden. Konkret wird das im Artikel LAMP erläutert.
    Das Problem ist, dass es eigentlich nicht übrlich ist,
    htdocs
    in
    /opt
    zu haben.
    htdocs
    gehört nach
    /srv
    , alternativ vielleicht noch in
    /var
    .

    Eine mögliche Lösung wäre, die Eigentumsrechte von
    /opt/lamp/htdocs
    auf deinen aktuellen Benutzer zu übertragen. Wenn Chromium sich weiterhin weigert, auf
    /opt
    zuzugreifen, könnte man noch versuchen, einen Link im Homeverzeichnis zu erstellen.

    Die saubere Lösung wäre jedoch, das ganze sauber aufzusetzen. Also Apache, etc. händisch installieren und das document-root in
    /srv
    anzulegen. Dort hat man dann auch keine Konflikte, wenn man die Rechte verändert. (Sofern der apache dort lesen und ausführen darf.)

    Das "Problem", sofern man es so nennen will - ich betrachte es als Feature - besteht auch unter Arch(Kernel 5.1.14, Chromium 75.0.3770.100)
  • in: Rechteproblem mit Chromium-Entwicklertools (Xubuntu 18.04)

    geschrieben von noxious

    regioweb schrieb:
    Es ist halt wiedermal ein Rechte Problem. Also hab ich folgenden Befehl versucht:

    sudo chmod -R 777 /opt
    Schlechte Idee. Zum Beispiel weil dann...

    regioweb schrieb:
    Hat aber nichts gebracht, ausser dass phpmyadmin nicht mehr geht?
    ... Sachen wie PHPMyAdmin nicht mehr funktionieren. Da man nicht weiß, was für Programme da installiert sind und welche Berchtigungen da von nöten sind, kann man auch keine universallösung anbieten, um das zu reparieren. Behelfsmäßig:
    chmod 755  /opt/lampp/phpmyadmin/config.inc.php
    um PHPMyAdmin wieder zum laufen zu bekommen oder gar
    chmod 755 -R /opt
    - letzteres "sollten" die Default-Berechtigungen sein. Mag aber sein, dass spezifische Programme eine spezifische, andersartige Berechtigung voraussetzen.
    755 sollte auch der Originalzustand des /opt-Verzeichnisses sein. Das bedeutet im Wesentlichen: Jeder darf lesen und ausführen, aber nur der Eigentümer(root) darf schreiben.

    Einfach Dinge (vor allem als Root) machen, ohne zu wissen, was man da tut - schlechte Idee.

    Zum Ursprünlichen Problem: Da die Rechte 755 gesetzt sein sollten, sollte im wesentlichen jeder auf /opt lesen können. Deshalb ist es schon weird, dass du da offenbar nicht lesen kannst. Entweder versucht er da also zu schreiben, oder es passiert etwas anderes "weirdes". (Möglicherweise checkt chromium einfach nur auf eine bestimmte berechtigung oder den Eigentümer)
    Als erstes würde ich die spezifischen Dateien, die ich chromium geben möchte einfach ein mal ins heimverzeichnis kopieren. (Bei cp den
    --no-preserve
    -flag nicht vergessen.)
    Wenn dies absolut nicht möglich oder gewollt ist, wäre auch die Änderung des Eigentümers des spezifischen Verzeichnisses via chown denkbar.
    Wenn es dann noch immer nicht geht, würde ich mal versuchen, zu ermitteln, als welcher Benutzer Chromium denn unterwegs ist. (
    ps -u -p $(pidof chromium)
    ). Möglicherweise liegt dort der Haken.
  • in: USB-Kabel Ein/Aus-Schalter - Gibt es so was?

    geschrieben von noxious

    Ja, sowas gibt es. Die Frage ist, ob das wirklich sinnvoll ist - oder ob man sich da nicht tatsächlich lieber um das zugrunde liegende Problem kümmern sollte. Es ist nicht normal, dass der PC hängt, weil ein USB-Gerät angeschlossen ist - auch nicht, wenn es sich um einen "Massenspeicher" handelt. Wenn er dort kein Bootbares System findet, sollte er es in der Bootreihenfolge einfach überspringen. Er sollte erst hängen, wenn er gar kein bootbares System findet.
  • in: Zum Thema "Fridays for Future"

    geschrieben von noxious

    horstexplorer schrieb:
    Eventuell nicht das beste Beispiel aber doch relativ passend ist da das "BIO" Zeug. >>Natürlich ist man dafür, aber "hey 2kg Schwein für unter 5€" wieso also für 'das selbe' deutlich mehr bezahlen.<<
    Naja, ich mache da etwas andere Erfahrungen. Mir begegnen in den Supermärkten eigentlich selten Leute, welche nicht zu Bio-Produkten greifen. Das mag sich regional sehr stark unterscheiden, aber ich denke es ist doch ein klares Zeichen, dass solche Konzepte durchaus von Menschen angenommen werden können. Vor allem, wenn es dann eine gewisse "Basis" gibt, welche sich zu eben solchen "unannehmlichkeiten" hin ziehen lässt, ist es häufig so, dass andere einfach nachziehen.

    Das Problem ist, dass - auch bei den Bio-Sachen - eben viel zu wenig von der Politik aus passiert. Es gibt entsprechende Regelulierungen, aber diese sind zum einen ziemlich lasch, zum anderen gibt es kaum Kontrollen. Und wenn dann doch mal eine Kontrolle zum unpassenden Zeitpunkt kommt, sind die Strafen, welche die entsprechenden Betriebe zahlen müssen - wenn überhaupt - ein ziemlicher Witz. Ich fürchte jedes mal, wenn ich mal wieder davon lese, dass irgend ein Bio-Betrieb hoch genommen wurde, dass die Leute zurück rudern.

    Also ich denke schon, dass Menschen grundsätzlich bereit sind, auch mehrkosten in Kauf zu nehmen, wenn sie wissen, dass sie dafür was gutes tun. Man muss sie halt nur ein mal dazu bringen, über ihren Schatten zu springen.
  • in: Zum Thema "Fridays for Future"

    geschrieben von noxious

    Ich fürchte in der ganzen Debatte geht (gewollt oder ungewollt) immer mehr der eigentliche Punkt unter: Es geht gar nicht so sehr darum wer Schuld ist. Es geht darum, das es so nicht weiter gehen kann. Dieses ganze Schuldzuweisungs-Geplänkel löst das Problem - welches ganz klar existiert - kein Stück. Mag sein, dass ich da einfach nur paranoid bin, aber ich habe das ungute Gefühl, dass eben genau das gewollt ist. Denn solange man sich darum zankt, wer denn nun die Schuld trägt, kann man weiterhin auf unbeschränkten Wirtschaftswachstum um jeden Preis setzen. Bestenfalls verkauft man dann auf den Demonstrationen noch Motto-Shirts mit "u30 sind schuld" und "ü30 sind schuld", welche von Kindersklaven in China, in Fabriken welche ihre Chemieabfälle ungefiltert in die Natur ablassen gefertigt werden und beleuchtet die Szenerie mit Halogenlampen, welche mit Dieselgeneratoren gespeist werden.

    Nur nebenbei: Die Schuldfrage ist doch ganz einfach: Es sind nicht die Kinder, welche SUVs fahren, es sind nicht die Kinder, welche Wegwerfprodukte entwickeln und produzieren, es sind nicht die Kinder, welche die Werbung produzieren und verbreiten, welche suggeriert, dass dies okay wäre, es sind auch nicht die Kinder, welche Gesetze erlassen, deren einzige Priorität das Wirtschaftswachstum ist - um jeden Preis. Die Kinder wurden lediglich in diese - von Erwachsenen - erschaffene Gesellschaft geboren und es ist der Fehler der Erwachsenen, wenn wir diese kaputten Werte an die Kinder übertragen.
    Woran die Kinder die Schuld tragen ist, dass die Umweltdebatte durch "Fridays for Future" aktuell so präsent ist. Damit legen die Kinder zumindest den Grundstein für die Lösung eines Problemes, welches sie in meinen Augen keineswegs verschulden.
    Aber genug davon.

    Zurück zum eigentlichen Problem: Das Problem ist nicht, dass eine Person nun SUV fährt oder eine Person ihren Müll auf die Straße oder in die Natur wirft. Das Problem ist die Mentalität, welche dahinter steckt - und diese gilt es zu bekämpfen. Aber grade die ältere Generation weigert sich, da irgendwelche Abstriche zu machen. Im Gegenteil: Die Mentalität wird überspitzungen und übertreibungen unterstützt. Jemand schlägt vor, mal nicht jeden Tag Fleisch zu essen? Klingt ganz klar nach Zwangsveganisierung. Jemand deutet an, SUVs wären schädlich für die Umwelt? Das sind doch ganz klar Autofahrverbote! Wir müssen Strom sparen? Aber die benutzen doch selbst immer ihre Handys!
    Es geht - und ging denke ich - niemals darum, uns irgendetwas weg zu nehmen. Es geht darum, ein Bewusstsein dafür zu schaffen, dass etwas für die Umwelt schädlich ist - und wie einfach es zum Teil wäre, sehr großen Einfluss darauf zu haben.

    Ein sehr viel größeres Problem sehe ich jedoch darin, dass die Politik gar kein Interesse daran hat.irgendwas daran zu ändern. Im Gegenteil: Man wird im wesentlichen dafür belohnt, Energie zu verschwenden, weil man als Großabnehmer deutlich günstigere Konditionen bekommt. Anstatt die Energiewende ordentlich voran zu treiben, steuert man im wesentlichen gegen, indem man die Voraussetzungen für CO2-Handel erschafft. Elektromobilität wird zugunsten der Automobilindustrie nur so weit gefördert, damit man behaupten kann, man hätte ja irgendwas getan. Der Konsum wird an allen Ecken und Enden gefördert - weil es eben gut für die Wirtschaft ist. Dem hat sich alles unterzuordnen: Die Umwelt, der Bürger, die Freiheit.

    Es spielt im wesentlichen keine Rolle, wer die Schuld daran trägt. Was man ins Auge fassen muss ist: Was sind die Ursachen. Und anstatt seine Energie darauf zu verschwenden, gegen "Fridays for Future" zu argumentieren, sollte man sich möglicherweise einfach denen anschließen. Wenn man gemeinsam dieses Problem löst, ist es am Ende egal, wer die Schuld daran hatte.
  • in: Selbstgehostete Website, die nur im eigenen WLAN erreichbar

    geschrieben von noxious

    horstexplorer schrieb:
    Das ganze war eher im Sinn von 'ich weiß wo es ist' gemeint.
    Wie schon gesagt: Ich sehe da nicht so wirklich das große Problem. Mag aber Auffassungssache sein.

    horstexplorer schrieb:
    Sich eine Domain zu kaufen nur um lokal etwas rum zu basteln ist doch mehr als eine nur leicht übertriebene Maßnahme.
    Ob es nur ums "Rumbasteln" geht, ist ja erstmal dahingestellt. Schlussendlich ist eine Domain ja das, was der TE möchte. Ob er das ganze dann auf sich nehmen will, bleibt am Ende ja seine Entscheidung. Zudem könnte er ja auch eine vorhandene Domain nutzen und nur die DNS-Einstellungen anpassen.
    Nichts desto trotz wird das ganze halt wahrscheinlich sowieso nicht funktionieren.

    horstexplorer schrieb:
    Hier habe ich mich nicht richtig ausgedrückt. Zumindest von dem was ich gelesen habe sollte man solche Aufgaben mit Avahi ( irgendwie mDNS? ) das ganze simpel für alle Endgeräte zum laufen bringen können.
    Wenn ich richtig verstehe was du meinst, ist das ganze natürlich möglich, hat aber ein Problem: Es werden - korrigiere mich, wenn ich falsch liege - keine Subdomains unterstützt, bzw. man muss sich mit dem alias-system von avahi auseinander setzen, welches - wie ich finde - ein ziemliches Chaos ist. (Wahrscheinlich wird es besser, wenn man sich "wirklich" damit auseinander setzt.)
    Aber Natürlich kann man das benutzen, wenn man mit den Einschränkungen leben kann. (Wie bei jeder anderen Lösung auch.)
  • in: Als Anfänger PHP programmieren, allerdings was?

    geschrieben von noxious

    ,
    phyrangork schrieb:
    Obwohl es davon bereits unzähliges im Internet gibt, so ein kleines persönliches Kochbuch,
    an Rezepten die ich kann und eventuell durch einen Filter laufen lassen, wenn ich wo bin
    der dann zb. keinen Paprika will nur Rezepte bekomme, wo eben kein Paprika enthalten ist.
    Eine hervorragende Idee zum lernen.

    Ein paar Ziele, die da hilfreich sind:
    - mysqli - für Datenbankanbindungen. Speziell Dinge wie prepared-statements sind da ein wichtiger Punkt. Wenn es dann noch universeller werden soll (Andere Datenbankformate) kann man sich an PDO heran wagen.
    - Vorteilhaft ist auch gleich, sich an OOP in PHP, speziell in paradigmen wie MVP einzuarbeiten. Sieht am Anfang vielleicht verwirrend aus, es ist aber imho schwieriger, es erst "falsch" (Quotes beabsichtigt) im prozeduralen Stil zu lernen und dann umzulernen, als es gleich richtig zu lernen.
    - In modernen Zeiten sind XHTMLHttpRequests und der Umgang damit nahezu unumgänglich. (Vor allem hinsichtlich Suchfunktionen) - auch, wenn das eher Javscript ist, braucht man doch einen php-endpunkt, der dann entsprechende Daten liefert.
    - Ich bin kein Fan davon und in deinem kleinen Rahmen vielleicht auch noch nicht wirklich sinnvoll, aber grade am Anfang und am Ende des Lernprozesses sollte man durchaus erwägen, fertige Libraries und Frameworks für PHP(Dispatch, Assetic, ImageWorkshop, etc.) und Javascript(NodeJS, etc.) zu verwenden. Am Anfang, um den Umgang damit zu lernen und weil es die Arbeit erleichtert, am Ende, weil es deutlich produktiver ist. In der Mitte, wenn man etwas erfahrener ist, aber noch nicht an Endprodukten arbeitet, macht es meiner Meinung nach durchaus sinn, sowas zu lernzwecken auch mal selbst gemacht zu haben.
  • in: Selbstgehostete Website, die nur im eigenen WLAN erreichbar

    geschrieben von noxious

    horstexplorer schrieb:
    Stimmt, über das selbst Einrichten des Zugangs könnte das was werden. Ist halt nur die Frage ob man die zur Hand hat und nicht nur die automatische Einrichtung nutzt. Geht bei vielen anderen Routern deutlich einfacher einzustellen.
    Da gesetzlich in der Regelung zum Routerzwang vorgeschrieben ist, dass der Provider einem die Zugangsdaten zukommen lassen muss (§ 41b Abs. 1 TKG), sehe ich das große Problem nicht. Es ist ja nun nicht allzu schwer, ein paar Zugangsdaten einzugeben.
    Klar ist es einfacher, das ganze "automatisch" einrichten zu lassen - aber da das Ziel damit nicht erreicht wird, in meinen Augen irgendwie obsolet. Analog zu: Wenn ich von München nach Hamburg fahren will, ist es auch deutlich einfacher, es einfach nicht zu machen.

    horstexplorer schrieb:
    Sollte man kucken ob der Aufwand dafür nicht zu groß (ähnlich zu -sich eine Domain zu besorgen um sie lokal zu nutzen)
    Wohingegen afaik keine Möglichkeit vorgesehen ist, bei dem W724V den oben erwähnten Rebind-Schutz abzuschalten. Ich fürchte also, dass das mit dem A-Record einer Domain so nicht funktionieren wird.

    horstexplorer schrieb:
    und die Geschwindigkeit eines DNS auf nem RPI über WLAN nicht zu langsam ist, wenn man nen vergleichbares Ergebnis über eine andere Methode erzielen kann.
    Das mit dem WLAN kann durchaus ein Problem werden - wobei sich das ganze praktisch im unspürbaren millisekunden Bereich aufhalten sollte. (Zumindest wenn man mit caching, etc. arbeitet.)
    Was die Geschwindigkeit des RaspberryPi ansich angeht, das geht durchaus recht gut - ich hatte eine ganze Weile ein ganz ähnliches Setup - jedoch Kabelgebunden (Raspberry Pi, Mod 1B) und bei einigen bekannten ein Pi-hole (Mod 3B) aufgesetzt und hatte keine merkbaren verzögerungen. (Möglicherweise messbar - habe ich aber nie gemessen.)

    horstexplorer schrieb:
    Viel simpler als die Variante über den Hostname wird es irgendwie nicht.
    Zumindest wenn es um PC's geht, ist das durchaus möglich. Sobald man aber an Mobilgeräte heran geht, wird der Zugriff auf die Hosts-Datei schon deutlich schwieriger - erst das Gerät rooten, etc..

    Natürlich ist die Hosts-Datei ein valides Workaround. Jedoch haben diese Workarounds halt immer die weiter oben genannten Nachteile, was sie in meinen Augen unsauber macht. Deshalb ist denke ich der einzig "saubere" Weg, das ganze über einen DNS-Server zu machen.
  • in: Selbstgehostete Website, die nur im eigenen WLAN erreichbar

    geschrieben von noxious

    horstexplorer schrieb:
    Geht definitiv nicht mit dem W724V den er zu haben scheint
    Ich gehe mal davon aus, dass du von der Änderung der DNS-Einstellungen sprichst: Das sollte durchaus gehen, wenn man den Zugang manuell einrichtet.
  • in: Selbstgehostete Website, die nur im eigenen WLAN erreichbar

    geschrieben von noxious

    Dafür gibt es imho mehrere "unsaubere" und einen "sauberen" Weg.

    A-Record auf lokale IP zeigen lassen: Könnte funktionieren, sollte es jedoch nicht. Das Problem dabei ist, dass - wenn sowas möglich ist - dies auch DNS-Rebinding Attacken ermöglicht. Also sollte ein "guter" Router/eine "gute" Firewall sowas grundsätzlich schon mal abwenden. Möglicherweise kann man dies jedoch für bestimmte domain-names erlauben. Kommt wohl ganz auf das entsprechende Gerät an.

    Über hosts-Datei: Funktioniert grundsätzlich, hat jedoch den Nachteil, dass die Hosts-Datei auf allen Geräten einzeln eingestellt werden muss. Zudem unterstützt die hosts-datei ansich keine Wildcards. Man müsste also jeden host einzeln eintragen. (Wenn man dann mehrere subdomains beherbergen will.)
    Für letzteres gibt es unter Linux die Option mit dnsmasq zu arbeiten. Aber auch hier funktioniert das dann nur, wenn es auf jedem einzelnen System konfiguriert ist, wo es funktionieren soll. Keine Ahnung, ob es da eine Alternative für Windows gibt.

    Die meiner Meinung nach einzig saubere Methode:
    DNS-Server aufsetzen: Da du wohl sowieso einen Webserver dann irgendwo laufen lassen haben musst, bietet es sich im wesentlichen an, einen einfachen DNS-Server gleich mit drauf zu setzen. Dann kann man im Router den lokalen DNS-Server eintragen und das ganze läuft im normalfall auf allen Systemen ohne einzelne Konfigurationen an jedem Gerät vorzunehmen. (Sofern diese den DNS-Server vom Router beziehen.)
  • in: Windows für den Raspberry Pi

    geschrieben von noxious

    [/quote]
    darvin schrieb:
    Es gibt ja schon seit längerem Windios loT für den Raspberry, welches allerdings kein vollwertiges Windows, wie wir es vom Desktop Pc kennen, ist.
    Aus gutem Grund! Ein "vollwertiges" Windows ist halt viel zu heavy, um auf einem Leichtgewicht wie dem Raspberry Pi zu laufen. Es ist ein wenig wie ein "vollwertiges KDE" auf dem Raspberry Pi laufen zu lassen: Kaum zu gebrauchen.

    darvin schrieb:
    Was haltet ihr davon & warum nutzt man nicht einfach Linux? Welche Vorteile/Nachteile bringt Windows mit sich?
    MfG
    Was die allgemeinen Vorteile von Linux gegenüber Windows angeht... Schwierig zusammen zu fassen. Man kann da in den meisten Fällen eher von "Ideologischen Unterschieden" reden. (Und diese unterscheiden sich ja zT. noch mal stark zwischen den unterschiedlichen Distributionen...)

    Aber im Anwendungsfall "Raspberry Pi" sehe ich doch einige sehr klare Vorteile. Dafür ist natürlich zu beachten, dass der Raspberry Pi keinen vollständigen Ersatz für ein Desktop-System darstellt und auch gar nicht darstellen will. Linux trifft hier eher den Verwendungszweck, das Linux frei skalierbar ist. Während die "Standard-Distributionen" wie Raspbian, etc. im prinzip noch wahre Monster sind, was den Ressourcenverbrauch angeht, gegenüber dem, was mit einem speziell an die Anforderungen angepassten Kernel möglich ist, ist es dennoch gradezu ein Winzling, im Vergleich zu Windows. Windows hingegen ist proprietär - du kannst schwerlich einzelne Features raus schmeißen, wenn du sie nicht benötigst. Das resultiert so gut wie immer ein unmöglicher Ressourcenverschwendung.
    Ein weiterer Vorteil von Linux gegenüber Windows ist auf dem Raspberry Pi denke ich die "alles ist eine Datei"-Philosophie. Es ist halt selbst ohne tiefere Programmierkenntnisse unglaublich einfach die Ausgabe aus einem Programm in ein anderes zu pipen, welches diese Ausgabe verarbeitet und die Ausgabe dann ein Gerät ausgibt.

    Der meiner Meinung nach einzige Vorteil von Windows IoT ist die UWP. Man kann (theoretisch) jedes Programm, welches für Windows 10 geschrieben wurde, auch unter Windows IoT benutzen. Leute, welche sowieso an die UWP gewöhnt sind, müssen hier nicht diesem Weg abschwörren.

    Dass es Programme gibt, welche nur unter Windows laufen, halte ich persönlich nicht für einen Vorteil von Windows gegenüber Linux, sondern für einen Nachteil der entsprechenden Programme. Schließlich ist es ja auch kein Nachteil von Windows, wenn ich jetzt ein Programm schreibe, welches nur unter Linux läuft.
    Wenn man jedoch darauf angewiesen ist, ein spezifisches Programm zu nutzen, kann es natürlich eine valide Begründung sein, weshalb man Windows nutzt.

    muellerlukas schrieb:
    Mussten sie vorher auch nicht. MS ist bei Mono schon lange mit an Bord, dementsprechend groß war die Unterstützung.

    .Net/Mono ist mitnichten ein vollständiger Ersatz für die UWP. Die Logik ist zwar größtenteils wiederverwendbar, aber sobald es beispielsweise an das WPF geht, landest du irgendwann wieder auf dem Hosenboden und musst dir irgendwas mit Xamarin, Cordova oder ähnlichen zusammen schustern, was meiner Erfahrung nach nur bedingt funktioniert und letztenendes mehr Arbeit macht, als das ganze direkt neu anzufangen. Es bringt schon deutliche Vorteile, wenn man bei der UWP bleibt.

    muellerlukas schrieb:
    IMO wird der IoT-Mist von MS genau so enden wie Windows Phone.
    Da sind wir uns einig. Es gibt wohl kaum genug sinnvolle Anwendungsfälle, welche vor Microsoft die Kosten für die Wartung der IoT-Branch rechtfertigen. Ich denke das ganze wird schon bald als "proof of concept" einfach wieder abgelegt.
  • in: Port aus URL ausblenden [HTACCESS, VirtualHost]

    geschrieben von noxious

    Ohne es jetzt testen zu wollen:
    <VirtualHost *:80>
        ProxyPreserveHost On
        ProxyPass / http://media.mysite.de:8090/
        ProxyPassReverse / http://media.mysite.de:8080/
        ServerName media.mysite.de
    </VirtualHost>
    Sollte doch funktionieren, oder? Wenn auf Port 8090 SSL genutzt wird, einfach das
    <VirtualHost *:80>
    durch
    <VirtualHost *:443>
    ersetzen. Bei Port 8090 ist das ja nicht so ganz klar, ob SSL genutzt wird.
  • in: Frage zu Cookies in Include

    geschrieben von noxious

    sidezockinglp schrieb:
    [...] mich würde daher interessieren was man vor dem setzen einen Cookies noch alles machen darf. [...]

    Eigentlich sollte das offensichtlich sein. Cookies werden im HTTP-Header-Bereich übertragen. Der Header wird im wesentlichen übertragen, sobald irgendeine Ausgabe stattfindet - und kann im Nachhinein nicht mehr geändert werden.
    Dies impliziert übrigens auch automatisch genererierte Ausgaben wie PHP-Fehler, Warnungen und ähnliches. Und natürlich auch jeglicher Dokumentinhalt - wie jeglicher HTML-Inhalt oder beispielsweise führende Leerzeichen vor dem
    <?php
    . Ein
    echo
    ist dort nicht zwangsweise notwendig.

    Eine Möglichkeit deine Idee umzusetzen wäre - sofern die Funktionen aus
    funktionen.php
    in
    header.php
    benötigt werden - mit einem require_once ganz oben in der
    header.php
    zu arbeiten. Dadurch stellst du sicher, dass wo auch immer die
    header.php
    eingefügt ist, die entsprechenden Funktionen verfügbar sind. Mit dem unterschied zu include, dass zum einen die Datei nur ein mal eingebunden wird - wenn darin Beispielsweise irgendwelche Definitionen stattfinden, zum anderen erzeugt es einen "Fatal Error", wenn die Datei nicht eingebunden werden kann, während include nur eine Warnung ausgibt. Wenn man jedoch explizit nur eine Warnung möchte, kann man stattdessen mit include_once arbeiten. Ich für meinen Teil würde aber grade bei Funktionen die im Header/Cookie-Bereich erfordert sind auf require_once setzen - da eine reine Warnung die weitere Code-Ausführung nicht zwangsweise beendet und zu unbeabsichtigten Ergebnissen führen kann.

    So könnte deine
    funktionen.php
    dann in etwa so aussehen:
    <?php
    
    function Funktion1(){}
    function Funktion2(){}
    function Funktion3(){}
    Wenn du
    Funktion1
    in der
    header.php
    brauchst, könnte diese dann in etwa so aussehen:
    <?php
    require_once('funktionen.php');
    
    Funktion1();
    Funktion2();
    Funktion3();
    Während du in der
    index.php
    (Oder wo auch immer) nur noch die
    header.php
    einbinden musst. Die
    funktionen.php
    brauchst du dort dann nicht mehr einzeln angeben - zumindest sofern die Funktionen aus dieser Datei dort nicht benötigt werden.

    Noch schöner wäre denke ich noch die Kapselung der Inhalte in Klassen. Hier gibt es dann verschiedene Modelle wie MVP welche die Darstellung der Inhalte komplett von Datenquellen und der Webseitenlogik trennt. Allerdings ist dies bei solchen Fragen zu Cookies möglicherweise zu weit fortgeschritten.
  • in: Erfahrungen mit Umrüsten auf LED

    geschrieben von noxious

    waytogermany schrieb:
    [...] oder wie es mal ein Elektromeister ausgedrückt hat - So viel, wie der Kunde in die Umrüstung auf Stromsparlampen investiert hat, kann er in seinem ganzen Leben nicht an Strom sparen [...]

    waytogermany schrieb:
    Das kommt ganz auf die Leuchtmittel an. Gute LED mit über 1000 lm kosten schnell mal 10 EUR und mehr. Eine Glühlampe ca 50 cent. Strom kostet mich 0,099 EUR/KWh.
    Okay, rechnen wir mal mit den Werten. 10€ für ne LED-Birne, 0,5€ für eine Glühlampe. Wenn man mehr als 10€ für eine LED-Birne ausgibt, hält die für gewöhnlich aber auch mehr als 10.000 Stunden. Aber rechnen wir mal mit 10.000 Stunden - während eine Glühlampe nur 1000 Stunden Lebenszeit hat. Man muss sich also über die Zeit, in welcher man eine LED-Birne kauft, 10 Glühlampen besorgen. Macht 5€ anschaffungskosten für Glühlampen, 10€ für LED-Birnen - man hat also 5€ mehrkosten.

    Dazu kommt der (meiner Meinung nach unrealistische) Strompreis von 9,9cent je kW/h. Wenn eine Glühlampe mehr als 1000 Lumen hat, verbraucht diese für gewöhnlich 100 Watt oder mehr. Aber rechnen wir mit 100 Watt. Bei 2 Stunden Leuchtdauer am Tag verbraucht man also 0,2kW/h am Tag, macht 73 im Jahr, macht bei 9,9cent je kW/h einen Strompreis von 7,23€ pro Jahr. Eine LED-Birne mit 1000 Lumen hingegen verbraucht 13 Watt - macht 0,026kW/h am Tag und dadurch 9,49kW/h pro Jahr und damit 0,94€ pro Jahr. Man spart also 6,29€ pro Jahr. Man hat die Mehrkosten also bereits nach einem Jahr wieder drin.

    Wäre also ein ziemlich kurzes Leben, das der Elektro-Meister da veranschlagt.
  • in: Login bei phpMyAdmin nicht möglich?

    geschrieben von noxious

    patrickm schrieb:
    Allerdings bekomme ich beim Anmelden den Fehler "#1045 - Access denied for user 'XXXXX'@'62.113.217.13' (using password: YES)".
    Mache ich da irgendwas falsch? Benutzen tue ich definitiv das richtige Passwort für den eben erstellten Datenbank-Benutzer.
    Offenbar nicht. Mysql ist da ziemlich akkurat. Möglicherweise stimmt mit dem SQL-Server etwas nicht. (Ich hatte da mal ein ähnliches, aber nur temporäres Problem.)

    Kurzum: Die richtige Adresse wäre nach dem neuen System ein Ticket zu dem Thema zu erstellen - falls es sich nicht inzwischen von selbst erledigt hat.

    PS: Ist es denn möglich, dich mit dem Benutzernamen und Passwort über das phpMyAdmin-Interface anzumelden?
  • in: php Daten aus Tabelle entnehmen

    geschrieben von noxious

    sidezockinglp schrieb:
    Hey @noxious , wow danke für die tolle und ausführliche Antwort. Viel neues gelernt und funktioniert soweit. Ein Frage noch: Du sagst ja öfter dass man die im realen nicht einfach so ausgeben sollte. Wie sollte man dass dann machen? Ist das weil man den Datentyp erst checken muss, oder kann man darüber bösartige scripts ausführen? Als konkretes Beispiel mal ein Loginsystem, bei dem ich nach erfolgreichen Login den Namen anzeigen will..

    Grüße
    Wenn du beispielsweise in das von mir gepostete (vollständige) Beispiel in die Tabelle Werte wie
    <b>irgend</b> was <i>komisches</i>
    einträgst und das ein mal absendest, wird dir möglicherweise bewusst, worum es geht: Es öffnet Angriffen wie XSS und ähnlichem die Tür. Die Liste, was dort schief gehen kann, ist quasi endlos.

    Was man da genau machen sollte, ist vom Fall abhängig. In den meisten Fällen prüft man es so restriktiv wie mögich - sollte in einem Feld also nur eine Zahl drin stehen, könnte man dies mit intval sicher stellen. Ansonsten sind PCRE-Funktionen ein häufiges Mittel, um mittels Regulären Ausdrücken den Inhalt auf Validität zu überprüfen. Zudem gibt es die Funktion htmlspecialchars*, welche ich persönlich aber bestenfalls zur korrekten Darstellung von Sonderzeichen verwende. Ein weiterer, häufig gemachter Fehler ist die falsche Verwendung von Vergleichsoperatoren - PHP hat als untypisierte (Oder: Dynamisch typisierte) Sprache zwei unterschiedliche Vergleichsoperatoren: Den
    ==
    , welcher überprüft, ob beide Inhalte gleichwertig sind und
    ===
    welcher überprüft, ob beide Variablen den gleichen Wert und den gleichen Typ haben. Das Problem entsteht dann, wenn in einem Wert beispielsweise "0EinSTring" steht und dieser mit 0 verglichen wird, ergibt der
    ==
    -Operator einem true (wahr) zurück, während der
    ===
    -Operator false (falsch) zurück gibt. Das liegt daran, dass der
    ==
    -Operator den String "0String" versucht in eine Zahl umzuwandeln - und da eine 0 drin vorkommt, nimmt er an, dass es 0 ist. Das kann zu gefährlichen Ergebnissen führen.

    Das Problem an der Sache ist: Es gibt leider kein Universalrezept, welches man dort anwenden kann. Was genau du zu tun hast, hängt vom jeweiligen Anwendungsfall ab. Ich weiß, das ist ein deprimierende Antwort.
    Um es zu umschreiben: Sorge dafür, dass Dinge, die du ausgibst, nur das enthalten können, was auch darin stehen soll. Willst du einen Benutzernamen darstellen, setze fest, welche Zeichen für einen Benutzernamen erlaubt sind und validiere dagegen. Überprüfe am besten jede einzelne eingabe von Daten auf deren Validität. Nehme niemals an, dass Variablen von externen Quellen das enthalten, was du annimmst.

    Ein kleiner Disclaimer: Ich bin kein PHP-Sicherheits-Profi. Und das Thema ist unglaublich umfangreich - es gibt da so viel zu beachten, dass es nicht möglich ist, hier jede eventualität abzudecken. Abgesehen davon, kenne ich auch nicht jede Sicherheitslücke. Aber ich hoffe ich konnte einen kleinen Einblick in etwaige Problematiken liefern.

    *EDIT: Mir ist da ein kleiner Fehler unterlaufen: Ich habe htmlspecialchars mit htmlentities verwechselt. htmlspecialchars ist ausdrücklich dafür geschaffen HTML-Injection zu vermeiden, während htmlentities für Sonderzeichen verwendet wird.(Während letztere auch HTML-Injection vermeidet.) Dennoch bin ich mir nicht sicher, ob beide Funktionen wirklich sicher sind - ich würde sie also nur verwenden, wenn es unabwendbar ist, dass Sonderzeichen ausgegeben werden.
  • in: php Daten aus Tabelle entnehmen

    geschrieben von noxious

    sidezockinglp schrieb:
    Ich habe eine Tabelle generiert mit einem select input control und 2 Buttons sowie ein paar einfache Textfelder. Ich möchte jetzt erreichen dass ich beim klicken eines Buttons Code ausführen kann der mit den Werten aus der Tabellen Zeile arbeiten kann. Da es ja 2Buttons sind müssten dass auch 2 unterschiedliche Aktionen seit.
    Das hängt stark davon ab, wie das ganze aufgebaut und übertragen wird. Grundsätzlich werden Daten, die an PHP übergeben werden über die Variablen aus Externen Quellen gehandhabt. Darunter speziell $_GET und $_POST. Welche dieser beiden Variablen verwendet wird, hängt davon ab, wie das Formular übertragen wird - angegeben im HTTP-Form-Tag, zum Beispiel
    <form method="GET">
    für Variablen, die über die URL weiter gegeben werden oder
    <form method="POST">
    für Variablen, welche im HTTP-Content-Bereich übertragen werden. Für Formulardaten verwendet man im Regelfall die POST-Variante, da dies unübersichtliche URLs vermeidet und bei der Verwendung von SSL automatisch verschlüsselt wird. Es gibt jedoch auch Fälle, wo die Übertragung über GET sinnvoll sein kann - das hängt immer vom Anwendungsfall ab.

    Der Zugriff auf diese Variablen gestaltet sich relativ einfach: Über
    $_GET['feldname'];
    bekommt man Zugriff darauf.
    Wenn man nun eine Tabelle hat, hängt die Art des Zugriffs auf die Daten stark davon ab, wie das Formular organisiert ist. Du könntest sie beispielsweise mit
    <input name="feldname[]">
    unsortiert in ein Array übertragen - wobei sich nicht sicher feststellen lässt, welche Zeile nun an welcher Stelle steht. Hat man nun eine Zweidimensionale Tabelle, kann man weiter mit
    <input name="feldname[][]">
    und so weiter arbeiten. Wenn die Positionen der Zellen wichtig sind, kann man mit etwas wie
    <input name="feldname[zeile1][spalte1]">
    arbeiten.

    Der Zugriff innerhalb von PHP gestaltet sich dann wie bei jedem anderen Array.
    <?php
    foreach($_GET['feldname'] as $zeilenname => $zeileninhalt){
        foreach($zeileninhalt as $spaltenname => $spalteninhalt){
            echo "In Zeile " . $zeilenname . " in Spalte " . $spaltenname . " steht " . $spalteninhalt . "<br/>";
        }
    }
    
    // Alternativ
    
    echo $_GET['feldname']['zeile1']['spalte1'];
    ?>

    (Natürlich sollte man im realen Anwendungsfall niemals ungefiltert Variablen ausgeben, welche über POST oder GET übertragen werden!)

    Ohne den speziellen Fall zu kennen, kann man leider nicht genauer darauf eingehen.

    Ein einfaches, vollständiges Beispiel mit einer 5x5-Tabelle:
    <!DOCTYPE html>
    <html lang="de">
        <head>
            <title>Tabellentest</title>
            <meta charset="utf-8">
        </head>
        <body>
            <form method="post">
                <?php
                    for($zeile = 1; $zeile < 6; $zeile++){
                        for($spalte = 1; $spalte < 6; $spalte++){
                            echo '<input type="text" name="feldname[zeile'. $zeile .'][spalte' . $spalte . ']"/>';
                        }
                        echo "<br/>";
                    }
                ?>
                <input type="submit" value="senden"/>
            </form>
    
            <?php
    
            if(array_key_exists('feldname', $_POST)){
                foreach($_POST['feldname'] as $zeilenname => $zeileninhalt){
                    foreach($zeileninhalt as $spaltenname => $spalteninhalt){
                        echo "In Zeile " . $zeilenname;
                        echo " in Spalte " . $spaltenname;
                        echo " steht " . $spalteninhalt;
                        echo "<br/>";
                    }
                }
                // Alternativ
    
                echo "In Zeile 1, Spalte 1 steht : " . $_POST['feldname']['zeile1']['spalte1'] . "<br/>";
            }
            ?>
        </body>
    </html>
    Auch hier gilt wieder: Dies ist ein reiner Übungsfall - für reale Anwendungen sollten NIEMALS ungeprüft irgendwelche Benutzergenerierten Eingaben als Augabe verwendet werden.
  • in: Zugriff auf Sessions

    geschrieben von noxious

    muellerlukas schrieb:
    Nicht vergessen: Seit PHP 5.3 (oder so um den Dreh rum) kannst du auch einige Änderungen über eine ".user.ini" und eine ".htaccess" vornehmen. Je nachdem wie PHP auf deinem Webserver eingerichtet ist.
    Du kannst ja beides anlegen. Dann bleibt deine Anwendung auch portabel.
    Nun, das einzige was möglicherweise dagegen spräche wäre, dass eine Version von PHP vorzuschreiben ist ja im wesentlichen wieder eine Restriktion was die Portabilität angeht. Natürlich ist es fraglich, ob eine PHP-Version früher als 5.3 überhaupt noch relevant vertreten ist - aber wenn man das ganze am Ende in irgendein Uralt-Projekt integrieren will und bei PHP schnell mal Dinge obsolet werden, wären die Leute am Ende gezwungen ihr vorhandenes Projekt komplett umzustellen. (Was in dem Fall möglicherweise eine ganz gute Idee wäre...)
    Aber danke für den Tipp. Das mit .htaccess war mir bewusst, aber die .user.ini ist mir neu. Eine möglicherweise interessante Möglichkeit, nicht-invasive Änderungen an der Konfiguration für einzelne Projekte zu realisieren.

    Dennoch favorisiere ich bisher die Token-Lösung. Unter anderem weil ich denke, dass es einfacher wäre, eine PHP-Session über einen Websocket zu "Bruteforcen" als über einzelne Seitenaufrufe, zum anderen weil ich denke es ist sicherer, so wenig wie möglich mit PHP-Sessions um sich zu werfen.

    Aber vielen Dank für den Hinweis.
  • in: Ein anderes Wort für - die Synonym-Lexikothek

    geschrieben von noxious

    Also um nicht die Kritikpunkte von vorher zu wiederholen...

    Ein weit verbreiteter Fehler im Webseiten-Stil: Die Farben werden nicht ordentlich gesetzt. Es gibt offenbar viele Annahmen, welche über das Besuchersystem gemacht werden, welche nicht immer zutreffen. Zum Beispiel die Text-Farbe im Suchfeld - welche als standardmäßig "Schwarz" angenommen wird, bei mir aber beispielsweise (Durch ein Dark-Theme) auf Weiss steht. So sehe ich nicht, welchen Text ich suche. Die Vordergrundfarbe des
    input
    -Feldes ist genau genommen undefiniert.

    Wenn man die Hintergrundfarbe eines Elements festlegt, sollte man immer auch die Vordergrundfarbe festlegen.
  • in: Zugriff auf Sessions

    geschrieben von noxious

    hackyourlife schrieb:
    Der wichtigste Unterschied ist, dass eine »Session« für längere Zeit bzw. über mehrere Anfragen hinweg besteht, während der vorgeschlagene (Einmal-)Token nach einmaliger Benutzung »verbraucht« wird / seine Gültigkeit verliert.
    Ein interessanter Aspekt, über den ich bisher noch nicht nachgedacht habe. Wobei ich mir erst nicht sicher war, ob ich das überhaupt möchte, bin ich nun überzeugt, dass dies durchaus hilfreiche Nebeneffekte haben kann. Vielen dank für den Hinweis.

    hackyourlife schrieb:
    Wenn du sowieso eine Datenbank nutzt, dann ist dieser Ansatz nicht sinnvoll. Gemeint war, dass der PHP-Code eine Verbindung zur C++-Anwendung aufmachen könnte (z.B. per UNIX-Socket) und ihr Token + User übermitteln könnte, sodass die C++-Anwendung völlig ohne Datenbank diese Zuordnung temporär in einer Datenstruktur im Speicher halten kann. Da aber offenbar sowieso eine Datenbank zum Einsatz kommt ist das wohl kaum sinnvoll.
    Richtig, eine ähnliche Idee hatte ich auch schon. Wie schon gesagt aus genau diesem Grund hab ich das beiseite gelegt. Aber vielleicht bringt das ja einen späteren Leser ein mal voran.

    hackyourlife schrieb:
    Das ist eine Möglichkeit, eine andere wäre z.B. die Option
    session.save_handler
    in der php.ini und da z.B. einen memcached zu konfigurieren. Oder eben Dateien nutzen und einen passenden Pfad festlegen, auf den auch deine C++-Anwendung Zugriff hat.

    Falls du tatsächlich die PHP-Session direkt in der C++-Anwendung nutzen willst (z.B. via memcached, gemeinsamen Session-Ordner o.ä.) muss dir klar sein, dass du dann den Inhalt der Session lesen können musst. Wenn ich mich recht erinnere ist das eine PHP-serialisierte Version von
    $_SESSION
    .
    Änderungen an der php.ini oder ähnliches würde ich jedoch gerne aus Gründen er portabilität vermeiden. Deshalb würde ich gerne so wenig wie möglich "invasive" Einstellungen vornehmen. Es wäre schön, wenn man das Projekt am Ende ohne größere Probleme einfach von System-A zu System-B portieren könnte, ohne sich besonders viele Gedanken darüber machen zu müssen, wie nun der (möglicherweise schon laufende) Webserver konfiguriert ist.

    Das Festlegen eines Pfades für die Dateien ist auch eine Möglichkeit, die ich bisher noch nicht in Betracht gezogen habe - danke für. Obwohl die Funktion
    session_save_path
    ja eigentlich ziemlich offensichtlich ist. Damit wäre dann zumindest der Speicherort der Sessions nachvollziehbar und etwaige system-spezifische Einstellungen wären überschrieben. Auch, wenn ich in diesem speziellen Fall bisher zu der Token-Lösung tendiere, könnte das doch in Zukunft irgendwann mal hilfreich sein.

    Ein weiteres Thema auf welches du mich gebracht hast ist die ganze "memcached"-Geschichte. Auch, wenn mein Projekt bisher eher klein ausgelegt ist, sollte man sich doch so viel Platz nach oben frei halten wie möglich. Aber da das Thema für mich relativ neu ist, werde ich mich da wohl mal genauer rein lesen müssen.

    Also vielen Dank für die Hinweise.
  • in: Zugriff auf Sessions

    geschrieben von noxious

    hackyourlife schrieb:
    Wenn du die Session-ID zum Benutzer in der Datenbank speicherst, musst du jedenfalls daran denken, dass ein Nutzer mehrere aktive Sessions (und daher auch mehrere gültige Session-IDs) gleichzeitig haben kann. Also eher Nutzer zur Session speichern. Und dann nicht vergessen, dass Sessions ablaufen und/oder zerstört werden, also musst du auch wieder aufräumen.

    Ja, ich schätze das sollte an sich nicht das große Problem darstellen. Die Benutzer-ID muss ja nicht eindeutig sein. Das mit dem Aufräumen ja ein einfaches
    DELETE
    auf alles wo der aktuelle aktuelle Zeitpunkt > Ablaufzeitpunkt. (Im Zweifelsfall per cronjob)

    hackyourlife schrieb:
    Eine Standardlösung für dein Problem ist übrigens die Nutzung von Tokens: wenn die Webseite aufgerufen wird, wird ein Token erstellt und dazu gespeichert, um welchen Benutzer es sich handelt (oder der Token wird C++-Anwendung direkt gegeben und dort im Speicher [z.b. in einer Hashtabelle] gehalten, wie auch immer). Dieser Token kommt in die Webseite und wird vom JavaScript zur Authentifizierung genutzt. Die C++-Anwendung bekommt den Token somit per Websocket und kann herausfinden, welchem Benutzer er gehört. Wurde der Token einmalig benutzt ist er ungültig, wurde er innerhalb von x Minuten (z.B. 5min) nicht benutzt läuft er ebenfalls ab (? Token wieder löschen).

    Okay, aber das klingt mir auch wieder nach einer Anwendung von (sehr kurzlebigen) Session-Äquivalenten. Nicht, dass ich die Idee verwerfen würde - wie ja schon eingangs geschrieben, ist das eine Lösung, die ich auch schon ins Auge gefasst habe. Oder ist da ein wesentlicher Unterschied zwischen "Token" und "Session", den ich aktuell nicht durchschaue?

    Könntest du näher ausführen, wie du "oder der Token wird [der] C++-Anwendung direkt gegeben und dort im Speicher [...] gehalten" meinst? Ich hatte schon über Lösungen via IPC nachgedacht - die bestmögliche Variante um sowas umzusetzen die ich bisher gefunden habe war Unix-Sockets zu verwenden und das ganze von PHP quasi auf einem Nebenkanal zu übergeben. Erschien mir bisher jedoch als unnötig kompliziert - da in dem Projekt so oder so Datenbanken verwendet werden.

    hackyourlife schrieb:
    Damit bist du völlig unabhängig von PHP-Sessions o.ä. (ich gehe mal davon aus, dass du PHP-Sessions o.ä. meinst, denn der Webserver selbst hat normalerweise keine Session).

    Natürlich, ich meinte PHP-Sessions - wobei ich tatsächlich bisher fälschlicherweise den Webserver als verantwortlichen im Kopf hatte. (Obwohl es jetzt, wo du es erwähnst natürlich klar ist.) Zumindest scheint es zumindest inkonsistenzen beim Speicherort/Format zwischen unterschiedlichen Webservern/Betriebssystemen/PHP-Versionen zu geben. Zumindest scheinen die Sessions zwischen Lighhtpd/Apache bzw. Arch/Debian unterschiedlich gespeichert zu sein.

    hackyourlife schrieb:
    Ansonsten gibt es auch Möglichkeiten um die Session-Daten direkt von PHP (o.ä.) in einer Datenbank speichern zu lassen. Ob man das für deinen Zweck nutzen will oder nicht ist halt die Frage.

    Das einzige was ich dazu gefunden habe, wäre via
    session_set_save_handler()
    , etc. die entsprechenden Funktionen zu überschreiben. Habe ich da irgendwas (einfacheres?) übersehen?
  • in: Zugriff auf Sessions

    geschrieben von noxious

    Erstmal vielen Dank für die Antwort.

    Wenn ich das richtig verstanden habe, würde ich das in etwa so lösen:
    Beim Login des Benutzers wird seine aktuelle SessionID in die DB mit den Login Daten geschrieben.

    Die Überlegung hatte ich auch schon, diesen speziellen ansatz aber wieder verworfen - da man in solch einem Fall auch gleich ein komplettes Datenbank-Basiertes Session-System basteln könnte. Letztenendes fällt mir kaum ein Fall ein, in dem in der Session wesentlich mehr als eine Verknüpfung der Session-ID mit einem Benutzer stehen müsste. (Und natürlich ein Ablaufzeitpunkt...)

    Ich sehe also keinen wirklichen Vorteil darin, die Session-ID mehrfach zu speichern. Oder übersehe ich da was?

    Alternativ dazu habe ich noch etwas gefunden, was eventuell auch funktioniert, vielleicht ist da was dabei.
    https://www.webtoolkit.eu/wt
    http://cppcms.com/wikipp/en/page/tut_sessions

    Das erste sieht interessant aus - auch wenn ich auf den ersten Blick noch keinen wirklichen Nutzen für meinen Fall sehe. Werde ich mir mal genauer ansehen.
    Das Zweite durchschaue ich noch nicht wirklich, scheint aber im wesentlichen ebenfalls schwerlich mit meinem bisherigen Konzept vereinbar. Zudem scheint das ganze den Fokus eher auf Optimierung gegenüber PHP ausgelegt zu sein. Aber möglicherweise findet man dort einen Ansatz, der hilfreich wäre.
    Ich werde mich auf jeden Fall mit beidem mal eingehend befassen und ggf. mein Konzept überarbeiten.

    Vielen Dank für deine Hinweise.
  • in: Zugriff auf Sessions

    geschrieben von noxious

    Hallo,

    ich schreibe grade an einer Anwendung, welche via Websockets mit einer Webseite kommuniziert. Nun stehe ich vor dem Problem, dass der Benutzer sich auf der Webseite zur Nutzung des Dienstes authentifiziert - und diese Authentifizierung an die in C++ geschriebene Anwendung weiter geben soll. Da ich nun aus diversen Gründen nicht unbedingt per Javascript mit Benutzernamen und Passwörtern um mich werfen will, hatte ich geplant, einfach die Session-ID via Websocket an das Programm weiter zu geben.

    Das Problem beginnt da, wo ich nun die Session-ID mit einem Benutzernamen in Verbindung bringen muss. Ich muss also irgendwie die Session-Daten vom Webserver (Apache/Nginx/Lighttpd/etc.) auslesen. Nun stoße ich aber auf das Problem, dass jeder Webserver seine eigenen Vorlieben zu haben scheint, wie und wo er diese speichert. Da ich mich ungern auf einen Webserver festlegen und die Anwendung portabel halten möchte, interessiert mich nun, ob es da irgendwelche Standards oder sogar Bibliotheken gibt, an die man sich halten kann.
    Alternativ könnte ich mir vorstellen, ein eigenes, Datenbank-Basiertes Session-System zu basteln. Da für das Web-Frontend sowieso ein Datenbank-Server vorhanden sein muss, läge dies eigentlich nahe.

    Wie würdet ihr dieses Problem lösen? Fallen euch andere Lösungsansätze ein? Kennt ihr gute Bibliotheken um in C++ Session-Daten von Webservern auszulesen? Oder gibt es da Standards, an die man sich ggf. halten kann?
  • in: Darstellungs-Lags bei Animation

    geschrieben von noxious

    Ohne ein Java-Profi zu sein...

    Es ist relativ undurchsichtig, was du da versuchst. Aber ich versuche mal einige Schlüsse zu ziehen.

    Zum einen weisen Funktionen wie "Sleep" darauf hin, dass du die Funktion von Framerates nicht verstanden hast. Du wartest nicht im Frame, du nimmst die Sekunden, wartest bis diese auf 1 höher als vorher sind und inkrementierst bis dahin eine Frames-Variable. Wenn die vergangene Zeit größer als 1 Sekunde ist, teilst du die aktuellen Frames durch die vergangenen Sekunden und erhälst... Frames per Second. Dann setzt man die Frames und die vergangenen Sekunden auf 0. Und fährt fort. Da wartet man nicht.

    Ähnliches gilt für Framerate-Begrenzer. Man wartet nicht, sondern zeichnet nur, wenn die aktuelle Zeit größer als die gewünschte Zeit ist. Du sagst nicht "mache alles, warte n sekunden, mach dann das nächste", weil du dann immer die FPS + "die Zeit die du gebraucht hast" bekommst. Du updatest deine Daten so oft wie möglich, aber zeichnest nur, wenn die gewünschte Zeit vergangen ist.

    Auch, wenn das sehr vage war, hoffe ich, dass es ansatzweise helfen konnte.
  • in: Web Anwendungen (CMS, Forum, Blog, Wiki, ...)

    geschrieben von noxious

    theglobe schrieb:
    BoxBilling schreibt selbstständig sich wiederholende Rechnungen und schickt auch automatisch Mahnungen raus.
    Was die rechtlich möglichen Mahngebühren auf 0 senkt. Das nenne ich innovativ. Eine Mahnung ohne Mahngebühren find ich immer gut.
  • in: Entwicklungsumgebung für HTML und CSS

    geschrieben von noxious

    Ich persönlich würde empfehlen: Gar keine IDE. Ein einfacher Editor reicht. Dabei bevorzuge ich vi/vim. Kann alles, macht alles. Ist - in meinen Augen - das einfachste und beste Werkzeug überhaupt.
    Ansich ist das aber immer eine Geschmacksfrage.

    Was Atom angeht: Ja, den habe ich zT. auch in gebrauch, aber er ist alles andere als ein Leichtgewicht. Allein seine Basis Electron ist ja - wie bei Sublime Text - schon ein Schwergewicht für sich. Wenn ich also die ganze Zeit einen Browser mitschleppen will, kann ich mich auch gleich auf Lösungen wie Codeanywhere stürzen, welche imho sogar noch schöner sind, da sie zudem auch gleich eine komplette Entwicklungsumgebung bieten - man kann also auf so partiell gefährliche Sachen wie XAMPP oder ähnliches verzichten.
    Aber auch hier nur meine persönliche Meinung.

    Ansich ist also immer die Frage, wie es um die eigenen Bedürfnisse und Voraussetzungen geht. Ich persönlich bevorzuge es, meine Sachen extern laufen zu lassen - auf einem Raspberry Pi. Aber dafür muss man dann schon ~50€ in die Hand nehmen. Wobei die Dinger bei mir eh rumliegen, also... Warum nicht. Den Server-Root dann per sshfs ins Homeverzeichnis gemounted und vim als Editor... Perfekte Arbeitsumgebung - für meine Belange.

    Von XAMPP würde ich persönlich abstand nehmen, da es sich dabei - wie auch auf der Webseite gewarnt wird - nur um eine Testumgebung handelt. Wem aber eine reine Testumgebung reicht, der braucht dazu gar keine großen Pakete wie XAMPP, sondern kann sich auf den Internen Webserver von PHP berufen. Auch nicht meine erste wahl, aber ist in etwa Äquivalent zu XAMPP, aber dafür deutlich leichtgewichtiger.

    Noch mal zum Schluss: Nein, ich will keine der anderen Lösungen schlecht machen. Wie schon gesagt, hängt die Wahl der Mittel von den jeweiligen Vorzügen ab. Ich kann also nur meine persönlichen Vorzüge darstellen. In anderen Situationen können also andere Dinge besser sein.
  • in: Dieselgate / Abgasskandal

    geschrieben von noxious

    oportal schrieb:
    Ich halte die Änderung des Motors sinnvoll, da hier schwieriger manipuliert werden kann als mit einer neuen Software.
    Fahrverbote gehen meines Erachtens nicht, da sich ja viele Leute neue Fahrzeuge kaufen müssten, die sie sich nur schwer oder gar nicht leisten können.
    Puh, schwierige Angelegenheit.

    Zum einen ist es natürich unhaltbar. Ich persönlich würde solche Konzerne am liebsten schließen lassen. Aber leider hängen daran auch viele Jobs. Und wie man das so kennt, sind ja höhstwahrscheinlich die Verantwortlichen am Ende jene, die am wenigsten darunter zu leiden haben.

    Das heißt leider: Nach der aktuellen Gesetzeslage würden jegliche Maßnahmen die gegen den Konzern gerichtet werden, höchstwahrscheinlich hauptsächlich die Bevölkerung treffen. Da es sich dabei auch noch um wichtige DAX-Unternehmen handelt, wäre der Schaden wahrscheinlich noch deutlich größer, als auf den ersten Blick abzusehen wäre.

    Also ist da nach der aktuellen Gesetzeslage denke ich kaum eine wirklich sinnvolle Konsequenz zu ziehen - und das ist es markabererweise wohl, was die Leute, die sowas machen, im Hinterkopf hatten.

    Wenn man nun also ein Fahrverbot durchsetzt, schadet das dem Unternehmen und dem Volk - massiv. Denn das Volk wird sich neue Autos kaufen müssen - und sicher nicht wieder eines von den betroffenen unternehmen. Kurzum: Sie wären von heute auf morgen wahrscheinlich pleite. Denn der Imageschaden wäre wohl kaum wieder gut zu machen. Aber dafür zahlen letztenendes nicht die verantwortlichen - die oberen Etagen der entsprechenden Konzerne werden wahrscheinlich mit Millionen aus dem Konzern entlassen. Während der kleine Arbeiter seinen Job verliert und gar nichts mehr hat.

    Ich würde also - wenn das Gesetz dies zulassen würde - erstmal damit anfangen, die verantwortlichen aufzudecken. Und dann ein Strafverfahren gegen diese einleiten. Gefängnisstrafe und Entschädigung aus deren Tasche an alle betroffenen - wovon diese sich dann ggf. neue Autos oder gar Motoränderungen leisten können. Den Konzern ansich bis auf weiteres in staatliche Obhut geben, bis entsprechende Leute ersetzt wurden.

    Aber ich fürchte, dass dies so nicht passieren wird. Viel mehr wird wahrscheinlich schlicht der eine oder andere aus dem Vorstand entlassen - mit einer gewohnt hohen Entschädigung und es werden neue Leute eingestellt, welche dann so weiter machen, wie gewohnt. Eventuell entstehende Kosten werden auf Kosten der Belegschaft gehen. Und dann kommen irgendwann wieder Rettungsschirme zum Einsatz, welche dann DAX-Unternehmen stützen müssen, um die Wirtschaft stabil zu halten.

    Kurzum: So oder so sind wir die angeschmierten.
  • in: Nutzung von Werbeblockern, trotz kostenfreier Inhalte

    geschrieben von noxious

    kalinawalsjakoff schrieb:
    Es geht ja nicht prinzipiell um Kunst alleine, es geht auch um normale Webangebote. Der Eröffnungsthread hat das ja schon ganz gut dargestellt. Content muss produziert und veröffentlicht werden - egal ob es Kunst ist oder irgend ein Artikel zu irgend einem Thema. Das heist, daß da irgend ein Mensch Zeit in die Hand nimmt, recherchiert, schreibt, irgendwas herstellt oder sonst irgendwas. Artikel wollen geschrieben werden, ein Video mit Animationen will gerendert werden, ein Foto muß noch aufbereitet werden.
    Auch hier gilt: Ich will nicht die Katze im Sack kaufen. Wenn die Werbung vorgeschaltet ist, ich sie also erst sehen muss, um dann ggf. mit dem Inhalt nur Müll ausgeliefert zu bekommen.

    Ich sage ja nicht, dass man keine Videos oder Webseiten oder wasauchimmer unterstützen soll. Lediglich die Methodik, etwas bezahlen zu sollen, ohne zu wissen, was man bekommt, halte ich für fragwürdig.

    kalinawalsjakoff schrieb:
    Nicht jeder Fotograf oder Sänger kann sein Zeug kostenlos unter Creative Commons veröffentlichen und für jeden Hanswurst aus Hintertupfingen editierbar machen.
    Das absolute Gegenteil ist der Fall. Jeder kann unter Creative Commons lizenzieren. Was nicht jeder kann ist sich einen Anwalt leisten, der im Falle einer anderen Lizenzierung seine Rechte durchsetzt. Wenn man nicht will, dass etwas für andere editierbar ist, hat Creative Commons auch hier eine Alternative parat: CC-by-nc-nd.

    kalinawalsjakoff schrieb:
    Wenn das sop währe, dann gäbe es nicht diese Vielfalt an Kunst. Eben aus diesem Grund gibt es Anbieter wie Youtube, wo man die Masse erreichen kann und sein Zeug dort zu hosten um da mit Werbung auch noch ein bisschen zu verdienen. Ud ein paar Sekunden Werbeclips zu gucken kann man durchaus nachvollziehen, wenn man diesen Hintergrund kennt.
    Du meinst also, den Zugang für Leute zu erschweren, erhält die Vielfalt der Kunst? Ist es nun schon so weit, dass Kunst mit Monetarisierung dieser gleich gesetzt wird? Im ernst?

    Man kann auch mit Creative Commons Geld verdienen. Man kann auch vor Creative Commons Werbung schalten. Es wird nur für gewöhnlich nicht gemacht. Weil Creative Commons wirklich die Freiheit der Kunst begünstigen und nicht die Profitgier etwaiger Konzerne befriedigen soll.

    Allerdings wollte ich gar keine Grundsatzdiskussion über "Creative Commons oder nicht" lostreten. Ich habe nur erwähnt, dass Musikvideos dadurch, dass ich lieber Creative Commons höre, nicht nennenswert von Werbung betroffen sind.

  • in: Nutzung von Werbeblockern, trotz kostenfreier Inhalte

    geschrieben von noxious

    muellerlukas schrieb:
    noxious schrieb:
    weitere 5% sogar nur die Darstellung von fremden Inhalten. Nichts, was es rechtfertigen würde, diese Menschen finanziell zu unterstützen

    Da muss man fair sein:
    Wenn Werbung vor einem fremden Video, Song, etc läuft muss nicht der Uploader dahinter stecken.
    Der Rechteinhaber kann bei YouTube u.a. einstellen ob er den Inhalt sperren, die Tonspur abschalten oder Werbung anzeigen lassen will.
    Wählt er die Werbung wird die Provision dem Inhaber und nicht dem Uploader gutgeschrieben.
    Dafür müsste die Verletzung bekannt sein. Aber ja, vor allem bei Musik mag das der Fall sein. Aber ich sprach eher von anderen Fällen. Da ich mich hauptsächlich auf das hören von Musik unter CC-by-nc konzentriere, fällt das dort nicht so ins Gewicht.

    Aber auch hier gilt meiner Meinung nach dasselbe Prinzip: Ich halte es für absolut unseriös, für etwas zahlen zu müssen, ohne die Qualität einschätzen zu dürfen. Ob diese Praktiken nun vom Video-Uploader ausgehen oder von jemand anderem, ist ja unerheblich.
  • in: Nutzung von Werbeblockern, trotz kostenfreier Inhalte

    geschrieben von noxious

    Also ich muss sagen: Die Kommerzialisierung von Kunst ist etwas, was ich schlicht nicht unterstützen möchte. Zudem ist dieses "Werbung vorschalten" schlicht etwas, was ich für vollkommen unseriös halte. Ich soll für etwas bezahlen, ohne zu wissen, ob der Inhalt es auch wirklich wert ist? Aus Sicht von Clickbait-Anbietern sicher ein erfolgreiches Konzept - vor allem, weil man das ansehen von Werbung ja schlecht zurück fordern kann.
    Des weiteren ist mir noch nie ein Video unter gekommen, bei dem Werbung vorgeschaltet war, wo der Inhalt das ansehen dieser Werbung rechtfertigen würde. Schätzungsweise 90% davon sind Clickbaits, 5% selbstdarstellerisches, inhaltleeres Gefasel und weitere 5% sogar nur die Darstellung von fremden Inhalten. Nichts, was es rechtfertigen würde, diese Menschen finanziell zu unterstützen - und ganz sicher nichts, wo irgendjemand auch nur eine Träne hinterher weint, wenn es verschwindet.

    Wenn es für diese Leute also so schwer ist, Videos zu produzieren, dass sie Webrung vorschalten müssen, sollten sie sich möglicherweise Tipps bei all jenen holen, welche es schaffen, qualitativ hochwertige Videos zu produzieren, ohne auf solche zwielichtigen Praktiken zurückgreifen zu müssen.

    Ich für meinen Teil werde auch weiterhin meinen Werbeblocker nur dort deaktivieren, wo ich auch sicher bin, dass der Inhalt es wert ist.
  • in: Externe SSD als PC zur mitnahme?

    geschrieben von noxious

    Grundsätzlich würde ich sagen: Ist nicht so ohne weiteres möglich. Schlussendlich müsstest du dann eine Installation für jede vorhandene CPU-Architektur installieren. Abgesehen davon, dass mir zumindest kein Betriebssystem bekannt ist, welches für jede CPU-Architektur veröffentlicht wird ist man zumindest daran gebunden, dass dies nur auf einer begrenzten Anzahl von Systemen laufen wird - bei Windows allgemein also im wesentlichen beschränkt auf x86, x86-64 und im begrenztem Maße ARM. Bei Linux könnte man sich mit ein wenig Aufwand eine längere Liste von Architekturen zugänglich machen, aber auch das ist dann nur eine Ausweitung des Feldes - eine umfassende Installation, welche überall läuft, wird man kaum bewerkstelligen können.

    Allerdings kann man - wenn man das Zielsystem kennt - sich natürlich darauf vorbereiten. So lässt es sich ggf. einrichten, dass man zumindest zwei Rechner relativ zuverlässig über eine Platte steuern kann. Allerdings bleibt da das Problem der Aktivierung...

    Aber da stellt sich mir die Frage des Sinns. Hat der andere keine Festplatte? Geht es um die Geschwindigkeit einer SSD? Geht es einfach darum, die Arbeitsumgebung, Dokumente, Musik, Spiele, etc mit zu nehmen? Möglicherweise gibt es ja andere, bessere Alternativen.

    Ansich würde ich also burgi zustimmen: Wenn ich einen PC mitnehmen will, nehme ich einen PC mit. Im Regelfall einen Laptop, da diese "Mini-PCs" meiner Erfahrung nach meistens einfach nicht die Leistung bringen, die ich haben will. (Ohne die explizit vorgeschlagenen zu kennen.)

    Wenn es um Dokumente/etc. geht, binde ich die über's Netzwerk (sshfs) ein und bei Spielen... Naja, da benutze ich meist Plattformen wie Steam, wo man sich kurzzeitig auch bei anderen anmelden und dort die entsprechenden Spiele spielen kann - wenn die Leistung auf dem Zielsystem nicht ausreicht, ist oft sogar ein Streaming von meinem Heim-PC möglich. Was die Arbeitsumgebung angeht, ist bei Windows denke ich wenig raus zu holen. Aber da ist ja auch wenig zu individualisieren. Da reicht denke ich im wesentlichen ein Benutzerkonto, um ein mal die entsprechenden Einstellungen auch dort vorzunehmen.
  • in: Qt Passwort mit Passwort Hash aus Datenbank vergleichen

    geschrieben von noxious

    Optimalerweise baut man sich dafür eine eigene Funktion, welche für jedes Passwort einen neuen Salt generiert und verwendet keine weit verbreitete Lösungen, die mögliche Ziele für Hacker sein könnten und bald wieder veraltet sind ...
    Security by obsucrity ist also wieder "in"? Ist das nicht im wesentlichen ein wenig widersprüchlich zu Kerckhoffs' Prinzip?
  • in: Seitenaufrufe mitzählen

    geschrieben von noxious

    Vom Ding her willst du folgendes tun:
    - Überprüfen, ob Datei existiert:
    if(file_exists'('.counter.txt')){ //...}

    - Variable aus Datei einlesen
    $counter = file_get_contents('.counter.txt');

    - Variable erhöhen
    $counter++;

    - Variable in datei schreiben.
    file_put_contents('.counter.txt', $counter);


    Zusammen könnte das in etwa so aussehen:

    <?php
        // Auf 0 setzen, falls Datei nicht existiert
        $counter = 0;                                   
        // Dateinamen festlegen
        $filename = '.counter.txt';
        // Überprüfen, ob Datei exstiert
        if(file_exists($filename)){
            // Wenn Datei existiert: Variable holen
            $counter = file_get_contents($filename);
        }
        // Variable erhöhen
        $counter++;
        // Variable in Datei schreiben
        file_put_contents($filename, $counter);
    ?>

    Willst du die Variable nun ausgeben, musst du nur noch
    - Überprüfen, ob die Datei existiert
    if(file_exists'('.counter.txt')){ //...}

    - Die Variable aus der Datei einlesen
    $counter = file_get_contents('.counter.txt');

    - Die Variable ausgeben
    echo $counter;

    Was dann in etwa so aussehen könnte:
    <?php 
        // Counter auf 0 setzen, falls Datei nicht existiert
        $counter = 0;
        // Dateinamen festlegen
        $filename = '.counter.txt';
        // Wenn Datei existiert
        if(file_exists($filename)){
            // Zählerstand aus Datei einlesen
            $counter = file_get_contents($filename);        
        }
    ?><!DOCTYPE html>
    <html>
        <head>
            <title>Counterausgabe</title>
        </head>
        <body>
            <p>Der Counter steht bei <?php echo $counter; // Zähler ausgeben ?></p>
        </body>
    </html>
  • in: Vault7 - CIA-Leaks

    geschrieben von noxious

    xn--94h schrieb:
    So eine Überraschung die CiA überwacht leute.
    Also ehrlich das sollte jeden klar sein
    Wiso sollte die cia anders sein wie die nsa?
    Weil die CIA eigentlich HUMINT und nicht wie dia NSA SIGINT ist? Weil es da eigentlich eine mehr oder weniger klare Zuständigkeitsgrenze gibt?

    Leider ist es seitdem jeder sein Smartphone bei sich trägt so, dass die Aufgabenbereiche langsam verschmelzen.


  • in: TOR - Noch sicher?

    geschrieben von noxious

    jonas-bayer schrieb:
    Dem wollte die Regierung nicht entgegenkommen und ihre geheimen, wahrscheinlich illegitimen Methoden nicht öffentlich machen. Anscheinend wurde eine Art Virus (oder wie auch immer man das in diesem Fall nennt) auf die TOR-Website mit den Kinderporno-Inhalten aufgespielt, der im folgenden die PCs aller Seitenaufrufer infizierte.
    Was ja im wesentlichen wenig mit der Sicherheit von TOR, sondern mit der Sicherheit von Browsern/Betriebssystemen zusammen hängt. Wenn man einen Virus/Trojener/Whatever auf ein System bekommt, bringt dir TOR, was ja im wesentlichen nichts mit Sicherheit, sondern mit Anonymität zu tun hat, wenig bis gar nichts.

    jonas-bayer schrieb:
    Nun stellt sich natürlich zum einen die Frage, inwiefern das Verhalten von US-Justiz und Regierung gerechtfertigt sind. Was ich aber eigentlich hier interessanter zu diskutieren fände ist, wie es denn mit der Sicherheit von TOR überhaupt noch aussieht.
    TOR ist ein Anonymisierungswerkzeug. Es dient nicht dazu, Straftaten zu verschleiern, sondern im wesentlichen, das breitbandige identifizieren von Nutzern bis zur unwirtschaftlichkeit zu erschweren. So lässt sich ein einzelnes Individuum - wenn an dann unbedingt möchte - wie fatfox richtig schrieb, trotz aller Maßnahmen zurück verfolgen.

    Ob TOR noch den erwarteten Rahmen von Anonymität bietet, hängt also stark davon ab, welche Erwartungen du daran hast, und wie dringend jemand "genau dich" finden will. Geht es beispielsweise darum, dass du in der Türkei mit vielen anderen zusammen eine Meinung gegen Erdogan ins Netz stellen willst, wäre der Grad der Anonymität sicher noch ausreichend. Willst du den US-Präsidenten ermorden, könntest du aber Probleme bekommen.
  • in: Browser Screen recording für firefox?

    geschrieben von noxious

    Du meinst sowas? Das sollte nun wirklich nicht so schwer zu finden sein...

    Nachtrag: Ehm... Frage offenbar falsch verstanden. Für Windows gibt es da Capture Fox. (Ungetestet)
  • in: Wie man sein System (ohne Virenscanner) sauber hält

    geschrieben von noxious

    all-in1 schrieb:
    Die Schulung der Mitarbeiter sollte man nie vernachlässigen.

    Nur die Versicherungen werden keinen Schaden zahlen, wenn ein Virenscanner und andere Schutzmassnahmen nicht installiert sind.

    Rechtliches und technisches liegen da mal wieder weit Auseinander.
    Das mag bei entsprechenden Verträgen der Fall sein - ändert aber ja nichts daran, dass man hier sicher mit eben oben genannten argumentieren könnte, um eben einen entsprechenden Versicherungsvertrag zu erhalten. Wenn es tatsächlich um sensible Daten geht, ist es möglicherweise rechtlich gar nicht möglich, einen Virenscanner zu verwenden. So war beispielsweise während meiner Bundeswehrzeit gar nicht erlaubt, dass dort Virenscanner installiert wurden. (Wobei dort wahrscheinlich auch Versicherungen keine große Rolle spielten.)
  • in: Wie man sein System (ohne Virenscanner) sauber hält

    geschrieben von noxious

    all-in1 schrieb:
    Die Vielzahl aller Internetnutzer sollten dennoch auf keinen Virenschutz verzichten. Ich kenne einen Haufen Leute, die versuchen alles mögliche an Programmen und Apps zu installieren und auf alles klicken, was unter den Mauszeiger kommt. Bei solchen Anwendern ist es dann doch eher empfehlenswert einen Virenscanner zu installieren.
    Das ist denke ich doch eher ein Problem des falschen Umgangs. Es ist in etwa so, als würde man allgemein (beispiesweise) Zuckerhaltige Lebensmittel verbieten - weil ein großteil der Bevölkerung sich falsch ernährt. Ich fände da den Ansatz aus dem Straßenverkehr deutlich hilfreicher: Eine Art Computerführerschein, bei dessen Erwerb die Leute lernen müssen, wie man eben richtig mit diesen Dingen umgeht.

    all-in1 schrieb:
    Firmen, gerade solche, die mit sensiblen Daten umgehen müssen aus versicherungstechnischer Sicht ebenfalls einen Virenscanner installiert haben. Kommt es mal zu einem erfolgreichen Angriff, dann ist die Chance größer, dass die Versicherung den Schaden übernimmt. Keinen Virenscanner zu haben ist in diesem Fall grob fahrlässig.
    Grade in Firmen, die mit sensiblen Daten umgehen, halte ich Virenscanner eher für ein Sicherheitsrisiko - schließlich ist dies Third-Party-Software, welcher Zugriff auf eben diese Daten erlaubt wird. In Fällen von professionellen Angriffen, bringt ein Virenscanner im wesentlichen gar nichts, da hier die Software für gewöhnlich für eine Aufgabe angepasst wird, Virenscanner also grundsätzlich kaum eine Chance haben, diese zu erkennen.
    Eine ordentliche Schulung der Mitarbeiter und ein aktuell halten des Systems sollte hier deutlich effizienter sein.
  • in: Webseite&Werbung = Nicht zwangsläufig Gewerbe!

    geschrieben von noxious

    loichtfoier schrieb:
    Wie gesagt, es gibt mehrere Möglichkeiten Steuer und Gewerbe zu umgehen ohne gegen Recht und Gesetz zu verstoßen. Wer gerade arbeitslos und ein wenig smart ist, der müsste da eine lässige Lösung sehen. Allerdings wäre das ein Widerspruch, denn wer schlau ist, hat auch Arbeit.
    Also im Umkehrschluss sind alle Arbeitslosen dumm? Eine gefährliche Ansicht, denke ich. Was ist mit Leuten, die kurzfristig arbeitslos werden? Werden die dann dumm, kurz darauf wieder intelligent? Oder werden intelligente Menschen gar nicht arbeitslos, weil beispielsweise die Firmen bei denen sie arbeiten, einen heiligen Schutz vor Bankrott/Stellenabbau haben? Was ist mit Krankheits- oder Unfallbedingter Berufsunfähigkeit? Haben nur dumme Menschen unfälle?
  • in: Suche Programm zur Wiedergabebeschleunigung (Video)

    geschrieben von noxious

    loichtfoier schrieb:
    Erst einmal vielen Dank für die Antwort. Und den umfassenden Nachsatz. :prost:

    Kann mir mal einer erklären wieso diese einfache Funktion in den hochtrabenden Videoschnittprogrammen nicht mehr enthalten ist? Ich habe zunächst Avidemux 2.6.17 installiert und nach den Filtern gesucht. Aber nicht gefunden.
    Das ist das Problem mit grafischen Frontends - du musst halt auf jede Forderung eine entsprechende Lösung parat haben - und dies dann noch übersichtlich zu gestalten, ist schwierig. Deshalb bevorzuge ich cli-anwendungen. Dort findest du im wesentlichen alles in der Dokumentation - und ein mal gelernt ist es in der Anwendung deutlich einfacher, als sich durchs GUI zu klicken.
    Ob es die Funktion bei AviDemux oder VirtualDub gibt oder wo, kann ich nicht sagen.

    loichtfoier schrieb:
    Wie gesagt habe ich zwar einen guten Hintergrund in der Informatik, aber Videoschnitt ist nicht so mein Ding. Da verlasse ich mich auf andere. Und bei den vorgenannten "Profis" ist man offenbar verlassen. Dein Tipp zeigte in ersten Test in der Tat den gewünschten Erfolg. Leider habe ich gerade nur mein Notebook (Windows) dabei und bei schnellen Bildwechseln ruckelt das Ergebnis. Was ich meiner Hardware zuschreibe.
    Nun, ruckeln sollte eigentlich nicht vorkommen. Möglicherweise liegt das jedoch daran, dass - wenn du eine Datei konvertierst - bei schnelleren Ergebnissen die Bildrate aber dennoch konstant bleibt. Also werden einige Frames fehlen, was möglicherweise den Eindruck einer flüssigen Bewegung einschränkt.
    Um es bildlich auszudrücken: Wenn du 50 Bilder pro Sekunde in einem Video hast und diese nur schneller abspielst, werden ggf. 100 Bilder pro Sekunde gezeigt. Wenn du jedoch 50 Bilder die Sekunde hast und es konvertierst, hast du am Ende dennoch 50 Builder pro Sekunde - also wird nur jedes zweite Bild angezeigt.
    An der Hardware - sofern der Laptop in der Lage ist, entsprechende Formate abzuspielen - sollte das nicht liegen. Denn ein konvertiertes Video sollte nicht andere Hardware-Anforderungen haben, als ein normales. Es sei denn, der Codec wurde geändert. In der Dokumentation von ffmpeg findest du im Zweifelsfall Informationen, welche dies betreffen, bzw. wie du den Codec auf etwas leichtes einstellst.

    loichtfoier schrieb:
    Zuhause am PC unter Linux sehe ich da keine Probleme. Batch-Programmierung ist auch kein Problem, mein erstes System war IBM-DOS 3.2 irgendwann Ende der 1980'er. Ich könnte sogar noch die Errorlevel hinkriegen. :smile:
    Also hat sich das Problem erledigt?
  • in: Speichergrenze- Alternative Webspaces

    geschrieben von noxious

    xn--94h schrieb:
    Das stimmt nicht man kann den Webspace auch für eine cloud verwenden.
    Ich habe auch nicht behauptet, dass man das nicht kann. Du kannst ein Auto auch schieben. Oder mit einem Flugzeug durch die Gegend fahren. Oder eine Toilette als Sitzmöbel im Wohnzimmer verwenden. Es ist nur lediglich nicht dafür gedacht. Ebenso wenig ist ein Webspace als Cloud-Speicher gedacht - deshalb kostet er halt das vielfache.
  • in: Speichergrenze- Alternative Webspaces

    geschrieben von noxious

    Also zum ersten: Webspace und Cloud sind zwei verschiedene Dinge - mit unterschiedlichen Ansprüchen. Deshalb bekommt man bei Cloud-Diensten wie HiDrive für 20€ auch 2000GB, während man bei Lima-City nur 100GB bekommt. Man zahlt also das 20-Fache bei Lima-City, ohne einen wesentlichen Vorteil.

    Von der Verwendung eines Root/vServers würde ich im Privat-Bereich dringend abraten. Denn du zahlst nicht nur direkt deutlich mehr - du musst auch noch indirekte Kosten für Wartung und Administration einberechnen. Selbst, wenn man das entsprechende Know-How hat, um das alles selbst zu machen, kostet dies Zeit - im nicht unerheblichen maße. Und Zeit ist Geld, wie wir alle wissen.

    Die einfachste Lösung wäre also, auf einen fertigen Cloud-Dienst zu setzen. Es sind entsprechende Server-Infrastrukturen gegeben, welche für eine effiziente Cloud-Nutzung notwendig sind, sie werden von Profis gemanaged und man zahlt deutlich weniger, als bei Lima-City.
    Eine aufwändigere Methode wäre, unterschiedliche Cloud-Dienste zu einem zu verbinden. Wenn ich die Daten verschlüsselt und verteilt über verschiedene Systeme speicher und auf Lima-City quasi nur eine Verwaltungsoberfläche einbinde, wäre das zwar aufwändig, aber sollte machbar sein.
    Wenn es dann unbedingt Webspace sein soll, bekommt man diesen auch deutlich günstiger als bei Lima-City - bei Strato bekommt man 120GB + 3 Domains + SSL-Zertifikat + 50 FTP-Zugänge [...] für 10€ pro Monat, kostet also etwa die Hälfte und man hat mehr (möglicherweise unnötige) features.

    Kurzum: Warum selbst etwas auf einer Plattform aufsetzen, welche nicht dazu gemacht ist, wenn es doch diverse Plattformen gibt, welche günstiger und besser geeignet sind?
  • in: Suche Programm zur Wiedergabebeschleunigung (Video)

    geschrieben von noxious

    Wenn ich richtig verstehe, was du möchtest, dann probiere doch mal ffmpeg.
    ffmpeg -i input.mkv -filter_complex "setpts=PTS/1.25;atempo=1.25" output.mkv
    sollte tun, was du möchtest. Wenn du dies auf mehrere Dateien anwenden möchtest, bietet sich an, das ganze in eine Stapelverarbeitung zu packen.

    Nachtrag: Um die Antwort zu vervollständigen, hier noch ein paar Anweisungen, wie man das ganze relativ einfach in einer Stapelverarbeitung nutzt. Angenommen, alle Video-Dateien liegen in einem Verzeichnis, kann man unter Windows via
    for %i in (*.mkv) do ffmpeg -i %i -filter_complex "setpts=PTS/1.25;atempo=1.25" %i.converted.mkv
    nutzen. Dadurch wird jede Datei auf 125% beschleunigt und in
    alterdateiname.converted.mkv
    gespeichert. Hieß die ursprüngleiche datei also
    Big_Buck_Bunny.mkv
    heißt die neue
    Big_Buck_Bunny.mkv.converted.mkv
    . Die Namensgebung lässt sich natürlich beliebig anpassen.
    Unter Linux ist es ähnlich
    for file in *.mkv; do ffmpeg -i $file -filter_complex "setpts=PTS/1.25;atempo=1.25" $file.converted.mkv; done


    Will man mehr als 125%, ändert man die Parameter von setpts und atempo von 1.25 auf beispielsweise 1.5, 1.7 oder was auch immer. Soweit ich weiß, geht das nicht über 2.0, also will man mehr, wie beispielsweise 350%, teilt man 3.5 durch zwei und lässt das ganze zwei mal durchlaufen - also zwei mal mit dem parameter 1.75. Wie man dies in einer Stapelverarbeitung oder für Werte > 400% macht, überlasse ich als Übungsaufgabe.
  • in: Probleme mit ncat und ssl

    geschrieben von noxious

    Hallo,

    ich versuche eine (bzw. viele) Dateien via ncat zu versenden. Dabei sind eine vielzahl von Problemen aufgetaucht, welche ich nach und nach lösen konnte, bis auf eines: Wenn ich SSL verwende, gibt es ab einer gewissen (unbestimmten) größe der Datei Probleme. Aber zurück auf Anfang.


    Das erste Problem war, dass ich viele Dateien empfangen wollte, ncat aber prinzipiell alles in eine Datei schreiben will. (Bzw. ins Terminal) Eine lösung wäre gewesen, ein Bash-Script zu schreiben, welches ncat ohne keep-open-flag startet, das ganze in einen zufallsgenerierten dateinamen packt und das ganze dann in einer Schleife macht. Problem dabei ist, dass es in der schleife (und beim starten eines neuen Server-Prozesses) immer wieder zu einer geringfügigen Verzögerung kommt, woraufhin auf Clientseite die Verbindung scheitert und Dateien verworfen werden.
    Der keep-open-flag ist also quasi zwingend nötig, was das Problem mit mehreren Dateien aufwarf. Dieses ließ sich lösen, durch die implementierung eines äußerst rudimentären Protokolls, welches die versendeten Dateien in base64 kodiert und dann mit führenden und folgenden Linebreak sendet.
    echo -e "\n$(base64 -w 0 file)\n" | ncat -C host port
    . Dann kann am Ende die Datei mit einem einfachen Script in viele, kleine Dateien zerlegt werden.

    Dann folgte die Idee, das ganze mit SSL laufen zu lassen. Und dort fingen die Probleme an. Erstmal schnell mit openssl schlüssel/zertifikat erzeugt (
    openssl req  -nodes -new -x509  -keyout key.pem -out cert.pem;
    ), den Server via
    ncat -k --listen --ssl-key ssl/key.pem --ssl-cert ssl/cert.pem host port > incoming/filelist
    gestartet - schien zu laufen. Wenn nun der Client via
    echo -e "\n$(base64 -w 0 file)\n" | ncat --ssl -C host port
    eine kleine Datei sendet (wenige Byte) funktioniert auch noch alles wunderbar, aber ab einer gewissen Größe bekomme ich nur noch die Meldung
    Ncat: Input/output error.
    (Auf Clientseite) - was bei
    -vvv
    doch recht wenig ist. Beim Server erhalte ich
    Ncat: Connection from host.
    Ncat: Connection from host:45310.
    NCAT DEBUG: Added fd 4 to list, nfds 3, maxfd 4
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: Added fd 4 to list, nfds 1, maxfd 4
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: Closing connection.
    NCAT DEBUG: Swapping fd[2] (4) with fd[2] (4)
    NCAT DEBUG: Removed fd 4 from list, nfds 2, maxfd 3
    NCAT DEBUG: Swapping fd[0] (4) with fd[0] (4)
    NCAT DEBUG: Removed fd 4 from list, nfds 0, maxfd -1
    NCAT DEBUG: selecting, fdmax 3


    Die Frage ist nun: Wo habe ich was falsch gemacht? Hat da jemand eine Idee?
  • in: YouTube Livestream in Homepage einbetten

    geschrieben von noxious

    invalidenturm schrieb:
    Um das Impressum rechtskonform zu gestalten rate ich von derartigen Experimenten, wo dann 13 Anwälte 12 unterschiedliche Meinungen haben, ab. Die meiner Meinung beste Variante ist eine E-Mailadresse, welche ausschliesslich der Kontaktaufnahme bei Problemen dient, im Impressum anzugeben, und diese Mailadresse auszutauschen falls Spam zum Problem wird. Jeder hat doch ein fast unerschöpfliches Kontingent an Mailadressen und eine Korrektur im Impressum ist auch schnell erledigt.

    Für alle anderen auf der Webseite verwendeten Mailadressen sind natürlich die Vorschläge von muellerlukas und kalinawalsjakoff sehr empfehlenswert.
    Vollkommen richtig. Auf der wirklich sicheren Seite ist man, wenn man die Mail-Adresse schlicht angibt. Und ich halte es auch für vollkommen richtig, dass die Mail-Adresse angegeben wird. Denn auch, wenn es dem Betreiber wie eine Impressumspflicht erscheint, ist es doch letztenendes ein Impressumsrecht für den Besucher. Und das gilt nun mal auch für jeden, der einen noch-so-alten browser verwendet, der ggf. kein javascript oder ähnliches unterstützt.

    Kurz gesagt: Email-Adressen müssen maschinen- und damit auch für Spambots lesbar sein.

    Was Spam angeht, gibt es auch Urteile, welche - wie ich finde - in ihrer Argumentation vollkommen nachvollziehbar sind: Wer in der Lage ist, eine Webseite zu betreiben, sollte auch dazu in der Lage sein, einen Spamfilter zu konfigurieren. So ziemlich jeder MUA bietet heutzutage entsprechende Funktionen, bei denen nach relativ kurzem Training Spam zielsicher erkannt wird.
  • in: Bräuchte SEO Tipps für eine Webseite

    geschrieben von noxious

    invalidenturm schrieb:
    [..]also erzähle mir nicht, dass Metas wie Contend und Keywords nicht mehr von Suchmaschinen berücksichtigt werden.
    Ich habe das offizielle Statement von Google verlinkt.(Bzw. das Statement des Leiters der Teams, welcher auif der selben Seite auf das offizielle Statement verweist.) Aber wenn du meinst, das besser zu wissen, als jene, welche bei Google eben dafür verantwortlich sind -- okay.

    invalidenturm schrieb:
    Ja da gebe ich Dir recht, auch Google weist immer darauf hin. Allerdings fand ich die Seite schon ganz gut gelungen, im Text zu anderen Unterseiten verlinken wäre natürlich eine Komforterhöhung und würde vermutlich auch zu einer Verbesserung des Suchmaschinen Rankings führen, auch die Integration einer (XML) Sitemap über wlche die Besucher einen Gesamtüberblick erhalten wäre ratsam.
    Die Seite ist gut, keine Frage. Es sind halt kleinigkeiten, welche noch Potenzial für Verbesserungen haben. Und eben diese können für Suchmaschinen, welche imho echt kleinliche Nutzer simulieren, halt ausschlaggebend sein.
  • in: Bräuchte SEO Tipps für eine Webseite

    geschrieben von noxious

    invalidenturm schrieb:
    Keywords wirken auch heutzutage noch, sofern man sie richtig nutzt.
    Wieso behauptet Matt Cutts, der Chef des Web-Spam-Temas von Google dann, dass Keyword-Mete-Tags von der Suchmaschine ignoriert werden? Ist er ein Lügner?

    invalidenturm schrieb:
    Du kannst ja mal nach "wolfsgebiete" googeln, das ist ein recht geläufiger Begriff. Auf Googles Trefferseite 2 wirst Du dann auf wolfsgebiete.de stossen.
    Du liegst (aktuell) auf Platz 11 von 2710, nordseehorumsiel auf Platz 37 von 7710. 7710/2710*11= 31. Deine Seite wäre - auf einem ähnlichen Markt - also ähnlich schlecht platziert. (Okay, arithmetisch 6 Plätze über der Ferienwohnungsseite.) Du hast dort schlicht den Vorteil, eines weniger umkämpften Marktes.

    Wichtig für SEO ist vor allem eines: Relevanz. Diese erzeugt man durch Verlinkungen, beispielsweise auf anderen Portalen des selben Themas. Das Text/Bild-Verhältnis ist auf der Seite relativ gut. (Es gibt Seiten mit deutich weniger Text, welche dennoch ganz oben bei Google auftauchen.) Was Keyword-Meta-Tags angeht: Sie werden von Google zwar ignoriert, aber nicht jede Suchmaschine wird da mitziehen. Im Zweifelsfall: Immer sparsam einsetzen. Wer weiß, ob nicht irgendwann doch jemand entscheidet, das ganze wieder zu sanktionieren. Zudem halte ich die Anmerkung, dass die Litanei an unwesentlichen Informationen dort wenig Sinn macht, für gar nicht falsch. Auch, wenn das ganze einen nicht sofort auf Paltz 1 erheben wird, oder überhaupt etwas am ranking verändert, sind die Keyword-Tags doch dazu da, um Sinn zu ergeben. Wenn ich also schon Straßennamen in die Keywords nehme, dann doch ausschließlich auf den Unterseiten zu den entsprechenden Wohnungen, die dazugehörige Straße, nicht auf der Hauptseite alle Straßen zusammen.

    Zudem ist denke ich die schlichte "Durchnummerierung" der Ferienwohnungen eher unglücklich. Hier könnte man entsprechende Straßennamen und Hausnummern einsetzen, um es dem Besucher einfacher zu machen, zu erkennen, worauf er da klickt. Denn Suchmaschinen versuchen letztenendes Besucher zu emulieren. Will man die Seite für Suchmaschinen optimieren, sollte man sie für Besucher optimieren. Im Titel der Webseiten ist es besser geregelt, aber auch dort würde ich die schlichte Nummerierung weg lassen. In den Link zur Wohnung am Strandweg 5 also schlicht "Strandweg 5" schreiben, anstelle von "Wohnung 1". Wenn es auch Wohnungen außerhalb von Horumsiel gibt, möglicherweise auch den Ort mit rein nehmen. Wenn es mehrere Wohnungen an der selben Adresse gibt, Zimeranzahl spezifizieren. Und so weiter. Im Titel der Seite der Wohnung halt das "Wohnung 1" raus nehmen und durch relevante Informationen ersetzen - Sowas wie Adresse, Zimmeranzahl, Besonderheiten. "3 Zimmer - Strandweg 5 - Mit Balkon" klingt doch eher nach etwas, wonach man sucht, als "Wohnung 1 - Strandweg 5".
    Zudem sollte möglicherweise auf jeder Seite im Titel der Seitentitel mit drin stehen. Dieser wird mir bei der ganzen Seite nicht ganz klar. Heißt das Unternehmen "FeWO Nordsee"? Dann halt "FeWo Nordsee - Strandweg 5 - 3 Zimmer - mit Balkon" oder ähnliches.
    Der Balkon war jetzt nur ein Beispiel, da der (lt. Angabe auf der Hauptseite) bei jeder Wohnung dabei ist, keine wirkliches Highlight...
    Außerdem sollten natürlich auch die Seitennamen (wohnung1.htm, etc.) dementsprechend angepasst werden.

    Damit kommt man zum nächsten Punkt: Auf der Hauptseite wird (außerhalb der Navigation) zum Restaurant verlinkt, während die Ferienwohnungen nur erwähnt werden. Auch hier würde ich - möglichst dort, wo die Ferienwohnungen erwähnt werden - auch noch ein mal direkt dorthin verweisen. Ich lese mir beispielsweise die Seite durch und muss dann wieder nach oben scrollen, um zu den Ferienwohnungen zu gelangen. Als Besucher eher lästig, weil es den Fluss stört. Wenn dort ein Link wäre, würde ich mir die Hauptseite durchelsen und sehe - Ah, da ist das was ich suche, dort kann ich klicken. Die Suchmaschine fände das sicher auch ganz angenehm, da es aktuell schlicht danach aussieht, als würde da ein Restaurant betrieben, welches nebenbei, manchmal, wenn es Gelegenheit dazu hat, auch mal Ferienwohnungen vermietet. Und so nimmt es Google offenbar auch auf - suche ich nach "nordseehorumersiel", stoße ich zuerst auf die Restaurantseite.

    Ich bin kein SEO-Profi, möglicherweise sind meine Hinweise ja auch nur Quatsch. Aber immer, wenn ich mich über SEO informiere, wird mir eben folgendes gesagt: Suchmaschinen emulieren Besucher, optimiere deine Seite für Besucher, dann ist sie im groben auch für Suchmaschinen optimiert.

Login zum Webhosting ohne Werbung!