PROJET AUTOBLOG


Sam et Max

source: Sam et Max

⇐ retour index

Marre des mots de passe pour push sur git ?

mardi 19 novembre 2013 à 09:36

Vous êtes dans une situation où vous ne pouvez pas utiliser uniquement une clé pour vous authentifier, et il faut taper votre putain de mot de passe à chaque push.

Ça sent le vécu n’est-ce pas ?

Mais bien entendu git vient avec une option bien cachée au fond de son fion pour adresser ce problème :

git config credential.helper 'cache --timeout=3600'

Et votre authentification sera gardée en mémoire pour une heure. Vous pouvez faire :

git config --global credential.helper 'cache --timeout=3600'

Pour l’étendre à tous les repos de votre machine.

flattr this!

You are deprecated

lundi 18 novembre 2013 à 09:20

Ceci est un post invité de Toniob posté sous licence creative common 3.0 unported.

Oh oui, je sais ce que vous allez me dire, et vous avez parfaitement raison. Oui, il m’arrive d’être un peu obtus sur certaines choses, surtout quand il s’agit d’un domaine que je connais. Bref, aujourd’hui nous allons parler de ifconfig et de route.

Soyons clair tout de suite : arrêtez d’utiliser ces merdes, elles sont dépréciées depuis longtemps ! Je sais comment sont les informaticiens de manière générale, et les administrateurs systèmes en particulier. Il est difficile de changer leurs habitudes. Mais si on vous proposait Scarlett Johansson, vous resteriez fidèle à Régine ou Jonathan Rhys Meyers si vous aviez Mickey Rourke ? Je vois à vos yeux lubriques que vous m’avez saisi. Alors c’est parti.

- ifconfig ? - ouiiiii ** tum tum tum tum **

Les interfaces

Utilisez la commande ip, c’est un ordre. Elle remplacera avantageusement ifconfig. Dans la suite de ce billet, je mettrai des exemples de commandes avec ifconfig et leur équivalent avec ip. Commençons avec du simple, afficher la liste des interfaces disponibles :

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:90:f5:ee:62:31
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interruption:20 Mémoire:f7e00000-f7e20000

lo        Link encap:Boucle locale
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:720 (720.0 B)  TX bytes:720 (720.0 B)
$ ip addr
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:90:f5:ee:62:31 brd ff:ff:ff:ff:ff:ff

Vous voyez, pour le moment ce n’est pas si compliqué, vous économisez même de précieuses lettres. Vous constatez que la sortie est différente, mais vous y trouverez globalement les mêmes informations. C’est une question d’habitude. Personnellement, ça m’a pris un peu de temps, mais je ne reviendrais en arrière pour rien au monde.

On va maintenant assigner une adresse ip. Bon, j’avoue, c’est un peu plus long cette fois avec la commande ip :

# ifconfig eth0 192.168.1.1/24
# ip addr add 192.168.1.1/24 dev eth0

Et si maintenant nous ajoutions une adresse ipv4 ? Sauf qu’avec ifconfig, ce n’est pas possible, on ne peut le faire qu’avec ip :

# ip addr add 192.168.1.2/32 dev eth0

Si on affiche la configuration de l’interface réseau :

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:90:f5:ee:62:31
          inet adr:192.168.1.1  Bcast:0.0.0.0  Masque:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interruption:20 Mémoire:f7e00000-f7e20000
$ ip addr show eth0
2: eth0:  mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:90:f5:ee:62:31 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.2/32 scope global eth0
       valid_lft forever preferred_lft forever

Et oui, rien du côté de ifconfig. Il ne voit pas que l’interface dispose de deux adresses différentes. Alors qu’il fallait utiliser des alias d’interface avec ifconfig, plus de souci de ce côté là avec ip. Voici maintenant quelques exemples d’autres commandes pouvant être utiles :

# ifconfig eth0 mtu 9000
# ip link set eth0 mtu 9000

# ifconfig eth0 up
# ip link set eth0 up

Les routes

Passons maintenant aux routes. Si vous utilisez ifconfig, vous vous servez aussi probablement de route. C’est fini les conneries maintenant ! Commençons par les afficher :

# route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
$ ip route
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1

Oui, la sortie est moins verbeuse par défaut. Ça devrait vous plaire pour vos scripts shell. Ajoutons maintenant une route par défaut :

# route add default gw 192.168.1.254
# ip route add defaut via 192.168.1.254

Et si on regarde le résultat de la commande ip route maintenant :

$ ip route
default via 192.168.1.254 dev eth0
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1

Contrairement à route, ip route génère une sortie qui peut être copiée / collée dans un ip route add. Pratique pour dupliquer une conf sur un autre serveur. Pour ajouter une route vers un hôte ou un réseau en particulier :

# route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.253
# ip route add 192.168.2.0/24 via 192.168.1.253

C’est une affaire de goût, mais je préfère largement la syntaxe de ip à celle de route.

Conclusion

Voilà cette petite introduction à la commande ip est terminée. Essayez de remplacer ifconfig dans vos usages au quotidien. Ça prend un peu de temps pour s’y faire, mais la syntaxe plus claire et les fonctionnalités disponibles permettent vite d’être plus rapide dans la configuration réseau d’une machine. Les exemples que j’ai donnés dans cet article devraient être suffisants pour 90% des usages. Si vous cherchez à vouloir en faire plus, il suffit d’ajouter l’option help à votre ligne de commande pour avoir des informations. Plus pratique que d’avoir à taper dans le man sans arrêt.

Si cet article vous plaît (merci de me faire des commentaires élogieux, c’est mon premier ici), j’essaierai de vous faire découvrir un peu plus la stack réseau sous Linux. Si les vlans sont connus, les bondings un peu moins, je pense que les macvtaps sont un mystère pour la plupart d’entre vous. Et tout se fait avec l’aide d’ip en plus, que demande le peuple ?

Et si la conf réseau ça vous saoule, je trouverai à m’énerver sur d’autres choses (le larousse n’a qu’à bien se tenir).

flattr this!

Quine en Python

dimanche 17 novembre 2013 à 08:05

Une quine en informatique, c’est un programme qui, quand il est exécuté, affiche un code source qui permet d’obtenir le même résultat. La plupart des quines affichent leur propre code. Évidement, ouvrir le fichier de code et l’afficher ne compte pas comme une quine valide…

C’est un exercice beaucoup plus difficile qui n’en à l’air, même si normalement tout langage turing complet en est capable.

Techniquement, la quine la plus courte en Python est un fichier vide, ce qui est une quine valide. Mais comme ce n’est pas très fun, voici un exemple court avec des vrais caractères ASCII dedans:

a='a=%s;print a%%`a`';print a%`a`

Notez l’emploie de variables qui ne servent à rien d’autre que d’optenir une forme de symétrie.

Une autre version plus longue :

 b='\\';g='"';p='%';s="b='%s%s';g='%s';p='%s';s=%s%s%s;print s%s(b,b,g,p,g,s,g,p)";print s%(b,b,g,p,g,s,g,p)

Beaucoup de quines utilisent ce principe de créer une chaîne contenant une partie du programme et d’afficher et évaluer la chaîne en même temps. Parfois avec des boucles :

x = ['print "x =", x', 'for m in x: print m']
print "x =", x
for m in x: print m

En Python, on peut évidement faire des variantes avec sys.write, exec, etc. Voici un article qui liste des snippets tordus et sympathiques pour y arriver.

Ça ne sert strictement à rien, mais c’est dimanche, personne ne va lire cet article de toute façon.

flattr this!

Comment tailler une pipe

samedi 16 novembre 2013 à 19:54

Sur ce blog, l’article qui a le plus cartonné n’a évidement absolument rien à avec Python : c’est le tuto video sur la masturbation féminine (même celui sur la sodomie n’a pas fait mieux). En l’occurrence qui s’adresse aux mecs qui veulent prendre en main leur nana, mais qui je suis sûr a intéressé quelques femmes également. Pour la culture (du point) G.

Malgré l’abondance du matériel pornographique sur le sujet, je suis certain que de nombreuses femmes se demandent comment faire une fellation. En effet, on le souligne rarement, mais il y a autant de mauvais coups femmes que hommes, la différence majeure étant que la plupart des hommes se satisfont de relations sexuelles de piètre qualité (pour des raisons pathétiques, mais ce n’est pas le sujet de l’article).

Et dans le lot il y en a forcément qui se demandent comment changer cela. Après tout personne n’est né pour mettre la bite de quelqu’un dans sa bouche, c’est forcément une connaissance artificielle. Et puis on a un lectorat gay également, même si je doute qu’on puisse leur apprendre quoique ce soit. Pro-tip : si vous avez des amis LGB extravertis, demandez leurs des conseils, ils sont simplement meilleurs que vous au pieu.

Comme pour le cuni, il n’y a pas de méthode empaquetée, prête à être livrée, mais voici quelques points clés.

Le teaser

Je le répète souvent, le sexe est la dînette des adultes. C’est du théâtre. C’est pour le fun. Et la reproduction, mais bon, la turlute n’est pas indiquée pour ça.

La pipe n’échappe pas à cette règle, elle sera meilleur si vous jouez le jeu.

D’abord il y a le regard. Un regard sûr(e) de soi (faites semblant), coquin ou carrément cochon. Un air qui dit qu’on en a envie.

Et il y a l’approche. Pas trop rapide, un peu joueur ou alors bestial, comme vous voulez, mais faites une mise en scène, c’est plus sympa.

Encore une fois, personne ne baise 5 étoiles tous les jours, ce sont juste des conseils.

La prise en main

Le gland est sensible au début, donc la main à la base du pénis. Vous pouvez y aller fermement, la base n’est pas sensible. Les doigts autour de la verge, la paume reposant, et poussant, sur la base. Un micro mouvement de va et vient en appuyant lentement, mais avec un peu de force vers le bas peut le faire.

Évitez de remonter la main à plus de quelques centimètres du gland est le plus important au début.

Mais comme pour le broute minou, il y a beaucoup de question de goût dans tout ce que je vais dire, donc souvenez-vous que ce sont des indications pour avoir de bonnes bases, pas des recettes miracles. J’ai rencontré un suisse qui me disait une fois qu’il adorait qu’on lui fasse des genres de brûlure indienne sur la tub. Je sais, j’ai des conversations bizarres. C’était près du lac du Loch Ness, alors la bizarrerie, vous savez…

Si vous savez masturber votre partenaire, vous pouvez alterner sans problème, et même pratiquer une masturbation particulièrement forte sur la fin. Mais attention, branler un mec correctement est généralement plus difficile que de le sucer. Pour vous entraîner, faites le en étant derrière lui d’abord, votre main sera dans le bon sens de la courbure donc se sera plus facile.

La prise en bouche

Je sais qu’on voit beaucoup de pornos où la meuf s’acharnent comme une malade sur le dard de son ou ses partenaires, mais bien que ça puisse être excitant à regarder, c’est rarement aussi agréable physiquement que quelqu’un qui y va à un rythme modéré au départ.

Bien entendu, comme souvent dans le cul, on accélère sur la fin, on y va plus fort, et on peu aussi commencer en mode bête sauvage dès le début, mais c’est contextuel. Pour la plupart des cas, doucement, puis on accélère.

Le plus important est de ne pas sentir les dents et de bien lubrifier.

Ça veut dire notamment saliver abondamment sur la bite. Abondamment. Crachez dessus si c’est trop sec. Si, si. Il faut que ça soit bien mouillé.

Et gardez votre air coquin, ça aide.

Pour les dents, c’est une question d’entraînement. Une copine bi m’a dit qu’avant sa première fois avec un mec, elle n’avait eu que des nanas, et était donc un peu perdu. Elle s’est finalement entraîné sur son pouce.

C’est un très bon conseil pour les dents et la salive. Pour le mouvement et autre, non. Mais il est très facile de voir si on sent ses dents sur son propre pouce, et assez simple de s’apercevoir si ça glisse tout seul ou si c’est un peu sec.

Vous avez déjà du entendre parler ou voir du deept throat ou du bukkake, des pratiques qui consiste essentiellement à traiter la bouche de la femme comme un vagin-auto-tamponneuse. Le plaisir qui en est retiré est purement psychologique et n’apporte aucun agrément physique. Il y a en fait peu d’hommes qui aiment ça, même si ils existent. Ce n’est pas parce que ça vous excite en vidéo que vous le voulez en vrai. Donc renseignez vous avant, et dans le doute, on vit très bien sans.

Le finish

Le finish est très important. Si vous êtes en train de faire quelque chose quand il vient, il aura bien plus de plaisir si vous ne vous arrêtez pas quand il jouit. Que ça soit branler ou sucer.

Maintenant il y a des tas de meufs qui n’ont pas envie de se prendre une giclée de sperme, ce que je comprends. Demandez au mec de prévenir dans ce cas avant qu’il vienne. Si vous ne dites rien…

La finition en bouche est très agréable, et bien entendu, personne ne vous oblige à avaler. Aller cracher juste après et vous laver les dents et tout à faire normal. Refuser catégoriquement aussi :-)

Sinon, venir sur les nichons n’apporte pas de sensation en plus, mais dans la tête ça turbine, et c’est un bon compromis.

Ne vous mettez pas non plus martèle en tête. Vous lui avez sucé la bite, si en plus il se plaint que la fin lui convient pas, mettez lui un god dans le cul, ça le calmera.

Quelques exemples

Bon, tout ça c’est très théorique, mais ça donne quoi en pratique ?

Voici deux styles un peu différents, et les deux sont de bons exemples :

Et voici un exemple qui peut être excitant en vidéo, mais qui, sauf quelques exceptions (contexte, personnes, alcoolémie, phases de la lune), rend vachement moins bien IRL :

Tips

Il existe quelques moments particulièrement chouettes pour glisser une fellation. Il faut qu’elle vienne de vous dans ce cas là, mais ça fait toujours plaisir :

L’idée est que ce soit spontané et imprévu. J’ai une copine une fois qui, juste avant de partir au boulot, au lieu de m’embrasser, m’a sucé en quelques secondes, puis est partie sans dire un mot. Je m’en souviens encore.

Notez que le problème de la pipe surprise (et même sans surprise), c’est que le mec peut avoir la bite sale. Or vous n’allez pas lui demander de se la laver avant, imagez qu’il fasse ça pour un cuni…

L’astuce, c’est d’avoir des lingettes pour bébé. Bien choisir sa marque pour que le goût soit pas dégueu, ça fait briller un braquemart en 5 secondes, remplaçant l’odeur de crevette faisandée par un doux fumet de what-ever-is-inside-the-stuff.

Une fois qu’il est venu, n’hésitez pas à le nettoyer avec un mouchoir ou un lingette. C’est très agréable.

Oh, et si vous avez envie d’un massage ou d’un léchage, demandez le avant la pipe, après c’est foutu :-)

Pour finir, un petit résumé :

flattr this!

Changer la timezone sous Ubuntu Server en ligne de commande

vendredi 15 novembre 2013 à 11:28

Avoir tous ses serveur à la même heure, c’est primordial. Et cette même heure devrait toujours être UTC.

Du coup dans votre script de déploiement, n’oubliez pas de changer la timezone de la machine.

Sous Ubuntu server, ça se fait en deux lignes :

echo "UTC" | sudo tee /etc/timezone
sudo dpkg-reconfigure  --frontend noninteractive  tzdata

Si vous avez des cron, redémarrez le daemon sinon il sera toujours décalé :

sudo service cron restart

Si vous êtes du genre à aimer la précision, vous pouvez installer un daemon NTP qui permet de synchroniser l’horloge du serveur régulièrement avec un serveur distant :

sudo apt-get -y install ntp

flattr this!