03 Oct 2016

Enlever les annotations SVN "@version $Id$" de son code source

Category: Développementcduv @ 18:26

Avant vous utilisiez SVN et marquiez chaque version de vos fichiers d'un pratique @version $Id$ ?
Mais voilà, ça fait un moment que vous avez délaissé SVN pour mieux autre chose (par exemple Git sur GitLab) et ces annotations n'ont plus lieu d'être ?

Vous les apercevez du coin de l’œil mais n'y faites plus trop attention parce que elles font partie du paysage mais surtout parce que ça vous prendrait trop de temps de toutes les retirer.
Vous vous dites que, petit à petit, les collègues qui seront amenés à travailler sur ces fichiers annotés vont retirer ce vestige du passé au passage ?

Et bien non : ils ne vont pas le faire, car s'ils modifient le fichier c'est pour bugfixer ou rajouter des features pas nettoyer les annotations et qu'un :

--- a/setup.php
+++ b/setup.php
@@ -1,6 +1,5 @@
 <?php
 /*
- * @version $Id$
[...]
dans leur commit ferait tâche (personne ne fait devrait faire ça, hein ?)

Alors si vous êtes propres vous avez une issue quelque part (comprendre « Priorité "very-low" »), mais la flemme de passer sur tout les fichiers ou de chercher la commande qui ira bien.

Voici deux commandes pour trouver puis nettoyer vos fichiers source (ici en PHP, CSS et JS mais vous saurez facilement adapter) :

# List occurences of "* @version $Id$" or "* @version $Id .... $" except the one in vendor/ or .git directories
grep -RIi '^\s*\*\s*@version\s\+\$Id.*\$$' | grep -v -e "^vendor/" -e "^.git/"
# Removes "* @version $Id$" and "* @version $Id .... $" (using sed) from
# .php, .phtml, .css and .js files
# except the one from vendor/ or .git directories
find . \
    -type f \
    \( -iname "*.php" -or -iname "*.phtml" -or -iname "*.css" -or -iname "*.js" \) -and \
    \( -not -path "./vendor/*" -and -not -path "./.git/*" \) \
    -exec sed --in-place --regexp-extended '/^\s*\*\s*@version\s+\$Id.*\$$/d' {} \;

Y'a plus qu'à faire votre

git add -u && git commit -m 'Removes Version $Id$ SVN annotations'
ou similaire

.

Étiquettes :


24 Oct 2015

Blend Web Mix 2015 à Lyon : Demandez Téléchargez le programme (ICS) !

Category: Développement,Lyon/Villeurbannecduv @ 21:18

Le Blend Web Mix 2015 c'est bientôt : les mercredi et jeudi 28 et 29 octobre 2015 et le programme des conférences a enfin été dévoilé au complet.

Mais si je vous en parle ça n'est pas pour souligner cette nouvelle édition de ce salon du web (lyonnais) mais plutôt pour parler technique. En fait, autant la page du programme est lisible et permet de filtrer par catégorie de sujet, de niveaux autant la fonction d'export ICS est pauvre (même si elle a le mérite d'exister) :

  • Elle n'exporte qu'une seule conférence, il faut donc exporter chaque conférence individuellement
  • (L'(unique) événement du fichier ICS ne donne ni le lieu ni le détails de la conférence

Cela souffre, par exemple, de la comparaison avec l'outil de planification du PHP Tour de l'AFUP qui permet de faire son propre planning (en choisissant les conférences qui nous intéresse) et de l'imprimer.

Bref, je voulais avoir un fichier ICS complet pour pouvoir consulter de manière simple le planning, et aussi l'avoir sur mon smartphone : j'ai donc créer un script pour ça...

Poursuivre la lecture"Blend Web Mix 2015 à Lyon : Demandez Téléchargez le programme (ICS) !"


26 Avr 2013

Comparer les licences open source avec TLDRlegal

Category: Développement,GNU/Linuxcduv @ 01:01

Il est de ces sites-outils bien pratiques qu'on découvre un jour et pour lesquels ont se dit : « Super site! Dès que je me poserais ce genre de question je saurais où chercher. ». Mais bien souvent, dès qu'on en a besoin on ne se souvient plus ni de l'adresse, ni du nom, ni même (plus rare certes) de comment on l'avait trouvé la première fois (RSS ?, Twitter ?, etc.).

TLDRlegal est de ceux-ci : tant qu'on ne l'a pas utilisé, oublié et retrouvé 2/3 fois on ne s'en souvient pas (et moi je fais un petit article pour savoir où le retrouver).

Poursuivre la lecture"Comparer les licences open source avec TLDRlegal"

Étiquettes : ,


17 Oct 2011

Effectuer directement des actions sur les fichiers du Workspace Eclipse

Category: Développementcduv @ 03:11

J'utilise Eclipse comme IDE autant pour coder en Java que pour faire des scripts PHP.

Il est généralement complet et suffisant pour tout le développement d'application mais à plusieurs reprises j'avais besoin de :

  • Avoir une fenêtre de l'Explorateur Windows / Nautilus / Finder qui me montre où se trouve un fichier ou un dossier.
  • Ouvrir un fichier source dans un autre logiciel comme Notepad++.

Faire cela implique de réduire Eclipse et de se taper, à la main, tout le cheminement (naviguer de dossier en dossier) jusqu'au fichier voulu : C'est lourd et fastidieux...
Mais heureusement, Eclipse intègre une notion d'External Tools. Cela permet de créer sur mesure, des commandes à exécuter qui sont directement accessibles dans le menu "Run" et qui permettent d'agir sur les fichiers directement depuis le workspace d'Ecplise.

Poursuivre la lecture"Effectuer directement des actions sur les fichiers du Workspace Eclipse"


23 Sep 2011

Freemote API, une classe PHP pour contrôler sa Freebox Revolution

Category: Freebox,Non classé,PHPcduv @ 01:30

Il y a de cela un an, Free/Iliad avait sorti un nouveau firmware pour la Freebox HD qui apportait notamment une API pour simuler la télécommande de votre boitier télé.
Le fonctionnement est simple : Vous faites de simples appels HTTP à des URLs particulières (débutant par http://hd1.freebox.fr/pub/remote_control...) et votre Freebox les interprète en tant que tel et exécute ces "ordres" (allumer la box, changer de chaîne, monter le volume, naviguer dans les menus, etc.).

Suite à cette annonce j'avais conçu une classe PHP nommée Freemote API qui permet d'utiliser très facilement cette nouvelle fonctionnalité.
Le but est de pouvoir contrôler sa box TV depuis n'importe quel script (PHP), notamment dans un contexte de domotique.

Comme vous pouvez le voir dans l'exemple suivant, l'utilisation est très simple :

<?php
$api = new FreemoteApi(12345678); // Créer la connexion
$api->sendCommand(FreemoteApi::KEY_POWER); // Allume la Freebox
$api->sendInteger(123); // Change de chaîne
$api->sendCommand(FreemoteApi::KEY_VOLUMEUP, false, 3); // Monte le volume
?>

Si cela vous intéresse, je vous invite à aller récupérer la classe toute prête Freemote API pour l'intégrer dans vos scripts.