Was uns die Inflation verschweigt

Es ist Oktober 2020. Ein Blick auf die Inflation zeigt es -0,2% zum Vorjahr. Doch der Einkauf von Lebensmittel zeigt. An der Kasse lässt man doch mehr Geld liegen als noch in den letzen Jahren. Wieso ist das und was sind die Konsequenzen daraus. Betrachten wir zunächst die Inflation, denn diese soll eine wichtige Stellgröße für die Geldpolitik sein.

Die Inflation wird auf der Basis eines Warenkorbes ermittelt. Dieser Warenkorb wird kontinuierlich an die Veränderung unserer Lebensgewohnheiten angepasst. Die Gewichtung soll den tatsächlichen Gewohnheiten angepasst werden.

Aha, was sagt das ? Das heisst, dass heutzutage mehr Telekommunikationsdienstleistungen enthalten sind. Das ist sicherlich richtig und gut solche Anpassungen vorzunehmen, jedoch gibt es hier auch einen Selbstverstärkungseffekt. Nehmen wir folgendes an. Die Menschen im Lande haben kein Geld mehr und gehen deshalb nur noch halb so häufig in ein Restaurant. Als Folge davon wird zukünftig entsprechend den Lebensgewohnheiten der Anteil der Restaurantbesuche im Warenkorb angepasst, in dem Falle auf die Hälfte. Wenn wir jetzt mal annehmen, dass sich die Preise im Restaurant nicht verändert haben, so haben wir nun eine kleine Deflation – das Leben der Leute ist billiger geworden, weil nicht mehr so viel Geld in Restaurants ausgegeben wird.

Wenn wir die Idee weiter betrachten, dann sind die Lebensgewohnheiten in jedem Land anders. Es gibt Länder in denen man sich traditionell mehrfach die Woche zusammen setzt. Das heisst dieser Luxus ist dort völlig normal und die Inflation erfasst nur die Veränderung in diesem Luxusverhalten. Die Berechnung lässt natürlich zu, dass je nach Wahl der Region ein ziemlich veränderter Warenkorb entsteht und eröffnet so alle Möglichkeiten für eine Manipulation der Werte.

Dieses Jahr ist durch Corona geprägt. Unsere Lebensgewohnheiten passen sich entsprechend an. Wir werden weniger Geld für Transport ausgeben, weil wir mehr daheim sind. Wir werden aus dem gleichen Grund mehr Energie daheim brauchen. Wir werden deutlich weniger Geld für Urlaub, Reisen, Restaurantbesuche ausgeben. All das wird sich dann im Warenkorb widerspiegeln. Ein weiterer Punkt ist natürlich auch eine gewisse Historie, die in der Inflation enthalten ist. Bei Mietverträgen ist es etwa so, dass die Miete bei Altverträgen erst mit grosser Verzögerung angepasst wird, so dass das Leben für jemand der neu einsteigt schon längst teurer geworden ist als das was wir haben.

Welche Alternativen haben wir also zur Inflation? Ein vereinfachtes Mittel ist es das Geldwachstum anzuschauen. Nehmen wir der Einfachheit mal an, dass wir keine Werte schaffen, sondern dass die Werte die uns umgeben noch die gleichen sind wie im Jahr 2000. Die Bevölkerungsentwicklung ist weitgehend stabil. Ich vereinfache das Modell bewusst, so dass wir keine 100%ige Genauigkeit haben können, aber es reicht als Denkmodell. Das Geldmengenwachstum ist seit 2000 um 160% gestiegen. Wenn man nun annimmt das Geld dazu da wäre die Werte zu erwerben, so kann man mit dem selben Geld heute nicht mehr 100% der Waren einkaufen, sondern nur noch 38% der Waren. Also fast 2/3 weniger. Daraus rechnen wir, dass wir jedes Jahr rund 5,6% weniger an Werten für das gleiche Geld bekommen. (Die Zahl erscheint zunächst hoch ist aber mathematisch korrekt, weil im Folgejahr die 5,6 % nur noch auf den verbleibenden Wert angerechnet wird, eine Art umgekehrter Zinseszins Effekt).

Was sind die Konsequenzen daraus. Wenn wir die Möglichkeit hätten einen Wert zu erwerben, der über die Zeit hinweg konstant ist, dann würden wir für das gleiche Geld nächstes Jahr nur noch 94,4% des gleichen Wertes bekommen. Ohne zu weit vom Thema abzuweichen ist bei den jetzigen Kreditzinsen also eine Investition so einem frühen Zeitpunkt in einen solchen Wert sinnvoll. Oder umgekehrt. Alles Investitionen, die nicht mindestens einen Zuwachs von 5,6% versprechen, verbrennen effektiv Geld.

In welche Werte sollte man investieren? Das ist sicher ein Thema eines anderen Blog Eintrages, denn für den Wert einer Sache gibt es doch zumindest 3 Wege diesen Wert zu bestimmen. Und hier gibt es dann auch noch Schankungen. Das einzige was ich mit dem Blog Eintrag mitgeben möchte. Es gibt eine Schere zwischen dem was dan Geldentwertung sattfindet und dem was uns die Inflation vorgaukelt. Unsere Lebensqualität kann sich auch bei Nullinflation oder Negativinflation verbessern, wenn die Lebensqualität nicht direkt mit Konsum zusammen hängt. Wir können also bessere Modelle als die Inflationszahlen benutzen, um zu schauen, ob es uns und der Wirtschaft besser geht als noch vor einiger Zeit.

Artificial Intelligence at GUC

I will start teaching a class in artificial intelligence starting next week. While preparing this class, I found out how my thoughts differ from what is written in most of the book. Therefore the concept of the class will be different. It will be a mix between a technical class and a more philosophical way about the way I define some of the terms for myself and the consequences.

The first and foremost question is: What is intelligence. And many people see intelligence related to humans. As a consequence we will have to look at humans with all the things that are working excellent in humans and why we deceive ourselfs and others. We have to cover how we view the world, that humans only see what they „want to see“.

The class is difficult, because the terms are used quite different for humans and computers. When technicians talk about neural networks, they usually have a stack of nonlinear elements that is trained by backpropagation. In contrast to this very simplified, the human has a different structure. We have highly cross-linked neurons, that have a temporal dependent pattern in which they fire. These neurons can be organized in columns. Chemicals influence the way they fire. After firing they need a certain time to recuperate and to build up new potential to fire. The closest similarity between neural networks in computer science and humans are the name.

I am really looking forward to this class and hope that the students will like to go on this  journey with me.

The origins of the term „waterfall model“

Recently I was sitting in the train and my thoughts started wandering about some software projects we had. The term „waterfall model“ came to my mind. Why is it called waterfall? One possible explanation is that like in a waterfall there are certain points of no return and from there a completely uncontrolled dynamic process started with a lot of turbulence, until we might hit another level with calm waters. It also is a good term for describing the amount of energy that seems to appear from out of nowhere. And I found another analogy I see a software project as a small boat and once it hits the waterfall, it is just not the same as it used to be before. It will end up having a lot of dents, and quick fixes that we try to apply in the calm waters, in order to survive the next fall. So I really like the term waterfall model.

Looking at wikipedia to find the origin of the term waterfall model does not reveal a lot of insights. The interesting part is that the original article did not present it is as good way of developing software, but as an example for a flawed, non working model. It is interesting to see that  many students still learn this model as one that should be applied to software processes, even so the original author already knew that the model is flawed. So instead of finding the origin of the word, I found out that this whole model results in a major misunderstanding that is still alive until today.

 

 

Ist Ihre Webseite schnell genug?

Eine der kritischen Fragen, die ich bei der Arbeit immer wieder beantworten muss: Welchen Server brauche ich? Und auch wenn man sich verschiedene Anbieter von Webservern anschaut, so herrscht hier eine echte Inflation. Server mit Gigabyteweise Speicher, Terrabyteweise Plattenplatz werden angeboten. Aber — wie viel Server braucht der Mensch?

Unabhängige Untersuchungen zeigen wiederholt, dass Abbrüche bei Warenkörben in langsamen Shopsystemen häufiger sind als bei normalen. Ein Experiment von Google mit einer verzögerten Antwort der Suchergebnisse hat die Anzahl der Suchanfragen dort deutlich reduziert. Interessant ist hier auch http://blog.kissmetrics.com/loading-time/

Daher muss eine Webseite schnell sein. Wie kann ich feststellen, ob meine Webseite schnell ist? Man muss also ein System installieren und dann schauen, ob es den Anforderungen genügt. Zum Glück gibt es einige Webhosting/VPN/Server Anbieter mit Geld zurück Garantie oder mit kurzer Vertragslaufzeit. Alternativ könnte man glauben, dass man einfach so vorgeht, dass man die CPU Leistung der Entwicklungsmaschine ausmisst und daraus dann irgendwie ausrechnet wie viel Leistung man braucht. Diese Modell zur Vorhersage taugt aber nur wenig.

Wenn man nun seine Applikation am Laufen hat, muss man festlegen welche Parameter man anlegt. In der Praxis hat sich herausgestellt, dass eine Antwortzeit von 100ms oder besser gar nicht als Verzögerung wahrgenommen wird, sondern als unmittelbare Antwort betrachtet wird. 500 ms gelten als erträglich, was darüber hinaus geht gilt schon als langsam und führt zu vereinzelten Abbrüchen. Mit diesem Wissen können wir nun eine Seite beim installierten Webserver abfragen und die Zeit bestimmen, bis die Antwort kommt. Für einzelne Seiten kann man dies mit Yslow, einem Plug in von Yahoo für firefox, chrome und andere verbreitete Server. Die Ergebnisse sind hier oftmals überraschend und zeigen oftmals schon einige Schwächen der Webseite an, die zu Verzögerungen bei der Auslieferung kommen. Yslow gibt dabei auch schon wichtige Tips wie sich die Geschwindigkeit verändern lässt. Oftmals sind nur kleine Veränderungen am html Code notwendig.

Yslow testet eine Seite unabhängig von der eigentlichen Last die durch andere auf den Servern verursacht wird. Es gibt zwar interessante Hinweise, aber letztlich wird dies nicht ausreichen um die Qualität unserer Webseite, wie sie auf dem Server läuft zu beurteilen. Hierzu ist es auch notwendig nicht nur eine einzelne Seite, sondern alle Seiten zu beurteilen.

Noch ein kurzer Gedanke welche Seiten hier berücksichtigt werden. Ein Blick ins Logfile sollte zeigen welche Seiten wie oft aufgerufen werden. Man sollte also die dort vorkommenden häufigsten Seiten nehmen und gewichten und die Antwortzeit bestimmen.

Der Aufwand zur Bestimmung der Performance Messung steigt langsam an, ohne dass wir die „echten Werte bekommen“. Die bisherige Messung lässt vernachlässigt beispielsweise noch die Laufzeiten der Pakete vom Benutzer zum Server und zurück. Und diese Zeiten sind nicht zu vernachlässigen. Wenn wir die obigen Zahlen nehmen, so wird es nicht möglich sein einen Server in den USA zu betreiben und ihn hier als flüssig wahrzunehmen, weil schon die Laufzeiten der Pakete über den Atlantik hinweg mehr als 100 ms ausmachen. Wenn wir das Netzwerk einbeziehen, so ist es keine Frage der Serverspezifikation, sondern auch eine Frage dessen wie dieser Server „vernetzt“ ist. Spätestens an dieser Stelle hört typischerweise das Wissen auf. Wir können nicht genau sagen wo unsere Webseitenbenutzer sitzen, über welchen Provider sie angebunden sind und damit auch nicht wie schnell diese den Webserver erreichen.

Daher muss man sich einen anderen Weg aussuchen, um die ausreichende Leistung zu bestimmen. Daher ist es einfacher, wenn man im Betrieb Daten erfasst und daraus dann ableitet wie schnell oder wie langsam der Server ist. Man versucht also in der Applikation zu messen wie lang jede Anfrage ist. Um nicht durch eine Menge von Zahlen erschlagen zu werden, gibt es einen weit verbreiteten Standard nach dem gemessen wird wir gut oder wie schlecht die Antworten sind, der sogenannte Apdex score. Dieser Apdex score wird ermittelt in dem für jede abgerufene Seite die Zeit gemessen wird, bis der Webseitenbesucher seine Antwort erhält. Die Ergebnisse werden in 3 Klassen eingeteilt

1. Klasse: Antwort war schneller als 100 ms  – das ist die Klasse an Antworten, die vom Benuzter als „unmittelbare Antwort“ wahrgenommen wird.

2. Klasse: Antwort war scheller als 4x 100 ms – die Zeit gilt für den Kunden als „noch erträglich“. Es sind also die Zeiten bis zu 400 ms, eine etwas schärfere Aussage als die zuvor erwähnten 500ms.

3. Klasse: Antwort war langsamer als die oben genannten.

Ist es wünschenswert, dass die Anfragen alle zur 1. Klasse gehören, so zeigt die Praxis doch, dass viele Anfragen langsamer sind. Der Apdex score errechnet sich wie folgt.
Anteil der Anfragen der 1. Klasse + Anteil der Anfragen der 2. Klasse/2  . Man sagt also, dass man mit den Anfragen der 2. Klasse nur halb zufrieden ist und daher auch nur zur Hälfte gerechnet werden. Als Ergebnis erhält man den sogenannten Apdex score. Dieser Score hat einen Wert zwischen 0 und 1, wobei 1 eine perfekte Antwort wäre, eine 0 sagt aus, dass jede Antwort langsamer als 400 ms ist und somit als nicht aktzeptabel gilt. Wie immer ist eine Reduzierung auf einen solchen Wert mit ein bisschen Vorsicht zu geniessen. Nehmen wir an, wir haben einen Apdex Wert von 0.8. Dies könnte bedeuten. 80% der Anfragen werden super schnell beantwortet und sind in der 1. Klasse, 20% der Anfragen werden ganz langsam, bis hin zu gar nicht beantwortet. Die gleiche Anzahl würde man aber auch erreichen, wenn 60% der Anfragen in der ersten Klasse wären und 40% der Anfrage in der 2. Klasse. Ein Apdex Score von 0,85 gilt wird häufig als gut bis ausreichend betrachtet.

Wir haben gesehen, dass die Bestimmung eines  „welcher Server  ist ausreichend schnell“ nicht analytisch einfach zu bestimmen ist, sondern am einfachsten durch eine Messung einer existierenden Seite möglich ist. Um dies zuverlässig zu machen gibt es Anbieter wie New Relic, die durch einfache Plug Ins in unsere Anwendungen alle notwendigen Daten erfassen. Der Vorteil liegt darin, dass dieser Score die praxisrelevanten Daten mit erfasst, etwa auch die regionale Verteilung der Anfragen und welche Seiten von welchen Regionen abgefragt werden. Der Score bewertet nicht nur den Server selbst, sondern die gesamte Infrastruktur, die zur Antwort einbezogen wird, etwa die Geschwindigkeit der Nameserver, die Qualität der Netzanbindung. Es ist daher unsinnig einen Server rein nach den Serverparametern wie Speicher, CPU und Platten auszuwählen. Einige Aussagen lassen sich trotzdem schon treffen. Wählt man etwa einen Cloudanbieter, der die Seiten in den USA betreibt, so wird es schwierig sein eine Seite zu generieren, die vom Kunden als flüssig wahrgenommen wird. Anbieter mit besonders günstig erscheinenden Preise protzen zwar häufig mit Serverleistungen, müssen aber an anderen Stellen, etwa am Netz wieder sparen. Man muss also probieren, ob dort die entsprechende Leistung zu erzielen ist. Serverleistung ist aber auch hier nur ein kleiner Faktor für die Entscheidungsauswahl. Oftmals kann man die Antwortgeschwindigkeit auch noch mit weiteren Optimierungen , etwas Datenbankoptimierungen, Caching etc beeinflussen. Hier ist man oft auf einen professionellen Dienstleister angewiesen.

Unser Tip ist also. Entweder mehrere Provider ausprobieren und anhand des Apdex Scores bestimmen wie gut dieser Anbieter ist, oder einen Anbieter auswählen, der sich mit der Optimierung von Antwortzeiten auskennt.

1 2