Empêcher le mise en cache d’une image

Si vous possédez un fichier image avec un nom fixe, mais dont le contenu change (image générée périodiquement par une application tierce), vous souhaitez certainement que les navigateurs ne mettent pas en cache cette image, pour ce faire, il suffit de rendre variable le nom de l’image en ajoutant une chaine ‘?xyz’ variable à la fin de l’url de l’image qui contiendra un horodatage. Vous serez obligé de créer dynamiquement le bout de code html équivalent à

<img src='http://www.monsite.com/image.png?201908231552' width='300' height='450' ></img>
<script language="javascript">
today = new Date();
document.write("<img src='http://www.monsite.com/image.png?",
today.getYear(),
today.getMonth(),
today.getDate(),
today.getHours(),
today.getMinutes(),
today.getSeconds(),"' width='300' height='450' ></img>");
</script>

Empêcher un insert MySQL par trigger

Notamment sous Magento, il est fréquent d’avoir des robots qui tentent des créer des comptes clients factices, les noms de domaines étant très différents de ceux utilisé en France, il est facile de bloquer par exemple la création d’un compte client sur le domaine qq.com avec un trigger MySQL de ce type :

CREATE TRIGGER `spam` BEFORE INSERT ON `customer_entity`
FOR EACH ROW IF (NEW.email like « %@qq.com »)
THEN
SIGNAL SQLSTATE ‘45000’ SET MESSAGE_TEXT = ‘Insert Rejeté’;
END IF

Ce trigger va alors bloquer l’insertion avant qu’elle ne soit réalisée en base.

Formule matricielle sous Excel ou Libreoffice

Il est possible de réaliser une moyenne pondérée d’une valeur B pondérée par A au moyen d’une formule matricielle. Pour cela il suffit de sommer la multiplication des deux colonnes A et B que l’on divisera par la somme de la colonne A. En fin de saisie la validation de la formule ne se fait pas par la touche ‘Entrée’ mais ‘Control’+’Entrée’, des accolades « { » et « } » entourent alors la formule. Un exemple ci dessous.

moyenne-pondérée-matricielle

11 plateformes web open-source pour la BI

11 suites open-source orientées BI à découvrir, elles proposent toutes une plateforme web, les solutions stand-alone ayant été écartées :

2 façons de calculer la marge après une remise de pied

Après une remise de pied, par exemple de 10%, on peut considérer que ces 10% viennent baisser la valeur du CA de chaque ligne de 10%, il s’agit alors d’appliquer la remise de pied au CA. Mais on peut aussi considérer que les 10% de remise viennent minorer la marge globale et ensuite impacter au pro-rata la marge de chaque ligne. Ainsi les lignes contribuant peu à la marge sont peu sollicitées par la remise de pied.

Dans le cas d’une ligne ayant une marge de 5% par exemple, lors d’une remise de pied de 10%, si l’on applique cette remise sur le CA, la ligne va alors avoir une contribution négative à la marge, alors que dans l’application de la remise calculée au pro-rata de la participation de la marge, cette ligne pourra conserver une contribution positive sur la marge de la commande.

Dans l’exemple ci joint, vous pouvez jouer sur la remise globale (cellule I1) pour voir l’évolution des 2 techniques de calcul de marge en pied de commande.

Remise-globale-appliquée-CA-vs-Marge

Outil collaboratif d’élaboration budgétaire

Toujours à la recherche d’un outil d’élaboration budgétaire : à découvrir la solution de la société Calamé-Software : Gathering Tools. Ces outils d’élaboration budgétaire ou de réalisations de fichiers excel de tarif, convertissent vos processus de collecte de données sous Excel en workflow sécurisés, prêts à être intégrés dans votre système d’information.

Expressions régulières

Guide sommaire des expressions régulières, indispensable pour l’utilisation des filtres de messagerie chez online, ou la recherche avec expressions régulières sur Open-Office et Libre-Office

Méta-caractères

Code Signification Exemple
\ Le caractère ‘escape’ de contrôle. \\  correspond au contre-slash, ‘\’.
\$ correspond au dollar, ‘$’.
| Le caractère de contrôle ‘ou’. Yo|Hello|Hola correspond à ‘Yo’, ‘Hello’ ou ‘Hola’.
( ) Pour grouper et mettre en mémoire.
Peut être rappelé avec \1, \2… \n ou $1, $2… $n .
Pour ne pas mettre en mémoire, ajouter ‘?:’ après la parenthèse ouvrante.
(Yo|Hello|Hola) Patrick correspond à ‘Yo Patrick, ‘Hello Patrick’ or ‘Hola Patrick’.
Si une chaine correspond $1 contient ‘Yo’, ‘Hello’ or ‘Hola’.
(?:Yo|Hello|Hola) Patrick correspond à la même chose mais sans stocker $1.
[ ] Pour définir une plage de caractères [abc] correspond à ‘a’, ‘b’ ou ‘c’.
[a-z] correspond à toutes les lettres minuscules de a à z.
{ } Pour préciser une répétition Yo{3} pour ‘Yooo’.
Yo{3,} pour ‘Yooo’ avec 3 ou plus de o
Yo{3,5} pour ‘yooo’, ‘yoooo’, ‘yooooo’
(?:Yo){3} correspond à’YoYoYo’.
. N’importe quel caractère sauf le retour à la ligne *
* Entre 0 et n fois le caractère ou groupe précédent.
pareil que {0,}
NOTE:Si * est suivi de ? permet de sortir de la correspondance.
Yo* pour ‘Y’, ‘Yo’, ‘Yoooooooo’ …
Y.* pour ‘Y’  suivi d’un caractère.
Y.*?Yo pour ‘Y’  suivi d’un caractère, mais s’arrête s’il trouve Yo
+ Entre 1 et n fois le caractère ou groupe précédent.
pareil que {1,}
NOTE:Si + est suivi de ? permet de sortir de la correspondance.
Yo+ pour ‘Yo’, ‘Yoooooooo’ …
Y.+ pour ‘Y’  suivi d’un caractère au moins.
Y.+?Yo pour ‘Y’  suivi d’un caractère au moins, mais s’arrête s’il trouve Yo.
? Pareil que {0,1}. Yo? pour ‘Y’ or ‘Yo’.
^ En début d’expression, doit commencer par…
Après un crochet ouvrant, correspond à la négation,
Sinon corrrespond à ‘^’
^Yoz correspond si la chaine commence par ‘Yoz’.
[^Yoz] correspond à ‘non Yoz’.
Yo^Yo correspond à Yo^Yo.
$ La chaine précédant le $ doit terminier l’expression (ou le saut de ligne).
Pareil que  \Z.
Yo$ Correspond si la chaine se finit par ‘Yo’.

Les Classes

 

Code Signification Equivalent
\d un chiffre [0-9]
\D n’est pas un chiffre [^0-9]
\w un caractère aplhanumérique [a-zA-Z_0-9]
\W n’est pas un caractère aplhanumérique [^a-zA-Z_0-9]
\s une espace  » «  [ \t\n\r\f]
\S n’est pas une espace  » «  [^ \t\n\r\f]

Les codes ancres

 

Code Signification Exemple
\b Valide la fin du mot Yo\b pour’Yo’ mais pas ‘Yo-yo’.
\B Tout sauf la fin du mot reg\B pour ‘reggie’ ou ‘regexp’ mais pas ‘reg’.
\A valide le début d’un mot abc\A pour ‘abcd’
\Z identique à $
(?=…) évalue la chaine avant si la chaine « … » est trouvée
(?!…) évalue la chaine avant si la chaine « … » n’est pas trouvée

Les balises de modifications

 

Code Signification
g Comparaison globale. Cherche toutes les occurences et non pas seulement la première
i Analyse non sensible à la casse majuscule – minuscule
m Analyse sur plusieurs lignes
o Compile en une seule passe
s Assimiler la chaine à une ligne
x Utilise les expressions régulières étendues
e Evalue la partie droite comme une expression