Enregistrer automatiquement les documents de Docusign dans Google Drive

Problématique :
Votre entreprise souhaite que les documents envoyées via Docusign soient automatiquement uploadés sur Google Drive lorsqu’ils sont complétés.

Vous disposez :
-Un compte Docusign
-Utilisez G Suite dans votre entreprise

Tout d’abord vous devez créer un compte de service, la démarche est très détaillée ici https://cloud.google.com/docs/authentication/production?hl=fr
Sauvegarder bien le .json et conservez-le précieusement !

Ensuite sur Docusign, cliquez sur votre vignette de profil > Go to Admin > Connect (docusign.com/connect) > Add Configuration

De là il ne vous reste qu’à remplir l’url où sera hébergé le script suivant. Vous pouvez configurer ce webhook pour que votre script soit appelés à l’envoi de l’enveloppe, ou à la signature ou autre.

Héberger ensuite le script à l’url défini. Faîtes un petit composer require google/apiclient:"^2.0" dans le même dossier que votre script. Ajoutez-y le fichier .json que vous avez téléchargé précédemment.



$driveService = new Google_Service_Drive($client);
$data = file_get_contents('php://input');
$xml = simplexml_load_string ($data, "SimpleXMLElement", LIBXML_PARSEHUGE);
if ((string)$xml->EnvelopeStatus->Status === "Completed") {
// Loop through the DocumentPDFs element, storing each document.
foreach ($xml->DocumentPDFs->DocumentPDF as $pdf) {
$filename = (string)$pdf->DocumentID . '.pdf';
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => $filename));
$file = $driveService->files->create($fileMetadata, array(
'data' => base64_decode ( (string)$pdf->PDFBytes ),
'mimeType' => 'application/pdf',
'uploadType' => 'multipart',
'fields' => 'id'));
}
}

Modifier VOS_CREDENTIALS pour indiquer le chemin où il se trouve, changez le filename comme vous le souhaitez (des infos seront disponibles dans le $xml).
Et voilà vos documents seront automatiquement uploadé sur Drive.

Passer ses sites en HTTPS sur Ubuntu 14.04

Pour avoir vos certificats gratuits Let’s Encrypt et passez vos sites en https facilement.

Si vous avez un serveur apache sur Ubuntu 14.04 voici ce qu’il faut faire :

Installer les modules apache que vous n’avez pas SSL et rewrite

$ sudo a2enmod ssl
$ sudo a2enmod rewrite
$ sudo service apache2 restart

Installer Certbot et le lancer

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache 
$ sudo certbot --apache

Vous allez devoir renseigner votre e-mail.

Ensuite la liste de vos domaines et sous-domaines apparaît, tapez « Entrée » si vous voulez des certificats pour chacun d’eux, sinon renseignez le numéro correspondant de ceux que vous souhaitez séparé d’une virgule ou d’un espace.

Un nouveau choix :

  • 1 : pour ne pas rediriger les http vers https
  • 2 : pour redirigirer vos http vers https

Certbot devrait renouveler automatiquement vos certificats tous les 90 jours grâce à un cron. Si vous voulez tester que cela fonctionne bien voici la commande à taper (c’est activé de base, ceci est juste pour tester) :

$ sudo certbot renew --dry-run

Source :  Certbot

Installation facile de Retropie sur Raspberry

Vous voulez une console de retrogaming avec tous les émulateurs ! Alors c’est simple. Vous avez donc besoin (Pack Raspberry sur CDiscount):

-Un Raspberry (Pi 3 Model B+ de préférence, c’est le dernier)

-Une carte micro-SD (8Go au moins)

-Une alimentation

-Une manette USB

-Un câble Ethernet

-Un câble HDMI

Si vous avez tout ça pour l’installation il faudra :

Retropie

Etcher

Des roms sur planetemu.net (fichiers des jeux)

Les étapes :

-Dézipper Retropie

-Lancer Etcher, selectionner l’image et votre carte SD

-Mettez la carte SD dans votre Raspberry et allumez-le

-Brancher une manette USB

-Rester appuyé sur un bouton pour lancer la configuration de votre manette et configurez-la. S’il y a des boutons que vous n’avez pas, restez appuyé sur un bouton pour passer.

-Brancher votre Rapsberry en Ethernet sur le même réseau que votre PC

-Sur votre PC, ouvrez « Réseau » et double-cliquez sur Retropie puis sur roms

-Ici vous pourrez copier/coller vos Roms selon les consoles

-Une fois terminé il ne vous reste plus qu’à redémarrer (start, quit, restart EmulatorStation)

Perso, je me suis fait un gros boîter en pâte fimo :

Installer Plex sur serveur Ubuntu 14.04

Sur votre PC :

allez https://www.plex.tv/downloads/

cliquer sur download, selectionnez Linux et clique sur « Votre distribution »

Clique droit sur votre distribution (ubuntu), et copier l’adresse du lien sous

Connectez-vous a votre serveur en ssh :

ssh user@ipduserveur
wget https://downloads.plex.tv/plex-media-server/1.7.5.4035-313f93718/plexmediaserver_1.7.5.4035-313f93718_amd64.deb

(coller ce que vous avez copier précédemment)

sudo dpkg -i  plexmediaserver_1.7.5.4035-313f93718_amd64.deb

(le fichier que vous venez de récupérer)

sudo service plexmediaserver start

Dans un nouveau terminal

ssh user@ipduserveur -L 8888:localhost:32400

Sur votre PC dans un navigateur :

http://localhost:8888/web

Et voilà vous pouvez configurer votre serveur Plex.

Si vous avez besoin de détails supplémentaires, laissez-moi un commentaire je développerai.

Compresser, optimiser ses images pour le web

Introduction

Tous les tests se feront sur une image JPEG de taille originale de 214ko, une autre de 11,2Mo et un PNG transparent de 44ko.

Il y a de nombreux sites proposant une optimisation en ligne mais ne proposant pas d’API pour l’utiliser, ceux-ci ne sont donc pas dans ce test car ils ne permettent pas une automatisation mais pour jeter un oeil ça ressemble à ça : Compressjpeg ou encore à ça WebsitePlanet.

Pour les comparatifs d’images qui vont suivre, l’originale se situera au-dessus ou à gauche de l’image générée.

Guetzli – https://github.com/google/guetzli

Guetzli est un outil développé par google pour optimiser les images web. Il est open-source.

Prix

Gratuit

Usage

guetzli [–quality Q] [–verbose] original.png output.jpg
guetzli [–quality Q] [–verbose] original.jpg output.jpg

Formats supportés

-JPEG

-PNG

Performance et rapidité

Guetzli utilise beaucoup de memoire 300mo/Mpx et prend beaucoup de temps à convertir chaque image, plus d’une heure pour la grande image. 2 minutes pour la petite.

Compression

Grande JPEG : 4,9Mo – 56%

Petite JPEG : 199ko – 7%

PNG : 78ko – 77% plus gros, perte de transparence

Qualité

Aucune différence visible à l’oeil nu en taille normale. Cependant, le PNG perd sa transparence…

Pingo – https://css-ig.net/pingo

Pingo est un projet expérimental gratuit disponible seulement sur Windows, je n’ai pas pu le testé.

Usage

pingo -s0 *.png

Formats supportés

-JPEG

-PNG

Kraken – https://kraken.io

Kraken est une solution en ligne.

Prix

5$/mois pour 500Mo + 5$/Go en plus

9$/mois pour 2Go + 4$/Go en plus

19$/mois pour 5Go + 3$/Go en plus

39$/mois pour 15Go + 2$/Go en plus

79$/mois pour 60Go + 1$/Go en plus

Usage

Via API

{
« auth »: {
« api_key »: « your-api-key »,
« api_secret »: « your-api-secret »
},
« url »: « http://remikel.fr/monimage.png »,
« wait »: true,
« lossy »: false
}

Formats supportés

-JPEG

-PNG

Performance et rapidité

Temps d’upload plus 0,5s/Mo pour la compression plus temps de download.

Compression

Impossible de tester sur la grande.

Petit JPG : 195ko – 8% de compression

PNG : 22ko – 50% de compression

Qualité

Aucune différence visible à l’oeil nu.

Image Optim – https://imageoptim.com/fr

ImageOptim est disponible en webservice ou en téléchargeant une application disponible sur Mac OS uniquement.

Prix

9$/mois pour 1000 images + 1$/100images supplémentaires

49$/mois pour 8000 images + 1$/150images supplémentaires

245$/mois pour 50000 images + 1$/200images supplémentaires

Usage

Drag and drop avec l’application ou via API.

Formats supportés

-JPEG

-PNG

Performance et rapidité

Instantané.

Compression

Grande JPEG : 9,9Mo – 11,2%

Petite JPEG : 195ko – 8,7%

PNG : 9,9Ko – 77,6%

Qualité

Short Pixel – https://shortpixel.com

Short Pixel, solution en ligne via API.

Prix

Gratuit 100images/mois

5$ 5000images/mois

10$ 12000images/mois

30$ 55000images/mois

Usage

via API

Formats supportés

JPEG

PNG

GIF

PDF

Performance et rapidité

Quelques secondes pour les petites images. Pas possible de tester la grande (mais pas de restrictions avec l’utilisation en API).

Compression

Petite JPEG : 195ko – 8,7%

PNG : 11,9ko – 73%

Qualité

EWWW Image optimizer – https://ewww.io/

Reconnu grace à son plugin WordPress. A l’air efficace.

Prix

0,003$/image, minimum 1$/mois

Usage

via API

Formats supportés

JPEG

PNG

PDF

Performance et rapidité

Pas pu tester, mais ils promettent de très bonnes performances.

Mozjpeg – https://github.com/mozilla/mozjpeg

Projet open source de Mozilla, il n’existe pas de binaires pour l’instant, il faut compiler le projet. Ce projet utilise des bibliothèque comme libjpeg-turbo qui sont aussi performantes.

Prix

Gratuit

Usage

/opt/mozjpeg/bin/cjpeg -quality 100 foo.jpg > bar.jpg

Formats supportés

JPEG

Performance et rapidité

Rapide, quelques secondes pour la plus grande, instantané pour la plus petite

Compression

Grande : 9,97Mo – 11%

Petite : 195ko – 8,7%

Qualité

Mozjpeg utilise des librairies qui sont aussi performantes individuellement mais un peu moins. Elles sont cependant un peu plus rapides. Je ne détaillerai donc pas chacune mais voilà des comparatifs que j’ai trouvés.

https://blarg.co.uk/blog/comparison-of-jpeg-lossless-compression-tools et https://gist.github.com/sergejmueller/088dce028b6dd120a16e

Original Size mozjpeg Size libjpeg-turbo Size mozjpeg Speed libjpeg-turbo Speed
621 KB 612 KB 615 KB 0.658 s 0.297 s
505 KB 475 KB 477 KB 0.481 s 0.204 s
391 KB 376 KB 385 KB 0.846 s 0.441 s
888 KB 780 KB 794 KB 0.786 s 0.346 s
700 KB 668 KB 670 KB 0.765 s 0.320 s
425 KB 408 KB 415 KB 0.700 s 0.270 s
322 KB 309 KB 314 KB 0.389 s 0.164 s

Both libraries are called with:

time jpegtran -copy none -progressive img.jpg > compressed.jpg

Summary

mozjpeg generates 1,18% smaller* files as libjpeg-turbo

mozjpeg is 2,3x slower* as libjpeg-turbo

Tests & Results

These are the images used in the tests with the full results and figures:

Comet PANSTARRS with Andromeda Galaxy

Filesize:6,178,710 bytes (5.9mb)

Dimensions: 4824 x 3161

Tool Filesize Reduction Time Taken
jpegoptim 17.635% – 1,089,625 bytes (1mb) 2,342ms
jpegtran 17.635% – 1,089,625 bytes (1mb) 2,221ms
jpegrescan 18.875% – 1,166,276 bytes (1.1mb) 16,816ms
mozjpeg1 18.876% – 1,166,323 bytes (1.1mb) 6,280ms
mozjpeg2 18.879% – 1,166,519 bytes (1.1mb) 5,272ms

Female Mallard

Filesize:4,213,895 bytes (4mb)

Dimensions: 4928 x 3264

Tool Filesize Reduction Time Taken
jpegoptim 6.315% – 266,136 bytes (260kb) 1,658ms
jpegtran 6.315% – 266,136 bytes (260kb) 1,654ms
jpegrescan 7.77% – 327,444 bytes (319kb) 11,387ms
mozjpeg1 7.77% – 327,452 bytes (319kb) 4,716ms
mozjpeg2 7.771% – 327,464 bytes (319kb) 4,237ms

Jupiter and Moons

Filesize:3,157,940 bytes (3mb)

Dimensions: 4928 x 3264

Tool Filesize Reduction Time Taken
jpegoptim 15.537% – 490,662 bytes (479kb) 1,471ms
jpegtran 15.537% – 490,662 bytes (479kb) 1,469ms
jpegrescan 16.574% – 523,402 bytes (523kb) 9,672ms
mozjpeg1 16.574% – 523,402 bytes (523kb) 4,046ms
mozjpeg2 16.514% – 521,533 bytes (521kb) 3,484ms

Beer

Filesize:2,154,968 bytes (2mb)

Dimensions: 3264 x 2448

Tool Filesize Reduction Time Taken
jpegoptim 8.011% – 172,644 bytes (168kb) 854ms
jpegtran 8.011% – 172,644 bytes (168kb) 741ms
jpegrescan 8.666% – 186,750 bytes (182kb) 5,742ms
mozjpeg1 8.666% – 186,750 bytes (182kb) 2,089ms
mozjpeg2 8.483% – 182,815 bytes (178kb) 1,786ms

House Martins

Filesize:1,122,198 bytes (1mb)

Dimensions: 2048 x 1356

Tool Filesize Reduction Time Taken
jpegoptim 5.367% – 60,229 bytes (59kb) 482ms
jpegtran 5.367% – 60,229 bytes (59kb) 501ms
jpegrescan 6.264% – 70,303 bytes (68kb) 3,259ms
mozjpeg1 6.268% – 70,349 bytes (68kb) 1,235ms
mozjpeg2 6.268% – 70,350 bytes (68kb) 1,114ms

Sunset

Filesize:320,398 bytes (312kb)

Dimensions: 1024 x 768

Tool Filesize Reduction Time Taken
jpegoptim 3.642% – 11,672 bytes (168kb) 150ms
jpegtran 3.642% – 11,672 bytes (168kb) 149ms
jpegrescan 4.804% – 15,393 bytes (182kb) 1,423ms
mozjpeg1 4.817% – 15,435 bytes (182kb) 478ms
mozjpeg2 4.819% – 15,441 bytes (182kb) 335ms

Pngquant

GUI ou command-line, disponible pour MAC OSX, Windows, Debian et Linux.

Prix

Gratuit

Usage

./pngquant file.png

Formats supportés

PNG

Performance et rapidité

Rapide.

Compression

PNG : 11ko – 75%

Qualité

Nickel

Conclusion

Au vu des résultats la plupart des solutions payantes en ligne utilisent mozjpeg pour la compression des images jpeg. Guetzli est très intéressant sur les grosses images au niveau de la compression mais le temps est vraiment trop long. Mozjpeg est quant à lui plus rapide.

En ce qui concerne le png, la solution qui semble la plus pratique et moins cher est Pngquant.

Pour le jpeg, il faudra choisir entre rapidité de compression et gain de place. Toutes les solutions présentées ici étant sans perte de qualité on peut bien remarquer que la qualité est toujours la même.

Cependant si l’on diminue la qualité à 90 on pourrait gagner beaucoup plus de place sans que ça ne se voie facilement à l’œil nu.

Prix Usage Format Performance Compression Qualité
Guetzli gratuit CLI jpeg, png « +++++ » parfaite
Pingo gratuit CLI jpeg, png
Kraken très cher API jpeg, png « ++ » « ++ » parfaite
Image Optim cher API jpeg, png « ++ » « +++ » parfaite
Short Pixel pas cher API jpeg, png, gif, pdf « ++ » « +++ » parfaite
EWWW cher API jpeg, png, pdf
Mozjpeg gratuit CLI jpeg « +++ » « +++ » parfaite
Pngquant gratuit CLI png « +++ » « ++++ » parfaite