PROJET AUTOBLOG


Sam et Max

source: Sam et Max

⇐ retour index

Citations sur les prostitués

jeudi 10 janvier 2013 à 17:58

C’est pas parcequ’on a rien à dire qu’il faut fermer sa gueule… Alors comme aujourd’hui j’ai pas envie de me casser le dard je vous sors une liste de citations à placer dans vos soirées mondaines… Façon puzzle…

Ma préférence allant à Monsieur Simenon:

Les filles que l’on paie ne sont pas celles qui nous coûtent le plus cher…

Alphonse Allais

Un amant, c’est de l’amour. Deux amants, c’est du tempérament. Trois amants, c’est du commerce.

Arletty

Fermer les maisons closes, c’est plus qu’un crime, c’est un pléonasme.

Auguste Renoir Racontant ses souvenirs de bordels en compagnie de ses vieux amis Alphonse Daudet et Claude Monet.

Alphonse les séduisait, Claude les émoustillait et moi j’en profitais !

Bernard Dimey

Quand on n’a que son cul, mais qu’on a la jeunesse, on a l’île aux Trésors à portée de la main.

Caroline Otero, dite “La Belle Otero”

La fortune ne vient pas en dormant seule

Elisabeth Badinter

La prostitution relève du droit chèrement acquis à disposer librement de son corps.

Étienne Rey

Il y a un amour que l’on appelle vénal pour laisser croire que l’autre ne se vend pas.

François Cavanna

Nul n’a pas le droit de critiquer les putes qui font correctement leur métier !

Frédéric Beigbeder

Tout s’achète : l’amour, l’art, la planète Terre, vous, moi.

Frédéric Dard

La prostitution marcherait moins bien si les hommes n’avaient pas besoin de se confier à tout prix.

Quand vous dégustez des tagliatelles au restaurant alors que vous auriez pu vous en faire à la maison, il ne viendrait à l’idée de quiconque de dire que vous faites quelque chose d’immoral. Par contre quand vous payez pour du sexe, tous les moralistes vous sautent sur le paletot !

Georges Clemenceau

Payer pour le sexe ? Pourquoi pas ? Vous payez bien pour Dieu !

Georges Simenon

Le jour de la Saint Valentin je n’irais pas voir une putain, parce que je n’aime pas ce mot, mais j’irais quand même… et je lui apporterai des fleurs.

Les filles que l’on paie ne sont pas celles qui nous coûtent le plus cher…

Henri Jeanson

Les prostituées sont des femmes du monde à l’état brut.

Honoré de Balzac

Toute femme a sa fortune entre ses jambes.

Jean Yanne

Ce qui distingue une putain d’une honnête femme, c’est qu’une putain fait le bonheur de beaucoup d’hommes tandis qu’une honnête femme fait le malheur d’un seul.

Il est faux de dire que pour obtenir une femme, il faut soit du temps soit de l’argent. De l’argent il en faudra toujours, par contre vous pouvez gagner du temps.

Mae West

Un homme amoureux est comme un coupon de réduction, il faut le faire passer à la caisse sans plus attendre.

Michel Simon

Il y a un point commun entre les chats et les prostituées, c’est que pour obtenir leur affection, il faut le mériter.

Molière

L’écriture ressemble à la prostitution. D’abord on écrit pour l’amour de la chose, puis pour quelques amis, et à la fin, pour de l’argent.

Paul Gavarni

Pourquoi mépriser les prostituées ? Ce sont des femmes qui gagnent à être connues.

Pierre Dac

Les femmes de mœurs légères ont parfois la tâche lourde avec les hommes de poids.

Philippe Bouvard

La prostitution est une des rares professions qui soient demeurées très artisanales en dépit du progrès technique.

Sacha Guitry

Commence jeune à payer les femmes, tu t’apercevras moins vite que tu vieillis…

Victor Hugo

La femme est obligée de choisir entre acheter un homme, ce qui s’appelle le mariage, ou se vendre aux hommes, ce qui s’appelle la prostitution.

Virginie Despentes

Quand on affirme que la prostitution est une “violence faite aux femmes”, on veut nous faire oublier que c’est la mariage qui est “une violence faite aux femmes”.

Et je concluerais:
A poil les putes !

Migrer wordpress d’un serveur à un autre – Pense-bête

mercredi 9 janvier 2013 à 09:59

Si on veut changer de serveur sans se taper la réinstall de wordpress ça peut devenir casse-tête si on oublie deux trois trucs…

Voici un petit pense-bête avec pour exemple une config Nginx / WordPress / php5-cgi sur Ubuntu.

serveura.com = serveur sur lequel se trouve l’ancien WordPress à migrer
serveurb.com = nouveau serveur qui va accueillir WordPress

1. on sauve la db et on l’upload sur le nouveau serveur (on peut le faire à la fin si le blog a pas mal d’activité)
Sur le serveur A:

mysqldump -u user_toto -ppass_toto base_a_toto > /tmp/base_a_toto.sql
rsync -P -azc /tmp/base_a_toto.sql user@serveurb.com:/tmp/base_a_toto.sql

2. On copie wordpress sur le nouveau serveur
Sur le serveur A:

rsync -P -azc /home/monsite/wordpress/ user@serveurb.com:/home/monsite/

3. Setup et configuration du nouveau serveur
Sur le serveur B:
Installer les packets necessaires:

apt-get install php5-cgi php5-mysql mysql-server nginx spawn-fcgi sendmail

Il faut lancer les services nginx et spawn-cgi (pour ce dernier on peut utiliser supervisord)

Nginx:
Editer le fichier /etc/nginx/conf.d/monsite.conf . Attention à bien indiquer le chemin absolu vers votre site pour root

server {
    listen      80;
    server_name  monsite.com www.monsite.com;                   # your domain name
    root         /home/monsite/wordpress;  # absolute path to your WordPress installation
    index index.php index.html;
 
    error_log "/var/log/nginx_error.log";
    access_log  "/var/log/nginx_access.log";
 
    try_files $uri $uri/ /index.php;
 
    location ~ \.php$ {
        include        /etc/nginx/fastcgi_params;
        fastcgi_pass   127.0.0.1:53217;
        fastcgi_index index.php;
        fastcgi_buffers 8 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
 
location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
}
 
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
}
 
# Deny access to any files with a .php extension in the uploads directory
location ~* ^/wp-content/uploads/.*.php$ {
        deny all;
        access_log off;
        log_not_found off;
}
 
# Deny access to any files with a .php extension in the uploads directory for multisite
location ~* /files/(.*).php$ {
        deny all;
        access_log off;
        log_not_found off;
}
 
}

Spawn-Fcgi: C’est lui qui va lancer php5-cgi pour faire la liaison entre php et nginx. on va le lancer avec supervisor comme si c’était un service mais mieux.

Installation de Supervisor:

apt-get install python-setuptools
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf

Editez le fichier /etc/supervisord.conf pour y rajouter spawn-fcgi, c’est mieux de lancer php5-cgi avec un user autre que root (www-data ou autre) :

[program:php5-cgi]
command=/usr/local/bin/spawn-fcgi -n -a 127.0.0.1 -p 53217 -u www-data -f /usr/bin/php5-cgi
redirect_stderr=true 
stdout_logfile=/var/log/php5-cgi.log
stdout_logfile_maxbytes=10MB

Pour lancer Spawn-fcgi:

supervisorctl restart php5-cgi

Mysql: on ajoute mysql au demarrage et on le lance

chkconfig mysql on
service mysql start

Dump de la DB: il faut créer un user et une base sur la nouvelle install, si possible le même que sur l’ancien serveur pour faciliter la transition.
Sur le serveur B:

mysql -u root -prootpass
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu)
 
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> create database base_a_toto;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON base_a_toto.* TO "user_toto"@"localhost" identified by "pass_toto";
 
Query OK, 0 rows affected (16.16 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Et on importe la base de données de serveura.com:

mysql -u user_toto -ppass_toto base_a_toto < /tmp/base_a_toto.sql

4. Changer les dns
des fois on oublie :) alors changez les dns et attendez un peu, normallement ça devrait crystalliser…

Ca prend pas 5 minutes, même avec les paquets tous prêts. on peut avoir de mauvaises surprises en route. Moi par exemple erreur 500 , pour m’aperçevoir au bout de 2 heures que j’avais pas installé php5-mysql d’où ce tuto ;)

Le cadeau de Noël est arrivé

mercredi 9 janvier 2013 à 09:00

Foxmask avait été choisit par notre tirage au sort à l’arrache. Max et moi avions opté pour lui offrir un Razer Orochi car j’en possède une depuis pas mal de temps et :

Photo de la souris Razer Orochi

Elle a toutes les qualités d'une souris de bureau ET de nomade: taille, poids, précision, autonomie...

La livraison a par contre été plus longue que prévue.

Sam et Max se décarcassent expressément

  • Max: J’ai l’impression que Paypal a fait un mix entre l’adresse de livraison et l’adresse de facturation. Ca passera jamais…
  • Sam: Mais nannnnnnnnnnn. T’es pessimiste !

Une demi-heure plus tard Razer (société américaine qui nous livrera depuis l’Allemagne), nous appelle en français pour nous demander de confirmer l’adresse. 5 minutes après je reçois un mail de confirmation de commande. 12 heures après une confirmation de shipping avec numéro de suivit. Les mecs sont hyper pros.

Après 11 jours, rien.

Je check sur le site de DHL, apparemment le colis est bloqué dans la grande ville la plus proche et le site crie en rouge de contacter DHL pour résoudre un problème d’adresse.

Je tente de les appeler. Or DHL est une entreprise internationale qui gère du courrier. En période de fête, son activité explose. Que fait DHL France, comme tout service français en cas de surcroît d’activité ? Ils embauchent du personnel mettent tout le monde en vacances.

Impossible d’avoir DHL pendant 5 jours de musique d’attente.

Finalement, ils me répondent que non, ils n’ont pas de problème d’adresse, mais que ça doit être leur sous-traitant qui a le problème. Car DHL ne livre pas partout directement, et notre colis a été remis à une autre société.

Ducros-Express.

J’ai cru à une blague, mais non, ils ont un site Web très 1995 (créé avec FrontPage si vous regardez les sources).

J’essaye de joindre, Ducros-Express, donc. Non sans noter la nouvelle référence client qui n’est pas la même que celle de DHL. Appel, sonnerie d’attente, j’apprends que “Ducros-Express, it’s more that 3000 professionals to support you around the world” (ouai, en anglais, si, si) mais qu’ils sont tous en vacances. Car c’est les fêtes, que leur activité explose, et que comme toute entreprise française…

Bref.

Je les appelle hors fête, me heurtant plusieurs fois au fait qu’ils sont pas dispo le midi. Car quand on a “3000 professionals around the world” et qu’on fait de la livraison Express, on a des horaires 9h-12h, 14h-17h. Logique.

Une fois que je les ai au téléphone, ils me répondent que non, ils n’ont pas de problème d’adresse, mais que ça doit être leur sous-traitant qui a le problème. Car Ducros-Express ne livre pas partout directement, et notre colis a été remis à une autre société.

Quercy-Messagerie.

Je crois a une blague, mais non, ils ont un site Web ils sont enregistrés à la chambre de commerce.

Je les appelle, réponse immédiate de Janine, qui n’est pas around the World mais qui connaît bien son boulot. Non y a pas de problème d’adresse. On peut vous livrer demain vers 14h ?

10h du mat, un homme avec un mélange d’accent local et lointain me téléphone. Oui il sait très bien où c’est, c’est en dessous de chez M. X (WTF ? Comment il sait ça ? C’est un lieu dit avec 100 habitants à 10 bornes de toute ville). Faudra descendre en bas de la pente car le camion passera pas. J’arrive dans 15 minutes.

Récupération du colis, reconditionnement bonbon + capote + pillule de viagra. Reexpédition vers l’adresse de Foxmask (je saiiiiiiiiiiiiiiiiiiiis où tu habiiiiiiiiiiiiiiiiiiiiiiiiiiiiiite).

Ta da :

Photo de bonbons

La fraise tagada fait un très bon papier à bulle.

Photo de boite de Razer Orochi

Il manque la pillule de viagra, qui a du tombé dans les bonbons. Que ses gosses ont bouffé...

Le reste sur le blog de foxmask.

ça va trancher chérie

mardi 8 janvier 2013 à 20:46

on va bouger le site de serveur dans les jours qui viennent alors attendez-vous à voir des trucs disparaitre parce que je vais faire ça comme un gros porc ;)

Path.py plus en détail

mardi 8 janvier 2013 à 13:53

La première fois que j’avais rencontré path.py, je l’avais trouvé “juste pratique”, et donc je n’avais pas passé plus de temps dessus. Un jour je me suis poussé à l’utiliser partout dans un projet type “labo” dans lequel je mettais plein de libs à l’épreuve du feu. Force est de constater que sur le long terme, cette bibliothèque fait gagner beaucoup à un projet pour un coût infime. Je l’inclus maintenant par défaut partout.

A quoi sert path.py ?

path.py est typiquement une lib qui ne sert à rien à première vue, car il n’y a rien qu’on puisse faire avec qu’on ne puisse déjà faire avec la lib standard de Python. C’est juste un wrapper autour de os, os.path et shutils. Un peu comme requests pour urllib en fait.

Elle permet juste de manipuler les fichiers, et chemin de fichiers. C’est tout.

Quel interêt alors ?

L’API est propre, cohérente, simple, intuitive. En un mot, c’est beau. On gagne du temps à l’usage, à la relecture et au debugging, car le code est devenu tout petit et tellement facile à comprendre. Mais le plus fort, c’est que le coût de transition est quasi nul: tout code utilisant path.py est par défault compatible avec le code précédent, sans changer une virgule.

Montre moi

<music>Lunatic Calm - Leave You Far Behind</music>

Installation (ceci dit ça tient dans un fichier…)

pip install path.py

On importe, et on créer un objet path à partir d’une chaîne de caractère représentant un chemin de fichier ou de dossier :

>>> from path import path
>>> tmp = path('/tmp/')

Manipuler un chemin de fichier n’a jamais été aussi facile

>>> new = tmp / 'new.txt' # "/" fait os.path.join()
>>> new
path('/tmp/new.txt')
>>> new.isfile()
False
>>> new.touch() # créer le fichier vide
>>> new.isfile()
True

Extraire des données également:

>>> new.ext
'.txt'
>>> new.name
path('new.txt')
>>> new.parent
path('/tmp')
>>> new.parent.parent
path('/')

C’est joli. On en mangerait. Notez que chaque méthode retourne un nouvel objet path() sur lequel on peut donc appliquer les mêmes méthodes.

En prime, un objet path() se comporte aussi comme une string:

>>> print new
/tmp/new.txt
>>> new.upper()
'/TMP/NEW.TXT'
>>> os.path.join(new.parent, 'new_new.txt')
path('/tmp/new_new.txt')

Du coup, aucun problème de migration de l’ancien code. Utiliser path.py n’a virtuellement que le coût de l’install et de l’import.

On a aussi accès à tout un tas de méthodes avancées:

>>> tmp.dirs() # listing du dossier courant
[path('/tmp/pulse-XnVNgklabjGI'), path('/tmp/ssh-vrCzN4692eCp'), path('/tmp/pulse-PKdhtXMmr18n'), path('/tmp/.truecrypt_aux_mnt1'), path('/tmp/.X11-unix'), path('/tmp/.ICE-unix'), path('/tmp/plugtmp'), path('/tmp/pulse-2L9K88eMlGn7'), path('/tmp/orbit-sam'), path('/tmp/.winbindd'), path('/tmp/tracker-sam')]
>>> tmp.files()
[path('/tmp/new.txt'), path('/tmp/backup_tem.zip'), path('/tmp/qtsingleapp-mediat-134e-3e8-lockfile'), path('/tmp/unity_support_test.0'), path('/tmp/apprentissage-130107043807-phpapp02.odp'), path('/tmp/nIzDHlLoho'), path('/tmp/.X0-lock'), path('/tmp/IDcRs0LUki')]
>>> tmp.files('*.txt') # filtres
[path('/tmp/new.txt')]
>>> tmp.walk() # walk, walkfiles et walkdirs == même chose, récursivement
<generator object walk at 0x2e17960>
>>> list(path('/etc/php5').walkfiles('*.ini'))
[path('/etc/php5/conf.d/10-pdo.ini'), path('/etc/php5/mods-available/pdo.ini'), path('/etc/php5/cli/php.ini'), path('/etc/php5/cli/conf.d/10-pdo.ini'), path('/etc/php5/apache2/php.ini'), path('/etc/php5/apache2/conf.d/10-pdo.ini')]
>>> (tmp / 'test/test/test').makedirs() # création récursive
>>> (tmp / 'test/test/test').isdir()
True
>>> (tmp / 'test/test/test').makedirs_p() # les "_p" ignorent certaines erreurs
>>> (tmp / 'test/test/test').removedirs()

Et quelques goodies:

>>> with path('./Work'):
    print path('.').realpath()
    print path('.').listdir()[0]
...     
/home/sam/Work
./A référencer
>>> path('~').expanduser()
path('/home/sam')
>>> path('/etc/fstab').open().readline()
'# /etc/fstab: static file system information.\n'
>>> new.write_text("BAM d'un coup")
>>> new.text()
"BAM d'un coup"

Très pratique dans un shell.