Site original : Sam & Max: Python, Django, Git et du cul
Ceci est un post invité de Bussiere posté sous licence creative common 3.0 unported.
Ce petit article a pour but d’expliquer selon moi ce qu’est l’hypnose et comment cela agit pour moi comme un exhausteur de gout pour la domination / sexe.
L’hypnose de mon point de vue est un hack du cerveau, il revient a faire tilter le cerveau de quelqu’un pour en prendre le contrôle.
Selon moi 95% des gens sont sensibles a l’hypnose et 15% de ses 95 % sont ultras sensibles.
Les spectacles que vous verrez ne sont que sur les gens ultra sensibles, après la prise de drogue, le manque de sommeil et l’alcool peuvent rendre les gens ultra sensibles. De plus une personne qui perd ses repères devient plus sensible a l’hypnose j’ai déjà eu l’occasion de tester hypnose et urbex par exemple dans le cadre de la domination.
La domination et le sub space pour moi se rapprochent énormément de l’hypnose, pour moi les deux étaient fait pour se Rencontrer.
De base la domination rend quelqu’un de sensible ultra sensible, et quelqu’un ayant jouis et du coup abaissant toute ses défense devient ultra sensible a l’hypnose de même que quelqu’un en subspace.
J’utilise l’hypnose en domination de plusieurs manières :
Soit pour laisser des mots de commande exemples :
Miaouss pour que la soumise ne puisse que miauler et ne plus parler.
Persian pour qu’elle puisse reparler de nouveau
Spectre pour qu’elle se mette a genoux et ne puisse plus bouger.
Piroli pour qu’elle se fasse plaisir seule.
Rondoudou pour qu’elle s’endorme et parte.
Dracofeu pour la montée de chaleur.
Le plus amusant étant de pouvoir jouer avec des mots de commande en public…
Soit par association :
J’associe les cordes au plaisir
et quand j’attache quelqu’un, cette personne ressent des montées de chaleur plus les cordes la touche. Chose que je fais souvent en performance.
J’ai remarqué que les cordes augmentaient les effets de l hypnose au point ou j’ai des amies qui me demande de les attacher habillées et de les hypnotiser pour les détendre après.
Une chose amusante est aussi de lier un foulard au plaisir et de passer le foulard sur le corps.
Mais sans aller jusqu’à l’hypnose “dure” le conditionnement fait partie de l”hypnose et tout le monde peut le faire. Prenez du velours, si dans les préliminaire quand votre partenaire éprouve du plaisir vous jouez avec un morceau de velours régulièrement, ce morceau de velours sera associé au plaisir. Donc il y aura un effet d’association qui décuplera le reste, et parfois selon votre partenaire juste sortir ce morceau de tissus suffira a le / la faire rougir.
Soit pour augmenter la sensibilité au reste :
Il suffit par hypnose de conditionner la personne et de lui augmenter tout les sens pour qu’elle ressente encore plus de choses.
Apres l’hypnose fait peur j’ai des personnes qui acceptent de me laisser leur corps, je peux les attacher nues mais pas toucher a leur esprit. C’est leur choix et je le respecte mais j’ai du mal a comprendre dans la mesure ou le corps pour moi est une porte sur l’esprit.
J’aimerai savoir si d’autres personnes pratiquent aussi l’hypnose avec la domination ici.
Et en tant que dominateur j’apprécie particulièrement le contrôle sur l’esprit qui pour moi est largement au dessus du corps surtout chez les femmes. Les femmes étant largement plus mental que les hommes, arriver a jouer avec leur esprit est une satisfaction largement plus gratifiante que juste jouer avec les corps.
Sérieusement si vous arrivez a tenir une femme par le mental vous l’emmenez ou vous voulez …
Tout ce qui est préliminaires , jeux , situations , rôles contribue a conditionner une femme et a lui donner plus de plaisir. Sans aller jusqu’à l’hypnose je recommande d’être joueur.
L’hypnose est un outil très intéressant pour tout ce qui touche a la domination si on le rajoute au reste, il en multiplie les effets et le reste décuple les effets de l’hypnose.
Quand vous forcez quelqu’un a se mettre a genoux devant vous , ou qu’il est vulnérable face a vous l’hypnose marchera mieux. Quand vous faites oublier son nom a quelqu’un en “jouant” avec lui il devient plus sensible a l’hypnose.
Bon par contre il y a des questions d’éthiques , personnellement j’ai l’éthique du bdsm qui consiste en un safe word, d’être sur du consentement de la personne sans aucun biais (hypnose, alcool , drogue , fatigue) et souvent de définir un contrat avec la personne sur les choses permises. Et en cas d’absence de contrat je m’abstiens de toute choses plus poussées et j’y vais par pallier.
Ma plus belle réussite reste d’arriver a faire se mettre a genoux et immobiliser une soumise puis la faire jouir en claquant des doigts sans la toucher, tout avec la voix.
Dans un autre domaine j’ai fait un petit jeu open source basé sur l’hypnose :
http://ragemag.fr/oculus-rift-hypnose-virtuelle-ragemag-mystifier-jeu-video-45716/
Et un type que je recommande derren brown :
https://www.youtube.com/user/OfficialDerren
Et pour finir une petite chanson :
Il est courant de vouloir installer plusieurs versions de Python. Pour faire des tests, pour s’assurer que son code est portable, pour utiliser des libs qui marchent uniquement sur une des versions, etc.
Sous Linux, c’est facile : chaque interpretteur est préfixé. Par exemple, sous Ubuntu, si je veux utiliser Python 3.4, je l’installe :
sudo apt-get install python3.4 |
Et si je lance python
, ça me lance la 2.7 car c’est celle de base. Mais si je lance python3.4
, ça me lance bien la 3.4.
Au final, on finit par utiliser des environnements virtuels qui isolent des versions de Python particulières. Mais ça ne retire pas l’envie de pouvoir choisir sa version de Python au niveau du système, ce qui reste difficile à faire sous Windows.
Or, depuis la version 3.3, l’installeur pour cet OS de Python installe la commande py, qui permet de choisir quelle version de Python on lance.
Si dans une console vous faites :
py |
Il lancera le shell de votre installation Python 2.x la plus récente.
Si vous faites :
py script.py |
Il exécutera le script avec votre installation Python 2.x la plus récente.
Mais vous pouvez passez un flag -version
pour forcer une version de Python. Lancer le shell Python avec la 3.3 :
py -3.3 |
Lancer un script avec la 3.4 :
py -3.4 script.py |
Cela suppose que vous avez la 3.3 et la 3.4, installés, évidement.
La syntaxe est surprenante. J’aurais pensé qu’ils mettraient un truc du genre py -i 3.4
mais non, c’est direct -numero
.
La commande py
accepte aussi les paramètres qu’on passerait normalement à la commande python
, et notament l’option -m module
, qui permet de lancer un module en particulier.
C’est pratique pour lancer ipython
ou pip
avec une version particulière. Par exemple pour installer autobahn uniquement pour la version 3.4 et donc utiliser asyncio
:
py -3.4 -m pip install autobahn |
La commande py
reconnait également la ligne shebang, cette syntaxe unix qui dit quel interpretteur utiliser. Si vous mettez sur la première ligne de votre script :
#! python3.4 |
Alors :
py script.py |
Invoquera python 3.4.
La commande est capable de se débrouiller avec les chemins Unix, afin de garder la portabilité. Donc si vous faites :
#! /usr/bin/env python2.7 |
Alors :
py script.py |
Va ignorer le debut de la ligne, et prendre l’installation locale de Python 2.7 pour lancer le script.
Si vous installez la version Python 3.3 ou 3.4 en premier, les fichiers .py
seront associés à la commande py
. Donc si vous cliquez sur un script Python avec une ligne shebang, la bonne version sera lancée.
Mais si vous avez installé Python 2.x avant, il est possible que vos fichiers .py
soient encore associés directement à la commande python
ordinnaire.
Pour changer cela, faites un clic droit sur un fichier .py
, modifiez le programme qui ouvre ce fichier et faites le pointer sur "C:\Windows\py.exe"
.
Vous aimez pdb parce que c’est cool. Et vous adorez pdbpp parce que c’est trop cool.
Mais parfois vous n’avez pas accès à une console sur votre process : il est derrière un nginx, ou même sur une machine distante.
rpdb vient résoudre ce problème en lançant un serveur telnet qui donne accès à votre debugger.
pip install rpdb |
Puis :
import rpdb; rpdb.set_trace() |
Et après vous prenez votre client telnet favoris, et vous accédez à votre débugger :
telnet 127.0.0.1 4444 |
Bien entendu, si vous êtes à distance, remplacez 127.0.0.1 par l’ip de la machine. Le port est configurable également :
import rpdb debugger = rpdb.Rpdb(port=12345) debugger.set_trace() |
Et derrière, ça lance pdb
, donc pdbpp
est lancé automatiquement si il est installé. Joie.
La migration de serveur est terminée. Le blog, le multiboards, IndexError et 0bin on été rétablis. On en a profité pour remettre sur pied AllThatCounts qui avait été délaissé durant le dernier crash.
On quitte donc LeaseWeb, qui nous a forcé à migré 3 fois avec ses machines qui ont planté. En plus deux fois la partition /tmp
était corrompue, ce qui rend le backup particulièrement compliqué. On notera que leur SAV nous posait des questions du genre “si vous installez ça, et lancez cette commande, ça donne quoi ?”, alors qu’on leur a bien notifié qu’on avait un disque monté en lecture seul du fait du FS en vrac…
On est passé chez Cinfu, car on peut les payer en Bitcoin. Livraison du serveur rapide, installation sans histoire, et finalement une migration beaucoup moins chiante que la dernière fois car on a fait les gros bourrins : rsync
+ mysqldump
bien large. Ce qui a pris le plus de temps c’était de résoudre les centaines de problèmes de permissions que ça a créé, les trucs que ça aurait pas du écraser, etc.
On avait + de 100000 spams dans la poubelle des commentaires, qui prenaient 300 Mo des 400 mo de la taille totale de la BDD du blog. Un petit :
DELETE FROM wp_comments WHERE comment_approved = 'trash'; |
A accéléré la migration vu qu’on a du transférer la base 3 fois et la réimporter autant à cause d’erreurs diverses. Note à nous-même : arrêter de mettre des .bak
dans /tmp
parce que c’est “juste pour 5 minutes”. Après on se fait avoir comme des débutants au reboot.
C’est là qu’on voit qu’on est dev, et pas admin.
Rajouter dans wp-config.php :
define('EMPTY_TRASH_DAYS', 30); |
Nous évitera d’avoir à repenser à tout ça. C’est con mais faut le savoir.
J’en profite pour témoigner mon amour immodéré pour mosh. Parce que faire tout ça sur une connexion thai avec 300ms de ping minimum et une coupure toutes les 10 minutes, avec SSH, c’est juste un enfer.
Sous Centos, faut installer les repos EPEL
et yum install mosh
derrière.
Sous Ubuntu, fait installer le ppa ppa:keithw/mosh
et apt-get install mosh
derrière.
Certains serveurs ont un pare feu tatillon, et il faut rajouter dans la section :RH-Firewall-1-INPUT - [0:0]
de iptable :
-A RH-Firewall-1-INPUT -p udp --dport 60000:61000 -j ACCEPT
D’autres ont des problèmes de locales:
apt-get install --reinstall language-pack-fr dpkg-reconfigure locales |
Parfois y a aucun problème. C’est juste qu’on a pas un parc homogène, avec des bécanes vieilles de 1000 ans, alors forcément…
Mais Max a fait des devis, et si on passe au cloud avec les 2G/s de BP et les To de disque dur qu’on consomme, on multiplie les prix par 10 d’hébergement. Faire les trucs à la main, c’est chiant, mais c’est économe.
Pour mosh, pas de serveur à lancer, juste remplacer ssh
par mosh
dans la commande quand on se connecte. Des fois je lance avec --predict=experimental
car je suis impatient et le retour de frappe est plus rapide, mais le cursor fait des mouvements bizarres, faut s’habituer.
Bon, on retourne faire des trucs plus productifs.
Ceci est un post invité de foX posté sous licence creative common 3.0 unported.
Qui n’a jamais rêvé d’avoir un shell Unix un peu plus pythonic ? Les oneliners en sed et Awk bien chiadés, c’est l’apanage des grands barbus en sandales et ça déchire, mais ça reste cryptique et la manipulation de liste et de chaînes de caractères est tout de même limitée. On peut dégainer perl en one line, comme ça c’est encore plus puissant mais moins lisible…
Et python dans tout ça ? En oneliner, ça craint, car le principe d’indentation ne facilite pas les choses et on finit avec une imbrication de bazar de parenthèses illisible.
La solution ? Pour se faire plaisir : une bonne pyp. Le bidule s’installe avec… pip (c’est une méta pipe).
pip install pyp |
pyp (Python Power at the Prompt) va enchanter votre shell unix et vous envoyer au 7ème ciel. Petit tour d’horizon de la merveille.
C’est la base quand on bricole des oneliners en shell, tripoter des strings.
ls *JPG | pyp "'mv', p, p.replace('JPG', 'jpg')" |
Revoyons l’action au ralenti :
On voit ici que l’on utilise la méthode replace de la classe str python. On peut utiliser n’importe quelle méthode de str : lower, upper, title, strip(tease), count etc. Avec des petits bonus comme refindall(re) :-)
Ça donne quoi ma brave dame ? Et bien si on avait des fichiers appelés porn1.JPG et ass.JPG notre jolie commande renverrait :
mv porn1.JPG porn1.jpg mv ass.JPG ass.jpg |
Ok, bien gentil me direz-vous, mais qu’en fait-on ? Et bien ou l’on pipe ça dans le shell ( | sh) ou alors on passe l’argument -x (ou –execute) à pyp ou directement exécuter le résultat.
ls *JPG | pyp "'mv', p, p.replace('JPG', 'jpg')" | sh # ou bien ls *JPG | pyp -x "'mv', p, p.replace('JPG', 'jpg')" |
Pourquoi on aime bien python ? Car il slice le bread comme un chef. Pyp aussi, oeuf corse, quelques exemples :
echo "sam-et-max" | pyp "p.split('-')[2]" # max # La même chose en plus court. Le m, comme minus, sous-entend qu'on split sur "-" echo "sam-et-max" | pyp "m[2]" # max echo "sam-et-max" | pyp "m[0], m[2]" # sam max |
Comme vous avez vu, il y a un petit raccourci sympa avec m (comme minus) au lieu de p. C’est pas fini, vous en avez d’autres : d (dot) pour un point, w (whitespace) pour une espace, u pour underscore, s pour slash… Ils ont pensé à tout.
On tout de suite envie de remettre le couvert avec une autre pyp. C’est possible et même encouragé. Le symbole utilisé est le pipe unix | dans une commande pyp. Ce n’est donc pas un pipe du shell mais un pipe interne de pyp. Vous suivez ? Un petit exemple :
echo "sam et max" | pyp "w[0] | 'avant : ', o, 'après :', p" # avant : sam et max après : sam |
Le p représente toujours le paramètre courant. Donc dans la seconde partie du pipe, c’est le premier élément de la liste issu du split de la chaîne “sam et max” sur l’espace (w comme whitespace). Vous suivez toujours ? Oui, bon. Et donc le o ? Et bien c’est le paramètre d’origine non modifié. Et il y a h (comme history ou comme hâlibi !) pour avoir le paramètre p à toutes les étapes de la chaîne de pipe… Beaucoup de puissance on vous dit !
On peut aussi rouler^w faire des join facilement avec les mêmes raccourcis. Par exemple on split sur les espaces puis join sur slash :
echo "sam et max aiment le lourd en fin de soirée" | pyp "w[:6]|s" # sam/et/max/aiment/le/lourd |
S’il y a un bien un truc qui envoie du bois avec python, c’est la gestion des listes. Pyp n’est pas en reste. C’est pp qui contient les listes. En avant :
ls | pyp "pp[3]" # Affiche le troisième fichier |
On peut utiliser toutes les méthodes standards de la classe list (sort, count etc.) plus quelques bonus :
# Équivalent de | sort | uniq
ls | pyp "pp.uniq()" # Additionne tous les PID des process de machine. # Ça ne sert à rien, mais c'est un exemple hein ? ps -ef | pyp "w[1] | int(p) | sum(pp)" # Voilà qui est plus utile. # Au passage, on note que la ligne d'en-tête est ignoré et ne fait pas planter pyp. # Malin le lapin. df -m | pyp "w[1] | int(p) | sum(pp)" |
Pour compléter les fonctions python, pyp propose quelques fonctions maisons tout à fait sympathiques. Florilège :
echo "Sam Bill Max" | pyp "p.kill('Bill')" # quand c'est pas bill, c'est kenny... # Sam Max echo 124 | pyp "(int(p)/2+30)" # 91 ls | pyp "n, p" # Liste des fichiers avec un numéro croissant devant echo /home/fox/video/gangbang.avi | pyp "'Dir='+p.dir, '\nFile='+p.file, '\nExt='+p.ext" # basename, dirname et ses amis # Dir=/home/fox/video # File=gangbang.avi # Ext=avi # On définit le séparateur de liste comme l'espace, # puis on regroupe la liste par deux élément # et enfin on fait un join sur le caractère tiret (minus) echo "1 2 3 4 5 6" | pyp "pp.delimit(' ') | pp.divide(2) | m" # 1-2 # 3-4 # 5-6 ps -ef | pyp "w[1] | int(p) | max(pp)" # (le PID le plus grand) |
Il ne faut pas se gêner, on peut utiliser les excellentes listes en intention de Python. Voici tous les PID impaires :
ps -ef | pyp "w[1] | int(p) | [i for i in pp if i%2] | p " |
Les bonnes choses, ça se garde, alors voilà :
ps -ef | pyp "w[1] | int(p) | [i for i in pp if i%2] | p " -s odd # on enregistre la macro 'odd' ps ef | pyp odd # c'est aussi simple que cela ;-) |
Cette petite pépite est développée par Sony Pictures Imageworks pour ses besoins internes. Le développement n’est pas très collaboratif (un commit par release…) mais reste ouvert aux contributions externes. C’est sous une licence de type BSD.
Les loulous ont fait une jolie vidéo de tutorial très bling bling. C’est l’avantage de bosser dans le milieu :
Cet outil merveilleux possède encore des fonctionnalités qui vont vous le faire adorer comme son mode interactif avec une coloration syntaxique sympathique, la gestion de l’historique dans le pipe et beaucoup d’autres. Adieu sed, awk, uniq, sort et con sort, vous étiez mes premiers amours, mais pyp vous chasse dehors.
Ce n’est pas la seule ni la première tentative de faire la peau d’awk avec python. Sam avait déjà écrit un article sur une autre solution aussi appelée pyped.
Oui, bien entendu. Aucun défaut, aucun bug. Ok… voici les limites :
Amusez vous bien, celui qui fait la plus jolie commande pyp dans les commentaires aura le droit à un bisous.