Mittwoch, 11. November 2015

TensorFlow Installation auf Windows

TensorFlow ist eine Machine Learning Library von Google, welches diese Woche der Öffentlichkeit zugänglich gemacht wurde, um den Austausch über das Thema anzuregen und ein einheitliches Werkzeug und bewährtes Werkzeug anzubieten. Die Library ist für C, C++ sowie für Python verfügbar und mit sämtlichen Linux Systemen kompatibel.

Die Installation unter Windows wird offiziell nicht unterstützt. Die einfachste Variante es dennoch unter Windows nutzen zu können, ist mit Hilfe von Docker. Die Installation mit Docker ist ganz simpel:

docker run -it b.gcr.io/tensorflow/tensorflow-full

Quelle: TensorFlow - Get Started

Docker installieren auf Windows

Docker ist die Virtualisierungssoftware der Stunde. Es scheint als ob sie gerade überall verwendet wird und so ist es an der Zeit sich einmal hier auf dem Blog damit auseinander zu setzen. Wer Docker nicht kennt, dem sei nahegelegt, sich auf der offiziellen Docker Seite kurz durch "What is Docker" durchzulesen.

Kurz zusammengefasst könnte man wohl sagen, Docker ist eine Virtualisierungslösung für leichtgewichtige Entwicklungsumgebungen ohne unnötigen Ballast. Im Unterschied zu herkömmlichen virtuellen Maschinen enthalten die sogenannten Container allerdings wirklich nur Applikationsdaten und teilen sich einen gemeinsamen Kernel, d.h. sie benötigen kein eigenes Betriebsystem.

Docker Aufbau
VirtualMachine Aufbau (z.B. VMWare, Hyperview, Virtualbox..)

Installation unter Windows

Quelle: Install Docker for Windows

 Um Docker unter Windows zu installieren, wird ein
  1. Windows Version prüfen
    Docker for Windows setzt mindestens Windows 7.1 voraus. Ich habe es bei mir unter Windows 10 installiert und das ging auch ohne Probleme.
  2. Hardware Virtualisierung aktivieren
    Unter Windows 8 und 10 kann man im Task Manager unter dem Performance Tab nachschauen ob dies bereits aktiviert ist. Falls nicht müsst ihr euch bei eurem Laptophersteller erkunden wie ihr das aktivieren könnt. In der Regel findet sich dafür eine Einstellung im BIOS.
  3. Docker Toolbox installieren
    Während der Installation von Docker wird auch VirtualBox installiert. Darin läuft danach die Docker Engine. Falls Virtualbox auf eurem System bereits installiert ist, versichert euch dass ihr es nicht durch Docker re-installiert und dass Virtualbox nicht im Hintergrund läuft während der Installation.
    1. Docker Toolbox Installer laden und Installation durchführen
  4.  Installation überprüfen
    1. Im Startmenü sollte nun im Docker Ordner der Menüpunkt "Docker Quickstart Terminal" vorhanden sein. Dieses starten wir nun. Im Hintergrund wird dadurch die Docker Toolbox eingerichtet (unter anderem wird eine virtuelle Maschine in Virtualbox angelegt für die Docker Engine).
    2. Sobald der Quickstart Terminal fertig durchgelaufen ist, sollte das Terminal auf Eingabe warten. Um zu schauen ob alles läuft, laden wir uns den Hello World Container und starten ihn:
      docker run hello-world
      Wenn alles geklappt hat solltet ihr folgende Meldung sehen:

Wie weiter? 

  • Docker Images laden und Container erstellen
  • Mit dem GUI herumspielen (Kitematic)
  • TensorFlow Container aufsetzen?

Mittwoch, 1. Juli 2015

Woocommerce - Falsche Steuerberechnung auf Gutschein

Seit dem Update auf Woocommerce 2.3.11 (eventuell sogar noch länger), gab es bei mir im Shop Probleme mit der Darstellung der Gutscheinbeträge auf den Bestellungen im Wordpress Backend.
Und zwar wurden die Gutscheinbeträge stets abzüglich der MwSt (8%) angezeigt.
Wäre also ein Gutschein von Fr. 10.- auf einer Bestellung verwendet wordern, wurde mir im Backend stattdessen Fr. 9.20 als Gutscheinbetrag angezeigt.

Dieses Problem liess sich beheben durch das Deaktivieren der Option "Steuern und Berechnung aktivieren", im "Mehrwersteuer" Tab der Woocommerce Einstellungen.
Deaktivieren von "Steuern und deren Berechnung aktivieren"
Bei bestehenden Bestellungen kann der Wert danach mit einem Klick auf "Steuern berechnen" korrigiert werden.
"Steuern berechnen" klicken zum Korrigieren des Gutscheinbetrages
Weitere Infos zu Gutscheinen und Steuern:

Dienstag, 9. Juni 2015

JavaScript - strict mode

Der strict mode von ECMASCRIPT ist nicht nur ein Subset der Sprache, er hat bewusst andere Semantik als normaler Code. Browser die strict mode nicht unterstützen, führen diesen Code mit anderem Verhalten aus als Browser die es unterstützen. Deshalb sollte man sich niemals auf den strict mode verlassen ohne gründliches Testen. Strict und non-strict Code kann koexistieren, so kann man zum Beispiel nur einzelne Funktionen in den strict mode setzen.

Strict mode aufrufen

Strict mode kann für ein gesamtes Skript, oder für einzelne Funktionen definiert werden.


// global auf der ersten Zeile des Scripts 
"use strict";


// in einer Funktion
function strict() {

  "use strict";

  return "bla"; 

}

Syntax Fehler

Im strict mode werden folgende Dinge als Fehler betrachtet:

  • Octal syntax (var n = 023;)
  • wit statement
  • Using delete on a variable name delete myVariable;
  • Using eval or arguments as variable or function argument name
  • Using one of the newly reserved keywords (in prevision for ECMAScript 6): implements, interface, let, package, private, protected, public, static, and yield
  • Declaring function in blocks if(a
  • Obvious errors
    • Declaring twice the same name for a property name in an object literal {a: 1, b: 3, a: 7} This is no longer the case in ECMAScript 6 (bug 1041128).
    • Declaring two function arguments with the same name function f(a, b, b){}
Zudem gibt es einige zusätzliche Runtime Errors, welche im normalen Javascript Mode ignoriert werden. Die Details dazu findet ihr im unten verlinkten MDN Artikel.

Quellen:

Freitag, 27. März 2015

Die 5 Vs von Big Data

Volume = Umfang der Daten
Velocity = Geschwindigkeit
Variety = Informationsquellen, die mit neuen Formen von Bearbeitung erlauben, Datenbestände zu entdecken und datenbasierte Entscheidungen zu treffen
Validity = sind die Daten gültig?
Value = Wird ein Mehrwehrt generiert oder einfach nur blindlings Daten gesammelt?

Woocommerce - Anzahl Produkte pro Zeile

Generell sollten sämtliche Wordpress Themes von Woothemes diesen Hook unterstützen. Im Produkt Loop wird dann jeweils das n-te Produkt mit der Klasse .last versehen, was dazu führt dass dort die Zeile umgebrochen wird und der margin-right entfernt wird. Quelle: Woothemes Docs - Change number of products per row