Andreas

Tschüss WordPress, Hallo Hugo

15. Dezember 2022 · Intern · andreas · Kein Kommentar

Seitdem ich vor mehr als 10 Jahren von einer klassischen Website auf ein Blog umgestellt habe, war im Backend WordPress im Einsatz. Leider haben sich meine Bedürfnisse und WordPress in den letzten Jahren immer mehr auseinanderentwickelt, ein paar Gedanken hierzu habe ich im Beitrag “Gedanken aus dem Maschinenraum” festgehalten.

Dieser Beitrag ist nun der erste, der mit Hilfe eines neuen Backends erzeugt wurde. Die Wahl fiel auf Hugo, einen statischen Websitegenerator. Gerade im Hinblick auf die Tatsache, daß hier im Blog maximal 1-2 Beiträge pro Woche erscheinen, reicht es, wenn die Inhalte nicht bei jedem Aufruf einer Seite neu erzeugt werden, sondern eben nur dann, wenn sich am Inhalt auch tatsächlich etwas ändert.

Alle Beiträge wurden umgezogen und die URLs auch - bis auf einige wenige technisch begründete Ausnahmen - wie von WordPress vergeben beibehalten. Auch alle bisher abgegebenen Kommentare wurden übernommen und sind weiterhin den jeweiligen Beiträgen zu sehen, auch wenn aktuell Antworten nicht direkt als solche ersichtlich sind. Das Kontakt- und Kommentarformular sowie die Suche sehen leicht anders aus und sind der einzige dynamische Teil der Website. In hoffentlich nicht allzu ferner Zukunft wird noch ein detaillierter Blick auf die Migration und den Einstieg in Hugo erscheinen, dieser ist aber noch in Arbeit.

Sollte irgendwo noch irgendetwas klemmen, so bitte ich um entsprechende Nachricht.


Verpackung bei JPC

14. Dezember 2022 · IMHO · andreas · Kein Kommentar

Besonders beim Händler am großen Fluß habe ich mich in den letzten Monaten mehr als einmal geärgert, daß hochwertige Artikel so verpackt wurden, daß vom Zustand “Neu” bei Erhalt der Ware nichts mehr zu sehen war.

Aus diesem Grund bevorzuge ich für Musik-Bestellungen, die nicht nur ein Standard-Jewelcase beinhalten, inzwischen JPC.

Als Beispiel hier die Lieferung des PINK FLOYD “Animals 2018 Remix” - im stabilen Karton, optimal ausgepolstert. So macht nicht nur Bestellen, sondern auch das Öffnen der bestellten Lieferung wieder Spaß! Dankeschön!


Hörenswert #99: Roger Waters - Comfortably Numb 2022

12. Dezember 2022 · Hörenswert · andreas · Kein Kommentar

Link zu Youtube

Kann “Comfortably Numb” ohne Gitarrensolo funktionieren? Meine spontane Antwort wäre ein klares “Nein” gewesen, aber Roger Waters beweist mit seiner Neueinspielung, daß es möglich ist.


Warntag

10. Dezember 2022 · IMHO · andreas · Kein Kommentar

Am 8. Dezember war es mal wieder soweit: bundesweiter Warntag. Nachdem der erste Probelauf im September 2020 nicht sonderlich erfolgreich war, kam dieses mal mit Cell Broadcast eine Technik hinzu, welche in anderen Ländern zum Teil bereits seit Jahrzehnten im Einsatz ist. Und siehe da:

Screenshot

Was bei anderen klappt, funktioniert auch in Deutschland und die Variante “warum kompliziert, wenn es auch einfach geht” braucht weder spezielle Apps mit funktionierenden Datenverbindungen noch irgendwelche proprietären Dienste von Google oder Apple.


Beitrag kommentieren

10. Dezember 2022 · andreas · Kein Kommentar
') ) return esc_html($matches[0]); return $matches[0]; } function wp_pre_kses_less_than( $text ) { return preg_replace_callback('%<[^>]*?((?=<)|>|$)%', 'wp_pre_kses_less_than_callback', $text); } function wp_strip_all_tags($string, $remove_breaks = false) { $string = preg_replace( '@<(script|style)[^>]*?>.*?@si', '', $string ); $string = strip_tags($string); if ( $remove_breaks ) $string = preg_replace('/[\r\n\t ]+/', ' ', $string); return trim( $string ); } function _sanitize_text_fields( $str, $keep_newlines = false ) { // leads to error on server - why? // $filtered = wp_check_invalid_utf8( $str ); $filtered = $str; if ( strpos($filtered, '<') !== false ) { $filtered = wp_pre_kses_less_than( $filtered ); // This will strip extra whitespace for us. $filtered = wp_strip_all_tags( $filtered, false ); // Use html entities in a special case to make sure no later // newline stripping stage could lead to a functional tag $filtered = str_replace("<\n", "<\n", $filtered); } if ( ! $keep_newlines ) { $filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered ); } $filtered = trim( $filtered ); $found = false; while ( preg_match('/%[a-f0-9]{2}/i', $filtered, $match) ) { $filtered = str_replace($match[0], '', $filtered); $found = true; } if ( $found ) { // Strip out the whitespace that may now exist after removing the octets. $filtered = trim( preg_replace('/ +/', ' ', $filtered) ); } return $filtered; } // own code :-) function obfuscateSPAMKey($key) { $key = md5($key); $key = preg_replace("/[0123456789]/", "", $key); return $key; } function nojunk_get_values() { $num1 = rand(10, 49); $num2 = rand(10, 49); $numbers = array($num1, $num2); sort($numbers); $operand = array("plus", "minus"); shuffle($operand); if ($operand[0] == "plus") { $nojunk = $numbers[1] + $numbers[0]; } else { $nojunk = $numbers[1] - $numbers[0]; } $nojunk_key_1 = obfuscateSPAMKey($nojunk); $nojunk_key_2 = time(); $nojunk_question = "$numbers[1] $operand[0] $numbers[0] ergibt"; return array($nojunk_question, $nojunk_key_1, $nojunk_key_2); } function mailFile($email, $subject, $message, $filename, $filedata) { $file_data = chunk_split(base64_encode($filedata)); $mail_header = "From: <$email>"; $random_time = md5(time()); $mime_boundary = "==BlogThulOrg- $random_time"; $mail_header .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $mail_message = $message; $mail_message .= "\nAnhang '$filename'\n"; $mail_message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"utf-8\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $mail_message . "\n\n"; $mail_message .= "--{$mime_boundary}\n" . "Content-Type: application/octet-stream;\n" . " name=\"{$filename}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$filename}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $file_data . "\n\n--{$mime_boundary}--\n"; mail($email, $subject, $mail_message, $mail_header); } ?> Bitte einen Namen eingeben."; } else { $comment['comment_author'] = _sanitize_text_fields($_POST['author']); } if(trim($_POST['comment']) === '') { $error .= "
  • Bitte einen Kommentar eingeben.
  • "; } else { $comment['comment_content'] = _sanitize_text_fields($_POST['comment'], true); } if(trim($_POST['nojunk_answer']) === '') { $error .= "
  • Bitte die Rechenaufgabe ausfüllen.
  • "; } else { $formNojunk = _sanitize_text_fields($_POST['nojunk_answer']); $formNojunk = obfuscateSPAMKey($formNojunk); if (!($formNojunk == $_POST['nojunk_key_1'])) { $error .= "
  • Bitte das Ergebnis der Rechenaufgabe überprüfen.
  • "; } } $time_to_send = time() - $_POST['nojunk_key_2']; if (($time_to_send < 10) || ($time_to_send > 3600)) { $error .= "
  • Das ging ein bisschen zu schnell - sind Sie sicher, daß Sie ein Mensch sind?
  • "; } if($error === '') { $slug = _sanitize_text_fields($_POST['post_slug']); $url = _sanitize_text_fields($_POST['post_url']); $message = "Kommentar zum Beitrag $url\n"; mailFile("blog@thul.org", "Kommentar [$slug]", $message, date("Y-m-d_H-i-s") . ".json", json_encode($comment, JSON_UNESCAPED_UNICODE)); echo "

    Vielen Dank für Ihren Kommentar

    "; echo "

    Ihr Kommentar wird erst nach manueller Freischaltung angezeigt, was in der Regel ein paar Stunden dauern kann.

    "; echo "

    Zurück zum Beitrag

    "; } else { echo "

    Fehler beim Ausfüllen des Formulars:

    "; echo "
      $error
    "; echo "

    Bitte betätigen Sie den \"Zurück\"-Button in Ihrem Browser und korrigieren Sie Ihre Eingaben.

    "; } } ?>

    Beitrag ""

    Bitte nur "normalen Text" verwenden. Links, HTML-Tags o.ä. werden beim Versenden entfernt.