Archives de catégorie : Code

Des astuces de codage et autres éléments dans ce genre

Git : installation d’un repository sur une hébergement mutualisé OVH – Partie 1 : Preparation du repository

Bonjour !

Hier je vous ai parlé de GIT, un système simple de « versioning ». Perso, j’ai certains projets de développement qui m’intéresserait de « versionné ». J’avais essayer Subversion sur un hébergement mutualisé mais comme cela nécessite de pouvoir installer les éléments propres à subversion … j’ai abandonné.

Du coup, après m’être intéressé à git j’ai voulu tenter l’expérience. Après quelques recherches je suis tombé sur plusieurs tutoriel qui expliquait comment le faire. Ceci dit, ces tutoriels n’était à mon gout pas assez clair et documenter. Je ne prétends pas faire mieux mais je vais quand même essayer.

Aujourd’hui, on va donc créer le repository principal de git.

  1. On va donc créer un dossier git dans le répertoire racine pour ne pas interferer avec notre site en lui même.
    mkdir git
  2. Notre répertoire de repository est créé, on va maintenant créer le repository proprement dit en commençant par le répertoire où il sera stocké.
    mkdir monrepo.git
  3. Une fois ce répertoire créé, on va dedans et on initialise la base de données git
    ~/$cd ~/git/monrepo.git
    ~/test.git$ git init-db
    Initialized empty Git repository in ~/test.git/.git/~/test.git$
  4. On as initialisé le repository git. on va maintenant le configurer une petit peu. Il existe quelques instructions a définir: « user.name » qui permet de définir le nom du codeur, « user.email », qui se passe de commentaire, « color.ui »  permet de faire de la colorisation syntaxique, et enfin « help.autocorrect » qui permet d’executer directement la commande si une seule commande est  trouvée par git.

Bon ben voila le repository de Git est en place. Il ne reste plus qu’à l’utiliser

Git ou le versioning simple !

Bonjour,

On est tous, nous developpeur, à la merci de modifier un fichier et de tout planter ! Seulement voila, après on perd des heures a tout remettre comme avant.

Il existe une solution, je ne dirai pas la solution car en fait il y en as plusieurs :

  • dupliquer son code et faire des sauvegarde a outrance : pratique si on dispose de centaines de GigaOctets à sacrifier …. mouais en fait non …
  • Priez saint linus, patron des codeurs ….. euh les miracles ca existe …mouais en fait non….
  • Utilisez un système de « versioning » qui permet de revenir à tout instant a une version antérieure de notre code …. mouais ….. euh en fait …. OUI !!!!! C’est exactement ce dont j’ai besoin !

Du coup, on appel un ami (google en l’occurence) et on commence à potasser. Plusieurs système existent avec chacun des avantages et des défauts :

  • CVS « l’ancêtre » , fut le premier systeme de versioning à être utiliser.
  • Subversion « l’institution », successeur de CVS, il permet de gérer les répertoires et dispose de nombreux plugins/applications pour l’intégrer dans vos IDE.
  • Mercurial : nouveau venu sur lequel j’ai de bons échos mais que je n’ai personnellement pas testé.
  • Git : Encore un « nouveau » mais qui fait ses preuves de plus en plus. Il l’avantage contrairement a subversion de pouvoir fonctionner en mode « hors-ligne ».

C’est donc de Git que je vais vous parler un peu plus avant. Avant avec subversion, je n’avais rien compris aux branches etc … avec Git, j’ai tout compris !

Grosso modo, git c’est bien, c’est bon mangez-en !!

Je vous ferai un petit topo sur une install Git  et votre premier dépot !

Mais là, faut encore que je le découvre un peu plus, ceci dit c’est très très prometteur !

Comment se prémunir d’effacer totalement un site … ou la mésaventure d’un clic malheureux !

Voila, il était une fois un développeur qui travaille sous Symfony, Cette informaticien venant de mettre en production une modification a voulu effacer le cache.

Ceci dit sur Symfony, quand on efface le cache via la superbe commande :

./symfony cc

, le site est désactivé pendant un temps plus ou moins long.

Afin d’éviter ce temps d’indisponibilité, on procède de la façon suivante :

  1. on va dans le repertoire du cache, en règle générale :
    /home/user/www/cache
  2. on utilise la commande magique mais à ne pas mettre entre toutes les mains :
    rm -Rf *

Arrive le jour où pas trop bien réveillé, on se trompe de fenêtre et au lieu d’utiliser la formule magique au bon endroit, on le fait dans le répertoire racine du site !

Attention: Ceci est un exemple à ne pas suivre !!! Ne reproduisez pas cette action chez vous !! Sous peine de grave dommages netistiques !!

Bon, on remet le site, on reconfigure le tout, etc ….

Maintenant, réfléchissons à « Comment éviter que cela ne se reproduise ? », et trouvons un solution.

….

On dirait pas mais je réfléchi …

..

DING !! Ca y est j’ai trouvé !!

Le problème est de s’assurer que dans n’importe quel répertoire ou l’on se trouve, on puisse effectuer un effacement du cache en étant dans le bon répertoire !!

La solution un simple alias ou une commande bash pour le faire :

  • En alias, éditer le fichieir .bashrc et ajouter en fin de ficheir la ligne suivante  :
    alias viderCache='rm -Rf /home/user/www/cache/*'

    Ensuite on execute la commande : ‘. .bashrc’ pour recharger les alias.

  • Via un script bash, on edite le fichier ‘viderCache’ et on y met le code suivant :
    #!/bin/bash
    rm -Rf /home/user/www/cache/*

Et hop le tour est joué, on ne risque plus de supprimer le fruit de 4 ans de travail en une demi-seconde d’inattention !!

Cette astuce est déclinable dans bien des cas, et notamment pour les taches répétitives !!

Je vous souhaite que la mésaventure de ce pauvre développeur vous serve.

Les boutons sociaux

Les réseaux sociaux prennent de plus en plus d’ampleur de nos jours. Les nouveaux algorithmes de Google les prennent de plus en plus en compte. Il devient important pour le référencement naturel de parler de nous sur ces nouveaux vecteurs de communications.

Voici quelques exemples de codes pour insérer les différents boutons :

  • Facebook :
    <!-- Inclusion pour facebook -->
    <div id="fb-root"></div>
    <script>
    (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/fr_FR/all.js#xfbml=1";
    fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
    
    <div data-href="URL_A_RECOMMANDER" data-send="true" data-layout="button_count" data-width="450" data-show-faces="false" data-action="recommend" data-font="arial" data-ref="fblikeButton"></div>
  • Pinterest :
    <script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>
    
    <a href="http://pinterest.com/pin/create/button/?url=URL_A_RECOMMANDER_ENCODEE&media=URL_A_RECOMMANDER_ENCODEE&description=DESCRIPTION_ENCODEE" count-layout="none"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" style="vertical-align: top;margin:none;"/></a>
  • Twitter : 
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
    
    <a href="https://twitter.com/share" data-via="TWITTER_USER" data-lang="fr" data-related="TWITTER_RELATED" data-hashtags="TWITTER_HASHTAG">Tweeter</a>

Je modifierai ce post au fur et à mesure que le nombre de boutons sociaux intéressants augmentera.