[SAMMELTHREAD] Kleine Coding Fragen

  • Vielen dank für deine Empfehlungen.Welches davon würdest du denn bevorzugen?
    Finde persönlich CouchDB besser aufgrund dessen, dass man es auf seinem eigenem Server laufen lassen kann und die gleichzeitigen Verbindungen nicht limitiert sind wie bei Firebase.


    Keine Ursache :),


    Naja das ist immer so eine Sache also eine optimale Lösung für alles gibt es meistens nicht, aber jedoch eine für sein spezifischen Anwendungsfall :P.


    Ich weiß nicht genau was du machen möchtest und für wie viele Benutzer deine App ausgelegt ist.
    Klar ist Firebase limitiert, jedoch wenn nicht mehr als 100 Benutzer hats geringe Datenmengen, dann wirst du trotz den Limitierungen damit glücklich. Also im kommerziellen Bereich würde ich ganz klar firebase nutzen einfach aus dem Grund, dass du das ganze Eco-System dahinter nutzen kannst und musst dich nicht um das Hosting kümmern. Das sind halt Vorteile, welche dir letztendlich Geld sparen.


    Ansonsten abgesehen von dem Aspekt würde ich auch zu CouchDB, MongoDB, RethinkDB tendieren, am besten schaust du dir mal die DBMS an und überlegst dir, welches davon am ehsten deinen Anforderungen nachkommt ;)

  • @IPrototypeI vielen Dank!
    Derzeit habe ich 2 für mich interessante DBMS gefunden. Einmal PostgreSQL und RethinkDB.
    Allerdings habe ich was das angeht noch 1-2 Fragen:
    Ist es möglich, dass man PostgreSQL auch offline Synchronisiert wie bspw. RethinkDB (so dass bspw. keine Internetverbindung bestehen muss um die Daten zu lesen).
    Und aufgrund dessen, dass RethinkDB auf dem Gerät eine JSON Datei erstellt mit den Daten, würde es mich interessieren wie sicher dies sind, hinsichtlich auf Zugriff von außen.


    Mit freundlichen Grüßen
    Pytroxis
    #Handy

  • @Pytroxis


    Also RethinkDB ist echt ziemlich geschickt, da man auch Änderungen an alle beteiligte streamen kann in echtzeit :) .
    Bei PostgresSQL ist das leider nicht möglich hierfür musst du offline die Daten in einer SQLite DB speichern auf dem gerät.


    Die Daten sind an sich nicht so sicher, jeder kann mit tools darauf zugreifen, wenn er der Besitzer davon ist. Wenn es sehr sensible Daten sind dann speicherst du diese in Android mit den KeyStorage Funktionen ,


    hier findest du nochmal eine Übersicht


    https://academy.realm.io/posts…d-meetup-2017-najafzadeh/

  • Hey,


    wie kann ich bei AHK einstellen, dass meine Befehle nicht in einem Dialog funktionieren?
    Habe es mit IsDialogOpen() probiert, klappt auch, aber wenn ich zb auf der Taste 1 etwas gebindet habe, kann ich Sie gar nicht mehr im Dialog werden.
    Zwar wird dann der Befehl nicht ausgeführt, aber ich kann die Taste auch nicht nutzen.


    Kann man dagegen was tun? Wäre nice wenn es etwas allgemeines oben im Script definiert gäbe, und nicht für jeden Befehl :thumbup:

    Mit freundlichen Grüßen,


    Keslo

  • Am einfachsten die Direktive #If WinActive("GTA:SA:MP") && !isInChat() && !isDialogOpen() über deinen ersten Hotkey setzen. Dran denken, dass das für alle folgenden Hotkeys und Hotstrings gilt, also dein Script entsprechend strukturieren.

  • Hey,


    wie kann ich bei AHK den Cursor im Chat positionieren?
    Zum Beispiel:


    /kick [Id] [Grund]
    Der Cursor sollte an die Stelle springen, wo ich die ID eingeben muss.


    Benutzt wird die API von Ashkan


    Danke im Voraus

    Mit freundlichen Grüßen,


    Keslo

  • Brauchst dafür keine API, einfach {Right [Anzahl der Zeichen]} z.B. {Right 5} oder wenn der Cursor ganz nach rechts soll: {End} müsste klappen. Mit Send bzw. SendInput natürlich dazu

    Okey, und wie mache ich es, dass er dann die PlayerID, die der Spieler eingibt, ausliest?


    Habe es aktuell so, der Cursor ist aber dennoch am Ende...
    Mache irgendwas falsch :D

    Numpad1::
    Suspend Permit
    PlayerID := PlayerInput("/kick Test{Right 6}")
    SendChat("/kick " PlayerID " Test ")
    return

    Mit freundlichen Grüßen,


    Keslo

  • Achso naja dann eben nach links, wenn du zurück willst Aber wozu einlesen, kannst du ja dann einfach mit Enter absenden?

    Egal was ich probiere, selbst mit SendInput will es einfach nicht funktionieren...
    Hättest du evtl ein funktionellen Code für für mich?:D

    Mit freundlichen Grüßen,


    Keslo

  • SeAchso naja dann eben nach links, wenn du zurück willst Aber wozu einlesen, kannst du ja dann einfach mit Enter absenden?

    Egal was ich probiere, selbst mit SendInput will es einfach nicht funktionieren...Hättest du evtl ein funktionellen Code für für mich?

    SendInput t/kick Test{Right 5}

  • Hm, scheint immer noch nicht zu funktionieren :/
    @Madd92 @Renz


    Mein Code:

    NumPad1::
    Suspend Permit
    SendInput t/kick Test{Right 7}
    Input, ID, V I M, {Enter}
    if ID is not number
    {
    Sleep, 200
    AddChatMessage("{2090B3}Bitte gebe eine gültige ID ein.")
    return
    }else{
    SendChat("/kick " ID " Test")
    }
    return

    Mit freundlichen Grüßen,


    Keslo

  • Hm, scheint immer noch nicht zu funktionieren :/
    @Madd92 @Renz


    Mein Code:
    NumPad1::Suspend PermitSendInput t/kick Test{Right 7}Input, ID, V I M, {Enter}if ID is not number{Sleep, 200AddChatMessage("{2090B3}Bitte gebe eine gültige ID ein.")return}else{SendChat("/kick " ID " Test")}return

    Left nicht Right :thumbup::thumbup::thumbup:

  • Left nicht Right

    :whistling::whistling: Jetzt funktionierts! :D



    Aber warum die ID noch einlesen? Du bist doch schon im Chat und musst doch nur Enter drücken, wenn die ID eingegeben wurde

    Ja du hast Recht, war ein Logikfehler von mir. Habe dies entfernt und jetzt klappt alles wunderbar, vielen Dank euch beiden! :saint:

    Mit freundlichen Grüßen,


    Keslo

  • Hey, ich bräuchte mal ein wenig Hilfe.
    In meiner Datenbank werden IP-Adressen als Integer abgespeichert, und diese möchte ich in Java mathematisch in ein String umwandeln.
    Mein Code sieht momentan wie folgt aus:


    Java
    String ipString = null;
    for (byte i = 0; i < 4; i++) {
        byte shift = (byte)(i * 8);
        int mask = (0xFF << shift);
        ipString = ((ipLong & mask) >> shift) + (ipString == null ? "" : "." + ipString);
    }

    Bei positiven Integern funktioniert das gut. Wenn ich jedoch eine IP wie bspw. "192.168.0.1" abspeichere, ist der Integer negativ (-1062731775) und ich bekomme "-64.168.0.1" als String zurück.
    Ich habe gerade echt kein Plan, wie ich das beheben. Hat da jemand eine Idee?