Cache Delay reduzieren

Click the button

Wenn du nun die Konsolenlogs öffnest, dann kannst du sehen, dass die Funktion oben absichtlich verlangsamt wurde. Wenn Funktionen nämlich so konfiguriert sind, dass sie Daten in einem Loop holen müssen, dann kommt es immer wieder mal vor, dass Daten im Cache überschrieben werden, verloren gehen oder nicht geupdated werden. Dies nennt man dann einen Cache Delay, da dies nämlich meist nur vorübergehend ist. Es werden also Daten in den RAM geschrieben, die bereits viel früher zum Zugreifen bestimmt wären, es kann also sein, dass folgende Prozesse nicht auf die Daten zugreifen können.

 

<script>

/* <![CDATA[ */

function start() {

            var a = document.createElement("a");

            a.setAttribute("href", "#");

            a.onclick = secondFunction;

            a.appendChild(document.createTextNode("Click to see internet speed"));

            document.body.appendChild(a);

            var imageAddr = "https://image.jimcdn.com/app/cms/image/transf/dimension=2140x10000:format=jpg/path/s24c40c77d8518e4b/image/ia32c18730e2cef7e/version/1531150028/image.jpg";

            var downloadSize = 4;

            function ShowProgressMessage(msg) {

                if (console) {

                    if (typeof msg == "string") {

                        console.log(msg);

                    } else {

                        for (var i = 0; i < msg.length; i++) {

                            console.log(msg[i]);

                        }

                    }

                }

                var oProgress = document.getElementById("progress");

                if (oProgress) {

                    var actualHTML = (typeof msg == "string") ? msg : msg.join("<br />");

                    oProgress.innerHTML = actualHTML;

                }

            }

            function InitiateSpeedDetection() {

                ShowProgressMessage("Click the button to get started..");

                window.setTimeout(MeasureConnectionSpeed, 1);

            };

            if (window.addEventListener) {

                window.addEventListener('load', InitiateSpeedDetection, false);

            } else if (window.attachEvent) {

                window.attachEvent('onload', InitiateSpeedDetection);

            }

            function MeasureConnectionSpeed() {

                console.log("Start measuring");

                ShowProgressMessage("Measure");

                var startTime, endTime;

                var download = new Image();

                download.onload = function () {

                    endTime = (new Date()).getTime();

                    showResults();

                }

                download.onerror = function (err, msg) {

                    ShowProgressMessage("Invalid image, or error downloading");

                    console.log("Error");

                }

                startTime = (new Date()).getTime();

                var cacheBuster = "?nnn=" + startTime;

                download.src = imageAddr + cacheBuster;

 

                function showResults() {

                    var duration = (endTime - startTime) / 1000;

                    var bitsLoaded = downloadSize * 8;

                    var speedBps = (bitsLoaded / duration).toFixed(2);

                    var speedKbps = (speedBps / 1024).toFixed(2);

                    var speedMbps = (speedKbps / 1023).toFixed(2);

                    ShowProgressMessage([

                        "Your connection speed is: " + speedMbps + " Mbps"

                        

                   

                    Math.floor(Date.now() / 1000)

 

                     

                   

                    ]);

                }

            }

        }

        function secondFunction() {

 

        }

    

        start();

/*]]>*/

    

</script>

<p id="progress">

    Click the button

</p>

 

Zuerst weist der Angreifer einen Speicherblock zu, der aus 257 Blöcken Speicher besteht (256 * 4096). Jeder Block in diesem Speicherblock wird zu diesem Zeitpunkt nicht zwischengespeichert, da auf sie zu keinem Zeitpunkt zugegriffen wurde.

Als nächstes wird ein Teil von Code entsprechend der nächsten ausgeführt. Dies wird der "Datensende" genannt

 

Wie bereits beschrieben kommt es häufig vor, dass dann die Spannung des RAM-BNlocks dann abnimmt.

2.0 Design

 

2.1: Augmented Reality

 

Um die App so effizient wie möglich zu machen, habe ich mich dazu entschieden, eine sehr simple Grafik (einen Sombrero) zu nehmen.

 

Der Vorteil von diesem Sombrero ist, dass er eine einigermassen flache Oberfläche besitzt. Kurz gesagt: Ich musste nur den äusseren Rand und den Schnurrbart, weiter vorne, als den Zylinder positionieren. Den Sombrero habe ich dann ganz einfach auf einen durchsichtigen Quader gelegt, welchen ich auch als sogenannten Physics-Body benutzt habe.

 

Physics-Body: Der Physics-Body symbolisiert den Bereich im Spiel, der bei einem Kontakt, mit den Cola-Dosen, ein Signal gibt, dass er getroffen wurde.

 

2.1.1: Geld in der Welt:

 

Die Dollar-Zeichen sind eigentlich nur Buchstaben, die ich in 3D dargestellt habe und die man anklicken kann.

 

 

 

 

2.2:  Gerichtsrun

 

Die Welt besteht aus 2 „Fahrbahnen“. Der Spieler muss jeweils die Fahrbahn wechseln, um den Hämmern auszuweichen.

 

 

2.3: Fake-News

 

Oben befindet sich ein Textfeld, welches die Schlagzeile anzeigt. Unten befindet sich ein roter und ein grüner Knopf, der rote muss gedrückt werden, wenn die Schlagzeile Fake ist und der grüne, wenn sie korrekt ist.

 

2.4: Mathe-Test

 

Oben befindet sich ein Textfeld mit der Frage und unten ein Text-Input Feld, sowie ein Knopf, um die Antwort „abzusenden“

 

 

3.0: Programmierung:

 

Die ganze App ist mit dem Programm Xcode und der Programmiersprache Swift programmiert.

 

3.1: Programmierung der AR Funktion 

 

 

 

 

 

 

 

 

 

 

Um die Nutzer zu schützen, hat Apple dafür gesorgt, dass eine App nur dann Zugriff auf die Kamera bekommen kann, wenn der Nutzer dem bereits zuvor zugestimmt hat. Da meine App die Kamera braucht, war dies der erste Schritt, den ich gemacht habe. Wenn der Nutzer der Nutzung zustimmt, dann wird ein Zertifikat hinzugefügt, welches einmalig ist.

 

 

Damit die Mexikaner nicht ständig verrutschen musste ich einen sogenannten Anker (SCNAnchor) setzen, welcher gleichzeitig der Mittelpunkt, von der gesamten Welt darstellt.  Die ARKit Szene ist in einem Koordinatenraster aufgebaut, welches man auch in der Mathematik benutzen kann, der einzige Unterschied ist, dass es noch eine dritte Variable, nämlich die Tiefe (also x,y und z, nicht nur x/z) gibt. Normalerweise ist das Handy des Spielers, der Mittelpunkt, doch dies ist absolut gar nicht praktisch, denn dan würde sich die ganze Welt ständig bewegen und die Positionen müssten ständig neuberechnet werden, weshalb ich mich entschieden habe, den Anker als Mittelpunkt zu wählen.

 

Die Mexikaner sind wie oben bereits gesagt eigentlich nur Quader, über die das Bild gelegt wird, damit der Erstellungsprozess aber besser verstanden werden kann, möchte ich kurz den dazu gehörigen Teil aus dem Code erklären:

 

//Grundgerüst wird erstellt let enemybox = SCNBox(width: 0.2, height: 0.4, length: 0.8, chamferRadius: 0)

          var imageMaterial = SCNMaterial()

            var image = UIImage(named: „image.png")

 Var imagerestetution = UINt(293)

            imageMaterial.diffuse.contents = image

        //Legt mehrere Ebenen des Bildes übereinander so, dass die Figuren von der Seite besser aussehen.    enemybox.materials = [imageMaterial, imageMaterial, imageMaterial, imageMaterial, imageMaterial, imageMaterial]

            

            

            

            let enemynode = SCNNode(geometry: enemybox)

            enemynode.geometry?.materials = [imageMaterial, imageMaterial, imageMaterial, imageMaterial, imageMaterial, imageMaterial]

            

          //Generiert eine zufällige Position  let xPos = randomPosition(lowerBound: -1.5, upperBound: 1.5)

            let yPos = randomPosition(lowerBound: -1.5, upperBound: 1.5)

            

            enemynode.position = SCNVector3(xPos, yPos, -1)

            enemynode.name = „enemynode1"

 

 

//Diese Funktion die ich erstellt habe, gibt eine zufällige Zahl aus. func randomPosition (lowerBound lower:Float, upperBound upper:Float) -> Float {

        return Float(arc4random()) / Float(UInt32.max) * (lower -

(Netz zur Erstellung des Obeflächenrasters)

 

Der Spieler wird gebeten, sein Handy auf eine dunkle Oberfläche zu halten und dann auf sein Handy zu drücken. Dabei kommt die sogenannte plane-detection (Oberflächenerkennung ins Spiel). Ich habe mich entschieden, wie folgt fortzugehen:

 

 

 

 

 

 

  • Der Spieler klickt auf den Bildschirm und ich lasse das Handy, die Punkte markieren.
  • Der Spieler bewegt sein Handy nach vorne und nach hinten, was es ermöglicht, die Distanz abzuschätzen (die Strecke zwischen den beiden Punkten).
  • Das iPhone wählt sich einige markante Pixel aus, welche dann als Mittelpunkt genutzt werden.

 

(Im Bild oben, kann man ein solches Netz sehen. Allerdings ist die Oberfläche in diesem Fall nicht gerade, sondern abgerundet.)

 

 

 

Da eine Einheit im Koordinatensystem von Apple, einem Meter entspricht, nutze ich einfach eine Funktion, welche Zahlen generiert. Die kleinstmögliche Zahl, die ich gewählt habe, ist -1 und die grösste 1. Danach startet einfach ein Timer und der Nutzer kann damit beginnen, die Mexikaner anzutippen. 

 

3.1.1: Performance in ARKIT

 

 

Als ich die App zum ersten mal ausgeführt habe, ist mir aufgefallen, dass die App gerade dann wenn der Nutzer etwas zitterte, stark laggte (kommt vom Wort laggen, bedeutet einfach gesagt, dass eine Grafik stockt und nicht flüssig läuft). Also musste ich mir überlegen, was ich machen könnte, um das Problem zu beheben. Es ist zwar so, dass ich die Mexikaner bereits beim initieren (dem ersten Starten der Kamera) hinzufüge, aber die Grafikkarte berechnet trotzdem jedesmal, wie die Mexikaner aussehen würden, auch dann, wenn der Nutzer in eine andere Richtung schaut. Grafiken und Animationen werden aus einzelnen Bildern hergestellt, je mehr dieser Bilder pro Sekunde verarbeitet werden können, desto klarer sehen die Animationen aus. (Die Anzahl der Bilder pro Sekunde, kann bei dem Wort FPS und Animations gesehen werden).  

Diese einzelnen Bilder werden jedesmal gesamt (also als 360° Bild) gerendert, was mich auf die Idee gebracht hat, Inhalte aus nicht angezeigten Chunks (Teile des Bildes) einfach zu entfernen. Da die Bilder so häufig neugerendert werden und gleichzeitig eine Plane Detection lief und Fake-News EasterEggs (kleine Features, die Entwickler programmieren, aber normalerweise versteckt sind) geladen wurden, war der Cache, der GPU (Grafikkarte)) völlig „vollgestopft“. 

 

 

Cache: Ein Smartphone verfügt über einen sogenannten Arbeitsspeicher, der die Daten, die benötigt werden, enthält. Wenn nun eine Grafik ausgeführt werden soll, dann lädt die Grafikkarte die benötigten Daten in den eigenen kleinen Arbeitsspeicher, damit sie schneller auf die Daten zugreifen kann.

 

Der Cache ist flüchtig, was bedeutet, dass der Cache automatisch gelöscht wird, wenn ein Prozess beendet ist. Man könnte die Situation des Caches in diesem Moment also mit einem Bus vergleichen: Wenn man 100 Leute von A nach B bringen will, der Bus aber nur Platz für 20 hat, dann gehen die Leute halt nacheinander und man presst nicht 100 Leute hinein, da die sonst ersticken oder der Bus platzen könnte :)

Um eben die Situation (welche ich mit dem Bus verglichen habe) zu verhindern, prüfe ich beim Laden von jedem Einzelbild in welche Richtung der Nutzer schaut und verarbeite nur die Mexikaner, die der Nutzer auch wirklich sehen kann, denn ansonsten würden alle Mexikaner (auch die, die man nicht sieht) ihre Animationen durchlaufen, was wertvolle Ressourcen verschwenden würde.

 

 

Das Hauptproblem war aber, dass normale Apps keinen Zugriff auf die Speicherverwaltung hat, weshalb ich die 3D Modelle einfach nacheinander geladen habe und bevor ein neues kam, habe ich einfach den Arbeitsspeicher gelöscht (dies kann man auf Unix Geräten mit dem Befehl: sudo purge, tun (Unix ist die Urversion von Linux auf der auch macOS und iOS basieren).

 

 

Bei meiner App konnte ich beobachten, dass  es sogar effizienter war, Variabeln (Daten) auf der Festplatte zu speichern, obwohl diese langsamer ist, denn dies hatte den Vorteil, dass der Arbeitsspeicher geschont wurde.

 

21th Century The Game ist keine sehr komplizierte AR App, aber trotzdem belegte meine App c.a 80 % des Arbeitsspeichers bzw. Des GPU Caches und dazu kommen dann noch andere Funktionen des Handys, so laufen ständig Prozesse, die auf den Push-Messaging Servern von anderen Apps nach neuen Nachrichten suchen und weitere Prozesse. 

 

Wenn man im Augmented-Reality Screen auf das Plus drückt, dann kann man die Verbrauchsstatistiken sehen, so fällt zum Beispiel auf, dass beim ersten Laden (dort habe ich noch nicht mit der Sparmethode gearbeitet), der Cache sehr voll ist und dann nach ca. 1 Sekunde fast leer ist.

 

Um einen Absturz zu verhindern, greift die App ständig auf die Statistiken zu, werden zum Beispiel weniger als 30 Bilder pro Sekunde angezeigt, so ist die Wahrscheinlichkeit gross, dass die App abstürzen wird bzw. dass das Nutzer-Erlebnis schlecht ist, weshalb die App in diesem Fall, den Prozess selbst beendet und den Nutzer zum nächsten Gamemode sendet.

 

 

 

 

Abschliessend kann ich jedem App Entwickler, die folgenden Tipps geben:

 

 

  • Verwenden Sie die NSURLSession-Hintergrundsitzung
  • Minimieren Sie die Verwendung des kontinuierlichen Standortes und wählen Sie die Genauigkeit effizient aus
  • Vermeiden Sie Timer

 

3.2: Gerichtsrun 

 

 

Den Gerichtsrun habe ich mit SpriteKit, einer einfachen GameEngine (vereinfacht routinemässige Prozesse) erstellt. Als Kontrast zum ARKit Gamemode habe ich bei diesem Gamemode eine sehr ressourcenintensive Tracking Methode genutzt. 

 

Steuerung des Spielers: Das Trumpsymbol habe ich auf eine sogenannte SKNode gesetzt, der Spieler lässt sich durch wischen entweder nach Links oder Rechts verschieben.

 

Die Spielwelt: Die Welt ist in 2 Spiellinien eingeteilt. Es kommen immer abwechselnd auf einer Seite ein Gegner herunter so, dass zwischen den Gerichtshämmern nicht mehr viel Platz übrig ist. Die Aufgabe des Spielers ist es nun, nicht mit einem Hammer zusammenzuprallen, weshalb er immer die Seiten wechseln muss. 

 

Die Gegner: Kommen in sehr kurzen Abständen. Es gibt immer 2 Blocks Abstand, zwischen 2 Gegnern.

 

Tracking: Mit dem Tracken überprüft die App ob 2 Objekte (Nodes) zusammengeprallt sind. Beim Tracking kommt der horizontale rote Strich auf dem Bild (sieht man in der eigentlichen App nicht) ins Spiel. Denn immer wenn ein Frage geladen wird, dann wird in der sogenannten frame update Funktion (diese Funktion wird vor jedem Rendern, also Berechnen der Grafik, aufgerufen) geprüft, ob gerade ein Gegner auf der roten Linie ist und falls ja, ob sich gleichzeitig auch der Spieler dort befindet. Kurz gesagt:  Die App prüft etwa 60 mal pro Sekunde, ob gerade ein Gegner auf dem Strich ist und falls ja, ob die x Koordinate von dem Gegner, mit der x Koordinate von dem Spieler übereinstimmt. Wenn die beiden Koordinaten übereinstimmen, dann hat der Spieler verloren.

 

Doch warum ist diese Kontrollweise denn aufwändiger?

 

Bei der ARKit Scene, konnte ich eine Methode nutzen, bei der auch nur dann geprüft wird, ob etwas getan wurde, wenn eine Veränderung passiert ist, bei der Methode hier, wird in der Sekunde 60 mal geprüft, ob der oben beschrieben Fall eingetreten ist, egal ob es zu einer Berührung kam bzw. ob es eine Veränderung gab.

 

3.3: Fake-News erkennen

 

Dieser Gamemode war einerseits der einfachste zum Programmieren und auch der Gamemode, der am wenigsten Ressourcen benötigt.

 

Es wird einfach nach dem Zufallsprinzip eine Schlagzeile geladen und die dazugehörige Bool Variabel (eine Bool Variabel, ist eine Binärzahl, bzw. Datensatz, der nur 0, 1 bzw. true oder false, enthalten kann). Mit einem Label (einem Textfeld) wird die Schlagzeile angezeigt und der Nutzer muss nun den richtig oder den Fake-News Button auswählen. Danach wird geprüft, ob die Antwort richtig war.

 

 

 

3.4: Mathetests

 

Einfach gesagt besteht dieser Gamemode nur aus Algorithmen, welche ich mit Zufallszahlen „füttere“.

 

Beispiel:

 

 let am19 = arc4random_uniform(20)

            let al8 = arc4random_uniform(20)

            let al9 = arc4random_uniform(20)

            let calc = am19 * al8 + al9

            let amélieg = String(am19)

 

            let resultstring = String(calc)

            let printout = amélieg + middle + x + förster + selinak + end + resultstring

            question.text = printout

                algebrastate = false

            let truean = Int (ambra)

            saverightanswer(maya: truean)

    

Dieser Gamemode erstellt beim „Betreten“ des Gamemodes einige Aufgabentypen, welche dann im Arbeitsspeicher gespeichert werden. Der Nutzer antwortet über das Textfeld und dann werden die beiden Daten verglichen.

 

Das einzig Spezielle an diesem Gamemode ist, dass ich einen Weg finden musste, dass die Divisionen nicht zu schwierig sind und dass die erste Zahl nicht Null ist.

 

Als Lösung für zu schwierige Aufgaben habe ich mich entschieden, dass die Zahlen, auf ganze Zahlen gerundet werden und dass die Berechnung von einer Aufgabe in einem Tick (ca. 0.00000001 ms) erledigt werden muss. Denn ein Computer braucht genau gleich wie der Mensch, auch länger, um eine schwierige Aufgabe auszurechnen.

 

standard 09:02:50.518213 +0200 cloudd [Operation 0x7f8bae5c5090] Operation transitioning from state 1 (cancelled=0, stop=0, error=0)

standard 09:02:50.518477 +0200 cloudd [Operation 0x7f8bae5c5090] Operation is now in state 2

standard 09:02:50.518878 +0200 cloudd [Operation 0x7f8bae5c5090] Operation transitioning from state 2 (cancelled=0, stop=0, error=0)

standard 09:02:50.518980 +0200 cloudd [Operation 0x7f8bae5c5090] Operation is now in state 4

standard 09:02:50.519048 +0200 cloudd [Operation 0x7f8bae5c5090] Operation transitioning from state 4 (cancelled=0, stop=0, error=0)

standard 09:02:50.519163 +0200 cloudd [Operation 0x7f8bae5c5090] Operation is now in state 5

standard 09:02:50.519230 +0200 cloudd [Operation 0x7f8bae5c5090] Operation transitioning from state 5 (cancelled=0, stop=0, error=0)

standard 09:02:50.519516 +0200 cloudd [Operation 0x7f8bae5c5090] Operation is now in state 6

standard 09:02:50.520489 +0200 kernel _sendCommandGated (ep: 3): Sending USB buffer size: 17408 command: <private> [Repeated 5 times]

fehler 09:02:50.539174 +0200 kernel Sandbox: fseventsd(54) System Policy: deny(1) file-read-metadata /private/var/folders/7m/cb8shz9x711814f445p2ynx40000gn/0/com.apple.nsurlsessiond/E8C9768780A371F36651AB699D884E881706B377/07BD86BEA491B168FB2AB19EB1F1280DA983C468

standard 09:02:50.543006 +0200 cloudd [Operation 0x7f8bae5c5090] Operation transitioning from state 6 (cancelled=0, stop=0, error=0)

standard 09:02:50.543227 +0200 cloudd [Operation 0x7f8bae5c5090] Operation is now in state 4294967295

standard 09:02:50.546750 +0200 cloudd [Operation 0x7f8bae7cdd10] Operation transitioning from state 2 (cancelled=0, stop=0, error=0)

standard 09:02:50.546946 +0200 cloudd [Operation 0x7f8bae7cdd10] Operation is now in state 4

standard 09:02:50.547080 +0200 cloudd [Operation 0x7f8bae7cdd10] Operation transitioning from state 4 (cancelled=0, stop=0, error=0)

standard 09:02:50.547446 +0200 cloudd [Operation 0x7f8bae7cdd10] Operation is now in state 4294967295

standard 09:02:50.548424 +0200 cloudd [Operation 0x7f8bb0810220] Initialized with context 0x7f8bb305fc10. Background: 1, cellular: 1, QOS: 0x11

standard 09:02:50.548649 +0200 cloudd [Operation 0x7f8bb0810220] Starting operation

standard 09:02:50.549408 +0200 cloudd [Operation 0x7f8bb0810220] Operation transitioning from state 1 (cancelled=0, stop=0, error=0)

standard 09:02:50.549643 +0200 cloudd [Operation 0x7f8bb0aa70d0] Initialized with context 0x7f8bb305fc10. Background: 1, cellular: 1, QOS: 0x11

standard 09:02:50.549816 +0200 cloudd [Operation 0x7f8bb0aa70d0] Starting operation

standard 09:02:50.550262 +0200 cloudd [Operation 0x7f8bb0810220] Operation is now in state 2

standard 09:02:50.551367 +0200 cloudd [Operation 0x7f8bae680800] Initialized with context 0x7f8bb305fc10. Background: 1, cellular: 1, QOS: 0x11

standard 09:02:50.551555 +0200 cloudd [Operation 0x7f8bae680800] Starting operation

standard 09:02:50.552292 +0200 cloudd [Operation 0x7f8bae680800] Operation transitioning from state 1 (cancelled=0, stop=0, error=0)

standard 09:02:50.552457 +0200 cloudd [Operation 0x7f8bae680800] Operation is now in state 2

standard 09:02:50.552832 +0200 cloudd [Operation 0x7f8bae680800] Operation transitioning from state 2 (cancelled=0, stop=0, error=0)

standard 09:02:50.552933 +0200 cloudd [Operation 0x7f8bae680800] Operation is now in state 4

standard 09:02:50.552999 +0200 cloudd [Operation 0x7f8bae680800] Operation transitioning from state 4 (cancelled=0, stop=0, error=0)

standard 09:02:50.553121 +0200 cloudd [Operation 0x7f8bae680800] Operation is now in state 5

standard 09:02:50.553184 +0200 cloudd [Operation 0x7f8bae680800] Operation transitioning from state 5 (cancelled=0, stop=0, error=0)

standard 09:02:50.553327 +0200 cloudd [Operation 0x7f8bae680800] Operation is now in state 6

standard 09:02:50.574442 +0200 cloudd [Operation 0x7f8bae680800] Operation transitioning from state 6 (cancelled=0, stop=0, error=0)

standard 09:02:50.574684 +0200 cloudd [Operation 0x7f8bae680800] Operation is now in state 4294967295

standard 09:02:50.582766 +0200 cloudd [Operation 0x7f8bb0810220] Operation transitioning from state 2 (cancelled=0, stop=0, error=0)

standard 09:02:50.582982 +0200 cloudd [Operation 0x7f8bb0810220] Operation is now in state 4

standard 09:02:50.583082 +0200 cloudd [Operation 0x7f8bb0810220] Operation transitioning from state 4 (cancelled=0, stop=0, error=0)

standard 09:02:50.583242 +0200 cloudd [Operation 0x7f8bb0810220] Operation is now in state 4294967295

standard 09:02:51.043402 +0200 com.apple.WebKit.Networking Task <8FEDF3DC-007E-4401-9F07-7953BFDF96A1>.<606> received response, status 200 content C

standard 09:02:51.043873 +0200 com.apple.WebKit.Networking Task <8FEDF3DC-007E-4401-9F07-7953BFDF96A1>.<606> response ended

standard 09:02:51.044394 +0200 com.apple.WebKit.Networking 0x1084f4600 - NetworkResourceLoader::didReceiveResponse: (pageID = 92, frameID = 4, resourceID = 108, httpStatusCode = 200, length = -1)

standard 09:02:51.044538 +0200 com.apple.WebKit.Networking 0x1084f4600 - NetworkResourceLoader::didReceiveResponse: Should not wait for message from WebContent process before continuing resource load (pageID = 92, frameID = 4, resourceID = 108)

standard 09:02:51.044854 +0200 com.apple.WebKit.WebContent 0x45bb236c8 - WebResourceLoader::didReceiveResponse: (pageID = 92, frameID = 4, resourceID = 108, status = 200)

standard 09:02:51.045250 +0200 com.apple.WebKit.Networking 0x1084f4600 - NetworkResourceLoader::didFinishLoading: (pageID = 92, frameID = 4, resourceID = 108, length = 0)

standard 09:02:51.045608 +0200 com.apple.WebKit.WebContent 0x45bb236c8 - WebResourceLoader::didFinishResourceLoad: (pageID = 92, frameID = 4, resourceID = 108, length = 0)

standard 09:02:51.045899 +0200 com.apple.WebKit.WebContent 0x459cf7000 - WebLoaderStrategy::scheduleLoad: Resource is being scheduled with the NetworkProcess (frame = 0x45d1b2780, priority = 2, pageID = 92, frameID = 4, resourceID = 114)

standard 09:02:51.047155 +0200 com.apple.WebKit.Networking 0x1084f3580 - NetworkResourceLoader::start: Checking cache for resource (pageID = 92, frameID = 4, resourceID = 114, isMainResource = 0, isSynchronous = 0)

standard 09:02:51.047264 +0200 com.apple.WebKit.Networking 0x1084f3580 - NetworkResourceLoader::retrieveCacheEntry: Resource not in cache (pageID = 92, frameID = 4, resourceID = 114, isMainResource = 0, isSynchronous = 0)

standard 09:02:51.047323 +0200 com.apple.WebKit.Networking 0x1084f3580 - NetworkResourceLoader::startNetworkLoad: (pageID = 92, frameID = 4, resourceID = 114, isMainResource = 0, isSynchronous = 0)

standard 09:02:51.048490 +0200 com.apple.WebKit.Networking Task <6DD59EBF-329D-435E-9AF7-C816A6C15BB4>.<607> now using Connection 2032

standard 09:02:51.049171 +0200 com.apple.WebKit.Networking Task <6DD59EBF-329D-435E-9AF7-C816A6C15BB4>.<607> sent request, body S

standard 09:02:51.406506 +0200 kernel Sandbox: 3 duplicate reports for fseventsd deny(1) file-read-metadata /private/var/folders/7m/cb8shz9x711814f445p2ynx40000gn/0/com.apple.nsurlsessiond/E8C9768780A371F36651AB699D884E881706B377/07BD86BEA491B168FB2AB19EB1F1280DA983C468

standard 09:02:51.911789 +0200 com.apple.WebKit.Networking Task <6DD59EBF-329D-435E-9AF7-C816A6C15BB4>.<607> received response, status 200 content C

standard 09:02:51.911981 +0200 com.apple.WebKit.Networking Task <6DD59EBF-329D-435E-9AF7-C816A6C15BB4>.<607> response ended

standard 09:02:51.912261 +0200 com.apple.WebKit.Networking 0x1084f3580 - NetworkResourceLoader::didReceiveResponse: (pageID = 92, frameID = 4, resourceID = 114, httpStatusCode = 200, length = -1)

standard 09:02:51.912342 +0200 com.apple.WebKit.Networking 0x1084f3580 - NetworkResourceLoader::didReceiveResponse: Should not wait for message from WebContent process before continuing resource load (pageID = 92, frameID = 4, resourceID = 114)

standard 09:02:51.912580 +0200 com.apple.WebKit.WebContent 0x46dc21f50 - WebResourceLoader::didReceiveResponse: (pageID = 92, frameID = 4, resourceID = 114, status = 200)

standard 09:02:51.912653 +0200 com.apple.WebKit.Networking 0x1084f3580 - NetworkResourceLoader::didFinishLoading: (pageID = 92, frameID = 4, resourceID = 114, length = 0)

standard 09:02:51.912863 +0200 com.apple.WebKit.WebContent 0x46dc21f50 - WebResourceLoader::didFinishResourceLoad: (pageID = 92, frameID = 4, resourceID = 114, length = 0)

standard 09:02:52.299882 +0200 loginwindow lux 24.000000, ambient 0.442384, <private>

standard 09:02:52.299954 +0200 loginwindow setting canAdjust from 1 to 1

standard 09:02:52.300022 +0200 loginwindow brightness 0.44238 _ambientOffset = 0.00046 final (to be capped) = 0.44285

standard 09:02:52.300086 +0200 loginwindow Updated Brightness Curves: converted ALS value 24.000000 -> nits 13.280884 -> PWM percentage 0.442384 -> PWM with offset 0.442384

standard 09:02:52.300222 +0200 loginwindow Sending Keyboard PWM value 227

standard 09:02:52.302505 +0200 loginwindow changed brightness to 0.442384. <private>

standard 09:02:52.502250 +0200 nsurlsessiond TIC TCP Conn Cancel [127:0x7f7f51ec3d00]

standard 09:02:52.502422 +0200 nsurlsessiond TIC TCP [0x7f7f51ec3d00] completing activity 0x7f7f51ea6000

standard 09:02:52.503368 +0200 nsurlsessiond [132 <private> stream, bundle id: com.apple.SafariBookmarksSyncAgent, pid: 525, url: https://gateway.icloud.com:443/ckdatabase/api/client/record/save, tls, indefinite] cancelled

[132.1 07FF68E6-59E1-4C8A-86A5-1BAAAC3C523B <private>.52396<-><private>]

Connected Path: satisfied (Path is satisfied), interface: en0, ipv4, dns

Duration: 3.216s, DNS @0.001s took 0.039s, TCP @0.041s took 0.003s, TLS took 0.168s

bytes in/out: 13237/4380, packets in/out: 15/12, rtt: 0.005s, retransmitted packets: 0, out-of-order packets: 0

standard 09:02:52.503982 +0200 dasd COMPLETED com.apple.CFNetwork-cc-525-127-Task <18A25F90-0597-4E79-9611-E733E1428CAD>.<com.apple.cloudd>.<outOfProcess=T:allowExpensive=T:powerNap=F:app=com.apple.SafariBookmarksSyncAgent:disc=F:pool=com.apple.cloudkit.BackgroundConnectionPool:uuid:AF5D7EA6-6FAF-4B20-9062-C519DF8B9F66>.<14>:365AFF <private>!

standard 09:02:52.504111 +0200 dasd Stop network path monitoring for '<private>'

standard 09:02:52.504275 +0200 dasd NO LONGER RUNNING com.apple.CFNetwork-cc-525-127-Task <18A25F90-0597-4E79-9611-E733E1428CAD>.<com.apple.cloudd>.<outOfProcess=T:allowExpensive=T:powerNap=F:app=com.apple.SafariBookmarksSyncAgent:disc=F:pool=com.apple.cloudkit.BackgroundConnectionPool:uuid:AF5D7EA6-6FAF-4B20-9062-C519DF8B9F66>.<14>:365AFF ...Tasks running in group [<private>] are 0!

standard 09:02:52.506854 +0200 nsurlsessiond TIC TCP Conn Destroyed [127:0x7f7f51ec3d00]

fehler 09:02:52.507950 +0200 nsurlsessiond TIC Read Status [127:0x0]: 1:57

fehler 09:02:52.508031 +0200 nsurlsessiond TIC Read Status [127:0x0]: 1:57

standard 09:02:52.588815 +0200 com.apple.WebKit.Networking TIC TCP Conn Event [2022:0x7fe80bd09c50]: 2

standard 09:02:52.589055 +0200 com.apple.WebKit.Networking TIC TCP Conn Cancel [2022:0x7fe80bd09c50]

standard 09:02:52.589295 +0200 com.apple.WebKit.Networking [2042 <private> stream, pid: 673, url: https://ad.a-ads.com/321341?size=468x60, tls] cancelled

[2042.1 AFA13B90-FBF7-44A4-A3D5-AC154FE9C43B <private>.52384<-><private>]

Connected Path: satisfied (Path is satisfied), interface: en0, ipv4, dns

Duration: 10.293s, DNS @0.000s took 0.028s, TCP @0.031s took 0.002s, TLS took 0.184s

bytes in/out: 7186/881, packets in/out: 9/3, rtt: 0.007s, retransmitted packets: 0, out-of-order packets: 0

standard 09:02:52.833808 +0200 com.apple.WebKit.Networking TIC TCP Conn Event [2026:0x7fe8067e7550]: 2

standard 09:02:52.833908 +0200 com.apple.WebKit.Networking TIC TCP Conn Cancel [2026:0x7fe8067e7550]

standard 09:02:52.834425 +0200 com.apple.WebKit.Networking [2046 <private> stream, pid: 673, url: https://ad.a-ads.com/321341?size=468x60, tls] cancelled

[2046.1 E027A4EA-783F-4556-BD0A-004665E7C69C <private>.52388<-><private>]

Connected Path: satisfied (Path is satisfied), interface: en0, ipv4, dns

Duration: 10.319s, DNS @0.000s took 0.001s, TCP @0.002s took 0.001s, TLS took 0.161s

bytes in/out: 7173/1249, packets in/out: 9/4, rtt: 0.008s, retransmitted packets: 1, out-of-order packets: 0

standard 09:02:52.903344 +0200 com.apple.WebKit.WebContent 0x7f8b89e39010 - PerformanceMonitor::measurePostLoadMemoryUsage: Process was using 201228288 bytes of memory after the page load.

standard 09:02:53.447739 +0200 Core Sync TCP Conn 0x60000016d5c0 canceled

standard 09:02:53.448386 +0200 Core Sync [96 <private> stream, pid: 649] cancelled

[96.1 2D041174-0861-42CA-8630-A14BCFC05319 <private>.52363<-><private>]

Connected Path: satisfied (Path is satisfied), interface: en0, ipv4, dns

Duration: 40.541s, DNS @0.000s took 0.000s, TCP @0.001s took 0.002s

bytes in/out: 622/2020, packets in/out: 2/6, rtt: 0.001s, retransmitted packets: 0, out-of-order packets: 0

standard 09:02:53.449671 +0200 Core Sync TCP Conn [97:0x600000171b80] using empty proxy configuration

standard 09:02:53.449694 +0200 Core Sync Stream client bypassing proxies on TCP Conn [97:0x600000171b80]

standard 09:02:53.449714 +0200 Core Sync TCP Conn 0x600000171b80 started

standard 09:02:53.450943 +0200 Core Sync [97 <private> <private>] start

standard 09:02:53.485757 +0200 Core Sync TCP Conn 0x600000171b80 event 1. err: 0

standard 09:02:53.485851 +0200 Core Sync TCP Conn 0x600000171b80 complete. fd: 37, err: 0

standard 09:02:53.486066 +0200 Core Sync TCP Conn 0x600000171b80 starting SSL negotiation

standard 09:02:53.847456 +0200 Core Sync TCP Conn 0x600000171b80 SSL Handshake DONE

 

Click the button

Chance of Elysion | Buy my book now:

Chance of Elysion | There is only one step at a time, so Cooper manages to find some relief knowing that there is only one intruder.  Still, the unknown whereabouts of O`Brien keep him at the edge, making him lean some more out of his hideout towards the
Me with my book | Chance of Elysion | There is only one step at a time, so Cooper manages to find some relief knowing that there is only one intruder. Still, the unknown whereabouts of O`Brien keep him at the edge, making him lean some more out of his hi

TRAPPIST-1 E is a new chance for humanity and scientists finally found a way how to reach that place. In Elysion town they build the first human colony outside of earths star- system. But shortly before arriving on TRAPPIST-1 E, they meet an old friend: Greed and Hate. There is an explosion on the colony ship and on the planet the colony is repeatedly attacked for no reason by traitors, the separatists. When the Separatists send an encrypted signal to Earth, the mayor of Elysion Town, Cooper, begins the rescue of the colony from which they fled from Earth. Can humanity change or is this its nature? Cooper needs to rescue his daughter Sophie from the hands of the separatists and wants to keep her, as well as her little sister Shannon, from suddenly becoming a copy of the destroyed and exploited first earth.

Chance of Elysion | An event like this was supposed to happen. A revolution is always waiting to explode. | TRAPPIST-1 E is a new chance for humanity and scientists finally found a way how to reach that place. In Elysion town they build the first human co
Chance of Elysion by Severin Kämpfer


KONTAKT

Bitte den Code eingeben:

Hinweis: Bitte die mit * gekennzeichneten Felder ausfüllen.


ADCELL

Hey! Thats me!

Severin Kämpfer Bremgarten bei Bern

17 years old trekkie.

Persönliche Webseite:

https://www.severin-kaempfer.ch

Unterstütze KKTVCAM mit 1 CHF! Bezahle mit Bitcoin!



Made with ♥ in Bern (Switzerland)!

KKTVCAM ÜBERNIMMT KEINE HAFTUNG FÜR ALLE ANGABEN AUF DIESER SEITE.