Aaaawwwwww ~~~~ <3
Quelques astuces en CSS, en fin de compte très simple, pour centrer correctement des blocks en CSS.
Wouah, mais c'est trop génial ce hack :-)
Cette personne nous montre pas à pas comment elle a modifié et contourné un disque dur pour faire fonctionner une distribution GNU/Linux sur sa partie électronique.
Le saviez-vous ?
PHP – comme d'autres langage – lors de l'évaluation de conditions booléennes, fonctionne en mode "évaluation minimale" (ou appelé "short-circuit evaluation" en anglais http://en.wikipedia.org/wiki/Short-circuit_evaluation).
Grâce à l'ordre des opérateurs booléens, cela permet de ne pas tester l'ensemble des expressions dans une condition.
Exemple :
A && B && C
avec l'opérateur "&&" (AND), B n'est testé que si A est "juste", et C n'est testé que si B est "juste" (sans oublier A).
Par contre, avec "||" (OR), dans l'exemple "A && B || C", c'est "B || C" qui est testé avant A (attention, ce n'est pas valable pour tous les langages), et il faut que B soit "faux" pour que C puisse testé.
Intéressant, une extension pour Firefox qui permet à sa guise d'activer le "http referer".
Pour info, le "http referer" est une donnée contenant l'url de la page actuelle, envoyée par défaut dans les en-têtes HTTP (les requêtes web), et qui a donc pour principale but d'indiquer la page de provenance, pour tracer ou pour éviter certains accès.
(via Mistukarenai http://root.suumitsu.eu/links/?6HSeuA)
Le jeu Lemmings - un grand classique - en téléchargement sur le site de SebSauvage.
@TODO:
TL;DR
Oh yeah, un tuto complet pour installer son service Firefox Sync Server personnel.
Cool :-) (arf, Python 2.6, pô cool)
Documentaire originalement diffusé en 2004 sur la chaîne Arte, le voici disponible sur le web. Ce documentaire parle de l'origine du célèbre Gaulois.
Via Korben http://korben.info/les-secrets-dasterix.html
@TODO:
TL;DR
Un autre avis sur IR (voire un article descriptif ici http://links.thican.net/?LbsLIQ), avis plutôt négatif.
Haha, quel sens de la répartie pour cette agent d'aéroport. :-)
(Via LeHollandaisVolant : http://lehollandaisvolant.net/index.php?mode=links&id=20130725025311)
@TODO:
TL;DR
Présentations de logiciels de présentation de diapositives.
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
Vous utilisez souvent GnuPG pour chiffrer du texte, mais vous voulez vous simplifier la tâche lorsque vous devez utiliser vim avec, et aussi rajouter un peu de sécurité ?
Voici donc le plugin gnupg.vim.
Lorsque je parle de "sécurité", le plugin d'après son auteur désactive des fonctionnalités de vim comme swapfile, viminfo, et undofile, ce qui permet d'éviter de lire les données écrites du fichier en lisant son fichier temporaire, par exemple.
EDIT: le script est disponible sur GitHub, ce qui permet de vérifier son intégrité https://github.com/jamessan/vim-gnupg
EDIT2 (2013-07-31): il est disponible en tant qu'ebuild sous Gentoo \o/ → app-vim/gnupg
Suite à mon petit article (https://links.thican.net/?OIlYuQ) sur le même principe (des requêtes HTTP), mais en utilisant telnet, voici donc une autre version bien plus propre, avec curl.
Pour rappel :
Utilisons donc quelques variables pour simplifier les envois (c'est du bash, au fait)
- host : c'est le nom de domaine du site web à contacter (pour utiliser avec la variable HOST),
- port : le port du serveur distant (port 80 très souvent, doit être un nombre entre 1 et 65 535 inclus),
- url : l'url de la page web à joindre, (sous la forme "/index.html", avec un '/' au début),
- getVars et postVars : la suite de variables qui vont être envoyées au serveur web, dans les requêtes GET et POST. (ces infos doivent être sous la forme "name=toto&code=2&update&field=text") ; dans une requête GET, postVars sera ignorée.
Attention : la variable "host" est obligatoire (le port est par défaut à "80" si la variable est vide).
Requête GET : curl --include http://${host}:{port:-80}/${url}?{getVars}
Requête POST : curl --include --data ${postVars} http://${host}:{port:-80}/${url}?{getVars}
That's it!
Concrètement, la différence entre telnet et curl, elle se réside uniquement dans votre démarche d'apprentissage et de compréhension.
Si vous voulez apprendre, modifier des données pour faire des tests, avoir un contrôle un peu plus poussé sur vos données, utilisez donc telnet.
Par contre, si vous voulez quelque chose qui fasse son boulot, simplement, avec le moins d'erreurs possible car maintenu à jour, sans prise de tête, tournez donc vers curl.
EDIT: une méthode, plus simple et plus "propre" à utiliser, avec curl : http://links.thican.net/?wGhHkw
Si vous avez besoin de tester un serveur web sans utiliser un navigateur web (pour ainsi mieux voir ce qui est concrètement reçu et envoyé), voici un début d'aide :
On va donc utiliser telnet, un logiciel qui permet simplement de se connecter à une machine distant, sur le port souhaité, et d'envoyer simplement des paquets TCP.
Utilisons donc quelques variables pour simplifier les envois (c'est du bash, au fait)
- host : c'est le nom de domaine du site web à contacter (pour utiliser avec la variable HOST),
- port : le port du serveur distant (port 80 très souvent, doit être un nombre entre 1 et 65 535 inclus),
- url : l'url de la page web à joindre, (sous la forme "/index.html", avec un '/' au début),
- getVars et postVars : la suite de variables qui vont être envoyées au serveur web, dans les requêtes GET et POST. (ces infos doivent être sous la forme "name=toto&code=2&update&field=text") ; dans une requête GET, postVars sera ignorée.
Attention : la variable "host" est obligatoire (le port est par défaut à "80" si la variable est vide).
Pour les requêtes GET, voici donc :
{ echo -n -e "GET /${url}?${getVars} HTTP/1.1\nHOST: ${host}:${port:-80}\n\n"; sleep 0.5 } | telnet ${host} ${port:-80}
Pour les requêtes POST, il faut rajouter l'info de la variable "Content-Type: application/x-www-form-urlencoded" (attention, d'après cette page http://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data s'il s'agit d'autres formes de données, mieux vaut modifier le contenu de cette variable), voici donc :
{ length=$(echo -n ${postVars} | wc -c --); echo -n -e "POST /${url}?${getVars} HTTP/1.1\nHOST: ${host}:${port:-80}\nContent-Type: application/x-www-form-urlencoded\nContent-Length: ${length}\n\n${postVars}"; sleep 0.5 } | telnet ${host} ${port:-80}
Voilà, c'est tout, simple non ? ;-)
Remarques :
- "Pourquoi le temps de pause dans telnet (sleep 0.5) ?"
Pour des raisons qui m'échappent, telnet va semble-t-il trop vite, et il envoit donc un paquet TCP avec le flag "RST" (Reset), ce qui coupe court le serveur distant, ainsi que l'affichage (même si le serveur distant a envoyé les données, telnet ne les affichera pas). Du coup, il se peut que vous tomber sur ce problème, si le serveur distant est long à répondre (grosse requête, trop de trafic, etc.), il faut donc augmenter le temps de pause. - "Pourquoi mettre un '/' en plus au début dans l'URL ("GET /${url}") ?"
Les '/' en doublon ne sont normalement pas gênants pour accéder à une ressource (essayez donc des URL avec une suite de '/', ça ne devrait pas poser problème). Effectivement, si le serveur distant ne gère pas correctement ces '/' doublons, il risque de râler, mais en tout cas, si le premier '/' est manquant (exemple "GET index.html"), là, c'est sûr, la requête est mauvaise. Donc, autant en mettre trop que pas assez. ;-)
Wow …
…
…
…
Bullshits overflow.
Avertissement, cet article n'est pas destiné à ceux qui ont un cerveau et quelques connaissances en réseau ; des dégâts irrémédiables aux neurons sont possibles.
Via Korben http://korben.info/les-films-vs-la-vraie-vie.html Les films VS la vraie vie
Via Korben http://korben.info/hybrids.html La Revanche d’une blonde
Grrr !!! Encore un nouveau gTLD !?
Voyez-vous ce commentaire ? « Passer de 22 gTLD à plus d'un millier est l'une des plus grandes transformations d'Internet depuis des années. », c'est le même que celui des Restos du Cœur (approximativement) « Cet hiver, nous avons servi X millions de repas aux non-logès. » : ce sont tous les deux de mauvaises nouvelles.
Franchement, un TLD complet pour une marque, ça n'a aucune utilité à part mettre en avant la marque d'une entreprise, et donc du coup, aucune pérennité (surtout quand une entreprise a le même nom qu'un nom commun, là, on touche le fond).
L'ICANN a encore de beaux jours devant elles … Et puis vous avez vu le pavé en photo ? Franchement, à part dire “Nous avons envie de nous faire glousser avec un TLD entièrement à nous, de nous faire plus d'argent et de créer encore plus de dépendance à nos stupides clients qui accepteraient de prendre un DN dans notre TLD”, bref, il ne faut pas autant de pages.
Ou alors ce pavé sert à stocker de l'argent pour l'ICANN, sûrement.