298 private links
@TODO:
TL;DR
@TODO:
TL;DR
Un autre avis sur IR (voire un article descriptif ici http://links.thican.net/?LbsLIQ), avis plutôt négatif.
LLVM est un "cross-compiler" (compilateur multi-plateformes), donc un outil qui permet de traduire un langage de programmation (LLVM en a même plusieurs) en code "machine", sur plusieurs type d'architectures (d'où le terme "multi-plateformes").
En prime, il arrive à de meilleurs optimisations que les optimisations faites par un humain à travers son code.
Comme montré dans l'article, il se décompose en 2 étapes, qui se traduit par 3 représentations du même algorithme :
La première, avec son "frontend" ("front" en anglais pour "devant"), qui lui permet de "traduire" le code source dans un langage particulier en code intermédiaire LLVM, nommé IR ("Intermediate Representation", ou "Représentation Intermédiaire"). IR est ainsi le cœur de LLVM.
Puis, LLVM traduit son code IR (qui au passage est un code de bas niveau, comme l'est le code assembleur) en code machine avec son "backend" ("back" pour "derrière"). Et vu qu'il est un "cross"-compilateur, il peut donc traduire son code en code machine pour architecture x86 (la plus part des processeurs pour PC), PowerPC, ou ARM (ARM, l'architecture de grand nombre de smartphones).
Ainsi, grâce à LLVM, plus besoin d'écrire directement en langage assembleur, ce qui permet de l'exporter sur plusieurs architectures sans devoir le réécrire, et il serait même meilleur.
Si le résultat est réellement au rendez-vous de tout ce qui a été indiqué, je dis chapeau.
PS : pas contre, ne perdez pas de vu qu'un code a de meilleurs optimisations si on réfléchit à l'algorithme plutôt qu'à son code en lui-même, mais ça, c'est une autre histoire.
(via SebSauvage : http://sebsauvage.net/links/?9HLaMw)
EDIT: ici un avis divergeant sur la solution http://links.thican.net/?EyDTbA
@TODO:
TL;DR
Les informations pour piloter un lecteur disque optique en langage C.
Et aussi http://www.teuniz.net/RS-232/ pour apprendre à utiliser le port RS-232 (le port série sur les anciens PC et équipement réseau).
Un peu de hardware, c'est toujours très bien. :-)
(via LeHollandaisVolant http://lehollandaisvolant.net/index.php?mode=links&id=20130613194557)
Guide de programmation sur les sockets, pour le language C, semble très complet.
(Note to myself)
Internal field separator sous GNU/Linux.
Par défaut :
% echo -n -E $IFS | hexdump -C --
00000000 20 09 0a 00 | ...|
00000004
\x20 == espace, \x09 == tabulation "\t", \x0a == nouvelle ligne "\n" et \x00 == NULL
https://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#Table_des_128_caract.C3.A8res_ASCII
(Je mets toujours du temps à retrouver ça, même si cette fois, c'est arrivé du premier coup, alors je sais qu'ici, je le retrouverai plus rapidement.)
@TODO:
TL;DR
« Pour peu que le gestionnaire soit installé, c'est intéressant et peut simplifier le développement. (via http://famille-michon.fr/links/?KXdVuA) »
(via SebSauvage http://sebsauvage.net/links/?y0n6Dg)
@TODO:
TL;DR
Ohoh ! Le python entre dès la rentrée 2013 dans le cursus des étudiants en classes préparatoires, dans le cadre du programme de la matière informatique pour tous.
Bonne initiative. :-)
Voir ce livre pour apprendre : « UNIX : Programmation et communication » de RIFFLET et YUNÈS.
http://www.amazon.fr/UNIX-Programmation-communication-Jean-Marie-Rifflet/dp/2100079662/
Tiens, je me suis toujours demandé ce que signifiait O(n), O(log n), lorsque l'on parle de "complexité des programmes".
Voir aussi l'article de Sam&Max http://links.thican.net/?DVr6IA
@TODO:
TL;DR
Malgré les progrès dans vérification et l'attention aux erreurs possibles, la puissance des ordinateurs démultiplie aussi le nombre d'erreurs, du coup, elles sont plus nombreuses pour un laps de temps plus court.
ENFIN !
Enfin utf-8 reconnu à sa juste valeurs, et expliqué d'une façon parfaite à tout le monde.
Attention tout de même, il faut écrire "exactement" :
-- coding: utf-8 --
oui, s'il vous plaît, n'oubliez pas de mettre un simple trait d'union '-' (le "tiret du 6") entre "utf" et "8", et le tout en minuscule.
Encore merci à Sam (et Max ;)) pour ces articles super bien écrits.
Ce que j'aime bien les articles de Sam&Max, en général, lorsqu'ils parlent de programmation.
J'avoue, son côté trop permissif n'est pas un avantage, mais carrément un inconvénient, en tout cas à mon goût, car les premières fois où j'ai eu à toucher à du JavaScript, c'était erreur sur erreur, avec des erreurs absurdes, là où en C, il suffit simplement de savoir ce que doit contenir une variable pour comprendre ce qu'il va y être stocké.
Du coup, je suis en quelque sorte devenu allergique à JavaScript, et pourtant, avec PHP, les langages du web sont ceux qui rendent le plus rapidement un résultat visuel avec le minimum d'outils, contrairement aux autres, grâce aux navigateurs web.
Hop, le détail de la faille lors de la génération de clef pour ssh sous NetBSD : une parenthèse mal placée.
(via Sebsauvage http://sebsauvage.net/links/?JCk-1w)
Une compétition qui semble sympa :-)
Edit : Et bien sûr, j'ai oublié …
"Nous sommes amoureux (des cas particuliers), donc nous les détestons."
Voilà, tout est dit :-)
Dans la série "les problèmes que j'ai rencontrés, et qu'avoir la solution est bien pratique", je présente le problème du "parse new line" :
Concrètement, imaginez que vous devez, pour X ou Y raisons, "analyser" (venant de l'anglais "to parse" http://translate.google.fr/translate_t?q=to+parse) les "retours à la ligne" ("new line") pour les modifier en d'autres caractères (comme '\n', textuellement), un simple "sed 's/\n/mon_texte/g'" ne fonctionnera.
Ainsi, merci à StackOverFlow pour la réponse suivante :
sed ':a;N;$!ba;s/\n/mon_texte/g' mon_fichier.txt
Je copie simplement ici l'explication (principalement au cas où le lien meurt) :
This will read the whole file in a loop, then replaces the newline(s) with a space.
- create a label via :a
- append the current and next line to the pattern space via N
- if we are before the last line, branch to the created label $!ba ($! means not to do it on the last line (as there should be one final newline)).
- finally the substitution replaces every newline with a space on the pattern space (which is the whole file).
Il existe aussi tr :
tr '\n' ' ' < mon_fichier.txt
Mais tr ne remplace que par un SEUL caractère ... dommage.
Pour ceux qui veulent en savoir plus, un commentaire un peu plus bas explique bien mieux http://stackoverflow.com/a/7697604
Comme je le pense, afficher les dates relatives comme "il y a 3 min" ou "il y a 10 jours" lors que l'on fait une capture d'écran est une mauvaise idée.
Du coup, au minimum, afficher la date absolu et la date relative entre parenthèses.
(via SebSauvage)