NODE.JS

Très bon article  pour débuter

installation Debian

apt-get install nodejs 

update-alternatives –install /usr/bin/node nodejs /usr/bin/nodejs 100   –> maintenant nodejs ET node   utilisables

curl https://www.npmjs.com/install.sh | sh --> installation de npm pour les bibliothèques

utilisation : node monscript.js

node -v et npm -v pour controler

Programmation outils

notepad Notepad++  Windows uniquement, Linux avec Wine  free
Winscp  client FTP SFTP avec un cache très performant, s’utilise avec Putty et Notepad++  free
putty-05-535x535 Putty     LE client SSH  fonctionne seul ou avec Winscp  free

Navicat    Gestion des bases de données  produit très cher… mais le prix est justifié
MySQL Workbench Comme Navicat mais plutôt free<§td>
phpMyAdmin  gestion des Bases MySQL en PHP Très pratique, mais rien avoir avec Navicat.  Nombreuses attaques. Le mieux est de ne l’activer que lorsque que l’on en a besoin.
visuel_studio_code VS Code  Editeur gratuit de Microsoft pour PHP, Javascript, HTML, CSS … vraiment pas mal Windows, Linux, Mac 

Javascript boucles

// for ( initialisation variables ; condition à tester ; à exécuter à chaque passage
// on peut omettre une section, mais il faut les ; 
for (i = 0, len = cars.length, text = ""; i < len; i++) {
    text += cars[i] + "<br>";
}
// on peut omettre une section, mais il faut les ; 
// ex 
var i=0;
for (; i < len; ) { i++;}

//**************************************************
// for sur les propriétés d'un objet ou d'un array
var obj = {a:1, b:2, c:3};
    
for (var prop in obj) {
  console.log("obj." + prop + " = " + obj[prop]);
}

// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"

// attention aucune garanties sur l'ordre, notamment d'un navigateur à l'autre

//**********************************************
while (i < 10) {
    text += "The number is " + i;
    i++;
}

//**********************************************
myArray.forEach(function(item, index) {
    console.log(item, index);
});

Access internet Guadeloupe

http://www.speedtest.net

Comparatif de deux lignes même et unique PC, même heure, dans la journée, puis le soir.

A Numéricable « la fibre »  30 Mb  qui est en fait du câble coaxial

B Orange ADSL 20 Mb 

  ping Descendant Montant
Guadeloupe-Guadeloupe      
Numéricable / SFR  106 ms / 145
 2.92 mb / 1.17 le soir
 0.92 mb / 0.94
Orange  122 ms / 18 ms
 7.01 mb / 6.98 le soir
 0.80 mb / 0.84
Guadeloupe-USA      
Numéricable /SFR  111 ms / 112
 2.08 ms / 1.37 le soir
 0.91 mb / 0.90
Orange  101 ms / 110
 7,11 Mb / 6.58 le soir
 0.82 Mb / 0.86
 Guadeloupe-Europe      
Numéricable / SFR  124 Ms / 153
 2.36 Mb / 1.20 le soir
 0.92 Mb / 0.93
Orange  140 Ms / 133
 5.98 Mb / 6.82 le soir
 0.82 Mb / 0.73

A la ligne est vendue pour du 30 Mb en réalité c’est du 3 mb Le débit pour joindre des sites hors Guadeloupe reste à 3Mb, contrairement à Mediaserv qui ne dispose pas d’assez de bande passante pour servir tous ces clients. Le soir par contre c’est limite utilisable, ne comptez regarder un film en streaming. Ce qui est étonnant, c’est la stabilité du ping malgré la baisse de débit. Reste utilisable en SSH mais plusen RDP

B La ligne 20M n’en fait que 8, ce qui globalement est deux à trois fois mieux que Numéricable, l’accès au reste du monde est très correct. Cette ligne est régulièrement en panne, coupure, micro-coupure… comme souvent pour L’ADSL mal entretenu en climat tropical

J’ai fait d’autres mesures comme la gigue qui est plus critique que le débit en utilisation pro. Numéricable et Orange donnent des résultats similaires tout à fait acceptables.

Numéricable ne livre pas ce qui est vendu (débit / 10, cuivre au lieu de fibre) mais le résultat reste tout à fait convainquant pour une utilisation en entreprise. Voire un poil mieux pour le ping et la gigue. Le câble coaxial utilisé (rien à voir avec la fibre optique annoncée) est moins sensible à l’humidité. Comme le réseau est plus récent, la maintenance est plus simple.

L’infrastructure Orange est nettement un cran au dessus. Malheureusement « le dernier kilomètre » est en très mauvais état. Avoir un internet performant ne sert à rien s’il est coupé régulièrement.  Pour ceux dont la ligne téléphonique cuivre est en bon état, Orange est la meilleure solution. Mais le réseau vieillissant et les interventions bâclées n’arrangent rien. Une petite réorganisation du service technique Orange pourrait changer la donne.

Javascript table

Article

var arrayLignes = document.getElementById("monTableau").rows;
var longueur = arrayLignes.length;
var i=2 // 2eme ligne
var arrayColonnes = arrayLignes[i].cells;
var j=3;
var cellule=arrayColonnes[j];
cellule.style.backgroundColor = "red";  // change la couleur de la 3eme celulle de la 2eme ligne

rowIndex
sectionRowIndex
// numéro de ligne 0 en bas nbligne-1 en haut

var nouvelleLigne = document.getElementById("monBody").insertRow(-1); // insère une ligne en bas du tableau

// clique sur une cellule récupère le col_num et row_num et modifie le contenu
$(document).ready(function(){
    $("#client_table td").click(function() {     
 
        var col_num = parseInt( $(this).index() ) ;
        var row_num = parseInt( $(this).parent().index() + 1);    
 
        $("#result").html( "Row_num =" + row_num + "  ,  Rolumn_num ="+ col_num );   
		
		document.getElementById("client_table").rows[row_num].cells[col_num].innerHTML='yyyy';
    });
});

Javascript sélection modification de contenu

Sélectionner un objet

<div id="message" class="maclass"&amp;gt; contenu du div</div>
var monobjet= document.getElementById('message');
var monobjet= document.getElementByClassName('maclass');
var monobjet= document.querySelector('message');
var monobjet= $('#message');  // jquery
var monobjet= $('.maclass');  // jquery

var myElements = document.querySelectorAll(".bar"); // plusieurs

monobjet.innerHTML='test123'; 
document.getElementById('message').innerHTML='test123'; 
$('#message').html('test123');
$(monobjet).html('test123');

insertAdjacentHTML()  inserre un contenu, avant ou après, dans un DIV par exemple

<script>
  var log = document.getElementById('message');
  message.insertAdjacentHTML('beforeend',   'message ajouté à la fin du contenu');
  message.insertAdjacentHTML('afterBegin',  'message ajouté au début du contenu');
  message.insertAdjacentHTML('beforeBegin', 'message ajouté avant le DIV (ou objet)');
  message.insertAdjacentHTML('afterEnd',    'message ajouté après le DIV (ou objet)');
</script>

infos ICI

querySelector innerHTML et textContent

document.querySelector('#message').innerHTML='test123';
document.querySelector('#message').textContent='test123';
// en jquery
$('#monchamps').html('32132');
$('#monchamps').text('32132');
$('#monchamps').append('32132'); // pour ajouter