Articles de la catégorie «Développement» :
Conseil à une jeune développeuse ou un jeune développeur
Le camarade Enguerran a écrit, il y a deux jour un article Conseil à un jeune développeur. Voici la problématique du billet :
Quel conseil donneriez-vous à un jeune développeur débutant comme moi ? Quelque chose que vous auriez aimé savoir quand vous aviez mon âge ?
Alors je sais ce que tu vas me dire, singulière personne lisant ce blog :
Dis, tu te permets de donner des conseils à une jeune développeur avec tes à peine 5 années de carrière ? T’as pas un peu chopé le melon !?
Alors — premièrement — tu te calmes — et deuxièmement — y’a pas de deuxièmement.
Donc mon conseil serait : prends garde à ton employeur.
Le monde du travail est un monde de requins. Rares sont les entreprises qui n’essaieront pas de te la mettre profond. Les SS2I en tête de peloton. Sache que — si tu travailles… Lire la suite
Nous n'avons pas besoin du typage statique
Note : Je me rends compte que j’aurais mieux fait de parler de typage implicite et de typage explicite plutôt que de typage dynamique et de typage statique. En effet, il s’agit bien moins de déterminer le type à la compilation ou à l’exécution que d’avoir à déclarer le type d’une valeur/variable ou de laisser le langage le déduire du contexte. S’il est vrai que le typage implicite est plutôt l’apanage des langages dynamiques et que le typage explicite est plutôt une propriété des langages statiques, OCamL est un contre-exemple flagrant à cette règle. En effet, OCamL est un langage statique fortement typé dans lequel tout le typage est implicite et entièrement déduit du contexte de déclaration. Ceci étant dit, je maintiens l’idée que le typage dynamique offre des possibilités que le typage statique n’offre pas. Mais je reconnais que ce n’est pas sans conséquence, en particulier sur la performance…. Lire la suite
Notification d'émail via Python
Je vous présente aujourd’hui un petit script Python qui vous informe de l’arrivée de nouveaux messages sur votre compte de messagerie de courrier électronique.
Préambule et mise en situation :
J’ai écris ce script pour faire plaisir à ma maman dont le pc tourne sous Ubuntu Mate 16.04, l’applet mate-indicator-applet n’a plus le même comportement qu’auparavant et ne propose donc plus la possibilité de notifier l’utilisateur de la présence d’un nouveau courrier électronique.
Je précise que c’est mon tout premier script en Python, j’attends donc avec impatience vos remarques et commentaires pour améliorer la chose .
Sources, documentations et dépendances :
Je me suis largement inspiré de la lecture des pages suivantes :
Desktop notifications Raspberry Pi E-mail Notifier Using LEDs Desktop Notifications in Python with Libnotify
Le script, pour fonctionner correctement, requiert l’installation de la librairie imapclient pour Python.
Je l’ai donc installée via PIP que j’ai dû également… Lire la suite
Bashing Java : L'inférence de type en Java : on continue de faire n'importe quoi, yaye !
Je viens de tomber sur un article de D-Zone qui détaille une proposition pour ajouter l’inférence de type pour les variables locales dans Java 9. Alors… Bon, vous me connaissez, en ce qui concerne Java, j’aime bien tirer sur l’ambulance. Et dans cet article, je vais pas me priver
On remarque, qu’encore une fois, Java ajoute une fonctionnalité réclamée à cor et à cri par les développeurs avec des plombes de retard. Après tout, c’est vrai, l’inférence de type sur les variables locales, ça existe depuis, quoi ? 13 ans dans Groovy ? 12 dans Scala ? 9 dans C♯? 5 dans C++ ?
L’inférence de type pour les nuls
Bon, revenons au point de départ : l’inférence de type, c’est quoi ? C’est capacité pour le compilateur ou l’interpréteur du langage à déduire le type d’une variable sans que le développeur n’ai à le préciser explicitement. Dans… Lire la suite
Un thème pour le blog (partie 1)
Après avoir installé le serveur web en local, on va rentrer petit à petit dans le vif du sujet.
Le blog tourne sous WordPress (écrit en PHP, grande communauté, extensible à souhait…).
La création d’un thème passe par un ensemble de fichiers php dédiés aux différents contenus (accueil, liste des derniers articles, articles par catégories, commentaires…) mis en forme par une feuille de styles, voir par exemple ce très bon tutoriel pour approfondir le sujet, celui-ci ou cette sélections de tutoriels sur cette page.
Pour partir sur de bonnes bases, j’ai choisi d’utiliser le Bootstrap de Twitter, un ensemble de « composants » prêts à l’emploi, plus ou moins facile à utiliser. J’ai cependant conscience que cette feuille de styles est avant tout destinée à la création d’interfaces en back-end et que les sites internet l’utilisant en front-end finissent tous par se ressembler…
Les principaux avantages que… Lire la suite
Serveur de développement web en local
Pour le développement du Blog-Libre et d’autres projets personnels, j’ai été amené à installer un serveur web en local sur ma machine. Je vous présente rapidement comment j’ai procédé et les choix que j’ai fait.
Tout d’abord, mon poste principal tourne sous Debian Jessie sous l’environnement de bureau Mate, est connecté uniquement en réseau filaire à un second poste qui me sert de passerelle; je ne dispose pas de box louée à mon fournisseur de service internet et ne dispose pas de matériel connectable en wifi.
J’installe en priorité les logiciels disponibles dans les dépôts de la distribution.
J’ai choisi, comme Philippe Scoffoni d’utiliser le serveur web Nginx et le serveur de base de données MariaDB, le tout couplé avec PHP-fpm pour les mêmes raisons que lui. Je vous invite d’ailleurs à lire son tutoriel très complet sur l’installation de ces trois logiciels avant de poursuivre la lecture de… Lire la suite
Bashing Java : Java 8 : complexify all the things!
Des fois, je me dis que l’objet des réunions de chez Oracle, ça doit être quelque chose comme : « augmentation de la complexité ». J’imagine bien un truc du genre : tout le monde fume un bon gros bédo avant d’entamer les discussions sur le premier sujet : « reprendre l’implémentation des fonctions anonymes de Groovy et bien la pourrir pour la rendre à chier ». Et faut avouer que, dans leur domaine, ils sont plutôt bons, ces cons !
Récemment, nos projets au boulot ont commencé à migrer vers Java 8 et j’ai enfin pu mettre les mains dans les lambdas et les opérations map, filter, reduce sur les listes. Ben je m’attendais pas à grand-chose et ils ont quand-même trouvé le moyen de me faire halluciner…
Lambdas Canada Dry (que ça ressemble aux lambda mais qu’en fait, ç’en est pas)
Donc j’ai pu essayer les lambdas et… Lire la suite
La mystérieuse fonction racine carrée inverse de Quake 3
Dans l’histoire de l’informatique, certains morceaux de code sont plus célèbres que d’autres. Ainsi, impossible pour quiconque ayant trainé un peu ses grolles chez les geeks de ne pas être tombé sur le célébrissime hello world.
#include <stdio.h> int main(void) { printf(« hello, worldn »); return 0; }
Cette fonction est un classique lorsque l’on souhaite donner un bref aperçu de la syntaxe d’un langage de programmation. Elle est utilisée pour la première fois dans le livre The C Programming Language de Brian W. Kernighan et Dennis Ritchie. Toute aussi célèbre, de nombreux développeurs ont probablement déjà eu, lors d’un entretien, à réécrire la fameuse suite de Fibonacci (ici en OCamL) :
let rec fib n = if n < 2 then 1 else fib (n – 2) + fib (n – 1)
Si la fonction dont nous allons parler aujourd’hui n’est pas aussi célèbre, elle reste une superstar pour quiconque s’est… Lire la suite
Bashing Java : Les bonnes et les mauvaises critiques sur Java — Épisode 3 : Les « bonnes » pratiques
Toutes les communautés qui se forment autour d’un langage développent un certain nombre de bonnes pratiques ou de conventions. Elles n’ont rien d’obligatoire pour maîtriser le langage mais sont généralement plus ou moins suivies par les développeurs et on conseille généralement aux débutants de s’y mettre tôt. Cela peut aller du style de développement, comme la très célèbre PEP8 de Python à l’utilisation conseillée de certains design patterns. Et Java ne manque pas de ces derniers, la plupart détaillés dans le bouquin Effective Java dont je vous ai déjà parlé. Je vais être franc : je considère une bonne partie de ce qui est écrit dans ce bouquin comme étant carrément dispensable. Soit que ce sont des conseils de bon sens absolument pas exclusifs à Java, soit que se sont des stratégies pour palier aux déficiences patentes du langage, soit que ce sont tout simplement une monstrueuse pile de… Lire la suite
Bashing Java : Les bonnes et les mauvaises critiques sur Java — Épisode 2 : La syntaxe
La syntaxe est, à mes yeux, le plus gros problème de Java. Le langage n’a pas su évoluer avec le temps au contraire d’autres comme Python. Je sais que je cite souvent les mêmes exemples mais ils sont à mes yeux révélateurs du problème. La syntaxe est lourde à pleurer et il est hallucinant que certains concepts n’ont toujours pas été ajoutés avec le temps à la syntaxe. En voici quelque-uns :
Les chaînes templates et multilignes.
Manipuler des chaînes de caractères est une vraie plaie en Java. Il est impossible de déclarer des chaînes multilignes facilement. Le moindre retour à la ligne oblige à ajouter le caractère spécial
\n
et la moindre insertion de variable oblige à casser la chaîne et la concaténer en utilisant l’opérateur
+
. En Ruby, en Python et en Groovy, ce type de chaîne se déclare avec trois guillemets (en Groovy) :
def val… Lire la suite