Les tutoriels d’installation d’un serveur web pullulent sur le net. Mais Linux étant ce qu’il est, la plupart des packages (programme que vous installez sur votre serveur) sont rapidement obsolètes. Ainsi, dès que vous souhaitez suivre un tuto, vous tombez vite sur des erreurs ou carrément sur des configurations totalement différentes et donc inutilisables.

Je ne suis, pour ma part, absolument pas administrateur serveur/réseau. Ce n’est pas ma spécialité et je ne peux même pas dire que j’aime ça. Mais il n’empêche, qu’en quelques mois, j’ai dû installer plus d’une vingtaines de serveurs et donc c’est tout naturellement que je voulais vous partager ma méthode.

Ainsi, nous allons voir ensemble comment installer et configurer un serveur web sous Linux Debian assez basique mais amplement suffisant pour la création d’un site internet.

Sommaire :

  • Chapitre 1 : Les bases
  • Chapitre 2 : Apache
  • Chapitre 3 : PHP
  • Chapitre 4 : Base de donnée
  • Chapitre 5 : Serveur mail

Chapitre 1 : Les bases

Lorsque vous achetez (ou louez) un serveur web chez un hébergeur, celui-ci vous installe une distribution dessus. Par exemple chez Online, il vous laisse le choix entre plusieurs systèmes d’exploitation (si vous êtes en mode « serveur ») : Debian, Ubuntu, Centos, Windows, ESXI, Mageia, Proxmox et Fedora. Pour ce tutoriel, nous avons choisi le système d’exploitation Debian en version 64 bits.

Une fois votre serveur installé, il faut maintenant vous connecter dessus, nous allons utiliser pour ça, un protocole appelé SSH. C’est un protocole sécurisé qui permet de prendre le contrôle total de votre machine en ligne de commande. Sachez qu’il faut attendre entre 3 et 15 minutes après le premier allumage d’un serveur pour que le SSH fonctionne. Ainsi, si vous n’arrivez pas à vous connecter, retenter d’ici quelques minutes.

Pour se connecter en SSH sur votre serveur, vous avez plusieurs possibilités :

– Pour Windows : Installez Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)

– Pour Mac : Utilisez directement votre terminal (/Applications/Utilitaires/Terminal)

– Pour Linux : Votre console fera amplement l’affaire …

Pour notre tutoriel, j’utilise le terminal de Mac OS X.  Son utilisation est exactement la même que la console de linux. Par contre, l’utilisation de putty est légèrement différente au niveau de la connexion au serveur. Celui-ci vous demande l’IP de votre serveur, le nom d’utilisateur et le mot de passe directement dans une fenêtre avant votre connexion et ce dernier vous connecte automatiquement au serveur. Ainsi, pour ceux qui utilisent putty, ne prenez pas en compte cette étape. Pour les autres, voici la ligne de commande a effectuer :

ssh  root@123.123.123.123

« root » est le super utilisateur par défaut de votre machine, celui-ci a les pleins pouvoir sur tous les fichier. Remplacez bien évidement 123.123.123.123 par l’IP de votre machine. La première fois que vous vous connecterez à votre serveur, votre ordinateur va vous demander si vous lui faites confiance. Ce choix vous appartiens entièrement, mais s’il est négatif, vous ne pourrez pas vous y connecter. C’est bête …

Ensuite, votre serveur vous demandera votre mot de passe. Attention ! Vous aurez beau le taper, celui-ci ne s’affichera pas, c’est tout à fait normal, simple question de sécurité. Valider simplement avec la touche « Entrer », vous êtes donc maintenant connecté à votre serveur.

Premier réflexe ! Mettre à jour votre machine. Commencez par rechercher des mises à jours :

apt-get update

Puis installez-les :

apt-get upgrade

Cette seconde opération est un peu plus longue (5 minutes chez moi) et peux vous poser quelques questions assez simples à répondre (il me demande par exemple le type de clavier que je veux utiliser, ce qui est totalement inutile, mais rien que pour me la péter, je sélectionne le MacBook Pro), si vous ne savez pas quoi répondre, la valeur par défaut est toujours idéale.

Votre serveur est à jour, nous sommes prêt à faire joujoux avec.

Chapitre 2 : Apache

Apache est le programme qui permettra à votre serveur d’interpréter vos fichiers et de les associer à une URL. Pour l’installer, exécutez la ligne de commande suivante :

apt-get install apache2

Félicitation, votre serveur est maintenant officiellement un serveur « web ». Tapez l’IP de votre machine dans votre navigateur, et vous verrez un beau « It works ! » apparaître. Ce fichier se trouve dans le répertoire « /var/www/ » par défaut. Cependant, certains d’entre vous n’ont pas forcément envie que leur site soit accessible directement depuis son IP. Apache nous permet donc de filtrer les entrées en fonction du nom de domaine appelé et de les rediriger vers des répertoires différents grâce aux fichier vhost. Nous allons donc maintenant configurer votre premier site (à tout hasard test.com).

Nous allons commencer par créer le répertoire qui accueillera le site en question. Allez dans le répertoire d’apache par défaut :

 cd /var/www/

Puis créez votre répertoire au nom de votre site :

mkdir test.com

Le répertoire /var/www/test.com/ est maintenant créé et va pouvoir accueillir votre site internet. Créons donc sa première page index.html qui va nous permettre de tester si apache est bien configuré :

nano /var/www/test.com/index.html

Remplissez le avec un code HTML, juste de quoi attester de la présence du fichier :

<center><b>Vous êtes maintenant sur le site test.com</b></center>

Pour enregistrer les fichier, appuyez sur CTRL + X puis validez. Nous allons maintenant créer le vhost qui correspondra au nom de domaine test.com

cd /etc/apache2/sites-available
nano test.conf

Et voici votre premier vhost :

<VirtualHost *:80>
        ServerAdmin contact@test.com
        ServerName test.com
        ServerAlias www.test.com
        DocumentRoot /var/www/test.com
        <Directory /var/www/test.com>
                Options -Indexes FollowSymLinks
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

Je m’explique :

ServerAdmin : L’adresse e-mail à renvoyer à vos utilisateur si une erreur survient

ServerName : Le nom de domaine sur lequel doit répondre le serveur

ServerAlias : Les alias du nom de domaine, comme le www ou d’autres sous-domaines

DocumentRoot : La racine de votre répertoire pointant vers le site

Toute la partie Directory représente les droits des fichiers du serveur (je ne développerais pas plus ici, sachez juste que les valeurs de notre vhost sont optimales pour un site web).

Enregistrez le fichier. Il faut maintenant l’activer, et pour ça, rien de plus simple :

a2ensite test

Maintenant, apprenez par coeur la ligne de commande suivante, elle vous permettra de prendre en compte les modifications effectuées à Apache et de redémarrer ce dernier :

service apache2 restart

Votre serveur est maintenant configuré pour recevoir le trafic venant du domaine test.com et redirigé vers le dossier /var/www/test.com/.

Par contre, vous l’aurez remarqué, le vrai domaine test.com ne pointe pas forcément sur votre serveur (si c’est le cas, vous avez énormément de chance !), nous allons, pour tester notre configuration, obliger votre ordinateur à rediriger test.com vers votre serveur.

Sur mac, ouvrez Finder, dans le menu, choisissez « Aller » puis « Allez au dossier » et tapez le répertoire suivant :

/private/etc/

Trouvez le fichier « host » (sans extension). Clic droit, « lire les informations ». Dans la partie « Partage et permissions » sélectionnez votre utilisateur et définissez lui le droit « Lecture et écriture » puis ouvrez le fichier avec votre éditeur de texte. Pour les autres systèmes d’exploitation, la manipulation est très similaire. Une petite recherche Google vous permettra d’arriver à vos fins. Une fois sur le fichier, rajouter à la fin de celui ci la ligne suivante :

123.123.123.123 test.com www.test.com

Notez que nous n’utilisons pas d’espace mais des tabulations ! Enregistrez. Vous venez d’apprendre à votre ordinateur à rediriger test.com et www.test.com vers l’IP 123.123.123.123 (modifiez cet IP par celui de votre serveur). Vous pouvez maintenant vous rendre à l’adresse http://www.test.com et vous allez voir votre fichier index.html.

Vous avez la possibilité, pour des questions de sécurité, de supprimer la redirection par défaut sur le répertoire /var/www en désactivant le vhost default :

a2dissite default

N’oubliez pas de redémarrer apache :

service apache2 restart

Si vous avez l’intention d’utiliser de l’URL rewriting, n’oubliez pas d’activer le mode, pour cela, rien de plus simple :

a2enmod rewrite

Votre apache est maintenant configuré correctement. Vous êtes presque prêt à installer votre site internet. Il manque encore un petit détail : votre serveur ne sait que lire vos fichiers, pas les interpréter. Nous devons donc installer PHP.

Chapitre 3 : PHP

Cette installation est très rapide et ne demande aucune configuration !

apt-get install php5

On peut également rajouter tout de suite quelques librairies bien utiles

apt-get install php-pear php5-gd php5-curl

On va maintenant vérifier que PHP fonctionne bien, pour cela, il suffit d’installer un fichier à la racine de votre site test.com avec à l’intérieur un phpinfo() :

nano /var/www/test.com/phpinfo.php

Et entrez le code suivant dans votre page :

<?php
phpinfo();
?>

Enregistrez et rendez-vous sur l’url de la page : http://www.test.com/phpinfo.php. Voici un récapitulatif de toutes les informations PHP de votre serveur. PHP est donc bien installé.

Chapitre 4 : Base de donnée

J’ai fait depuis longtemps le choix d’une base de donnée décentralisée, histoire de gagner du temps. Mais si vous souhaitez installer une base de donnée sur votre serveur, alors il vous faut installer MySQL, apprendre à votre serveur à faire communiquer votre base de donnée et PHP et enfin, vous donner la possibilité d’administrer cette base de donnée.

Pour commencer, il faut installer mysql :

apt-get install mysql-server

On va vous demander le mot de passe administrateur de votre base de donnée, notez le bien. Ensuite, apprenons à PHP à communiquer avec la base de donnée :

apt-get install php5-mysql

Et enfin, installons PHPMyAdmin qui nous permettra d’administrer cette base de donnée.

apt-get install phpmyadmin

Il va d’abords vous demander de faire un choix entre lighthttpd et apache2. Choisissez apache2 (attention, le fait qu’il soit surligné par défaut ne le sélectionne pas pour autant. Il vous faut appuyer sur la barre d’espace pour voir une étoile apparaître devant « apache2 »). Ensuite, il va vous demander l’autorisation de modifier votre base de donnée, répondez oui puis donnez lui le mot de passe de celle-ci. Il vous demandera ensuite de choisir un mot de passe pour vous connecter à PHPMyAdmin. Voila, PHPMyAdmin est installé avec succès. Vous devriez pouvoir vous connectez depuis l’URL http://www.test.com/phpmyadmin/. Si ce n’est pas le cas il faut déterminer par quel moyen y accéder. La solution la plus courante reste à paramétrer votre vhost pour que celui-ci fasse pointer le répertoire /phpmyadmin/ de votre site vers phpmyadmin :

nano /etc/apache2/sites-available/test

Et rajoutez juste après </Directory> les lignes suivantes :

Alias /phpmyadmin "/usr/share/phpmyadmin/"
<Directory /usr/share/phpmyadmin/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

Puis redémarrez votre serveur apache :

service apache2 restart

Concrètement, je vous conseille de ne pas utiliser cette URL qui est utilisée par défaut. En effet, des milliers de robots scrutes tous les serveurs afins de déterminer qui a installé phpmyadmin et d’y exploiter d’éventuelles failles. Donc choisissez votre propre URI discrète.

Chapitre 5 : Serveur mail

Vous avez sûrement envie de pouvoir envoyer des mails depuis votre site internet. Pour cela, il faut apprendre à votre serveur à le faire en installant postfix :

apt-get install postfix

Il va vous demander comment le configurer, choisissez la configuration « Site Internet » puis un domaine depuis lequel envoyer vos mails. Dans l’idéal, renseignez un domaine existant, pointant réellement sur votre machine, mais pour ces tests, nous nous contenterons d’utiliser test.com. La seule répercussion (à ce que je sache) est que tout mail envoyé depuis test.com aura de grande chance de se trouver dans les SPAM.

Voila, la fonction mail() de PHP fonctionnera maintenant à merveille.

 

Voila votre serveur web prêt à être en production ! Dès que j’aurais le temps, je vous ferais sécuriser un peu tout ça.

 

UPDATE 06/10/2015 : Suite à la remarque de d’Alexis, ce tutoriel a été mit à jour pour la version 8 de Debian ! Quelques modifications sont importantes : vous devez impérativement renommer vos VHOST pour y ajouter l’extension « .conf ».

Bonjour,

Je ne le souhaite à personne, mais certains d’entre vous vont un jour être confronté à un petit problème : convertir un fichier de configuration excel en PHP. Si les calculs dans ce fichier restent simple, alors ça ne pose pas de soucis, on trouve rapidement les équivalent des fonctions Excels basiques en PHP, comme ARRONDI.INF ou SUM. Mais dès que l’on va un peu plus loin dans les formules excels, là, c’est la catastrophe.

En effet, excel est un logiciel très poussé pour tout ce qui concerne les calculs financiers, et il suffit qu’une des fonctions disponibles dans la librairie financière soit utilisée pour que PHP ne suive plus dans ses fonctions. Il m’est arrivé ce problème aujourd’hui et les réponses sont quasi inexistantes sur google. Après quelques heures de lutte acharnées, de recherche infructueuses et de remémoration de mes cours de terminal S qui remontent bien loins, j’ai réussi à traduire les 3 fonctions les plus utilisées de cette bibliothèque.

Fonction VPM

Cette fonction calcule le remboursement d’un emprunt sur la base de remboursements et d’un taux d’intérêt constants. Retrouvez la documentation de la fonction VPM sous Excel.


function vpm($taux, $npm, $va, $vc = 0, $type = 0){
if(!is_numeric($taux) || !is_numeric($npm) || !is_numeric($va) || !is_numeric($vc) || !is_numeric($type)):
return false;
endif;

if($type > 1|| $type < 0):
return false;
endif;

$tauxAct = pow(1 + $taux, -$npm);

if((1 - $tauxAct) == 0):
return 0;
endif;

$vpm = ( ($va + $vc * $tauxAct) * $taux / (1 - $tauxAct) ) / (1 + $taux * $type);
return -$vpm;
}

Fonction VA

Cette fonction calcule la valeur actuelle d’un investissement. La valeur actuelle correspond à la somme que représente aujourd’hui un ensemble de remboursements futurs. Par exemple, lorsque vous faites un emprunt, le montant de l’emprunt représente la valeur actuelle pour le prêteur. Retrouvez la documentation de la fonction VA sous Excel.


function va($taux, $npm, $vpm, $vc = 0, $type = 0){
if(!is_numeric($taux) || !is_numeric($npm) || !is_numeric($vpm) || !is_numeric($vc) || !is_numeric($type)):
return false;
endif;

if($type > 1|| $type < 0):
return false;
endif;

$tauxAct = pow(1 + $taux, -$npm);

if((1 - $tauxAct) == 0):
return 0;
endif;

$va = $vpm * (1 + $taux * $type) * (1 - $tauxAct) / $taux - $vc * $tauxAct;
return $va;
}

Fonction TAUX

Calcule le taux d’intérêt par période d’un investissement donné. La fonction TAUX est calculée par itération et peut n’avoir aucune solution ou en avoir plusieurs. Retrouvez la documentation de la fonction Taux sous Excel.

function taux($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1) {

$rate = $guess;
if (abs($rate) < 20):
$y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv;
else:
$f = exp($nper * log(1 + $rate));
$y = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv;
endif;
$y0 = $pv + $pmt * $nper + $fv;
$y1 = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv;

$i = $x0 = 0.0;
$x1 = $rate;
while ((abs($y0 - $y1) > 0.0000001) &amp;amp;&amp;amp; ($i < 20)):
$rate = ($y1 * $x0 - $y0 * $x1) / ($y1 - $y0);
$x0 = $x1;
$x1 = $rate;

if(abs($rate) < 0.0000001):
$y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv;
else:
$f = exp($nper * log(1 + $rate));
$y = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv;
endif;

$y0 = $y1;
$y1 = $y;
++$i;
endwhile;

return $rate;
}

Je ne sais pas pour vous, mais je suis à deux doigts de l’indigestion. Mais en tous les cas, j’espère avoir évité à quelqu’un d’entre vous des heures de recherches inutiles.

Bon courage !

 

Suite à la dernière Après-midi du développement sur le Javascript organisé par Microsoft à laquelle j’ai eu la chance de participer, nous avons été sensibilité au partage et à la création de plugin jQuery universel. Ainsi, lorsqu’une problématique se présente et qu’aucune réponse ne se trouve sur internet, il est alors de la responsabilité d’un développeur citoyen, de partager son travail et sa création.

Ainsi, la semaine dernière, j’ai eu à développer la problématique d’une variance d’un taux financier en fonction de deux paramètres. Jusque là, pas trop de soucis. Mais c’est au moment où le client m’a demandé de pouvoir gérer cette variance que tout s’est compliqué. Comment l’afficher au client ? Comment lui laisser la possibilité d’éditer ces valeurs ?

Préparation

La première étape est de formater les données de telles sortes qu’elles soient exploitables par le plugin EditTable. Pour se fare, il vous suffit de créer ce genre de tableau :

Array
(
    [0] => Array (
        [x] => 0
        [y] => 1
        [value] => 0.5
    )
    [2] => Array (
        [x] => 2
        [y] => 1
        [value] => 0.6
    )
    [3] => Array (
        [x] => 2
        [y] => 1
        [value] => 0.6
    )
)

L’installation

Rien de bien compliqué ! Commençons par un peu de CSS totalement facultatif puis le plugin jQuery.

Initialisation

$('#table').editTable();

Le reste, c’est à votre sauce ! Mais une démo et une documentation complète se trouvent ici.

N’hésitez pas à poser vos questions ou à demander de l’aide en commentaire.

Il existe diverses techniques pour redimensionner une image sur internet :

  • La technique dynamique : Utiliser une librairie PHP (au hasard, GD) qui permettrait de créer une nouvelle image dans laquelle coller une partie seulement de l’image originale. C’est compliqué, long, lourd et surtout, ça ne marche pas à tous les coups (pas de prise en compte des animations GIF, de la transparence PNG, etc …).
  • La technique statique : Rien ne vaut le bon vieux HTML (ou pas), on renseigne la hauteur et la largeur est calculée automatiquement, ou alors on rentre les deux et l’image est toute déformée. Quel plaisir !
  • La technique néandertalienne : On télécharge la photo sur son ordinateur, on ouvre Paint, on crop, et hop ! Mais il ne faut pas pousser mémé dans les orties, quand on a quelques dizaines de milliers de photos par jour à redimensionner, il faudrait alors un bon paquet de stagiaire pour en venir à bout.

Bien sûr, je ne peux pas tout lister, d’une part parce que je ne les connais pas toutes, d’autre part, parce que celles-ci évoluent tous les jours. Ainsi, je vais proposer, aux utilisateurs de smarty, un petit plugin de ma conception que j’utilise tous les jours. Le concept est très simple : un peu de php et un peu de CSS pour une image parfaitement adaptée et centrée sur tous les navigateurs web, que j’ai appelé, la cropbox.

Un peu de CSS

.cropbox {
overflow: hidden;
display: inline-block;
}

.cropbox img {
margin:auto;
}

Jusque là, pas vraiment besoins d’explication.

Un peu de PHP

Construisons notre plugin smarty (voir le tutoriel) ! Nous allons donc créer une fonction smarty que nous appellerons « crop » :

<?php
function smarty_function_crop($params, &amp;amp;amp;amp;amp;$smarty) {

$info = @getimagesize($params['img']); // On récupère les informations liées à l'image

if(!$info): // Si l'image n'existe pas
return false;
endif;

// Définition des styles de la cropbox
if(isset($params['align'])): // On imite le paramètre HTML "align"
$style .= "float: ".$params['align'].";";
endif;

if(isset($params['border'])): // On définie la présence d'une bordure
$style .= "border: ".$params['border'].";";
endif;

if(isset($params['margin'])): // On défini les marges
$style .= "margin: ".$params['margin'].";";
endif;

// On calcules le format optimal de l'image ainsi que les marges associées

$img = $params['img'];
$alt  = $params['alt'];
$x_orig  = $info[0];
$y_orig = $info[1];
$x_crop = $params['width'];
$y_crop = $params['height'];
$margin_x = 0;
$margin_y = 0;
$ratio_orig = $y_orig/$x_orig;
$ratio_crop = $y_crop/$x_crop;
$ratio_x = $x_crop/$x_orig;
$ratio_y = $y_crop/$y_orig;

// On calcul les dimensions en se basant sur la hauteur fixe
$y_final  = $y_crop;
$x_final  = $x_orig * $ratio_y;
$margin_x = -($x_final - $x_crop)/2;
if($x_final < $x_crop): // Si ça ne colle pas
$y_final  = $y_orig * $ratio_x;
$x_final  = $x_crop;
$margin_y = -($y_final - $y_crop)/2;
$margin_x = 0;
endif;

return '<span style="width:'.$x_crop.'px; height:'.$y_crop.'px; '.$style.'">
<img src="'.$img.'" alt="'.$alt.'" width="'.$x_final.'" height="'.$y_final.'" style="margin-left:'.$margin_x.'px; margin-top:'.$margin_y.'px;" />
</span>';
} ?>

Ce qui donne

 {crop img="http://www.tiloweb.com/claramorgan.png" width="110" height="150"} 

Votre image sera parfaitement centrée dans le cadre aux bonnes dimensions.

Rendu du plugin cropbox

Image 245×210 redimensionnée en 110×150 sans être déformée.

 

PS : Oui, j’ai choisi comme modèle Clara Morgan, simplement pour optimiser mon SEO : Sexy Engine Optimizer, histoire de fidéliser mes lecteurs masculins.

En travaillant sous Titanium Appcelerator pour la création d’applications mobile (j’écrirais peut-être un petit quelque chose à ce sujet par ailleurs) je me suis vite confronté à un petit problème. Ce problème, presque insignifiant, m’a tout de même prit plus d’une heure de recherche pour en trouver une solution propre et native (prise en charge par tous les navigateurs).

Le problème est simple : Comment savoir si l’index est présent dans un tableau associatif ?

Bien entendu, on peut faire de la manière suivante :

// Erreur javascript avec Titanium Appcelerator
if(array[key] != undefined) {
// ...
}

Oui mais voila, Titanium ne le prend pas en compte, ni même certains navigateurs. Comment faire alors ? Et bien la réponse est étonnamment simple, mais quand on ne la connait pas, on a du mal à l’inventer.

Rappelons-nous qu’en Javascript, un tableau, c’est avant tout un objet. L’index d’un tableau associatif est alors une propriété d’un objet. Ainsi, au lieu de faire notre recherche sur un index (ce qui provoque des erreurs), il suffit de faire une recherche sur la propriété.

// Marche sous Titanium Appcelerator ainsi que tous les navigateurs
if(array.hasOwnProperty(key)) {
//...
}

La méthode retourne une valeur booléenne, rien de plus simple. Je me sens ainsi bête d’y avoir passé autant de temps alors j’écris ces quelques lignes pour permettre à mes semblables perdus dans les méandres de google de trouver une réponse simple à un problème qui l’est tout autant.

#amdev, ou comment finir sa semaine de bonne humeur. En effet, ce fût, pour moi, la première fois que je me retrouvais dans une salle entouré de 200 personnes parlant le même langage (au sens large du terme, parce que moi et le .NET …) et très concrètement, ces quelques heures m’ont été très instructives et passionnantes.

Au programme de l’après-midi :

  • Les fondamentaux du JS, présenté par Jean-Pierre Vincent. La génération actuelle de développeur (moi y compris) a de grosse lacune concernant les bases même de ce langage. Et j’ai été le premier étonné de voir, qu’au fond, comme beaucoup de monde, je ne maîtrisais pas les bases de ce langage qui est pourtant utilisable chez 99.5% des internautes (contre 95% pour flash). Très bonne présentation pour faire le point, donc, sur les namespaces, la Programmation Orientée Objet (POO), le SCOPE (domaine de portée  des variables et des fonctions).
  • Les outils de Debug, par les très sympathiques David Rousset et David Cahute (expert en Troll Microsoft CHEZ Microsoft, un grand bravo), pour faire le tour des outils de développement d’Internet Explorer, de FireBug et de Chrome. C’est d’ailleurs avec une grande surprise que l’on a découvert des fonctionnalités trop peu connues d’IE (F12) comme le développement automatique de fichier JS compressé et le profiling.
  • jQuery, par Aurélien Verla (Directeur technique de la société Wygwam, entreprise au palmarès impressionnant, tout autant que notre intervenant). Bien que mes connaissances sur ce framework de développement sont relativement déjà poussées, j’ai tout de même eu la chance d’apprendre les spécifications techniques me permettant maintenant de contribuer à ce projet, ce à quoi je ne manquerais pas (dans ce blog d’ailleurs). Merci également pour ce petit historique (passé et futur) ainsi que la présentation de son outil de sélecteur CSS Sizzle.
  • Le choc des titans : Canvas VS SVG, par les deux survoltés David Rousset et David Cahute (encore !). La présentation était simple (mais complète). Entre Canvas et SVG, faites votre choix. Le miens est d’ailleurs fait grâce à vous ! SVG, bravo monsieur Rousset. En effet, le SVG reste accessible (et donc référençable), facile à écrire, facile à manipuler, compatible avec les spécifications du CSS3 (les animations notamment) et de nombreux outils de création existent sur le net !
En bref, j’ai passé une très bonne journée et cela faisait bien longtemps que je n’avais pas découvert autant de chose. J’ai eu un plaisir immense à Livetwitter l’évènement (et désolé pour mon troll sur le .NET qui a été remarqué en pleine conférence … Mais vous savez, les allergies, ça ne pardonne pas).
Je retiendrais d’ailleurs quelques autres points importants :
  • Internet Explorer 9 devient performant, fini la hantise de tout webmaster concernant la suite IE.
  • Internet Explorer 10 se présage vraiment intéressant, performant, abouti et pourrait, peut-être, faire changer d’avis la plupart des Anti-IE.
  • Microsoft a fait preuve de beaucoup d’auto-dérision pendant cette conférence concernant leur navigateur et il est rare, très rare, de voir une entreprise laisser ses employés blaguer sur les performances d’un produit face à ses concurrents. L’image de l’entreprise n’en ai que meilleure à mes yeux.
  • Le .NET n’est pas forcément le cancer du développement web. Juste une petite grippe …
  • Le combot Pizza/Bière, rien de mieux pour amadouer une bande de 200 geeks.
  • Contrairement à ce que je pensais, les développeurs web ne sont pas tous boutonneux, affreusement habillé et aux cheveux gras. Non. Il y en a même de plutôt craquant …
Merci donc à tous les intervenants et à Microsoft pour cette conférence.
Merci à Digital Dealer pour m’avoir débloqué une après-midi pour y aller.
Et merci à Synapse Studio sans qui le troll durant la conférence n’aurait jamais été aussi amusant.

Notre partenaire, Digital Dealer, cherche un nouveau développeur web !

Digital Dealer est la 1ère agence de communication online spécialisée pour la distribution Automobile en France.
Notre offre s’articule autour de 4 axes principaux :
Plateformes Web (sites, Intranet, boutique e-commerce…),
Plateformes mobiles (application Smartphones),
Plateformes réseaux sociaux (blogs, Facebook,…)
Services (web marketing).
Nous cherchons des collaborateurs passionnés par le Web et l’automobile !
Nous sommes aujourd’hui à la recherche d’un développeur web.

Missions principales :
– Développement et exploitation de sites internet
– Développement et exploitation d’un CMS dédié
– Développement et exploitation d’applications Facebook
– Développement et exploitation d’application iOS et Android en JavaScript (si si !)

Compétences absolument nécessaires :
– HTML/CSS/JS
– PHP/MySQL

Les connaissances du langage Smarty serait un réel plus ainsi qu’un usage courant de la langue anglaise.
Une expérience précédente (stage, alternance, CDD…) en agence Internet est nécessaire.
Sous les ordres de responsable technique et en équipe avec un autre développeur, vous serez également en relation directe avec d’autres membres de l’agence.
Des contacts ponctuels avec certains clients sont à prévoir.
Vous devrez donc avoir de réelles compétences techniques mais aussi un sens marqué du relationnel et de l’esprit de travail en équipe.

Rémunération : selon profil
Disponibilité : dès que possible
Poste basé à Paris

Envoyez votre CV et lettre de motivation à jobs@digitaldealer.fr

La société ECOPACK est, depuis 1995, spécialisée dans la distribution, la rénovation et l’intégration de systèmes de marquage industriels et vous propose des solutions efficaces pour vos différents besoins d’identification et de traçabilité.

Tiloweb vient de réaliser, pour le compte de la société ECOPACK, l’un de ses sites de vente Tête-thermique.fr. Véritable catalogue de tête-thermique, le site propose aux professionnels d’établir leur devis pour se procurer des produits de toutes les marques du secteur.

La prestation comprenait la création d’un nouveau design, d’une nouvelle architecture tout en respectant le désir d’optimisation du référencement (SEO) du site.