dimanche 26 avril 2015

C'est décidé , je vais essayer Wordpress

Dans Mes Nouvelles résolutions 2015 je me suis promis d'alimenter mon blog en revyant mes ambitions à la baisse.
En effet, l'objectif n'était plus de tenir un super blog avec plein de super articles, Mais simplement de partager les informations que je découvres ou que je trouve intéressante, et ce, aussi souvent que possible.
Plus de 3 mois sont passé, et je n'ai finalement que 2 articles ... d'ailleurs ce ne sont même pas de vraies  Mais uniquement des notes........... Mais ça c'est une autre histoire.
En essayant d'aider mon frère (ça n'a rien a voir, lui, il est architecte ) , à créer son site, j'ai essayé la plateforme WP.
en essayant de voir les possibilité de configuration, les thèmes disponibles ............. je me suis simplement dit:
"pourquoi je me suis autant fait embêter avec blogspot alors que c'est si simplement ici ?"
du coup, j'ai décidé de ne plus alimenter webnotes-dz.blogspot.com , et d'écrire tout Mes prochaines NOTES sur ce nouveau blog.
Peut être qu'utiliser une plateforme plus sympathique,  me poussera à écrire plus de choses.
je me souhaite bonne courage :)

Ps:
  1. oui oui, j'ai pris le même thème , je l'aime bien, en plus il est gratuit.
  2. mon frére à finalement préféré utiliser WIX .

mercredi 21 janvier 2015

Comment arrêter tous les processus qui tournent sur mon serveur MySQL de manière efficace?

Si comme beaucoup de développeur, vous ne faites pas attention  à vos requêtes SQL et à vos connexions ouvertes sur votre serveur MySQL (ou plutôt à fermer vos connexions Mysql après utilisation) vous vous retrouverais très vite submergé par le nombre de processus en cours d’exécution.

pour afficher l'état actuel des processus MySQL, il suffit de faire un :



mysql> SHOW FULL PROCESSLIST
ce qui donne quelque chose comme:
on reviendra sur l’explication de chaque colonne, et surtout du sens de la colonne state dans un autre billet.
ce qui nous intéresse ici, c'est la 1ere colonne Id  (qui représente simplement l'identifiant du processus en cours d’exécution)

je vois 4 méthodes Pouvoir Arrêter tous les processus en exécution (on dit aussi : tuer, ou killer un processus), :

Le tout manuel  

ça pourrait s'appeler, "tuer les processus MySQL , Pour les NULLS"
exécuter cette requête autant de fois qui'l y a de process sur la liste.
mysql> KILL {Id}; # Id doit simplement être replacé par le véritable identifiant de chaque porcess 
exemples:
mysql> KILL 255;
mysql> KILL 263;
si vous avez 4 ,5 process lours qui tourne, ça ira, si vous avez plus et que vous le faites comme ça, ... je pense qu'une discussion s'impose.... vous avez des soucis pour faire passer le temps durant les longues heures de boulot? 

En 2 requêtes

le principe est simple:
  1. Générer les requêtes "kill" sur une seule chaîne de caractères (séparé par un ;)
  2. Les copier/coller et les exécuter directement
et voici la requête :
select group_concat(concat("kill ",ID) separator ";") from information_schema.processlist;
qui donne:
il suffit donc de copier/coller et d'éxecuter:

Le tout SQL

on reprend exactement le même concept que la méthode précédente, sauf qu'on ne passe pas par du copier/coller (pas toujours possible) Mais en passant plutot par un fichier :
il suffit d'éxecuter :
select group_concat(concat("kill ",ID) separator ";") from information_schema.processlist into outfile '/tmp/kill.txt';
en suite:
source /tmp/kill.txt;

Mode barbare

sysadmins, circulez ya rien à voir :)
en fait, c'est la façon la moins recommandée, Mais la plus simple. 
Il suffit simplement de redémarrer votre serveur MySQL .
un simple

sudo service mysql restart
fait l'affaire

j’espère que cela a pu vous rendre service . n'hésitez pas à laisser des commentaires plus bas si vous connaissez d'autres façon de faire.

mardi 13 janvier 2015

Vagrant ou la fin des problèmes de compatibilité entre les environnements de développement/test/production ?


Pour aller droit au but, si comme moi vous êtes développeur web ou que vous travaillez dans une équipe de développement WEB et que vous êtes déjà retrouvé dans une des situation que je vais cité, Alors cet article est pour vous:
  • AAAAAAAAAAAAAAAAAAAAAAaa, j'ai passé 2 jours pour faire fonctionner le site chez moi en local, car je n'arrivais pas à trouver une version valable de memcached compatible avec mon environnement! 
  • Je me rend bien compte que je devrais utiliser Linux pour avoir un environnement de DEV assez proche de nos serveur de stagging et de prod, et puis question outil, franchement y a pas photo. :) Mais voila, j'ai mes petites habitudes sur windows, et franchement , basculer de système maintenant en plein projet n'est pas une bonne idée (........ cette excuse de "chui en plein projet", je la tire depuis plus de 4 ans :) ...)
  • Puré les gars, vous auriez pu choisir une autre version de cet outil de compilation (ou de cette librairie).... c'est bien, mais je n'arrive pas à trouver une version pour windows!
  • AH NON Said, tu as fait une mise à jour de la configuration du serveur de test, Mais il fallait nous dire pour qu'on fasse de même sur nos environnement de dev!
  • ......................... 

ou encore ma préféré:
  • ça marche pas sur le serveur de test?  Oui Mais Chez moi ça marche!

La solution à ces problèmes est assez simple: La virtualisation.

voici le concept de base:
- Développer sous windows avec un serveur linux sur machine virtuelle  -
Soyez indulgent svp, je suis franchement NAZ pour les dessins .

la solution la plus flexible qui permet de mettre en place très rapidement un environnement de ce type c'est VRAGANT.

Pour bien expliquer la mise en place je vous recommande simplement de regarder cette excellente vidéo  (franchement c'est mieux que de vous écrire plein de texte):



Après avoir regardé la vidéo, ET si vous avez bien tout compris, vous devez certainement vous poser la question suivante:

Pourquoi je dois utiliser VAgrant Finalement? je peux simplement utiliser Virtual box , je partage le fameux dossier pour le code source et le tour est joué!!

je me suis posé la même question voici les réponses :
  1. Possibilité de regrouper un ensemble de machines virtuelles (ex : 1 machine pour le web server, 1 mahcine pour la BDD , ...) et les toutes ensemble en même temps 
  2. Versionning de vos configurations (la configuration des mahcines Vagrant se base sur un simple fichier ruby 
  3. beaucoup de machine pré configuré existent ici http://www.vagrantbox.es/, vous pouvez donc, trés trés .. trés rapidement installer un nouvel environnement sans vous poser trop de question :)   (bon, cela dépend de votre connexion)
je pense sincèrement que cela peut changer complètement votre façon de développer. en tout cas, cela a été le cas pour moi :) 

je vous laisse découvrir et n'hésitez pas à me laisser des commentaires si cela vous a servi (ou pas)
Un grand merci à Abouabkr pour m'avoir fait découvrir

lundi 12 janvier 2015

Nouvelles résolutions 2015

Bonjour à toutes et à tous,


j'ai créé ce blog avec plein de volonté il y a de cela 4 ans ...... et j'avais l’intention de partager mes connaissances/expériences à travers des articles bien écrit ...blablablabla 

Bref vous l'aurez compris en regardant le nombre d'"Articles" produits en 4ans....... d'ailleurs... ce ne sont même pas de vraies articles.je n'ai pas dépassé le statde de volontés 


j'ai 2 explications possibles:

  1. J'ai vu top gros, je voulais tellement bien faire, que cela m'a bloqué
  2. Écrire des articles , ce n'est pas pour moi


je penche en ce moment vers la 2eme explication.


Anyway, j'ai toujours la bonne volonté de partager mes connaissances/expériences, cela pourra toujours aider quelqu'un, Mais je vais essayé de m'y prendre différemment.


Ce blog va être transformé en une sorte de pense bête qui contient -justement- de simples NOTES    d'ou le nom d'origine de ce dernier.

En gros, à chaque fois que je tomberais sur une informations qui me parait intéressante, je partagerais tout simplement avec vous , en espérant que ça puisse profiter à quelqu'un.

Au pire cas, ça me servira comme carnet de notes (histoire me rappeler des astuces que je trouve/utilise -surtout quand je code)

Je me souhaite bon courage 
et je vous souhaite de trouver les astuces que vous cherchez.

mercredi 7 décembre 2011

Développement web en équipe ...... comme des pro

Il se trouve que vous êtes en charge d'un projet web, et que vous êtes une petite équipe de 3, 4, 5 ou même 6 personnes.
Autant il est simple de travailler en équipe quand en réalité chacun s'occupe de son projet (malheureusement beaucoup de boites de développement parlent de "travaille en équipe" alors que les dépendances entre les membres de l'équipe sont très très faibles), autant la complexité d'un projet se multiplie au fur et à mesure que la dépendance entre les acteurs de se derniers augmente.

Vous êtes au début du projet ou même en plein dedans, et vous vous demandez ce qu'il faut faire (ou ne pas faire :) ) pour organiser le travail de manière concrète. Il y a évidement les méthodologies connues et reconnues par tous dans le domaine du développement, comme les méthodes agiles qui sont très en vogues ses dernières années (Scrum, XP, ...) ou encore les modèles de gestion de projet classiques (cascade,V, spirale, ...). Vous piochez dans les livres et vous chercher sur internet, vous êtes content, car vous trouvez de bons ouvrages, qui vous expliquent comment manager l’équipe, comment encourager les développeurs, comment faire un planning ,comment fixer des objectifs, etc....

Oui mais voila, vous vous rendez compte que votre problème actuel est plutôt technique. et vous devez répondre à la question suivante:
Quel est l'environnement technique et quels sont les outils à mettre en place pour développer en équipe sur un même projet?

évidemment , la réponse à cette question est complément relative. relative au contexte, au budget , aux moyens, à la dimensions de l'équipe, aux contraintes géographiques , au type du projet etc..

Dans ce post et ceux qui vont suivre, nous allons essayer de traiter le cas d'une équipe de développement web, avec non pas un site à livrer mais un site en production. nous nous baserons le cas le plus répondu :
petite équipe de 3 à 5 développeurs , et un designer , qui travailleraient dans le même endroit (pas de contraintes géographiques).

Partant de la, nous allons essayer de répondre à la question posé plus haut, et nous consacrerons chaque post à un élément particulier.

pour résumer la réponse. Pour travailler sur un projet web de en équipe manière effecicace et professionnelles  , il faut les outils suivant:


  1. Un outil de travail collaboratif . il y a énormément d'outils de ce genre. pour un développement en équipe efficace, nous avons besoin d'outil qui maximise les interactions et qui les centralisent. je conseil donc d'utiliser un outil qui englobe: un wiki, un gestionnaire de projet , un bug tracker , un forum, un client de suivi des versions . l'outil que je recommande est  : Redmine
  2. évidement, il faut l'environnement local pour chaque développeur, ainsi que les outils du designer. le choix des outils web est libre, mais la règle à suive ici c'est d’homogénéiser les environnements de tout le monde. il faut donc que tout le monde utilise les mêmes versions des environnement de dev (qui doivent eux même correspondre à l’environnement du serveur de test). beaucoup de bugs sont généré justement car nous ne travaillons pas avec le même serveur apache, ou bien notre configuration de l’interpréteur (php par exemple) n'est pas tout à fait la même. ce qui fera que mon code fonctionne superbement bien chez mois, mais ne marche pas du tout sur le serveur de test.
  3. Un outil de gestion des versions (SVN , GIT ,...) .
  4. Un serveur de test (qui doit reproduire le plus fidèlement possible , l'environnement de production)
  5. LE serveur de prod (ce n'est pas vraiment un outil, mais une finalité :) )

Il faut que tout le membres de l'équipe jouent le jeux. pour les habitués du Nodepad++ et des flash disques pour le partage des documents, cela risque d'être un peu dur au début, mais une fois qu'on s'y habitue, on sent vite les apports d'un tel environnement de travail........surtout en temps de crise.


nous détaillerons dans la prochain post les apport de l'outil de travail collaboratif, et nous parlerons plus en détail de REDMINE.

Entre temps, amusez vous bien :)