Maquettes : La guéguerre entre graphistes et intégrateurs

Aujourd’hui je suis tombé sur un article très intéressant sur hteumeuleu.fr répondant à un article de Maxime sur bewype.fr.

Le débat est simple et redondant : Les graphistes doivent-ils ou non avoir des bases en HTML/CSS?

Je suis dev-front aussi et je dois avouer qu’un graphiste qui connait un peu de HTML/CSS évite de concevoir une page web comme une affiche print. Je ne pense pas qu’un graphiste qui connait quelques limitations techniques sera bridé bien au contraire. D’ailleurs il me semble qu’une des meilleures techniques de création c’est justement se fixer des contraintes.

Sinon, si comme Maxime on se retrouve avec des graphistes qui font des choses « trop simples »… je suis désolé mais ça ne vient pas des contraintes. Cela vient simplement d’un peu de fainéantise ou pire de l’approche créative et production qui sont dirigées par le client…

Je bosse avec pas mal de graphistes qui connaissent peu le HTML mais c’est bien pour ça que le métier de concepteur existe. Enfin je crois…

Il y a cependant un peu de nuance à donner sur ce sujet. Je me souviens qu’en première année à Gobelins, ma binôme ne connaissait quasiment pas le web et nous avons beaucoup aimé cette aventure. Pourquoi? Simplement car elle m’a posé je ne sais pas combien de défis par jour et au final le résultat fut assez bllufant, même pour nous! Je précise quand même que depuis, elle a beaucoup apprit et nous travaillons toujours ensemble. Ça ne l’a pas bridé pour autant par contre nous travaillons 5 à 6 fois plus vite.

Supprimer les répertoires .svn sous Linux

Toujours pour créer mon fichier iso j’ai eu besoin de nettoyer l’archive qu’on m’a envoyer de tous les .svn. Pour ne rien vous cacher j’ai trouvé l’astuce chez Korben et comme il le dit si bien, ça recherche les dossiers .svn et ça les supprime…

find . -name ".svn" -type d -exec rm -rf {} \; > /dev/null 2>&1

Simple, et utile. Bon on préfèrera faire un export SVN dans les règles mais quand on a pas le repository ça aide.

.htaccess – Trucs et astuces

Voici quelques astuces à utiliser dans un .htaccess. Rien de bien nouveau car tout est disponible directement depuis la configuration Apache mais ça peut servir de mémo. N’hésitez pas à en rajouter dans les commentaires, je les mettrai dans l’article.

Redirection vers le sous domaine sans les www

RewriteCond %{HTTP_HOST} ^www.(. )$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

Forcer le téléchargement d’un fichier

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

Compresser des fichiers

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml

Compresser des fichiers en utilisant GZip

<IfModule mod_gzip.c>
    mod_gzip_on       Yes
    mod_gzip_dechunk  Yes
    mod_gzip_item_include file      .(html?|txt|css|js|php|pl)$
    mod_gzip_item_include handler   ^cgi-script$
    mod_gzip_item_include mime      ^text/.*
    mod_gzip_item_include mime      ^application/x-javascript.*
    mod_gzip_item_exclude mime      ^image/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

Mettre en cache plusieurs types de fichiers

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
    Header set Cache-Control "max-age=2592000"
</FilesMatch>

Protéger des images du hotlinking

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www.)?foo.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} ^http://(www.)?bar.com/.*$ [NC]
RewriteCond %{REQUEST_FILENAME} !/images/divers/myimage.jpg$ [NC]
RewriteRule .(gif|jpg|jpeg|png)$ /images/divers/thumbnail.jpg [R,L]

Désactiver l’exploration des dossiers

Options All -Indexes

Créer une page d’erreur personnalisée

ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

Définir la page par défaut des répertoires (autre que index.html)

DirectoryIndex mydefaultpage.html

Forcer le slash à la fin d’une URL

<IfModule mod_rewrite.c>
 RewriteCond %{REQUEST_URI} /+[^\.]+$
 RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>

Rediriger les mobiles

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/m/.*$
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
#------------- The line below excludes the iPad
RewriteCond %{HTTP_USER_AGENT} !^.*iPad.*$
#-------------
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] #*SEE NOTE BELOW
RewriteRule ^(.*)$ /m/ [L,R=302]

Configurer le site pour les videos HTML5

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
AddType video/ogg .ogv
AddType video/ogg .ogg
AddType video/mp4 .mp4
AddType video/webm .webm
AddType application/x-shockwave-flash swf

Exécuter du PHP dans des fichiers Javascript

AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js

<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>