Git et certificat SSL non vérifié

S’il vous est arrivé d’avoir besoin de passer outre la vérification d’un certificat SSL pour travailler avec Git sachez que c’est assez simple. Il suffit de saisir la ligne suivante après vous être positionné dans votre dépôt :

git config http.sslVerify false

Vous pouvez également le rendre commun à tous les dépôts présents sur votre environnement :

git config --global http.sslVerify false

Pour le réactiver, il suffit de saisir :

git config http.sslVerify true

Vous pouvez revenir à l’état initial, c’est-à-dire que vous récupérerez la valeur par défaut de votre installation git:

git config --unset http.sslVerify

Enjoy!

Assigner tous les commit à un utilisateur

Parfois je fais des bêtises : j’oublie de faire des commits en mon nom. La solution est un peut radicale mais a le mérite de fonctionner. Pour assigner donc tous les commits d’une branche à un utilisateur :

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='newemail'; GIT_COMMITTER_NAME='Newname'; GIT_COMMITTER_EMAIL='newemail';" HEAD

Il faut bien sûr adapter Newname et newemail avec les valeurs qui vont bien. Merci à Brian.

Enjoy !

CRUD Bundle By Dévelopathe

Je viens tout juste de mettre en place un bundle pour Symfony 2 : CRUD Bundle By Dévelopathe.

Le but du jeu était d’étendre les générateurs de CRUD Doctrine livrés avec l’installation de base de Symfony afin :

  • d’implémenter Bootstrap : j’ai choisi de ne pas embarquer Bootstrap dans le Bundle mais d’utiliser le lien du CDN fourni sur la page officielle du projet ;
  • d’ajouter des messages de confirmation ;
  • d’ajouter les fonctions de traduction ;
  • d’ajouter une vue pour le formulaire de suppression ;
  • de mettre en place une pagination sur l’affichage liste.

Toute les informations d’installation par ici.

Enjoy!

Le PHP – WTF du jour !

En codant ce jour pour du Drupal 7, je suis tombé des nues en découvrant ce petit plus de PHP !

$names = array('Jean-Michel', 'Jules-Édouard', TRUE);

echo in_array('Micheline' , $names) ? 'C\'est pas joli joli !' : 'Pas trouvé';
// Ce bout de code va afficher : C'est pas joli joli !

Le plus marrant pour ceux qui font du Drupal, c’est qu’apparemment dans sa version 7, Drupal ajoute TRUE à la fin du tableau des rôles utilisateurs. Bon ben, je retourne fissa chez Symfony 2 en attendant que Drupal 8 arrive…

Appliquer les bordures de votre thème GTK

Environnement : Ubuntu 13.10 & Gnome Shell 3.8.4

J’aime bien Ubuntu Gnome mais je ne trouve pas le thème par défaut (Adwaita) à mon goût. J’ai beau aimer la ligne de commande, un peu de couleur sombre avec des petites pointes de rouge ne peut tuer personne oO.

Mais voilà, pour une raison qui m’est inconnue, les bordures des fenêtres GTK de mon thème ne sont pas applicables via Tweak. Pour y remédier, j’ai utilisé la commande suivante :

gsettings set org.gnome.desktop.wm.preferences theme "MonTheme"

Il faut remplacer MonTheme par l’identifiant de votre thème. Dans mon cas c’est Numix.

Enjoy !

Mon premier bundle Symfony 2 : Bomifier

Cela fait maintenant 6 mois que je fais du Symfony 2 (2.3 exactement) et je me suis enfin décider à publier un bundle sur Github via le projet Dévelopathe : Bomifier.

Je dois avouer que je n’étais pas peu fier de l’avoir publié. Certes, ce n’est pas du grand art ni même un projet complexe mais bon c’est un peu comme son premier echo "Hello World!", ça à l’air de rien comme ça mais t’en es quand même tout ragaillardi ! Pour ceux qui s’inquiéteraient, ce n’est pas ce que j’ai fait de plus compliqué avec Symfony :-P !

Bomifier : une boîte à outils pour Byte Order Mark

Bomifier embarque une classe qui permet de manipuler le caractère BOM dans un fichier : ajouter, détecter, supprimer. J’ai aussi ajouté quatre commandes à utiliser dans un terminal qui en plus de l’ajout, la détection et la suppression du caractère BOM fournit une commande pour lister les BOM supportés par le bundle.

Disponible via Composer

J’ai ajouté le bundle dans Packagist et celui-ci est donc disponible en ajoutant la ligne suivante dans le fichier composer.json de votre application symfony :

{
    "require": {
        "developathe/bomifier-bundle": "dev-master",
    }
}

Enjoy !

Git : afficher les commits non pushés

Pour afficher les modifications non commitées avec Git il suffit de lancer la commande suivante :

git status

On peut même spécifier un chemin de dossier et fichier comme argument à la suite de cette commande.

git status /chemin/dossier/

Mais voilà, cela ne permet que de voir les différences non commités sur votre branche (locale soit dit en passant). Pour voir les commits non pushés nous allons utiliser git log comme ceci :

git log origin/master..HEAD

Ici, un différentiel sur les logs est affiché entre la branche master du dépôt distant (on peut spécifier une autre branche) et le dernier commit local.

Enjoy!

Twitter Bootstrap 3, assistant social des développeurs back.

Cela fait quelques temps maintenant que j’ai sauté le pas en adoptant Twitter Bootstrap (dans sa version 3). C’est le moment de faire le point.

L’abstinence totale est plus facile que la parfaite modération.

Si une opération est faisable via un terminal, soyez sûr que je préférerais toujours ce point d’entrée à quelque interface que ce soit, aussi belle soit elle. Quoi de plus beau que le premier terminal que l’on ouvre le matin via un Ctrl + Alt + T ? Voilà que je deviens poète…
Un exemple : l’une des premières choses que j’ai appris sous Symfony2, c’est comment créer ses propres commandes afin de les exécuter dans un terminal.

L’enfer c’est les autres.

Mais voilà, il paraît qu’il existe des personnes que la ligne de commande rebute. Que Dieu nous préserve de ce type d’hérésie ! M’enfin, comme on vit dans le monde réel et qu’il faut bien créer des applications, notamment à destination interne de l’entreprise pour laquelle je travaille, il faut habiller les interfaces.

Mon binôme vous dirait qu’une page Web sans feuille de style ça marche très bien (il n’est pas aussi extrémiste que moi sur les interfaces graphiques malheureusement) mais je pense que ce n’est pas l’avis des utilisateurs lambdas qui eux veulent de jolis boutons, des menus déroulants et si en plus c’est responsive on risque d’atteindre l’extase !

C’est un roc !… C’est un pic !… C’est un cap !… Que dis-je, c’est un cap ?… C’est Bootstrap !

C’est là que Bootstrap entre en jeu, dans mon cas Bootstrap 3. C’est à l’occasion de la sortie de cette version, que j’ai sauté le pas. Et sincèrement je ne suis pas déçu. Il est vrai que je n’ai pas été assidu et que je ne saisis pas encore toutes les subtilités de ce Framework CSS et JS mais le peu que j’en sais me suffit amplement.

Et maintenant mes discussions autour de l’interface de mes applications peuvent ressembler à ceci :

  • Mon interlocuteur : Je veux du menu déroulant !
  • Moi : Tiens !
  • Mon interlocuteur : Les messages d’erreurs, d’avertissement, de confirmation ?
  • Moi : Trop facile !
  • Mon interlocuteur : Un slider, une grille pour la page d’accueil, un tableau bien agencé ?
  • Moi : S’il-te-plaît… Je suis le sensei du CSS avec Bootstrap ! Demandes moi des choses plus compliquées…
  • Mon interlocuteur : Enlever les coins arrondis des champs ?
  • Moi : Heu… Ton tableau combien de cellules ?
  • Mon interlocuteur : Modifier la couleur de fond de la page ?
  • Moi : Hé ! Je suis développeur back, moi !

La fin justifie les moyens et tous les moyens sont bons.

Finalement aujourd’hui tout le monde est content : les utilisateurs ont des interfaces, moi je ne me prends pas la tête sur du front. Certains regretteront le manque de diversité dans l’apparence des applications que je développe. Mais moi vous savez, moins je vois de CSS mieux je me porte…

Git : récupérer des informations de votre répertoire de travail

Pour récupérer les informations de votre répertoire de travail, rien de plus simple avec la commande suivante

git config --local -l

Pour le résultat suivant :

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@mon.serveur.com:user/projet.git
branch.develop.remote=origin
branch.develop.merge=refs/heads/develop

Si une seule des informations ci-dessus vous intéresse, par exemple l’URL du dépôt :

git config --get remote.origin.url

Enjoy !

Git : désactiver le suivi d’un fichier

En ce moment, je bosse avec Symfony2 et j’utilise un bundle de type sandbox en local. Du coup je veux garder le fichier app/appKernel.php dans les sources mais le figer de façon temporaire, c’est-à-dire exclure les modifications locales lors des commits. Le fichier .gitignore c’est cool mais cela exclut le fichier en question des sources du projet. Pour répondre à ma problématique, on met à jour l’index du projet :

git update-index --assume-unchanged /chemin/du/fichier

Et pour l’opération inverse :

git update-index --no-assume-unchanged /chemin/du/fichier

Enjoy !