VirtualBox – Gestion de l’usb

 Trucs et astuces techniques  Commentaires fermés sur VirtualBox – Gestion de l’usb
Déc 052010
 

Pour que la gestion de l’usb fonctionne correctement il faut disposer de la version « fermée » de VirtualBox
Il est nécessaire de rebooter (enfin non mais c plus simple) après l’installation du paquet VirtualBox pour que UDEV prenne en compte les modification de règles d’accès des peripheriques usb (accès rw au groupe vboxusers)

Il faut évidemment aussi que l’utilisateur des VM appartienne à ce groupe.

# adduser $username vboxusers

directives Allow, Deny pour Apache

 Trucs et astuces techniques  Commentaires fermés sur directives Allow, Deny pour Apache
Juin 242010
 

Attention la directive Order est contre-intuitive :

  • Order Allow,Deny
    1. all Allow directives are evaluated ; at least one MUST match, or the request is rejected.
    2. all Deny directives are evaluated. If any matches, the request is rejected.
    3. any requests which do not match an Allow or a Deny directive are denied by default.

    Ce qui signifie que

    1. Si ca match un Deny, quelque soit les autres directives alors reject.
    2. Si match Allow (mais aucun deny explicite alors accept.
    3. Si match rien alors reject.
  • Order Deny,Allow
    1. all Deny directives are evaluated; if any match, the request is MARKED TO BE denied.
    2. if it also matches an Allow directive, the request is permitted.
    3. Any requests which do not match any Allow or Deny directives are permitted.

    Ce qui signifie que

    1. Si ca match un Allow alors accepte et on en reste là.
    2. Si match Deny (mais pas un allow précédent) alors reject.
    3. Si match rien alors accept.

Apache mod_proxy sous debian

 Trucs et astuces techniques  Commentaires fermés sur Apache mod_proxy sous debian
Juin 202010
 

La configuration par défaut du mod_proxy de Apache sous Debian implique les réglages suivants

<IfModule mod_proxy.c>
#turning ProxyRequests on and allowing proxying from all may allow
#spammers to use your proxy to send email.

ProxyRequests Off          <<<<<<<< Très bien 	:smile: 
<Proxy *>
   AddDefaultCharset off
   Order deny,allow
   Deny from all               <<<<<<< RAAAAHHHHHH ! 	:mad: 
   #Allow from .example.com
</Proxy>

# Enable/disable the handling of HTTP/1.1 "Via:" headers.
# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
# Set to one of: Off | On | Full | Block

ProxyVia On
</IfModule>

Ce genre de sécurités à la con me sortent par les yeux parce qu’elles impliques que si vous activez (à priori volontairement) une option, cette option sera par defaut inutilisable. Et vous chercherez vainement ce que vous avez bien pu faire de travers alors que ce n’est pas de votre faute.

Changer le reglage par defaut de debian est une mauvaise piste. => gare à la prochaine mise à jour.

un vhost qui veut faire du proxy doit donc au moins avoir pour directives :

<VirtualHost :80>
  ServerName fqdn.server.com
  proxyPass localpath  http://targeturl/
  proxyVia off
  <proxy >
    Order Deny,Allow
    Deny from all
    Allow from all
  </proxy></strong>
</VirtualHost>

Diagnostique Facteur de puissance

 Trucs et astuces techniques  Commentaires fermés sur Diagnostique Facteur de puissance
Mai 102010
 

Le compteur EDF est un outil extrêmement fiable pour détecter un mauvais facteur de puissance car il mesure simultanément la puissance active et la puissance apparente.

Vous devez controler l’écart entre la puissance active (Mesure en Watts de la page4) avec la puissance apparente (Mesure en VA de la page 4) et calculer le ratio.
Vous trouvez un nombre entre 0 et 1. C’est le fameux facteur de puissance. (on peut aussi l’exprimer en pourcentage vue que c’est une sorte de rendement entre la puissance que vous utilisez et la puissance facturée). Dans le cas d’un régime sinusoidal, ce qui est rarement le cas dans le domaine résidentiel, Le facteur de puissance correspond au cos(phi) où phi est le déphasage entre U et I

Si vous trouvez un facteur de puissance inférieur à 0.8, c’est que d’une part vous ne consommez pas « normalement » et d’autre part qu’il est certainement possible d’améliorer les choses.

Il va alors falloir vous munir d’un oscilloscope et réaliser un petit montage pour mesurer I et U sur votre installation électrique.

Attention normalement la masse d’un oscilloscope est reliée à la terre via le cordon d’alimentation. Pour cette manipe, vous devrez impérativement avoir un ossilo avec masse isolée. Vous NE DEVEZ PAS relier le neutre à la terre.
Prenez garde à ne pas toucher la carcasse de l’oscilloscope si elle est conductrice pendant la manipulation car même si cela n’est normalement pas le cas, des tensions dangereuses peuvent exister sur le fil neutre.
(Ne tentez pas cette manipulation si vous n’êtes pas habitués à ce type de risques électriques. vous êtes prévenus).

Si la manipe est effectuée correctement, Vous visualisez en Y1 L’intensité du circuit et en Y2, la tension secteur.
Remarque : Configurez le trigger avec le filtre basse fréquence « LF » et sur l’entrée Y2 pour une image stable.

Lorsque de nombreux ordinateurs sont connectés au circuit (charge essentiellement capacitive) on observe le diagramme suivant

On observe que l’intensité est nettement en avance sur la tension (preuve d’une charge essentiellement capacitive) mais également qu’il y a beaucoup de distorsion.
Cela donne un très mauvais facteur de puissance. (environ 60% d’après le compteur EDF)

Si au contraire on alimente des lampes fluorescentes (avec un ballast passif à bobine) qui sont des charges essentiellement inductives, on observe le diagramme suivant

On observe au contraire que l’intensité est en retard sur la tension. preuve d’une charge essentiellement inductive.
La facteur de puissance est mauvais (mais moins mauvais que pour les ordis) (environ 70% d’après le compteur EDF).

Si maintenant on alimente les deux simultanément.on observe le diagramme suivant

Là, les deux courbes sont pratiquement en phase. Il y a certes pas mal de distorsion, mais au moins le pic d’intensité est à peu près centré.
Le facteur de puissance est meilleur (environ 80% d’après le compteur EDF) mais il pourrait encore être amélioré.

Facteur de Puissance et autres barbarismes electriques

 Trucs et astuces techniques  Commentaires fermés sur Facteur de Puissance et autres barbarismes electriques
Mai 072010
 

Le cosinus Phi s’appelle aussi Facteur de Puissance.

En Courant Alternatif la puissance mesurée avec un wattmètre s’appelle la Puissance Active, elle s’exprime en Watts,
C’est l’intégrale sur une période du produit de la tension et de l’intensité.
Plus pratiquement, c’est tout simplement la puissance qui est réellement absorbée par un appareil électrique et qu’il restitue sous forme de chaleur ou de travail.

Sur le même circuit on peut calculer Puissance Apparente, c’est à dire la puissance qui semble circuler dans le circuit. elle s’exprime en Volts Ampères et elle est le produit des tensions efficaces et intensités efficaces (C’est à dire le produit des intégrales de la tension et de l’intensité sur une période)
Le rapport de la Puissance Active sur la Puissance Apparente donne le fameux « Cosinus Phi ».
En courant continu ce rapport est toujours égal à 1 et on parle simplement de Puissance, elle s’exprime en Watts.
En Courant Alternatif, le Facteur de Puissance sera égal à 1 seulement dans le cas où le circuit est purement résistif ou si il est parfairement compensé. C’est à dire une résistante parfaite sans effets inductifs ou capacitifs (ou plus scientifiquement « une impédence de composante complexe nulle). Par exemple : une lampe à incandescence. )

Dans les cas ou le circuit comprend des moteurs, des appareils d’éclairage à tube fluorescent, d’une manière générale des bobinages, l’effet magnétisant des bobines modifie la valeur de résistance du circuit qui ne s’appelle plus Résistance mais Impédance (En fait une résistance est un cas d’impédence simple dont la composante réactive est nulle.) On dit dans ce cas qu’il s’agit d’un circuit inductif. cela se traduit par un retard de la sinusoïde intensité sur la sinusoïde tension. Ce retard s’appelle un déphasage. Cet écart de phase, c’est le fameux angle phi dont le cosinus est égal au rapport entre puissance apparente et puissance active.

De même qu’avec des bobines, si le circuit comprend des condensateurs ou des dispositifs ayant des effets semblables on obtient une impédance. Dans ce cas le circuit n’est pas inductif mais capacitif et à l’opposé du circuit inductif, la sinusoïde d’instensité est en avance sur la sinusoïde de tension. L’angle phi change de signe mais le cosinus Phi reste compris entre 0 et 1.

Plutot que de parler du déhpasage, qui serait l’information la plus complète, on parle toujours du cosinus phi parce qu’il correspond à un pourcentage de rendement. par contre, on ne peut savoir à l’aide du seul cosinus phi si il s’agit d’un charge capacitive ou inductive. Généralement c’est assez facile, il suffit de voir si il y a des bobines.

En supplément de la puissance active, lorsque le Cosinus Phi est inférieur à 1, on untilise de la Puissance Réactive due pour les cas les plus courants à la présence de moteurs. On installe alors des condensateurs de compensation permettant d’approcher l’­objectif de superposition des sinusoïdes tension et intensité traduisant un cosinus Phi égal à 1.

A titre indicatif la plupart des appareils d’éclairage fluorescents sont de fabrication « compensé » c’est à dire munis d’un condensateur de compensation. Ils sont même parfois surcompensés ce qui présente les mêmes problèmes. Cependant comme le dephasage a le plus souvent des causes inductives et que la capacité des condensateurs décroit légèrement avec le temps, On préfèrera souvent surcompenser légèrement.

Ces considérations négligent un aspect récent induit par l’electronique de puissance, Le Taux de distortion Harmonique.
C’est quand la courbe d’intensité n’a pas la meme forme que le signal d’entrée. Les alimentations à découpage sont d’énormes source de distortion Harmonique.

Facteur de puissance et consommation EDF

 Trucs et astuces techniques  Commentaires fermés sur Facteur de puissance et consommation EDF
Mai 022010
 

De ce que j’ai pu lire sur le net, la mesure de puissance chez le particulier (avec compteur electronique) est :

Mesure de la puissance ACTIVE. (La puissance électrique réellement consommée en Watts que l’on note P)
La puissance active correspond à la puissance moyenne consommée sur une période de temps.
D’un point de vue mathématique, c’est l’intégrale du produit UI.
C’est cette puissance qui est facturée aux particuliers (tarif BLEU)

Mesure de la puissance APPARENTE ( Cette grandeur notée S n’a pas vraiment de sens physique mais c’est celle qui est facturée )
C’est le produit des tensions et intensités efficaces.
SI les intensités et tensions sont sinusoidales et en phase, alors la puissance apparente est égale à la puissance apparente.
Si il y a dephasage ou distortion harmonique, entre l’intensité et la tension, la puissance apparente est supérieure à la puissance active.
(c’est là qu’intervient le fameux cos(phi) aussi appelé facteur de puissance et ou l’angle phi est le dephasage)

P=S * cos(phi)

Bien que l’on ne consomme réellement que la puissance active (celle qui est facturée), c’est la puissance apparente qui est facturéeLa puissance reactive due au dephasage entre I et U génère plus de pertes par effet joule dans le réseau de distribution et conduit donc à un gaspillage de l’energie produite en amont. Le cout energetique (pas le cout sur facture) de votre consommation est donc bien la puissance apparente.
Il est donc important qu’une installation présente un facteur de puissance pas trop mauvais. Premièrement c’est bon pour la planète, mais surtout si votre installation electrique est de forte puissance et assez étendue, cela vous évitera d’augmenter inutilement les sections de conducteurs, des fusibles et limitera l’échauffement des cables.

Remarque concernant la methode de mesure la puissance apparente.
Pour calculer la puissance apparente, le compteur mesure la tension efficace et l’intensité efficace.

normalement on calcule ces valeurs par le methode RMS (Root Mean Square) c’est à dire la racine carrée de la moyenne du carré de la valeur calculée sur une période.
Cependant, c’est assez compliqué a faire dans un multimètre alors on fait une simplification et on considère que ces grandeurs, dephasées ou non, sont sinusoidales. Cela simplifie l’equation.

Le problème est que dans le cas ou le courant n’est pas sinusoidal parce qu’il y a de la distortion harmonique, (par exemple pour les alimentations a decoupage qui ont tendence à consommer sur la crete) Cette formule donne une version très surévaluée de la puissance.

Dernier point
Il se peut que certains appareils compensent leurs dephasage. Exemple

Materiel informatique : 360W – 530VA
Tubes fluorescents 400W – 510 VA
Total : 760 W – 820 VA (et non 1040 VA comme on pourrait croire)

On remarquera que les puissances réactives peuvent parfois partiellement s’annuler, si 2 appareils ont des comportements opposés.
Les échelles mesurées ici sont faibles car à la taille d’un appartement, cependant pour des installations plus lourdes, comme ar exemple pour 3kW de matériel informatique, il est nécessaire de prévoir une installation (dont l’onduleur) pour un équivalent de 5kW car cette puissance apparente qui devra effectivement être transmise.

Remarque : un PC éteint consomme très peu de puissance active (moins de 10W) . Cependant L’alimentation maintient sa banque de condensateurs chargés et consomme donc sur le haut de la crete. Au niveau du compteur, ca fait une intensité apparente non négligeable (50 à 150W selon les cas)

Mar 022010
 

pour modéliser la dispertion, on aura souvent besoin d’un generateur alléatoire gaussien qui concentre la majorité des valeurs sur la moyenne.

ci dessous une librairie de mon cru permettant d’obtennir ce resultat:

#include "pgl_random.hpp"

#include <stdlib.h>
#include <math.h>


static const int precision = 1000000000;  

double pgl_random(void)
{   return (double)(rand()%precision)/precision;
}

double pgl_random(const double max)
{   return max*pgl_random();
}

double pgl_random(const double min, const double max)
{   return min + pgl_random(max - min);
}

double pgl_random_gauss(void)
{   //cette fonction génère 2 nombres alléatoires
    //le second est stocké pour le prochain appel
        
    //les valeurs de retour sont centrées sur 0, equitablement réparties dessus dessous 
    //les valeurs sont essentiellement entre -3 et +3 

    double x1;
    double x2;
    double w;
    double y1;
    static double y2;
    static bool cache = false;

    if ( cache )
    {   cache=false;
        return y2;
    }

    do 
    {   x1 = pgl_random(-1, 1);
        x2 = pgl_random(-1, 1);
        w = x1 * x1 + x2 * x2;  //somme des carrés
    } while ( w >= 1.0 ); 

    w = sqrt( (-2.0 * log( w ) ) / w ); //attention log() est la fonction du log népérien ln. dans math.h le log classique est "log10"
    y1 = x1 * w;
    y2 = x2 * w;    //cette valeur est mise en cache pour le prochain appel
    cache = true;
    return y1;    
}



double pgl_random_gauss(const double centre, const double ecart)
{   return centre + ecart * pgl_random_gauss();
}

double pgl_random_gauss(const double ecart, const double min, const double max)
{   double centre = ( max - min ) /2 ;
    double r;
    do
    {
        r = centre + ecart * pgl_random_gauss();
    }   while ( r < min || r > max )
    return r;
}



Optimisation des sauts conditionnels

 Trucs et astuces techniques  Commentaires fermés sur Optimisation des sauts conditionnels
Mar 012010
 

Dans bien des cas, les opérations mathematiques sont plus rapides que les sauts conditionnels
exemple avec ces deux fonctions.

double foo(bool a, double b)
{   return a*b;
}

double bar(bool a, double b)
{   if ( a == true ) return b;
    else return 0;
}

la fonction foo est plus rapide que bar, ou en tout cas est plus facile à optimiser si on l’apelle un grand nombre de fois.

exemple pour 10 millions d’appels sur un processeur Intel(R) Core(TM)2 6300@1.86GHz

//sans optimisation
FOO temps  : 0.191716 sec
FOO temps  : 0.191693 sec
BAR temps  : 0.208786 sec
BAR temps  : 0.208999 sec
ecart : 8%

//optimisation O1
FOO temps  : 0.123257 sec
FOO temps  : 0.122524 sec
BAR temps  : 0.130222 sec
BAR temps  : 0.129852 sec
ecart : 5%

//optimisation O2
FOO temps  : 0.024811 sec
FOO temps  : 0.025352 sec
BAR temps  : 0.072986 sec
BAR temps  : 0.073545 sec
ecart : 66%


Remarque importante concernant l’optimisation :
Dans un programme digne de ce nom, il est inutile d’optimiser ce qui n’en a pas besoin, surtout si ça nuit à la lisibilité du code.
Généralement, les gains de vitesse proviendront de la complexité de l’algorythme utilisé plutôt que de la qualité du codage.
Généralement 90% des gains de vitesse possibles peuvent être obtennus en optimisant moins de 10% du code.
Aussi, ne réservez ce genre d’astuces qu’a de très petites portions de code et vérifiez que vos modifications ont un impact positif et suffisant pour justifier leur emploi.

Fast-Math

 Trucs et astuces techniques  Commentaires fermés sur Fast-Math
Fév 272010
 

Il existe des options de compilation pour gcc permettant d’accélérer les calculs.
Par contre, attention il est posible d’avoir des erreurs d’arrondi non négligeables et donc un comportement erratique.
NE JAMAIS faire de tests d’égalité entre des float ou des doubles si cette option de compilation est activée.

gcc -mmmx -msse -msse2 -msse3 --ffast-math