<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" media="screen" href="https://www.sqlpac.com/referentiel/rss/rss.css"?>
 <rss version="2.0" xml:base="https://www.sqlpac.com" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="https://www.sqlpac.com/referentiel/rss/rss.xml" rel="self" type="application/rss+xml" />
      <title>SQLPAC - SQL Pour Administrateurs et Concepteurs</title>
      <link>http://www.sqlpac.com</link>
      <description>Quoi de neuf sur le site francophone consacré aux Systèmes de Gestion de Bases de Données (SGBD) transactionnels et décisionnels ? Des articles pour administrateurs de bases de données autour des produits Sybase (Adaptive Server Enterprise, Replication Server, IQ), Oracle, Microsoft SQL Server et MySQL.</description>
      <lastBuildDate>Sat, 10 Oct 2020 03:20:51 +0200</lastBuildDate>
      <image>
           <url>http://www.sqlpac.com/images/user/sqlpac.jpg</url>
           <title>SQLPAC - SQL Pour Administrateurs et Concepteurs</title>
           <link>http://www.sqlpac.com</link>
      </image>
      <item>
        <title>Google PageSpeed - LightHouse 6, nouveautés CLS (Cumulative Layout Shift) et LCP (Largest Contentful Paint)</title>
        <link>https://www.sqlpac.com/news/401</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/401</guid>
        <pubDate>Tue, 29 Sep 2020 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-lighthouse.png' /><br /><br />
 Les métriques de performances des pages Web sont modifiées avec LightHouse 6, elles sont plus réalistes et proches de l’expérience utilisateur. <br />
<br />
Une métrique particulièrement intéressante est introduite : CLS (Cumulative Layout Shift). La statistique CLS quantifie la stabilité visuelle des pages Web pour éviter les mauvaises expériences utilisateur. <br />
<br />
Tous les outils sont à disposition avec Chrome et LightHouse pour diagnostiquer les éléments concernés dans l’instabilité visuelle d’une page et en peu d’étapes, le score CLS peut être optimisé, mais tout va dépendre bien entendu de la complexité des pages et du code.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/google-pagespeeds-lighthouse-6-nouveautes-lcp-cls.html' >Google PageSpeed - LightHouse 6, nouveautés CLS (Cumulative Layout Shift) et LCP (Largest Contentful Paint)</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Mesurer et stocker les métriques des performances des pages avec les API Google PageSpeed Insights et Python</title>
        <link>https://www.sqlpac.com/news/399</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/399</guid>
        <pubDate>Mon, 11 May 2020 01:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-google.png' /><br /><br />
 La vitesse des pages est un des critères clés dans les algorithmes de classement des moteurs de recherche Google.<br />
<br />
Les API Google PageSpeed Insights donnent la possibilité d’extraire par programmation les résultats des audits LightHouse exécutés sur des pages Web depuis les laboratoires Google.<br />
<br />
Avec très peu de lignes de code Python, les statistiques principales peuvent être récupérées et stockées dans une table pour historisation : utile lorsqu’on planifie des benchmarks avant/après migrations, mises à jour.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/google-pagespeed-insights-lighthouse-api-avec-python.html' >Mesurer et stocker les métriques des performances des pages avec les API Google PageSpeed Insights et Python</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Python, configuration applicative - variables d’environnement, fichiers ini et YAML</title>
        <link>https://www.sqlpac.com/news/397</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/397</guid>
        <pubDate>Fri, 24 Apr 2020 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-python.png' /><br /><br />
 Bien entendu, aucune configuration applicative codée en dur dans des programmes, programmes Python ou non.<br />
<br />
Comment lire (écrire) des données de configuration avec Python à partir de variables d’environnement, de fichiers INI ou de fichiers YAML ?<br />
<br />
Les packages os, configparser et PyYAML répondent très simplement à ces besoins. configparser pour les fichiers INI et yaml pour les fichiers YAML ont leurs avantages et inconvénients si on se hasarde à les comparer pour faire un choix. Le format JSON n’est pas abordé ici, il fait l’objet d’une <a href='https://www.sqlpac.com/referentiel/docs/python-manipuler-json-avec-le-package-json.html' rel='external'>publication dédiée</a>.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/python-configuration-application-ini-yaml-variables-environment.html' >Python, configuration applicative - variables d’environnement, fichiers ini et YAML</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Python, manipuler les dictionnaires avec la notation dot</title>
        <link>https://www.sqlpac.com/news/395</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/395</guid>
        <pubDate>Mon, 20 Apr 2020 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-python.png' /><br /><br />
 Python n’est pas Javascript. Habitudes, difficile de les éradiquer.<br />
<br />
Comment utiliser la notation dot avec Python sur un dictionnaire ? Cela peut être réalisé nativement avec une classe ou SimpleNamespace mais quand les dictionnaires sont imbriqués, cela devient fastidieux sans avoir à développer sa propre bibliothèque. <br />
<br />
Des packages de la communauté Python existent pour faire le job : Prodict, python-box.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/python-manipuler-les-dictionnaires-avec-la-notation-dot.html' >Python, manipuler les dictionnaires avec la notation dot</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Python, gestion des requêtes HTTP avec les packages requests et httplib2</title>
        <link>https://www.sqlpac.com/news/393</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/393</guid>
        <pubDate>Fri, 17 Apr 2020 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-python.png' /><br /><br />
 Dans les échanges entre applications via des API, des requêtes HTTP avec la méthode GET ou POST sont de plus en plus utilisées.<br />
<br />
Avec Python, 2 packages très intéressants pour exécuter des requêtes HTTP : requests et httplib2. Le package requests est le plus simple syntaxiquement et intègre en natif un décodeur JSON, quant au package httplib2, une fonctionnalité très intéressante : la mise en cache pour éviter les appels réseaux non nécessaires dans certains contextes applicatifs avec des données relativement statiques.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/python-requetes-http-avec-les-packages-requests-et-httplib2.html' >Python, gestion des requêtes HTTP avec les packages requests et httplib2</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Python, parsing des arguments avec les packages argparse and getopt</title>
        <link>https://www.sqlpac.com/news/390</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/390</guid>
        <pubDate>Wed, 15 Apr 2020 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-python.png' /><br /><br />
 2 packages natifs sont disponibles avec Python pour gérer efficacement les lignes de commandes et arguments d’un programme Python : argparse et getopt.<br />
<br />
argparse est de loin le package le plus évolué et offre le plus de productivité, quant à getopt une ressemblance très forte à ses habitudes de gestion des arguments en shell ou en C.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/python-parsing-des-arguments-avec-les-packages-argparse-et-getopt.html' >Python, parsing des arguments avec les packages argparse and getopt</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Python, lire et écrire des données JSON avec le package natif json</title>
        <link>https://www.sqlpac.com/news/389</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/389</guid>
        <pubDate>Mon, 13 Apr 2020 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-python.png' /><br /><br />
 Une des premières choses à savoir quand on aborde le langage Python dans le contexte technologique actuel (échange de données, API…) : comment lire et écrire des données JSON dans un programme Python ?<br />
<br />
Python intègre le package json en natif pour ces opérations avec les méthodes load, loads, dump et dumps. Si on vient du monde Javascript, quelques habitudes de programmation avec les données Json non utilisables directement en Python (dot notation…).<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/python-manipuler-json-avec-le-package-json.html' >Python, lire et écrire des données JSON avec le package natif json</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Javascript - Lister les event listeners actifs sur une page Web</title>
        <link>https://www.sqlpac.com/news/387</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/387</guid>
        <pubDate>Fri, 10 Apr 2020 08:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-javascript.png' /><br /><br />
 Lors du développement d’un site Web, des écouteurs d’événements, appelés event listeners par abus de langage en français, sont implémentés soit par des librairies tierces, soit par soi même.<br />
<br />
Dans certaines circonstances, lors du démarrage des tâches d'améliorations des performances ou lors du debug de problèmes de comportement avec les event listeners à cause d’une librairie tierce, il s’avère utile d’obtenir une cartographie de tous les event listeners. Comment obtenir cette liste complète : les événements définis avec addEventListener et ceux définis avec l’attribut correspondant ?<br />
<br />
Ce n'est pas aussi trivial que cela pourrait l’être.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/javascript-liste-event-listeners-actifs.html' >Javascript - Lister les event listeners actifs sur une page Web</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Installation d’une instance standalone MariaDB ColumnStore 1.2.3 sur Ubuntu</title>
        <link>https://www.sqlpac.com/news/385</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/385</guid>
        <pubDate>Mon, 09 Mar 2020 09:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-mariadb.png' /><br /><br />
 L’installation d’un système MariaDB ColumnStore standalone sur Ubuntu, afin de découvrir le produit, est plutôt simple bien que la documentation officielle laisse penser le contraire. La prise en main est par ailleurs rapide avec la conjugaison des utilitaires mcsadmin et mcsmysql. <br />
<br />
Un point de départ technique sur cette base de données orientée stockage colonnes pour le traitement analytique temps réel de données distribuées et à très forte volumétrie.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/mariadb-columnstore-1.2.3-installation-standalone-ubuntu-premiers-pas.html' >Installation d’une instance standalone MariaDB ColumnStore 1.2.3 sur Ubuntu</a>
        ]]>
         </description>
      </item>
      <item>
        <title>InfluxDB v2, prise en main. Préparation de la migration de la version 1.7</title>
        <link>https://www.sqlpac.com/news/374</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/374</guid>
        <pubDate>Mon, 17 Feb 2020 16:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-influxdb.png' /><br /><br />
 La migration vers InfluxDB v2 nécessite des ajustements, de nombreuses fonctionnalités d’InfluxDB v1 sont remplacées dans la version 2. La procédure de migration des versions 1.x vers la version 2 n’est pas encore dévoilée, mais très probablement elle préconisera des méthodes d’export/import.<br />
<br />
La terminologie change quelque peu avec la version 2 : une base de données devient un bucket et une organisation est obligatoirement attachée à un bucket. Rien ne change en revanche pour le protocole Ligne InfluxDB.<br />
<br />
Une prise en main d’un serveur InfluxDB Server v2 est abordée dans cet article ainsi que les ruptures à prévoir lors des migrations des versions 1.x : <br />
<br />
__itl InfluQL est remplacé par le langage Flux, les Continuous queries par les Tasks.<br />
__itl Le support natif des protocoles Graphite, OpenTSDB… est supprimé, Telegraf devra être mis en place. <br />
__itl Le plugin Flux pour Grafana n’est pas tout à fait prêt.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/influxdb-v2-prise-en-main-installation-preparation-migration-version-1.7.html' >InfluxDB v2, prise en main. Préparation de la migration de la version 1.7</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Protéger le port SSH sur Ubuntu avec Fail2ban - Installation et configuration</title>
        <link>https://www.sqlpac.com/news/373</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/373</guid>
        <pubDate>Mon, 10 Feb 2020 06:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-ubuntu.png' /><br /><br />
 Sur les serveur Ubuntu, ufw (Uncomplicated Firewall) est un bon outil pour appliquer des règles de parefeu sur les ports sans avoir à utiliser les commandes iptables qui sont assez difficiles, mais ce n’est pas suffisant pour protéger le port 22 des services SSH.<br />
<br />
Fail2Ban est l’outil complémentaire à ufw afin de protéger un système Ubuntu des attaques sur SSH.<br />
<br />
Fail2Ban est un package Python qui interagit comme ufw avec iptables et il peut être installé dans un environnement virtuel Python.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/linux-ubuntu-fail2ban-installation-configuration-iptables.html' >Protéger le port SSH sur Ubuntu avec Fail2ban - Installation et configuration</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Architecture, installation et utilisation d’une base de données Time Series InfluxDB 1.7</title>
        <link>https://www.sqlpac.com/news/372</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/372</guid>
        <pubDate>Fri, 07 Feb 2020 14:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-influxdb.png' /><br /><br />
 InfluxDB est une base de données Time Series performante proposant une compression de données efficace. <br />
<br />
L’architecture est simple et bien conçue (rétentions des mesures, fragments…) et l’ingestion des données facile à mettre en place, en natif ou via des protocoles Time Series standards (OpenTSDB, Graphite…). <br />
<br />
Les requêtes sont de type SQL et le reporting est intuitif avec Grafana ou Chronograf.<br />
<br />
Cette présentation d’InfluxDB v 1.7 souligne également les ruptures à prévoir avec la prochaine version majeure 2.0.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/influxdb-v1.7-architecture-installation-configuration-utilisation.html' >Architecture, installation et utilisation d’une base de données Time Series InfluxDB 1.7</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Python - Comprendre et démystifier virtualenv</title>
        <link>https://www.sqlpac.com/news/371</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/371</guid>
        <pubDate>Fri, 24 Jan 2020 05:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-python.png' /><br /><br />
 Avec Python, lors de l’installation d’un produit, beaucoup de dépendances peuvent être aussi installées. <br />
<br />
Il devient fastidieux de gérer la pollution de la distribution globale Python: dépendances, conflits de versions de packages, binaires…<br />
<br />
Les packages utilisés par la plupart des utilisateurs peuvent être installés dans la distribution système et les packages nécessaires à un seul utilisateur/produit dans un environnement virtuel avec virtualenv. <br />
<br />
Comment créer et utiliser des environnements virtuels avec virtualenv ? Comment les packages et versions sont gérés dans les distributions virtuelles et système ? C’est le sujet de cet article.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/python-comprendre-et-demystifier-virtualenv.html' >Python - Comprendre et démystifier virtualenv</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Procédures planifiées de bascules Failover - Failback avec la réplication en continu PostgreSQL (streaming replication)</title>
        <link>https://www.sqlpac.com/news/370</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/370</guid>
        <pubDate>Mon, 06 Jan 2020 18:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-postgresql.png' /><br /><br />
 De nombreux articles traitent de la promotion d’un serveur de secours PostgreSQL en serveur principal avec la commande pg_ctl promote. Beaucoup d’entre eux concluent que le serveur de secours doit être reconstruit lorsque le serveur principal est de retour.<br />
<br />
Qu’en est-il d’une maintenance programmée, maintenance incluant des arrêts, sur le serveur primaire ? Doit-on reconstruire le système primaire/standby ? Évidemment la réponse est : NON.<br />
<br />
En supposant qu’il y a suffisamment d’espace disque pour conserver les fichiers WAL pendant la tâche de maintenance, en gérant prudemment le point de réplication (replication slot) et l’option de récupération recovery_timeline_target durant les procédures failover/failback, il n’y a pas besoin de reconstruire le système standby impliquant des sauvegardes/restaurations de bases de données et/ou d’utiliser pg_rewind.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/postgresql-bascule-standby-failover-failback.html' >Procédures planifiées de bascules Failover - Failback avec la réplication en continu PostgreSQL (streaming replication)</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Réplication en continu avec PostgreSQL 9.6, 10 et 11 (Streaming replication) - Bases de données PostgreSQL Standby</title>
        <link>https://www.sqlpac.com/news/369</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/369</guid>
        <pubDate>Fri, 22 Nov 2019 20:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-postgresql.png' /><br /><br />
 La mise en route de la réplication en continu (streaming replication) avec PostgreSQL 9.6 sur des serveurs Linux Ubuntu 18.04 est très simple. <br />
<br />
Dans la réplication en continu, le serveur de standby se connecte au serveur primaire, lequel diffuse les enregistrements WAL (Write Ahead Log) au serveur de standby au fur et à mesure qu’ils sont générés, sans attendre que le fichier WAL soit rempli. La réplication en continu permet à un serveur de standby de rester plus à jour que ce qui est possible avec le transfert des journaux.<br />
<br />
Le serveur de standby peut être en lecture seule (read only) pour le reporting par exemple.<br />
<br />
Un point de replication (replication slot) garantit que les fichiers WAL nécessaires au serveur de standby ne sont pas supprimés dans le serveur primaire avant leur traitement par le serveur de standby. Plusieurs points de réplication peuvent être définis en fonction du nombre de serveurs standby.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/postgresql-9.6-10-11-configuration-installation-streaming-replication-standby-ubuntu.html' >Réplication en continu avec PostgreSQL 9.6, 10 et 11 (Streaming replication) - Bases de données PostgreSQL Standby</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Installation rapide de PostgreSQL 9.6 - Ubuntu 18.04</title>
        <link>https://www.sqlpac.com/news/367</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/367</guid>
        <pubDate>Mon, 30 Sep 2019 19:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-postgresql.png' /><br /><br />
 Un guide rapide pour construire une base de données PostgreSQL 9.6 sur Ubuntu 18.04, guide incluant normalisation et personnalisation (port, répertoires des fichiers de configuration et de bases de données…).<br />
<br />
L’utilitaire historique pg_ctl demeure en charge de la gestion d’une base PostgreSQL (démarrage, arrêt, redémarrage…).<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/postgresql-9.6-setup-installation-rapide.html' >Installation rapide de PostgreSQL 9.6 - Ubuntu 18.04</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Microsoft SQL Server 2016, usages de dbcc clonedatabase</title>
        <link>https://www.sqlpac.com/news/366</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/366</guid>
        <pubDate>Sat, 01 Jun 2019 20:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-mssql.png' /><br /><br />
 Une nouvelle fonctionnalité a été introduite avec SQL Server 2012 : dbcc clonedatabase. Cette nouveauté a été améliorée depuis SQL Server 2016 (objets supportés).<br />
<br />
Comment cela fonctionne et quel est le but de cette nouvelle fonctionnalité ? <br />
<br />
dbcc clonedatabase est très utile pour diagnostiquer l’impact du niveau de compatibilité (compatibility level) sur les requêtes dans un environnement de production avec des statistiques temps réel sans modifier directement et immédiatement le niveau de compatibilité de la base de données source, modification qui peut générer des effets de bord et qui doit être menée prudemment.<br />
<br />
Cette commande s’avère bien pratique aussi pour dupliquer une base de données avec uniquement les objets.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/ms-sql-server-2016-dbcc-clonedatabase-usage.html' >Microsoft SQL Server 2016, usages de dbcc clonedatabase</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Configuration SSL des connexions avec SQL Server 2019 sur Linux</title>
        <link>https://www.sqlpac.com/news/365</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/365</guid>
        <pubDate>Sat, 01 Jun 2019 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-mssql.png' /><br /><br />
 Modifier le port de SQL Server installé dans une zone WAN/DMZ n’est pas suffisant d’un point de vue sécurité, cela diminue les attaques potentielles mais n’empêche pas des outils de "snif" de lire les paquets TCP.<br />
<br />
Comment encrypter les paquets avec SSL / TLS 1.2 pour SQL Server sous Linux ? Les étapes sont faciles avec openssl et l’utilitaire mssql-conf.<br />
<br />
L’encryption est initiée et forcée par le serveur SQL Server avec un certificat auto-signé (self-signed certificate).<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/ms-sql-2019-linux-configuration-ssl-connexions.html' >Configuration SSL des connexions avec SQL Server 2019 sur Linux</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Modification du port de SQL Server 2019 sur Linux et utilisation des alias SQL Server sur les machines clientes</title>
        <link>https://www.sqlpac.com/news/364</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/364</guid>
        <pubDate>Sat, 01 Jun 2019 08:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-mssql.png' /><br /><br />
 Microsoft SQL Server installé dans une zone WAN/DMZ et utilisant son port par défaut 1433 est vulnérable aux attaques.<br />
<br />
Le port d’un serveur SQL Server 2019 installé sur Linux est modifiable avec l’utilitaire mssql-conf.<br />
<br />
Le déploiement (automatisé) d’alias SQL Server sur les machines clientes lors du changement du port d’un serveur réduit considérablement les impacts négatifs.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/ms-sql-2019-linux-wan-dmz-modification-port-par-defaut-alias-sqlserver.html' >Modification du port de SQL Server 2019 sur Linux et utilisation des alias SQL Server sur les machines clientes</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Dépanner un problème de démarrage de SQL Server 2019 sur Ubuntu lié à une erreur d’action avec root</title>
        <link>https://www.sqlpac.com/news/363</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/363</guid>
        <pubDate>Fri, 31 May 2019 14:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-mssql.png' /><br /><br />
 TOUJOURS démarrer le moteur SQL Server sur Linux avec le compte mssql. NE JAMAIS EXÉCUTER directement le binaire sqlservr en tant que root.<br />
<br />
En effet, le moteur ne peut pas alors être ensuite redémarré normalement avec le compte mssql.<br />
<br />
Le diagnostic n’est pas aussi simple qu’à l’accoutumée dans ce genre de problème, des permissions sont altérées pour des fichiers systèmes binaires cachés de SQL Server (security.hiv…).<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/ms-sql-2019-ubuntu-diagnostic-probleme-demarrage-securite.html' >Dépanner un problème de démarrage de SQL Server 2019 sur Ubuntu lié à une erreur d’action avec root</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Gestion du service SQL Server 2019 sur Ubuntu avec systemctl</title>
        <link>https://www.sqlpac.com/news/362</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/362</guid>
        <pubDate>Fri, 31 May 2019 12:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-mssql.png' /><br /><br />
 Dans l’architecture par défaut, SQL Server 2019 s’exécute avec le compte mssql. <br />
<br />
Lors de l’arrêt/démarrage/redémarrage du service mssql-server avec systemctl, le mot de passe est demandé. On souhaite autoriser mssql à gérer son propre service sans invites de saisie du mot de passe. <br />
<br />
2 solutions sont possibles : définir mssql-server en tant que service utilisateur du compte mssql ou donner les droits avec aucun mot de passe sur le service système mssql-server au user mssql via sudo.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/ms-sql-2019-ubuntu-systemctl-gestion-service-mssql.html' >Gestion du service SQL Server 2019 sur Ubuntu avec systemctl</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Microsoft SQL Server 2019 sur Ubuntu - Agent SQL Server</title>
        <link>https://www.sqlpac.com/news/361</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/361</guid>
        <pubDate>Fri, 31 May 2019 08:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-mssql.png' /><br /><br />
 Et l’agent SQL Server sur Linux ? Oui il est présent, MAIS…<br />
<br />
Si la configuration et l’activation de l’agent SQL Server sont très simples avec mssql-conf, contrôler celui-ci l’est en revanche beaucoup moins. Sur Linux, l’agent SQL Server n’est pas associé à un service dédié comme sur Windows avec des conséquences non négligeables.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/ms-sql-2019-agent-sql-linux-ubuntu-18.04.html' >Microsoft SQL Server 2019 sur Ubuntu - Agent SQL Server</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Installation et configuration de Microsoft SQL Server 2019 sur Linux Ubuntu 18.04</title>
        <link>https://www.sqlpac.com/news/360</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/360</guid>
        <pubDate>Wed, 29 May 2019 23:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-mssql.png' /><br /><br />
 Qui l’eût cru en 2009, 10 ans plus tôt, Microsoft SQL Server 2019 sur les plateformes Linux !<br />
<br />
Sur Ubuntu 18.04, une instance SQL Server 2019 est installée et configurée avec mssql-conf. Comme la majorité des entreprises implémentent des parefeux pour empêcher les serveurs de communiquer avec l’extérieur, les installations sont faites en mode hors ligne (offline) avec les packages *.deb fournis par Microsoft.<br />
<br />
Les fichiers de bases de données ne sont pas créés dans le répertoire par défaut.<br />
<br />
Après l’installation, 2 premiers tests sont réalisés : restauration sur SQL Server 2019 / Linux d’une base de données à partir de sa sauvegarde SQL Server 2016 / Windows et export/import d’une table avec bcp en mode natif de SQL Server 2016 / Windows vers SQL Server 2019 / Linux.<br />
Ces 2 tests montreront s’il est facile ou non, dans ce contexte cross-plateformes, de migrer des bases de données de SQL Server 2016 sous Windows vers SQL Server 2019 sous Linux.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/ms-sql-2019-linux-ubuntu-18.04-installation-configuration.html' >Installation et configuration de Microsoft SQL Server 2019 sur Linux Ubuntu 18.04</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Ubuntu, sécurisation des accès SSH avec le port d’écoute et ufw (Uncomplicated Firewall)</title>
        <link>https://www.sqlpac.com/news/359</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/359</guid>
        <pubDate>Tue, 28 May 2019 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-ubuntu.png' /><br /><br />
 Les trois premières étapes à réaliser pour sécuriser son nouveau serveur Ubuntu, dans le cloud ou pas :<br />
<br />
__itl Modifier le port par défaut pour les connexions SSH.<br />
__itl Désactiver les accès directs en SSH avec le compte root.<br />
__itl Activer le parefeu ufw (Ubuntu Uncomplicated Firewall) en autorisant les connexions entrantes SSH.<br />
<br />
Dans un contexte où SSH s’exécute sur un port différent de celui par défaut, comment activer pour la première fois ufw en toute sécurité en autorisant les connexions SSH ?<br />
<br />
Dans de nombreux articles, le lecteur est averti d’être prudent lors de l’activation d’ufw mais sans mentionner la commande ufw show added, cette commande garantissant qu’il n’y a pas d’erreur humaine avant l’activation d’ufw, erreur humaine qui peut couper les connexions SSH existantes sans possibilité d’en établir de nouvelles autrement qu’en sollicitant le fournisseur (cloud) ou en accédant physiquement au serveur.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/linux-ubuntu-securisation-ssh-root-acces-ufw-firewall.html' >Ubuntu, sécurisation des accès SSH avec le port d’écoute et ufw (Uncomplicated Firewall)</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Installation et utilisation de Komodo Edit avec Ubuntu 18.04</title>
        <link>https://www.sqlpac.com/news/358</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/358</guid>
        <pubDate>Mon, 27 May 2019 10:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-ubuntu.png' /><br /><br />
 Pour coder, vim est un excellent outil sur les systèmes Linux, mais quand on est habitué à utiliser sur Windows l’outil Active State Komodo Edit notamment pour ses fonctionnalités de définitions de projets, workspaces… on peut vouloir exécuter Komodo Edit sur Ubuntu et transférer l’interface graphique sur son client Windows 10.<br />
<br />
Active State Komodo Edit peut être installé et exécuté sur un système Ubuntu et l’interface graphique transféré vers un client Windows 10 grâce au "X11 forwarding". Les prérequis et l’installation sont assez simples.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/linux-ubuntu-komodo-edit-installation-utilisation.html' >Installation et utilisation de Komodo Edit avec Ubuntu 18.04</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Ubuntu, afficher des fenêtres serveur X vers des hôtes clients Windows 10 avec Putty et XMing Server</title>
        <link>https://www.sqlpac.com/news/357</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/357</guid>
        <pubDate>Fri, 24 May 2019 16:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-ubuntu.png' /><br /><br />
 Lorsque les bureaux graphiques ne sont pas installés sur un serveur Ubuntu, les interfaces graphiques sont cependant parfois nécessaires et doivent être transmises et affichées sur les machines clientes. On peut citer en exemples :<br />
<br />
__itl Les programmes d’installation assez complexes (Oracle…), la version graphique étant souvent préférée aux installations en mode console et/ou installations silencieuses.<br />
<br />
__itl Exécuter Android studio sur le serveur Ubuntu, plus puissant, plutôt que sur la machine cliente qui ne possède pas les pré-requis matériels (mémoire, CPU…) nécessaires à son installation.<br />
<br />
Très peu d’étapes à suivre sur Ubuntu 18.04 et le client Windows 10 pour la mise en œuvre de cette mécanique.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/linux-ubuntu-x11-forwarding-windows-10-putty-ssh.html' >Ubuntu, afficher des fenêtres serveur X vers des hôtes clients Windows 10 avec Putty et XMing Server</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Migration d’un site web de HTTP vers HTTPS (SSL)</title>
        <link>https://www.sqlpac.com/news/356</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/356</guid>
        <pubDate>Fri, 12 Apr 2019 20:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-apache.png' /><br /><br />
 Si il n’y avait jusqu’à maintenant aucune justification pour migrer un site Web du protocole HTTP vers le protocole sécurisé HTTPS avec SSL (Secure Socket Layer), ce n’est désormais plus le cas.<br />
<br />
Même si un site web ne délivre que du contenu (pas de e-commerce, de sessions…), Google et son moteur de recherche adoptent désormais la position du "HTTPS everywhere by default !". Les conséquences peuvent être très pénalisantes sur l’indexation d’un site en conservant le protocole HTTP.<br />
<br />
Au cours de la migration d’un site en HTTPS, divers aspects à aborder : l’environnement de développement en local avec HTTPS/SSL, les outils de développement pour détecter et corriger les "Mixed Content", les redirections des adresses HTTP vers les adresses HTTPS ainsi que la "check list" des actions à mener post migration (Google Analytics, Google Search Console, sitemaps, liens canoniques…).<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/apache-html-migration-http-https-ssl.html' >Migration d’un site web de HTTP vers HTTPS (SSL)</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Apache 2.4. Virtual hosts sous Windows en HTTPS / SSL avec des certificats auto signés. Création et automatisation par macro</title>
        <link>https://www.sqlpac.com/news/355</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/355</guid>
        <pubDate>Thu, 11 Apr 2019 09:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-apache.png' /><br /><br />
 C’est à présent incontournable, bien au delà des gains en performances possibles et des nouvelles fonctionnalités avec le protocole HTTP 2, exploitable uniquement en HTTPS/SSL (Secure Socket Layer), Google l’a annoncé : HTTPS Everywhere ! Les robots de Google, Google Analytics… délaisseront petit à petit les sites Web qui tournent encore avec le protocole non sécurisé HTTP.<br />
<br />
Comment simuler la mécanique HTTPS / SSL avec certificats en local sur son PC pour ses domaines virtuels afin de réaliser la migration ?<br />
<br />
Avec OpenSSL (Open Secure Socket Layer) et les certificats auto-signés (self signed certificates), le module des macros d’Apache 2.4 apporte une souplesse appréciable pour automatiser la définition de ses hôtes virtuels en HTTPS/SSL.<br />
<br />
Et c’est parti pour le debug et la chasse au "Mixed Content" grâce aux outils de développement des navigateurs afin de finaliser le 100% HTTPS /SSL de son site.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/apache-2.4-windows-virtual-hosts-locaux-avec-https-ssl-certificats-self-signed.html' >Apache 2.4. Virtual hosts sous Windows en HTTPS / SSL avec des certificats auto signés. Création et automatisation par macro</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Apache 2.4 / PHP, création et automatisation des virtual hosts avec le module des macros (mod_macro)</title>
        <link>https://www.sqlpac.com/news/354</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/354</guid>
        <pubDate>Tue, 09 Apr 2019 18:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-apache.png' /><br /><br />
 Pour administrer les serveurs Apache version 2.2, des scripts shell, awk… ont été d’un grand secours pour générer les fichiers de configurations nécessaires à la définition de multiples hôtes virtuels (virtual hosts…).<br />
<br />
Avec Apache 2.4 et son nouveau module mod_macro, les virtual hosts peuvent être définis de façon bien plus industrielle d’un point de vue administration.<br />
<br />
Cas pratique : 3 hôtes virtuels sont définis par macro et pour chacun d’eux la version de PHP diffère.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/apache-2.4-php-windows-virtual-hosts-creation-automatisation-module-mod_macro.html' >Apache 2.4 / PHP, création et automatisation des virtual hosts avec le module des macros (mod_macro)</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Google+ et goo.gl, fin de vie en 2019</title>
        <link>https://www.sqlpac.com/news/352</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/352</guid>
        <pubDate>Fri, 08 Feb 2019 09:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-google.png' /><br /><br />
 En 2019, c’est la fin de vie de deux produits Google qui attire l'attention : Google+ et Google URL Shortener (goo.gl).<br />
<br />
À vos claviers, il faut retirer toutes les portions de code qui implémentent le bouton Google +1 ou exploitent les API Google+ pour publier, partager...<br />
<br />
Google+ avait l’ambition de se mesurer au géant Facebook. Le flop a été monumental, très probablement parce que Facebook est désormais trop ancré dans les habitudes des internautes. Initialement prévue pour Août 2019, la fin de vie de Google+ est précipitée et avancée à avril 2019 après la découverte d’une nouvelle faille de sécurité (<a href='https://www.blog.google/technology/safety-security/expediting-changes-google-plus/' rel='external nofollow'>Expediting changes to Google+</a>). Les données existantes (photos, vidéos, commentaires...) seront tout simplement supprimées, à charge pour l’internaute de s’occuper des sauvegardes (<a href='https://support.google.com/plus/answer/1045788' rel='external nofollow'>Procédure de téléchargement du contenu Google+</a>).<br />
<br />
Goo.gl, l’outil de création de raccourcis de liens, raccourcis bien pratiques pour Twitter, et qui fournit les statistiques associées, disparaît également. À compter du 30 mars 2019, la création de nouveaux liens goo.gl ne sera plus possible, toutefois les liens créés avant cette date continueront de fonctionner. Google propose en alternative une migration vers son produit Firebase Dynamic Links (<a href='https://developers.googleblog.com/2018/03/transitioning-google-url-shortener.html' rel='external nofollow'>Transitioning Google URL Shortener to Firebase Dynamic Links</a>), mais comme le dit le proverbe, chat échaudé craint l’eau froide, mieux vaut partir vers Bit.ly, bien plus simple. Même punition que pour Google+, tous les développements avec les API de goo.gl sont à revoir pour migrer vers les API du nouveau fournisseur de raccourcis de liens.<br />
        ]]>
         </description>
      </item>
      <item>
        <title>Apache 2.2 et PHP sous Windows, environnements de développement multiples avec les virtual hosts</title>
        <link>https://www.sqlpac.com/news/353</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/353</guid>
        <pubDate>Thu, 25 Jan 2018 16:00:00 +0100</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-apache.png' /><br /><br />
 Pour des raisons diverses et variées, il est souvent nécessaire de disposer en local de plusieurs environnements de développement avec Apache. Par exemple un environnement dédié par version de PHP pour des contextes de migration, un environnement uniquement pour du debug à l’image de l’environnement de production afin de reproduire un incident…<br />
<br />
La configuration de tels environnements est aisée avec les hôtes virtuels (virtual hosts) d’Apache 2.2 et le module fcgid (Fast CGI).<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/apache-2.2-php-windows-virtual-hosts-developpement-environnements.html' >Apache 2.2 et PHP sous Windows, environnements de développement multiples avec les virtual hosts</a>
        ]]>
         </description>
      </item>
      <item>
        <title>RavenDB 3.4, installation, architecture et prise en main</title>
        <link>https://www.sqlpac.com/news/351</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/351</guid>
        <pubDate>Wed, 27 Sep 2017 09:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-ravendb.png' /><br /><br />
 RavenDB est la meilleure base de données orientée Documents pour les développeurs .NET.<br />
<br />
Sur les serveurs Windows, l’architecture et la prise en main de RavenDB sont simples (configuration, création de bases de données et de systèmes de fichiers…). L’administration en lignes de commandes un peu moins, elle est réalisée avec cURL. Le multi instances sur une même machine est possible.<br />
<br />
Les aspects développement des indexes, cluster, réplication, intégration avec Visual Studio… ne sont pas abordés dans cette introduction sur ce moteur.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/ravendb-3.4-installation-architecture-prise-en-main.html' >RavenDB 3.4, installation, architecture et prise en main</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Installation silencieuse de Microsoft Visual Studio 2017 Community Edition en mode hors ligne (offline)</title>
        <link>https://www.sqlpac.com/news/350</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/350</guid>
        <pubDate>Mon, 25 Sep 2017 05:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-vstudio2017.png' /><br /><br />
 Microsoft a largement modifié son concept d'installation de Visual Studio 2017 par rapport aux versions précédentes, versions qui étaient livrées sous formes d’images ISO et installaient discrètement un trop grand nombre de composants.<br />
<br />
Avec Visual Studio 2017, les composants sont désormais regroupés en "charges de travail" (workloads) et les installations sont devenues plus personnalisables pour chaque module avec l’introduction des notions de composants obligatoires, recommandés et optionnels.<br />
<br />
Après avoir rapatrié en local une image complète de Visual Studio 2017 Community Edition, le déploiement des modules souhaités est lancé avec le binaire vs_community.exe, déploiement qui peut être en mode silencieux. Une image complète en local présente un intérêt majeur dans les environnements pour lesquels les accès internet ne sont pas fiables ou à bas débit mais également pour le déploiement ultérieur sur d’autres postes de travail ou une réinstallation.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/microsoft-installation-visual-studio-2017-community-offline.html' >Installation silencieuse de Microsoft Visual Studio 2017 Community Edition en mode hors ligne (offline)</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Oracle 12c Dataguard, utiliser un autre compte que SYS avec le paramètre REDO_TRANSPORT_USER</title>
        <link>https://www.sqlpac.com/news/349</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/349</guid>
        <pubDate>Tue, 06 Jun 2017 02:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-oracle.png' /><br /><br />
 Pour des raisons de sécurité, certaines politiques d’entreprise imposent de modifier à intervalles réguliers les comptes systèmes des moteurs de bases de données (SYS et SYSTEM pour Oracle, sa pour SQL Server et SAP Adaptive Server Enterprise, root pour MySQL…), voire de les verrouiller et utiliser des comptes personnalisés avec des droits administrateurs (DBA, sysadmin…).<br />
<br />
Dans le contexte d’une architecture Oracle DataGuard, il est possible de ne pas utiliser le compte SYS pour le transport des redo logs d’une base primaire vers une base standby physique grâce au paramètre REDO_TRANSPORT_USER. En spécifiant un autre compte, il n’est alors plus nécessaire de copier le fichier password vers les bases standby si le mot de passe du compte SYS est modifié.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/oracle-12c-dataguard-redo-transport-user.html' >Oracle 12c Dataguard, utiliser un autre compte que SYS avec le paramètre REDO_TRANSPORT_USER</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Google Analytics - Migration vers analytics.js. Automatisation des événements avec les attributs rel et data</title>
        <link>https://www.sqlpac.com/news/348</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/348</guid>
        <pubDate>Fri, 23 Sep 2016 16:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-google-analytics.png' /><br /><br />
 Google Analytics est un outil d’une puissance inégalée et simple à mettre en œuvre pour mesurer l’audience d'un site Web (visites, pages vues, vitesse des pages, localisation géographique des visiteurs, systèmes d'exploitation…).<br />
<br />
Mais les technologies et les API évoluent… les librairies ga.js et dc.js de Google Analytics deviennent obsolètes. Il faut migrer vers la nouvelle librairie analytics.js, aussi appelée Google Analytics Universal.<br />
<br />
La migration vers les API analytics.js est abordée ici avec toutes ses spécificités (mesure des téléchargements, événements…), et elle aboutit très souvent à une réflexion sur un mécanisme moins dépendant des changements éventuels des API de Google Analytics. <br />
<br />
Une automatisation des actions Google Analytics (tracking de téléchargements, événements…) avec une fonction javascript unique est proposée à travers un cas pratique en exploitant les attributs <code>rel</code> et <code>data-%</code> des balises des liens hypertextes <code>&lt;a&gt;</code>. Cette fonction rend le code beaucoup moins dépendant des futurs changements d’API de Google Analytics et la migration se résume alors à modifier la fonction en 2 minutes.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/google-analytics-migration-analytics-js-automatisation-evenement-rel-external.html' >Google Analytics - Migration vers analytics.js. Automatisation des événements avec les attributs rel et data</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Migration automatisée d’un site Web (HTML, PHP, CSS, JS...) de l’encodage ISO-8859-1 vers l’Unicode UTF-8 avec Python 3</title>
        <link>https://www.sqlpac.com/news/347</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/347</guid>
        <pubDate>Thu, 22 Sep 2016 03:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-python.png' /><br /><br />
 Un site Web en entier (fichiers html, php, css, javascript…) à migrer de l’encodage Latin 1 /  ISO-8859-1 vers l’Unicode UTF-8 car au fil de l’évolution des technologies (PHP 5.4 et versions supérieures, services de partage AddThis…), des incompatibilités surgissent.<br />
<br />
Mais comment automatiser celle-ci quand plus de 500 fichiers sont concernés ?<br />
<br />
Le langage Python et son package io sont capables en quelques lignes d’automatiser la migration d’un site en entier vers UTF-8, programme python qui est proposé dans cet article. Le package chardet de Python est bien capable de détecter les encodages de fichiers toutefois il est plus fiable d’utiliser la commande file et de donner ses résultats au programme Python en charge de la migration. Dans un environnement Windows de développement, aucun souci pour utiliser la commande file, la plateforme légère MinGW (Minimalist GNU for Windows) propose tous les utilitaires indispensables dont l’utilitaire file.<br />
<br />
Après la migration des fichiers, quelques opérations post migration sont nécessaires, comme le remplacement dans les balises meta des pages HTML de l’encodage ISO-8859-1 par UTF-8, ce qui peut être également automatisé par un script shell sous MingW. La modification de l’encodage vers UTF-8 doit éventuellement être réalisée au niveau global pour PHP et les connexions aux bases de données (MySQL dans ce cas pratique).<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/conception-migration-latin1-iso-8859-1-unicode-utf-8-html-php-avec-python-chardet.html' >Migration automatisée d’un site Web (HTML, PHP, CSS, JS…) de l’encodage ISO-8859-1 vers l’Unicode UTF-8 avec Python 3</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Distribution de données inter domaines avec JSONP, cas pratiques (AddThis&amp;hellip;)</title>
        <link>https://www.sqlpac.com/news/346</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/346</guid>
        <pubDate>Wed, 21 Sep 2016 02:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-json.png' /><br /><br />
 Interroger et manipuler des données JSON avec Javascript et XMLHttpRequest est facile et séduisant. <br />
<br />
Lorsqu’il s’agit de requêtes de données au format JSON dans un contexte inter domaines (cross domains), la méthode est bien différente : JSONP (JSON Padding) doit être utilisé. Les données JSON sont chargées comme s’il s'agissait d’un script Javascript, l’adresse URL doit simplement contenir le paramètre callback indiquant la fonction de rappel lorsque les données sont reçues. <br />
<br />
Voici un cas pratique avec la récupération au format JSON de la liste des articles tendance (trending content) depuis le service AddThis.com.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/conception-jsonp-json-inter-domaines-addthis-trending-content.html' >Distribution de données inter domaines avec JSONP, cas pratiques (AddThis…)</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Automatiser l’ouverture des liens hypertextes dans un nouvel onglet avec Javascript et l’attribut rel external</title>
        <link>https://www.sqlpac.com/news/345</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/345</guid>
        <pubDate>Tue, 20 Sep 2016 19:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-javascript.png' /><br /><br />
 Un exemple hypra basique avec une fonction appelée rebuild_href pour industrialiser l’ouverture de liens hypertextes externes dans un nouvel onglet grâce à Javascript et l’attribut natif <code>rel="external"</code>.<br />
<br />
Plus aucun lien hypertexte ne pourra désormais échapper à la règle.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/conception-html-js-liens-hypertextes-rel-external-automatisation.html' >Automatiser l’ouverture des liens hypertextes dans un nouvel onglet avec Javascript et l’attribut rel external</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Fonction générique de chargement de données JSON avec Javascript. Gestion du cache du client et du mode synchrone et asynchrone</title>
        <link>https://www.sqlpac.com/news/344</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/344</guid>
        <pubDate>Mon, 19 Sep 2016 05:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-json.png' /><br /><br />
 La lourdeur du langage XML n’a pas toujours convaincu (syntaxes et méthodes), en revanche essayer JSON (JavaScript Object Notation), c’est l’adopter. Les données d’un fichier JSON sont facilement lisibles et modifiables que ce soit humainement ou par des API (PHP, Python…).<br />
<br />
Une fonction générique en Javascript pour charger les données des fichiers JSON, wsys_load_json, est proposée ici. La problématique du cache des navigateurs pour les fichiers JSON est abordée avec 2 solutions : le module mod_expires d’Apache ou l’application d’une empreinte dans l’adresse URL du fichier JSON. <br />
<br />
Il est important aussi de prêter attention à l’exécution synchrone ou asynchrone du chargement des données JSON afin d’éviter certains pièges dans les développements. Un cas concret illustre ce sujet.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/conception-json-fonction-generique-js-synchrone-asynchrone.html' >Fonction générique de chargement de données JSON avec Javascript. Gestion du cache du client et du mode synchrone et asynchrone</a>
        ]]>
         </description>
      </item>
      <item>
        <title>Développer une fonction générique de chargement dynamique de librairies Javascript (callback, attributs..)</title>
        <link>https://www.sqlpac.com/news/343</link>
        <guid isPermaLink="true">https://www.sqlpac.com/news/343</guid>
        <pubDate>Fri, 16 Sep 2016 00:00:00 +0200</pubDate>
        <description>
        <![CDATA[
          <img src='https://www.sqlpac.com/images/user/thumbnail-javascript.png' /><br /><br />
 Le sujet n’est pas nouveau, et encore moins révolutionnaire : pour simplifier l’ajout dynamique de librairies javascript (Google +1, MathJax, HighlightJS…) avec des options très diverses pour chacune d’elles (attributs id async defer, fonctions de rappel ou fonctions callback, nœud texte…), une fonction générique en pur Javascript (sans jQuery) peut tout prendre en charge.<br />
<br />
En voici une, wsys_load_js, elle est loin d’être parfaite et ne respecte peut être pas l’excellence du codage en Javascript mais si ça peut aider, alors l’objectif est atteint.<br />
<br />
Internet Explorer 8 et ses incompatibilités avec les standards Javascript (addEventListener, appendChild d’un nœud texte sur un objet script) est encore supporté dans la fonction proposée car étrangement, malgré la fin de Windows XP, 5% des visiteurs sur ce site utilisent encore cette version en septembre 2016. En juin 2017, le support d’IE 8 devrait être retiré.<br />
    <br /><a href='https://www.sqlpac.com/referentiel/docs/conception-js-fonction-generique-chargement-dynamique-javascript-callback.html' >Développer une fonction générique de chargement dynamique de librairies Javascript (callback, attributs..)</a>
        ]]>
         </description>
      </item>
  </channel>
 </rss>
