Ce à quoi je pense à chaque fois que je vois un pythoniste basher JS ou PHP, à chaque fois que je vois un PHPiste basher JS, bref à chaque fois qu'un développeur critique un langage « de merde » et les débiles qui l'utilisent (forcément faut être débile pour utiliser des langages aussi pourris)
Posez vous des questions sur vos propres compétences avant de critiquer les langages et leurs utilisateurs si vous êtes pas capable de faire la distinction entre un projet prérenne prêt pour la prod et un projet dynamique mais pas encore stabilisé.
Comment se compliquer la vie inutilement plutôt.
array_filter($array)
est suffisant, il suffit de lire le manuel :
If no callback is supplied, all entries of array equal to FALSE (see converting to boolean) will be removed.
Il y a beaucoup de sites qui refusent des emails parfaitement valides parce qu'ils trouvent qu'il y a des caractères bizarres, ou bêtement qu'il y a un TLD inconnu (voire pas de TLD)
Pourtant valider une adresse email en PHP ça se fait en une ligne, sans regex, avec une fonction native du langage.
« La flexibilité du module Flexbox est particulièrement efficace au sein des éléments de formulaires. »
C'est tellement beau.
À partir de Edge côté Microsoft par contre…
Une très bonne introduction à ReactJS pour celleux qui savent juste se débrouiller avec jQuery.
Hé merde. J'ai pas encore fini de regarder la dernière PHP UK que c'est le PHP Tour 2015 qui se termine et ses 32 conférences…
(Note, hey il y a une conférence sur Phinx, l'outil de gestion de migrations indépendant de l'ORM, que j'ai mis en place au boulot \o/ )
En javascript 10 + 6 + 100 ça fait 106100.
Plus précisément : "10" + "6" + "100" ça fait "106100"
Quand on récupère les valeurs d'un formulaire en vue de les additionner pour obtenir un total quelconque, il faut TOUJOURS penser à caster les numériques en int ou en float. Comme ça : "10" * 1 ou comme ça : +"10" parce que les champs d'un formulaire renvoient toujours une chaîne.
Ça évitera peut-être à quelqu'un de perdre 10 min la prochaine fois. ^_^
Oui ça fait pleurer des larmes de sang aux intégrateurs, mais ça marche.
(Quelqu'un peut me recommander un moyen de faire ça proprement ? Il me faut du tri, du filtre sur une liste de valeur et de la recherche libre sans que ça ressemble à un tableau ^_^)
Depuis ~ septembre 2014 je me suis mis à suivre quelques comics intéressants comme Ms. Marvel, Captain Marvel, Thor, Rat Queens, Death Vigil, Bitch Planet (si vous connaissez ces séries vous devriez pouvoir saisir un certain motif qui se dégage ^_^) et disons le tout simplement : Suivre les sorties, c'est la merde.
Les dates sont pas fixes, les sites des éditeurs sont mal fichus, les sorties sont retardées, etc. Et rien ne semble exister pour mettre un peu d'ordre dans tout ça.
Du coup, vu que Laravel 5 viens de sortir, c'est l'occasion rêvée pour apprendre un nouveau framework. #teasing
« Pour récupérer le texte d'une balise HTML, il faut utiliser la propriété innerText.
Mais celle ci n'est pas comprise par Firefox. Celui ci utilise la propriété textContent. »
Considérant que .textContent est la propriété standard recommandée par le W3C et que .innerText est un truc d'IE, il eu quand même été plus correct d'écrire :
« Pour récupérer le texte d'une balise HTML, il faut utiliser la propriété textContent.
Mais celle ci n'est pas comprise par Internet Explorer avant la version 9. Celui ci utilise la propriété innerText. »
Aujourd'hui au bureau j'ai fait passer le chargement d'une page de 3sec à 1.5sec en changeant une seule ligne.
On utilisait une regex pour transformer 'une_chaine_comme_ceci' en 'UneChaineCommeCeci', ben ça va plus vite de faire str_replace(ucword(str_replace())) (qui prend 1/1000 sec pour 1000 opérations) que preg_replace() (qui en prend 8/100 pour 1000).
Vive Xdebug.
C'est le mal. C'est juste le mal. Et je vais vous expliquer pourquoi tous les problèmes d'indentation du monde sont dus à ces saloperies de tabulations.
Le premier élément qui entre en jeux c'est que la largeur d'une tabulation est CONFIGURABLE. Je peux dire à certains éditeurs que je veux 4 caractères, je peux dire à d'autres que j'en veux 2, ou d'autre 8.
Moi tout seul ça n'aurait aucun intérêt de faire ça, mais je suis pas tout seul au monde. Potentiellement, quelqu'un va ouvrir mon code avec un éditeur configuré différemment du mien et il va trouver ça illisible.
Et ça c'est dans le cas où il est possible de le configurer car parfois ce n'est pas possible (je pense à l'affichage des forges comme Github ou Gitlab par exemple.)
Le second élément, c'est qu'en utilisant la tabulation comme méthode principale d'indentation, on peut se retrouver FORCÉ d'utiliser des espaces pour l'alignement du code. Par exemple sur l'image linkée, je chaîne les méthodes de mon objet en alignant les T_OBJECT_OPERATOR successifs. À la ligne 6, avec des tabulations je dois rajouter un espace pour corriger l'alignement. Et PAF on se retrouve avec une indentation mixte. Et si votre langage se base sur l'indentation pour fonctionner, ça marche pas (Python 3 aime pas du tout ça d'ailleurs)
Le dernier élément (et qui a à voir avec le fait qu'une tabulation ce n'est pas FAIT pour indenter mais pour tabuler) c'est cette chose méconnue qui s'appelle le tabstop. Avec une tabulation réglée sur 4 on a un tabstop tous les 4 caractères donc 0, 4, 8, 12, 16, 20 etc.
Dans l'image linkée à partir de la ligne 8 j'aligne les valeurs de mon tableau et on voit bien en comparant que la ligne 9 a une seule tabulation après la clé là où la ligne 10 a… 3 espaces. Parce que la tabulation va jusqu'au tabstop. Dans un éditeur ou une forge qui ne supporte pas les tabstops ou qui a une configuration différente, la ligne 9 aura un caractère de trop parce qu'une tabulation fera 4 de long et pas 3. Donc pour aligner des trucs correctement on doit à nouveau forcément utiliser des espaces.
Au final soit on utilise des tabulations à configurer selon les éditeurs de chacun⋅e, on compense les erreurs avec des espaces et on aligne les éléments aussi avec des espaces. Soit on utilise toujours des espaces, ça s'affiche partout pareil et on ne configure rien nulle part si ce n'est le raccourci pour insérer X espaces quand on appuie sur la touche tab du clavier parce que ça va quand même plus vite.
Bref, au final c'est peut-être pas pour rien si les communautés PHP, Python, Java ou JS recommandent 4 espaces et si côté HTML et Ruby on recommande 2 espaces. :-)
Plein d'options à rajouter dans la config git et leur explication.
Et un nouvel abonnement RSS \o/
Flexbox, la solution magique à moultes moultes problèmes rencontrés en CSS qui sont habituellement résolus avec des bidouilles contraignantes.
Supporté depuis Gecko 22+
23 intervenants, 1 meuf.
Rentrez vous ça dans le crâne développeurs web: Il y a moins de meufs dans le web parce que VOUS donnez l'impression qu'il n'y a PAS de meufs dans le web.
« Si vous travaillez avec des technologies web, vous avez surement du sourire en lisant ce billet utopique, mais avouons-le cela fait du bien de rêver un peu, non ? »
Un billet un peu utopique ? Moi j'appelle ça de l'inconscience égoïste. Le mec oublie complètement ce qui s'est passé avec ie6 et il comprend pas du tout que c'est en train de se reproduire avec webkit. Peut-être même quand il code il se met à râler parce qu'à cause de Firefox il doit penser à rajouter du -moz- partout au lieu de se contenter de -webkit-
Gars, quand il y a pas d'alternative, le monopole a plus besoin d'innover. Et du coup, ben il arrête d'innover.
Le débat continue ici: https://plus.google.com/u/0/111021552655853953565/posts/Y4cYDWoPKhk
Pourquoi avoir fait ça ?
https://developer.mozilla.org/fr/docs/Web/HTML/Element/blink
Parce que c'est une balise sémantiquement pauvre (admirez l'euphémisme), non standard et à visée décorative.
Si c'est décoratif, ça doit être fait en CSS.
Il y a donc un text-decoration: blink qui existe mais qui n'est pas standard et ignoré dans la plupart des navigateur. Sinon, l'effet est reproductible en CSS3 avec une animation: http://stackoverflow.com/a/16012979
Différentes techniques pour centrer verticalement et horizontalement une boite dans une autre.
« Bonjour, je suis un fanboy PostgreSQL alors tous les moyens sont bons, même les plus pourris, pour trouver un moyen spectaculaire de descendre en flamme ses concurrents. »
Bref, il est critiqué ici le fait pour MySQL (et du coup MariaDB aussi) de convertir les valeurs de type invalides ou d'attribuer une valeur par défaut dans les champs NOT NULL et ce sans prévenir.
Il faut attendre les 5 dernière secondes de la vidéo pour qu'il déclare « Il fait ça par défaut, mais ça peut se changer »
Évidemment, comme il veut juste basher MySQL, il va pas vous donner la solution pourtant très simple :
Rajouter la ligne suivante dans my.cnf
[mysqld]
sql_mode = STRICT_ALL_TABLES
Ou encore envoyer la requête suivante:
SET sql_mode = STRICT_ALL_TABLES;
Et voila, MySQL se comportera de manière normale. (Oui évidemment, le fait que ce ne soit pas comme ça par défaut EST un problème ; ça justifie un switch ? Non.)
Une série de tuto pour configurer correctement Nginx avec WordPress, le multisite, divers systèmes de caches.
Très bon aide mémoire ^_^
Résumé de la conf web strasbourgeoise.
J'adhère tout particulièrement au paragraphe à propos de la conf' de Nitot (mis à part la charge contre le principe du porn)
1) vogue.co.uk
2) ↑ ↑
3) ↓ ↓
4) ←
5) →
6) ←
7) →
8) "B"
9) "A" "A" "A" "A" "A" "A" …
Profit!