- Ein weiterer Brief der „personifizierten Wissenschaft“, diesmal an die Astrologie – und eine Antwort.
- Achtung, iPad-Content! Witze wurden ja schon genug darüber gemacht – eine Sammlung von Bildern und Videos inkl. Hitlers Meinung gibt’s bei Gilly..
- Wer braucht schon geräumige Garagen? Hauptsache, das Auto hat so gerade eben Platz… (via Gilly)
Nichts drin!
Aus aktuellem Anlass – dem heutigen Höhepunkt der 1023-Kampagne in Großbritannien – wiederhole ich hier diesen homöopathischen Cartoon von Luke Surl (CC-by-nc-sa-Lizenz) vom letzten November:
Übersetzung:
Der homöopathische Webcomic
1.000.000 mal mit leeren Pixeln verdünnt, um den Spaß zu vergrößern
Somit ist die Comic-Form anscheinend die einzige, in der Homöopathie wirklich funktioniert. (Ihr habt doch sicher zumindest ein bisschen geschmunzelt, oder?)
Häufung
Unter den Kleinanzeigen finden sich ja immer wieder esoterische Angebote, so auch in den hiesigen Anzeigenblättern, aus denen ich schon ab und zu berichtet habe. In dieser Woche gibt’s in einem allerdings eine Häufung, wie sie mir noch nie aufgefallen ist, seit ich auf diese Anzeigen achte: mehr als ein Drittel der 35 Anzeigen im Abschnitt „Verschiedenes“ sind von Esoterikern, teilweise von altbekannten, mehr oder weniger regelmäßig inserierenden, teilweise von neuen (oder selten inserierenden, die mir bisher entgangen sind).
Die erste Zeile ist in dieser Zeitung generell fettgedruckt – ich habe dies hier so wiedergegeben, aber auf Zeilenumbrüche im restlichen Text verzichtet. Namen und Telefonnummern wurden auch entfernt, die Webadressen, auf die ich näher eingehe, aber belassen. Das erste Inserat schreit1 gleich los:
WAS ERWARTET MICH 2010?
Liebevolles u. kompet. Kartenlegen, gerne auch am Tel., langj. Erfahr.
Ach, mich erwartet 2010 also das Kartenlegen? Na höchstens in dieser Form…
Auch eine andere Anbieterin schreit:
INGOLSTADT’S MEDIUM S[…]
bekannt aus PRO 7 Hellsehen, Kartenlegen, Engel- & Jenseitskontakt, Geistheilung u.v.m.
Na bei der Zielgruppe mag der Verweis auf ProSieben noch ziehen (und an dem falschen Apostroph wird die sich auch nicht stören). Würde mich mal interessieren, welche Sendung gemeint ist – Galileo? Talk, Talk, Talk? Werbung? Direkt darunter gab’s eine zweite Anzeige derselben Anbieterin mit der Überschrift „ENERGIEREINIGUNG“, auf die ich in einem separaten Beitrag noch eingehen werde, da es hier sonst zu lang würde.
Manche fassen sich kurz und belegen nur eine oder zwei Zeilen mit etwas Text und der Nummer:
Biete Einzelchanneling und Heil-
sitzungen
Kartenlegen sofort per Telefon
Seriöses Kartenleg.
Kartenlegen, Hellsehen, Engelkontakte
mediale Beratung -spirituelle Therapie
Kartenlegen
Seriöse, erfahrene Hellseherin legt Ihre
Karten für 25,- €
Ob das eigentlich einen Vorteil bei der Anzahl der Anrufer bietet, „seriös“ dazuzuschreiben? Oder „liebevoll“ wie beim ersten? Oder den Festpreis?
Diese beiden kennen wir schon von früher – bei ersterer hatte einmal die Telefonnummer gefehlt…:
Wollen auch Sie heilen lernen?
Biete Reiki-Einweihungen in alle Grade
Ich blicke für Sie in die Zukunft
Wahrsagen, Kartenlegen, Kaffeesatz u. Handlesen, günstig, tägl. auch Woch.-Ende
Glaubt tatsächlich noch jemand ans Kaffeesatzlesen?
Worum handelt es sich wohl bei diesem?
Gestresst, überfordert, v. Sorgen u.
Ängsten geplagt? www.praxis-wenger.de
Auf den ersten Blick nicht zwangsweise ein Teil dieser Aufzählung; die angegebene Website nennt dann eine „Praxis für Beratung & Coaching“, die sich u.a. auch an Schüler wendet und etwas namens „ROMPC®“ verwendet. Das ist nun kein ganzer Computer in einem nur lesbaren Speicher, wie man meinen könnte, sondern stehe für „Relationship-oriented Meridian-based Psychotherapy, Counselling and Coaching“. Nichts gegen Psychotherapie & Co., aber das auf realitätsfernen „Meridianpunkten“ zu basieren, etwa einem „Milzmeridian“ unter dem Arm bei mangelndem Selbstvertrauen, wie die verlinkte Webseite des Erfinders zeigt? Passt also hier hinein. Wenigstens ist die Kleidung auf dem erklärenden Bild dort nicht allzu, ähm, blockierend.^^
Na und dann gibt’s noch diesen:
Abhängig geworden! Mit Kartenlegen,
Magiearbeiten u.ä, sie können das Leben nicht mehr Genießen!
Hilfe durch Seelenreinigung in Form therapeutischer Beratung! www.Lebensberatung-Heinrich.de, ein Weg zum Glücklichen Leben! Mo.-Fr 18-21 Uhr, Sa. 9-14 Uhr
Und dieser Feierabend-„Lebensberater“ will, wie er auf seiner von Rechtschreibfehlern nur so strotzenden Site schreibt, den Leuten zeigen, wie sie ohne Esoterik und Magie auskommen und glücklich sein können – und dann beruft er sich vor allem auf Spiritualität, die er eher irgendwie göttlich denn esoterisch zu begründen versucht, redet u.a. von „spirituellem Aufstieg“, einem „allumfassenden göttlichen Geist“ und diesem2:
Im Grunde ist alles Geist: Der göttliche Geist, der der Ursprung ist und aus dem alles Sein hervorging. Auch Materie ist letzten Endes nichts anderes als verdichteter Geist.
Und wir selbst sind geistige Wesen – aus demselben Urstoff wie der göttliche Geist und damit ein Teil von ihm. Dieser Geist bedient sich eines materiellen Körpers, um Erfahrungen zu machen in der materiellen Welt. Denn das ist die materielle Welt: Ein Ort, wo wir Geistwesen Erfahrungen sammeln können.
Na wow! Ein Spiritualitätsesoteriker, der gegen Esoterik schreibt und doch denselben wässrigen Wein in anderen Flaschen anbietet – und das sei seine „Lebensaufgabe“:
Die Menschen Seelen die gerettet werden wollen von der heutigen Grausamen Welt zu befreien! Denn eins ist sicher, Gott allein schafft es nicht mehr den Menschen zu helfen und jeder wird in Zukunft auf sich allein gestellt sein!
[…]
Daher bin ich kein Prophet oder Wahrsager auch kein Engel der sich hoch lobt!
Ich kämpfe allein gegen die Gewalt und das Böse auf Erden das der Mensch entwickelt hat! Ich bin nur ein einfacher Mensch der mit seiner Starken Kraft und dem Ergeiz die Welt verändern möchte und wenn es meinen Letzten Atem koste!
Wie war das noch mal mit dem allmächtigen Gott? Anscheinend weiß es dieser einzelkämpfende Nicht-Prophet besser…
Dazu kommen zwei kurze Seiten über Kartenlegen und Tarot, wo man nicht klar sieht, ob er das generell kritisiert oder nur die modernen Auswüchse im Esoterikbusiness; und die „empfohlenen Seiten“ bestehen neben dem Webhoster aus zwei Esoterik-Werbebanner-Linklisten?? Auch wenn er dort auch seine Zielgruppe „abholen“ können dürfte – insgesamt scheint mir sein ganzes Angebot für seine potentiellen Kunden bestenfalls ein „von der Traufe in den Regen“ zu sein denn ein sinnvolles Ende des nassen Niederschlags, um bei dieser Analogie zu bleiben.
Aber Selbst- und Weltbild bei Esoterikern sind ja gerne, äh, etwas eigensinnig…
Fotos: e-pyton und Stas Perov – Fotolia.com
Rock’n’Picture 16: Schau, sie spielen Krieg
Runde 16 in diesem Ein-Bild-zu-einem-Rock-Song-Projekt – und wo Juli schon mit Hämatom (nur der Band, hoffe ich
) unterwegs ist, geht’s diesmal auch um einen Song von denen: „Schau, sie spielen Krieg“
Ich hätte ja einfach ein Foto vom Manowar-Konzert nehmen können, denn das nordisch-heroische Getue und Getexte von denen passt ja auch zum Kriegsspielthema – aber ich hab mir dann doch ein Lego-Wikingerschiff organisiert und Manowar nur in Form eines T-Shirts (ungebügelt, wie man sieht) mit Wikingerschiff-in-Flammen-Motiv in den Hintergrund verbannt:
Und dass ich mich dabei auf den Titel selbst beziehe, ohne spezielle Zeilen herauszugreifen, dürfte klar sein…
Kommentar-Anzahl anzeigen (ohne Plugin)
Wie meine Kommentatoren wissen, zeige ich bei jedem Kommentar an, wie viele Kommentare dieser Kommentator hier bisher geschrieben hat (genauer gesagt: wie viele unter demselben Namen abgegeben wurden; mehr zu dieser Unterscheidung später). Über die Details und die Neuerungen Ende letzten Jahres wollte ich schon länger mal schreiben, zumal auch manche andere davon profitieren könnten…
Ursprünglich geschah dies – natürlich ohne extra Plugin (und ohne Abacus
) – mit einer einfachen Datenbankabfrage, die in der Kommentarausgabe aufgerufen wird:1
$c_count = (int) $wpdb->get_var(
"SELECT COUNT(*) AS comments
FROM $wpdb->comments
WHERE comment_author='".esc_sql($comment->comment_author)."'
AND comment_type=''
AND comment_approved='1'");
(Hinweis: esc_sql ab WP 3.6; zuvor war’s $wpdb->escape)
Das Problem dabei: eine Datenbankabfrage pro Kommentar. Das ist kein so großes Problem, wenn es wenige Kommentare zum Beitrag oder insgesamt wenige Kommentare gibt. Aber je mehr Kommentare, je mehr verschiedene Kommentatoren und je seltenere Kommentatoren es gibt, umso mehr hat der Datenbankserver zu ackern und umso weniger kann ein Query-Cache – den wohl jeder MySQL-Server hat – oder ein DB-Cache-Plugin ausrichten. Und wenn der Beitrag zwar öfters, aber nicht ständig aufgerufen wird, fallen die Anfragen oder der Beitrag selbst auch immer wieder aus dem Cache raus.
Wenn ein Blog schon einige tausend Kommentare hat, ist diese Abfrage (gerade bei Shared Hosting) recht „teuer“ – ich hatte damals bei Tests Zeiten von bis zu 300 ms pro Anfrage (was ich in aktuellen Tests aber nicht mehr reproduzieren konnte, da waren’s nur ca. 30; keine Ahnung, was sich da geändert hat), was sich bei einem von vielen Leuten vielkommentierten Beitrag so darstellen kann, dass man sehen konnte, wie die Kommentare nach und nach „hingeblättert“ wurden…
Deswegen hab ich mir – nach einem kurzen Test mit einem simplen internen Cache, der sicher noch etwas schneller als eine Anfrage an den MySQL-DB-Cache ist – eine Lösung gebastelt, bei der alle Kommentaranzahlen für den jeweiligen Beitrag auf einmal eingelesen werden, was meinen Tests zufolge nicht wesentlich teurer ist als eine einzelne Abfrage der oben genannten Art:
$ag_number_of_comments_cache = array();
$ag_number_of_comments_inited = false;
function ag_number_of_comments ($comment, $before="",$after="") {
global $wpdb,$ag_number_of_comments_cache,$ag_number_of_comments_inited;
if (!$ag_number_of_comments_inited)
ag_number_of_comments_post ((int) $comment->comment_post_ID);
if ($comment->comment_type=="") {
$c_count = (int) $ag_number_of_comments_cache[ mb_strtolower($comment->comment_author) ];
echo $before."<span class=\"comments-by-author\">".($c_count==1?__('1 Comment'):$c_count." ".__('Comments'))."</span>".$after;
}
}
function ag_number_of_comments_post ($post_ID) {
global $wpdb,$wp_query,$ag_number_of_comments_cache,$ag_number_of_comments_inited;
if ($post_ID==0) return;
$ag_number_of_comments_inited = true;
$comments = $wp_query->comments;
$authors_sql = '0';
foreach ($comments as $c) {
if ( ($c->comment_type=='') && ($c->comment_approved=='1') ) {
$authors_sql .= " OR comment_author='".esc_sql(mb_strtolower($c->comment_author))."'";
}
}
$authorcounts = $wpdb->get_results(
"SELECT comment_author, COUNT(*) as comments
FROM $wpdb->comments
WHERE comment_type=''
AND comment_approved='1'
AND ($authors_sql)
GROUP BY comment_author");
foreach ($authorcounts as $a) {
$ag_number_of_comments_cache[mb_strtolower($a->comment_author)] = (int) $a->comments;
}
}
Eingefügt wird dieser Code am besten natürlich in die functions.php des Themes (auf jeden Fall nach dem <?php am Anfang und vor dem ?> am Ende der Datei!) und aufgerufen dann an der geeigneten bzw. gewünschten Stelle in der Kommentarausgabeschleife in der comments.php2, etwa vor oder nach der Datumsausgabe, mit diesem PHP-Funktionsaufruf:
Bzw. wenn es mitten im HTML-Code stehen soll, natürlich in PHP-Tags eingeschlossen:
Mit den beiden zusätzlichen Parametern kann man noch etwas davor- und dahintergestellten Text angeben, für eine eingeklammerte Ausgabe etwa:
Im Theme-CSS lässt sich das ganze dann mit der Klasse .comments-by-author ansprechen und stylen, falls gewünscht.
Zur eingangs erwähnten Zählung der Kommentare nur nach dem Namen möchte ich noch sagen, dass ich das zwar auch nicht optimal finde, da so mitunter verschiedene Leute, die mit demselben, i.d.R. „normalen“ Namen kommentieren, nicht unterschieden werden können. Nun könnte man zusätzlich die E-Mail-Adresse als Unterscheidungskriterium hinzufügen – doch wenn diese sich ändert (was bei ein paar Kommentatoren schon der Fall war), ist das Ergebnis auch nicht das gewünschte, genausowenig wie bei der URL, wo noch öfter „falsche Unterschiede“ auftreten, weil mal ein „/“ am Ende angegeben wurde und mal nicht. Deswegen belasse ich es beim Namen als Kriterium.
Übrigens wird die Groß-/Kleinschreibung auch nicht unterschieden – schon der Vergleich in MySQL kümmert sich nicht darum, weshalb eine entsprechende Umwandlung in PHP mittels mb_strtolower nötig ist; diese Funktion, die ordentlich mit Umlauten und Sonderzeichen umgehen kann, gibt’s ab PHP 4.3.0 (was heutzutage kein Problem sein sollte).
Nun denn, vielleicht hilft dieser Tip dem einen oder anderen. Es mag nicht der perfekte Code sein, denn auch wenn ich manchmal besserwisserisch korrigieren kann, bin ich kein PHP-Guru.
Also sind Verbesserungsvorschläge sowie Anregungen und Fragen natürlich willkommen.
Foto: Monika Adamczyk – Fotolia.com
- Das Syntax-Highlighting des Codes hab ich hier online erstellt, musste dann aber noch die einzelnen Anführungszeichen durch
'ersetzen, damit WordPress sie nicht in ihre hübsche Variante umwandelt. Vielleicht finde ich fürs nächste Mal einen Highlighter, der auch das noch berücksichtigt… ↺ - Wenn ihr dort nur einen Aufruf der Funktion
wp_list_comments()ohne Callback-Parameter findet, wird es etwas komplizierter – dann ließe es sich vielleicht in den Filterget_comment_dateoderget_comment_authoreinhängen und somit vor/nach diesen ausgeben, aber das ist zu viel für diesen Beitrag; falls jemand ein Plugin dafür kennt – oder für die, die generell nicht gern im Code rumpfriemeln –, könnt ihr ja Bescheid sagen. ↺

