Montag, 20. Oktober 2014

Nahrungsergänzungsmittel (Zusatzernährung)

Nahrungsergänzungsmittel (Zusatzernährung)

Darm
Allgemein

Mittwoch, 6. August 2014

Windows 8.1 Update 1 installiert, oder nicht?

Herauszufinden, ob Windows 8.1 Update 1 installiert ist (was in der Regel automatisch im Hintergrund passiert), oder ob dabei Probleme aufgetreten sind, ist gar nicht "so" einfach.

In den Systemeigenschaften kann man das leider nicht erkennen, da würde man wohl nur "Service Packs" (SP x) sehen, vgl. vorhergehende Versionen.


Mit dem Windows-Befehl "winver" wird einem nur die Build-Nummer angezeigt (9600), da findet man im Internet aber leider keine eindeutige Build-Nummer für das Update 1.

Am besten schaut man bei den installierten Updates nach (Programme und Features (Software)), da muss nämlich das Update mit der Nummer KB2919355 aufgelistet sein.


Dienstag, 8. Juli 2014

Prestigio MultiPad 8.0 HD (PMP5588C); stürzt ab, schaltet/geht aus, Akku schlagartig leer; Werkszustand, Daten weg/verschwunden, hängt; kein Speicherplatz mehr

Ein Tablet um die 100 € sollte es sein, das Prestigio MultiPad 8.0 HD (Modell PMP5588C_DUO) mit Android 4.2.1 für 125 € wurde es dann. Eigentlich für das Geld recht gut, das Display ist aber etwas zu dunkel und seltsam "schimmerig" (schimmernde Partikel).

Problem ist bei dem Gerät die Firmware (PMP5588C_20130508_V1.0.12).

Das Gerät geht spontan einfach so aus, es stürzt ab, meist wenn man es gar nicht nutzt, also quasi über Nacht, obwohl es eigentlich "aus" war (Stand-by); und vor allem wenn Wi-Fi aktiv war. Manchmal auch unter'm Surfen, aber meist schlicht nicht nachvollziehbar. Der Akku ist dann oft komplett leer, bzw. wird zumindest so angezeigt; und das scheint fast schlagartig zu passieren, ohne Nutzung. Die Vermutung liegt natürlich erst einmal bei einem defekten Akku oder Kurzschluss im Inneren, oder eine App (Software) die das verursacht, aber es ist wohl eher die Firmware (Absturz, Entleerung).

Eines Tages dann: das Gerät ist wieder mal aus und geht nicht an, Akku leer; ... also ans Ladegerät. Doch dann scheint auf einmal alles weg zu sein, der Einrichtungsdialog erscheint komischerweise (englisch), kein Benutzer mehr, keinerlei Daten mehr zu finden, kein WLAN mehr, und es ist scheinbar kein interner Speicherplatz mehr vorhanden. Beim Herunterfahren hängt sich das Gerät auf. Das Gerät befindet sich im Werkszustand, aber das Gerät scheint defekt/kaputt.

Eine Onlinesuche enthüllt das Firmware-Problem des Geräts:


Dienstag, 3. Juni 2014

MySQL - InnoDB vs. MyISAM vs. ARCHIVE im Vergleich

Hier ein kleiner Performance-Vergleich, was das Einlesen und Schreiben von Daten angeht (I/O).

Grundlage ist MySQL 5.6.19 und Perl 5.10.1.
Als Datenquelle dient ein Squid-Log mit 9.244.247 Zeilen (428 MB).

Perl


Als Referenz für die I/O-Performance wird die Log-Datei zuerst nur mit Perl gelesen (OPEN), die "Spalten" dabei in einen Array gepackt und der Inhalt wiederum in eine Datei geschrieben.

Das Ganze dauert auf dem verwendeten vServer 31 Sekunden (verifiziert durch drei Läufe).

MySQL


Nun wird die Datei wieder mit Perl eingelesen, statt in eine andere Datei aber in eine MySQL-Datenbank geschrieben (INSERT INTO). Danach wird die Datenbank abgefragt (SELECT) und der Inhalt wieder ausgegeben. Die Transaktionen werden mit $dbh->prepare() vorbereitet und dann mit $sth->execute() wiederholt ausgeführt.

Getestet werden die Speicher-Engines "InnoDB" und "MyISAM", unkomprimiert und komprimiert, sowie die Engine "ARCHIVE". Ziel ist die Ermittlung der erreichbaren Lese- bzw. Abfrage- und Schreibgeschwindigkeiten sowie die entstehenden Dateigrößen.

InnoDB


...

MyISAM


...

ARCHIVE


...


Montag, 2. Juni 2014

MySQL - aktuelle Version über Repository installieren

Bei RHEL (Red Hat Enterprise Linux) und damit auch CentOS (Community ENTerprise Operating System) kommt bei der Version 6.5 das Datenbankmanagementsystem (DBMS) MySQL standardmäßig in der zwar bewährten, aber ziemlich alten Version 5.1 zum Einsatz.

Diese veraltete Version nutzt standardmäßig z.B. noch die Speicher-Engine (Storage Engine) "MyISAM"; die auch schon in der Version 5.1 enthaltende Engine "InnoDB" ist dagegen transaktionssicher und gerade bei großen Datenmengen performanter als MyISAM. InnoDB ist in neueren Versionen von MySQL die Standard-Engine.

Ein weiterer Grund, warum man eine neuere Version von MySQL verwenden sollte ist, dass die Version 5.1 noch kein richtiges UTF-8 mit 4-Byte-kodierten Zeichen unterstützt. Neuere Versionen bieten dafür auch den Zeichensatz bzw. die Zeichenkodierung "utf8mb4".

MySQL über Repository in aktueller Version installieren


Man kann die aktuelle Version von MySQL direkt von MySQL.com beziehen; die "Community Edition" ist kostenlos erhältlich. Eine Anleitung für RPM-basierte Distributionen (YUM) gibt es z.B. dort, eine Anleitung für DEB-basierte Distributionen (APT) dagegen dort.

Notwendige Schritte (für frisches Aufsetzen auf CentOS 6.5):
  1. evtl. installierte ältere Version ggf. erst deinstallieren: yum remove mysql
  2. das Verzeichnis /var/lib/mysql und dessen Inhalt ggf. löschen
  3. die passende Repo.-RPM-Datei von dort herunterladen
  4. als 'root' rpm -Uvh mysql-community-release-el6-5.noarch.rpm ausführen
  5. als 'root' MySQL installieren: yum install mysql-community-server
  6. ... der Rest kann der MySQL-Datenbank - Übersicht für Anfänger entnommen werden!


Sonntag, 25. Mai 2014

MySQL Collations - nicht nur für Sortierreihenfolge!

Eine Collation (Kollation) ist in (My)SQL eine interne Sortierfolge, also eine Sortierreihenfolge (durch Textvergleich oder Binärwertvergleich) die für eine konkrete "alphabetische Sortierung" sorgt.

Doch das ist nur die halbe Wahrheit!
=> Da gibt es noch etwas ganz Wichtiges zu beachten, nämlich wie bzw. ob bestimmte Datensätze im Zusammenhang mit einem PRIMARY KEY oder UNIQUE KEY und der standardmäßigen Kollation 'latin1_swedish_ci' überhaupt gespeichert werden!

Angenommen eine Tabelle 'tbl' hat den Zeichensatz 'latin1' (Standard) und eben die Sortierfolge 'latin1_swedish_ci' (Standard; 'ci' = case-insensitive (Groß-/Kleinschreibung wird nicht beachtet)), als Primärschlüssel (eindeutig) wird ein Textfeld VARCHAR(10) verwendet.

Möchte man nun zuerst den Wert "DE" und danach "de" speichern, dann werden nicht beide Datensätze eingetragen, sondern nur einer davon! Die interne Sortierfolge hält beide Werte quasi für gleich.

Das kann natürlich auch sinnvoll sein (kumulierte Werte), kann aber eben genauso zu unerwarteten Ergebnissen führen (fehlende oder offenbar falsche Werte).

Abhilfe schafft hier z.B. die Collation 'latin1_general_ci' oder gleich 'latin1_general_cs' ('cs' = case sensitive), hier werden im obigen Beispiel beide Werte in eine Tabelle eingetragen bzw. gefunden. Eine weitere Collation wäre 'latin1_bin', diese behandelt Datenfelder nach ihren binären Werten (schneller), was aber eine unnatürliche Sortierreihenfolge zur Folge hat ('A', dann 'B' bis 'Z', und dann erst 'a', 'b', usw.). Damit deutsche Umlaute korrekt sortiert werden, wäre wiederum die Sortierfolge 'latin1_german2_ci' nötig (kein '_cs').

Beim zu bevorzugenden UTF-8-Zeichensatz (Unicode) gibt es keine (sprachabhängige) Erweiterung '_cs', nur '_ci' und '_bin'; bei diesem Multi-Byte-fähigen Zeichensatz werden im obigen Beispiel auch mit dem Suffix '_ci' beide Werte gespeichert!

Am allgemeinsten sind 'utf8_general_ci' (Standard für UTF-8; schneller) und 'utf8_unicode_ci' (etwas genauer (ß)) bzw. 'utf8mb4_unicode_ci' (erweiterter Zeichensatz); für deutsche Umlaute (Ä/ä) wäre aber wiederum 'utf8_german2_ci' sinnvoll.

Für einen Zeichensatz kann man die Sortierreihenfolge mit COLLATE aber auch in einem SELECT, also bei einer Abfrage (Query) individuell (sprachabhängig) bestimmen.

Links:


Samstag, 24. Mai 2014

Apache Webserver unter CentOS Linux - Grundlagen für Anfänger

Wer unter Linux (hier CentOS) einen Webserver aufsetzen bzw. in Betrieb nehmen möchte, der kann sich an den folgenden grundlegenden Schritten orientieren - vor allem Anfänger.

Zum Einsatz kommen soll erst einmal der gängige und allseits bekannte Webserver "Apache 2". Als Betriebssystem dient Linux, genauer gesagt CentOS (RPM-basiert). Hierbei ist zu beachten, dass die Verzeichnispfade von anderen Linux-Distributionen wie Debian abweichen können!

Apache installieren


yum install httpd

Apache einrichten/starten


chkconfig --levels 235 httpd on (httpd beim Systemstart mit starten)
/etc/init.d/httpd start (httpd gleich starten)

Und schon erscheint bei Aufruf der eigenen Adresse (sonst lokale IP) die Apache-Standardseite:


Das Verzeichnis für die Website an sich (HTML) ist bei CentOS /var/www/html, die Konfigurationsdatei ist unter /etc/httpd/conf/httpd.conf zu finden (und weitere befinden sich in /etc/httpd/conf.d/).

PHP installieren


Sollte man nun aber dynamische Webseiten mittels "PHP" erstellen und veröffentlichen wollen, dann benötigt man eben noch PHP: yum install php

Sollte man dann noch eine Datenbank verwenden wollen, dann kann man eben zu MySQL greifen.

Das Installieren weiterer PHP-Module:

yum search php (Suche)

yum install php-mysql (MySQL-Modul)
yum phpmyadmin ("phpMyAdmin" (grafische Verwaltungsoberfläche))
yum install php-mbstring (etwa für UTF-8-Kodierung (Multi-Byte-Strings))
yum install php-xcache (XCache, ein Zwischenspeicher (Performance); eher für Fortgeschrittene)

Apache-Dienst neu starten


Wichtiger Hinweis:
Sollte das Platzieren von Dateien [z.B. index.php und/oder index.htm(l)] keinen Effekt zeigen, also scheinbar nicht funktionieren und die Apache-Standardseite evtl. weiterhin erscheinen, oder aber eine erste Datenbankabfrage zeigt keine Ergebnisse, dann sollte man den Webserver erst einmal kurz neu starten!

Der letzte Schritt (auch nach Änderungen an der Konfiguration) muss also immer sein:
/etc/init.d/httpd restart

Eine gute Anleitung dafür (von A bis Z) gibt es übrigens auch bei HowtoForge.