Saturday 14 January 2017

Jpgraph Gleitender Durchschnitt

Wetter und Internet Erstellen von Wetter-Websites Plotten von Trends mit JPGraph aus MySQL-Daten Breitling. Eine der einfachsten Möglichkeiten, um einen Trend aus Daten-Serie ist ein gleitender Durchschnitt. Nur die letzten Quott-Werte summieren und dividieren durch quotquot. Ewan. Dank dafür. Ich fand einige Code für die Berechnung Plotten ein gleitender Durchschnitt und I039ve fügte dies zu meinem vorherigen Plot-Code, um sowohl die ursprünglichen Daten und den gleitenden Durchschnitt (vorwärts zu sehen, wird es eine Variable für den Monat, so dass ich wählen, welche Monat zu zeigen ): JPGraph Info umfassen (jpgraph jpgraph. php) Pfad zu JpGraph umfassen (jpgraph jpgraphline. php) Pfad zu JpGraph umfassen (jpgraph jpgraphdate. php) Pfad zu JpGraph mysqlconnect (Host, Benutzer, übergeben) oder sterben (Unable) mysqlselectdb verbinden (db) oder sterben (Unable Datenbank auszuwählen) Stellen Sie den Zähler für gleitender Durchschnitt (dh letzten 50 pc. Durchschnitt) Präzision 20 versammle die DATA Daten mysqlquery (SELECT Jahr, im Februar VON Etemp) YDATA row039February039 avedata row039February039 xdata row039Year039 RowCount Moving Averages BERECHNEN While (RowCount gt 0) Divider precision loopcount 1 WHILE (loopcount lt Genauigkeit) AverageCount AverageCount Divider Erstellen Sie die Grafik. Graph neue Graph (700.500, Auto, 30) Graph-gtSetScale (textlin) Graph-gtyaxis-gtscale-gtSetGrace (10) Graph-gtSetMarginColor (weiß) Erstellen Sie eine Linie Topf lplot neue LinePlot (YDATA) lplot-gtSetWeight (2) lplot - gtSetColor (0397070FE039) sp1 neue LinePlot (Durchschnitt) sp1-gtSetWeight (2) sp1-gtSetColor (rot) Titel graph-gttitle-gtSet (Temperatur) graph-gttitle-gtSetColor (schwarz) graph-gttitle-gtSetFont (FFARIAL, fsBold, 10 ) x-Achse graph-gtxaxis-gttitle-gtSetFont (FFARIAL, fsBold, 8) graph-gtxaxis-gtSetFont (FFARIAL, fsBold, 8) graph-gtxaxis-gtSetTitlemargin (25) graph-gtxaxis-gtSettitle (Jahr) graph-gtxaxis - gtSetLabelMargin (10) graph-gtxaxis-gtSetTickLabels (xdata) graph-gtxaxis-gtSetLabelAngle (45) graph-gtxaxis-gtSetTextLabelInterval (10) graph-gtxaxis-gtSetPos (min) graph-gtxaxis-gtHideTicks (true, true) graph-gtxaxis - gtSetColor (schwarz) graph-gtxgrid-gtShow (true) zeigen Sie den graph graph-gtStroke () gt It039s Aufrufen der gleichen Datenmenge, wie in meinem ursprünglichen Beitrag und das Diagramm zeigt dabei den gleitenden Durchschnitt über 20 Jahre berechnet. Auch das doesn039t zeigen als eine Trendlinie als I039d glatt wie, aber vielleicht sind meine Erwartungen zu hoch: wink: Was people039s Gedanken auf diesem Chart und seine Nützlichkeit I039ll halten untersuchen Möglichkeiten, um Trends zu berechnen, aber weiß jemand einen besseren Weg niko. Moving Durchschnitt ist mehr Glättung als Trending, es doesn039t wirklich geben Ihnen einen Hinweis darauf, was die Zukunft sein könnte. Kann man den Datensatz Ewan posten oder anhängen. Ich erkenne, dass, aber Sie können sehen (vielleicht nicht aus diesen Daten :)), ob there039s eine allgemeine nach unten Bewegung. There039s ein Link zu den Daten in der ersten Post und meine SQL-Tabelle ziemlich viel spiegelt die Text-Datei in den Link. Welche Methode würden Sie vorschlagen, niko. Hoppla, verpasst, dass Link. Haben Sie versucht, verschiedene Werte von n Wenn Sie es auf z. B. 10 Ich denke, der Trend würde ganz anders aussehen. Ich würde versuchen, die gerade Linie Regression zum Laufen zu bringen, und I039ll damit spielen, wenn ich time. Introduction To PHP 7 haben: What39s New Und What39s gegangenes Eines der spannendsten Ereignisse im Jahr 2015 in der PHP-Welt war die Veröffentlichung von PHP 7, 10 Jahre nach der Veröffentlichung der letzten großen Version, PHP 5. Mit einem großen Schritt vorwärts, stellt PHP 7 viele neue Features und Performance-Upgrades. Allerdings entfernt es auch alte, veraltete Funktionalität, die einige Kompatibilitätspausen eingeführt, so dass es schwieriger für ältere Anwendungen auf die neue Version zu migrieren. Diese Anleitung sollte als eine schnelle Tour auf, was zu erwarten, wenn Sie auf das Verschieben Ihrer bestehenden Anwendungen planen oder neue, über PHP 7 zu planen. Aber warten, wo PHP 6 Go Wenn Sie havent mit PHP gearbeitet haben in letzter Zeit, Sie Könnte fragen, was passiert mit PHP 6, warum die überspringen von PHP 5 zu PHP 7 Nun, lange Geschichte kurz, war PHP 6 ein Versager. Das Hauptmerkmal der Version 6 war native Unterstützung für Unicode-Zeichen, da PHP hauptsächlich in Web-Entwicklung verwendet wird und das Web braucht Unicode, so dass der Umzug zu Unicode zu PHP bringen sinnvoll. Die Idee war, komplette Unterstützung für Unicode zum Kern selbst zu bringen. Es hätte erweiterte Fähigkeiten zur Sprache gebracht haben, von der Fähigkeit, dumme emojis als Variable und Funktionsnamen zu verwenden, um leistungsstarke internationale Saite-Funktionalität. Zum Beispiel, wenn eine andere Sprache Groß - und Kleinbuchstaben anders als Englisch verwendet oder wenn ein Name in chinesischen Schriftzeichen auf Englisch umgewandelt werden muss. PHP 6 war ehrgeizig, aber Müll. Das ist, wie wir am Ende mit PHP 7, überspringen Version 6 in den Prozess. Leider war dieser ehrgeizige Plan ein größeres Problem als erwartete. Ein Großteil der Codebase musste portiert werden, um Unicode sowohl für Kern - als auch für wichtige Erweiterungen zu unterstützen, was sich als mühsam und schwierig herausstellte. Dies verlangsamt die Entwicklung von anderen Funktionen in der Sprache, frustrierend viele PHP-Entwickler in den Prozess. Zusätzliche Hürden zeigten sich, was zu weniger Interesse an der Entwicklung einer nativen Unicode-Unterstützung führte, was letztlich dazu führte, dass das Projekt aufgegeben wurde. Da Ressourcen wie Bücher und Artikel für PHP 6 und seine Unicode-Unterstützung geschrieben wurden, wird die neue Version in PHP 7 umbenannt, um Verwirrung zu vermeiden. Auf jeden Fall, genug Wohnraum in der traurigen Vergangenheit, können sehen, was PHP 7 bringt, um die Partei. Performance Battle, PHP 7 vs. PHP 5 Mit praktisch allen Updates sind geringfügige Performance-Upgrades zu erwarten. Doch dieses Mal PHP bringt eine signifikante Verbesserung gegenüber früheren Versionen macht schiere Performance einer der attraktivsten Funktionen von PHP 7. Dies ist Teil des PHPNG-Projekts, das sich mit den Interna der Zend Engine beschäftigt. Durch Refactoring interner Datenstrukturen und Hinzufügen eines Zwischenschrittes zur Codezusammenstellung in Form eines Abstract Syntax Tree (AST) ist das Ergebnis eine überlegene Performance und eine effizientere Speicherzuteilung. Die Zahlen selbst sehen sehr vielversprechende Benchmarks auf realen Anwendungen zeigen, dass PHP 7 ist doppelt so schnell wie PHP 5,6 im Durchschnitt und Ergebnisse in 50 Prozent weniger Speicherverbrauch während der Anfragen, so dass PHP 7 einen starken Rivalen für Facebooks HHVM JIT-Compiler. Werfen Sie einen Blick auf diese Infografik von Zend Darstellung Leistung für einige gemeinsame CMS und Frameworks. PHP 7 sieht und fühlt sich vertraut, aber seine Leistung abgestimmt. Die raffinierte Zend Engine und die daraus resultierenden Performancegewinne machen einen großen Unterschied. Der Rückgang des Speicherverbrauchs ermöglicht auch kleineren Maschinen, Anforderungen besser zu behandeln, zusammen mit der Möglichkeit für den Aufbau von Mikrodiensten rund um PHP. Die internen Veränderungen, insbesondere die AST-Implementierung, eröffnen auch Möglichkeiten für zukünftige Optimierungen, die die Leistung noch weiter erhöhen könnten. Für zukünftige Versionen wird eine neue, interne Implementierung eines JIT-Compilers in Betracht gezogen. PHP 7 Syntaktische Zucker PHP 7 kommt mit neuen Syntax-Funktionen. Während nicht die Fähigkeiten der Sprache selbst, sie bieten eine bessere, oder einfacher, die Art und Weise, um Ihren Code mehr Spaß zu schreiben und angenehm für das Auge. Gruppenimport-Deklarationen Nun können wir Import-Deklarationen für Klassen, die aus demselben Namensraum stammen, in eine einzige Verwendungszeile gruppieren. Dies sollte dazu beitragen, Deklarationen sinnvoll auszurichten oder einfach einige Bytes in Ihren Dateien zu speichern. Mit PHP 7 können wir verwenden: Oder, wenn Sie einen mehrzeiligen Stil bevorzugen: Null Coalescing Operator Dies löst ein gemeinsames Problem in der PHP-Programmierung, wo wir einen Wert zu einer Variablen aus einer anderen Variablen zuweisen wollen, wenn diese tatsächlich gesetzt ist , Oder auf andere Weise einen anderen Wert für sie. Seine häufig verwendet, wenn wir mit Benutzer-bereitgestellten Eingang arbeiten. Dies kann auch mit einer Anzahl von Variablen verkettet werden: Raumschiff-Operator Der Raumschiff-Operator ltgt ermöglicht einen Drei-Wege-Vergleich zwischen zwei Werten, nicht nur, ob sie gleich sind, sondern auch welche größer ist, auf die Ungleichheit durch Rückgabe von 1,0 oder -1. Hier können wir verschiedene Aktionen durchführen, je nachdem, wie sich die Werte unterscheiden: Die verglichenen Werte können Ganzzahlen, Schwimmer, Strings oder sogar Arrays sein. Überprüfen Sie die Dokumentation, um eine Vorstellung davon zu bekommen, wie unterschiedliche Werte miteinander verglichen werden. Wiki. php. net rfc kombiniert-Vergleichsoperator Neue Funktionen In PHP 7 Aber natürlich bringt auch PHP 7 neue und spannende Funktionalität mit sich. Scalar Parametertypen Amp Return Type Hints PHP 7 die bisherigen Typdeklarationen von Parametern in Methoden erweitert (Klassen, Interfaces und Arrays) durch die Addition der vier skalare Typen Ganze Zahlen (int), Schwimmer (float), booleans (Bool) und Streicher (string) Als mögliche Parametertypen. Ferner können wir optional festlegen, welche Methoden und Funktionen zurückgegeben werden. Unterstützte Typen sind bool. Int. Schwimmen. Zeichenfolge. Array. Aufrufbar. Name der Klasse oder Schnittstelle. Self und parent (für Klassenmethoden) Typdeklarationen ermöglichen den Aufbau von robusteren Anwendungen und vermeiden das Übergeben und Zurückgeben von falschen Werten aus Funktionen. Weitere Vorteile sind statische Code-Analysatoren und IDEs, die einen besseren Einblick in die Codebasis ermöglichen, wenn DocBlocks fehlen. Da PHP eine schwach typisierte Sprache ist, werden bestimmte Werte für Parameter und Rückgabetypen basierend auf dem Kontext gegossen. Wenn wir den Wert 3 in einer Funktion übergeben, die einen deklarierten Parameter vom Typ int hat. Wird der Interpreter es als Integer akzeptieren und keine Fehler auslösen. Wenn Sie dies nicht wollen, können Sie den strikten Modus aktivieren, indem Sie eine deklarierte Direktive hinzufügen. Dies wird in einer Datei pro Datei festgelegt, da eine globale Option Code-Repositories auf diejenigen, die mit globaler Strenge auf und diejenigen, die nicht gebaut werden, unterteilt, was zu einem unerwarteten Verhalten führt, wenn wir Code aus beiden kombinieren. Engine-Ausnahmen Mit der Hinzufügung von Engine-Ausnahmen können schwerwiegende Fehler, die zu einem Skriptabbruch geführt haben, leicht erkannt und bearbeitet werden. Fehler wie das Aufrufen einer nicht existierenden Methode beenden nicht das Skript, sondern sie werfen eine Ausnahme, die von einem try-catch-Block behandelt werden kann, wodurch die Fehlerbehandlung für Ihre Anwendungen verbessert wird. Dies ist für bestimmte Arten von Apps, Servern und Daemonen wichtig, da sonst schwerwiegende Fehler ansonsten erforderlich sind, um sie neu zu starten. Tests in PHPUnit sollten auch mehr nutzbar als tödliche Fehler fallen die gesamte Test-Suite. Ausnahmen und nicht Fehler werden pro Testfall behandelt. PHP 7 sieht und fühlt sich vertraut, aber seine Leistung abgestimmt. Die raffinierte Zend Engine und die daraus resultierenden Performancegewinne machen einen großen Unterschied. PHP 7 fügt eine Anzahl von neuen Ausnahmeklassen basierend auf dem Typ der Fehler hinzu, die möglicherweise aufgetreten sind. Um die Kompatibilität zwischen den Versionen beizubehalten, wurde eine neue Throwable-Schnittstelle hinzugefügt, die sowohl von Motorausnahmen als auch von Benutzerausnahmen implementiert werden kann. Dies war notwendig, um Motorausnahmen zu vermeiden, um die Basis-Ausnahmeklasse zu erweitern, was zu älteren Code-catching-Ausnahmen führte, die vorher nicht vorhanden waren. Vor PHP 7 hätte dies das Skript mit einem schwerwiegenden Fehler beendet: Anonyme Klassen Anonyme Klassen sind Cousinen anonymer Funktionen, die Sie in einer einfachen kurzfristigen Instanz verwenden könnten. Anonyme Klassen werden einfach wie ein normales Objekt erstellt und verwendet. Hier ein Beispiel aus den Dokumenten. Mit anonymer Klasse: Anonyme Klassen sind in Unit-Tests nützlich, vor allem in spöttischen Testobjekten und - diensten. Dies hilft uns zu vermeiden, schwere Mocking-Bibliotheken und Frameworks durch die Schaffung eines einfachen Objekt, das die Schnittstelle, die wir verspotten bietet. CSPRNG-Funktionen Zwei neue Funktionen zur Erzeugung von kryptographisch sicherem String und Ganzzahlen wurden hinzugefügt. Gibt einen zufälligen String mit der Länge len zurück. Gibt eine Zahl zwischen min und max zurück. Unicode Codepoint Escape-Syntax Im Gegensatz zu vielen anderen Sprachen, vor PHP 7, hatte PHP nicht einen Weg, um einen Unicode-Code in String-Literalen zu entkommen. Diese Funktionalität fügt die Escape-u-Sequenz hinzu, um solche Zeichen mit ihrem UTF-8-Codepunkt zu erzeugen. Dies ist besser als das Einfügen der Zeichen direkt, so dass eine bessere Handhabung von unsichtbaren Zeichen sowie Zeichen, die die gleiche grafische Darstellung, aber unterschiedliche Bedeutung haben. Beachten Sie, dass dieser vorhandenen Code mit der u-Sequenz bricht, da er das Verhalten ändert. Generatoren Get Upgraded Generatoren in PHP erhalten Sie auch einige nette zusätzliche Features. Jetzt haben Generatoren eine return-Anweisung, die verwendet werden kann, um es zu ermöglichen, einen endgültigen Wert nach der Iteration auszugeben. Damit kann überprüft werden, ob der Generator fehlerfrei ausgeführt wurde und erlaubt es dem Code, der den Generator aufgerufen hat, verschiedene Szenarien entsprechend zu behandeln. Ferner können Generatoren zurückkehren und Ausdrücke von anderen Generatoren liefern. Dies ermöglicht es ihnen, komplexe Operationen auf einfachere und modulare Einheiten aufzuteilen. Erwartungen Erwartungen sind eine Erweiterung der assert () - Funktion bei gleichzeitiger Abwärtskompatibilität. Sie ermöglichen Null-Cost-Behauptungen in der Produktion Code und bieten die Möglichkeit, benutzerdefinierte Ausnahmen werfen, wenn die Aussage fehlschlägt, die nützlich sein können während der Entwicklung. Assert () wird zu einem Sprachkonstrukt in PHP 7. Assertions sollten für Debugging-Zwecke nur in Entwicklungs - und Testumgebungen verwendet werden. Um ihr Verhalten zu konfigurieren, werden wir mit zwei neuen Richtlinien versehen. Zend. assertions 1. Code generieren und ausführen (Entwicklungsmodus) (Standardwert) 0. Erzeugt den Code, springt aber zur Laufzeit um -1. Assert. exception 1. Werfen Sie, wenn die Assertion fehlschlägt, indem Sie das als Ausnahme ausgegebene Objekt auswerfen oder indem Sie ein neues AssertionError-Objekt werfen, wenn Exception nicht bereitgestellt wurde. Verwenden oder generieren Sie ein Throwable, wie oben beschrieben, aber nur eine Warnung auf der Grundlage dieses Objekts zu generieren, anstatt es zu werfen (kompatibel mit PHP 5-Verhalten) Vorbereiten der Verschiebung von PHP 5 Um PHP 7 Die Einführung eines Major-Release bringt die Möglichkeit, Änderungen zu aktualisieren älteren Funktionen oder sogar Entfernen Sie sie, wenn sie zu alt sind oder seit einiger Zeit veraltet sind. Solche Änderungen können Pausen in der Kompatibilität in älteren Anwendungen einführen. Ein weiteres Problem, das sich aus solchen Versionssprüngen ergibt, ist, dass wichtige Bibliotheken und Frameworks, auf die Sie sich verlassen, möglicherweise noch nicht aktualisiert wurden, um die neueste Version zu unterstützen. Das PHP-Team hat versucht, die Änderungen so rückwärtskompatibel wie möglich zu gestalten und die Migration auf die neue Version so schmerzlos wie möglich zu gestalten. Neuere und aktuellere Anwendungen sollten es leichter finden, sich auf die neue Version zu bewegen, während ältere Apps möglicherweise entscheiden müssen, ob die Vorteile die Kosten überwiegen und möglicherweise nicht aktualisieren. Die meisten Pausen sind gering und können leicht gemildert werden, während andere mehr Aufwand und Zeit benötigen. Grundsätzlich, wenn Sie hatte Abmahnung Warnungen in Ihrer Anwendung vor der Installation von PHP 7 werden Sie wahrscheinlich Fehler, die die Anwendung brechen wird, bis Festnetz. Sie wurden gewarnt, rechts Alte SAPIs und Erweiterungen Am wichtigsten, alte und veraltete SAPIs wurden entfernt, wie die MySQL-Erweiterung (aber Sie sollten nicht mit dieser in erster Linie, rechts). Für eine vollständige Liste der Erweiterungen und featured entfernt können Sie diese RFCs hier und hier. Darüber hinaus werden andere SAPIs auf PHP 7 portiert. Lose alte SAPIs und Erweiterungen wurden aus PHP 7 gelöscht. Wir vermuten, dass sie nicht verpasst werden. Uniform Variable Syntax Diese Aktualisierung hat einige Änderungen zu Gunsten der Konsistenz für variabel-variable Konstruktionen. Dies ermöglicht erweiterte Ausdrücke mit Variablen, führt jedoch zu Änderungen in Verhalten in einigen anderen Fällen, wie unten gezeigt. Dies würde das Verhalten von Anwendungen brechen, die auf Werte wie diese zugreifen. Auf der anderen Seite, können Sie einige nette Sachen wie folgt :. Old Style Tags Removed Die Eröffnungsabschluss-Tags lt. Gt; Lt. Gt; Ltscript languagephpgt. Lt scriptgt werden entfernt und sind nicht mehr gültig. Weirdo Ungültige Namen für Klassen, Interfaces und Traits Aus Additionen wie Parameter - und Rückgabetypen, Klassen, Interfaces und Merkmalen ergeben sich nicht mehr die folgenden Möglichkeiten, sie mit den gültigen zu ersetzen Namen: Diese Ursache bricht bestehende Anwendungen und Bibliotheken, die sie verwenden, aber sie sollten einfach zu beheben sein. Auch, obwohl sie keine Fehler verursachen und gültig sind, sollten die folgenden nicht verwendet werden, da sie für zukünftige Verwendung reserviert sind: Unterlassen Sie die Verwendung von ihnen sollten Sie die Arbeit der Änderung sie in Zukunft zu ersparen. Für eine vollständige Liste der Änderungen, die Kompatibilität brechen, überprüfen Sie dieses Dokument. Sie können auch php7cc. Die überprüft Ihren Code und kann mögliche mögliche Probleme herausfinden, die entstehen können, wenn Sie zu PHP 7 umziehen. Aber natürlich gibt es keinen besseren Weg als die Installation von PHP 7 und sehen für sich selbst. Potenzielle PHP 7 Kompatibilitätsprobleme PHP 7 Infrastruktur Kompatibilität Eine Menge von Hosting-Services haben begonnen, Unterstützung für PHP 7 hinzuzufügen. Dies ist eine gute Nachricht für Shared Hosting-Provider, da die Leistungssteigerungen werden sie die Anzahl der Client-Websites auf ihrer Hardware zu erhöhen, Ihre Betriebskosten zu senken und ihre Margen zu steigern. Wie für die Kunden selbst, sollten sie nicht zu viel von einem Schub unter diesen Bedingungen erwarten, aber fair zu sein, ist Shared Hosting sowieso keine leistungsorientierte Wahl. Auf der anderen Seite, Dienste, die virtuelle private Server oder dedizierte Server bieten ernten die vollen Vorteile dieser Performance Bump. Einige PaaS-Dienste wie Heroku unterstützten PHP 7 früh, aber andere Dienste wie AWS Beanstalk und Oracles OpenShift sind hinterherhinkt. Überprüfen Sie Ihre PaaS-Anbieter-Website, um zu sehen, ob PHP 7 bereits unterstützt wird oder ob Support in naher Zukunft kommt. Natürlich können IaaS-Provider Ihnen die Kontrolle über die Hardware und installieren Sie PHP 7 (oder kompilieren, wenn das mehr nach Ihrem Geschmack). PHP 7-Pakete sind bereits für große IaaS-Umgebungen verfügbar. PHP 7 Software-Kompatibilität Neben der Infrastrukturkompatibilität müssen Sie auch auf mögliche Probleme mit der Softwarekompatibilität achten. Beliebte Content-Management-Systeme wie WordPress, Joomla und Drupal haben Unterstützung für PHP 7 mit ihren neuesten Versionen hinzugefügt. Große Rahmenwerke wie Symfony und Laravel genießen auch volle Unterstützung. Doch seine Zeit für ein Wort der Vorsicht. Diese Unterstützung erstreckt sich nicht auf Drittanbieter-Code in Form von Add-ons, Plugins, Pakete, oder was auch immer Ihr CMS oder Framework aufruft. Sie können unter Kompatibilitätsproblemen leiden und in Ihrer Verantwortung dafür sorgen, dass alles für PHP 7 bereit ist. Für aktive, verwaltete Repositories sollte dies kein Problem sein. Allerdings könnten ältere und nicht verwaltete Repositories ohne PHP 7-Unterstützung Ihre gesamte App unbrauchbar machen. Die Zukunft von PHP Die Veröffentlichung von PHP 7 entfernt alten und veralteten Code und ebnete den Weg für neue Funktionen und Performance-Upgrades in der Zukunft. Außerdem wird PHP in Kürze zusätzliche Performance-Optimierungen erwarten. Trotz einiger Kompatibilitätspausen mit früheren Versionen sind die meisten Probleme einfach zu lösen. Bibliotheken und Frameworks migrieren nun ihren Code in PHP 7 und stellen so die neuesten Versionen zur Verfügung. Ich ermutige Sie, es auszuprobieren und sehen Sie die Ergebnisse für sich. Vielleicht ist Ihre Anwendung bereits kompatibel und warten, um zu nutzen, und profitieren von, PHP 7. Über den Autor Vollständiges Profil anzeigen raquo


No comments:

Post a Comment