Gtilab : créer rapidement un environnement de dev complet

Bonjour à tous.

Depuis longtemps, je chercher à monter un serveur git, mais je ne m’étais jamais attaqué à ce projet, par manque de temps. Jusqu’à ce que je découvre le projet gitlab ( https://about.gitlab.com/ ).

Une fois passé une installation d’une simplicité effarante, l’interface web est très agréable à utiliser, et utilise pleinement le responsive design.

On peut créer facilement des projets, et y utiliser git immédiatement, mais ce n’est qu’une fonctionnalité parmi d’autres. On peut également lier un runner au projet, qui va effectuer pour nous certaines actions en cas de push. Un des exemples types est de lancer des tests unitaires, ou faire analyser son code par codeclimate (comme Jenkins), mais qui peut aussi faire des livraisons en cas de tests réussis. read more

Mettre en place la réplication Master/Slave sur MariaDB/Mysql

Bonjour,

suite à la lecture de plusieurs docs incomplètes ou obsolètes, voici une méthode pour mettre en place une réplication master/slave sur MariaDb ou Mysql.

Présentation : le master s’appelle master.monreseau.local, le slave s’appelle slave.monreseau.local. Le slave doit pouvoir communiquer avec le master sur le port mysql (par défaut 3306).

On suppose que les serveurs sont installés et fonctionnels sur les deux machines.

Sur le master

Editer le script de démarrage (par défaut /etc/init.d/mysql). Il existe une variable « other_args » dans lequel il faut ajouter les arguments suivants :

Le server id doit être unique. read more

Certificat SSL accessible et facile à mettre en oeuvre

Bonjour à tous,

Lorsque vous installez un site Web, vous pouvez décider de le diffuser en https pour crypter les échanges.

Pour cela, vous avez plusieurs solutions qui s’offrent à vous :

faire un certificat autosigné : cela ne vous coûtera rien, mais affichera des erreurs de sécurité dans le navigateur. C’est une solution acceptable en cours de développement, mais pas utilisable à long terme.

acheter un certificat auprès d’une autorité tierce. Vous aurez une jolie clé verte dans votre navigateur, mais les prix pour ce genre de service peuvent grimer très vite (cela peut aller jusqu’à plusieurs milliers d’euros si vous voulez un certificat multi domaine). read more

Android et consommation de données (Plateforme Android)

AndroidBonjour à tous,

j’ai constaté depuis longtemps que mon téléphone surconsommait de la bande passante, que ce soit en 3/4G ou en wifi. Je pensais que cela venait de mon ancien téléphone (Samsung S3 avec Rom Cyanogen), mais après être passé au Nexus5 sans toucher à la ROM, même problème.
La surconsommation était issue du process « Plateforme Android », et il est donc difficile de trouver ce qui se passe.
Cette consommation s’élevait environ à 100Mo/jour.

J’ai fait pas mal de recherches, j’ai tenté de désactiver google now, la publicité, rien n’y faisait. read more

PHP : benchmark des fonctions de base

En PHP, comme dans plusieurs langages de programmation, il existe souvent plusieurs méthodes pour arriver au même résultat. Lors de projets relativement légers, on peut utiliser n’importe quelle méthode, le résultat sera la même, avec aucune différence visible sur les temps d’exécution. En revanche, lors de projets plus complexes, le choix des instructions peut être crucial.

Voici quelques exemples chronométrés de fonctions php, afin de voir ce qu’il convient d’utiliser. read more

PL/pgSQL : gestion des erreurs

Lors de l’écriture d’une fonction PL/pgSQL, il y a régulièrement des erreurs qui apparaissent. Par défaut, dans ce cas, la fonction PL/pgSQL s’arrête, et provoque un rollback complet de la transaction (et donc des fonctions appelantes).

Exemple d’erreur non traitée

Reprenons notre table users, et vidons là :

Maintenant, créons une fonction qui va automatiquement passer en erreur :

L’erreur est évidente : on initialise i à 5, et on décroit progressivement cette valeur. A chaque boucle,on affecte à j la valeur de (10/i). Forcément, quand i va arriver à 0… read more

PL/pgSQL : debug et messages

Afficher des messages pendant l’exécution d’une fonction

Il existe un moyen d’afficher certaines informations dans les fonctions, sans avoir à les retourner dans une variable. Nous allons utiliser la fonction raise :

Nous avons utilisé ici deux fonctions raise : une pour un warning, et une pour une notice. Lorsque la fonction est lancée, nous devrions voir apparaître des messages :

Et donc ça marche… au moins dans un terminal. Les messages de type DEBUG et LOG ne sont pas affichés suite à la configuration par défaut du serveur (client_min_messages = notice). De plus, les messages de type warning et supérieur sont par défaut enregistrés dans le log serveur de postgres (log_min_messages = warning). read more