Ivaldi blog

Frank Groeneveld

Compressed mail in Dovecot

6 december 2011, door Frank Groeneveld

For one of our clients, I had to compress mails stored by Dovecot (to save some diskspace on their mail server). In the Dovecot wiki you can find a pseudo script that can do this for you. I used that to write the following script.

#!/bin/bash
if [[ $1 == "" ]]; then
        echo $0 " "
        exit -1
fi

tocompress=`cd $1/cur/ && find . -iname '*,S=*[^Z]'`

for mail in $tocompress; do
        echo "gzipping $1/cur/$mail to $1/tmp/${mail}Z"
        gzip -S Z "$1/cur/$mail" -c > "$1/tmp/${mail}Z"
        echo "setting mtime"
        touch -r "$1/cur/$mail" "$1/tmp/${mail}Z"
done

echo "aquiring maildirlock"
if PID=`/usr/lib/dovecot/maildirlock $1/cur 20`; then
        #locking successfull, moving compressed files
        for mail in $tocompress; do
                mv $1/tmp/${mail}Z $1/cur/
                rm $1/cur/${mail}
        done
        kill $PID
else
        echo "lock failed"
        exit -1
fi

Make sure you enable the zlib plugin in your Dovecot config (as described in the wiki).

Michel Fiege

HTML / CSS stage in Rotterdam

21 november 2011, door Michel Fiege

Ben jij op zoek naar een stage waarin je leert om websites te bouwen? Wij zijn op zoek naar een handige HTML'er (of HTML'ster) met een passie voor het web en webstandaarden. Je helpt mee aan het bouwen van websites op basis van WordPress, Magento en Zend Framework.

Wat verwachten we van je?

Je kunt een ontwerp voor een website omzetten in een daadwerkelijke website. Je gebruikt hierbij HTML en CSS en werkt, of leert werken, volgens de laatste webstandaarden. Van termen als CSS3, HTML5 en jQuery word je blij. Ervaring met het vertalen van een ontwerp naar HTML/CSS is een pré, evenals een "gevoel" voor usability en design. We zijn op zoek naar iemand met minstens HBO denkniveau.

Wat bieden wij?

Een klein team gezellige collega's met verschillende achtergronden, een nette stagevergoeding en kans op een vaste aanstelling. Verder is ons kantoor goed bereikbaar en hebben we een gezellige vrijdag-middag-borrel op kantoor. Wat wil je nog meer?

Solliciteren?

Stuur dan een kort C.V. met een begeleidende brief en je portfolio naaren je hoort van ons!

Frank Groeneveld

Verhuisd naar echt kantoor

31 oktober 2011, door Frank Groeneveld

Afgelopen weekeind is Ivaldi verhuisd naar de Vlasfabriek. Vanaf nu geen anti-kraak pand meer, maar een echt pand, gratis parkeren voor de deur en goed bereikbaar vanaf de A13 en de A20. Vanaf vandaag kun je ons dus vinden op Overschieseweg 10e, 3044EE Rotterdam.

Heb je binnenkort tijd? Kom dan gerust langs voor een vers bakkie.

Frank Groeneveld

If statements in XPath 1.0

21 oktober 2011, door Frank Groeneveld

For a reflection field that I'm using in a Symphony CMS project, I needed to create an XPath conditional expression. XPath 2.0 supports if statements, but I couldn't use those because PHP-XSL only support XPath 1.0. After searching on the internet I finally came up with this solution:

substring('repeat', 1, number(factuur/herhaling = 'Yes') * string-length('repeat'))

This statement will return "repeat" when factuur/herhaling is checked in the CMS. Not the most readable solution, but it does work!

Frank Groeneveld

XSLT eating whitespace

21 oktober 2011, door Frank Groeneveld

I wanted to fill an HTML tag with three data nodes using <xsl:value-of select="the/node/path" /> and seperate them with whitespace. My first thought was a construction like this in my <xsl:template match="/data/klant/entry">

<td><xsl:value-of select="voornaam" /> <xsl:value-of select="tussenvoegsel" /> <xsl:value-of select="achternaam" /></td>

However, this will result in the white space between the <xsl:value-of> statements being removed. After posting on the Symphony CMS forum, nickdunn suggested using this solution:

<td><xsl:value-of select="concat(voornaam, ' ', tussenvoegsel, ' ', achternaam)" /></td>

As you can see, this will even make the code more readable. Thanks Nick!

Frank Groeneveld

Lancering Beste Garage

4 oktober 2011, door Frank Groeneveld

Gisteren was het eindelijk zo ver: de lancering van Beste Garage. Een website ontwikkeld door Ivaldi, waarmee consumenten makkelijk een goede garage voor hun auto kunnen vinden. Dit idee van Steven Kop, Theo van Andel en Robin van Koppen werd in maart aan Ivaldi gepresenteerd. Iedereen was gelijk enthousiast. In enkele maanden tijd vormden we het concept om in een concrete website.

Momenteel zijn een groot aantal garages uit de regio Rotterdam vermeld. Zie je jou garage er tussen staan? Plaats dan gelijk een beoordeling om zo de kwaliteit van de zoekresultaten te verbeteren!

Bas Schoenmakers

Flirten met je iPhone

12 september 2011, door Bas Schoenmakers

In opdracht van Sparkle* online dating ontwikkelde Ivaldi de iPhone applicatie Flirtboard. Met Flirtboard wordt het makkelijk om in het Engels (de meest universele taal ter wereld) te flirten wanneer je wil en waar je ook bent.

Flirten is nog nooit zo eenvoudig geweest. Start de app, kies je openingszin en draai je iPhone. Download hem nu in de appstore en beproef je geluk!

Bas Schoenmakers

WeSkate iPhone app

21 juli 2011, door Bas Schoenmakers

The Wednesday Night Skate is een begrip in Rotterdam. Ook dit jaar wordt dit fantastische evenement georganiseerd en gehouden in Rotterdam centrum. Samen met Poet | Farmer ontwikkelde Ivaldi de internetactiviteiten voor de Wednesday Night Skate. Dit betekende naast een website ook een iPhone app.

De Wednesday Night Skate (WeSkate) app is te vinden in de App Store. Met behulp van de applicatie is het mogelijk om op de hoogte te blijven van de laatste updates door middel van notificaties. Tevens is alle informatie over de verschillende evenementen terug te vinden en kan je je vrienden uitnodigen voor het evenement door middel van Facebook. Download hem dus snel en zorg dat je volgende week woensdag aanwezig bent!

Bas Schoenmakers

TwentyMinut.es

27 mei 2011, door Bas Schoenmakers

Afgelopen woensdagochtend bezocht ik samen met Martijn het nieuwe evenement TwentyMinut.es. TwentyMinut.es is een inspirerende ochtendsessie georganiseerd door o.a. Elastik Concepts en Poet | Farmer.

Het principe is eenvoudig:
- Twintig minuten opwarmen met een lekker hapje en drankje
- Twintig minuten een inspirerende sessie (in dit geval van Jeroen Wielaard)
- Twintig minuten uitloop

    Het evenement was een succes en zeker een aanrader voor mensen die inspiratie zoeken op het gebied van online ontwikkelingen. Houdt de website dus in de gaten en zorg dat je de volgende editie niet mist.

    Frank Groeneveld

    Mobiele HTML5 “apps”

    20 mei 2011, door Frank Groeneveld

    De ontwikkelingen in de mobiele wereld gaan heel snel. Voor ons is dat natuurlijk mooi om te zien. Als bedrijf proberen we altijd mee te gaan en innovatief te zijn, maar sommige concepten zijn voor klanten nog "te innovatief".

    Een goed voorbeeld is de HTML5 "app." Hierbij bouwen we een website die op zowel een iPhone als een Android telefoon gebruikt kan worden, waarbij de gebruiker het idee krijgt dat hij werkt met een normale "native" app. Ontwikkeling hiervan is niet gebonden aan de strenge regels van de Apple App Store en de applicatie kan dus gelijk online gezet worden zodra de klant tevreden is. Verder kan dezelfde applicatie gebruikt worden op verschillende platformen. Deze kan dus bijvoorbeeld in één keer ontwikkelt worden voor iOS en Android. Mocht de applicatie niet altijd internet nodig hebben, kan een HTML5 app zelfs werken zonder internetverbinding. Bekijk bijvoorbeeld eens Offline Tetris.

    Momenteel hebben wij een offerte uitstaan voor een offline HTML5 app vergelijkbaar met een encyclopedie. Zodra de applicatie verbinding kan maken met het internet worden de nieuwste gegevens gedownload, maar mocht er geen internetverbinding zijn dan kan de applicatie nog steeds gebruikt worden met de oude data.

    Hopelijk gaat de opdracht door en kan ik over een tijdje deze applicatie toevoegen aan ons portfolio!