Ihren XING-Kontakten zeigen Steinzeit-Server?

Geschrieben von Hanno Heeskens am 30.11.2010, 13:39 Uhr in Allgemeines, PHP
1 Kommentar »

Ich bin mal gespannt, was hier dann wohl für ein Server bei uns ankommen wird:

Bauauftrag Datum: 2010-11-18
Liefertermin: 2010-11-25
Datum gebaut: 1899-12-30

Ich verstehe nur nicht, warum er dann noch nicht angekommen ist…. ;-) oder werkelt da etwa doch ein MSSQL-Server, der nicht korrekt abgefragt wird?


Diesen Artikel weiterempfehlen:
mehr Datenschutz durch 2-Klick Buttons! Auf 'i' klicken, um mehr zu erfahren.

Ihren XING-Kontakten zeigen Kleindatenhaltung – Klein-Daten-Haltung

Geschrieben von Heiko Heeskens am 24.10.2008, 19:32 Uhr in Allgemeines, PHP
12 Kommentare »

Im WMP, einem mittelgroßen Forum für Webmaster tummeln sich ein paar unserer Kunden. Bei Supportarbeiten bin ich auf einen Wettbewerb gestoßen, welcher für Platz 1 bei google.de einen Preis auslobt.  Suchwort soll Kleindatenhaltung sein.

Lustige Ideen kommen dabei ja dann doch zustande. So wird auf schloebe.de der Kleindatenhaltung eine Bedeutung im Web 2.0 zugesprochen. Für Facebook und google.de ist die Kleindatenhaltung laut Netdynamic dagegen schon wieder out. Der Infopirat hingegen entzieht sich dem ganzen Rummel :)

Zur Verwaltung und dem Management von Kleindaten hat sich x-stream.de ganz besondere Gedanken gemacht und stellt auch gleich ein paar Downloads vor. Das ist löblich! Manche Orte stellen schon ganze Schilder auf, um auf die aktuelle Problematik hinzuweisen. Mifupa.de hat dies eindeutig dokumentiert und für die Nachwelt festgehalten. Auch dies ist löblich!

Der Deluxeblog findet, man sollte Kleindaten keine große Freiheiten lassen. Hier heißt es, man solle die Kleindaten in Käfige einsperren! Das ist nicht so löblich, auch die Kleindaten haben ein Recht auf freies Leben!

Grauezelle handelt nicht getreu seines Namens, er macht sich keine Gedanken. Es legt es schlicht drauf an, den Wettbewerb zu gewinnen. Ich finde, das wird der Brisanz der Kleindatenhaltung nicht gerecht. Ebenso gefühllos zeigt sich der Bergmensch. Das ist mangelnde Verantwortung unserer Menschheit gegenüber!

Logindaten.de stellt Parallelen zur Tierhaltung her, die Festplatte wird als virtuelles Gehege genutzt. Auf dieser tummeln sich dann jede Menge Kleindaten. Gelungen!

Im Allgemeinen ist es aber zu begrüßen, dass unser ganzes Land Anteil am Problem der Kleindatenhaltung nimmt. Da sage noch einer, Deutschland würde nur aus Egoisten bestehen :)

[Zusatz Hanno]

Hmmm, irgendwie erinnert mich das alles sehr an die Hommingberger Gepardenforelle, ein Wettbewerb der c’t – genau das gleiche Ziel. Ein anderer Begriff den ich gerade auch zum ersten Mal lese, ist der/das Schnitzelmitkartoffelsalat. Und nun habe ich Hunger.

[/Zusatz Hanno]

Ob eine Gepardenforelle unter die Kleindatenhaltung fällt?


Diesen Artikel weiterempfehlen:
mehr Datenschutz durch 2-Klick Buttons! Auf 'i' klicken, um mehr zu erfahren.

Ihren XING-Kontakten zeigen WordPress und mod_security2

Geschrieben von Heiko Heeskens am 02.08.2008, 13:36 Uhr in PHP
Bisher keine Kommentare »

Folgende Fehlermeldungen:

“Method Not Implemented POST to /wp-admin/post.php not supported.”

“Method Not Implemented GET to /sql-adm/tbl_change.php not supported.”

können mittels unseres eigenen Tipps behoben werden:

http://yaablog.de/2008/07/27/mod_security/

Da hätte ich nun auch früher drauf kommen können :D


Diesen Artikel weiterempfehlen:
mehr Datenschutz durch 2-Klick Buttons! Auf 'i' klicken, um mehr zu erfahren.

Ihren XING-Kontakten zeigen TagCloud für typo3-Seitenzugriffe

Geschrieben von Hanno Heeskens am 27.07.2008, 03:06 Uhr in MySQL, PHP
1 Kommentar »

Unsere neue Webseite unter www.net-publics.de steht kurz vor dem kompletten Relaunch. Aber das gewisse Etwas fehlte uns noch. Schnell war da die Idee geboren, eine Tag-Cloud über die am meisten besuchten Produktseiten zu erstellen. Ein Blick in das Extension Repository von Typo3 brachte da erstmal Ernüchterung: keine fertige Extension verfügbar. Also war selber machen angesagt.

Das Problem war leicht in zwei zu unterteilen: Einmal die Tag-Cloud an sich und dann die Seitenzugriffe ermitteln in Typo3. Daraus eine Kombination würde die “Top-Content Cloud” ergeben.

Für die Ermittlung der Seitenzugriffe in Typo3 habe ich mich der Extension Simple hit statistics (sys_stat) bedient. Diese zeichnet in einer externen Datenbank alle Anfragen ab, die an die Seite gestellt werden. Zugegeben, es wird noch mehr protokolliert als die Infos, die ich brauche, aber wer weiß, wozu das noch gut sein kann…

Folgendes SQL-Query übernimmt dann die Hauptarbeit:

select count(b.title) as weight,
a.page_id, a.IP,
b.title from sys_stat as a
left join pages as b on
a.page_id=b.uid
where unix_timestamp()-a.tstamp < 172800
and a.page_id IN ( $show_pages )
group by title;

Es werden hier also die Datenbanken des Statistiktools und die von typo3 verbunden. So werden nicht nur die Zugriffe, sondern auch die Seiten ID und deren Titel ausgelesen. $show_pages ist dabei eine einfache durch Komma separierte Liste der Seiten-IDs, die in der Cloud auftauchen sollen. Betrachtet werden nur die Daten der letzten 172800 Sekunden (2 Tage).
Das ganze Ergebnis lassen wir nun in einer Schleife in zwei Arrays schreiben, die es uns nachher einfacher machen, die Berechnungen der Größe durchzuführen:

while ($row = mysql_fetch_array($res)) {
$tags[ $row['title'] ] = $row['weight'];
$link[ $row['title'] ] = $row['page_id'];
}

Parallel dazu erstellen wir noch eine Übersicht über alle Seiten, die wir über das Plugin real-url ansprechen wollen, um schönere Links in unserer Cloud zu haben:

$page = mysql_query( “select page_id,spurl from tx_realurl_urldecodecache; “);
while ($row = mysql_fetch_array($page)) {
$realurl[ $row['page_id'] ] = $row['spurl'];
}

Wir haben nun drei Arrays: Die Tags mit zugehöriger Gewichtigkeit, die Seiten ID mit entsprechendem Link und zudem noch die Ergebnisse aus der real-URL Datenbank.

Jetzt kann es an die Cloud gehen:
Dazu erstmal ein paar Einstellungen, die ich jedes Mal von vorne berechnen lasse, da ich den Code in einer Funktion verwende, die nur die zu enthaltenen Seiten als Argument bekommt.

$max_weight = max(array_values($tags));
$min_weight = min(array_values($tags));

$max_font_size = 180;
$min_font_size = 80;

Hier werden die kleinsten und größten Werte aus dem Array heraus geholt und je Maximal- und Minimalwert für die Schriften gesetzt. Anschließend wird mit

$spread = $max_weight-$min_weight;
if (0 == $spread) { $spread = 1; }
$step = ($max_font_size – $min_font_size)/($spread);

die Abstufungen der Schriftgröße berechnet.
Jetzt können die einzelnen Tags der Reihe nach abgearbeitet werden:

foreach ($tags as $key => $value) {
$size = $min_font_size + (($value – $min_weight) * $step);
$size = ceil($size);
if ( $realurl[ $link[$key] ] != “” ) {
echo ‘<a href=”/’.$realurl[ $link[$key] ].’” style=”font-size: ‘.$size.’%”‘;
} else {
echo ‘<a href=”/index.php?id=’.$link[$key].’” style=”font-size: ‘.$size.’%”‘;
}
echo ‘ title=”‘.$key.’”‘;
echo ‘>’.$key.’</a> ‘;
echo “\n”;
}

Was passiert hier?
Zuerst berechnen wir die aktuelle Schriftgröße des Tags anhand der Wertigkeit (also der Anzahl der Seitenbesuche) und runden diesen Wert. Danach schauen wir, ob für diese Seite im Real-URL Cache ein Treffer vorliegt und geben diesen im Link aus. Ist kein Treffer vorhanden, verlinken wir auf die Seite anhand der Typo3-PageID. Zusätzlich wird in dem Link noch das title-tag auf den Seitentitel gesetzt.

Das fertige Ergebnis kann auf http://www.net-publics.de/ angeschaut werden.
Was noch ergänzt werden muß ist ein Schutz gegen das manipulieren der Tag Cloud. Das ist derzeit noch ganz rudimentär über mod_evasive geregelt, dazu in einem anderen Artikel später vielleicht mehr.


Diesen Artikel weiterempfehlen:
mehr Datenschutz durch 2-Klick Buttons! Auf 'i' klicken, um mehr zu erfahren.

Ihren XING-Kontakten zeigen CakePHP

Geschrieben von Hanno Heeskens am 22.04.2008, 20:17 Uhr in PHP
Bisher keine Kommentare »

Schon mehrfach habe ich mir vorgenommen, einmal ein genaueren Blick auf Ruby on Rails zu werden. Leider habe ich das bisher noch nicht geschafft, obwohl das Konzept wirklich einleuchtend und einfach klingt. Zu groß ist aber der gwohnte Umgang mit PHP.
Heute habe ich ein interessantes Framework für PHP gefunden, welches sich an Ruby on Rails orientiert. Es erlaubt die Entwicklung nach dem Modell View Controller Modell (MVC). Die Installation bishin zu ersten Ergebnissen kann sich wirklich sehen lassen, alles ging problemlos und wirklich schnell. Es ist denke ich für jeden, der schnell Anwendungen in PHP schreiben möchte und dabei nicht jede Codezeile einzeln schreiben möchte einen Blick wert.

Mehr Infos gibt es auf der Homepage unter http://cakephp.org/


Diesen Artikel weiterempfehlen:
mehr Datenschutz durch 2-Klick Buttons! Auf 'i' klicken, um mehr zu erfahren.