E-Mails mit PHP Filtern

Ich habe mich vor längerer Zeit mit der Filterung von E-Mails durch PHP beschäftigt.

Diese kleine PHP-Datei die ihr einfach auf eurem Server ablegt und dann in eure E-Mail Konfiguration einbindet. (z. Bsp. qmail). Analysiert die Mail und trennt sie nach den einzelnen Bestandteilen (Nachricht, Von, An, Server etc.) auf und sendet euch eine E-Mail mit dem von print_r() formatierten Inhalt.

Man könnte das Skript jetzt noch erweitern, dass ein spezieller Betreff oder Absender anders berücksichtigt wird, oder es auch in Verbindung mit einem Webservice benutzen.
Ich habe das Vorhaben aufgegeben, denn man sollte schon fortgeschrittene RegEx-Erfahrung besitzen. Vielleicht kann aber trotzdem jemand etwas damit anfangen.

#!/usr/bin/php -q
<?php
$email = file_get_contents("php://stdin");

preg_match_all("/(.*):\s(.*)\n/i", $email, $matches);

mail('test@example.com', 'From my Pipe', print_r($matches, true));
?>

5 jQuery Plugins für eine gute Usability

Hier stelle ich kurz und knapp 5 jQuery Plugins vor die ich bei surfen entdeckt habe. Eingesetzt habe ich davon noch gar keins. Sobald ich aber eins in zukünftigen Projekten eingesetzt habe werde ich eine kleine Stellungnahme hinzufügen.

  1. Hook.js

    Hook.js bringt das bekannte „Pull to refresh“-Feature ins Web. Während dieses Feature auf Touchgeräten sehr sinnvoll ist finde ich es fürs Web eigentlich überflüssig. Aber wir werden sehen…

    Pull to refresh. For the web.

    Motto von Hook.js

  2. alertify.js

    alertify.js hat es sich zu Aufgabe gemacht alert() Dialoge zu verschöner und zu verbessern. Herausgekommen ist ein Plugin mit vielen Möglichkeiten, z. Bsp.: Callbacks oder Log. Ich werde diese Libary im nächsten Projekt definitiv benutzen.

    browser dialogs never
    looked so good

    Motto von ALERTIFY.js

  3. Pickadate.js

    Wer einen kleinen, schnellen Datepicker braucht der dazu auch noch responsive sein soll. Ist mit Pickadate.js mehr als gut bedient. Mit deaktivierten Daten, eingebauten Clear-Buttons oder Massen von Hooks, kann man den Datepicker gut für seinen Zweck anpassen. Auch das simple Design gefällt mir gut. Ein Anpassen ist dennoch leicht möglich.

    A mobile-friendly, responsive, and lightweight jQuery dateinput picker

    Beschreibung von Pickadate.js

  4. Chart.js

    Chart.js ist DIE Alternative für hässliche und langsame Flashdiagramme. Mit 6 verschiedenen Diagrammtypen und einer sehr gut dokumentierten und einfachen API ist es ein Klacks gut lesbare und semantisch korrekte Diagramme zu erstellen. Und.. die Bibliothek ist objekt-orientiert, was das Herz von JavaScript-Nerds höher schlagen lassen wird.

    Easy, object oriented client side graphs for designers and developers

    Motto von Chart.js

  5. Parsley.js bietet eine Client Form Validation ohne eine einzige Zeile Javascript. Im HTML werden alle Regeln für die einzelnen Felder definiert:

    <form>
     <label for="website">Website :</label>
     <input type="text" id="website" name="website" data-trigger="change" data-type="url" />
    
      <label for="message">Message (20 chars min, 200 max) :</label>
      <textarea id="message" name="message" data-trigger="keyup" data-rangelength="[20,200]"></textarea>
    </form>
    

    Sobald ein Fehler auftritt lässt sich das Formular nicht mehr abschicken! Eine einfachere Validierung auf der Clientseite ist mir bisher nicht bekannt!

    Javascript forms validation.
    Powerful, UX aware & Dead simple.

    Motto von Parsley.js

Ich hoffe auch euch können diese Plugins ein wenig helfen. Wenn ihr bereits Erfahrungen mit dem ein oder anderen Plugin gemacht habt, schreibt doch ein Kommentar.

Römische Zahlen in LaTeX verwenden

Römische Zahlen werden von LaTeX standardmäßig nur recht schlecht unterstützt. Ich wollte aber Sachen wie Teil I und Teil II, möglist schön darstellen.

In einem Forum habe ich folgenden Code gefunden, der die Unterstützung aufbohrt und die Verwendung eines zuätzlichen Paketes überflüssig macht.

\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{.}}}

Dieser Code muss oberhalb vom Dokumentenanfang eingefügt werden. Am besten da wo auch die Packages eingebunden werden. Danach ist der Befehl \RM{} vorhanden. Innerhalb der geschweiften Klammer muss dann die Zahl die römischer Schreibweise ausgegeben werden soll in numerischem Format eingefügt werden. \RM{4} ergibt ein schönes IV..
Wenn kein Punkt gewollt ist, aus dem Code oben den Punkt einfach entfernen.

Um bei Kapiteln und Abschnitten römische Nummerierung zu erzielen ist dieses Snippet allerdings ungeeignet. Das romanum-Package ist allerdings genau dafür da.

Ich werde bei allen Snippets nur den Code und eine kurze Erklärung hinzufügen. Für weitere Informationen, bitte eine Suchmaschine befragen oder Fragen hier in den Kommentaren stellen.

Bild mittig in Dokument einfügen

Da ich inzwischen, immer mehr Dokumente mit LaTeX setze, muss ich ein paar Snippets hier archivieren. Das bringt nicht nur mir sondern auch euch etwas. In nächster Zeit werden also ein paar Artikel mit Tipps und Tricks kommen.

Um ein einfaches Bild in das Dokument einzufügen ist das Paket graphicx nötig. Dieses erleichtert das Einfügen von Bildern deutlich. Bei der Erzeugung mit pdftex muss das Bild entweder im .png, .jpg-Format vorliegen.

Danach kann man folgenden Code benutzten um das Bild einzufügen. Mit \centering wird das Bild zentriert.

\usepackage{graphicx}
\begin{figure}[h]
	\centering
	\includegraphics{auth}%
	\caption{Die Authentifizierungssuite mit der Kassen aktiviert werden.}%
\end{figure}

Ich werde bei allen Snippets nur den Code und eine kurze Erklärung hinzufügen. Für weitere Informationen, bitte eine Suchmaschine befragen.

Apache 2.2 mit mod_rewrite auf Ubuntu

Auch heute hatte ich wieder ein kleineres Problem was zu lösen war. Das Apachemodul mod_rewrite wollte nicht funktionieren.
Der Beitrag ist in zwei Teile aufgeteilt: Im ersten Teil beschreibe ich die normale Konfiguration und Installation und im zweiten dann mein spezielles Problem.

Aktivierung

Das Aktivieren geht eigentlich sehr schnell und einfach. Dafür führen wir folgende Befehle aus.

sudo -s
a2enmod rewrite
service apache2 restart

Der erste gibt uns dauerhafte root-Rechte, damit wir unser Passwort nicht dauernd eingeben müssen. Der zweite aktiviert das Module mod_rewrite und der dritte startet Apache 2.2 neu damit die Änderungen eingelesen werden.

Damit wir in unseren www-Verzeichnis nun .htaccess Dateien nutzen können müssen wir noch zwei Einstellungen ändern.
Dafür öffnen wir die Datei /etc/apache2/sites-available/default mit root-Rechten und bearbeiten folgende zwei Sachen:

In dieser Datei muss im Abschnitt und >, dort muss die Eigenschaft AllowOverride von None auf All gesetzt werden.

Danach muss der Apache Server erneut neu gestartet werden. (service apache2 restart)

Mein Problem

Auch nachdem Aktivieren von mod_rewrite funktionierte keine der Umleitungen mehr. Allerdings warfen sie keine 500-er Fehler mehr sondern 404-er Fehler. Im Errorlog (/var/log/apache2/error.log) fand sich folgende Zeile:

[Mon Jan 14 17:11:05 2013] [error] [client 127.0.0.1] Negotiation: discovered file(s) matching request: /var/www/notesafe/login (None could be negotiated)., referer: http://localhost/notesafe/

Nach ein wenig Recherche fand ich heraus das das Modul negotiation von Apache sich mit rewrite beißt und die Requests „klaut“.

Wenn man das Modul deaktiviert und den Server neustartet, funktioniert alles.

a2dismod negotiation
service apache2 restart

< und ^ Tasten auf Ubuntu richtig belegen (Apple Tastatur)

Nachdem ich mich mit xmodmap und xinitrc rumgeschlagen habe um die Tastaturbelegung von zwei Tasten zu ändern, habe ich es nun mit einer sehr einfachen Einstellung geschafft.

Bei mir waren seit der Installation die < und die ^ Tasten vertauscht.
Da ich die zum Programmieren aber fast immer brauche, konnte ich diesen Griff nach oben nicht immer machen und habe nach einer Lösung gesucht.

Und die lautet so: Suche das Programm Tasten öffne es und gehe auf Optionen.

Und hier gibt es nun die besondere Option. Die Option Esperanto-Circumflex(^) hinzufügen (supersigno) muss nicht auf Vorgabe stehen sondern auf Zur entsprechenden Taster auf einer Qwerty-Tastatur

Notwendige Option in den Tasten Optionen

Notwendige Option in den Tasten Optionen

Wenn das eingestellt ist, könnt ihr normal programmieren.

strfti.me: Datum und Zeit formatieren einfach gemacht

Bei Programmieren muss man immer mal wieder Datum und Uhrzeiten korrekt formatiert ausgeben. Auch ich kenne das Problem zur genüge. Da wird zum Beispiel die PHP Dokumentation für date() gewälzt, ausprobiert und ausprobiert. Und nach 30 Minuten hat man dann endlich eine Lösung dafür.

Die kleine Webapp Strfti.me stößt genau in diese Lücke und bietet eine Echtzeit Testumgebung für „Datumsformatierstrings“.

Strfti.me

Strfti.me

Die Webseite bietet ein kleines Textfeld in dem man sich seine Formatierung zusammenbasteln kann und direkt ausprobieren kann. Hierbei wird immer das aktuelle Datum und die aktuelle Uhrzeit als Beispiel genutzt. Durch diese kleine aber wirklich sinnvolle App, bei der man die Variablen auf einen Blick hat und direkt testen kann erspart viel Zeit.

Mir persönlich gefallen zwei Dinge nicht so gut:

  1. Der Name der Webseite ist etwas schwer zu merken, nicht jeder kann sich Strfti.me direkt merken. formatdate oder formatdatetime wären da besser.
  2. Bei meinen Tests hat es manchmal recht lange gedauert bis das Beispiel aktualisiert wurde (ca. 8 Sek.).

Vielleicht ändert sich da noch etwas.

Wie formatiert ihr das Datum, kennt ihr alles auswendig? Oder habt ihr es ausgedruckt auf dem Schreibtisch liegen?

Update.

Wir ihr sicherlich schon bemerkt habt, habe ich Fundstücke im Netz einem kleinen Designupdate unterzogen. Ich nutze jetzt das Theme Baylys von Elmastudio, ein großes, schlichtes auf Typografie ausgelegtes responsive Design. Sodass mein Blog auch auf Handys und Tablets endlich gut funktioniert.

Was mir an Baylys so gefällt ist, dass er Text im Mittelpunkt steht und viel Wert auf die Textdarstellung gelegt wurde. Außerdem unterstützt Baylys alle Post Formats die ich schon immer mal benutzen wollte. Außerdem hatte ich seit längerem die Idee im Kopf ein Portfolio über mich und meine Projekte zu erstellen, was ich jetzt, dank Baylys in meinen Blog inkludieren kann. Denn Baylys kommt mit einem Seitentemplate namens „Portfolio“ welches Posts mit Bild sehr schön übersichtlich darstellt.

Einziges Manko ist bisher noch das Logo, was mir persönlich etwas zu klein ist. Da werde ich definitiv etwas dran ändern. Auch die Linkfarbe wird sich wahrscheinlich noch ändern um ein bisschen mehr an das Logo angepasst zu werden. Aber das werdet ihr schon sehen.

In nächster Zeit werden definitiv mehr Artikel kommen. Das neue Design gefällt mir und spornt mich richtig an. Ich bin erst vor kurzem auf Ubuntu umgestiegen und arbeite mich gerade in Ruby ein, sodass in diesen beiden Bereichen die meisten Artikel kommen werden.

Außerdem möchte ich demnächst die Möglichkeit anbieten einen Gastartikel zu schreiben, dazu werde ich eine kleine Seite aufsetzen in der alles erklärt ist. Wenn es jetzt schon Interessierte gibt, können sich diese per E-Mail an mich wenden (siehe Impressum).