MailHog – Einrichten eines lokalen Mailservers

Bei manchen Projekten ist es unvermeidbar einen lokalen Mailserver einzurichten, um gewissen Funktionalitäten zu prüfen bzw. zu entwickeln. Oftmals ist es jedoch gerade für Anfänger eine Herausforderung solch alltäglich gebräuchliche Tools zu verwenden bzw. einzurichten. Aus diesem Grund widmet  sich dieser Artikel dem Installieren eines lokalen Mailservers (MailHog) auf einem Linux Server, sowie dessen Konfiguration in einer TYPO3 7.6 Instanz.

Zu Beginn ist das richtige MailHog Packet von https://github.com/mailhog/MailHog/ releases zu downloaden. Ein guter Workaround hierfür ist:

1) Link der richtigen Version kopieren
2) In der Command Line via wget im Root Verzeichnis der lokalen Instanz herunterladen

Kleines Shell Script zum Auffinden von Bildern mit gewisser Größe

Voraussetzungen:

  • Bash
  • find, awk
  • identify von ImageMagick oder GraphicsMagick
#!/bin/bash

MIN_WIDTH=240
MIN_HEIGHT=200

# internal field separator, https://bash.cyberciti.biz/guide/$IFS
# changed to make file names with spaces work
OIFS="$IFS"
IFS=$'\n'
# find all files with type image
for image in `find . -type f -exec file {} \; | awk -F: '{if ($2 ~/image/) print $1}'`; do
# get image dimensions (width/height), ignore errors
       width_and_height=`identify -format '%w %h' "$image" 2>/dev/null`
       if test -n "$width_and_height"; then
               width=`echo "$width_and_height" | awk '{print $1}'`
               height=`echo "$width_and_height" | awk '{print $2}'`

               if [ "$width" -lt $MIN_WIDTH ] || [ "$height" -lt $MIN_HEIGHT ]; then
                       echo "wrong dimensions: $image $width x $height"
               fi
       else
               echo "unable to get image dimensions for $image"
       fi
done
IFS="$OIFS"

TCA-Konfiguration und der TYPO3-Cache

Wie man als TYPO3-Extension-Entwickler die Performanz eines Seitenaufrufs ganz leicht verbessern kann.

Seit der Version 6 LTS kann man in einer Extension verschiedene Konfigurationen des $TCA-Arrays, die traditionell in ext_tables.php abgelegt wurden, auslagern. Das sind zum einen Definitionen und Erweiterungen von SQL-Tabellen als auch Konfigurationen von Plugins.

Configuration/TCA/<tabelle>.php

TYPO3 erwartet in diesem Ordner Dateien mit PHP-Code, die ein komplettes $TCA-Array einer Tabelle mittels return zurückliefern. Der Dateiname ist hierbei der Name gleich wie jener der zu definierenden Tabelle.

Configuration/TCA/Overrides/<tabelle>.php

PHP-Dateien im Overrides-Ordner können verschiedene Manipulationen am $TCA-Array vornehmen. Der Name der Dateien ist für TYPO3 nicht von Bedeutung, allerdings ist es sinnvoll auch hier den Namen der Tabellen als Dateiname zu verwenden.

TYPO3camp in Wien vom 6.-8. Mai 2016

TYPO3campAnfang Mai findet auf der Hauptuniversität Wien das 1. TYPO3camp in Österreich statt. plan2net ist nicht nur Platinum-Sponsor des Events; unsere Kollegen werden in kurzen Vorträgen oder Sidetalks ihr Wissen mit den KollegInnen sehr gerne austauschen.

Am 6. Mai startet das TYPO3camps mit der Erstregistrierung und einer gemütlichen WarmUp-Party. Samstag und Sonntag geht es in Workshops und Themen-Sessions dann nur noch um TYPO3 – allerdings von Sessions für Beginners bis zu Deep insights für Senior Developers. Aber auch Projektmanager, Grafiker, Konzeptinisten und alle anderen Professionen rund um erfolgreiche Webarbeiten werden passende Vorträge und Sessions finden. (http://t3cvienna.camp/)

Live Chat auf meiner Website – Dos & Don’ts

Kundenservice mit einem Live Chat auf der eigenen Website anbieten ist nicht schwer – unzählige Anbieter und technisch einfache Lösungen verlocken zur raschen Implementierung. Doch was ist im Hintergrund zu beachten? Welche Fallstricke lauern? Wie gelingt hervorragender Kundensupport?

Was nützt Live Chat auf meiner Website?

Chatfunktionen etablieren sich zunehmend auch auf Websites, durch die Nutzung von Whats App und anderen Messengerdiensten ist die Bedienung vertraut. Kunden erwarten sich immer raschere Reaktionen und Antworten auf ihre Anliegen. Ein professionelles Chatangebot kann den Wettbewerbsvorteil bringen, gut betreute Kunden / Besucher kehren gerne wieder.
Doch genauso wie die Verlockungen des „wir installieren schnell einen Chat-Client“ lauert die Falle des Vertrauensverlustes: „dieses Angebot ist unprofessionell und erfüllt meine Erwartungen nicht“.
Um dieses Risiko abzufangen und zufriedene Besucher zu Referenzen zu machen, muss die Organisation im Hintergrund stimmen.

CSS Pseudo-Class :before und :after mit jQuery manipulieren

Das Problem

Frontend-Entwickler nutzen gerne die Pseudo-Klassen :before und :after, um zum Beispiel eine Form mit CSS zu erstellen ohne, dass man dazu ein Hintergrundbild benutzen muss. Beispiel:

.top-header:before {
background: #00589d none repeat scroll 0 0;
height: 61px;
position: absolute;
right: 64px;
top: 0;
transform: skewX(-25deg);
width: 31px;
z-index: 9;
}

Mit diesem Code habe ich ein schräges Rechteck erzeugt. Aufgabe war es, falls sich die Fenstergröße verändert, dann soll sich auch die Position ‚right‘ verschieben. Der neue Wert wird durch jQuery berechnet und in eine Variable gespeichert. Jetzt hatte ich ein Problem, weil man in jQuery keine Pseudoklassen manipulieren kann. Folgendes funktioniert NICHT:

Wer findet den Fehler? (Google Translate Bug)

Google meint es doch ZU wörtlich mit der Übersetzung:

https://translate.google.at/#auto/de/We%20are%20sorry%2C%20but%20content%20on%20this%20page%20is%20currently%20only%20available%20in%20German.

Google ist Dumm.

Können und Wollen sind nicht genug.

Können und Wollen als Grundvoraussetzungen für jede erfolgreiche Aktivität ist soweit seit tausenden Jahren klar. Diese zwei Voraussetzungen wurden hinreichend gelehrt und sogar zu einer „Können-Wollen-Matrix“ verarbeitet.

Aber diese Zwei sind nicht genug.
Es fehlt die Freiheit auch entscheiden zu dürfen Wann (Zeitpunkt) und Wenn (erkannte Notwendigkeit) man etwas mit seinem Können und Wollen darf.

Das klingt anfänglich vielleicht verwirrend erschliesst sich aber recht schnell sobald man verstanden hat, dass die freie Entscheidung das Richtige zum richtigen Zeitpunkt tun zu können das Gesamt-Ergebnis massiv verbessert.

Kurzum:

„Wenn ich nur darf, wenn ich soll,
aber nie kann, wenn ich will,
dann mag ich auch nicht, wenn ich muss.

GSA R.I.P. – EnterpriseSearch – Sensible Daten in Blackboxes & der Cloud

Ca. 80% der Enterprise-Search Kunden besteht aus öffentlichen Oranisationen, Banken, Versicherungen und Grossunternehmen, welche die GSA nicht nur zum Durchsuchen von öffentlichen Daten, sondern vor allem für sensible Daten nutzen. Diesen Unternehmen ist es, auf Grund des rechtlichen Umfeldes insbesondere in Eurpopa, nicht möglich einer Google-Cloud-Lösung zu erlauben ihre sensiblen Daten „in der Google-Cloud“ speichern zu lassen.

GSA R.I.P. – Déjà vu für Enterprise-Search Kunden

GSA-Kunden werden 2017 ein Enterprise-Search Déjà vu erleben:
– Bevor sie die GSA im Einsatz hatten, wünschten sich die Anwender, dass die Website- oder Intranet-Suche „so GUT WIE Google“ ist.
– Wir hörten Zitate wie: „Wenn ich auf unseren Websites etwas finden will, dann nutze ich google.com, dort finde ich mein Ziel schneller als mit unserer Suche.“
– Mit der danach gekauften, integrierten & konfigurierten GSA kann dieser Wunsch, zwar teuer aber recht einfach, zum Grossteil erfüllt werden.
– Durch die funktionalen Erweiterungen der öffentlichen Google-Suche, welche die GSA nicht abbilden kann, werden die Anwender ihr Argument „so GUT WIE Google“ jedoch wieder auf den Tisch bringen, und das zu Recht.

Anfrage