Techno-magis

Mars 2014

Pour générer ou tester un EAN13 en PHP

Mercredi 26 Mars 2014

Pour compléter l'article d'hier, quelques méthodes simples pour l'EAN13 (accessoirement ça marche aussi pour l'ISBN13 qui est une plage de l'EAN13).

Télécharger la classe : EAN13 (1.0)

Exemple, avec ce code :

CODE :

$ean13 = EAN13::generator(40, 49);
echo $ean13; // affiche : 0418408982338
 
echo EAN13::format($ean13);  // affiche : 041-8-4089-8233-8
Commenter le billet...
Catégories :
Par Zéfling, le 26/03/2014 à 16:16:22
Le billet a été lue 315 fois, avec 0 commentaire publié.

Générer en PHP l'image d'une code barre pour un EAN13

Mardi 25 Mars 2014

J'avais besoin d'afficher un EAN13, j'ai trouvé une petite classe qui fait cela, mais comme d'habitude, je tombe sur un code qui date de PHP 4 et la programmation-objet qui en dépend, donc plus à jour. Après une revue de code pour le passage en PHP 5, je redistribue la mise à jour. Normalement, le comportent est identique à l'original, car je n'ai rien modifié sur son fonctionnement interne. Par contre, ça doit être plus facile à intégrer. J'aurais pu ajouter une validation de l'EAN13 (je l'ai fait ailleurs, pour un prochain article ?) Mais je considère que ce n'était pas le rôle de la classe en question.

Télécharger la classe : Debora (1.1)

Exemple, avec ce code :

CODE :

$ean = new Debora('0123456789012', 2);
$ean->makeImage();

Cela donne :

Commenter le billet...
Catégories :
Par Zéfling, le 25/03/2014 à 21:38:14
Le billet a été lue 2661 fois, avec 3 commentaires publiés.

Suppression de l'orientation EXIF d'une liste d'images avec un script

Dimanche 23 Mars 2014

À l'origine, j'avais récupéré une solution pour tourner les images de mon numérique. Tous les logiciels ne supportent pas la rotation EXIF, du coup je préfère dans certains cas tourner l'image et supprimer la rotation EXIF. La solution que j'avais trouvée fonctionnait de façon quelque peu erratique avec des cas où la rotation n'était pas faite pour une raison que je n'ai jamais comprise. J'ai pas mal souffert du script foireux pendant mon voyage au Japon (et j'ai jamais vraiment eu le temps de m'y pencher durant mon expédition).

Après un peu de lecture de doc, de recherches sur internet, j'ai corrigé les problèmes et j'ai au passage fait une présentation un peu plus sympa pour montrer l'avancement de la conversion.

Pour faire simple, le script met les extensions en minuscules, crée un dossier « rotate » et copie les fichiers dedans. Ensuite, il parcourt un par un les fichiers pour effectuer une rotation (si nécessaire).

Lire le billet en entier...
Catégories :
Par Zéfling, le 23/03/2014 à 00:45:24
Le billet a été lue 507 fois, avec 1 commentaire publié.

Ajouter des images et fichiers sur un article dans PrestaShop

Mercredi 19 Mars 2014

Travaillant avec des webservices, je n'ai pas physiquement mes fichiers à intégrer dans PrestaShop. Il m'a donc fallu trouver des solutions pour pouvoir intégrer des documents venant de l'extérieur. Après quelques recherches, je suis arrivé à trouver comment ajouteras des images (pour le visuel) et des fichiers joints.

Lire le billet en entier...
Catégories :
Par Zéfling, le 19/03/2014 à 20:28:41
Le billet a été lue 898 fois, avec 1 commentaire publié.

Conversion de vidéos vers WebM en masse

Dimanche 16 Mars 2014

Ayant un peu marre de faire de la conversion vidéo à la main, maintenant que je suis sous Linux, j'ai cherché un moyen de scripter une conversion de vidéos manuellement. J'ai testé un peu avant quelques solutions... mais jamais avec les résultats attendus. Soit la conversion WebM n'est pas possible, soit c'est extrêmement lent (non multi-threadé), soit il faut les faire une par une, soit il ne faut pas de caractères spéciaux. Bref, j'en suis venu à chercher à faire un script qui me sort de ses contraintes... et sur le Net ce n'est pas forcement simple de trouver ce que l'on veut. Beaucoup utilisent encore aujourd'hui « ffmepg » qui est aujourd'hui obsolète pour la conversion vidéo, ou encore la boucle ne fonctionne pas... En mélangeant ici et là quelques scripts Bash, je suis arrivé à faire mon petit fichier :

CODE :

#!/bin/bash
VIDEOS=.
find "$VIDEOS" -name '*.mp4' -exec sh -c 'avconv -i "$0" -threads 4 -b:v 2M  "${0%%.mp4}.webm"' {} \;
exit;

Celui-ci ne fait que de la conversion MP4 vers WebM. Comme j'ai quatre processeurs j'ai mis 4 threads et une compression vidéo à 2 Mb, en dessous je trouve que le rendu assez mauvais et c'est à peu près ce qu'utilise YouTube.

Je pense que je fais peut-être essayer d'appendre un peu plus le Bash pour faire quelque chose d'un peu plus évolué qui ne se limite pas à un format.

Commenter le billet...
Catégories :
Par Zéfling, le 16/03/2014 à 21:48:42
Le billet a été lue 254 fois, avec 0 commentaire publié.

Variables de classe indexées

Vendredi 14 Mars 2014

À la base, j'avais besoin d'une information que je puisse appeler soit par le nom de variable soit par une position dans un index. Pour faire simple, l'information était dupliquée deux fois... Le problème, c'est qu'en cas de modification, c'est assez chiant à corriger.

J'ai fini par simplifier ma tâche en réduisant le tout à un seul tableau indexé avec une table de correspondance. Avec l'aide des méthodes magiques __get() et __set, il est possible de faire ça assez simplement. Pour que ça soit utilisable facilement ailleurs, je suis partis sur des appels static et non self lors de l'appel à liste de correspondance. Le seul inconvénient est que ça augmente le traitement dû à la recherche de la correspondance.

Lire le billet en entier...
Catégories :
Par Zéfling, le 14/03/2014 à 09:37:45
Le billet a été lue 251 fois, avec 0 commentaire publié.

Mes astuces pour PrestaShop 1.5

Mercredi 12 Mars 2014

Étant en ce moment sur PrestaShop depuis un peu plus d'une semaine, j'ai rencontré quelques difficultés lors de l'écriture de code pour modifier un module. J'ai fini par surmonter mes problèmes avec un peu d'aide trouver ici et là sur le Net (aide en ligne, blogs, forums) et avec la lecture du code même. Ce n'est jamais très compliqué une fois qu'on a compris.

Je mets ici quelques points qui m'ont semblé utiles. C'est peut-être aussi le premier d'une suite d'article, vu que j'ai eu à toucher à pas mal de choses en peu de temps : ajouter d'information dans la base, surcharge de classe, écriture de templète, injection dans une complète, etc.

Lire le billet en entier...
Catégories :
Par Zéfling, le 12/03/2014 à 21:50:05
Le billet a été lue 855 fois, avec 2 commentaires publiés.

Passage de MySQL à MariaDB... imprévu.

Jeudi 6 Mars 2014

Je n'avais pas prévu de le faire à cause d'une non-compatibilité avec Zabbix lors de mise à jour... Mais il y a des jours où ça ne se passe pas comme prévu. Lors de la mise à jour du serveur toute bête comme j'en fais souvent et sans encombre, cette fois le paquet mysql-server5.5 est impossible à mettre à jour. Il plante avec une erreur « 1 » lors que de la configuration. Je réessaie plein de trucs trouvés çà et là sur le net, à passer mon temps à virer des fichiers de verrouillage, tuer des processus et tenter d'autres façons de l'installer. Au bout de 2 heures, parce que j'en ai franchement ras le cul et que surtout que tous mes sites sont hors service, voyant que ça bloque toujours sur ce « putain » de fichier de configuration, j'ai eu une idée : « MariaDB est normalement compatible avec MySQL, là je n'ai plus rien à perdre à essayer ». Résultat, cette ligne me sauve :

CODE :

sudo aptitude install mariadb-client mariabd-server

Je redonne le même mot de passe root et ça fonctionne à l'identique au bout de quelques secondes. Maria, tu me sauves ma nuit. Merci.


Commenter le billet...
Catégories :
Par Zéfling, le 06/03/2014 à 01:11:09
Le billet a été lue 932 fois, avec 2 commentaires publiés.

Javascript, le numéro de semaine et numéro du jour de l'année

Samedi 1er Mars 2014

Pour un petit projet en JavaScript, j'ai eu besoin du numéro de semaine. Par flemme, je suis allé sur Stack Overflow dans l'espoir d'avoir une réponse. Il y en a, en nombre avec des solutions plus ou moins complexe... complexe, mais visiblement pas testé. Je me suis donc mis à écrire ma propre solution... où j'ai eu besoin du numéro de jour dans l'année. Et j'ai eu le même problème, des solutions non testées.

Lire le billet en entier...
Catégories :
Par Zéfling, le 01/03/2014 à 04:26:28
Le billet a été lue 3903 fois, avec 6 commentaires publiés.