Bienvenue !

Je suis Thomas Bouffon, développeur web (entre autres ;) ) basé entre Tarbes et Lourdes dans les Hautes-Pyrénées (65).

Vous pouvez consulter mon blog. ou jeter un oeil à mon extension de billeterie pour Hikashop et Joomla.

Pour plus d'informations, des conseils, un dépannage informatique, récupérer des données perdues, ou un site web ou e-commerce, n'hésitez pas à me contacter !

Déroulez la page pour en savoir plus.

Services

Développement

Besoin de créer un site, de le mettre à jour ou d'y ajouter des fonctionnalités ?

Récupération de données

Si vous n'arrivez plus à accéder aux données sur votre disque dur, votre clé usb ou votre carte mémoire, il est souvent possible de régler le problème sans perdre vos données.

Dépannage informatique

Ordinateur lent, infecté par un virus ?

Extensions pour Joomla!

ETickets4Hikashop

Extension de billetterie pour Joomla et Hikashop

Protostar Carousel

Un module de diaporama basé sur bootstrap pour le thème protostar et ses dérivés.

Blog

Limiter l'utilisation mémoire du client psql

Par défaut, le client psql collecte tous les résultats d'une requête avant de fournir le résultat, pour pouvoir formater la sortie (par exemple pour calculer la largeur optimale des colonnes)

Dans le cas des requêtes très importantes, cela engendre une utilisation mémoire qui peut faire échouer la requête (le processus est tué). En ordre de grandeur, la mémoire utilisée est environ 10 fois supérieure à la taille du fichier créé.

La parade consiste à utiliser la variable FETCH_COUNT à l'appel de psql. Extrait de la documentation officielle PostgreSQL :

    If this variable is set to an integer value > 0, the results of SELECT queries are fetched and displayed in groups of that many rows, rather than the default behavior of collecting the entire result set before display. Therefore only a limited amount of memory is used, regardless of the size of the result set. Settings of 100 to 1000 are commonly used when enabling this feature. Keep in mind that when using this feature, a query might fail after having already displayed some rows.

Ainsi, l'appel de psql avec les options suivantes permet de limiter l'utilisation mémoire, quelle que soit la taille de l'échantillon requêté :

psql -h serveur.domaine -d baseDeDonnees -U user -t -A -F";" --variable="FETCH_COUNT=10000" -F script.sql 

Supprimer des associations de type de fichier incorrectes dans firefox

J'avais le problème suivant : Quand le type mime d'un pdf en ligne était mal servi, firefox me proposait d'ouvrir le fichier avec file-roller. Idem si je le téléchargeais puis que j'essayais de l'ouvrir depuis la fenêtre de téléchargements. Aucun problème en revanche depuis Nautilus

Le problème vient en fait du fichier .local/share/applications/mimeapps.list, qui associait content-type:octet-stream à file-roller. Une fois supprimée cette ligne, même sans redémarrer Firefox, le problème est résolu

ImageMagick : découper des tuiles avec convert

Pour découper une grande image en tuiles et calculer automatiquement le nom :

convert Grand.png -crop 667x667  -set filename:tile tuiles-%[fx:page.x/667].%[fx:page.y/667].png %[filename:tile]

Ici, Grand.png a une dimension de 1334x2001, donc on crée une matrice 3x2 :

1-0.0.png
1-1.0.png
1-0.1.png
1-1.1.png
1-0.2.png
1-1.2.png

find : exécuter des commandes complexes avec l'option -exec

find est très utile pour trouver des fichiers, mais aussi pour y appliquer des actions groupées avec l'option-exec

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

Ajouter un Commentaire


Code de sécurité
Rafraîchir