Youtube: So funktionieren die DNS-Sperren
EDIT: ja, ich weiß dass das künstlerisch nicht soo Wertvoll ist. Aber mir gings auch eher um den Inhalt…
Youtube: So funktionieren die DNS-Sperren
EDIT: ja, ich weiß dass das künstlerisch nicht soo Wertvoll ist. Aber mir gings auch eher um den Inhalt…
Versus? Sollte das nicht immer Zusammen gehören? Nun, ich sage nein (sonst wäre der Artikel auch wertlos…), und gehe sogar soweit zu behaupten dass PD an der Stelle kontraproduktiv sein kann.
Das Konzept von Plausible Deniability ist ja, dass man im Falle eines Falles sagen kann, dass man damit nichts zu tun hat. In Richtung Kryptographie heißt das, dass mir niemand beweisen kann, dass der Datenmüll da auf Laufwerk S: meine streng geheimen Pläne zur Eroberung der Weltherrschaft sind. Die Sache ist nur: das funktioniert nicht. Zumindest nicht da wo es gebraucht wird. Dort, wo „in dubio pro reo“ noch gilt, ist das alles kein Problem. Ich sage, da ist nichts, keiner kann was anderes beweisen: Freispruch. Wunderbar, funktioniert. Aber was passiert, wenn das keinen interessiert?
Mal ein paar kleine Szenarien. Continue reading „Anonymity vs. Deniability“
Hi!
Ich hab mich hier und anderswo ja schon öfter drüber beschwert, dass sich gewisse Browser nicht an Standards halten. ‚Gewisse‘ war dabei meist der IE 😉
Nun, offenbar tritt auch mal das Gegenteil auf… aber zum Anfang.
Ein Uber-1337-Web2.0-Projekt benutzt unter anderem DOM-Manipulation, dabei werden auch <style>-Nodes injected. Und zwar unterhalb des <body>s. Das funktioniert prima im Firefox(3) und in Opera, aber NICHT in IE und Safari/Webkit/KHTML/whatever. Woran liegt das? Nun, laut Standard darf ein <style>-Node nur unterhalb von <head> stehen. Meines Wissens sind Firefox und Opera die einzigen, die das ignorieren und die Dinger auch anderswo parsen. Schade eigentlich, denn meine so einfache Lösung wird jetzt durch Sonderbehandlung für die, die sich an Standards halten wieder komplizierter.
Was mich zum Fazit bringt: auch das W3C hat die Weisheit nicht gepachtet, für mich ist dieser Standard inkonsequent: die an sich ähnlich auszulegenden <script>s darf man schließlich auch überall verwenden.
Wer aber ne gute Idee hat, wie man das so hinkriegt, dass die Styles auch da geparst werden, oder wer mir sagen kann wie ich in IE/Webkit DOM-Änderungen Hooken kann (brauch ich fürs aufräumen, wenn ich doch in den <head> injecten muss), der kriegt ein Bienchen und eine About-Erwähnung 😉
cu,
Martok
Und wieder mal ein Umzug (gut) überstanden 😉
Diesmal von einem vServer bei NetClusive, der unter anderem immer langsamer geworden ist (es gab andere Gründe, die möchte ich hier aber nicht ausbreiten) und deshalb von meinem Hoster gekündigt wurde, zu einem echten eigenen Server von OVH. Nettes Teil, man merkt die Geschwindigkeitsunterschiede^^
Dank nochmal an Beshig, der das so schön im Skype live gemanaget hat. Macht sich schon besser, wenn man direkt mit den Leuten reden kann 😉
cu
Martok
Hi!
Mal was positives heute: es gibt einen neuen Blogger. BenBE teilt uns jetzt auch seine bescheidenen Gedanken mit 😉
Und beim gegenseitigen verlinken ist uns dann folgendes aufgefallen: sowohl BenBE’s humble thoughts als auch Martok’s Place enthalten…. na? Genau, einen Apostroph.
Die große Frage: ist das da eigentlich ein Deppenapostroph oder nicht? Also mal googeln. Und was sagt uns der 5. Treffer? Es gibt eine Wikipedia-Artikel zu Englischen Grammatik, in Länge und Breite 😯
Wozu braucht man denn sowas?
Horden von Englischlehren zittern in Angst um ihre Jobs!
Oder so ähnlich.
cu
Martok
Posted in Allgemein, Fun, Web
Hallo! Ich melde mich mal wieder, diesmal mit etwas relativ wichtigem. Vor kurzem wurde WordPress 2.6 freigegeben, im Zuge des Updates musste ich mal wieder den wpautop()-Fix einspielen. Dabei sind mir einige Unzulänglichkeiten aufgefallen, unter anderem dass er sinnlos kompliziert ist 😉 Die neue Version kommt mit grade mal 7 neuen und einer geänderten Zeile aus. Hier die Diff (wir sind wieder in wp-includes/formatting.php): Bei der Gelegenheit habe ich den Tag von <nowpautop> in <preserve> geändert, hier gegebenfalls betreffende Posts/Seiten anpassen. Die angesprochenen anderen Unzulänglichkeiten hatten damit zu tun, dass nur p und br-Tags verhindert wurden. Alles andere wurde trotzdem munter verändert. Jetzt ist das Verhalten das erwartete: per php generierter HTML-Code wird genau so übernommen wie er aus dem Interpreter kommt. Technisch liegt das daran, dass ich jetzt nicht mehr einzelne Zeichen schütze, sondern alles, indem der Code base64-Codiert vor wpautop() versteckt wird. Viel Spaß damit 😉 Ich finde ihn ja normalerweise nicht so toll. Aber bei Kerner (den ich auch nicht mag; Minus mal Minus ergibt wohl doch Plus) hat er am 01.11.2007 etwas wirklich wahres gesagt. Du kannst doch den Leuten nicht irgendwie sagen „Hier ist ein Hammer, aber jetzt hau den Nagel nicht in die Wand!“ Womit er völlig Recht hat. Denn wer verdient denn an den CD-Brenner-Preisen kräftig mit… Aber seht selbst: In einer Nacht-und-Nebel-Aktion hab ich uns ein Forum beschafft. Es ist über den Link „Forum“ (oh Wunder) oben rechst zu erreichen. Ich hoffe ja, dass da irgendwann mal ne Community draus wird. Ich scheine ja nicht wenige Leser zu haben, aber kaum einen von denen kenne ich. Das soll sich jetzt mal ändern 😉 –Martok Ich hatte ja das Problem, dass mit PHPexec erzeugter Code immer von wpautop() immer verhackstückt wurde. Irgendwie hatte ich jetzt doch noch die richtige Idee. Ich führe einfach ein neues HTML-Element ein…WordPress: wpautop(), der einfachere Weg
@@ -65,10 +65,15 @@
}
function wpautop($pee, $br = 1) {
+ $preserving = strpos($pee, '<preserve>') !== false;
+ if ($preserving) {
+ $pee = preg_replace_callback('!<preserve>(.*?)</preserve>!is', create_function('$matches', 'return "<revert>".base64_encode($matches[1])."</revert>";'), $pee);
+ }
+
$pee = $pee . "n"; // just to make things a little easier, pad the end
$pee = preg_replace('|<br />s*<br />|', "nn", $pee);
// Space things out a little
- $allblocks = '(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr)';
+ $allblocks = '(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr|revert)';
$pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "n$1", $pee);
$pee = preg_replace('!(</' . $allblocks . '>)!', "$1nn", $pee);
$pee = str_replace(array("rn", "r"), "n", $pee); // cross-platform newlines
@@ -99,6 +104,9 @@
$pee = preg_replace( "|n</p>$|", '</p>', $pee );
$pee = preg_replace('/<p>s*?(' . get_shortcode_regex() . ')s*</p>/s', '$1', $pee); // don't auto-p wrap shortcodes that stand alone
+ if ($preserving) {
+ $pee = preg_replace_callback('!<revert>(.*?)</revert>!is', create_function('$matches', 'return base64_decode($matches[1]);'), $pee);
+ }
return $pee;
}
MartokDieter Bohlen: gebt die Musik im Netz frei!
Forum eröffnet
WordPress wpautop() Bug gefixt
Die Lösung basiert auf ein paar kleinen Änderungen des Moduls wp-includes/formatting.php.
Continue reading „WordPress wpautop() Bug gefixt“