Scheiß Encoding

Nachdem ich heute wiedereinmal fluchend vor serialisierten UTF-8 werten saß, hier mal meine Heutigen Erkenntnisse zum Thema.

UTF-8 sollte einfach immer und überall im Web Standard sein und wer heutzutage noch irgendwas dagegen hat soll mir einen vernünftigen Grund liefern.

Drupal speichert Daten gerne Serialisiert. Also lese ich diese aus und lasse die PHP Funktion unserialize darüber laufen. Problem sobald [ßöäü] drin ist klappte es nicht mehr.

Okay also ein Encoding-Problem. Google hilft nicht wirklich weiter. Empfehlungen welche ich gefunden habe waren folgende.

  • base_64_encode – bevor man in die DB schreibt. [1]
    • klappt nicht, da ich in die Drupal Save nicht eingreifen möchte.
  • irgendwelche magischen preg_replace zum nachzählen der Serialisierten Strings [2]
    • Will ich auch nicht machen, nicht mehr wartbar und außerdem kann ich dann nie sicher sein das die Daten in der Datenbank korrekt sind.

Ergebnis war das ich analysiert habe wie (also mit welchem Encoding) Drupal auf die Datenbank zugreift. Ergebnis hier war „natürlich“ UTF-8.

Nun mein Datenlese-Tool greift per mysqli ohne genau definiertes Encoding darauf zu. Somit holt sich mein Tool die Daten in ISO-irgendwas.

Damit hat mein eingelesener Beispiel String: „Scheiß Encoding“ eine länge von 15. Nun steht aber in der Datenbank der Serialisierte Wert: s:16:"Scheiß Encoding"; dieser Umstand bringt unserialize dazu mit E_NOTICE abzustürzen und einfach nur FALSE zu liefern.

Datenbankverbindung via mysqli::set_charset('utf8') auf UTF-8 gestellt und magic, schon funktioniert alles wunderbar.

[1] http://blog.emeidi.com/2012/07/16/phps-serialize-und-unserialize-funktion-mit-unicode-problemen
[2] http://www.php.net/manual/en/function.unserialize.php#107886

Uberspace – So wie Webhosting sein sollte

Im Moment bin ich ja bei „all-inkl.com“ aber Parallel auch dabei so viel wie möglich stück für stück auf Uberspace zu katapultieren bzw. auch am überlegen mit einem Root Server einfach alles selber zu machen.

Warum Uberspace? Weil es einfach funktioniert. Top Ausstattung zum top Preis. Preis/Leistungstechnisch nicht zu überbieten, außerdem immer aktuelle Software (kein phpmyadmin 3.5.8.2 wie bei all-inkl.com). Egal bei welchem Problemchen reagiert der Twitter Support instant. Einfach toll. So wie Webhosting heute sein sollte (und das überall). Nächster Vorteil ist die Shell. Kein Komisches meist funktionierendes Webinterface zur Verwaltung sondern einfach Bash. Ich mag das und will es vor allen dingen dabei immer mehr lernen.

Das beste bei dem ganzen ist, man lernt Software kennen, kann ausprobieren und testen. Es ist einfach schon alles da und lauffähig. Kaputt konfigurieren kann man es trotzdem immer noch. 😉

Im Moment liegt dort meine kleine ownCloud wegen `HTTPS` was hier (all-inkl) nur über Proxy funktionieren würde. Außerdem läuft Piwik seit heute auf einem Uberspace was sich dadurch bemerkbar gemacht hat das ich Piwik endlich Updaten konnte. Denn mein Webserver hier bei all-inkl hat PHP 5.2.12 im Einsatz, irgendwelche Fragen?

inwx als Domain Verwaltung und Uberspace (oder doch einen eigenen RootSrv?) als Webhosting ist im Moment mein komplett angestrebtes Ziel. Das wird aber einige Zeit dauern da hier doch mittlerweile einige Strukturen gewachsen sind die es umzuziehen gilt.

Das interessanteste & meiner Ansicht nach großartige an Uberspace ist der Datenschutz. Datenschutz durch Daten nicht Erfassung. Einfach absoluter Traum.

Bei Uberspace.de nehmen wir nicht nur den Datenschutz, sondern zuvorderst auch die Datensparsamkeit sehr ernst. Wir haben uns dazu entschieden, bei der Einrichtung eines Uberspaces keinerlei persönliche Daten zu erheben, und zwar aus einem einfachen Grund: Wir brauchen sie nicht. Damit erübrigt sich jede Grundlage für eine Speicherung.

Was wohl am längsten dauern wird ist die Kündigungsfrist bei meinem jetzigen Anbieter. 😀 (Bei Uberspace übrigens Monatlich möglich…)

Back Online

Vor zwei Tagen hatte ich einen Voll-Ausfall aller meiner Domains (welche Content anbieten).

All-Inkl.com
All-Inkl.com

Der Grund war schnell gefunden, mein Webpaket bei all-inkl.com (Privat-Plus) hat keine feste IP-Adresse, daher sollte man auch nicht auf diese sondern auf eine Domain („benutzername.kasserver.com“) linken. Ich hatte dies nicht so.

InterNetworX
InterNetworX

Meine Domains habe ich aus Kostengründen bei inwx. Daher hatte ich die dortigen Nameserver genutzt. Und zwar einfach so das ich die „nicht feste IP-Adresse“ in den DNS A-Record bei inwx eingetragen habe. Hat alles funktioniert bis vorgestern. Da nämlich hat mein Webspace eine neue IP bekommen und schon „offline“. Alles. Restlos.

Schnelles Update wäre ein A-Record Update bei inwx gewesen, wollte ich aber nicht da ich nicht weiß wann die nächste IP-Adressen Änderung auf mich zu kommt. Also gegooglet, wie macht man das eigentlich richtig!?

Die ersten Ergebnisse haben gleich mal empfohlen das genauso zu machen wie ich es hatte, was aber meiner Erfahrung nach nun nicht mehr stabil funktioniert.

Nächster Versuch war die Nameserver von All-Inkl einfach in die Nameserver Einstellungen bei inwx einzutragen, brachte aber leider nicht viel. Nach weiteren Nachforschungen hat sich dann ergeben das ich die Nameserver „natürlich“ direkt bei der Domain eintragen muss.

So eingetragen und gewartet, mittlerweile (nach knappen 12 Stunden downtime) ist alles wieder online erreichbar. Diesmal wohl für quasi immer. All-Inkl zickt zwar bei deren DNS Einstellungen immer noch ein bisschen aber das bekomme ich bestimmt auch die Tage wieder hin.

Internet Explorer – Absturz!

Ich habe da mal ein kurzes HTML/CSS was ich euch nicht vorenthalten möchte.

<html>
  <head>
    <style type="text/css">
      #a {
        margin:0 10px 10px;
      }
      #b {
        width:100%;
      }
    </style>
    <title>IE Crasher</title>
  </head>
  <body>
    <table>
      <tr>
        <td>
          <div id="a">
            <form id="b">
            <input type="text" name="test"/>
          </div>
        </td>
        <td width="1"></td>
      </tr>
    </table>
  </body>
</html>
 

Und wie im Title des HTMLs schon steht bringt diese Seite jeden aktuellen (Stand 17.10.2012 – Tested only in IE9) Internet Explorer zum Absturz, ganz ohne Javascript o.ä. Magie. Einfach nur noch witzig. Daher nutzt einen Browser und nicht den Internet Explorer. (Leider) immer wieder erwähnenswert.

Testen könnt ihr das gerne hier: http://dev.sgr.cc/ie.html

meine HTC HD2

Also, ja meine. Ich hab da zwei.

Das erste ist damals beim Versuch andere Software aufzuspielen gleich unbrauchbar geworden. Das zweite ist jetzt kurz (halbes Jahr 😉 ) nach Ablauf der theoretischen Garantie von 2 Jahren an einem Hardware defekt quasi gestorben.

Da mein erstes aber noch immer Hardware Technisch einwandfrei sein sollte, probiere ich jetzt mal den Dienst von gsm-technix aus. (Update Link)

Warum einen Dienst in Anspruch nehmen?
Ich bin zwar selbst sehr Technik affine aber wenn ich keine Verbindung zum PC mehr bekomme sind mir die Hände dann doch schneller gebunden als normalerweise. Leider.

Eigentlich glaube ich ja mal gar nicht daran aber dann ist mir folgendes Youtube Video gezeigt worden:

Okay sieht immer noch nicht so vertrauenserweckend aus aber hey, einen Versuch ist es Wert. Für 20,– Euro (nur noch) 10,– € mit dem Versprechen das Geld zurück zu bekommen wenn es nicht klappt… Was will ich mehr?

Also das Ergebnis bekommt ihr sobald ich es habe.

Hier noch etwas zum Thema: htcinside.de

[Update @ 18.10.2012 – 16:17]

Heute ist das Paket bei gsm-technix.de angekommen laut DHL. Promt kam auch die erste Bestellbestätigung von denen. Mit Vermerk „Ihre Bestellung wird im Moment bearbeitet“. Super. Mal schauen was noch so per Mail heute eintrudelt.

[Update @ 18.10.2012 – 21:16]

Jetzt wurde mein HD2 Repariert. Hat geklappt. Sieht echt cool aus. [Facebook] Laut Bestätigungs-E-Mail geht das ding Heute [19.10.] in den Versand. Mal schauen ob das am Wochenende schon ankommt.

Erfolgreiche Bootloader Reparatur
Einfach nur noch geil. Das Teil läuft wieder.

** HTC HD2 nach Bootloader Reparatur aus 86441 – Zusmarshausen / Germany ** (OK)

Open serial port…OK
Connecting to the RIFF Box…OK
Firmware Version: 1.34, JTAG Manager Version: 1.45
Selected Resurrector: [HTC HD2 (Leo) V1.00]

Connecting to the dead body…OK
Detected dead body ID: 0x202400E1 – CORRECT!
Set I/O Voltage reads as 2.59V, TCK Frequency is RTCK
Adaptive Clocking RTCK Sampling is: [Sample at 6 MHz]

Resurrection sequence started.
Establish communication with the phone…OK
Initializing internal hardware configuration…OK
Uploading resurrector data into memory…OK
Starting communication with resurrector…OK

Detected an Initialized FLASH1 Chip, ID: 0x00EC/0x55BC (512MB)
Flashing the dead body…OK
Resurrection complete!Reparatur Log von GSM-TechNiX

Müsste dann so am Samstag ankommen.. (DHL) Wenn ich Glück habe, ansonsten nächste Woche, mal schauen.

Augsburg – Bitte ins Netz!

Pfaffenhofen macht es schon. Andere Gemeinden und Städte in Bayern sollen (oder müssen) folgen!

Die bayerischen Piraten haben heute eine Aktion gestartet und alle ihre Mitglieder gebeten, ihrem Bürgermeister einen Brief zu schicken. Darin die Bitte, einen Antrag an die eigene Gemeinde bzw. Stadt zu stellen, öffentliche Sitzungen künftig aufzuzeichnen und ins Netz zu stellen (oder gleich zu streamen).

Da auch Interessierte, die nicht Mitglied in der Piratenpartei sind, die einfache Möglichkeit haben, ein solches Schreiben zu verschicken, gibt es ein Online-Tool, womit das Schreiben für jede Adresse in Bayern erzeugt werden kann. Der Aufruf also an alle Bürger: mitmachen, eine Briefmarke investieren und den Druck auf die Kommunalparlamente erhöhen!

Um auch in Augsburg etwas voranzubringen, habe ich meinen Brief gleich schon mal ausgedruckt, unterschrieben und bringe Ihn morgen früh zur Post. Mal sehen, ob der OB Gribl reagiert.

(via vinzv [CC BY-SA 3.0])