Serendipity zu WordPress umziehen

Möchte man einen Serendipity Blog zu einem WordPress umziehen, muss man leider etwas Handarbeit in diesen Vorgang stecken. Die Ausgangssitutation besteht dabei aus einem frisch installierten WordPress, sowie dem Serendipity. In der WordPress-Datenbank werden im ersten Schritt einige Modifikationen vorgenommen:

TRUNCATE wp_posts;
TRUNCATE `wp_postmeta`;
TRUNCATE `wp_term_relationships`;
TRUNCATE `wp_term_taxonomy`;
TRUNCATE `wp_comments`;
TRUNCATE `wp_commentmeta`;
DELETE FROM wp_terms WHERE wp_terms.term_id!=1;

Anschließend wird der Serendipity Importer für WordPress benötigt:

git clone https://github.com/ShakataGaNai/s9y-to-wp

In diesem gibt es eine Datei namens „serendipity.php“ welche in den „wp-content/plugins/serendipity/“ Ordner kopiert wird. Nach der Aktivierung des Plugins findet man im WordPress-Backend unter „Werkzeuge > Daten importieren“ einen Serendipity Importer.

Der Serendipity Import

Der Serendipity Import

In den Importer werden die Verbindungsdaten der Serendipity-Datenbank eingetragen. Beim Prefix sollte bei einer Serendipity-Standardinstallation „serendipity_“ stehen. Nun kann der Import für die einzelnen Teile der Datenbank gestartet werden. Die WordPress-Datenbank benötigt im Nachgang einige Aktualisierungen:

UPDATE `wp_comments` as a SET a.`comment_post_ID`= (SELECT b.`menu_order` FROM `wp_posts` as b WHERE a.`comment_post_ID`= b.`ID`);
UPDATE `wp_term_relationships` SET `object_id`=`object_id`+9000;
UPDATE `wp_term_relationships` as a SET a.`object_id`= (SELECT b.`menu_order` FROM `wp_posts` as b WHERE a.`object_id`-9000= b.`ID`);
UPDATE `wp_posts` SET `ID`=`ID`+9000;

Die folgenden Zeilen müssen nacheinander ausgeführt werden, da sie jeweils manuell angepasst werden:

UPDATE `wp_posts` SET `ID`=`menu_order`, `guid`=CONCAT("http://example.org/?p=",`menu_order`), `menu_order`=null; -- Replace MYURL.COM with your URL
SELECT `id`+1 FROM `wp_posts` ORDER BY `id` DESC LIMIT 0,1;
ALTER TABLE `wp_posts` AUTO_INCREMENT = XXX;

Der Wert „XXX“ entspricht dabei dem Ergebnis der Abfrage (SELECT). Damit sind die Daten im WordPress gelandet und können nun nachbearbeitet (Bilder & Dateipfade) werden.

PHP JSON unter Ubuntu 13.10

Seit der neuen Ubuntu-Version Saucy Salamander (13.10) befindet sich die JSON Unterstützung für PHP nicht mehr im Standard-PHP-Paket. Aus diesem Grunde muss das ganze mittels:

apt-get install php5-json

nachinstalliert werden. Nach einem Neustart des PHP-Service (in diesem Fall der FastCGI Variante):

service php-fpm restart

kann die PHP JSON Unterstützung unter Ubuntu 13.10 genutzt werden.

elementary OS

Linux-Distributionen gibt es förmlich wie Sand am Meer. Eine Distribution, welche ein wenig hervorsticht ist dabei „elementary OS“. Wenn man auf der Webseite umschaut, wird man feststellen, das die Oberfläche etwas an Mac OS X erinnert. elementary OS konzentriert sich dabei darauf, dem Nutzer eine konsistente Oberfläche und ein entsprechendes Nutzererlebnis zu liefern.

elementary1

Das führt dazu, das es unter elementary OS im Standardumfang nur Anwendungen gibt, welche GTK+ als Toolkit nutzen. Alle Standardanwendungen nutzen somit das gleiche Toolkit, was dem Look & Feel zu gute kommt. Wer hier einen Firefox sucht, wird enttäuscht werden.

Technisch basiert elementary OS auf Ubuntu 12.04, ist allerdings im Gegensatz zu diesem nur für die Plattformen x86 und x86-64 verfügbar. Eine Portierung auf ARM Prozessoren wäre wünschenswert. Durch die Deaktivierung unnötiger Dienste, fühlt sich das ganze in der Bedienung sehr flott an. Die offizielle Seite von elementary OS ist unter http://elementaryos.org/ zu finden.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/Elementary_%28Software%29#elementary_OS

Skripte unter Linux installieren

Manchmal hat man ein Skript geschrieben welches man systemweit aufrufen möchte. Dazu muss dieses natürlich „installiert“ werden. Genaugenommen handelt es sich bei der Installation nur um eine Kopie an den richtigen Ort im System. In diesem Fall ist das der Ordner „/usr/local/bin/“. Allerdings wird für ein solche Operation nicht „cp“ genutzt. Stattdessen wird dies mittels „install“ erledigt:

sudo install skript.sh /usr/local/bin/skript.sh

Damit wird das Skript in den entsprechenden Ordner kopiert. Daneben werden die Dateirechte und Attribute angepasst. Anschließend kann das Skript von allen Nutzern systemweit genutzt werden.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Sichere Strings unter .NET

Manchmal möchte man eine Zeichenkette im Arbeitsspeicher nicht länger als nötig im Klartext vorhalten. Hierfür gibt es unter .NET/Mono die Klasse „SecureString“. Diese verschlüsselt den Klartext, so das dieser nicht ohne weiteres im Speicher zu finden ist. Leider ist die Nutzung der „SecureString“ etwas komplizierter:

SecureString secureString=new SecureString();
secureString.AppendChar('g');
secureString.AppendChar('e');
secureString.AppendChar('h');
secureString.AppendChar('e');
secureString.AppendChar('i');
secureString.AppendChar('m');

// in Klartext umwandeln
IntPtr secureStringPointer=Marshal.SecureStringToBSTR(secureString);
string klartext=Marshal.PtrToStringAuto(secureStringPointer);

Hier muss man abwägen, ob sich die Nutzung eines solches Konstruktes lohnt, oder man weiterhin normale Strings für sensible Daten nutzt.