Beiträge von Andosius

    respekt für die Investierte zeit die ich seit 2009 darin gesteckt habe

    Respekt beruht auf Gegenseitigkeit. Hier muss dir keiner auch nur irgendwie Respekt entgegen bringen, du kannst das ja selbst nicht einmal.

    Und es würde sehr viel zeit investierung kosten den Ganzen Bot umzuschreiben denn ich müsste dafür eine Neue Sprache lernen und das ist in meinem Alter nicht mehr möglich.

    "Ich bin zu alt dafür", so ein Schwachsinn. Du tust so, als ob du in zwei Wochen einfach umkippen würdest, mach dich bitte nicht lächerlich. Ich habe genügend Leute kennengelernt, die mit 40 in die Software-Entwicklung eingestiegen sind und vorher noch nie etwas damit zu tun hatten - von all den Quereinsteigern in allen anderen Bereichen muss ich ja wohl kaum sprechen.

    wieso rechtfertige ich mich eigentlich hier...

    Deine Art mit Menschen umzugehen ist einfach widerlich, abwertend und auf vielen Ebenen nichts anderes als zynisch.

    Du versuchst eine einfache Lösung für ein komplexes Problem zu kriegen. Die einzige Person, die hier delusioniert ist, bist ganz alleine du.


    Dir fehlt sämtliches Verständnis dafür, dass wir hier ein HILFEFORUM sind. Wir sind nicht hier um dir das Gefühl zu vermitteln, dass dein Programm spitzenklasse ist oder dir sonstigen Selbstwert zu geben. Wir arbeiten mit Fakten und du mit Gefühlen deiner alten Arbeit gegenüber.


    Abgesehen davon: Dateizugriffe sind im Vergleich zu Datenbanken um ein vielfaches langsamer, das wurde dir schon mehrfach gesagt. Nur, weil du das nicht akzeptieren möchtest, musst du nicht so tun, als ob wir alle inkompetent sind.

    Habe erstmal die paar Sachen umgesetzt und das sieht deutlich besser aus.

    Es ist nicht besonders schön aber hey, es funktioniert wie es soll. Es wäre vermutlich auch deutlich schneller, wenn ich nicht über das Netzwerk darauf zugreifen müsste. xD


    Bezüglich PostgreSQL: Ich sehe bereits seit Jahren viele Menschen darauf umsteigen. Vielleicht ist es dann auch mal für mich Zeit dem Strom zu folgen und sich mal langsam einzulesen. :=)

    Absolut kein Thema, das sind gute Fragen. Persönlich kenne ich noch kein schönes SQL-Framework. Mit JSON hatte ich vorher schonmal gearbeitet, deshalb war das für mich nicht so befremdlich.

    Eigentlich hast du auch Recht. Ich kann doch im Mainthread mit ArchiveParser::GetQueueSize die verbleibenden Objekte abfragen und in ArchiveParser::ProcessElement ein mutex locken und direkt pushen.


    Dann ganz einfach die main-While-Schleife anpassen, dass die mit GetQueueSize() > 0 arbeitet und wenn die Queue Size auf 0 ist für 2 Sekunden sleepen. Hört sich zumindest sinnvoll an xD?



    Kannst du eventuell eine MariaDB-Bibliothek empfehlen? :/

    Der MariaDB Connector soll - soweit ich das zumindest lesen konnte - ziemlich schlecht sein.

    Gude allerseits,


    um mein Problem erklären zu können, folgt erstmal die Beschreibung meines derzeitigen Projekts.

    Einigen unter euch wird möglicherweise die Seite "mtaupload.com" etwas sagen. Diese Seite ist langsam des Grauens und macht mich wahnsinnig. Deshalb möchte ich eine eigene Lösung implementieren, wofür ich eine Datenbank brauche.

    Das Projekt, mit dem ich diese Datenbank anfertige, möchte ich der Community zur Verfügung stellen.


    Dort habe ich mir jetzt etwa 6700 Maps per Script heruntergeladen (natürlich mit Einverständnis der Administration).

    Da es ein Haufen an Maps ist und man da sehr schnell den Faden verliert, habe ich natürlich auch ein Programm geschrieben, welches das Archiv nach der meta.xml durchsucht und anschließend den Mapnamen + den Pfad in eine .json-Datei schreibt.

    Hier kommen wir zum Problem: Solche intensiven IO-Zugriffe sorgen für ordentlich Lag, weshalb ich das Programm auf Multithreading umgeschrieben habe. Der 9:30 Minuten Prozess dauert nun nurnoch knapp 2 Minuten, was wirklich deutlich schneller ist.


    Nur gibt es ein Problem: Durch die Erweiterung auf MT kommt das Problem hinzu, dass ich ~6700 Future-Objekte beherberge.

    Die Überprüfung der Objekte dauert so lange, dass in dieser Zeit keine Status-Updates in der Konsole folgen können.


    Hat jemand eine Idee was ich tun kann, um den Code in ArchiveParser::CheckResults() deutlich zu beschleunigen?


    Ich bin über jede Hilfe glücklich. :)



    Github: https://github.com/Andosius/MapListGenerator

    Problemzeile: https://github.com/Andosius/Ma…5161fa18/src/main.cpp#L22

    Habe eben in der Dokumentation nachgeschaut und wenn ich die Logs richtig interpretiere, versuchst du PlayerPedId() serverseitig zu verwenden, obwohl es zum client API-Set gehört.


    Schau mal, ob „source“ nicht bereits der Spieler ist, das würde vom Funktionsaufbau verdammt viel Sinn machen. :)

    Wie du vllt am Inhalt meines Beitrages lesen kannst (das wünsche ich dir), gebe ich dir einen allgemeinen Programmierhinweis, wie man eine Sprache einfach und effizient erlernen kann + Ressourcen und habe sogar jemanden verlinkt der sehr viel Erfahrung in diesem Gebiet hat.


    Zusätzlich ist diese Webseite aufgrund ihres Aufbaus meine Empfehlung für HTML, CSS und vanilla JS + einige Frameworks und Libraries. Für kleinere JS Projekte habe ich hier auch mal zurückgegriffen.

    Dass du dir die Seite aber nicht einmal anschauen würdest, bevor du so etwas peinliches von dir gibst, hätte ich ahnen müssen.

    Ich kann dir nur einen Rat mitgeben: Ließ dich in die Grundlagen ein und ignoriere alle möglichen Tutorial-Ressourcen, bis du kleinere Projekte schreiben kannst.


    Für den Anfang ist W3Schools ein guter Einstieg.



    Lerne die grundlegenden Bedeutungen von HTML & CSS Objekten/Befehlen, schaue dir fremde Projekte an und baue auch eigene einfache Webseiten.

    Versuche erst gar nicht eine riesige Webseite innerhalb der ersten Wochen aufzubauen. Du wirst dich nur selbst demotivieren. Fang klein an, verbessere alten Code und steigere dich so.


    Es ist mit HTML/CSS quasi so, als würdest du eine Programmiersprache lernen und dort fängt man ja auch mit Basistypen an, orientiert sich um diese, ersetzt diese ggf irgendwann und lernt dabei neues.

    Das gilt logischerweise auch für JavaScript, da habe ich aber keine Erfahrung mit weil ich ein Backend-Typ bin. (CC LeonMrBonnie vllt hast du ja Ratschläge?)



    Wenn du Fragen hast, google diese einfach. Versuche aber zu verstehen, was genau passiert, wenn du Zeile X hinzufügst!

    Es wird ein langer Prozess aber wenn du konsequent am Verständnis und nicht ausschließlich an einem Projekt arbeitest, ist dir der Erfolg garantiert. :)

    Um das, was du vorhast, irgendwie sicher und anständig umsetzen zu können, musst du auf jeden Fall fortgeschrittene Kenntnisse in C# haben und tendenziell sogar eine API mit erstellen, sonst hast du keine Chance.

    Sonst könnte jeder, der den Keybinder besitzt, alles mögliche tun.


    Das ist für den Server ein enormes Sicherheitsrisiko. Lerne zuerst die Sprache, verstehe warum das sicherheitstechnisch ein Problem sein könnte (siehe Reverse Engineering) und setze das Projekt dann erst um, wenn du auch verstehst, wie du extern die Befehle verifizieren und ausführen kannst.

    Das ist quasi der wichtigste Teil des Ganzen.



    Unterschätze ein Overlay nicht. Du musst, falls es dafür keine fertige Bibliothek gibt, die Grafikfunktionen des Spiels hooken. Das ist für einen Anfänger unrealistisch, das erfordert nämlich ein gutes Verständnis von Windows, wie der Arbeitsspeicher funktioniert und in dem Fall DirectX 9 und Gamehacking.

    Das sind Sachen, die du als Anfänger in den ersten 2 Jahren lernen kannst, tendenziell braucht man sogar länger, wenn man bei 0 beginnt. Das wird allerdings hart und kostet viel Disziplin und ob es am Ende des Tages das wirklich Wert ist, wage ich stark zu bezweifeln.



    Vielleicht solltest du über AutoHotKey nachdenken, das könnte mehr Sinn machen und ist technisch auch deutlich anspruchsloser.

    Oder einfach warten Kevin bis du dein Zeug wieder von den Behörden zurück bekommst

    Ich bin mir sicher, dass du es gut meinst, allerdings halte ich das für wenig realistisch. Das wird mit höchster Wahrscheinlichkeit mehrere Jahre dauern, bis das Gerät freigegeben wird.


    Aus meiner Erfahrung (Praktikum bei einer Strafverteidigerin) kann ich allerdings berichten, dass sich Strafverfahren mit Datenauswertungen von Geräten (und das ist leider meistens der Fall) über 3+ Jahre hinweg ziehen. In einzelnen Fällen kann es schneller gehen oder eben länger dauern. Wir sind aber für kein besonders schnelles Rechtssystem bekannt, also sollte man da nicht allzuviel Hoffnung haben.


    Je nach vermutetem Verstoß, wird das Gerät sowieso nicht zurückverlangt, weil die Abgabe des Gerätes ein Milderungsgrund sein kann, so die Anwältin.



    Es wäre deutlich einfacher einen neuen PC zu kaufen. Da gibt es kaum Bürokratie, man muss sich nicht mit Gerichten aufhalten und hat auch wenig Wartezeit, bis das tatsächlich bearbeitet wird.

    Das wird den heutigen Ansprüchen nicht gerecht, damit kannst du es wirklich vergessen.

    Schau lieber, dass du so 800-1000€ sparst. Damit hast du etwas für die Zukunft.


    Verschwende dein Geld nicht für so "halbe Sachen" und mach es wenn dann richtig. Damit kannst du froh sein, wenn Word darauf läuft. xD

    Wie kommst du zu dieser Annahme? :)

    Ganz einfach:

    Sie kann in ihrem aktuellen Stand keine komplexeren Programmieraufgaben lösen. In diesem Moment wird Sie keine Position übernehmen können.

    Ein super Beispiel ist ein einfacher Logger. Frag Sie mal, ob Sie dir ein funktionierendes C++ Beispiel schreiben kann, in denen Macros nach dem Muster "LOG_" + Log-Type und direkter String-Eingabe funktionieren (unbekannt viele String-Typen-Argumente). Selbst mit dem Hinweis, dass die meisten Compiler __FILE__, __LINE__, __FUNCTION__ interpretieren können, wird sie dir kein funktionierendes Ergebnis ausgeben können.

    Teilweise werden irgendwelche ungewünschten Inhalte hinzugefügt und bei Korrekturwunsch werden alle vorher klar definierten Kriterien verworfen.

    Bittet man nochmal um Nachbesserung werden die wildesten Bibliotheken mit eingebunden, die eigentlich gar nicht nötig wären.


    Es existiert also kein tatsächliches Verständnis, sondern nur ein beschränkter Datensatz. Das ist genau der Grund, weshalb die KI eben nicht einen Programmierer ersetzen kann und sehr wahrscheinlich auch nie ersetzen wird. Dafür gibt es viel zu komplexe Sachgebiete und Ausnahmen.



    Abgesehen hiervon, denke ich schon, dass es dafür viele Einsatzgebiete gibt - also nicht Text-KI spezifisch.

    Gesichtserkennung, autonomes Fahren und ähnliche Anwendungsgebiete zeigen ja bereits, dass es möglich ist.

    Das sind im Gegensatz zu ChatGPT auch tatsächlich sehr flexible Systeme. Sprache an sich hat viele Regeln, die klar strukturiert sind. Das macht eine solche Implementierung weniger Komplex als ein Straßenverlauf.

    Dennoch ist es erstaunlich, dass ein Programm relativ natürlich auf Fragen antworten kann - das möchte ich gar nicht abstreiten.



    Heute übernehmen Bots ja bereits einfache Jobs wie diese typischen "Kann ich Ihnen helfen?"-Bots auf z.B. der Website der Deutschen Post.

    Das ist auch unproblematisch. Hier werden aber - realistisch gesehen - keine wirklichen KIs eingesetzt.

    Bei Wissensfragen kann ChatGPT eine Hilfe sein. Leider habe ich auch schon einige falsche Antworten erhalten.

    Besonders schwierig wird es, wenn man ChatGPT in der Anfangsfrage genaue Kriterien setzt und beim nächsten mal sie diese komplett über Board wirft.


    Für kleinere Sachen und Beispiele ist das kein Thema. Wird die Frage aber sehr komplex oder beinhaltet mehrere Variablen, scheitert sie knallhart. Habe also gemischte Gefühle bei der Sache.


    Schlussendlich wird sie aber niemals den Menschen ersetzen können.

    Jo, das ist jetzt aber die tatsächlich funktionierende Version. Das, was er dir vorhin geschickt hat, war leider nicht ganz korrekt.

    Damit dürfte es aber auf jeden Fall klappen, habe extra SAMP installiert um das zu testen xD