Archive for Work

Een favicon met houdbaarheidsdatum

// July 28th, 2010 // No Comments » // Work

De laatste weken heb ik me op het werk meer dan anders bezig mogen houden met de kleine dingen die een website sneller zouden moeten maken. Eentje daarvan was het inschakelen van mod_expires in Apache om voor bepaalde afbeeldingen automatisch enkele headers mee te sturen die invloed hebben op de caching ervan. Dat bleek echter niet zomaar te werken voor het favicon icoon…

mod_expires

Om van mod_expires gebruik te kunnen maken, moet de module eerst ingeladen worden in httpd.conf. Over het algemeen staat ze standaard al uit commentaar, is dat niet het geval, dan volstaat het om het hekje (#) van voor de volgende regel te halen.

LoadModule expires_module modules/mod_expires.so

De afbeeldingen worden, op basis van de plaats waar ze gebruikt worden op onze website, bewaard in verschillende folders. Elk van die folders moet een eigen set aan regels hebben om de ‘houdbaarheidsdatum’ van de afbeeldingen erin te bepalen. Dat gebeurt door middel van enkele regels in het .htaccess bestand van elke folder:

<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/png “access plus 1 weeks”
ExpiresByType image/gif “access plus 1 weeks”
ExpiresByType image/jpg “access plus 1 weeks”
ExpiresByType image/jpeg “access plus 1 weeks”
</IfModule>

Het probleem met ico

Afgelopen weekend viel het me op dat het favicon icoon geen expires header mee kreeg. Ik dacht dat even snel op te lossen door in de .htaccess van de root een regel op te nemen voor het type ‘image/ico’… maar dat bleek niet te bestaan :-)

Even Googlen bracht me echter snel de oplossing: een type toevoegen aan de Apache config en die vervolgens gebruiken in de .htaccess.
Het MIME-type image/x-icon toevoegen aan httpd.conf:

AddType image/x-icon .ico

En in de .htaccess van de root volgende code gebruiken:

<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/x-icon “access plus 1 years”
</IfModule>

Goed of slecht?

Wikipedia vertelde me later dat het gekozen type eigenlijk niet correct was, maar aangezien het nu werkt en de favicon een expires header van een jaar meekrijgt, laat ik het (voorlopig althans) maar even zo…

CentOS 5.3 en JSON

// July 29th, 2009 // No Comments » // Work

Ik ben vandaag even op zoek geweest naar een mogelijkheid om JSON in gang te krijgen op een CentOS 5.3. Vanaf versie 5.2 zit alle JSON functionaliteit in PHP ingebakken, maar CentOS 5.3 bevat PHP 5.1.6… Op het internet zijn er hier en daar wel posts te vinden die dit probleem aankaarten, maar geen daarvan bevatte alle stappen die ik heb moeten nemen om het werkend te krijgen, vandaar dat ik ze hier graag even samenvat :-)

PHP

Allereerst is het misschien wel interessant om te kijken welke versie van PHP er geïnstalleerd is. Dat kan je heel simpel doen door in de console de volgende opdracht uit te voeren:

# php -v

Wil je ook een overzicht van de gecompileerde modules, dan gebruik je de optie -m

# php -m

Benodigde pakketten installeren

Afhankelijk van de bij de installatie van CentOS gekozen onderdelen, kan het nodig zijn dat er eerst enkele benodigde pakketten opgehaald moeten worden. Zo hebben we een C compiler (GCC), de php-devel package en PEAR nodig.

# yum install gcc
# yum install php-devel
# yum install php-pear*

Installatie van JSON

Omdat de in php.ini gestelde limieten naar geheugen toe genegeerd worden, kan JSON niet geïnstalleerd worden met een PECL commando. Het kan wel via een kleine PEAR omweg:

# pear install pecl/json

JSON module inschakelen in PHP

De module kan toegevoegd worden in de php.ini of in een eigen configuratiebestand. Ik koos voor de laatste optie:

# echo “extension=json.so” >> /etc/php.d/json.ini

Herstarten van de webserver

Om de aanpassingen te activeren, moet de Apache herstart worden:

# /etc/init.d/httpd restart

Controleren of de module effectief is toegevoegd aan PHP kan door de lijst met modules opnieuw  op te vragen via:

# php -m

Als je json in de lijst ziet staan, is alles in orde…

Drupal en register_globals

// July 25th, 2009 // 2 Comments » // Life, Work

Het was al een tijdje geleden – understatement – dat ik me nog eens met Drupal had beziggehouden, dus ik was blij verrast toen ik eerder deze week de nieuwste versie installeerde en zag dat het ondertussen alweer een stuk volwassener geworden is (en het was vroeger al dik in orde). Tijdens de installatie kreeg ik echter wel de opmerking dat de register_globals-optie van PHP uit moest worden gezet. Ik dacht dat even via een .htaccess-bestand voor elkaar te krijgen, maar dat haalde niets uit.

Uiteindelijk heb ik het opgelost gekregen door een bestand met de naam php.ini in de root van de Drupal installatie te zetten. In dat bestand staan slechts twee regeltjes, namelijk:

[PHP]
register_globals = Off

De kans is groot dat ik bij een volgende installatie weer tegen de lamp loop, dus bij deze heb ik mezelf al de oplossing gegeven :-)

Meer info omtrent de register_globals problematiek binnen Drupal vind je trouwens hier

Nostalgie is…

// June 20th, 2008 // 2 Comments » // Work

Darkthrone luisteren op het werk… vóór de collega’s er zijn, wel te verstaan :-)

Darkthrone...

Morgen

// May 16th, 2008 // 2 Comments » // Work

Morgen is het opendeurdag in het VTI van Aalst en ik ga daar ook even langs voor een missie die ik nog even geheim wil houden… Spannend he? ;-)

Kleine update

// May 15th, 2008 // No Comments » // Life, Work

Het vroege zomerzonnetje zorgde er voor dat de computer de voorbije week al eens sneller uit werd gezet dan gewoonlijk. Nu de regen weer met bakjes uit de lucht aan het vallen is, wordt het dus hoog tijd om even een update te schrijven.
Er is maar één hoofdpunt in dit bericht en dat is zonder al te veel twijfel het feit dat Nele een job te pakken heeft! Vanaf begin volgende maand documentaliseert ze bekende kleuren…

Bad hair day?

// April 23rd, 2008 // 1 Comment » // Work

Beetje prikkelbaar?

Met een kleine knipoog naar Marijke ;-)

Drupal 6

// February 15th, 2008 // No Comments » // Life, Work

DrupalSinds eergisteren werd Drupal 6.0 losgelaten op de wereld. Volgens de release announcement zitten er heel wat leuke nieuwigheden in deze versie. Met grote verwachtingen ben ik dan ook een klein uurtje geleden aan de installatie van een testsite begonnen en ik ben erg onder de indruk. Ik vond de vorige versie al dik in orde en deze ziet er op het eerste zicht weer eens stukken beter uit… Een dikke proficiat voor zij die verantwoordelijk zijn voor dit pareltje is hier wel op zijn plaats ;-)

Top 100 Web 2.0 generators

// February 14th, 2008 // No Comments » // Life, Work

Generated ImageEergisteren was ik op zoek naar iets wat ik ondertussen alweer vergeten ben, maar het had iets te maken met javascript. Dat is op zijn beurt onlosmakelijk verbonden met Web 2.0 tegenwoordig en daarom kwam ik waarschijnlijk op een bepaald moment uit op een top 100 van online Web 2.0-achtige generatoren. Logo’s, knoppekes, badges, afrondingen, streepkes en noem maar op… minstens één avond plezier verzekerd dus! Laat het weten als je’r iets zinnigs mee zou doen he ;-)

Drukke week

// November 27th, 2007 // No Comments » // Life, Work

Je had het ongetwijfeld al gemerkt aan het aantal posts: het is een drukke week geweest. De avonden werden voornamelijk gevuld met meubels in elkaar steken en over-en-weer rijden tussen thuis en de IKEA. Ik kan jullie alvast vertellen dat ik unaniem beslist heb om van ons nieuwe bed het laatste te maken dat we bij IKEA kopen :-) Desalniettemin slapen we de voorbije dagen alweer iets comfortabeler… Marit is trouwens afgelopen weekend ook bij Jorunn ingetrokken voor wat het slapen betreft. En voorlopig zonder al te veel problemen!
Op het werk hebben we opnieuw een stevige wedstrijd in elkaar gebokst: de pluk-een-ster-en-win-een-brolleken-wedstrijd. Er zitten ook mooie prijzen tussen hoor, maar je moet een beetje geluk hebben…
In de voorbije dagen is er ook even plaats geweest voor ontspanning, want zondagnamiddag (en -avond) hebben we Foody en Fury of Dracula gespeeld met Riet, Nico en Benoit. Vooral in dat laatste spel had ik al lang eens zin, dus dat heeft deugd gedaan… hoewel we helemaal niet tot op het einde gespeeld hebben :-)