Thomas Woelfers Baustatik Blog

Baustatik-Software und was sonst des Weges kommt

Keine Macros in C#

Vor ein paar Tagen gab es eine kurze Diskussion über Features, die man in C# gerne sehen würden. Abgesehen von Templates, die es in Form von Generics ja bald geben wird, vermisse ich Macros am meisten. Eric Gunnerson hat hier eine kurze Begründung dafür, warum es keine gibt. (Wow - Eric liest meine Kommentare! :-) )

Anschliessen kann ich mich dem aber nicht: Es gibt immer Möglichkeiten ein Tool zu mißbrauchen, und nur weil es Programmierer gibt die mit Macros verantwortungslos umgehen, bedeutet das meiner Ansicht nach nicht, das man sie aus dem Sprachumfang heraushalten sollte.

Naja - egal: Es gibt halt keine, und dabei wirds wohl auch bleiben.

Support: 20 Euro für 10 Minuten ?

Gestern ist mir eine interessante Politik eines unserer Konkurrenten im Bereich für Baustatik-Software aufgefallen. Wenn man dort ein Programm kauft ohne irgend welche weiteren Verträge abzuschliessen, und dann ein Problem oder eine Frage hat (im Fall den ich mitbekommen hatte ging es darum, das das Programm einfach nicht starten wollte),  dann kostet ein Anruf bei der Hotline 20 Euro pro 10 Minuten.

Für 12 mal telefonieren dort bekommt man bei uns schon fast einen kompletten Work&Cash Vertrag. Zugegeben: Es ist der kleinste. Doch auch damit kann man schon mit allen unseren Statikprogrammen arbeiten - nicht nur mit einem einzelnen. Der Support per eMail, Telefon und Fax ist außerdem ebenfalls im Preis enthalten. Es gibt sogar eine kostenfreie Telefonnummer, unter der man unsere Hotline erreichen kann.

(Das Hochschulen, Studenten und alle sonstigen Schüler unsere Programme völlig kostenlos und ohne Einschränkung benutzen können, habe ich ja schon öfter erwähnt. Ich reite aber trotzdem nochmals drauf rum... ;-) )

Visual Studio 2003: Search doesn't work - Vote on Bugs

[Der nächste Eintrag ist wieder auf deutsch... :-)  - übersetzung weiter unten ..]

Nothing new here: 'Search' in VS 2003 sucks big time. The ui is horrible etc. etc. - and apart from that, it doesn't even work. if there are files with multiple dots in their names ( eg: my.file.h ), 'search in entire solution' will ignore those files. 

please vote for (well, against...) this bug in ladybug.

-------

Die Suche in VS 2003 hat jede Menge Probleme, und abgesehen davon das sie einfach insgesamt Mist ist, funktioniert sie nicht mal richtig. Wenn man in der 'Entire Solution' sucht, dann werden Dateien mit mehreren Punkten im Namen einfach ignoriert.

Es gibt einen Eintrag dafür in Ladybug: Stimmabgabe hier

Das Rätsel von ClearType

Ich habe an dieser Stelle ja schon häufiger über ClearType geschrieben. Jetzt ist mir anhand der Logfiles des Blogs aufgefallen, das ich offenbar eine kleine Anlaufstelle für ClearType - Fragen geworden bin. Immer wieder gibt es Suchen danach, wie man ClearType in Anwendungen und nicht nur im Betriebssystem verwendet. Dabei ist das ganz einfach.

Als Anwender

Sie müssen gar nichts tun - außer, das Sie ClearType einschalten. Überall wo dann passende Fonts verwendet werden, wird dann auch ClearType verwendet: Ganz automatisch, und ohne weiteres zutun.

Als Entwickler

Sie müssen eigentlich auch nichts tun - außer vielleicht, total veraltete und nicht skalierbare Fonts zu verwenden. Wenn Ihre Anwendung TrueType Fonts verwendet - oder wenn Ihre Anwender einstellen können, welche Fonts verwendet werden können - dann verwendet Ihre Anwendung auch automatisch ClearType.

 

Deutsche BA: Günstige Flüge, aber schlechte Ansagen

Ich fliege ja gern mit der DBA zwischen München und Düsseldorf, nicht zuletzt weil die Flüge doch extrem günstig sind. Für 45 Euro (in einer Richtung) kann man da nicht meckern. Außerdem ist das Webinterface zum Buchen von Flügen wirklich prima, im Gegensatz zu dem der Lufthansa, in dem ich mich regelmäßig verirre - nur um dann hinterher festzustellen das der Spass ohnehin meist das doppelte bis dreifache kosten würde.

Was die Leute von der DBA aber überhaupt nicht auf die Reihe bekommen ist eine vernünftige Ankündigung von Verspätungen. Momentan sitze ich beispielsweise mal wieder auf dem Münchner Flughafen. Es ist 12:15, und die Boarding-Time wäre 11:35 gewesen. Und das ist auch genau das, was bis vor einer Minute noch angezeigt wurde.

Dann hiess es, es gäbe ein neues Gate (da bin ich jetzt) und der Flug würde sich um 25 Minuten verspäten. Wohlgemerkt - die Verspätung beträgt bereits jetzt 40 Minuten - und diese Verspätungsansage war die erste. Am Gate steht aber noch nicht einmal ein Flugzeug. Ich lass mich also mal überrraschen, wann denn der Flug nun wirklich geht.

Es wäre wirklich deutlich besser, wenn die DBA sowas klarer kommunizieren würde: Dann müsste man nicht blöd am Gate rumsitzen und hoffen, sondern könnte vielleicht auch mal was essen gehen...

Ich kann auch mit viel Verständniss dafür, das Verspätungen eben eintreten nicht verstehen, wieso die das nicht wenigsten klar bekannt geben können, statt einen im Umklaren zu lassen.

Indexer in C#, Zugriff in MC++

Manche Problemlösungen sind so einfach, das man sich stundenlang damit beschäftigen kann herauszufinden, wie sie funktionieren: Das nennt man dann wohl Betriebsblindheit.

Indexer in Managed C++ sind gut dokumentiert. Im Wesentlichen läuft es bei einem Indexer darauf hinaus, das man in einer C++ Klasse einen Zugriffsmechanismus implementieren will, der im Managed C# oder VB Code dann zum indizieren verwendet werden kann. Angenommen, man hat eine Klasse (im MC++) die ein Array aus Strings kapselt, und man möchte von C# darauf per Array-Notation (  string temp = obj[i]; ) zugreifen. Dazu definiert man den Indexer in MC++ wie folgt:

[System::Reflection::DefaultMemberAttribute(S"Item")]
public __gc class MyCollection
{
  __property String* get_Item(int index);
};

Fein, das ist einfach. (Wer auch per Array-Notation reinschreiben will, braucht eine passende get_Item Methode.)

Nun hatte ich aber genau den anderen Fall. Im Code gibts eine Polygon-Klasse (XPolygon2d) die in C# definiert ist, und die einen Indexer zur Verfügung stellt. Das Polygon setzt sich aus Punkten vom Typ XPoint2d zusammen, und so ein Punkt wird dann beim Zugriff per Indexer geliefert. Das sieht als etwa so aus:

public XPoint2d this[ int n]
{
 
get
 
{
    
return( m_Points[ n]);
  }
}

Nun gibts eine weitere Klasse im MC++ Code, die so ein Polygon übergeben bekommt und auf die Punkte darin zugreifen muss. Mein Problem: Wie zum Henker muss man das nun hinschreiben? Es hat ganz schön gedauert bis ich drauf gekommen bin, dabei ist die Lösung total einfach - man greift einfach genauso drauf zu, als würde es sich um einen Zugriff auf einen Indexer handeln, der in MC++ definiert wurde. Eigentlich völlig logisch :-)

void AddPolygon( XPolygon2d* polygon)
{
  
int iPoly=0;
   XPoint2d point = polygon->get_Item( iPoly);
}

 

Bauindustrie: Weiterhin schlechte Prognosen

Der Hauptverband der deutschen Bauindustrie sagt keine guten Zahlen für 2005 voraus. Man geht von einem Umsatzrückgang von 3.5% und 32.000 gefährdeten Arbeitsplätzen aus. Im Jahresdurchschnitt würde das Bauhauptgewerbe dann nur noch 735.000 Mitarbeiter beschäftigen. Die Anzahl der Beschäftigten hat sich in den letzten 10 Jahren damit halbiert.

Dabei sieht es nur in der Bundesrepublik so unschön aus - im Ausland boomt das Bauwesen. Das haben auch die großen Baukonzerne erkannt - einige früher, andere - wie Walter Bau - erst später. Vielleicht zu spät. Aktuelle Zahlen über die großen gab es in der aktuellen Zeit.

Zahlen aus der Bauindustrie

Hochtief

Umsatz 2003: 11.5 Mrd Euro
Auslandsanteil: 80 Prozent
Gewinn 2003: 77 Mio Euro
Mitarbeiter: 36.000

Bilfinger Berger

Umsatz 2003: 5.6 Mrd Euro
Auslandsanteil: 75 Prozent
Gewinn 2003: 50 Mio Euro
Mitarbeiter:: 49.000

Strabag Deutschland

Umsatz 2004: 3.4 Mrd Euro (geschätzt)
Auslandsanteil: 40 Prozent
Gewinn 2004: Null (geschätzt)
Mitarbeiter: 10.400

Die momentan stark unter Druck stehende Walter-Bau hat einen Auslandsanteil von 25%. Die Probleme resultieren aber weniger aus dem 'geringen' Auslandsanteil und mehr aus der schlechten Zahlungsmoral der Bauherren. Walter hat 450 Millionen Euro Aussenstände, allein 100 Millionen fordert der Konzern noch von der Deutschen Bahn.

Unterhaltung fürs Wochenende

Dieses mal gibts einen 'Multimedia' Link. (Man muss ein bisschen Geduld damit haben und außerdem eine hohes Maß an Begeisterungsfähigkeit für den Raumflug mitbringen.)

So hören sich die Radar-Echos von Huygens an, wärend die Sonde die letzten paar Kilometer zur Oberfläche des Titan zurücklegt: Radar-Echo als Soundfile (Im mp3 Format, von der ESA)

Das Blog 1.7 - noch ein paar Hinweise

Noch ein paar Tipps zu dasBlog 1.7 - lauter Dinge, die es sich zu wissen lohnt (und dann noch etwas Kleinkram... :-)

MT-Blacklist verwenden

Die MT-Blacklist, die von dasBlog verwendet wird um Spammer zu identifizieren hatte ich schon erwähnt. Nicht erwähnt hatte ich, wie man die updatet. Der ganze Sinn der Sache ist ja der, das neu auftretende Spammer in der Liste landen und dann von dasBlog erkannt werden können. Die Liste wird aber von Jay Allen verwaltet. Wie kommt sie also von dort ins SiteConfig Verzeichnis? Ganz einfach: Das geht von selbst. :-)

Jedesmal wenn dasBlog gestartet wird (und das passiert bei jedem Refresh des AppPools, also meist einmal am Tag) holt sich dasBlog eine frische Kopie der Masterdatei. Man muss also selbst nicht tätig werden. Wenn Sie sich nicht sicher sind ob und wann ihr dasBlog gestartet wird (zum Beispiel, wenn Sie den IIS nicht selbst hosten, sondern bei einem Hosting-Provider untergebracht sind, und darum keinen Zugriff auf den IIS haben) dann werfen Sie einfach mal einen Blick auf die Seite 'Events' in Ihrer Configuration. Da wird mit dem Text 'Application startet' mitprotokolliert, wenn dasBlog gestartet wurde.

Blacklist um eigene Einträge erweitern

Ganz unten im Config-Bereich gibts dazu ein Textfeld. Da kann man URLs von Referrer mit Semikolon getrennt reinschreiben und damit die Blackliste um eigene Einträge erweitern. (Dank an Scott)

Fehler beim ping an blo.gs loswerden

Wenn Sie in das 'Events' Log reingeschaut haben, dann werden Sie feststellen das das anpingen von blo.gs einen Fehler verursacht, der auf ein 'unbekanntes' Kompressionsverfahren zurückgeführt wird. Um das loszuwerden stellen Sie in der 'Web.config' das verwendete Verfahren von 'deflate' auf 'gzip' um. (Dank an pjrider)

Umständliches hochladen von Bildern

In der letzten Version konnte man ein Bild einfach lokal auswählen und hochlanden, es landete dann automatisch im Blogeintrag. Jetzt muss man erst immer durch die Bilder-Galerie, was reichlich umständlich ist - besonders, wenn man schon eine ganze Menge an Bildern hochgeladen hat. Die werden dann nämlich jedesmal für die Anzeige wieder runtergeladen (oder zumindest auf ihre 'Freshness' überprüft). Außerdem klappt es nicht neue Ordner anzulegen um wenigsten neue Bilder in einen anderen Ordner hochzuladen.

Da gibts zwei gute Nachrichten: Omar will die alte Funktion (zusätzlich) wieder einbauen, und es macht den Eindruck als würde das nicht lange dauern. Was die Ordner angeht: Das kann man leicht selbst ändern. Dazu muss man nur den Aufruf der FreeTextBox  (im ftb - Verzeichnis) ändern. Der hat eine reihe an Parametern, und zwei davon sind für anlegen und löschen neuer Ordner zuständig. Beide stehen per Default auf 'false'. Setzt man die auf 'true', gehts wieder.

Hochladen von Attachments

In Version 1.6 gab eine eine Eingabezeile mit der man Attachments (also normale Dateien) hochladen konnte. Die gibts nicht mehr. Statt dessen gibt es nun eine Zeile mit dem Titel 'Enclosure'. Bei Enclosures handelt es sich um RSS2 Element, das im Wesentlichen genau die gleiche Aufgabe hat wie die 'alten' Attachments. Momentan geht nur ein Enclosure pro Eintrag :-( - dafür muss man den nicht mehr separat hochladen. Man trägt die Datei einfach in der Textzeile ein, und beim veröffentlichen hängt die dann automatisch unter dem Eintrag.

Von Haus aus steht das Ding aber an einer Stelle, die meiner Ansicht nach etwas merkwürdig ist, nämlich unter den Trackbacks. Wenn man das Ding direkt unter dem Eintrags-Text haben will, muss man das 'itemTemplate' ändern und das <% enclosure() %> Makro entsprechend verschieben. Dann siehts so aus wie hier.

Leider gibts da einen Bug: Man wird ein einmal hochgeladenes Attachment nicht mehr los. Ist bereits im Tracker eingetragen. Will man das Attachment doch loswerden gibts momentan nur eine Möglichkeit: Den ganzen Blog-Eintrag löschen (vorher besser den Inhalt kopieren...) und dann neu und ohne Enclosure wieder anlegen.

Probleme mit dem MailTo Anchor

Roland Schumacher hat mich auf ein weiteres Problem aufmerksam gemacht: Wenn der Name des Blogs einen Hochhaken enthält (z.b.: Geniali's Blog), dann klappt der Link nicht. Klickt man drauf bekommt man einen JavaScript Fehler. Das kann man auf zwei Arten loswerden:

  1. Man schaltet die Option 'obfuscate email' aus. Dann wird kein JavaScript mehr für den Link verwendet. (Das habe ich nicht ausprobiert, sollte aber gehen.)
  2. Man kümmert sich drum das der Hochhaken (') vernünftige escaped wird. Statt dem ' muss also ein \' beim rendern der Seite ausgeworfen werden. Dazu ändert man die Quellcode-Zeile 371 von Macros.cs wie folgt:
    messageSubject = messageSubject.Replace("'", @"\'");

Ich habe das bereits als Bug eingetragen. Leider habe ich momentan keine Zeit dafür, sonst würde ich das selbst beseitigen.

Zweimal TimeWise

Ist mir gerade zufällig aufgefallen: Neben unserem Abrechnungsverfahren namens TimeWise gibts noch ein anderes Produkt mit dem gleichen Namen...

Wenn Sie nach Schönheitsprodukten suchen - dann meinen Sie 'Mary Kays' TimeWise - und das finden Sie hier.

Wenn Sie hingegen die Abrechnungsmethode meinen, mit der Sie nur die reine Arbeitszeit mit Ihrer Statiksoftware bezahlen müssen - dann sind Sie bei uns richtig: Statiksoftware von D.I.E. mit dem TimeWise Verfahren - Statikprogramme ab einem Euro. (Das Verfahren heisst eigentlich Work&Cash - TimeWise ist nur der Name eines Programms das damit zu tun hat....)

Bild2.png

dasBlog: Update von 1.6 auf 1.7 - So gehts

Seit kurzem ist Version 1.7 von dasBlog verfügbar. Leider habe ich nicht viel an Informationen zum Thema Update von 1.6 auf 1.7 gefunden - und das was ich gefunden habe ist ein bisschen mißverständlich. Darum: Hier ein paar Hinweise warum man Updaten sollte, und wie man das tut.

Warum Updaten?

Version 1.6 tut eigentlich ganz gut - warum sich also die Arbeit machen? Eine ausführliche Antwort gibts in Omars Wiki, denn da liegt die Version History mit allen Änderungen und Neuerungen in 1.7. Abgesehen von vielen kleinen Verbesserungen und Bugfixes gibts 2 wirklich gute Gründe fürs Update:

  1. Anti-Spam Maßnahmen
  2. Bessere Statistiken

Zunächst die Statistiken: Die schlechte Nachricht dabei ist die, das man die alten Statistiken durchs Upgrade verliert. War zumindest bei mit der Fall. Vielleicht hab ich was falsch gemacht - aber seis drum, ich für meinen Fall muss auch nicht unbedingt wissen, welche Referrer ich vor 2 Monaten hatte. Meistens reichts mir eigentlich das von Gestern zu wissen. :-)

<update>Man verliert die alten Statistiken NICHT. Ich war nur etwas, hm, naja... sagen wir mal: bloed. Alles was man tun muss: Man löscht den Inhalt des 'log' Verzeichnisses einfach nicht (oder kopiert nach dem Update den Inhalt des 'log' Verzeichnisses aus dem Backup ins 'log' Verzeichnis der 'neuen' Installation.</update>

Die gute Nachricht: Die Statistik-Seiten haben jetzt ein Control mit dem man den Tag einstellen kann, für den man die Statistik sehen will. Mit anderen Worten: Man kann nun tatsächlich auch die Statistik von 'Gestern' ansehen. Außerdem sind die Statistiken besser sortiert, so gibt es beispielsweise eine separate Liste für Search-Engine Referrals in denen man den Engine und die Suchbegriffe ganz gut sehen kann. ( Vieeeel besser als früher. )

Anti-Spam: 1.7 hat drei Maßnahmen gegen Spam eingebaut. (Achtung: Die müssen nach der Installation teilweise über die 'Configuration' Page eingeschaltet werden. Von Haus aus sind die Funktionen ausgeschaltet. )

  • CAPTCHA
  • Referral Blacklist
  • Movable Type Blacklist

Bei Captcha handelt es sich um Codes die jede Person eingeben muss, die einen Kommentar hinterlassen will. Es handelt sich immer nur um ein paar Zeichen: Es wird also niemand wirklich abgeschreckt. Aber, diese Zeichen liegen als Bild vor, das Bild wir 'zufallsbasiert' erzeugt - und damit müssen die Robots der Spammer im großen und ganzen draußen bleiben. Mehr Infos dazu bei Scott.

Die Referral Blacklist und die Movable Type Blacklist sind im Wesentlichen Mechanismen, die dafür sorgen das die Spammer der Marke 'more-credit-4u.com' etc. pp. nicht länger in den Referrals oder in Kommentaren auftauchen. Letzlich handelt es sich um eine Liste von IP-Adressen und um eine Liste von URLs von denen eben keine Post mehr angenommen werden. Die Movable Type Liste wird hier  verwaltet und kann nach der Installation im SiteConfig Ordner unter dem Namen 'blacklist.txt' gefunden werden. (M.a.w.: Man kann das File auch gelegentlich von Hand updaten, falls neue Spammer hinzukommen.)

So läuft das Update

Zunächst braucht man zwei Files. Die gibts bei SourceForge. Man braucht nur die Dateien 'dasBlog_1.7_Web_Files.zip' und 'dasBlog_Upgrader.zip'. (Die dritte Datei ist der Quellcode, für alle die sich dafür interessieren. Für den Betrieb des Blogs braucht man den nicht.)

Die Files lädt man runter und packt sie aus. Man hat dann zwei Ordner mit den Namen 'dsBlog 1.7 Web Files' und 'dasBlog Upgrader'. Damit ist man eigentlich soweit das man loslegen kann, aber sowohl Scott als Omar drängen mehrfach darauf, man möge vorher auf jeden Fall ein Backup machen. Ich hatte keine Probleme, aber die beiden werden wissen weshalb sie das empfehlen: Also machen Sie in drei Gottes Namen eines.

Fertig? Gut!

Im Ordner 'dasBlog Upgrader' gibts eine Datei die den Upgrade-Vorgang erläutert: 'dasBlog 1.7 Upgrade Instructions.mht'. Man kann das Ding mit dem Internet Explorer ansehen; allerdings ist der Inhalt teilweise etwas unverständlich wenn nicht sogar irreführend... :-) - außerdem fehlen ein paar Hinweise. Das folgende muss man tun:

  1. Das Upgrade-Programm (Ordner: dasBlog Upgrade, Name: dasBlogUpgrader.exe) muss einmal gestartet werden. Es handelt sich um ein Kommandozeilen-Programm, also startet man es auch am besten von der Kommandozeile. Dabei übergibt man einen Parameter, und zwar den Pfad zum 'Content' Verzeichnis des eigenen Blogs.
    Also etwa:  dasBlogUpgrader "c:\Inetpub\Sites\MeinBlog\content"
  2. Das Upgrade-Programm fragt einen vier Dinge: Am besten beantworten Sie einfach alle mit 'y' (und return.) Im Zuge des Programmlaufs werden ein paar Dateien 'repariert' (die von einigen dasBlog Vorgängerversionen defekt geschrieben worden waren) und außerdem entfernt der Upgrader auch gleich noch Kommentar-Spam aus den Kommentaren, sofern er welchen findet.
  3. Wichtig: Wenn das Programm durchgelaufen ist hört es nicht von selbst auf. Sie kommen NICHT auf die Kommandozeile zurück. Statt dessen gibt das Programm eine Meldung aus, in der es Ihnen mitteilt das es nun fertig ist und eine Log-Datei geschrieben hat. Dann wartet es auf ein 'Return'. Erst dann ist Schluß... (Ich habe heute sicherlich 5 Minuten gewartet bis ich auf die Idee gekommen bin mal 'Return' zu drücken... ;-)
  4. Jetzt kopieren Sie den Inhalte Ihres alten (soeben bearbeiteten) 'Content' Folders in den Content Order des Verzeichnisses 'dasBlog 1.7 Web Files'. Dabei kopieren Sie den Ordner 'Backup', der sich im Content-Ordner befindet, NICHT. Den Ordner 'binary' kopieren Sie hingegen sehr wohl. (Da sind nämlich zum Beispiel die Bilder drin, die Sie irgendwann mal in einem Blog verwendet haben.)
  5. Jetzt kopieren Sie die Dateien 'siteSecurity.config und 'site.config' aus dem alten 'SiteConfig' Ordner in den SiteConfig Ordner von 'dasBlog 1.7 Web Files'.
  6. So Sie 'eigene' Templates haben, müssen die auch kopiert werden. (Ich habe keine, darum lesen Sie den notwendigen Vorgang besser in der '.mht Datei nach.)
  7. Jetzt löschen Sie den kompletten Inhalt Ihres alten Blog-Ordners - aber mit ein paar Ausnahmen: Die Ordner 'content', 'logs' und 'SiteConfig' löschen Sie NICHT. Allerdings sehr wohl deren Inhalt. Sie haben danach als nur noch einen leeren Ordner der drei leere Ordner enthält. (Sinn der Sache ist der, das Sie die Security-Settings für diese drei Ordner nicht verlieren. Wenn Sie die Ordnder lieber löschen, dann müssen Sie später Read/Write Permissions an {MACHINE_NAME}/ASP und NETWORK_SERVICE vergeben.)
    Wenn dabei irgendwas nicht klappt, dann merken Sie das daran, dass Sie keine Konfigurationsänderungen speichern oder neue Posts veröffentichen können... Dann einfach sicherstellen, das die Rechte richtig vergeben sind. (Hinweis: Die Rechtevergabe ist unter verschiedenen Systemen ein bisschen anders. Was genau getan werden muss steht in der Datei 'setuperror.html' in 'SiteConfig')
  8. Jetzt kopieren Sie den kompletten Inhalt von 'dasblog 1.7 Web Files' zurück in Ihren eigentlichen Blog-Ordner.
  9. Das wars im Prinzip: Es sollte nun alles gehen.... (das .mht File hört an dieser Stelle auch auf) AAAAAber....
  10. Sie müssen nun noch folgendes machen: Kopieren Sie das 'navigatorLinks.xml' File aus Ihrem SiteConfig-Order im Backup in den neuen SiteConfig Ordner. Wenn Sie das nicht tun, dann sind Ihre Navigations-Links verschwunden.
  11. Außerdem kopieren Sie bei der Gelegenheit auch das OPML-File ('blogroll.opml') aus dem Backup in den neuen SiteConfig Ordner. Wenn Sie das nicht tun, dann ist Ihre 'BlogRoll' weg und durch den Default (Clemens, etc. pp.) ersetzt.
  12. Ist das erledigt, gehen Sie in die Konfigurationseinstellungen und scrollen Sie nach ganz unten: Da sind die Anti SPAM Optionen die Sie noch einschalten (sollten).

Das wars - zumindest bei mir - wirklich.