Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : Blog

Tableaux en bash

Thomas Bouffon

Dans bash>=4, il est possible de déclarer des tableaux associatifs, ce qui peut être très pratique dans les boucles

Git via http : régler REMOTE_USER sans conflits

Thomas Bouffon

Quand on veut accéder à un dépôt git via http, on est souvent confronté à l'erreur suivante :

$ git push origin mabranche
error: Cannot access URL http://serveur/git/depot/, return code 22
fatal: git-http-push failed

La solution la plus généralement recommandée est d'insérer

SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

Dans le fichier de conf apache.

Cependant, comme cette directive est au niveau global, on se retrouve à copier cette variable dans tous les cas, mêle quand on n'utilsie pas git, ce qui peut avoir un impact pour les autres applis web qui utilisent l'authentification. La solution est de mettre une codition sur l'URL :

SetEnvIf Request_URI "^/git/" REMOTE_USER=$REDIRECT_REMOTE_USER

 

Quand libtool fait échouer la création d'un rpm...

Thomas Bouffon

Normalement, les autotools on plutôt tendance à faciliter la création d'un spec file et d'un rpm... Normalement.

Mais si parmi les dépendances du programme packagé, il y a une bibliothèque générée avec libtool, et que l'archive libtool suffixée en .la est installée, alors libtool écrira en dur le chemin de la bibliothèque dans le binaire. Et là, c'est le drame :

ERROR   000X: file '/usr/bin/xxxx' contains an invalid rpath '/usr/local/lib' in [/usr/local/lib]

Un peu de lecture sur le sujet propose, entr'autres comme solution d'insérer la ligne

chrpath --delete $RPM_BUILD_ROOT%{_bindir}

Après la ligne make install

 

Monkey Boy : 20 Large Blurred Backgrounds

Thomas Bouffon

ETickets4Hikashop V1.1 : Gestion des variantes !

Thomas Bouffon

La version 1.1 d'ETickets4hikashop gère maintenant les variantes : en créant des variantes de votre concert, vous pourrez proposer des tarifs spécifiques, des places, ou plusieurs dates pour un même évènement.

Vous n'aurez besoin de remplir que le cadre de l'article principal, et toutes les variantes seront automatiquement des billets electroniques.

Elle est disponible à la page téléchargements.

ETickets4Hikashop V1.1 : Gestion des variantes !

Thomas Bouffon

La version 1.1 d'ETickets4hikashop gère maintenant les variantes : en créant des variantes de votre concert, vous pourrez proposer des tarifs spécifiques, des places, ou plusieurs dates pour un même évènement.

Vous n'aurez besoin de remplir que le cadre de l'article principal, et toutes les variantes seront automatiquement des billets electroniques.

Elle est disponible à la page téléchargements.

OpenLayers : créer une couche à partir d'une feature

Thomas Bouffon

J'ai eu récemment à créer une carte qui affiche dynamiquement les résultats d'une recherche sur une carte. L'idée générale était d'avoir une liste de features, et d'afficher celles qui correspondaient à une recherche.

Ma première solution a été de créer la couche avec toutes les features à partir d'un fichier JSON ou KML, puis de masquer celles qui ne correspondent pas. Mais avec 1500 éléments, c'est très long sous IE.

Deuxième solution : supprimer l'attribut "source" de la couche (toujours de type kml ou json) à sa création, on arrive à créer une couche vide dans laquelle on peut rajouter des features.... Sauf si IE, encore une fois !

La solution qui fonctionne sous IE est de créer une couche de type vector, vide, puis d'y ajouter la feature :

var json;
$.getJSON( "fichier.json", function( data ) {
json=data;
}
);

feature=parser.parseFeature(json[0]);
feature.geometry=feature.geometry.transform("EPSG:4326",map.projection);
resultats=new OpenLayers.Layer.Vector("resultats",{
displayInLayerSwitcher:false, style:result_style
});
resultats.addFeatures([feature]);
map.addLayer(resultats);

Attention, il faut reprojeter la feature dans le système de coordonnées de la carte, qui OpenLayers.Layer.Vector ne supporte pas l'attribut projection !

Ghostscript : Réduire la taille d'un pdf

Thomas Bouffon

Certains pdf issus de scans sont très volumineux comparé au nombre de pages qu'ils contiennent : c'est dû à une résolution trop importante. Le paramètre PDFSETTINGS permet d'utiliser des préréglages en fonction de la destination vers laquelle il doit être affiché. Elle peut prendre les valeurs suivantes :

  • screen : 72dpi
  • ebook : 150dpi
  • printer : 300dpi
  • prepress : 300dpi

Le réglage ebook semble le meilleur compromis :

 gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=sortie.pdf entree.pdf

OpenLayers, couches wmts et niveaux de zoom

Thomas Bouffon

Dans Openlayers, le niveau de zoom min ou max ne dépend pas de la carte, mais de chaque couche : ainsi, si on ne veut fournir que certaines résolutions pour une couche wmts, il faut utiliser les paramètres resolutions et serverResolutions à la création des couches, sans modifier les paramètres de la carte :

resolutions:[5000,2500,1500,1000,750],
serverResolutions: [null,null ,null, null, null, null, 2445.9849047851562, 1222.9924523925781, 611.4962261962891, 305.74811309814453, 152.87405654907226, 76.43702827453613, 38.218514137268066, 19.109257068634033, 9.554628534317017, 4.777314267158508],

Ainsi, on indique que :

  • Quand la couche avec laquelle on a défini ces paramètres est la couche de base, alors les niveaux de zoom disponibles pour la carte correspondent au tableau resolutions de la couche : zoom 0 -> résolution 5000, zoom 4 -> résolution 750.
  • Le serveur wmts fournit les résolutions 2445 à 4.77. Ainsi, en fonction de la résolution demandée pour la carte (dans le tableau resolutions), OpenLayers demandera la couche dont la résolution est la plus proche de la résolution carte. Par exemple, pour la résolution carte 5000, on va requêter la résolution 2455. Les éléments null viennent du fait que serverResolutions est utilisé pour faire la correspondande tilematrix/résolution : si je veux la résolution 1222, je vais requêter la TM 7. Or pour cette couche du WMTS, les tilematrixes 1 à 5 ne sont pas disponibles.

Au revoir free.fr

Thomas Bouffon
MacBook:~ thomas$ time nslookup mail.yahoo.com 
Server: 212.27.40.241
Address: 212.27.40.241#53

Non-authoritative answer:
mail.yahoo.com canonical name = login.yahoo.com.
login.yahoo.com canonical name = login-global.lgg1.b.yahoo.com.
login-global.lgg1.b.yahoo.com canonical name = eulogin.lga1.b.yahoo.com.
eulogin.lga1.b.yahoo.com canonical name = eu-eulogin.lga1.b.yahoo.com.
Name: eu-eulogin.lga1.b.yahoo.com
Address: 188.125.82.242
Name: eu-eulogin.lga1.b.yahoo.com
Address: 217.146.187.123


real 0m2.350s
user 0m0.005s
sys 0m0.005s

Plus de 2 socondes ? Ce n'est plus un DNS, c'est un annuaire papier !?
Pour comparaison :

MacBook:~ thomas$ time nslookup mail.yahoo.com  8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
mail.yahoo.com canonical name = login.yahoo.com.
login.yahoo.com canonical name = login-global.lgg1.b.yahoo.com.
login-global.lgg1.b.yahoo.com canonical name = login.lga1.b.yahoo.com.
Name: login.lga1.b.yahoo.com
Address: 98.139.237.162


real 0m0.048s
user 0m0.005s
sys 0m0.005s

La copie cachée, c'est mal ! Mais pas forcément pour ce qu'on croit

Thomas Bouffon
J'ai souvent entendu que la copie cachée n'était pas une bonne pratique, mais souvent pour des raisons qui ne m'ont pas convaincu.

Pour rappel, la copie cachée (en anglais BCC ou blind carbon copy) permet de mettre en copie des destinataires supplémentaires qui seront invisibles des destinataires originaux.
 
Ce que j'ai entendu le plus souvent me paraissaint loin de la logique : si le destinataire original d'un message avec destinataires supplémentaires en BCC répondait, il répondrait, sans le savoir, à tous les destinataires, incluant les destinataires cachés. Ce qui semble surprenant, car pour que les destinataires soient cachés, il ne peuvent pas apparaître dans les entêtes du mail reçu, et ainsi le client mail du destinataire n'a aucun moyen de mettre en copie les destinataires cachés.
 
J'ai donc entrepris quelques recherches sur le web pour démonter cet argument... Pour me rendre compte qu'il était valable !
Effectivement, certains serveurs ou clients de mails peuvent être mal fichus et ne pas enlever le champ BCC, exposant la liste des destinataires (voir la RFC-2821 ou ce papier sur stanford.edu). Le problème, c'est que ceci est valable pour l'utilisation "liste de diffusion" du BCC (uniquement des destinataires cachés, ce qui fait apparaître "undisclosed recipients") largement répandue. Heureusement, cela concerne des systèmes anciens.
 
Cependant, le risque principal est surtout pour une personne en BCC : si jamais elle clique malencontreusement sur "répondre à tous", le destinataire original découvrira qu'il y avait des personnes en BCC.
Ces 2 points indiquent que c'est surtout les destinataires en copie cachée qui peuvent pâtir de son utilisation.

Enfin, l'émetteur d'un email avec des destinataires en BCC apparaîtra aux yeux des destinataires cachés comme "le genre de personne qui écrit des mails avec copie cachée"
 
En revanche, sur le fond, utiliser la copie cachée ne diffère en rien du transfert d'un mail envoyé sans en avertir le destinataire orginal, pratique largement répandue.

En résumé,

  • il ne faut pas utiliser la copie cachée car c'est dangereux pour les personnes en copie cachée
  • il ne faut ni utiliser la copie cachée, ni transférer de mails sans en avertir les correspondants originaux parce que c'est mal. Mais ça n'a pas de rapport technique avec la copie cachée.
 

En Iran, Red Hat et Pizza Hut fusionnent :)

Thomas Bouffon

Vu dans un article sur buzzfeed sur les copies de franchises en iran :

Trop fort !

ETickets4Hikashop-1.0.5 : Correction de bug PayPal, régime sec et fin des debugs sauvages

Thomas Bouffon

Après que ETickets4Hikashop ait cessé de fonctionner avec PayPal, j'ai pas mal cherché et ai finalement corrigé le bug.

Voici donc ETickets4Hikashop-1.0.5, qui :

  • corrige le bug PayPal
  • ne pèse plus que 1.7 Mo contre 12 auparavant (au prix de la suppression de toutes le polices TCPDF sauf Helvetica et Courier
  • ne logge plus rien par défaut, et si on modifie $this->debug dans etickets.php, écrit proprement dans logs/plg_hikashop_etickets.errors.php

Au passage, j'ai remis sur pied et à jour le site de démo, sur lequel vous pouvez commander des billets gratuits pour voir le coté client, et même un billet  2 euros pour essayer le paiement PayPal. Mais attention, si vous allez au bout, vous m'offres une bière ;)

.bash_profile, .bashrc

Thomas Bouffon

Petit mémo pour se rappeler quel est le rôle de chaque fichier, et quand il est lu.

Apéritif Fedora à Toulouse !

Thomas Bouffon

J'ai participé à quelques apéros Joomla à la cantine du libre à Toulouse, et j'ai trouvé l'idée intéressante.

Si des utilisateurs/amateurs/gourous de fedora se trouvent dans Toulouse et ses environs et sont intéressés pour se rencontrer, discuter des nouvelles fonctionnalités, du site fedora-fr et de l'association, peut-être à fréquence mensuelle, j'ai créé un fil sur le forum et un sondage Doodle.

Le premier apéro se fera certainement dans un café. Mais si vous avez des suggestions, n'hésitez pas !

Apc, mtime, et déploiements par RPM

Thomas Bouffon

Une petite fourberie d'un serveur web RHEL6 sur lequel je déploie des sources php via yum/RPM : le fichier inclus par des appels à include_once ou require_once n'était pas celui demandé, mais un autre. Le responsable ? APC.

Alternative PHP Cache garde en mémoire une version compilée des sources php, ce qui accélère nettement les inclusions suivantes, jusqu'à 6 fois plus vite. Mais dans sa configuration par défaut, il vérifie que le fichier n'a pas été modifié en comparant son mtime et le dernier appel.

Or rpm (comme Rsync, svn ou tar) conserve les dates originales des fichiers. Ainsi, on peut avoir un fichier version n-1, dont le dernier accès date d'un instant t, qui sera remplacé par un fichier dont le mtime est antérieur à t et qui sera ignoré par APC. Pire, si APC veut lire à nouveau le fichier, sans savoir qu'il a été remplacé, il va y accéder par son inode. C'est là qu'on se retrouve avec un autre fichier.

Pour se prémunir de celà, il faut forcer APC à utiliser ctime au lieu de mtime, en modifiant le fichier /etc/php.d/apc.ini :

; Vertification with ctime will avoid problems caused by programs such as svn or rsync by making
; sure inodes have not changed since the last stat. APC will normally only check mtime.
apc.stat_ctime=1

Puis relancer httpd (systemctl restart httpd.service ou service httpd restart

Sondage pour l'association Typolino

Thomas Bouffon

Mon amie Kata Pula participe en ce moment à la création à Toulouse d'une association sur la typographie et l'imprimerie.

Dans le cadre de ce lancement, elle a créé un sondage (avec limesurvey, qui s'avère être un outil intéressant) : http://www.typolino.org/limesurvey/index.php/714291/lang-fr

N'hésitez pas à y participer, même si vous n'êtes pas toulousains !

Awk : pense-bête

Thomas Bouffon

Quelques astuces pour awk

Découper une chaine

substr(chaine,debut,longueur) (attentention la numérotation commence à 1)

Afficher toute la ligne

print $0

Variables internes

  • FS,OFS Séparateurs de champs
  • NR Numéro de la ligne
  • NF numéro de la colonne

Plus d'infos sur http://www.thegeekstuff.com/2010/01/8-powerful-awk-built-in-variables-fs-ofs-rs-ors-nr-nf-filename-fnr/

Agrandir un disque virtuel vdi pour VirtualBox

Thomas Bouffon

On n'arrête pas le progrès !

VirtualBox propose des images vdi à taille dynamique n'utilisant que la taille utilisée à l'intérieur du système de fichiers. Mais il faut toujours spécifier une taille à la création, au moins pour ne pas saturer le système de fichiers.

On peut alors avoir besoin d'agrandir a posteriori le disque créé

Agrandir un disque virtuel vdi pour VirtualBox

Thomas Bouffon

On n'arrête pas le progrès !

VirtualBox propose des images vdi à taille dynamique n'utilisant que la taille utilisée à l'intérieur du système de fichiers. Mais il faut toujours spécifier une taille à la création, au moins pour ne pas saturer le système de fichiers.

On peut alors avoir besoin d'agrandir a posteriori le disque créé