Posts Tagged ‘datenbanken’

Freiheit statt Angst!

Sonntag, September 23rd, 2007

Ich war heute auf der allerersten Demonstration* in meinem Leben. Sie stand unter dem Motto Kaddi auf der Demo„Freiheit statt Angst – Stoppt den Überwachungswahn“ und richtete sich dementsprechend gegen die geplante Vorratsdatenspeicherung, gegen generelle Protokollierung und Kontrolle sämtlicher Kommunikationswege und die Überwachung aller Bundesbürger.

Ich bin kein sehr politischer Mensch, daher werde ich darauf verzichten, den Sachverhalt von img_6992_kl.JPGdieser Seite zu beleuchten. Aber ich sehe doch, dass unter dem Vorwand der Terrorbekämpfung oder der Anschlagsvermeidung, von der Politik Schritte unternommen werden, die die Rechte und Freiheiten der Bürger einschränken. In diesem Zusammenhang sind wohl so Unworte wie Bundestrojaner, Onlinedurchsuchungen oder biometische Pässe zu nennen. Und da ich weder persönliche Daten von meinem Rechner noch meine Krankengeschichte oder meine Kontobewegungen in den persönlichen Datenbanken unseres Innenministers stehen haben möchte, bin ich heute zu dieser Demo gegangen.

Das war ein bisschen spannend und auch aufregend und manchmal mitreißend und beängstigend. Ich bin natürlich mit Andi hingegangen, der auch darüber bloggt. Er hat einen ausführlicheren Beitrag geschrieben, der sehr lesenswert ist und außerdem an die 30 Fotos enthält.

Am Brandenburger Tor gab es erst noch ein paar kurze Redebeiträge, u. a. von einem Vertreter der Ärzteverbände und einer ver.di-Vertreterin. Pünktlich um 15:15 Uhr wurde der Aufbruch zumimg_6928_kl.jpg Spaziergang verkündet, was mich schon sehr erstaunt hat, weil es doch eigentlich nie pünktlich los geht. Ging es auch nicht. Es ging nämlich nicht vorwärts, nachdem wir uns in die Marschrichtung umgedreht hatten. Entweder hatten die hinten nicht gehört, dass es los geht oder sie wurden aufgehalten, weil die Gesetzeshüter Taschen kontrollieren wollten, oder sie wussten vielleicht auch gar nicht wohin. Man weiß es nicht.

Dann sind wir aber irgendwann doch los spaziert und konnten viele lustige Plakate sehen und img_6894_kl.JPGMusik hören und Touristen begaffen. Ein ganz klein bisschen hatte es ja was von Love Parade, aber vielleicht auch nur, weil so viele Menschen hinter Wagen auf der Straße liefen ;-) Bis zum Alex, wo eine Zwischenkundgebung stattfand, hatte ich auf jeden Fall Spaß. Das Wetter war ja auch spitzenmäßig. Und nachdem wir dort noch kurz weiteren Rednern gelauscht hatten, ging es in einer kleinen Schleife weiter – diesmal waren wir ziemlich weit vorn.

An einer provisorisch errichteten Ampel hatten wir auf ein paar Steinschwellen stehend einen guten Blick auf den Demonstrationszug, der sich jetzt erst in seiner ganzen Länge zeigte. Ich war wirklich beeindruckt, wie viele Menschen dort waren. Erste Schätzungen des Veranstalters besagten, dass 15.000 Demonstranten gekommen waren. Wenn gleich es natürlich mehr hätten sein sollen – ca. 82 Millionen, wie der Organisator sich gewünscht hatte ;-)

Mulmig wurde mir, als uns ein sehr langer und sehr eng stehender schwarzer Block passierte – links und rechts flankiert von Polizei. Schwarzer Block ist ja ein oft gebrauchtes Wort seit einiger Zeit (zuletzt wohl während des G8-Gipfels in Heiligendamm), aber es trifft das Erscheinungsbild einfach auch ziemlich gut. Ohne dass, meines Wissens nach, zu diesem Zeitpunkt schon irgendwas passiert wäre, war die Stimmung doch plötzlich nicht mehr so entspannt. Die Energie, die von diesem kompakten Paket Menschen ausging, war enorm.

Ich war fast erleichtert, als die von der Polizei eingepferchte Masse vorüber war und im img_6922_schaubles.jpgAnschluss wieder ein Wagen mit heiterer Musik und fröhlicheren Menschen kam. Aber trotzdem war seit dem mein Bedarf an Demo gedeckt und ich hatte genug gesehen. Der Zug kam danach mehrfach zum Stehen, weil es wohl doch Reibereien gab, in Folge derer es auf Seiten der Demonstranten auch Verletzte gab. Ich möchte das gar nicht beurteilen, wer da wie Schuld ist. Und ich möchte weder auf der einen noch auf der anderen Seite (geschweige denn dazwischen) stehen, aber ich glaube auch, dass es nicht zu dieser „explosiven“ Stimmung käme, wenn die Demonstranten nicht so eingekreist würden. Das erscheint mir doch etwas provokativ.

Als Unter den Linden wieder alles zum Stehen kam, weil die Polizei wohl einzelne aus dem Block aussortiert hat, war für uns Schluss. Wir sind noch kurz zurück zu dem Wagen mit elektronischer Musik gegangen, damit Kaddi (ja, ich rede in 3. Person von mir ;-)) ein bisschen rumhübbeln konnte und dann sind wir abgezogen. Erst noch zur Futteraufnahme in eine Fastfood-Kette und dann nach Hause. Und nu´ bin ich ganz schön kaputt – es waren letztlich doch fast 6 Stunden, viel länger als geplant.

Zum Schluss noch ein paar Links zum Thema:

Stoppt die Vorratsdatenspeicherung – Aufruf zur Demo, Informationen zum Sachverhalt

foebud.org – Mitorganisator der Demo; Betrag über Verlauf und Erfolg der Demo

Schäuble! Wegtreten! – Petition gegen Schäuble; der Link zum Mitmachen ist gleich oben auf der Seite! ;-)

heise – Polizeizugriffe bei Demo gegen den Überwachungsstaat

heise – Tausende Bürger demonstrieren für „Freiheit statt Angst“

* zählt man die Love Parade nicht mit

CountPosts – wie oft wurde dieser Beitrag gelesen?

Sonntag, April 15th, 2007

Gestern habe ich weiteres Plugin installiert. CountPosts zählt – wie die Überschrift schon vermuten lässt – wie oft eine Seite angeguckt wurde.

Dafür hab ich das Plugin herunter geladen, entpackt, ins Plugin-Verzeichnis geschmissen und aktiviert. So weit so gut. Allerdings musste es etwas modifiziert werden, da ich gern eine Unterscheidung nach der Gesamtzahl der Seitenansichten und den heutigen Seitenansichten haben wollte. Was ich dafür verändert habe, hoffe ich im Folgenden verständlich zu erklären.

Die Zeile:

<?php HitThisPost(‚Dieser Eintrag wurde seit dem 14.04.2007 ‚,‚ x gelesen‘); ?>

wollte ich unter jedem einzelnen Beitrag stehen haben und habe sie daher in single.php eingefügt. Ich habe mir die Codezeile aus der englischen Anleitung (s. Link oben) kopiert. Die Anführungsstriche dort sind durch richtige Hochkomma zu ersetzen, sonst funktioniert es nicht! Abgesehen von dem Text, der zu der Angabe erscheinen soll, habe ich an der Funktion HitThisPost nichts verändert.

Die Code-Zeile für den Zähler auf der Frontseite sieht wie folgt aus:

<?php mainCounter(‚Insges. angeguckt: ‚, ‚ Heute angeguckt: ‚); ?>

und wurde unten in der Sidebar eingefügt. Es gibt noch eine TopHitList-Funktion, die hab ich aber vorerst weggelassen.

Damit diese Angaben aber überhaupt verfügbar sind, musste die Datenbank angepasst werden. Und damit ich auf der (lokalen) Datenbank überhaupt ein update on duplicate entry machen konnte, brauchte ich vorerst eine neue xampp-Version mit MySQL 5 – von dem Update schweigen wir aber ;-)

Die Tabelle mainCount bekam eine neue primary key-Spalte für das heutige Datum, damit zwischen der Gesamtzahl der Seitenbetrachtungen und den heute betrachteten Seiten unterschieden werden kann. Da die Tabelle mainCount ohnehin noch keine Daten enthielt, wurde sie erst ganz gelöscht und dann mit:

CREATE TABLE `wp_maincount` (   `main_hits` int(11) NOT NULL DEFAULT ‚0‘,   `heute` DATE NOT NULL DEFAULT ‚0000-00-00‘,   PRIMARY KEY  (`heute`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;  

neu erzeugt.

Die Funktion mainCounter in der Datei CountPosts.php wurde folgendermaßen verändert. Dies ist die Original-Funktion aus dem runtergeladenen ZIP-file:

  1. function mainCounter($before = ‚Visitors: ‚, $after = ‚.‘) {
  2.   global $wpdb, $table_prefix;
  3.     $Update = „Update „ . $table_prefix . „mainCount set main_hits = main_hits + 1“;
  4.     if( !current_user_can(‚level_2‘) )
  5.         $wpdb->query($Update);
  6.     $SQL = „SELECT main_hits FROM „ . $table_prefix . „mainCount“;
  7.     $red = $wpdb->get_row($SQL);
  8.     echo $before , $red->main_hits , $after;
  9.     echo „<br/><sub>Counter Powered by <a href=\“http://djuki.padrino.co.yu/blog/razno/countposts-
    v-10-wordpress-plugin/\“>Count Post Plugin</a></sub>“
    ;
  10. }

Zeile 3 wurde so verändert, dass bei jedem erneuten Seitenaufruf ein update (mainHits wird um eins erhöht) auf die alte Zeile ausgeführt wird, wenn der insert einen identischen Eintrag in der primary key-Spalte (heute) zur Folge hätte. Das heißt, wenn es zum aktuellen Datum schon einen Eintrag gibt, erzeuge keinen neuen, sondern inkrementiere den alten. Erst wenn ein neuer Tag ist, wird auch eine neue Zeile angelegt. Hier die veränderte Funktion mainCounter:

  1. function mainCounter($before = ‚insges. angeguckt: ‚, $after = ‚heute angeguckt: ‚) {
  2.   global $wpdb, $table_prefix;
  3.     $Update = „Insert into „ . $table_prefix . „mainCount (main_hits, heute) values (1, NOW()) ON DUPLICATE KEY UPDATE main_hits = main_hits + 1“;
  4.     if( !current_user_can(‚level_2‘) )
  5.         $wpdb->query($Update);
  6.              
  7.     $SQL = „SELECT sum(main_hits) as alle FROM „ . $table_prefix . „mainCount“;
  8.     $red = $wpdb->get_row($SQL);
  9.  
  10.     $SQL2 = „SELECT main_hits FROM „ . $table_prefix . „mainCount“ . “ WHERE heute = NOW()“;
  11.     $red2 = $wpdb->get_row($SQL2);
  12.  
  13.     echo $before , $red->alle , $after , $red2->main_hits ;
  14.     echo „<br/><sub>Counter Powered by <a href=\“http://djuki.padrino.co.yu/blog/razno/countposts-
    v-10-wordpress-plugin/\“>Count Post Plugin</a></sub>“
    ;
  15. }

Update

Eine leicht modifizierte select-Anweisung in Zeile 7 selektiert alle Einträge der Spalte main_hits und summiert diese in einem s. g. Label namens alle. Das ist sinnvoll, damit die Gesamtzahl am Ende auch alle Betrachtungen erfasst und somit höher ist als die Tages-Zahl ;-)
15.04.2007 21:08 Uhr – Update Ende

In der neuen Zeile 10 der Funktion mainCounter steht jetzt eine zweite SQL-Anweisung, die die Anzahl der Seitenaufrufe zum heutigen Datum ausliest, damit ich, wie schon gesagt, zu der Gesamtzahl der page views auch die Anzahl der Aufrufe zum aktuellen Datum anzeigen kann. Zeile 11 führt die SQL-Anweisung aus und schreibt den zurückgelieferten Wert – analog zu der ursprünglichen Zeile 7 – in ein Objekt ($red und $red2). Die Ausgabe mit den festgelegten Werten für $before (‚Insges. angeguckt: ‚) und $after (‚ Heute angeguckt: ‚) erfolgt in Zeile 13.

Zu guter Letzt ist nur noch das Stylesheet anzupassen. Fertig :-)