par Anne-Laure DELPECH | 7 Jan 2019 | astuces rapides, sécurité
Lorsque j’utilise un ordinateur public (dans une école, une entreprise, une médiathèque,…) je n’ose pas me connecter à des sites tels que Gmail ou DropBox pour accéder à des courriels ou fichiers personnels. En effet, le risque est grand que l’ordinateur soit paramétré pour capturer mes informations confidentielles.
L’aide de Google explique comment se connecter sur un ordinateur qui n’est pas le mien : Vous connecter à votre compte sur un appareil qui n’est pas le vôtre.
par Anne-Laure DELPECH | 26 Juil 2018 | Hébergement web, Plugin (extension) WordPress
Il est prudent de sauvegarder régulièrement la base de données et les fichiers d’un site WordPress. J’ai testé de nombreuses solutions avant de m’arrêter depuis 6 mois sur Updraft Plus, en version gratuite. Updraft Plus est vraiment très bien pour réaliser des sauvegardes planifiées. Je l’ai essayé en ftp et sur dropbox
Installer et activer Updraft Plus
Comme n’importe quelle extension.
Planifier les sauvegardes Updraft Plus
Dans le menu Réglages / Sauvegardes Updraft Plus, onglet réglages :
- Fichiers : bimensuel, 4
- Base de données hebdo, 10
Sur dropbox
exclure de sauvegarde :
Je laisse tel quel, avec à exclure des sauvegardes :
- « backup*,*backups,backwpup*,wp-clone,snapshots »
- et « upgrade,cache, updraft,backup*, *backups,mysql.sql,debug.log »
Dans les réglages avancés, je vérifie que « supprimer la sauvegarde locale » est bien coché.
Enregistrer.
Régler la connexion à Dropbox
Lorsqu’on enregistre les réglages précédents, une fenêtre s »ouvre :

Updraft Plus : Réglage pour Dropbox
Cliquer sur le lien puis se connecter à son compte dropbox.
Ensuite cliquer sur le bouton « complete setup », qui nous ramène dans notre tableau de bord WordPress. La première sauvegarde commence automatiquement.
Utilisation d’une sauvegarde FTP pour transférer d’un hébergement à un autre
En transférant des sauvegardes d’un site par FTP on a un gain considérable :
- pas besoin de gérer la taille des fichiers zip : Updraft plus s’en charge (il découpe l’ensemble des fichiers à sauvegarder en autant de « lot » que nécessaire) ;
- Pas besoin de transiter par mon ordinateur : adieu les délais liés à une connexion ADSL poussive, adieu les problèmes de caractères spéciaux !
Le seul inconvénient est que le transfert est réalisé en FTP, sans encryption, lorsqu’on utilise la version gratuite du site.
Régler les paramètres FTP du « remote storage »
Dans les « settings » de Updraft Plus, cocher FTP comme « remote storage ».
Régler les paramètres FTP comme suit :
FTP server: |
ftp://oifw.vps.infomaniak.com |
FTP login: |
ohwt_flo1 |
FTP password: |
VotreMotDePasse |
Remote path: |
/updraft/ |
Passive mode: |
coché |
Ici les login et password donnent accès au répertoire /ald-utils/Flo-test/ et dans ce répertoire j’ai créé le répertoire /ald-utils/Flo-test/updraft .
Cliquer sur le bouton : « Test FTP Settings » pour vérifier les réglages.
Ensuite la sauvegarde se fait. Updraft plus gère la création de fichiers zippés de taille correcte. Par exemple 10 fichiers zippés nommés nomfichier-uploads.zip, nomfichier-uploads1.zip à nomfichier-uploads9.zip
Restaurer les fichiers Updraft Plus
Ensuite pour les décompresser dans le bon endroit, utiliser la fonction restauration de Updraft plus :
- placer les fichiers de backup dans le répertoire wp-content/updraft du site cible
- Dans le site cible, aller dans réglages / sauvegardes UpdraftPlus
- Dans l’onglet sauvagardes existantes, cliquer sur le lien « Scanner le dossier local pour recherche de nouveaux lots de sauvegarde ». On voit alors apparaître la sauvegarde ajoutée manuellement
- Cliquer sur Restaurer
Et voilà !
par Anne-Laure DELPECH | 6 Juin 2018 | Art numérique, Processing
Dans l’article Un sketch interactif (clavier ou souris) et des sauvegardes d’écran sous Processing 3 , nous avons vu comment réaliser des images à partir d’un sketch Processing. Maintenant nous allons voir comment créer une vidéo.
Le principe est simple :
- Dans le sketch Processing, l’appui sur une touche (v ou V) déclenche l’enregistrement d’une image à chaque fois que la fonction draw se termine (une frame).
- Avec les outils de Processing, création d’un fichier MOV à partir de toutes les images générées
- Réduction du volume de la vidéo en la convertissant en mp4 avec VLC
Le sketch dont nous voulons réaliser une vidéo
Nous repartons de l’exemple très simple présenté dans l’autre article déjà cité. Nous y avons simplement ajouté la possibilité de changer de couleur au clic de souris, et de remettre l’écran à zéro en préssant z ou Z. Pour des raisons évidentes, ce sketch en ligne ne fait pas les enregistrements :
Créer les images, dans le sketch
Je me suis inspirée de ce chapitre du manuel Floss de Processing.
Le code complet est :
/*******
* un sketch tout simple qui permet de dessiner à la souris
* si on clique sur la souris, la couleur du cercle change
* si on tape sur z ou Z, l'écran est effacé
* si on tape sur v ou V, le sketch sauvegarde des images pour générer une vidéo
* pour créer la vidéo à partir des images
* ----> voir mon tutoriel sur https://knowledge.parcours-performance.com
*******/
int r ; // radius
float hue ; // HUE of shape
float compHue; // complementary hue
float sat ; // saturation of shape's color
// Pour les interactions
boolean makeMovie = false ; // sauvegarder images en rafale / vidéo
// int movStart = 0 ; // pour compter l'intervalle de frame entre deux images
String dest = "vid/infini" ; // destination des images pour faire un film
// String dest = "E:/--- PLANCTON -----/vid1440/infini" ;
void setup() {
size(1440, 1080, JAVA2D) ; // ATTENTION la taille de l'écran doit être celle qu'on prévoit pour la vidéo
frameRate(30) ; // idéalement 24 ou 30 qui sont les framerate habituels des vidéos
colorMode(HSB, 360, 100, 100, 100);
r = 55 ;
hue = random(360) ;
compHue = 0 ;
sat = 50 ;
background(0,0,99,100) ; // white
}
void draw() {
smooth();
strokeWeight(3);
compHue = (hue + 180) % 360 ; // modulo 360 to turn in a circle !
stroke( compHue, sat, 100, 70 );
fill( hue, sat, 100, 70 );
ellipse( mouseX, mouseY, r, r );
if( makeMovie == true) {
// infini-00000nnn.tif
saveFrame ( dest + "-########.tif");
}
}
void mousePressed () {
hue = random(360) ;
}
void keyPressed() {
if (key=='z' || key=='Z') {
background(0,0,99,100) ; // white
}
if (key=='v' || key=='V') {
println("!!!! enregistrement images pour movie !!!!") ;
background(0,0,99,100) ; // white
makeMovie = !makeMovie ;
}
}
Les points importants sont :
- bien définir la taille des images (et donc de la vidéo) en définissant screen ;
- Définir le nombre d’image par seconde que l’on veut générer en utilisant framerate()
- Faire bien attention au lieu de sauvegarde des images car elles peuvent être très nombreuses et très volumineuses
- déclencher la génération d’images avec une touche
bien définir la taille des images (et donc de la vidéo) en définissant la taille de l’écran ;
Dans le setup(), on règle l »écran à la taille du film souhaité, ici 1440 x 1080 pixels : size(1440, 1080, JAVA2D) ;
Définir le nombre d’image par seconde que l’on veut générer en utilisant framerate()
Ici j’ai choisi un rythme de 30 images par secondes avec frameRate(30) ; dans le setup().
Remarque pour youtube, les frame rates courants sont 24, 25, 30, 48, 50, 60 images par seconde si l’on en croit le support technique Google.
Attention images nombreuses et volumineuses !!!!
String dest = « vid/infini » ; ou String dest = « E:/— PLANCTON —–/vid1440/infini » ; , permettent de dire où placer les images créées.
Attention, on crée autant d’image par seconde que le framerate (ici 30 , dont 30 images par seconde, 1800 par minute ! Et pour cet exemple, chaque image fait environ 4 Mo.
En 14 secondes, j’ai généré 694 Mo d’images !
déclencher la génération d’images avec une touche
On dessine le contenu de l’écran avant la sauvegarde de l’image. On place donc à la fin de la boucle draw le code suivant :
if( makeMovie == true) {
saveFrame ( dest + "-########.tif");
}
Ce code sauvegarde l’écran sous la forme d’une image dans le sous-répertoire vid du répertoire contenant notre sketch (pour moi \create_video_1\vid\infini-00000485.tif par exemple). Et makeMovie devient vrai lorsqu’on appuie sur la touche v (ou V) et redevient faux avec la même touche car
void keyPressed() {
if (key=='z' || key=='Z') {
background(0,0,99,100) ; // white
}
if (key=='v' || key=='V') {
println("!!!! enregistrement images pour movie !!!!") ;
background(0,0,99,100) ; // white
makeMovie = !makeMovie ;
}
}
Et voici le sketch complet : Sketch create_video_1 (changer l’extension en .pde)
Créer une image animée (gif) avec Gimp
Je suis partie de « Quick Tip: Combine images to gif animation in Gimp » :
- Ouvrir Gimp puis dans le menu fichier, choisir « ouvrir en tant que calques » et sélectionner toutes les images qui devront constituer notre image gif (j’ai sélectionné les 415 images !) ;
- Dans le menu fichier, choisir « export as » puis donner un nom finissant par gif (par exemple gif-tout-1.gif) au fichier à créer;
- Dans la boîte de dialogue, cocher « as animation » puis régler le délai entre frame pour que la vitesse soit convenable. Dans la mesure où je veux 30 images par seconde, je régle à 30 millisecondes entre frames.
- Ca prend un bon bout de temps.

Gif créé avec Gimp a partir d’images d’un sketch Processing
Créer une vidéo, avec les outils de Processing
Je me suis inspirée de ce chapitre du manuel Floss de Processing.
Dans le menu Outils de Processing, choisir « Movie Maker ». Attention à sélectionner le même framerate que celui d’enregistrement des écrans. Et cocher « same size as original » pour créer une vidéo de la taille de screen.

Créer une vidéo avec le Movie Maker dans Processing
Lorsqu’on clique sur le bouton « create movie », Processing nous demande où l’on veut enregistrer le fichier .mov qu’il va créer. Ensuite, la création se fait.
Conversion en MP4 avec VLC
Ouvrir la vidéo avec VLC. Dans le menu Média, choisir « Convertir / Enregistrer . Indiquer de nouveau le fichier à convertir, éventuellement indiquer à quel moment de la vidéo il faut commencer ou terminer. Ensuite cliquer sur « convertir ».

VLC convertir une vidéo en mp4 – 1
Choisir le format (ici h264) puis définir le fichier de destination.

VLC convertir une vidéo en mp4 – 2
Le fichier créé est énormément plus léger que le fichier MOV d’origine (100 fois mois d’octets parfois !) et la qualité reste très bonne.
Pour la vidéo correspondant au fichier gif ci-dessus, on a :
- une seule image fait 4 457 ko ;
- fichier gif réalisé avec les 415 images 6 655 ko ;
- vidéo .MOV réalisée avec les 415 images 1 614 ko ;
- vidéo .mp4 80 ko.
- Et voici la vidéo en mp4
Un exemple plus important et utile
Pour information, j’ai généré une demi-heure de vidéo d’un travail artistique collectif :
- Processing a tourné au moins 5 heures pour générer les 54000 images correspondant à 30 minutes (30 minutes * 60 secondes * 30 images par seconde).
- Le répertoire (un disque dur externe pour ne pas prendre de risque) a reçu 297 Go de fichiers. Chaque image au format tif faisait 1440 x 1080 pixel, 4.45 Mo ;
- La vidéo résultante en .MOV fait 104 Go (111 902 148 526 octets) !
- La vidéo enregistrée en MP4 avec VLC fait 949 Mo (995 936 674 octets).
Et maintenant ?
On dispose d’un moyen pratique de montrer ce que produit un sketch processing sans la lourdeur de devoir lancer le sketch sur le bon ordinateur.
par Anne-Laure DELPECH | 27 Mai 2018 | Art numérique
En cours d’art numérique (http://esbac.samedi.free.fr/), j’ai appris à utiliser les motifs et les masques en dessin vectoriel avec Inkscape. Je décris le fonctionnement ici (pour ne pas oublier, et parce que ça peut servir).
faire un masque ou une découpe avec inkscape
L’objet qui sert de forme de découpe est au dessus de celui qui doit être découpé (Objet > mettre au premier plan).
Le masque revient à modifier l’opacité de la forme de découpe tandis que la découpe rend totalement transparente la forme. Ici on fait soit un masque soit une découpe avec la forme de l’étoile au dessus :

Découpe ou masque avec Inkscape
Pour les réaliser :
- Il est préférable que les deux objets fassent la même taille
- L’objet mis au premier plan sert de masque ou découpe à celui qui est plus en arrière.
- Sélectionner les deux objets
- puis choisir objet > masque > définir. ou objet > découpe > définir
créer un motif et en remplir un objet
Pour créer le rectangle coloré qui a été découpé par l’étoile, j’ai rempli le rectangle avec un « motif « . Pour ce faire :
- faire un gribouillis ou autre.
- Sélectionner l’ensemble des objets à transformer en motif (ici un tortillon orange sur un fond bleu).
- dans le menu Objet, choisir motif puis objet en motif

Créer un motif avec Inkscape
4. Maintenant, si je sélectionne par exemple un rectangle à fond vert que j’avais préalablement créé, je vais dans remplissage et contour et dans l’onglet fond, si je clique sur le bouton « motif » mon rectangle devient rempli du motif défini.
5. Si je double clique sur le fond ainsi créé, je vois apparaître trois éléments à gauche de mon motif : une croix, un cercle et un carré

Avec le cercle je modifie l’orientation du motif tandis que le carré sert à modifier sa taille. J’obtiens par exemple l’un de ces trois remplissages :

Des motifs plutôt que des découpes ou des masques !
Evidemment, on voit maintenant que j’aurais pu tout simplement remplir mon étoile avec un motif. J’aurais obtenu le même résultat.
Et maintenant ?
Je suis très contente de connaître ces notions de motif et de découpe ou masque. Je vais voir comment les appliquer aussi dans des logiciels comme Gimp et même dans Processing.
par Anne-Laure DELPECH | 27 Mai 2018 | Art numérique, Processing
Cet article décrit comment on peut tracer un cercle avec Processing sans utiliser ellipse(). C’est utile si l’on veut tracer un cercle vide (transparent) à l’intérieur d’un objet, rectangle (pour faire un cache comme un microscope) ou cercle (un doughnut!).
Les notions de PShape, vertex, Contour
Pour comprendre les bases, il faut se référer à l’aide de Processing, et en particulier le tutoriel en anglais sur PShape qui utilise PShape, des vertex, ainsi que beginContour() et endContour() pour « percer » des trous dans des formes.
Le principe général
Au départ, lorsque je me suis intéressée au tracé de cercle avec des vertices, c’était pour mettre un cache en forme de microscope sur un travail collectif utilisant Processing. Je voulais faire un rectangle qui fasse la taille de l’écran, et à l’intérieur un cercle transparent de diamètre 90% de la hauteur de l’écran. L’écran était variable et je ne voulais donc pas créer une forme fixe.
C’est ainsi que j’ai compris comment faire un « trou » dans un objet :
- commencer la forme, avec beginShape() ;
- dessiner un rectangle en le traçant dans le sens des aiguilles d’une montre : aller d’un sommet à l’autre dans ce sens ;
- Démarrer un « contour » (un trou en fait) avec beginContour();
- tracer un cercle en le traçant dans le sens inverse des aiguilles d’une montre ;
- Arrêter le « contour » avec endContour();
- finir la forme avec endShape(CLOSE);
L’exemple que j’ai créé pour comprendre
Dans l’exemple qui suit, la fonction drawCircle() trace un cercle :
- un cercle de centre Vcentre (un vecteur qui contient les coordonnées de ce point)
- un cercle de rayon r
- un cercle qui ressemble à un kaléidoscope si sides a une valeur faible, à un vrai cercle sinon
- un cercle qui est tracé dans le sens des aiguilles d’une montre (cas « false » ou non (cas « true »)

Processing : vertices, PShape, Contour…
Le fonctionnement
dans le setup(), on définit principalement les couleurs des différents éléments. colBkgnd utilisé pour le fond de l’écran est défini comme blanc #FFFFFF.
Dans draw() – on aurait tout pu mettre dans setup si on avait voulu – , on dessine le contenu de 4 quadrants différents.
Dans les 4 quadrants on trace un cercle en utilisant la fonction drawCircle(PVector Centre, int sides, float r, boolean aclockw), définie à la fin du sketch.
Dans le premier quadrant (Nord Ouest), on trace un rectangle classique – avec rect() – puis on y trace un cercle qui est un PShape. Le cercle n’est pas vide. C’est un cercle plein. Le rectangle prend une couleur semi-transparente qui est diluée par le blanc du fond de l’écran. Le cercle est plus foncé, de la couleur de remplissage du rectangle mais sans la transparence pour une raison incompréhensible (et qui serait un bug de processing).
Dans le deuxième quadrant (Sud Ouest), on trace un rectangle puis un cercle selon le principe général décrit plus haut. On a bien un rectangle percé d’un cercle (on voit le fond blanc qui est le background.
Dans le troisième quadrant (Nord Est), on trace un premier cercle dans le sens des aiguilles d’une montre puis un deuxième cercle plus petit dans le sens inverse des aiguilles d’une montre. On obtient un doughnut (un cercle évidé) bleu sur le fond blanc.
Dans le quatrième quadrant (Sud Est), on trace un rectangle puis un cercle, comme dans le deuxième quadrant. Ensuite, une fois que l’on a refermé la forme avec endShape(), on trace une nouvelle forme avec un cercle plus petit. On obtient un rectangle évidé d’une forme de doughnut.
La fonction drawCircle( PVector Centre, int sides, float r, boolean aclockw )
Elle exécute un cercle comme on le ferait à la main si on disposait de l’équation d’un cercle, en traçant une succession de points de coordonnées x,y conformes à l’équation. Le tracé se fait dans le sens des aiguilles d’une montre si aclockw est vraie, dans le sens contraire sinon.
On trace autant de points que de « sides » : notre cercle est vraiment rond si on a défini une valeur élevée pour sides (plus de 30) et plus proche d’un quadrilatère ou d’un kaéliodoscope si l’on définit sides à une valeur faible.
Le code complet
Le code complet est disponible dans ce fichier texte téléchargeable : tracer cercles et autres PShapes
Le code complet est :
/*
* tracer des cercles et autres objets avec des vertices
*
*/
PVector VCentre ; // centre du microscope
float r ; // Rayon du microscope
int sides ; // forme du cercle (sides faible = kaleidoscope plutôt)
color colBkgnd, colQ1, colQ2, colQ3, colQ4 ;
void setup() {
size(600, 400) ;
colorMode(HSB, 360, 100, 100, 100);
VCentre = new PVector( 0, 0) ;
r = 70 ;
sides = 30 ; // avec 30 on a un cercle très bien déjà
colBkgnd = #FFFFFF ;
colQ1 = color( random(100, 250) , random(50,100), random(60,90), random(60,80) ) ;
colQ2 = color( random(100, 250) , random(50,100), random(60,90), random(60,80) ) ;
colQ3 = color( random(100, 250) , random(50,100), random(60,90), random(60,80) ) ;
colQ4 = color( random(100, 250) , random(50,100), random(60,90), random(60,80) ) ;
}
void draw() {
background( colBkgnd ) ;
// Quadrant 1 (Nord Ouest) on trace un cercle dans un rect()
VCentre = new PVector( width/4,height/4) ;
stroke(#FFFFFF) ;
strokeWeight(2);
fill( colQ1 ) ;
rect(0,0,width/2,height/2) ;
beginShape();
drawCircle( VCentre, sides, r, true ) ; // true draws anticlockwise, false clockwise
endShape(CLOSE);
// Quadrant 2 (Sud Ouest) on trace un trou circulaire dans un rectangle
noStroke() ;
fill( colQ2 );
beginShape();
vertex( 0, height/2 );
vertex( width/2, height/2 );
vertex( width/2, height );
vertex( 0, height );
VCentre = new PVector( width/4,3*height/4) ;
stroke(#FFFFFF) ;
strokeWeight(2);
beginContour();
// http://doc.gold.ac.uk/CreativeComputing/creativecomputation/?page_id=1142
// must be counterclockwise for a contour !!!!
drawCircle( VCentre, sides, r, true ) ; // true draws anticlockwise, false clockwise
endContour();
endShape(CLOSE);
// Quadrant 3 (Nord Est) on trace un doughnut
noStroke() ;
fill( colQ3 );
beginShape();
VCentre = new PVector( 3*width/4,height/4) ;
stroke(colQ3) ;
strokeWeight(2);
// on trace un cercle par dessus le rectangle
drawCircle( VCentre, sides, 1.2*r, false ) ;
beginContour();
// http://doc.gold.ac.uk/CreativeComputing/creativecomputation/?page_id=1142
// must be counterclockwise for a contour !!!!
drawCircle( VCentre, sides, 0.8*r, true ) ; // true draws anticlockwise, false clockwise
endContour();
endShape(CLOSE);
// Quadrant 4 (Sud Est) on trace un doughnut dans un rectangle
noStroke() ;
fill( colQ4 );
beginShape();
vertex( width/2, height/2 );
vertex( width, height/2 );
vertex( width, height );
vertex( width/2, height );
VCentre = new PVector( 3*width/4,3*height/4) ;
stroke(colQ4) ;
strokeWeight(2);
beginContour();
drawCircle( VCentre, sides, 1.2*r, true ) ;
endContour();
endShape(CLOSE);
beginShape() ;
fill( colQ4 );
drawCircle( VCentre, sides, 0.8*r, false ) ; // true draws anticlockwise, false clockwise
endShape(CLOSE);
}
void drawCircle(PVector Centre, int sides, float r, boolean aclockw) {
// http://vormplus.be/blog/article/drawing-a-cylinder-with-processing
float angle = 360 / sides;
if ( aclockw ) {
for (int i = sides; i >0 ; i--) {
float x = Centre.x + cos( radians( i * angle ) ) * r;
float y = Centre.y + sin( radians( i * angle ) ) * r;
vertex( x, y );
// println( i, " - ", i * angle ) ;
}
} else if ( !aclockw ) {
for ( int i = 0 ; i < sides ; i++) {
float x = Centre.x + cos( radians( i * angle ) ) * r;
float y = Centre.y + sin( radians( i * angle ) ) * r;
vertex( x, y );
// println( i, " - ", i * angle ) ;
}
}
}
Et maintenant ?
On sait tracer des cercles, faire des trous dans des objets. On peut explorer d’autres sujets !
Commentaires récents