Thursday, August 25, 2016

SQL method to replace repeating blanks with single blanks

Link : http://stackoverflow.com/questions/2182877/sql-method-to-replace-repeating-blanks-with-single-blanks


down voteaccepted
Here is a simple set based way that will collapse multiple spaces into a single space by applying three replaces.
DECLARE @myTable TABLE (myTextColumn VARCHAR(50))

INSERT INTO @myTable VALUES ('0Space')
INSERT INTO @myTable VALUES (' 1 Spaces 1 Spaces. ')
INSERT INTO @myTable VALUES ('  2  Spaces  2  Spaces.  ')
INSERT INTO @myTable VALUES ('   3   Spaces  3   Spaces.   ')
INSERT INTO @myTable VALUES ('    4    Spaces  4    Spaces.    ')
INSERT INTO @myTable VALUES ('     5     Spaces  5     Spaces.     ')
INSERT INTO @myTable VALUES ('      6      Spaces  6      Spaces.      ')


select replace(
          replace(
             replace(
                LTrim(RTrim(myTextColumn)), --Trim the field
             '  ',' |'),                    --Mark double spaces
          '| ',''),                         --Delete double spaces offset by 1
       '|','')                              --Tidy up
       AS SingleSpaceTextColumn
 from @myTable
Your Update statement can now be set based:
 update @myTable
    set myTextColumn = replace(
                          replace(
                             replace(
                                LTrim(RTrim(myTextColumn)),
                             '  ',' |'),
                          '| ',''),
                       '|','')  
Use an appropriate Where clause to limit the Update to only the rows that have you need to update or maybe have double spaces.
e.g.
where 1<=Patindex('%  %', myTextColumn)
I have found an external write up on this method: REPLACE Multiple Spaces with One


Check if string contains only letters in javascript

With /^[a-zA-Z]/ you only check the first character:
  • ^: Assert postion at the beginning of the string
  • [a-zA-Z]: match a single character present in the list below:
    • a-z: A character in the range between "a" and "z"
    • A-Z: A character in the range between "A" and "Z"
If you want to check if all characters are letters, use this instead:
/^[a-zA-Z]+$/.test(str);
  • ^: Assert postion at the beginning of the string
  • [a-zA-Z]: match a single character present in the list below:
    • +: Between one and unlimited times, as many as possible, giving back as needed (greedy)
    • a-z: A character in the range between "a" and "z"
    • A-Z: A character in the range between "A" and "Z"
  • $: Assert postion at the end of the string (or before the line break at the end of the string, if any)
Or, using the case-insensitive flag i, you could simplify it to
/^[a-z]+$/i.test(str);
Or, since you only want to test, and not match, you could check for the opposite, and negate it:
!/[^a-z]/i.test(str);

10 Google chrome commands

Fonction Random SQL

Check this out : http://sql.sh/fonctions/rand

Sunday, August 14, 2016

Tests de ma configuration et du serveur DNS

Tests de la configuration
Avant de charger les nouvelles zones, on s’assure qu’elles sont correctes.

Test de named.conf

1
$ named-checkconf /etc/bind/named.conf
Si aucun message d’erreur n’apparait c’est que tout fonctionne.

Test des fichiers de zone

1
2
3
4
5
6
7
$ cd /etc/bind/zones
$ named-checkzone idneo.fr db.idneo.fr
zone idneo.fr/IN: loaded serial 2015080801
OK
$ named-checkzone idneo.fr 213.103.254.51.in-addr.arpa
zone idneo.fr/IN: loaded serial 2015080801
OK
Notre configuration fonctionne, on peut forcer bind à la prendre en compte.
1
$ service bind9 reload
Important :Maintenant que Bind9 est configuré, il faudra penser à relancer la procédure de déclaration du domaine sur le DNS secondaire d’OVH dans la manager. Les étapes seront les même que précédemment, mais aucun message d’erreur apparaîtra.

On teste à présent si notre serveur DNS répond correctement aux demandes depuis l’extérieur.
Grâce à la commande nslookup (disponible dans le paquet dnsutils) on commence par tester si la résolution de domaine fonctionne.
1
2
3
4
5
6
$ nslookup idneo.fr. vps196126.ovh.net
Server:         vps196126.ovh.net
Address:        51.254.103.213#53
Name:   idneo.fr
Address: 51.254.103.213
Tout fonctionne, on peut à présent tester la résolution inverse
1
2
3
4
5
$ nslookup 51.254.103.213 vps196126.ovh.net
Server:         vps196126.ovh.net
Address:        51.254.103.213#53
213.103.254.51.in-addr.arpa     name = idneo.fr.
On teste à présent le serveur secondaire afin de s’assurer qu’il a bien copié le fichier de résolution de domaine.
Pour cela on peut utiliser la première fonction nslookup en remplaçant vps196126.ovh.net par le nom d’host secondaire (ici sdns2.ovh.net). On peut également utiliser la commande dig qui nous fourni une multitude d’informations très utiles et notamment des informations sur les serveurs de nom gérant notre domaine.
1
2
3
$ dig idneo.fr +nssearch
SOA vps196126.ovh.net. postmaster.idneo.fr. 2015080801 600 1800 2419200 28800 from server 51.254.103.213 in 1 ms.
SOA vps196126.ovh.net. postmaster.idneo.fr. 2015080801 600 1800 2419200 28800 from server 213.251.188.141 in 0 ms.
On voit que deux serveurs de nom gèrent notre domaine et qu’ils ont tout les deux la version 2015080801 du fichier de zone.
Important : Si le serveur secondaire ne répond pas, c’est qu’il n’a pas encore chargé vos fichiers de zone. Il faudra attendre que cela soit fait pour continuer le tuto.
Si il répond, on s’assure que notre configuration est valide grâce au site https://www.zonemaster.fr/.