AngeZanetti.com

Internet et ses usages, développement Web et humeurs diverses

Author: Xavier (page 1 of 41)

Ecouter de la musique en ligne de commande avec Pianobar

Petite découverte du jour, si comme moi vous aimez ces petits outils qui permettent de faire pleins de trucs depuis votre terminal.

Pianobar, est un client console pour Pandora le site de streaming de radio super populaire aux USA.

Perso je bosse souvent en musique et j’apprécie tout particulièrement les webradios, plus qu’un Spotify où il faut choisir un artiste particulier.

J’utilisais Youtube avant pour ça mais c’est lourd, ça bouffe de la ram et même en autoplay il faut y revenir au moins 1 fois par heure pour avoir quelque de constant.

Avec Pandora, vous choississez un style de musique et il s’occupe de tout.

L’installation de pianobar est facile, il y a des paquets Linux/Homebrew et il faut un petit fichier de conf’ si vous ne voulez pas retaper vos credentials à chaque fois.

Un petit vim .config/pianobar/config

audio_quality = medium

password = 123456
user = xavier.coiffard@mail.com

#Si vous n’êtes pas aux USA alors il faut un proxy (ici par ex: https://www.us-proxy.org/)
control_proxy = http://172.93.148.247:3128

Ensuite ça marche tout seul:

Terminal screenshot

Pianobar Pandora

Conférence de Zuckerberg à voir!

Je suis tombé sur cette vidéo Facebook cet après midi. Dans un groupe orienté entreprenariat, je l’ai ouvert pour voir. J’ai pas réussi à la refermer, et elle dure 30 minutes.

Zuck nous parle de sa vision, de comment des gens comme lui essaye de changer le monde et quels sont ces objectifs pour notre société.

Ca fait d’ailleurs écho à un billet qui doit toujours être dans mes brouillons et qui s’appelait pompeusement “Les entrepreneurs changent le monde”, ce gars là en fait partie. Et il va plutôt dans le bon sens.

Enjoy

De retour, en attendant les visas

Je me rends compte que je n’ai jamais posté ici un retour d’expérience sur mes 3 mois dans la Silicon Valley; il y a même pas mal de personnes qui pensent que j’y suis toujours. Je profite de ce week-end prolongé pour vous faire un post !

TheRefiners

Nous sommes rentrés fin 2016, après 3 mois dans l’accélérateur TheRefiners. J’ai passé trois mois super motivant, le milieu startup est vraiment 1000 fois plus dynamique et motivant que celui du salariat!

Au programme de ces 3 mois, la moitié en mode “reset” pour s’acculturer aux codes de la Valley et l’autre partie plutôt orientée networking/business/levée de fonds.

Je vais pas rentrer dans le détail ici mais l’expérience fut concluante pour nous et super enrichissante

Le retour & les visas

Depuis nous sommes de retour à Croix pour préparer la suite; mettre en place la stratégie et surtout nous sommes en pleins dans les démarches pour le visa E2 – visa entreprise.

Et c’est globalement la galère, ultra long… Nous devons créer l’entreprise US, le compte bancaire, créer des mouvements sur le compte AVANT d’arriver, embaucher des américains AVANT d’arriver, faire un business plan sur 5 ans pour prouver que nous allons rapporter suffisamment à l’économie US etc…

C’est long, très long, mais on voit le bout. Après presque 6 mois notre dossier est quasi fini et nous devrions repartir dans la prochaines semaines (sauf si l’administration US en décide autrement). Mais ça vaut le coup l’aventure sera à la hauteur des galères du moment je pense !

Stay tuned !

Je suis à San Francisco !

Plusieurs mois après le billet qui l’annonçait, ça y est j’y suis ! Je suis à San Francisco, dans la Silicon Valley pour tester notre produit sur le marché US ! Nous sommes dans un accélérateur  TheRefiners, ils nous aident à faire grossir notre réseau ici et à nous adapter aux moeurs américains!

Cela fait un bien fou de se retrouver dans une ambiance d’entrepreneurs, des gens motivés par leurs projets qui sont là pour avancer. Et c’est vraiment le bon endroit pour faire ça.

Pour tout vous dire, je n’y croyais pas vraiment avant d’arriver, au mythe de la Silicon Valley. Mais je dois admettre que c’est vrai. Il y a ici une ambiance et surtout une telle densité d’entrepreneurs, de start-ups et d’investisseurs que c’est probablement le meilleur endroit pour monter une boite dans la tech. Clairement.

Nous sommes là pour 3 mois, cela fait 3 semaines que nous sommes arrivés et nous avons déjà tellement appris: les différences culturelles (qui sont assez nombreuses finalement cf mon poste sur le blog corporate), comment se vendre, faire un deck, comment recruter,…

L’accélérateur embarque 12 startups pour sa première “fleet“. Les projets sont tous différents, mais tous on un vrai truc à apporter.

En deux mots tout va bien :) En espérant que l’essai se transforme, je partirai bien en expat’ ici, il fait bon vivre de ce côté de l’atlantique !

 

Je pars monter une boîte aux US !

Sellsecure USA

Cela fait plus de deux ans que je bosse chez Sellsecure, quand je suis arrivé il fallait tout changer, ou presque. 30 mois plus tard nous avons changé de méthodes de travail, mis en place des revues de code systématique, nous utilisons Git, il y a des tests plus ou moins automatisés sur les projets et surtout nous avons refondu quasiment 100 % des appplicatifs.

Tout le vieux PHP legacy a disparu, et à été remplacé par du Symfony2. J’ai aussi refait tout l’architecture du SI pour être scallable et plus résilient. Tout n’est pas fini mais nous ne sommes plus dans la phase de refonte active, plutôt dans du run. Et le run c’est pas vraiment mon truc.

Du coup quand Robert, le DG de SellSecure à évoqué un projet aux USA j’ai levé la main. Parce que j’aime les défis, j’ai bien envie de bouger et parce que je suis un peu naif aussi.

Et le temps faisant, le projet qui était surtout un rêve au départ devient de plus en plus concret. Valentin Auvinet à été embauché pour partir avec moi, nous sommes en plein dans l’étude de marché US et dans la réflexion sur comment/pourquoi/avec qui monter une filiale de SellSecure aux USA.

Nous partageons d’ailleurs notre quotidien sur ce blog: https://medium.com/@Sellsecure_USA

L’idée est de partir 3 mois pour mettre en pratique le Lean Startup, savoir rapidement si le succès de Sellsecure est transposable aux USA. Ces trois devraient se dérouler fin 2016. Et si le retour est bon nous faisons nos valises aux alentours de mi 2017 pour la Silicon Valley avec pour objectif de monter et faire grossir un “fork” de Sellsecure aux USA !!!!

How cool !

Entrepreneur salarié, 3 ans après

Il y a 3 ans maintenant je suis passé d’autoentrepreneur à entrepreneur salarié, au sein de grandsensemble. J’en avais parlé rapidement sur ce post, mais rien de précis.

Trois ans après, je suis toujours sous ce statut. Cela m’a beaucoup aidé sur pleins de choses, et même si je suis toujours à la recherche du statut idéal je pense que celui d’entrepreneur salarié me convient pas trop mal.

Du coup, j’ai pensé que ça pourrait toujours être utile de faire un post sur cette solution de création d’entreprise assez peu connue.

L’argent

On va commencer par le nerf de la guerre. Le statut de salarié coûte extrêmement cher. En gros, plus de la moitié de ce que je facture tombe dans les mains des différents caisses, taxes et autres impôts.

Oui, 50% !

C’est énorme, mais j’ai fais le calcul pour comparer à une SARL/ SAS et la différence n’est pas énorme (de l’ordre de 5% du CA / an dans mon cas). Il faudrait affiner plus mais j’ai l’impression que les 5% valent largement les avantages que je vais vous décrire ensuite.

Le régime social

L’avantage principal de ce statut c’est que suis salarié, au régime général, comme tout le monde. J’ai signé il y a trois an un CDI chez GrandsEnsemble comme développeur Web, j’ai un salaire qui tombe tous les mois (toujours le même j’en reparlerai), une mutuelle d’entreprise, un (petit) CE etc…

Et ça change la vie !

En fait, c’est tout con mais je rentre dans les cases de MrToutLeMonde:

  • J’ai une carte Vitale, en AE j’ai passé plusieurs années sans réussir à en avoir une via le RSI – et, à en croire mon entourage je ne suis pas le seul.
  • Je paye mes impôts simplement, tout est prérempli
  • Les banquiers ne me crachent pas dessus, les loueurs non plus
  • Et, si ça n’explose pas en vol, j’aurai droit à une retraite et à du chômage

Bref, être salarié c’est vachement plus simple pour la vie de tous les jours. Je ne dis pas que c’est impossible d’être entrepreneur juste que pour tout un tas de petites raisons c’est pénible. Simplement parce que le statut est méconnu et mal géré.

Le salaire

Avoir un salaire fixe quand on travaille comme indépendant ça peut paraître bizarre, surtout quand on a une activité en dents de scies.

Mais ça a été super salvateur pour moi. Je m’explique.

Pour fixer ton salaire, la coopérative prends tes revenus sur une longue période (entre 3 et 6 mois suivant les activités), enlève 50% de charges et garde de la trésorerie pour palier les trous d’activités. Ensuite tu divises par le nombre de mois et hop tu as ton salaire.

Par exemple, sur 3 mois j’ai rentré 6000€ HT de facture, soit 3000€ sans les charges, je garde 1000€ de treso, il me reste 2000€ / 3 soit ~660€/mois.

Ça été salvateur parce que ça permet de savoir vraiment combien tu gagnes avec ton activité, c’est tout bête mais tu peux te comparer facilement avec n’importe qui et surtout ça évite les sensations en dents de scie ou tu es hyper content de facturer 6000€ au mois de Janvier, mais tu ne rentres rien en Février ni Mars en te disant: “Boarf, j’ai fais un belle facture en Janvier c’est bon”

J’avais tendance à raisonner comme ça en AE, en CAE tu comprends vite que 600€ de salaire pour bosser tous les jours (et le week end souvent) c’est pas viable du tout. Ça permet d’avoir un œil raisonnable sur son activité et de faire de choix en fonction.

Ce système de lissage du salaire permet aussi de gérer beaucoup plus facilement sa vie perso, le même salaire tombe tous les mois ( que tu bosses ou pas d’ailleurs)

Ce système de lissage à des avantages mais il a aussi des inconvénients, il faut du temps pour monter en salaire et chaque augmentation doit faire l’objet d’un avenant au contrat de travail.

L’accompagnement

Je dois dire que cet aspect de la CAE n’a pas été le plus important pour moi, mon activité était déjà lancée depuis plusieurs années lors de mon passage en CAE mais pour un entrepreneur débutant c’est un plus indéniable de ne pas se retrouver tout seul.

Et pour les personnes qui, comme moi, ont du mal à être rigoureux avec la comptabilité c’est toujours bien d’avoir quelqu’un qui gère le tout et qui vous aide à prendre des décisions !

La suite

Logiquement une CAE est un tremplin, une façon de tester une activité sur deux ans, même s’il est possible d’y rester plus longtemps. Cela fait maintenant presque une année que je cherche une solution pour prendre le relais mais je n’ai toujours pas sauté le pas.

D’abord parce que ce statut me plaît, ensuite parce que je n’ai pas envie de monter ma boite tout seul (pour pleins de raisons administratives, financières et personnelles) et que le confort du salarié est difficile à laisser partir !

Voilà pour ce petit retour d’expérience sur mon statut juridique, si vous avez des remarques, des questions ou des insultes n’hésitez pas à commenté ce billet ou à me joindre sur Twitter.

 

 

Fuite mémoire avec curl et NSS sous RedHat

Depuis plusieurs mois je travaille pour une startup qui fait de la lutte contre la fraude. En deux mots, les clients nous envoient des flux XML et nous leur renvoyons note correspondant à l’indice de confiance de la transaction.

Et, début Janvier nous avons intégré un GROS client. Du genre à faire pâlir les sysadmin. Cela nous à forcer à reconstruire une partie du code, à revoir l’architecture de l’application (qui est au passage devenue une application symfony2).

Le problème à été de faire communiquer la nouvelle partie avec l’ancienne, et comme nous sommes en PHP, ben nous avons opté pour Curl.

Pour chaque score demandé nous avons donc un appel CURL du nouveau code vers l’ancien. Rien d’inquiétant, cela fait partie de l’habituel en PHP.

Sauf que là :

 

Une belle grosse fuite mémoire, entre chaque restart Apache pas moyen de savoir où partait la mémoire. Nous avons d’abord accusé Symfony, l’ORM à assez mauvaise réputation avec des dæmons et Doctrine avoue ne pas être taillée pour absorber de la charge.

J’ai donc mis en place les fix nécessaires: forcer le garbage collector, désallouer la mémoire des objets inutilisés mais rien n’y faisait.

J’ai ensuite testé de lancer mes commandes en –no-debug, de virer les logs mais pas mieux, ma mémoire disparaissait toujours dans les méandres de mon système…

Toute ma RAM foutait le camp, de manière pernicieuse, petit à petit, Mo par Mo jusqu’à arriver à la limite du système, aux alentours du Go de libre – NB: le serveur n’avait pas l’air de souffrir par ailleurs, l’application ne ralentissait pas outre mesure…  

NSS Softoken

Finalement c’est le sysadmin qui à trouvé l’origine, en farfouillant sur le web. Je lui avais parlé peu de temps avant d’une histoire de fuites mémoire dans le CURL, vaguement, j’avais rien pigé à l’article. Il est retombé dessus quelques jours plus tard, et BIM, révélation! Notre fuite mémoire était en fait dû à une faille système, une sombre histoire de NSS (Network Security Services), qui est utilisée par libcurl et qui faisait du cache là où elle ne devrait pas.  C’est assez bas niveau, mais c’est un bug connu sur la version 3.16.0. C’est la version actuelle sur RedHat… Si vous voulez plus de détail je vous invite à lire cet article qui est la source de nos modifications : https://www.splyt.com/blog/2014-05-16-optimizing-aws-nss-softoken

Le fix est assez simple, il suffit d’ajouter une ligne dans la conf’ Apache:

# execute these commands as ‘root’ echo “export NSS_SDB_USE_CACHE=YES” >> /etc/sysconfig/httpd service httpd restart

Et voilà, comment retrouver le sourire et plusieurs Go de RAM ! 

Eviter les attaques par bruteforce sur WordPress

A l’heure où j’écris cet article ce blog subit une attaque de type bruteforce depuis plusieurs heures. C’est donc le moment idéal pour faire un petit tuto sur comment se protéger de ce type d’attaques dont les sites WordPress sont de plus en plus la cible.

2907405284_9b57d65695_o-676x287

Bruteforce ?

Les attaques bruteforce sont les attaques les plus basiques et les plus stupides du monde. Prenez un site que vous voulez attaquer et qui est protégé par mot de passe. Pour trouver ce mot de passe vous allez tout simplement tester toutes les combinaisons possible, aussi longtemps qu’il le faut jusqu’à ce que vous tombiez sur le mot de passe en question.

Prenons un exemple.

Mon site est protégé par le mot de passe “123”. Si je veux bruteforcer, je vais tester TOUS les mots de passe possible. D’abord les chiffres, les nombres puis l’alphabet puis les couple lettres + chiffres puis lettres + chiffres + symboles.

Dans notre cas, je ferais quelque chose comme:

1, 2, …, 11, 12, 13, …, 111, 112, … pour finalement arriver à 123.

Un vrai nom d’utilisateur

WordPress est une plateforme de blog devenu très populaire, c’est donc devenu, par la même occasion, une cible privilégiée de réseau de robots (appelés botnet) qui scannent le web à le recherche de site WordPress et qui déclenchent des batteries de bruteforce dessus.

Comme vous le savez, pour se connecter à l’interface d’administration de WordPress il faut un login et un mot de passe.

Les robots vont donc essayer de se connecter avec des utilisateurs “génériques”. Évitez donc d’avoir des utilisateurs avec pour login

admin, root, test, lenomdevotresite (ici angezanetti), etc …

Le mieux étant d’éviter de mettre le pseudo de celui qui publie les articles comme admin. Par exemple l’utilisateur qui publie les articles s’appelle toto et n’a que les droits d’auteur. Un autre utilisateur du nom de tata à lui les droits d’administration.

Cela devrait déjà beaucoup compliqué la tâche de nos cher botnets.

Des mots phrases de passe

Ensuite pour se prémunir plus efficacement il faut choisir avoir un mot de passe complexe, ou mieux, une phrase de passe.

Avec l’exemple ci dessus on comprends bien que pour un ordinateur faisant plusieurs millions de combinaisons à la secondes, énumérer tous les nombres de 1 à 123 prends quelques secondes alors qu’avec un mot de passe du genre

j’adoreangezanetti.com

C’est déjà beaucoup plus compliqué ! D’ailleurs plutôt que de prendre des mots de passe impossible à retenir du genre

38jRXxuaES9Q

Préférez les phrases de passe, plus simple et tout aussi solides !

Pour une meilleure sécurité n’hésitez pas à recourir a des logiciels de gestionnaires de mot de passe qui retiennent pour vous chaque mot de passe pour chaque site (car oui, il en faut un par site !)

Bannissez !

Enfin, comme je vous le disais plus haut ce sont de véritables réseau de plusieurs centaines de machines fantômes qui attaqueront votre site, en même temps. Tout est donc une question de temps, même le meilleur des mots de passe est crackable avec beaucoup de temps et de ressources machines.

Pour rendre la tâche de ces attaques plus difficiles je vous conseille d’installer  Limit Login Attempt . C’est un plugin qui bannit automatiquement les IPs qui échouent à se connecter à votre interface d’administration.

Au bout de 3 fois il bannit l’IP pour une durée courte ( quelques dizaine de minutes), puis si l’opération se renouvelle avec la même adresse il bannit pour une durée plus longue (quelques jours). C’est efficace et ralentit considérablement la vitesse des attaques.

Le temps d’écrire ce billet mon plugin à banni plus de 100 IPs pour plusieurs jours, et ça continue…

Et c’est tout ?

Une fois ces réglages fait, vous devriez être couvert pour 99% des attaques bruteforce, mais bien sur, cela ne vous empêche pas de faire des sauvegardes, de mettre à jour vos plugins et WordPress et de mettre en place des protection au niveau serveur, mais c’est une autre histoire !

 

Credit Photo : GraceOda

Faire fonctionner le rétro-éclairage de son MacbookPro 7.1 sous Ubuntu 14.04

Depuis la mise à jour de mon Mac sous Ubuntu 14.04 le rétroéclairage de mon écran ne fonctionnait plus. J’ai passé pas mal de temps à chercher sur le net une solution viable, j’ai bidouillé pas mal de trucs pour au final tomber sur la doc communautaire qui vient d’être mis à jour.

Pour les non anglophones voici la marche à suivre :

On commence par ouvrir un terminal et lancer la commande suivante:

nvidia-xconfig

Cela crée un nouveau ‘xorg.conf’,que nous allons maintenant modifier.

sudo gedit /etc/X11/xorg.conf

Cherchez Section “Device” et remplacer le contenu par:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 320M"

    #La ligne ci dessous permet de gérer le contrôle du rétro-éclairage
    Option  "RegistryDwords" "EnableBrightnessControl=1"
    # La ligne ci dessous empeche l'afficahe du logo nvidia pendant le boot
    Option         "NoLogo" "True"
EndSection

Ensuite vous fermez votre session et vous vous reconnectez et tout devrait fonctionner :)

 

Credit photo : cmoralesweb

Comment savoir que son code est de bonne qualité?

C’est une question qui m’a été posée en entretien d’embauche il y a peu de temps:

“Comment un autodidacte comme vous peut-il être sur que son code est de bonne qualité?”

Ça peut paraître une question naïve, surtout venant d’un RH, mais ça me fait pas mal cogiter depuis, au delà de la technique.

Pendant l’entretien j’ai répondu un truc bâteau, qui a d’ailleurs eu l’air de lui plaire, mais il me semble que cette question de comment je produit du code et pourquoi il est bon ou mauvais mérite bien un petit article.

Au passage, si tu passes par là Mme la RH et bien tu trouveras ci dessous une réponse un peu plus complète à ta question :)

DISCLAIMER: Je vais parler ici de méthodes et pas de techniques pure. Si tu cherches à savoir comment indenter ton code ou si tu dois ou non commenter tu ne trouveras pas ton bonheur :)

Comment produire du code de qulité

1 – Mon code marche

Réponse simpliste. Mon code fonctionne, ça tourne en prod depuis des jours/mois/années, mon code est de qualité.

C’est pas faux, mais ce n’est pas suffisant. On a tous en tête des codes qui tournent mais qui ne seront jamais mis à jour tellement l’effort de maintenance est important.

Un code qui tourne n’est pas un bon code, c’est nécessaire mais loin d’être suffisant.

2 – Mon code est le fruit d’une méthode de travail

Produire du code de qualité c’est, pour moi, avant tout la mise en place d’une méthode. Toute l’équipe de développeurs doit être impliquée et faire en sorte que la base de code de tous les projets soit de qualité ou en constante évolution vers une qualité optimale.

Pour ça j’essaie d’appliquer ces trois méthodes :

Merge Request

Je travaille le plus possible avec le workflow de github. Tout mon code est crée sur de nouvelles branches avec Git et quand j’ai fini une fonctionnalité ou un fix je fais relire le tout par un collègue. Tout le code produit est relu, commenté, et n’est mergé que quand celui à qui est affecté la merge request n’est satisfait.

Ce système permet de produire du code bien meilleur, on sait que l’on va être relu, du coup on fait gaffe et on essaye de commenter un peu plus, de mettre des variables explicites etc…

Si jamais des erreurs se sont glissées, il y a de grandes chances que le mainteneur nous le fasse remarquer (autant sur le fond que sur la forme d’ailleurs)

Autre point positif de cette méthode, le mainteneur du code changeant tout le temps, toute l’équipe “voit passer” le nouveau code sur le projet. Cela réduit considérablement l’effort de maintenance.

Extreme Programming

Depuis plusieurs mois j’essaye de mettre en place les règles de l’extreme programming. Au programme, pair programming, ne pas sur optimiser, garder le code le plus simple possible et impliquer toute l’équipe à ces problématiques.

La mise en place des tests automatisés est au programme, mais pour le moment ils ne sont pas encore écrit.

Les retombées sont impressionnantes, l’équipe est plus motivée, le code produit est de meilleure qualité car revu de manière régulière et le pair programming permet d’abattre plus rapidement les situations de blocages – sans avoir à faire des hacks tout moches que l’on aurait tendance à faire seul dans son coin!

Code Sniffer

Enfin, dernier point plus technique, j’ai mis un code sniffer sur mon éditeur de texte préféré. Il râle si mon code n’est pas formaté comme il faut, et, du coup, je râle si le code que je récupère d’un collègue ne respecte pas les règles du standard.

Cela peut paraître anecdotique mais c’est primordial. Cela donne une base de code uniforme sur les milliers de lignes de code de nos applicatifs et cela facilite la maintenance.

3 – Je suis un être social

Autre point qui me tient particulièrement à cœur: l’échange.

Un développeur isolé est un développeur qui travaille mal.

Moi qui n’ai jamais étudié la programmation à l’école (ou très peu) j’ai toujours codé en restant en contact avec des groupes de dev qui pouvait répondre à mes question et vide versa. C’est ce que je fais avec StackOverflow, sur IRC, Twitter etc…

C’est primordial pour moi, cela permet aussi de confronter les idées, d’aller chercher les best-pratices et “d’aspirer” une quantité d’expérience bien plus importante et de manière beaucoup plus interactive qu’en lisant des bouquins!

Par exemple, il y a peu j’ai du concevoir et coder une API RESTFull avec Symfony2. Au final j’ai du passer plus de 70% de mon temps à lire des posts de blogs sur le sujet, à échanger avec des pointures sur IRC et à chercher les meilleurs design pattern et les meilleurs bundle AVANT de commencer à coder.

Seul je n’aurai pas fait un dixième du résultat final et la qualité aurait été réellement en deçà de ce que j’ai finalement produit.

Voilà en substance comment je fais pour savoir si mon code est de bonne qualité, et vous quels sont vos #proTips pour produire du code de qualité ?

 

 

Older posts

© 2017 AngeZanetti.com

Theme by Anders NorenUp ↑