Beiträge von florian0

    Einfach weitere IFs hinzufügen:

    Google hat auch ein paar mehr Server und ein gut strukturiertes Netzwerk.


    BTT: Windows ... ich bin raus ^^. Unter Linux hätte ich dir vll. noch helfen können, aber von Windows Servern hab ich zu wenig Ahnung.
    > Wie schon mehrfach vorgeschlagen, Lunixxa hat einige Erfahrungen mit DDoS & Windows Servern.

    Ein Router bringt auch nichts. Der Router leitet alles an den Server weiter. Entweder platzt der Router, die Leitung oder der Server dahinter. Was wirklich hilft ist ne intelligente Firewall-Lösung die DoS-Attacken erkennen kann. Zum Beispiel Hyperfilter: Erkennt DoS und blockt ggf. Traffic für einen Zeitraum.


    Virus.Jeefo.A hatte ich vor kurzem auch ... schreckliches Ding. Hat alle Exe-Dateien auf allen Paritionen, sämtlichen USB-Sticks und sogar Netzlaufwerken infiziert.
    Das Ding schreibt einen Loader in jede Exe und sichert somit, dass der PC niemals desinfiziert werden kann (Den Loader kann man erkennen, bei jedem Ausführen einer Exe, wird diese um ein paar Byte kleiner).


    PC komplett platt machen ist die einzige Methode das Teil wirklich loszuwerden. Sicher alles was dir wichtig ist. Nur keine Exe Dateien, weil dann geht das Spiel wieder von vorne los.


    Gruß
    florian0

    Hiho,


    ich bin gerade dabei mir ein kleines eigenes CMS zu basteln. Zur Zeit ist jede Unterseite eine Klasse gekapselt die eine Basisklasse (für verschiedene Funktionen und Parameter, z.B. Menu Eintrag) implementiert. Zur Zeit wird das ganze manuell in der index.php eingetragen und das möchte ich gerne abändern.
    Ich hatte überlegt, dass ich automatisch alle Klassen im Ordner einbinde und in ein Array instanziere. Daraus kann ich dann das Menu generieren und automatisch je nach angefragter Seite, diese anzeigen ...
    Nur an der Umsetzung haperts jetzt. Dateien auflisten und includen ist kein Ding, aber instanzieren?
    Meine Theorie wäre alles includen und dann per get_declared_classes die durch alle Klassen loopen und mit get_parent_class prüfen ob die Klasse die Basisklasse implementiert. Dann kann ich ja mit:

    PHP
    1. $class = 'testklasse'
    2. $instance = new $class;

    eine neue Instanz auf Basis des Klassennamens aus get_declared_classes erstellen.


    Klingt aber in meinen Ohren wie ... naja ne scheiß Lösung halt :D


    EDIT: Keiner ne Idee oder Ahnung von sowas?
    Ich hatte noch ne andere Idee, dass ich die allen Dateien einen Header verpasse, denn ich dann auslesen kann. ielleicht reicht es auch wenn ich die Datei gleich der enthaltenen Klasse benenne. Das klingt aber auch nicht sonderlich performant.
    Das kann man ja ggf. in einer Datenbank cachen. Dann hat eben der Admin eine Übersicht über alle installierten Seiten (die über oben genanntes Verfahren gesucht werden) und kann diese aktivieren und deaktivieren. Normale Besucher bekommen nur die Seiten die auch in der Datenbank sind.


    Gibts da bessere Methoden?


    Gruß
    florian0

    Verwendet man in einer Form rechenintensive Vorgänge ohne diese in einem Thread auszulagern, dann reagiert die Form für die Zeit der Ausführung des Vorgangs nicht. Dies lässt den Nutzer glauben, das Programm hätte sich aufgehängt.
    (Typisches Beispiel: Der WindowsEditor mit großen Dateien)


    Es empfiehlt sich also diese Vorgänge in einen Thread auszulagern. Manchmal möchte man während des Vorgangs Informationen in der Form ausgeben. z.B. wenn man eine größere Datei verarbeitet eine ProgressBar aktualisieren.
    Versucht man von einem anderen Thread auf die Steuerelemente des WindowThreads zuzugreifen, wird dieser Zugriff standartmäßig verweigert.


    Code
    1. Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement progressBar1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.


    Diese Meldung lässt sich unterdrücken.

    C
    1. CheckForIllegalCrossThreadCalls = false;


    Dies ist aber in etwa so sinnvoll wie, wenn man öfter einen Autounfall hat und sich beschwert, dass man ständig den Airbag ins Gesicht bekommt. Und anstatt weniger Unfälle zu bauen, baut man lieber den Airbag aus.
    [Quelle: Stackoverflow]


    Die richtige Lösung ist Invoking. Man prüft vor dem Zugriff auf das Steuerelement, ob man einen thread-übergreifenden Vorgang durchführen würde (ein Invoke nötig ist).


    Dazu erstellt man eine Methode, welche die gewünschte Funkion ausführt (Man bezeichnet solche Methoden auch als getter und setter-Methoden).
    Die Funktion überprüft, ob ein Invoke nötig ist, und wenn ja fordert sie einen Invoke beim Steuerelement an und gibt sich selbst als Callback an. Das heist die Funktion ruft sich solange selbst auf, bis der Vorgang sicher durchführbar ist.
    Da wir hier mit einem Callback arbeiten, brauchen wir auch noch ein delegate.



    Jetzt kann man in seinem eigenen Thread SetProgressBarValue(10) aufrufen und die ProgressBar verändert sich ohne Probleme.



    Gruß
    florian0

    Hintergrund:
    Das mit den 3000 ist ein typisches Telekom Konzept. Wenn die Leitungswerte unter einem gewissen Wert liegen, wird ein 6000er DSL automatisch auf 3000 umkonfiguriert. Der Anschluss läuft dann nurnoch mit 3000 egal wie viel theoretisch gehen würde (Der Kunde erfährt das oftmals nicht, meines Wissens wird nichtmal der Preis reduziert ...).
    Ob man das ändern lassen kann, kann ich dir nicht sagen.


    Andere Netzbetreiber mieten zwar die Leitungen der Telekom, sind aber nicht von diesem Konzept betroffen. Die Telekom garantiert damit halt maximale Stabilität.


    Gruß
    florian0

    Dieses Snippet zeigt die Verwendung von Threads mit und ohne Parameter.


    Ohne Parameter



    Mit Parameter
    Als Parameter ist in .NET-basierten Sprachen nur object zu gelassen. Desweiteren darf man nur einen einzigen Parameter übergeben. Bevor der Parameter wieder verwendet werden kann, muss dieser ein seinen alten Datentyp "zurück-gecastet" werden.


    Gruß
    florian0

    Erstelle die pictureBoxen von Hand über ne FOR-Schleife im Konstruktor der Form. Bei der Erstellung steckst du die in ein Array. Dann kannst du über pb_array[Slot] auf die PictureBox zugreifen :)
    Dann noch durch die ItemListe gehen und die Items updaten (oder durch das pb_array und dann schauen ob an einem Slot ein Item ist).


    Wäre so die einzig sinnvolle Methode um Ultimative Code-Redundanzen zu vermeiden ...


    Gruß
    florian0

    Ich hab Visual Studio 2010 Prof. Die 2012er ist totaler Müll. Lahm wie sonst was und verbuggt (Ein klassischer RC von Microsoft eben).


    Als einziges Add-In hab ich vsTortoise damit ich SubVersion in der IDE verwenden kann ... sonst hab ich noch nix gefunden, was IDE nicht schon selbstständig kann.


    Gruß
    florian0

    Ich zähl mal alles auf, was mir noch so auffällt ...


    - Wenn du vom Passwort eh den MD5-Hash berechnest, brauchst du das nicht durch escape-string quetschen. (Solange du den MD5-Hash per PHP berechnest. Wenn du das per SQL regelst, musst es es escapen).
    - LIKE ist für einen direkten Vergleich ungeeignet. LIKE ist für Suchvorgänge da. Verwende lieber WHERE login = '$username'


    Logischerweise sollte ein Username nur ein einziges mal vorkommen. Das Result des Querys sollte deshalb auch nur eine einzige Zeile sein (oder keine, wenn der Username nicht existiert)
    Daher macht hier eine while-Schleife prinzipell keinen Sinn. Außerdem brauchst du den Usernamen des Results nicht nochmal prüfen (außer du vertraust dem SQL-Server nicht).


    Besser (ungetestet) :


    Gruß
    florian0