Blog #Informatique

CentOS 7 vs Debian 9 : Quelle distribution choisir pour son serveur

Ah, cette compétition intemporelle pour savoir quelle distrib est la meilleure, ou en tout cas, la plus adaptée a ces besoins.

Le match est sérré, les concurrents nombreux, mais si on se concentre sur les distributions adaptées à un serveur et gratuite, il y a deux concurrents qui sortent largement du lot : Debian et CentOS.

Voici donc un tableau comparatif sur de nombreux points, pour moi, qui suis un développeur web et non un développeur système, linux ni un sysadmin. Si par contre vous l’êtes, je serais ravi d’avoir vos retours !

Lire la suite

Apprendre à utiliser les flexbox CSS (presque) en s’amusant

Un tutorial bien fichu qui fera enfin comprendre comment fonctionne les propriétés CSS de placement flex

Voir le site : Flexbox Froggy

C’est mon prénonyme Thomas Park qui a eu l’idée de cette appli web bien sympa, où il faut placer correctement des grenouilles sur des nénuphars en éditant une propriété CSS et on voit en live le résultat. La dernière étape (24 !) est la seule un peu ardue, autant dire que la progression est plutot sympa, et le fait de répéter pas mal de fois les mêmes commandes aident a mémoriser les propriétés.

Have fun !

(English) An alternative of Hungarian notation applied to PHP

On some cases, by example when you works on webservices, data import or an ETL, you can be a little lost between all the variables you use, specifically arrays.

Even if it’s not in the coding standard, I developed a derivative of the Hungarian notation to prefix my variables and find myself there. This notation can be applied in php, but also to any other languages, especially non-typed.

NOTE : I recommend NOT using hungarian notation everytime (for exemple, will be almost useless in a MVC context), but only when it’s really needed.

There is the prefixing I use with PHP variables in that specific cases, depending on their type and semantic meaning :

Scalar types prefix

  • $is, $b : boolean
  • $s : string
  • $i : int (signed)
  • $n : natural (unsigned int)
  • $f : float
  • $fd : float round to 1 decimals
  • $fc : float round to 2 decimals
  • $fm : float round to 3 decimals
  • $m : mixed.
  • $v : void / null.

Read more!

Protéger votre vie privée, des alternatives à Google & co

Le propos de cet article n’est pas de te sensibiliser sur le fait que donner toutes tes informations personnelles à des gouvernements, compagnies ou publicitaires + ou – éthiques, c’est mauvais pour toi.

Je vais quand même te donner quelques exemples :
– Quand tu utilises Google, Facebook et même maintenant Microsoft, tu ne paie pas car TU es leur produit commercial. Pourquoi crois-tu que Microsoft a quasi-obligé ses utilisateurs à faire gratuitement la mise-à-jour de leur PC sous Windows 10, truffé de leurs propres spywares et backdoors ?
– Google Europe fait des dizaines milliards de bénéfices, et pourtant siège à Dublin pour ne payer pratiquement aucun impôts
– Les USA, qui ne sont plus vraiment une démocratie tant que le le Patriot Act ne sera pas aboli, contrôlent toutes les données passant par les compagnies américaines via le programmes PRISM. Ce même pays, s’apprêtent à élire Trump ou Hillary, tous deux étant totalement contre la liberté d’information ou même d’expression sous prétexte de « sécurité » ou lutte anti-terroriste . Julian Assange ou Edward Snowden, au lieu d’être acclamés en héros pour avoir révélés les abus de leurs gouvernements, sont déclarés ennemis d’état par leur pays (Hillary a récemment parler de « droner » Assange).

La liste est longue, et il y a suffisamment d’articles et de vidéos sur le net pour cela, et si depuis le temps que tu dois en entendre parler si tu n’es pas convaincu que donner à-qui-le veut toute ta vie privée, je peux plus rien pour toi. Garde juste en tête juste qu’un jour ou l’autre, une inévitable guerre mondiale éclatera (à moins qu’on arrête d’être humain ?), et l’information y jouera un rôle crucial. Soit pour contrôler les gens, soit pour écarter toute résistance.

Mais ce que je peux faire, c’est te donner des alternatives aux services de Google et autres compagnies pour lesquels tes données privés sont leur fond de commerce. Des services ayant comme priorité le respect de la vie privé de ses utilisateurs, un modèle économique non basé sur la publicité ciblée, voir des organismes a but non lucratifs, et si possibles, français au au moins européens. Car je prends en compte que les compagnies françaises on des lois à respecter et des organismes sur le dos pour protéger la confidentialité de nos données personnelles ; aux USA c’est une autre histoire.

Lire la suite!

Un modèle de fichier .gitignore pour partir sur de bonnes bases sur tes projets PHP

Si tu versionnes tes projets PHP avec Git, voici des modèles de fichier .gitignore (voir documentation officielle) que j’utilise depuis longtemps et qui évite de versionner des fichiers qui n’ont rien à faire sur le dépôt (fichiers temporaires des OS, de l’IDE…).

Ces modèles diffèrent des autres modèles que tu pourra trouver sur des plus plus connus, comme Github ou gitignore.io, dans le sens ou j’utilise des expressions régulières faisant que les règles sont adaptés à la plupart des projets, tout en contenant moins de lignes. Plus d’intelligence, quoi.

Bien sûr ce fichier est un modèle, il faudra quand même sûrement que tu rajoutes des règles spécifiques a ton projet. Certains fichiers peuvent être versionnés ou non suivant ta vision du versioning et la phase de ton projet (dev initial, tma…) : les lignes dans ce cas sont son commentés par défaut (voir lignes commençant par un seul #), a toi de voir si tu les actives ou non.

Keep on reading!

Tuto : Installer Composer sur un projet web pour gérer facilement les libraires externes (et internes) de ton framework

Installer composer sur ton poste / serveur

Ton poste doit bien sûr avoir un serveur web qui tourne avec PHP.

Site officiel de Composer : getcomposer.org/download/

Si tu es sous Windows, je te recommande de l’installer via leur « Windows Installer », permettant d’éxécuter composer sur n’importe quel dossier de ton poste, juste en tapant « composer », car il aura correctement intialisé le PATH

Sur un autre OS, le plus simple c’est d’ouvrir une console positionnée dans le répertoire de projet et de taper :

curl -sS https://getcomposer.org/installer | php --filename="composer.phar"

Dans ce cas, il faudra taper « php composer.phar » au lieu de simplement « composer » pour le tuto qui va suivre.

Continuer la lecture de Tuto : Installer Composer sur un projet web pour gérer facilement les libraires externes (et internes) de ton framework

Les tests binaires – une fonctionnalité sous-estimée

Imaginons qu’en tant que développeur (dans le cas contraire, passe à un autre article), on doit réaliser plusieurs actions suivant plusieurs cas de figures possibles (disons, une quinzaine), qui peuvent se combiner.
Et suivant certains cas de figures, certains actions à éxécuter se répètent, et peuvent même se combiner suivant certains cas de figure. Pour ne pas dubliquer le code, on identifie donc 5 blocs d’actions différentes. La situation la plus simple serait donc d’utiliser plusieurs variables : (je vais mettre mes exemples en PHP, mais les tests binaires existent dans tous les langages de programmation dignes de ce nom – déjà si ça existe en PHP…)

Continuer la lecture de Les tests binaires – une fonctionnalité sous-estimée

Suivre ou pas la tendance/mode des domaines en .io?

Comme à peu près tout dans notre société, les noms de domaines sont soumis a des tendances et des effets de mode. On se souvient des société en -oo dans les années 2ooo (Yahoo, Badoo, Wanadoo, Spartoo…), des noms en -r vers 2004 (Tumblr, Twittr devenu Twitter, Frappr, Zoomr, Flickr et tout son écosystème), des noms en -us ou -ous vers 2007 (disqus, scritaculous, del.ico.us), et en 2014 une nouvelle tendance émergea, très prisée par les start-ups : les domaines en .io.

Exemples : blackfire.io, github.io, techtalent.io, breaz.io, daux.io, bento.io, statuspage.io, aha.io … Il y en a déja des milliers.

Le problème, c’est que comme toutes les extensions de domaines en 2 lettres, il est lié à un pays. Et ce pays à le droit de contrôle/blocage sur votre nom de domaine.

Par exemple, bit.ly a du avoir une grosse angoisse quand la Lybie (contrôlant le domaine .ly) les a menacé de couper leur domaine parce le service était utilisé pour raccourcir des liens anti-kadhafistes.

Mais à qui appartient le nom de domaine .io ? A une ce ces entités bizarres à qui l’ont attribue beaucoup d’extensions de domaines nationales : le Territoire britannique de l’océan Indien. Soit, d’après Wikipédia, un ensemble de 55 îles peuplées exclusivement d’une base militaire américaine, mais un territoire officiellement Indien quand même. Même si c’est une colonie britannique en même temps. Bref, c’est confus. Mais l’extension est officiellement géré par registre indien .

Un gouvernement qui a priori parait stable, donc. Sauf si par exemple un jour la souveraineté de ce territoire et remis en question, où que l’Inde/l’UK/l’amérique décide un jour que le .io servira uniquement aux entités administratives ou militaires, et demandera par exemple aux enregistrés une adresse postale sur ce territoire. C’est un des droits légitimes des détenteurs d’extensions nationales, et vu que le territoire semble habité seulement par des militaires américains, bon courage pour y acheter une boite postale.

Continuer la lecture de Suivre ou pas la tendance/mode des domaines en .io?

Symfony versus Symphony, deux frameworks PHP homophones : plagiat ou concours de circonstance ?

Je suis tombé par hasard sur quelque chose plutôt étrange : Symphony, a « XSLT-powered open source content management system ». C’est aussi un framework PHP, qu’on pourrait donc positionner comme un concurrent au projet Symfony CMF.

getsymphony.com

Encore plus troublant, cette annnonce sur la page d’accueil de leur site  :

 Symphony 2.6 is now available  –  11 March 2015

Comme par hasard, le framework homophone suit exactement le même numéro de version que Symfony, à un mois d’intervalle…

Continuer la lecture de Symfony versus Symphony, deux frameworks PHP homophones : plagiat ou concours de circonstance ?

8 outils gratuits pour faire du Scrum dans tous les sens

Je faisais des recherches (et des tests) il y a quelques temps des outils gratuits permettant de gérer des projets avec Scrum . Pour gérer un mix scrum/kanban/scrumban, c’est déja moins évident. Mais pour scrum, il y a pas mal de soft gratuits, la plupart en ligne et limités sur un nombre de personnes ou projets. Je ne parlerais pas par contre des outils qui ne sont gratuit uniquement pour une une période d’essai, comme sprint.ly, Jira ou Mingle.

IceScrum

Site officiel : http://www.icescrum.org/
Opensource : Oui
Accès : à installer soi-même (serveur tomcat/Java) ou version améliorée online payante

Voir mon tuto pour installer la version opensource sur un serveur web. Existe également des version Pro (plus de fonctionnalités) et online payante.

Agilefant

Site officiel : http://agilefant.com/
Opensource : Non
Accès : à installer soi-même (serveur tomcat/JRE/Oracle) et online limité

Version online gratuite limité a 5 comptes actifs simultanément. Mais on peut en créer d’autres et les désactiver temporairement. C’est le manager Scrum open-source le plus populaire. Pourtant pas de whiteboard, à ma connaissance (ou je ne l’ai pas trouvé).

TargetProcess

Site officiel : targetprocess.com
Opensource : Non
Accès : online limité

Version online gratuite limitée à quelques comptes. Très complexe et complet. Heureusement un guide interactif nous explique comment l’utiliser.

Youtrack

Site officiel : https://www.jetbrains.com/youtrack/
Opensource : Non
Accès : online ou à installer soi-même sur un serveur / un poste client Windows

Jetbrains, ca vous dit quelque chose ? L’éditeur de l’excellent IDE PHPStrom, entre autres. Ils ont plein d’autres produits pro dont un gestionnaire de projet est online, avec une version gratuite limitée à 10 comptes. Pas de whiteboard, l’accent est + mis sur l’issue tracking, et exploite assez peu le cadre Agile en fait.

Redmine + plugins

Beaucoup de plugins agiles pour redmine, certains totalement gratuits, d’autres seulement en mode limités
Redmine Backlogs
Scrum
Kanban
Easy Agile
Scrumbler

Accès : A installer soi-même sur un serveur Ruby

Redmine s’est beaucoup popularisé ces derniers temps. Basé sur Ruby on Rails (et donc nécéssitant un serveur web avec Ruby), ca peut valoir le coup pour faire un passage à Scrum en douceur.

Kados

Site officiel : http://www.kados.info/
Opensource : Oui
Accès : à installer soi-même sur un serveur

Un gestionnaire de projet Scrum/Kanban. Gratuit, opensource, en PHP donc facile a déployer sur un serveur.  Le code source fait un peu usine à gaz par contre. Des efforts à faire sur l’ergonomie, mais une bonne initiative française.

Kanboard

Site officiel : http://kanboard.net/
Opensource : Oui
Accès : A installer sur un serveur

Une appli PHP basée sur Kanban et la simplicité d’utilisation. Vraiment sympa, dommage que les spécificités de Scrum (notion de sprint, dates butoirs) ne soient pas gérées.

Express

Site officiel : http://agileexpress.sourceforge.net/
Opensource : Oui
Accès : A installer soi-même sur un serveur

une appli en servlet Java. Très rudimentaire avec une gestion d’utilisateurs. Bien être bien pratique pour des petits projets.

Juste besoin d’un scrumboard visuel tout simple ?

scrumblr.ca

Site officiel : http://scrumblr.ca
Opensource : Non
Accès : online

Juste un scrumboard collaboratif en ligne. Minimaliste mais parfait pour travailler à distance avec des gens de confiance (aucun gestion de droits ou d’historique).

Bonus : comment comparer rapidement des gestionnaires de projets

… Parmi + de 200 existants. La seule chose qui manque ca serait de pouvoir filtrer sur uniquement les gestionnaires Scrum.

http://project-management.zone/systems

Cela dit pour avoir le détail sur les fonctionnalités des applications, et les comparer rapidement entre elles, c’est pratique. Exemple :

http://project-management.zone/system/agilefant,icescrum on voit que sur les fonctionnalités, iceScrum à l’avantage sur Agilefant, excepté qu’il n’a pas de time tracker.

De rien.