Extraction d’un fichier une archive de sauvegarde

astuceson janvier 18th, 2012Commentaires fermés

On récupère la liste des fichiers de l’archive (le chemin complet est nécessaire pour une extraction d’un seul fichier). On peut filtrer avec grep ou autre :

tar -tf mon_archive.tar.gz

On extrait le ou les fichiers(avec les *) avec la commande :

tar -xvf mon_archive.tar.gz « *.jpg »

ou

tar -xvf mon_archive.tar.gz « /le/bon/chemin/mon_fichier.doc »

Diminuer(fortement) la taille d’un pdf contenant des images lourdes.

astuceson novembre 24th, 2011Commentaires fermés

Je vais pas faire de blabla je me suis entièrement reposé sur l’article :

http://www.laspic.eu/atelier/063-compresser-un-document-pdf-numerise

qui utlise le script Ghostscript, installé sur mon ubuntu.

Pour résumer voici la commande :

gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook  -sOUTPUTFILE=output_ebook.pdf -f plaquette1.pdf

Pour les options de compressions en partant d’un fichier de 16Mo uniquement composés d’images :

  • /screen => 1.3M
  • /ebook => 6.4Mo
  • /printer => 29Mo

Pour l’ensemble des résultats j’ai trouvé la qualité très correcte.

Installation de Prawn

astuceson octobre 20th, 2011Commentaires fermés

La version de Prawn 1.0.0 RC1 est sortie, mais dans un premier temps je vais utiliser la version 0.12. Dans mon Gemfile je rajoute donc les lignes suivantes :

# Création des pdfs
gem 'prawn'
gem 'prawn_rails'

un petit :

$ bundle install

Je créé une vue : views/…/simple.pdf.prawn

Dans laquelle je place :

prawn_document() do |pdf|
  pdf.text "Hello World"
end

et

par magie quand je pointe sur l’adresse index.pdf il me propose le PDF avec le « Hello Word ».

Pour l’instant simple et efficace. A savoir que j’utilise en prod PdfKit, mais que je rencontre des soucis de présentation entre Linux et Windows, c’est donc pour cela que je tente Prawn.

NB : Vue qu’une doc bien faites est apparemment sortie (voir cet article), je viens d’installer la 1.0.0.rca :

# Création des pdfs
gem 'prawn'
gem 'prawn_rails'

puis si vous aviez déjà une autre version d’installée :

$ bundle update prawn

Commande php_beautifier pour remettre en forme un code php

astuceson juillet 1st, 2011Commentaires fermés

Suite à la reprise d’un code relativement indigeste voici une première commande qui vous permettra de reformater tout ça :

php_beautifier -s2 -f avant.php -o apres.php -l 'NewLines(before=T_CLASS:public:T_FUNCTION)'  -l 'ArrayNested()' -l 'IndentStyles(style=k&r)'

C’est une commande shell il faut avoir installé l’outil php_beautifier :). Toute la finesse se situe dans le choix des filtres et leurs options.

Envoi via Gmail de mail avec RAILS 3 sur un serveur local

astuceson avril 1st, 2011Commentaires fermés

Après avoir essayé de configurer un serveur local avec sendmail pour l’envoi via un smart_host (smtp.orange.fr) je me suis rabattu sur gmail, et la ce fut beaucoup beaucoup plus simple.

1 – J’ai créé un compte gmail générique à ma société : mail.societe@gmail.com par exemple.
2 – j’ai ajouté un email dans la section Comptes et importation => « envoyer des emails en tant que ». Afin de pouvoir envoyer des emails avec un « from » correspondant au client.
3 – J’ai configurer RAILS 3 avec les paramètres du compte GMAIL. (par exemple ici)

Et ça marche !!

Envoi d’email par Codeigniter, Symfony et Infomaniak

astuceson février 21st, 2011Commentaires fermés

Suite à une perte de temps de pas loin de quatre heures, je note ici les deux tips primordiaux pour l’envoi des mails par informaniak. Ils ont sécurisé au maximum l’envoi d’email par php pour éviter le spam.

code igniter

La principale solution est venue de ce sujet :

http://expressionengine.com/archived_forums/viewthread/136992/P18/

Précisément cette réponse :

//Line 54: set _safe_mode to true
var $_safe_mode = TRUE;
//Line 94- comment it out
//$this->_safe_mode = ((boolean)@ini_get("safe_mode") === FALSE) ? FALSE : TRUE; 
//Line 130 - comment it out
//$this->_safe_mode = ((boolean)@ini_get("safe_mode") === FALSE) ? FALSE : TRUE;

Ce code permet de force le safe_mode à TRUE nécessaire pour l’envoi du mail via la fonction mail() de PHP.

L’autre astuce aura été d’utiliser la librairie Email.php du trunk de codeigniter car informaniak ne veut plus de ligne vide dans ces headers. Plus d’explication sur la FAQ de infomaniak => FAQ Informaniak

Symfony et Swift(version 4.0.5)

Le même problème d’envoi d’email vient de se présenter avec symony. La solution pour moi qui utilise Swift aura été de supprimer les options ‘-f%s’ de extraparams dans les fichiers :

  • lib/vendor/swift/classes/Swift/Transport/MailTransport.php
  • lib/vendor/swift/classes/Swift/MailTransport.php

Traduire un po en mo avec msgfmt

astuceson octobre 19th, 2010Commentaires fermés

De nombreux outils web utilisant php (framework, cms) dont wordpress utilise l’outil gettext pour traduire leur chaîne de texte.

Les traductions sont placées dans des fichiers compilés(mo) obtenues a partir de fichier texte (po) que l’on édite soit même. La commande pour compiler un fichier est :

msgfmt -o traduction_FR.mo traduction_FR.po

Je rappelle que nous sommes sous une distribution linux ubuntu et que les paquetages de gettext ont été installé.

Problème de Spooler sur Windows 7

astuceson octobre 1st, 2010Commentaires fermés

En fait la méthode la plus radicale et la plus efficace est de supprimer les fichiers directement dans le répertoire spooler des imprimantes :

  • Ouvrir une invite de commande en mode administrateur (tous les programmes / accéssoires / clic droit sur Invite de commande (executer en tant qu’administrateur)).
  • Descendre dans c:\windows\system32\spool\PRINTERS\. #> cd c:\WINDOWS\system32\spool\PRINTERS
  • On stop le spooler, si il marche : #> net stop spooler
  • On supprime les différents fichiers : #> del *.*
  • On démarre le spooler : #> net start spooler.

Faire une syncro rapide via FTP

astuceson août 31st, 2010Commentaires fermés

Il faut utiliser le logiciel LFTP qui est un logiciel FTP amélioré disponible sur les distribution linux. Voici les deux commandes que j’ai récupérer sur un forum et qui marche très bien :


La solution est effectivement dans LFTP (peux être une nouvelle version)
Voir http://doc.ubuntu-fr.org/lftp

Mise à jour de votre site Internet modifié localement (Upload recursif)

lftp ftp://identifiant:mot_de_passe@site_de_connexion -e "mirror -e -R -x dossier_ignoré -x dossier_ignoré /emplacement_local /emplacement_distant ; quit"

Sauvegarde sur votre ordinateur de votre site Internet (download recursif)

lftp ftp://identifiant:mot_de_passe@site_de_connexion -e "mirror -e -x dossier_ignoré -x dossier_ignoré /emplacement_distant /emplacement_local ; quit"

J'espère que ça servira aux nouveaux qui cherchent et qui tombe sur ce post (trop bien référencé) qui restait sans solution

Le top est de transférer du serveur de test directement au serveur de production. Et là les débits sont enooooooooooooooooormes.

Problème de droits de fichier avec Apache et Plesk

astuceson mai 26th, 2010Commentaires fermés

Tout simplement il suffit de mettre la variable safe_mode à off en cas de soucis d’écriture des caches, logs et autre, notamment avec le framework symfony qui utilise la version module et cgi de php pour créer ces fichiers de cache et ou un conflit de droit apparait.

Donc dans le VirtualHost :

php_admin_flag safe_mode off

J’ai perdu quelques heures, mais bon …