Google’s Beitrag zu Pokémon Go

by Armin 0 Comments

Pokémon Go ist der aktuelle Hype! Jeder redet davon, fast jeder spielt es. Aber was steckt eigentlich hinter diesem Phänomen, das viele so begeistert? Es ist wohl die Kombination eines Klassikers (die ursprüngliche Variante von Pokémon ist bereits 20 Jahre alt) mit neuer Technologie aktueller Smartphones.

Augmented Reality ist das Stichwort, das das Spiel so besonders zu machen scheint. Positionsdaten werden via GPS erfasst, man bewegt sich auf einer (auf Google Maps basierenden) Landkarte, die die reale Umgebung widerspiegelt. Taucht eines der witzigen Tierchen auf, so wird die Kamera das Handys aktiviert und das Pokemon dazu passend eingeblendet. Das scheint ein neues Konzept zu sein. Die Spieler müssen sich so bewegen, und nicht nur zuhause auf der Couch sitzen. Denn nur wer seine Umgebung erkundet, findet auch immer wieder neue „Pokestops“ und „Arenen“.

pokemon

So neu ist das Konzept aber überhaupt nicht: Denn bereits 2013 präsentierte Google das Spiel Ingress. Ein Spiel, das auch bereits Augmented Reality nutzte. Nur, dass Ingress nicht zu so einem Hype wurde, wie es bei Pokémon Go der Fall ist. Schaut man sich die beiden Spiele etwas genauer an, dann entdeckt man auch einige Parallelen:

  • Bei Ingress muss man einem von 2 Teams beitreten. (Den „Erleuchteten“ oder dem „Widerstand“). Bei Pokémon Go muss man auch einem (von 3) Teams beitreten.
  • Bei Ingress sammelt man „exotische Materie“ (XM), bei PG die Pokémons.
  • Bei Ingress gibt es Portale. (Das sind mit real existierenden Sehenswürdigkeiten, Statuen, Bauwerken, kulturell bedeutsamen oder anderweitig auffälligen Orten verknüpfte Positionen, an denen man diverse „Items“ bekommen kann.) Bei Pokémon Go nennt sich das dann Pokéstop.

…und es gäbe noch weitere Übereinstimmungen.

Insofern verwundert auch nicht, dass beide Spiele – sowohl Ingress als auch Pokémon Go – von der gleichen Firma stammen: Niantic (beziehungsweise früher Niantic Labs.) Niantic ist ein von Google gegründetes (zuerst internes) Startup, das erst letztes Jahr eigenständig wurde. Die Verbindung wurde aber nicht komplett gelöst. Denn gemeinsam mit Nintendo und The Pokémon Company investierte Google 20 Millionen Dollar in Niantic. Ein weiteres Investment in Höhe von 10 Millionen Dollar ist ist an die Erreichung von Meilensteinen geknüpft.

Pokémon Go ist also ein Spiel, das durch eine Kombination diverser Eigenschaften extreme Popularität erreicht hat: Viele (mittlerweile nicht mehr ganz junge) Spieler kennen das Spiel noch von ihrem Gameboy. Es ähnelt dem Sammeln von Insekten (einem Hobby dies Pokémon Erfinders Satoshi Tajiri) und bedient sich gleichzeitig Niantic’s – aus Ingress bekannter – Technologie. Das alles macht das Konzept so erfolgreich.

Der (Un)Sinn von Greylisting

by Armin 0 Comments

Mein letzter Post ist schon ein paar Wochen her. Seit dem habe ich mich viel mit dem Thema E-Mail beschäftigt. Man glaubt ja gar nicht, wie umfangreich das Thema ist. 😀

Heute möchte ich ein Stichwort heraus picken: Greylisting.

Was ist Greylisting?

Mit Greylisting soll Spam vermieden werden. Dabei geht man davon aus, das Spammer eine Mail nur einmal zuzustellen versuchen und nach einem fehlerhaften Versuch aufgeben. Des Weiteren geht man davon aus, dass vertrauenswürdige Absender aber sehrwohl mehrfache Zustellversuche unternehmen.

Wie funktioniert Greylisting?

Nehmen wir an Server A will eine Nachricht von [email protected] an den Empfänger [email protected] senden und sendet die Mail deshalb an den MX-Server B. Nehmen wir außerdem an, dass auf dem Server B der MTA Postfix mit der Postgrey-Erweiterung läuft. In dem Fall bildet Postgrey das Triplett aus Client-IP, Sender und Empfänger und prüft, ob es in seiner Datenbank ein Match gibt, das älter als 5 Minuten ist. Falls ja, dann wird die Mail angenommen. Existiert das Triplett aber nicht oder wurde es erst in den letzten 5 Minuten hinzugefügt, dann wird die Mail mit einem REJECT temporär abgelehnt.

Der Mailserver des Absenders probiert im Normalfall später einen neuen Zustellversuch, der dann erfolgreich sein sollte. Spammer tun sich das lokale Queueing hingegen nicht an, verwerfen die Mail und man hat sich den Spam so erspart.

Was ist nun aber das Problem von Greylisting?

Das erste Problem ist, dass nicht alle Server einen neuen Zustellversuch unternehmen. Speziell wenn es es sich um eine automatisierte Mail handelt (etwa eine Registrierung auf einer Webseite), kann man nicht darauf vertrauen, dass der MTA des Webservers mehrere Zustellversuche unternimmt.

Das zweite Problem ist die Frequenz der Zustellversuche. Man weiß nie genau, wie oft der absendende Server versucht eine Mail zuzustellen. Probiert er es nach 1 Minute noch einmal, dann wird die Mail wieder abgelehnt, weil die 5 Minuten noch nicht vorbei sind. Probiert er es erst nach 5 Stunden, dann kommt die Mail einfach viel zu spät an. Ich hatte bei meinen Tests in den letzten Wochen selbst schon einige Fälle, bei denen Mails erst nach ein paar Stunden oder gar erst am nächsten Tag am Ziel ankamen.

Das dritte Problem ist die Bildung des Tripletts. Früher, als noch jede Mail von einem bestimmten Mailserver bearbeitet wurde, ließ sich so ein Triplett gut bilden. Der Empfängerserver B wusste somit immer, dass eine Mail vom Absender [email protected] immer vom Absenderserver A kommt. Heutzutage, in Zeiten der Cloud, kann man dies nicht mehr sagen. Nutzt man einen Cloud-Service zum Senden der Mails (ich denke da etwa an Microsoft Exchange Online oder Google Apps), dann kann eine Mail von einen fast unendlichen Anzahl von Absenderservern zugestellt werden. Microsoft hat für Exchange Online etwa IP-Ranges mit gesamt 374.218 IP-Adressen (!) definiert. (Siehe TechNet) Selbst wenn also heute eine Mail zugestellt wurde (und das Triplett am Server B gespeichert ist), so heißt das noch lange nicht, dass eine Mail vom selben Absender an den selben Empfänger morgen auch direkt durch kommt. Möglicherweise verwendet der Absender ja Exchange Online und die Mail wird über eine der 374.217 anderen Adressen versendet…

Fazit

Aus meiner Sicht entspricht Greylisting nicht mehr dem Stand der Technik. Es mag zwar durchaus eine wirkungsvolle Methode zur Bekämpfung von Spam sein, aber die Nachteile die dieser Mechanismus mit sich bringt sind für meinen persönlichen Geschmack zu groß. Ich würde deshalb vorgeschaltete Filterdienste (aus der Cloud) bevorzugen. Statt prophylaktisch zuerst alles zu blocken, bis man dem Absenderserver nach dem zweiten Zustellversuch „vertraut“, können diese gezielte Backlists vom Spam-Servern verwalten und dies mit weiteren Mechanismen kombinieren. Das ist aber eine Sache die sich nur realisieren lässt, wenn man entsprechend viele Mails bearbeitet. Zusätzliche Features wie etwa Sandboxing und URL Protection gibt es bei den meisten Anbietern mittlerweile noch oben drauf.

Vanity DNS mit Amazon Route53

by Armin 0 Comments

Route 53 ist ein High-End Domain Name Service. Neben der Domainregistierung bietet R53 auch das Hosting von DNS-Zones an. Standardmäßig werden dabei jeder Zone vier Nameserver zugewiesen. Die Nameserver heißen ns-aaaa.awsdns-bb.cc wobei aaaa und bb jeweils für Zahlen stehen und cc  für je eine der vier Top-Level-Domains (.co.uk,. .com, .net und .org). Ein typischer Nameserver wäre somit ns-1234.awsdns-56.co.uk.

Wirklich schön ist das nicht, wenn man auf die Namen seiner DNS-Server wert legt. Deshalb kann man auch benutzerdefinierte Hostnamen für DNS-Server verwenden, obwohl der Nameservice von R53 bereitgestellt wird. Realisieren lässt sich dies mit einem sogenannten Delegationset.

Nachdem es dafür kein WUI gibt, muss man auf die AWS CLI zurückgreifen. Diese muss zuerst von https://aws.amazon.com/cli/ installiert werden. Nach dem ersten Start muss die Grundkonfiguration mit aws configure erfolgen. Im Zuge dessen müssen Access Key, Secret Access Key, Region und Ausgabeformat definiert werden.

aws route53 create-reusable-delegation-set --caller-reference aaa

…erstellt anschließend ein wiederverwendbares DelegationSet, wobei aaa die selbst gewählte Referenzierungs-ID ist. Als Antwort auf den Befehl gibt die AWS CLI ein Set mit vier Nameservern zurück:

{
 "Location": "https://route53.amazonaws.com/2013-04-01/delegationset/N2KWWW11111111",
 "DelegationSet": {
 "NameServers": [
 "ns-1234.awsdns-10.co.uk",
 "ns-567.awsdns-23.com",
 "ns-890.awsdns-45.net",
 "ns-1011.awsdns-50.org"
 ],
 "CallerReference": "aaa",
 "Id": "/delegationset/N2KWWW11111111"
 }
}

Wichtig ist dabei vor allem die zurückgegebene Id – diese sollte man sich ebenso wie die Hostnamen der Nameserver notieren, da sie für das Anlegen von Zonen notwendig ist.

Im nächsten Schritt sollte man die Hostnamen des DelegationSets in deren IP-Adressen auflösen. Mit den IP-Adressen kann man dann entsprechende Glue-Records für die Registry erstellen. Meine Nameserver sollten beispielsweise die Domains meines N1WebServices nutzen – n1ws.com und n1ws.net. Anstatt von awsdns-bb.cc verwende ich also ns01.n1ws.com bis ns04.n1ws.net

Sind die entsprechenden Einträge angelegt und via NS auflösbar (Propagation Delay beachten!), dann können die neuen Nameserver für eine beliebige Zone verwendet werden. Dazu wird folgende Befehl in der AWS CLI verwendet:

aws route53 create-hosted-zone --caller-reference aaa --name bbb --delegation-set-id /delegationset/N2KWWW11111111

…wobei aaa der neuen Caller-Referenz und bbb dem Namen der neuen Zone, also dem gewünschten Domainnamen, entspricht. Die DelegationSet-ID, die ebenfalls angegeben werden muss, ist der Teil der Antwort auf den vorherigen create-reusable-delegation-set Befehl. (Anmerkung: Es können nur neue Zonen mit dem DelegationSet angelegt werden. Die Änderung von bestehenden Zonen ist aktuell leider nicht möglich. In diesem Fall müsste die Zone zuerst gelöscht und anschließend neu angelegt werden. Wenn die Zone über viele Resource Records verfügt, empfiehlt sich vor dem Löschen auf jeden Fall ein Export der bestehenden Records.)

AWS meldet als Antwort auf create-hosted-zone folgendes zurück:

{
 "HostedZone": {
 "ResourceRecordSetCount": 2,
 "CallerReference": "n1ws-dns02",
 "Config": {
 "PrivateZone": false
 },
 "Id": "/hostedzone/Z6TFP22222222",
 "Name": "n1cloud.net."
 },
 "DelegationSet": {
 "NameServers": [
 "ns-1942.awsdns-50.co.uk",
 "ns-166.awsdns-20.com",
 "ns-921.awsdns-51.net",
 "ns-1440.awsdns-52.org"
 ],
 "CallerReference": "n1ws-dns01",
 "Id": "/delegationset/N2KWWW11111111"
 },
 "Location": "https://route53.amazonaws.com/2013-04-01/hostedzone/Z6TFP22222222",
 "ChangeInfo": {
 "Status": "PENDING",
 "SubmittedAt": "2016-04-13T15:50:03.887Z",
 "Id": "/change/CBW3233333333"
 }
}

SOA- und NS-Records (die zu diesem Zeitpunkt noch awsdns-bb.cc verwenden) kann man dann auch über die WUI von Route 53 anpassen – bisher weiß die Zone noch nicht, dass sie nicht awsdns-bb.cc als Hostnamen für die Nameserver verwenden soll. Zu guter Letzt müssen dann nur noch die beim Registrar angegebenen Nameserver auf die neuen NS-Namen angepasst werden.

Nachdem alle Änderungen übernommen wurden (das kann etwas dauern) kann man dann mit einem nslookup testen, ob alles funktioniert:

aws-r53-nslookup

Die Ausgabe zeigt, dass in diesem Fall die Domain n1cloud.net die Vanity-Nameserver ns01.n1ws.com bis ns04.n1ws.net nutzt. Mails werden von der AWS-Region EU-West-1 angenommen.

 

Wien 2016 – Der erste 5-Sterne-Urlaub

by Armin 0 Comments

Nach unserm Kurztripp in die Steiermark haben wir in der zweiten Maihälfte noch einen Abstecher nach Wien unternommen. Wie eigentlich immer sind wir mit dem Auto gefahren, weil das zu zweit einfach günstiger und unkomplizierter ist, als mit der Bahn oder dem Flugzeug. Dank Park+Ride kann man das Auto in Wien ja kostengünstig abstellen.

Das Highlight dieses Urlaubs war, dass wir zum ersten mal ein 5-Sterne-Hotel gebucht haben: Das Le Meridien, in dem ich erst vor ein paar Wochen an dem AWS-Event teilnehmen durfte. Ausgesucht haben wir uns das Hotel vor allem wegen der zentralen Lage direkt am Opernring. Durch einen günstigen Zimmerpreis (via Hotwire) haben wir dann zugeschlagen.

wien201605

Das Zimmer war schön geräumig (35 m²) und hatte – wie es sich für ein Designerhotel gehört – einige coole Beleuchtungseffekte zu bieten. (Sie Foto: Pferd am Kopfende des Bettes, grün beleuchtetes Badezimmer.) Die Frage die ich mir davor immer gestellt habe: „Was ist eigentlich der Unterschied zwischen 4 und 5 Sternen?“ Aufgefallen ist mir dann Folgendes: Es gibt im Zimmer ein Bügeleisen und ein Bügelbrett, damit man sich als wohlhabender Kunde auch noch schnell sein Hemd bügeln kann. Und die Minibar ist kostenlos und wird täglich nachgefüllt – allerdings ist nicht wirklich viel drin: 1 Cola, 1 kleines Bier, 1 Mineralwasser prickelnd … das war es dann auch schon fast. Ach ja, Wasserkocher und Teebeutel/Instant-Kaffee sind auch im Zimmer vorhanden. Das ist schon ganz praktisch. Bei einem Zimmerpreis von theoretisch über 460,- Euro pro Nacht ohne Frühstück, ist das aber durchaus zu erwarten. Frühstück würde übrigens pro Person und Tag 32,-Euro extra kosten. Darauf haben wir verzichtet und sind lieber jeden Morgen woanders hin gegangen. (Rochus, BlueOrange, Palmenhaus,…)

Die Möglichkeiten, die das Hotel sonst so bietet (Spa-Bereich, Fitness-Area und die Bar), haben wir überhaupt nicht in Anspruch genommen, weil wir eigentlich immer unterwegs waren. Morgens sind wir zum Frühstücken aus dem Zimmer raus und bis wir abends wieder im Hotel gelandet sind, war es meist schon 23:00.

Fazit: Wien ist einfach toll! Ein 5-Sterne Hotel ***** ist super, wenn man das Zimmer zu einem vernünftigen Preis bekommt. Hotwire hat sich da sehr bewährt – auch im Freundeskreis.

Ach ja, eine Sache hab ich noch vergessen: Wir sind auch mit dem Taxi gefahren – meine erste Uber-Fahrt. Ein toller Dienst, wir waren begeistert. Einfach und unkompliziert. Als wir dann ein zweites Mal Uber nutzen wollten, hat mir die App allerdings angezeigt, dass der Dienst in Wien gerade ausgelastet ist, man mit längeren Wartezeiten rechnen müsse und der Preis deshalb 50% höher sei als normal. Da haben wir zu einem „normalen“ Taxi gegriffen, das vor dem Hotel stand. Während der Fahrt hat uns der Fahrer dann gefragt, was wir denn für ein Auto hätten. „Lamborghini? Porsche? Maserati?“ … Ähm „Hyundai“ haben wir geantwortet. Das war uns dann in dem Zusammenhang fast ein Bisschen peinlich.

Die Idee eines serverlosen Blogs und ein neues Theme

by Armin 0 Comments

Nachdem ich mich schon seit einiger Zeit mit serverlosen Webseiten beschäftige (siehe Post 1 und Post 2) wollte ich diesen Ansatz auch auf diesen Blog hier übernehmen. Ein serverloser Blog basiert im Grunde einfach auf statischen HTML-Seiten, die dann – wie bereits beschrieben – über ein CDN ausgeliefert werden können; ohne, dass serverseitige Preprocessor-Verarbeitungen anfallen würden. Nachdem es gerade bei einem Blog viele Querverweise gibt (chronologische Post-Liste verteilt auf mehrere blätterbare Seiten, Kategorien, Tags, …) wäre es sehr umständlich diese Seiten alle manuell zu erstellen.
Ein Beispiel: Bei diesem Blog hier wären das über 1.180 statische HTML-Dateien in über 800 Ordnern verteilt. Bei jedem Post, der dazu kommt, müsste sowohl eine Post-Datei, die Übersichts-Datei(en), die Kategorie-Datei(en) und die Files der Tags geändert werden. Wenn man dann beispielsweise nur 10 Posts pro Seite anzeigt und auch eine blättern-Funktion hat, dann sind das schnell mal 50 Files die geändert werden müssten, wenn nur ein einziger Post dazu kommt. Der Aufwand wäre enorm.

Aus diesem Grund gibt es für statische Webseiten Tools, die denn Text des Posts aus Quell-Dateien einlesen und dann automatisiert alle HTML-Files generieren. Der wohl prominenteste Vertreter dieser Engines ist Jekyll, von einem der GitHub Co-Founder. Ganz anfreunden konnte ich mich mit Jekyll aber nicht. Außerdem ist die Software für Windows nicht offiziell supported. Ich wollte aber eine Lösung, die auf allen Systemen läuft, da ich teilweise Windows, teilweise Mac und ggf. auch Linux im Einsatz habe. Auf der Suche nach Alternativen bin ich auf Hexo gestoßen. Hexo ist durch Node.js mit npm auch auf Windows leicht einzurichten und funktioniert nach dem gleichen Prinzip wie Jekyll. Praktisch ist auch, dass man Posts aus anderen Blog-Software-Lösungen (etwa WordPress) importieren kann.

hexo

Nach der Installation und der Definition des Arbeitsverzeichnisses mit hexo init kann man mit hexo server einen Webserver starten, der die statischen Files anbietet. Beim Schreiben eines neuen Posts wird im Unterordner /sources/_posts/ eine .md-Datei angelegt, die alle wichtigen Informationen und den eigentlichen Text enthält. Das schaut dann etwa so aus:

---
title: Hello World
date: 2000-01-01 12:00:00
categories:
- Allgemeines
tags:
- test
---
Welcome to [Hexo](https://hexo.io/)! This is your very first post.

Anschließend genügt ein hexo generate um alle Files im Ordner /public/ zu aktualisieren. Dieser Ordner kann in weiterer Folge einfach auf ein CDN hoch geladen werden – und schon läuft der statische Blog.

So weit, so gut … nur: Ohne serverseitige Dynamik gibt es keine Kommentarfunktion – denn wo sollten die Kommentare hin gespeichert werden, wenn am (nicht vorhandenen) Server kein Preprocessor läuft? Die meisten Static-Webseit-Blog-User greifen dafür auf den Dienst Disqus zurück. So kann man Kommentare zum Post ermöglichen. Wirklich schön finde ich diese Möglichkeit aber nicht. Denn erstens passt das Layout von Disqus nicht wirklich zum individuellen Blog-Design und zweitens würde ich mir das lieber selbst programmieren.

Um eine eigene Kommentar-Funtkion zu ermöglichen, könnte man auf AWS Lambda zurück greifen. Zusammen mit dem API Gateway, SNS und einer DynamoDB könnte man so eine gute Kommentarfunktion entwicklen: Der User füllt das Formular aus, das statisch in die Post-Seite des Blogs integriert ist. Die Daten werden via API Gateway an Lambda geschickt, dort validiert und in eine DynamoDB geschrieben. Das DynamoDB Document enthält eine Referenz zum entsprechenden Blog-Post. Zusätzlich kann man noch SNS nutzen, um sich als Blog-Autor über den neuen Kommentar informieren zu lassen und diesen ggf. moderieren. Beim Laden der entsprechenden Post-Seite muss dann einfach über einen XHR eine Anfrage an das API Gateway gestellt werden. Eine so getriggerte Lambda-Funktion schaut dann in der DynamoDB nach und liefert die entsprechenden Kommentare zurück.

So würde ich das jedenfalls machen. Momentan fehlt mir aber die Zeit dazu. Deshalb habe ich mich, wie ihr vielleicht schon bemerkt habt, vorläufig dafür entschieden, dass ich einfach das Theme des Blogs ändere und werde mir die Sache mit Hexo später nochmal etwas genauer ansehen. Auch deshalb, weil das erstellen von Themes mit Hexo nicht in 10 Minuten erledigt ist. Um da ein schönes Layout zu basteln, ist einige Zeit notwendig … vermutlich sogar mehr, als für die Kommentarfunktionen mit Lambda.

Kurzurlaub in der Steiermark

by Armin 0 Comments

Heute mal ein ganz anderes Thema. Urlaub, Wellness, Entspannung! 🙂

Die letzten Tage haben wir einen Kurztripp in die Steiermark unternommen. Wir haben uns ein paar Tage in Bad Waltersdorf erholt und die Seele baumeln lassen. Nach 6 Stunden Fahrzeit (wir sind über Lienz gefahren, weil wir da noch jemanden mit genommen haben) sind wir endlich am Ziel angekommen. Die Heiltherme in Bad Walterdorf ist ein riesiges Areal, dessen Anfang sogar mit einem eigenen Ortsschild gekennzeichnet wird. Wir haben im Quellenhotel eingecheckt, das direkt an die Therme angeschlossen ist.

badwaltersdorf01

Der Empfang war sehr freundlich. Die Zimmer haben wir dann auch gleich gefunden. Allerdings fand ich das Zimmer relativ klein und ehrlich gesagt, war ich davon (und vor allem vom Bad) etwas enttäuscht. Bei ca. 270,- Euro pro Nacht (für 2 Personen mit Halbpension) hätte ich mir ein etwas größeres Zimmer mit einer Badewanne im Bad erwartet, nicht ein kleines Zimmer mit einem Bad, in dem man sich gerade einmal alleine umdrehen kann. Auch die Aussicht (auf die anderen Zimmer und den „Innenhof“) war suboptimal. Insofern war der erste Eindruck vom Zimmer … naja. Nachdem ich ja erst vor gut einer Woche in Wien war und dort um ca. 65,- Euro in einem größeren Zimmer übernachtet hatte, war ich wohl auch extra kritisch.

Allerdings, und das soll auch gleich erwähnt werden, war das kleine Zimmer wirklich der einzige Kritikpunkt. Alles andere war tip-top! Das Quellenhotel besteht aus 4 Gebäuden, die sich in unterschiedliche Himmelsrichtungen erstrecken. Insofern heißen die Gebäude auch Süd, West, Nord und Ost. Das Gebäude Süd sieht man im linken oberen Bereich des obigen Bildes.

Bei unserer Verwöhn-Halbpension war neben dem Frühstück auch ein 4-Gänge-Abendmenü inkludiert. Die Auswahl am Salat- (und teilweise) Nachspeisenbuffet war 1A. Auch die angebotenen Hauptspeisen (immer 3 zur Auswahl: Fleisch, Fisch, vegetarisch) waren alle sehr, sehr gut. Das Personal war stehts sehr zuvorkommend und freundlich.

Aber kommen wir zum wichtigsten bei einem Thermenurlaub – der Therme. Diese ist direkt vom Zimmer aus im Bademantel zu erreichen. Fährt man vom Hotel aus in das zweite Untergeschoss, dann landet man in einem Gang der direkt in die „weiter unten liegende“ Thermenlandschaft führt. (Das Heilthermen-Areal ist am Hang gelegen.) Dort gibt es dann mehrere Innenbecken und auch vier Außenbecken. Neben den Hotelgästen sind da auch die Tagesgäste zu finden, die einfach mal einen Tag in die Therme wollen. Wegen dem verlängerten Wochenende war deshalb recht viel los.

badwaltersdorf02

Aber auch dafür gibt es eine Lösung: Neben der auch öffentlich zugänglichen Therme hat das Hotel auch noch einen eigenen Wellnessbereich im Anschluss an das Gebäude „West“. Auch dieses kann direkt vom Zimmer aus im Bademantel erreicht werden, ohne in’s Freie zu müssen. Im hoteleigenen Bereich ist logischer Weise weniger los, weil da keine Tagesgäste zu finden sind. Neben einem Innenbecken gibt es dort auch einen Außenbereich der neben normalen Becken auch einen Badeteich beinhaltet. Da quaken die Frösche und es schwimmen Wasserschlangen durch das Wasser. Mit 15 °C war uns der Teich aber zu kalt. Die Idylle kann man auch aus dem 36°C warmen Becken mit Thermalwasser genießen, das direkt in den Badeteich integriert ist. Etwas entspannenderes gibt es nicht. 🙂

Alles in allem kann man also zusammenfassen, dass der Urlaub in Bad Waltersdort super war. Wir werden da sicher wieder einmal hin fahren. Lediglich die Zimmer waren nicht über-drüber groß, aber da hält man sich sowieso nicht primär auf.

Nächste Woche geht es dann nach Wien. Um das 4 Sterne-Hotel in Bad Walterdorf zu toppen, werden wir da im 5-Sterne-Hotel Le Méridien einchecken. Ich freu mich schon und werde dann hier wieder berichten.

 

Ich bin jetzt AWS-zertifiziert :-)

by Armin 0 Comments

Nach dem AWSomeDay im Le Méridien Wien habe ich gleich für den Folgetag eine Zertifizierungsprüfung zum AWS Certified Solutions Architect – Associate geplant. Dabei handelt es sich um eine von 5 Zertifizierungen, die AWS anbietet. (Es gibt drei Prüfungen auf Associate-Level und zwei auf Professional-Niveau, die jeweils eine der Associate-Zertifizierungen voraussetzen.)

Meine Prüfung dauerte 80 Minuten und beinhaltete 60 Fragen. Das ist übrigens nicht immer so: Denn AWS-Prüfungen haben mal ein bisschen mehr Fragen, mal ein bisschen weniger. Es wird nicht einmal bekannt gegeben, wie viele Punkte bzw. Prozent der richtig beantworteten Fragen notwendig sind, um die Prüfung zu bestehen. Im Hintergrund wird das Bestehen einer Prüfung von einem Algorithmus auf Basis einer Bell-Kurve berechnet, soweit ich gelesen habe. Recht interessanter Ansatz, den ich bisher noch nicht kannte. Im Endeffekt, kann man aber wohl davon ausgehen, dass man die Prüfung mit 70% besteht.

Als Vorbereitung auf die Prüfung habe ich den entsprechenden (sehr empfehlenswerten) Kurs von A Cloud Guru durch gemacht, mir eine 19-seitige Zusammenfassung und 17 Seiten mit Beispielfragen zusammen geschrieben. A Cloud Guru bietet im Rahmen des Kurses auch ein Probeexamen an, das 60 Fragen beinhaltet. Das habe ich 3x durch gemacht, jedes mal 15-20 Minuten gebraucht und bei allen Versuchen mindesten 93% errecht.

Das echte Examen, das man übrigens über Kryterion ablegen muss und in Österreich auch nur in Wien ablegen kann, war dann aber noch um einiges schwieriger. Von den 60 Fragen habe ich im ersten Durchlauf 20 als „unsicher“ markiert und habe mir diese dann in einem zweiten Durchlauf nochmal angesehen. Gesamt habe ich für die Prüfung über 75 Minuten gebraucht, also fast die komplette, zur Verfügung stehende, Zeit ausgeschöpft.

aws-asa-cert

Lange Rede, kurzer Sinn: Seit heute bin ich nun jedenfalls zertifizierter Lösungsarchitekt für die Amazon-Wolke. 🙂

Alle prüfungsrelevanten Themen hat der Online-Kurs leider nicht voll abgedeckt. Auch wenn A Cloud Guru den Kurs laufend aktualisieren und erweitern, so muss man doch schon auch ein gutes Stück praktische Erfahrung mit bringen. (AWS selbst schreibt dazu: „Mindestens ein Jahr praktische Erfahrung mit der Konzeption verfügbarer, wirtschaftlicher, fehlertoleranter und skalierbarer verteilter Systeme in AWS.“) Ich habe mich aber in den letzten Wochen und Monaten recht intensiv mit AWS beschäftigt, wie man auch hier im Blog immer wieder lesen kann. Vor allem serverlose Architekturen mit Lambda habe es mir angetan – in diese Richtung werde ich bestimmt noch einiges machen. Und wenn mir zu langweilig wird: Es gäbe da ja nach 4 andere AWS-Prüfungen. Der nächste logische Schritt wäre die Zertifizierung zum AWS SysOps Administrator – das Kursmaterial habe ich mir schon gekauft.

An AWSomeDay in Vienna

by Armin 2 Comments

AWSome – nein, ich hab kein „e“ bei awesome vergessen: AWSome ist viel mehr ein Event von Amazon Web Services (AWS), das in diversen Städten auf der Welt eine Einführung in die Services von AWS gibt. In Österreich fand heute der AWSome Day in Wien statt. Geschätzte 50 Teilnehmer aus Österreich und anderen Ländern ließen sich dabei von Sébastien Stormacq von AWS die Services von AWS näher bringen.

Nachdem ich bereits zum AWS Summit (einem etwas größeren AWS-Event) nach Berlin fahren wollte, das dann aber leider nicht geklappt hat, habe ich mich entschlossen, den AWSome Day in Wien zu besuchen und habe es nicht bereut.

awsomeday2016

Impressionen vom AWSomeDay 2016 in Wien.

Neben der Erklärung der wichtigsten Dienste (S3, EC2, VPC, EBS, …) wurde auch auf recht neue Services, wie etwa Lambda, eingegangen. Ein praktisches Beispiel wurde mit dem Simple Mustache Service gezeigt (siehe links oben im Bild) – einer Demo-WebApp, die auf drei unterschiedliche Arten implementiert wurde: Als einzelne EC2-Instanz, als Cluster hinter einem ELB mit S3 für static Files und als Lambda-Funktion mit API-Gateway.

Alles in allem ein tolles Event, das man nur jedem empfehlen kann, der sich für AWS interessiert. Man hat selten die Gelegenheit, an einem einzigen Tag einen so guten Einblick in AWS zu bekommen.

Focus 15: 15 Minuten Workouts von Mark Lauren

by Armin 0 Comments

Endlich wieder einmal ein Fitness-Post!

Fitnessbegeisterte Leser meines Blogs kennen sicher Mark Lauren: Ehemaliger Ausbilder beim US Militär und Champion im Thaiboxen, Rekordhalter im militärischen Apnoe-Tauchen … aber vor allem bekannt für seine Bodyweight-Trainings. Etwa Fit ohne Geräte (englisch: You Are Your Own Gym), Fit ohne Geräte für Fortgeschrittene (englisch: EFX – Elite Functional Exercise) oder das Mobility Workout (englisch: Mobility Rx)

Ab heute ist das neueste Training von Mark auf Amazon verfügbar: Focus 15. Wie der Name schon vermuten lässt, handelt es sich dabei um Trainings die in 15 Minuten erledigt sind. Sie sind also für alle Leute geeignet, die nicht viel Zeit in das Training investieren können oder wollen. Zugegebenermaßen muss man zu den 15 Minuten aber noch ein Warm-Up und ein Cool-Down dazu rechnen. Entsprechende Videos sind auch dabei, aber nicht in den 15 Minuten inbegriffen.

Ich habe das Glück zu den auserwählten Mitgliedern des Launch Teams von Mark zu gehören und konnte die Workouts bereits vorab testen: Focus 15 besteht aus drei Einheiten, die einen Unterschiedlichen Fokus haben. Beine und Gesäß, Total Core und Oberkörper. Jede Einheit besteht aus 6 Übungen die in 3 Blöcken (á 2 Übungen) absolviert werden. Wer sich also mit geringem Zeitaufwand fit halten möchte, ist bei Focus 15 genau richtig.

Fitness-Tracker: Von Garmin Vivosmart bis Fitbit Blaze

by Armin 0 Comments

Ein Uhrenfan war ich schon immer. Egal ob klassisch analog oder digital mit Fitness-Funktionen. Alleine was die zweite Kategorie betrifft, hatte ich bereits einige Modelle in Verwendung:

Angefangen habe ich mit einer Garmin Vivosmart mit Brustgurt. Den Brsutgurt fand ich immer etwas störend, aber dafür war die Form und Einfachheit der Vivosmart selbst bestechend. Ich habe die dann einem Kollegen verkauft, der nach wie vor seine Freude damit hat.

Darauf folgte dann eine Garmin Forerunner 225, die einen integrierten optischen Pulssensor verwendet. Der Sensor hat so mittelprächtig funktioniert. An den Brustgurt der Vivosmart kam die Genauigkeit natürlich nicht heran. Außerdem hat die Forerunner 225 auch GPS integriert. Wäre ein tolles Gerät gewesen – wenn da nicht die Hautirritationen aufgetreten wären, wegen denen ich die Forerunner leider nicht mehr verwenden konnte.

Danach habe ich mir wieder eine Vivosmart gewünscht, weil mir die Smart Notifications auch irgendwie abgingen. Damals (Ende 2015) gab es die neue Vivosmart HR von Garmin. Toll, dachte ich: Smart Notifications und integrierter Pulssensor. Da konnte ich auch damit leben, dass kein GPS integriert ist. Leider hat der Pulssensor komplett versagt. Selbst bei einem hoch-intensiven Training (HIIT), bei dem ich kaum mehr Luft zum Atmen hatte, zeigte mir das Vivosmart in 90% der Fälle einen Puls von 52 Schlägen pro Minute an – wirklich immer genau 52. Ich habe sogar mit der Garmin-Hotline telefoniert und gefragt ob „52“ irgend ein Standardwert ist, den die Vivosmart anzeigt, wenn sie den Puls nicht mehr messen kann. Das wurde aber verneint. Man teilte mir lediglich mit, dass die Vivosmart HR für so einen Trainingsart wohl einfach nicht geeignet sei. Mittlerweile habe ich das Tracken von Aktivitäten mit der Vivosmart HR aufgegeben. Die Pulswerte stimmen leider überhaupt nicht. (Sie zeigt selten über 60 bpm an.) Da war der Sensor der Forerunner noch viel besser. Soweit ich gelesen habe, wurde in der Forerunner ein (von Mio?) zugekaufter Sensor verwendet, in der Vivosmart HR wurde dann angeblich der erste selbst entwickelte Sensor verbaut. Offensichtlich ist der aber noch nicht ausgereift.

Nachdem ich in den letzten Tagen immer wieder Synchronisationsprobleme mit der Vivosmart HR hatte, dachte ich mir, ich schau mir einmal einen anderen Hersteller an. So bin ich bei Fitbit gelandet. Zuerst habe ich die Fitbit Surge ins Auge gefasst. Die Surge wird als Superwatch beworben und hat sowohl einen Pulssensor als auch GPS integriert. Nur wirklich schön ist sie meiner Meinung nach leider nicht. Bestellt habe ich sie aber trotzdem. Mal testen, dachte ich.

Während die Bestellung im Amazon-Logistikzentrum für den Versand vorbereitet wurde habe ich dann aber beim Durchstöbern von Reviews auf YouTube die nagelneue Fitbit Blaze entdeckt. Schaut echt stylisch aus, hat ein Farbdisplay und auch sonst alles was man sich wünscht – inklusive Pulssensor (neuere Generation als die 2014 erschienene Surge). GPS ist zwar nicht on-board, aber durch Connected-GPS kann man trotzdem Strecken aufzeichnen. Mann muss lediglich das Smartphone dabei haben, was man normalerweise aber sowieso immer dabei hat. Also Amazon-Bestellung der Surge noch rechtzeitig storniert und stattdessen die Blaze bestellt. Dank Prime kam sie dann auch schon am nächsten Tag bei mir an.

fitbit-blaze

Bei der Blaze handelt es sich um ein Tracker-Modul, das in den Rahmen des Armbands gesteckt wird. Das hat den Vorteil, dass man die Bänder beliebig wechseln kann. Fitbit bietet neben dem Standard-Armband auch noch Bänder aus Leder und Metall an, die aber mit ca. 100,- bis 130,- Euro unverschämt teuer sind. Im Vergleich zur Vivosmart HR ist die Blaze extrem dünn und angenehm zu tragen. (Erinnert mich von der Größe her etwas an die einfachen Meister-Anker Digitaluhren die vor 25 Jahren im Quelle-Katalog angeboten wurden.) Das Tragegefühl ist jedenfalls 1A.

Natürlich wollte ich auch den Pulsmesser gleich testen. Ist Fitbit da mit der Technologie weiter als Garmin? Laut den Amazon-Kundenrezensionen: Ja. Aber besser selbst testen. Also habe ich Blaze und Vivosmart HR zu einer Gassi-Runde angezogen. Ich gehe mit dem Hund immer recht schnell, demnach sollte der Puls schon erkennbar über dem Ruhepuls liegen. So um die 100 bpm fände ich logisch. Und siehe da:

pulsvergleich

Die Anzeige der Blaze passte zu dem, was ich auch erwartet habe. Die Vivosmart pendelte sich jedoch, wie vermutet, zwischen 50 und 60 Schlägen pro Minute ein. (Teilweise zeigte die Vivosmart HR gar nur halb so viele Schläge an, als die Blaze.) Ein klarer Punkt also für die Fitbit Blaze. Die Distanzmessung ergab nur geringfügige Unterschiede. Fitbit hat die Connected-GPS-Funktion genutzt, Garmin nur die Schrittlänge mit der Schrittanzahl multipliziert.Eine Differenz von 100 Metern bei einer 3 km langen Runde ist da aber durchaus vertretbar.

Kommen wir anschließend zur App, die ebenso wichtig ist, wie der Tracker selbst. Bisher hatte ich ja nur Erfahrung mit Garmin Connect. Auch hier hat mich Fitbit voll überzeugt. Die App ist schön aufgeräumt.

fitbit-app

Neben dem Tracken von Aktivitäten bietet Fitbit auch noch ein integriertes Ernährungstracking an, in dem man hinterlegen kann was man wann gegessen und getrunken hat. Die aufgenommenen Kalorien werden dann automatisch mit den verbrauchten Kalorien gegengerechnet. Ein wirklich tolles Feature, das die Garmin nicht bieten kann. Garmin Connect bietet lediglich eine Schnittstelle zu myFitnessPal. Dann braucht man aber erstens wieder zwei unterschiedliche Apps für’s Tracking und außerdem klappt der Datenabgleich zwischen Garmin Connect und myFitnessPal auch nicht immer. Auch die Flüssigkeitsaufnahme kann Fitbit loggen und zeigt an, wenn man noch was trinken sollte.

Ebenfalls genial ist die Echtzeit-Anzeige der App. Anstatt wie bei anderen Apps, die nur sporadisch Daten mit dem Tracker abgleichen, erfolgt bei Fitbit ein permanenter Datenabgleich, wenn die App geöffnet ist. Man sieht also sofort, wenn man 2 Schritte gegangen ist und auch der Puls wird in der App aktuell angezeigt. Rückblickend kann man in der App auch zu jedem Punkt Diagramme mit dem Tagesverlauf (für über 2 Monate) ansehen.

Ach ja, eine Sache habe ich noch vergessen. Aktivitäten versucht Fitbit automatisch zu erkennen. Beginnt man also beispielsweise zu laufen, dann zeigt die App nach dem Lauf automatisch an, dass die Blaze einen Lauf erkannt hat und diesen automatisch als Activity gespeichert hat. Man muss also nicht einmal eine Aktivität starten. Es sei denn, man möchte GPS-Tracking. Das ist bei „SmartTrack“ nicht aktiv, da die Aktivität erst nach 15 Minuten als solche erkannt wird. (Den Zeitraum kann man aber einstellen.)

Weitere Features der Blaze sind PurePuls (kontinuierliche Messung der Herzfrequenz), Musiksteuerung (ist mittlerweile eigentlich eh schon Standard), Anzeige von Mitteilungen auf der Uhr (eingehende SMS, Anrufe,.. leider unter iOS noch kein Whatsapp.) und FitStar-Workouts, die direkt auf der Uhr gespeichert sind (7-minütig und 10-minütig).

Alles in allem bin ich mit der Fitbit Blaze bisher einwandfrei zufrieden. Lediglich die Smart Notifications von Drittanwendungen (WhatsApp, Outlook, Facebook,…) fehlen für iOS noch. Für Android gibt es schon eine Lösung. Nachdem es aber auf der Fitbit-Webseite schon ein paar entsprechende Feature-Requests gibt, hoffe ich, dass diese Funktion mit einem der nächsten App-Updates nach geliefert wird.