Release virus quarantined email in Zimbra 8.x

I recently received an email with an encrypted attachment. This was blocked by Zimbra and placed in quarantine. In previous versions, there was the possibility to send the email again, but since version 8.0.6 this no longer works.

In previous versions of Zimbra, you could run a command which made it possible to send the email again. However, this command does not work in version 8.0.6. I came across a forum post where someone explained how to open the quarantine account via webmail.

You can find the answer in this forumpost:

http://www.zimbra.com/forums/administrators/60865-release-quarantine-zcs-8-x-version.html#post335466

This post made it possible for me to read the email and to download the encrypted attachment.

Website korte tijd offline wegens DDoS aanval

Vandaag is TransIP, het bedrijf waar ik mijn domeinnamen heb geregistreerd en een VPS heb draaien, aangevallen doormiddel van een DDoS aanval.

De VPS en website(s) waren korte tijd niet bereikbaar. Gelukkig is TransIP erin geslaagd de aanval af te wenden:

Nieuwe website Studio Frank Rijk

Vorige week is de nieuwe website van Studio Frank Rijk online gegaan. Van een oud WordPress thema naar een nieuwe thema, een child-theme, voorzien van headers waarop foto’s staan van de studio, de oefenruimte en de repetitieruimte. De website past zich aan naar de schermen van tablets en smartphones en is daardoor op elk apparaat te gebruiken.

Verder zijn de afbeeldingen geoptimaliseerd om zo min mogelijk bandbreedte te verbruiken en daardoor een optimale gebruikerservaring neer te zetten.

Specifieke CSS selector voor uitgaande domeinnamen

Ik ben constant bezig om mijn weblog over fotografie te verbeteren. Vandaag had ik weer een nieuw idee: bij elke uitgaande link wil ik een icoontje wat aangeeft dat het een externe link is. Daarvoor moet ik verschillende CSS selectors gebruiken om het gewenste doel te bereiken.

Na zoeken kwam ik op de volgende code uit:

a[href]:not([href*="maartenvandekamp.nl"])::after

Wat deze code doet is zoeken naar het element href, een attribuut van a, en als de href GEEN (vandaar not() ) maartenvandekamp.nl bevat, dan moet er een icoontje achter. Maar hij pakte alle links waar geen maartenvandekamp.nl in zat, ook links die wel intern waren maar een href van /stel-een-vraag/ hadden.

Dat was niet de bedoeling.

Specifieker zijn

Ik moest specifieker zijn en aangeven in welke class hij deze selector uit moest voeren: de class .entry-content, waarin de tekst van het artikel staat en .comment-content, de class waarin de tekst van de reactie staat. Uiteindelijk is het de volgende code geworden:

.entry-content a[href]:not([href*="maartenvandekamp.nl"])::after,
.comment-content a[href]:not([href*="maartenvandekamp.nl"])::after {
 font: normal 16px/1.75 'Genericons';
 content: '\f442';
 vertical-align: middle;
}

Nu worden links netjes voorzien van een icoontje, op basis van Genericons, aan de link toegevoegd.

Detect changing Public IP with PowerShell

I’m using an internet connection from an ISP called Telfort, and this week my public IP-address suddenly changed (without notice) which left me unable to receive email for 6 hours. Sadly, it’s not possible to get a static ip-address with this ISP.

To prevent future downtime I searched for a program that sends an email when my public IP-adress changes. I found an PowerShell script that fulfills all my needs.

This script checks the response every hour from the website ( the response is my external IP-address, generated with simple PHP code ). It checks whether the external IP is still the same as the one in the file ip.txt.

When it’s changed, an email is send to the user(s) that are defined in the .ps1 file. Of course, this is another email address then the one I host at my mail server at home.

Van nginx+PHP-FPM met memcached en APC naar nginx+HHVM

Ik draai nu een aantal weken op de combinatie van nginx en HHVM, waar ik eerder gebruik maakte van nginx en php-fpm, memcached en APC om de website www.maartenvandekamp.nl snel te serveren aan bezoekers.

Het grootste verschil is het geheugengebruik en de configuratie van MySQL.

Vroeger

Eerst draaide www.maartenvandekamp.nl op een nginx webserver met php-fpm als PHP daemon. Op een gegeven moment merkte ik dat het een seconde kon duren voordat een pagina getoond werd en dat vond ik te lang. Daarom besloot ik om APC toe te voegen zodat geparste PHP code gecached werd in het geheugen, wat de hoeveelheid rekentijd verminderde.

Dat bleek deels te helpen, maar alsnog duurde het soms lang voordat alle content geladen was. Daarom besloot ik om ook memcached te gaan gebruiken. De eerste keer dat een pagina bezocht werd, kon memcached nog niets serveren omdat het nog niet in de cache stond. Maar de tweede keer dat een pagina opgevraagd werd, kon dit wel uit de cache gehaald worden. Hierdoor werd MySQL minimaal belast en deze was geconfigureerd op minimaal gebruik.

Nu

Toen schakelde ik over op HHVM, na een paar dagen testen met deze blog. APC en memcached waren niet meer nodig omdat HHVM vele malen sneller is en minder resources nodig heeft. De grote uitdaging was nu de MySQL database, want de configuratie was niet geschikt voor de nieuwe situatie. De database klapte er regelmatig uit.

Nu wordt alle informatie direct uit de database gehaald, waardoor deze veel sneller queries moet kunnen verwerken dan eerder. Alle lagen van caching zijn er nu tussenuit, wat gelukkig het refreshen van de cache bij een update overbodig maakt.

Resultaat

Het resultaat is dat de website sneller is geworden en de tijd om een pagina te laden verkort is.

VPS Upgrade

Je zult het misschien de afgelopen drie uur gemerkt hebben: de website lag eruit. Dat komt omdat ik onderhuids een upgrade heb uitgevoerd aan het besturingssysteem waarop deze website, samen met andere, op draait.

Vanaf nu is de website weer volledig bereikbaar én sneller dan ooit!

HipHop

Nee, niet de muziek, maar HHVM (HipHopVM). Oorspronkelijk ontwikkeld door Facebook en ondertussen vrijgegeven op GitHub. Hiermee kun je PHP code om laten zetten naar machine code waardoor het veel sneller uit te voeren is. Cachen is niet meer nodig.

Het werkt momenteel alleen voor deze blog en voor fotobattle.nl, en nog niet voor maartenvandekamp.nl. Uiteindelijk wil ik alles overzetten naar HHVM zodat ik APC en Memcached niet meer hoef te gebruiken.