Développeur front-end et rédacteur Tech chez OneKitly
Performance web, flux fichiers et documents, outillage texte et utilitaires de dev
Daniel est développeur front-end et écrit sur ce qui traverse une journée de travail : formats d'image et de fichier, performance web, manipulation de texte et de données, et les flux documentaires — signatures, PDF, conversions — qui se glissent entre un fichier et la personne qui l'attend. Il aime expliquer les compromis techniques sans jargon, et dit où une règle cesse d'être technique pour devenir juridique.
Expertise
Performance web
Formats de fichiers
PDF et documents
Traitement de texte
Outils de développement
Expérience
—Rédige depuis 2016
—172 guides publiés sur OneKitly
—dont 57 en web
—620 sources citées
—émanant de 154 éditeurs distincts
—Publie sur OneKitly depuis le 13 mai 2025
Comment Daniel travaille
Daniel part de la spécification — la norme du format, le comportement documenté du navigateur — et la confronte au fichier qu'il a sous la main plutôt qu'à ce qu'affirme un billet de blog. Quand une limite se révèle juridique et non technique, il précise laquelle des deux il décrit.
Articles de Daniel Okonkwo
Les incontournables
Classés par le nombre de pages du site qui renvoient vers eux, pas par audience.
Un fichier de tableur range à la fois la formule et la dernière réponse calculée par Excel. Retirer la formule laisse la réponse enregistrée — et laisse un vide partout où le fichier n'en portait pas.
Le dédoublonnage compare des lignes entières à l'identique, type de cellule compris. Cinq lignes d'apparence identique en ont donné trois : l'une portait un nombre, l'autre une chaîne, la troisième une chaîne précédée d'une espace.
Trois neuf, cela sonne comme une promesse — jusqu'à ce qu'on le divise en minutes. Ce que 99,9 % achète par an, par mois, par semaine et par jour ; pourquoi la fenêtre de mesure compte bien plus que le neuf supplémentaire ; et les deux mois différents que cet outil utilise pour un seul et même identifiant.
Mesuré sur le redimensionneur lui-même : « Remplir » est un recadrage centré sans point d'intérêt, et une photo portrait perd 38,9 % en haut pour une bannière au format de X. Avec les dimensions publiées actuelles, chacune datée du jour de la vérification.
La source aléatoire du générateur auditée ligne à ligne, ce que SAE supprime réellement, pourquoi le mode transition en rend l'essentiel, et ce que tous les guides sur le réseau invité oublient.
Un JPEG peut porter six blocs de métadonnées distincts, pas un. Nous avons fabriqué un fichier les contenant tous — coordonnées, numéro de série du boîtier, vignette cachée, XMP, IPTC, commentaire — l'avons passé au nettoyeur, et avons lu la sortie octet par octet pour voir ce qui subsistait.
L'entropie chiffre une seule attaque : la devinette hors ligne contre une empreinte volée. Au-delà d'environ 90 bits le chiffre ne décide plus rien — et l'indicateur de ce site a sous-évalué un mot de passe aléatoire de 20 caractères sur 300 tirages sur 300.
0800 n'est ni « huit heures » ni « 08:00 » : c'est « zero eight hundred », avec une lettre de fuseau à la fin. Les quatre chiffres, la prononciation, minuit à 0000, la querelle du 2400, et pourquoi la notation sur 12 heures ne peut pas trancher midi.
L'heure dorée va de +6° à −4° de hauteur du soleil et l'heure bleue de −4° à −6°, ce pour quoi elle dure quarante minutes à l'équateur, plus d'une heure aux latitudes moyennes, et au-delà de 72,6° en juin n'a pas lieu du tout. Les seuils de ce calculateur, vérifiés sur sa propre sortie.
Le flou et la pixellisation sont réversibles — non en défaisant le calcul, mais en devinant vers l'avant. Contre les modes flou et pixellisation de cet outil, une attaque de récupération a rendu la valeur cachée au rang 1 sur 10 000. Les deux modes ont depuis été retirés. Voici ce qui reste, et pourquoi cela ne peut pas être attaqué de la même façon.
Une seule différence de structure explique tout le reste : TAR ne compresse pas, il empile ; ZIP compresse chaque fichier séparément. Mesuré sur 60 petits fichiers source, cela fait 1 809 octets contre 14 686.
Quatre extensions, dont trois sont la même boîte avec des couvercles différents. Renomme un XLSX en .zip et il s'ouvre — ce seul fait explique toute la famille, et explique pourquoi XLS, qui ne s'ouvre pas ainsi, reste celui qui pose problème.
Mesuré, pas affirmé : 90 phrases courtes réelles dans six langues, aucune refusée et 68 justes — 76 %, tombant à 64 % en dessous de seize lettres. Quatre des réponses fausses sont revenues avec 100 % de confiance.
Numéroter un document bien rangé est trivial. Ce qui mord, c'est une page couchée, une feuille Letter au milieu de A4, un fichier d'impression avec fond perdu, et un document qui imprime déjà son propre numéro. Les quatre ont été testés : sur les trois premiers le numéro se pose exactement où tu l'as demandé, et le quatrième n'est pas détecté du tout.
Un PDF porte ses métadonnées deux fois, dans deux magasins qui peuvent raconter des histoires différentes, et aucun des deux n'est l'histoire complète. Voici ce qui est réellement dans le fichier, ce qu'un effacement retire, et les deux choses qui survivent à tout nettoyage.
01/02/2026, c'est le 1er février dans la plus grande partie de l'Europe et le 2 janvier aux États-Unis, et rien dans la chaîne ne dit lequel. ISO 8601 règle cela, se trie comme du texte, et cesse d'être accepté en quatre points précis que la RFC 3339 refuse.
Comment distinguer un générateur de clé secrète solide d'un générateur douteux, avec celui-ci comme exemple travaillé : quelle source aléatoire il appelle, comment calculer l'entropie soi-même, et ce qui casse vraiment le jour où l'on change la clé.
La numérotation commence à 1 et ne peut pas être mise à 0, l'alignement se fait avec des espaces et non des zéros, et l'outil de suppression annule huit des onze séparateurs sans toucher à l'indentation. Ce qu'il ne sait toujours pas faire, c'est distinguer tes numéros des siens.
Trois encodages, une différence visible : %20 ou +. Le mode formulaire du générateur reproduit URLSearchParams octet pour octet sur dix-sept valeurs — mais donne-lui une URL de base avec un fragment et tous les paramètres atterrissent dans le hash, invisibles du serveur.
Un PDF stocke des glyphes à des coordonnées — pas des lignes, pas des paragraphes, pas un ordre de lecture. L'extraction reconstruit le texte à partir de ces positions : c'est pourquoi deux colonnes ressortent entrelacées, un tableau perd ses cellules, et un scan ne donne rien du tout. Mesuré en exécutant l'outil.
Amplifier jusqu'à ce que l'échantillon le plus fort touche un plafond ne change presque rien à la sensation de force sonore. Mesurer en LUFS, si. Cet outil mesure — en deux passes, correctement — puis affiche un résultat qu'il n'a jamais vérifié, et qui sur du matériel ordinaire peut s'écarter de bien plus d'un décibel.
Une seule commande ffmpeg, aucun encodeur, et un résultat dont le flux vidéo est octet pour octet celui du départ — vérifié par somme de contrôle. Plus la raison pour laquelle le fichier ne rétrécit presque pas, et la différence entre une piste silencieuse et pas de piste du tout.
Quatre vraies feuilles de style passées au minifieur, mesurées brutes puis après gzip. Retirer toutes les espaces a fait gagner 48, 103, 104 et 147 octets compressés ; retirer les commentaires, 57, 1 358, 2 420 et 1 042. Et les cinq entrées que ce minifieur casse.
Un émoji vaut 1 caractère, ou 7, ou 11, ou 25, selon qui compte. Lequel ton formulaire, ta base et ta passerelle SMS veulent dire — et un test d'un seul collage pour savoir auquel tu as affaire.