Recherche sur le blog

mardi 17 avril 2018

[Windows 10] Où est la mise à jour ?

Alors que de nombreux médias sur internet prévoyaient une sortie de la mise à jour de Windows 10 pour le 10 avril, Microsoft avait finalement décidé de repousser la date... sans donner plus d'indications. Les rumeurs pointaient du doigt un très gros bug.

C'est hier que l'on apprend par l'intermédiaire de Dona Sarkar, que des problèmes de fiabilité avaient été détectés sur la build 17133 supposée être la version disponible sur Windows Update. Problèmes pouvant mener à un haut pourcentage d'écrans bleus. Pas top !
As Build 17133 progressed through the rings, we discovered some reliability issues we wanted to fix. In certain cases, these reliability issues could have led to a higher percentage of (BSOD) on PCs for example. Instead of creating a Cumulative Update package to service these issues, we decided to create a new build with the fixes included.


C'est donc une nouvelle version qui a vu le jour pour les Windows Insiders (nommée Preview Build 17134). Celle-ci reprend donc de nombreux correctifs comme cela est expliqué ci-dessus en anglais. Elle nécessitera sans doute d'un contrôle qualité supplémentaire avant d'arriver sur nos machines. 

Sources

mardi 10 avril 2018

[JS] JQuery - Mémo #2 - Requête AJAX

JQuery vous permet d'effectuer facilement des requêtes AJAX. Par exemple :
$.ajax({
 type : "POST",
 url : "URL_A_APPELER",
 data : {
  param1: val_param1,
  param2: val_param2,
  // ...
 }
})
.done(function(data)
{

})
.fail(function(jqXHR, responseHtml, url)
{

});
Dans l'exemple on spécifie le type de requête, l'URL appelée, et les données envoyées. La fonction done() est exécutée lorsque la réponse est positive. L'objet "data" est alors un objet qui peut contenir du HTML notamment. La fonction fail() est exécutée quand la réponse du serveur est une erreur ou quand l'appel a échoué.

Dans JQuery 3, il ne faut plus utiliser les méthodes callback suivantes : error(), success() et complete().

La documentation officielle décrit les paramètres supplémentaires et l'utilisation des méthodes callback. Par exemple, on peut passer un objet dans "data" à la place des différents paramètres. Au niveau des options, on peut notamment spécifier async: false, pour forcer l'attente de la réponse. Les possibilités sont nombreuses.

[Utilitaires] Scoop

Scoop est un utilitaire qui s'exécute en ligne de commande via Windows Powershell et fait penser à apt-get dans son fonctionnement. Il permet en fait d'installer pour l'utilisateur en cours des applications - principalement pour le développement - sans demander d'élévation des privilèges, et sans se soucier de l'architecture de la machine, tout ça sans passer par un navigateur web. L'utilitaire télécharge lui-même le nécessaire et stocke ensuite les fichiers dans le dossier de l'utilisateur. On trouve principalement des outils de développement.

Pour fonctionner, il faut s'assurer d'avoir installé Powershell 3.0, en téléchargeant les mises à jour nécessaires ici pour votre système d'exploitation. Une fois que cela est fait, il faut alors ouvrir Powershell et exécuter la commande suivante : 
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
(si l'installation ne fonctionne pas et qu'un message d'erreur s'affiche indiquant que l'exécution de scripts est désactivée, saisissez d'abord la commande suivante : Set-ExecutionPolicy RemoteSigned -scope CurrentUser).

Une fois l'outil installé, vous pouvez par exemple saisir la commande "scoop help" pour obtenir plus d'informations quant aux différents arguments utilisables.


Par exemple :
  • scoop install NOM_APP : permet l'installation d'une application
  • scoop uninstall NOM_APP : désinstalle une application déjà installée.
Par défaut, Scoop utilise la liste d'applications disponible en suivant ce lien et extrait celles-ci dans le dossier C:\Users\NOM_USER\scoop\apps.

Il est évidemment possible d'utiliser d'autres sources, appelées "buckets". Par exemple, le bucket extras propose davantage d'utilitaires Windows tels que Autoruns, CPU-Z, Notepad++, Handbrake, etc.

 

Pour qu'il soit pris en compte lors de la recherche et l'installation d'une application, il faut exécuter la commande suivante :
scoop bucket add extras
Pour en savoir plus, on retrouve sur Github la documentation officielle.

Site officel

Scoop.sh

vendredi 16 mars 2018

[Windows 10] Firmware Intel contre Spectre

Depuis le début du mois de mars Intel collabore avec Microsoft pour délivrer aux utilisateurs de Windows 10 (version 1709) les mises à jour du firmware de ses processeurs qui sont touchés par la fameuse faille Spectre. Déployée au démarrage du système, cela permet aux possesseurs de plus anciennes machines de se protéger au maximum alors qu'ils ne bénéficient pas forcément d'un BIOS mis à jour.


Il y a deux jours le patch a donc été mis à jour pour couvrir les processeurs des gammes Kaby Lake et Coffee Lake, en plus de Skylake. Il s'agit de la mise à jour KB4090007. Le tableau présent sur cette page liste les versions existantes de cette mise à jour, et précise quels sont les CPU concernés à chaque fois. La colonne CPUID vous permettra d'identifier si le votre peut recevoir le correctif.


Téléchargez l'outil InSpectre créé par Gibson Research Corporation, sur la page ici. Ce petit logiciel, ne nécessitant aucune installation, vous indique si votre ordinateur est protégé contre Spectre et Meltdown. Il vous permet également de désactiver les protections pour chacune, si vous rencontrez des problèmes de performances. Et nouveauté de la dernière version : elle indique le CPUID, soit le code qui identifie votre processeur, et qui doit correspondre à un élément dans le tableau sur la page Microsoft du correctif.

Localisez la bonne version du correctif lié au CPUID du processeur, puis rendez-vous sur le catalogue Microsoft Update pour récupérer le patch. Une fois téléchargé, exécutez-le. L'installation ne prend que quelques secondes et vous invite à redémarrer une fois terminée. Au redémarrage, il faudra exécuter l'outil InSpectre en mode administrateur, et activer la protection pour Spectre.

A noter que pour les anciennes versions de Windows, des patches logiciels sont déployés mais ne protègent pas complètement des attaques. Certains bidouilleurs passent alors par des solutions alternatives en moddant le BIOS pour injecter le firmware quand le constructeur de la carte mère ne fournit plus de support logiciel.


Pendant ce temps, Intel améliore le design de ses puces afin d'y intégrer une protection matérielle, et continuerait de mettre en production les firmwares pour les plus anciennes gammes, d'après le bout de document ci-dessus. Espérons que Microsoft continue à les déployer via Microsoft Update...

samedi 10 mars 2018

[Utilitaires] Greenshot

Greenshot est un logiciel de petite taille qui vous permet de réaliser des captures d'écran de manière simple. Il offre différents outils pour les modifier, les annoter, et les exporter. Grâce à différents plugins, il est directement possible d'envoyer un e-mail avec l'image jointe, ou même d'uploader la capture vers différents services tels que Dropbox, Imgur, mais aussi JIRA ou Confluence (Atlassian).

Le logiciel peut être démarré sur demande, ou à l'ouverture de la session. Lorsqu'on appuie sur l'une des combinaisons de touches définies dans les préférences, on peut alors capturer l'entièreté de l'écran, une zone particulière, voire la fenêtre active. Après la capture, un menu contextuel s'affiche et vous demande que faire de l'image: exporter vers Word, vers le presse-papiers, vers un emplacement particulier, envoyer par courriel, ou uploader vers un service particulier (en fonction des plugins installés).


Parmi les propositions, il y a également l'éditeur d'image intégré. Vous pourrez alors rajouter des encadrés, des flèches et d'autres formes à votre image. Idéal pour alimenter une documentation en cours de rédaction. Si le curseur de la souris a été capturé, il peut également être déplacé. L'image peut ensuite être exportée via le menu Fichier. On y retrouve les mêmes propositions que dans le menu contextuel.


Difficile de revenir à l'outil de capture d'écran natif à Windows quand on a essayé Greenshot. Disponible gratuitement en Open Source, on le retrouve également sur Mac au prix de 1,99$. Pour l'obtenir, suivez simplement le lien ci-dessous.

Téléchargement : getgreenshot.org

jeudi 8 février 2018

[Utilitaires] Mouse without Borders

Microsoft Garage, c'est un peu le petit laboratoire - pas très secret - dans lequel les employés de la firme peuvent proposer différents projets qui n'ont pas forcément de lien avec leur poste au sein de l'entreprise. On y retrouve donc des petits programmes sympathiques, et c'est notamment le cas de Mouse without Borders.


Ce petit logiciel bien pratique permet, avec une seule souris, passer d'un écran à un autre sur des PC différents. Les opérations plutôt basiques comme le drag & drop de fichiers ou le copier/coller de texte d'un ordinateur à un autre sont évidemment prises en charge.

Pour lier les ordinateurs, il faut donc installer le logiciel sur chaque machine. Il génère alors une clé, qui devra être ré-utilisée sur chaque PC que l'on veut contrôler. L'utilisateur peut gérer l'ordre des écrans dans l'interface afin de respecter l'ordre des écrans sur son bureau. Une fois que tout cela est configuré, c'est comme si l'on avait du multi-écrans... mais avec des ordinateurs pourtant différents.

Petite mise en situation :
  • Un développeur dispose de son PC (machine 1) avec deux écrans pour son travail journalier. Les écrans A et B sont disposés l'un à côté de l'autre, de gauche à droite, A étant le principal.
  • On lui a rajouté un PC de monitoring (machine 2), avec son écran C. Tout à fait indépendant donc. Aucune souris raccordée à celui-ci, bien sûr.
  • Le logiciel est alors installé sur la machine 1 ainsi que sur la 2. La clé (ABCDEF123 par exemple) doit être indiquée sur chacune des machines.
  • Dans l'onglet "Machine setup" du petit utilitaire, il faut organiser les éléments pour respecter l'ordre physique (d'affichage).
  • Il est alors possible de déplacer le curseur de l'écran A à B, puis C, en utilisant la souris de la machine 1.
  • La machine 1 peut être verrouillée, le curseur de la souris peut toujours être déplacé sur la machine 2.
Pour télécharger le logiciel, suivez ce lien.

mercredi 13 décembre 2017

[JS] Des infobulles avec Tooltipster 4

Tooltipster est un script permettant d'afficher des infobulles modernes, bien plus "user-friendly" que ce que proposent les navigateurs. Il nécessite JQuery pour fonctionner (attention que sous IE9 avec JQuery version 1.8, cela ne fonctionnera tout simplement pas!)

Pour le télécharger, rendez-vous sur le site officiel (ici : http://iamceege.github.io/tooltipster/) et cliquez sur le bouton "Download". Le sous-répertoire "dist" contient deux dossiers essentiels : 
  • js : contient le script (format normal et format minified)
  • css : contient les feuilles de style (format normal et format minified) ainsi que les thèmes par défaut.
Il faudra ensuite l'inclure à la page :
<link rel="stylesheet" 
  type="text/css" 
  href="/tooltipster/css/tooltipster.bundle.css" />
<script type="text/javascript"
  src="/tooltipster/js/tooltipster.bundle.js"></script>
<script type="text/javascript" 
 src="http://code.jquery.com/jquery-x.xx.x.min.js"></script>
Après chargement du script, dans notre page nous allons placer des attributs "title" sur les éléments pour lesquels on veut avoir une infobulle. On va aussi leur assigner une classe, "tooltip", mais on peut choisir un autre nom.
<img id="imgTest" src="test.jpg" class="tooltip"
   title="Le texte du tooltip" />
Lors du chargement de la page on doit initialiser les bulles.
    
<script>
     $(document).ready(function() {
          $('.tooltip').tooltipster();
     });
</script>
Par défaut la fonction tooltipster() ne reçoit aucun paramètre. Elle utilisera donc les options par défaut définies dans le fichier .js du script.


On peut notamment définir :
  • contentAsHTML : par défaut à false. Il est conseillé de stocker un objet JQuery dans le contenu. Sinon on peut passer la valeur à true et passer du texte au format HTML en appelant la méthode tooltipster().
  • delay : en millisecondes, délai après ouverture. On peut spécifier un tableau (par ex : [100, 2000]) ce qui correspondra alors au temps avant ouverture et au délai avant fermeture automatique).
  • position : attention aussi à la position ; seules 4 sont supportées (top, left, right et bottom). Dans les anciennes versions il existait plusieurs combinaisons mais cela a été supprimé.
  • theme : on peut définir un ou plusieurs thèmes à charger. Il faudra penser à charger les CSS quand cela s'applique. 
 Exemple de feuille de style dans le dossier "css\plugins\sideTip\themes" :


On peut aussi appeler la méthode tooltipster() en lui passant des options. Utile quand l'élément pour lequel on veut spécifier du texte, n'en a pas à la base.
    
 $(SELECTOR).tooltipster({ 
    content: 'texte à placer', 
    maxWidth: 200
 });
Parmi les options que l'on peut spécifier il y a également divers événements, ce qui permet par exemple d'afficher un contenu récupéré grâce à une requête AJAX.
$(SELECTOR).tooltipster({  
 delay: [200, 2000], 
 content: 'Chargement...', 
 functionBefore: function(instance, helper) 
 {
  if ($(helper.origin).data('ajax') !== 'loaded') 
  { 
   $.ajax({
    type: 'POST', 
    url: 'action.php?param=', 
    success: function(data) 
    { 
     instance.content(data); 
     $(helper.origin).data('ajax', 'loaded');
    }
   });
  }
 }
}); 
Ce qu'on a fait :
  • Appel de la fonction tooltipster().
  • On passe les différents arguments ; tout d'abord le délai (delay).
  • Ensuite on spécifie le contenu par défaut à afficher pendant l'appel AJAX (content). 
  • Enfin on ajoute "functionBefore" : elle reçoit deux paramètres (instance et helper). 
    • helper.origin : élément HTML sur lequel on définit le tooltip.
    • instance : objet Tooltipster qui appelle la fonction de callback
    • La condition permet de savoir si l'élément a déjà été chargé ou pas (car on définit une donnée nommée "ajax" avec la valeur "loaded" une fois l'appel effectué).
Si un tooltip est déjà chargé, on peut effectuer diverses manipulations comme changer son contenu ou même le désactiver. On appelle la fonction tooltipster() avec comme premier argument, un nom de méthode (voir documentation). Les arguments suivants dépendent de la méthode appelée.

Exemple :
$(SELECTOR).tooltipster('content', 'nouveau contenu');  
A noter que toute la documentation est disponible à l'adresse mentionnée au début de cet article.

lundi 11 décembre 2017

[Hardware] Guide d'hiver 2017 des acheteurs

Comme chaque année le site Guru3D publie le Buyers Guide Winter. Il s'agit d'un article visant à aiguiller les potentiels acheteurs de matériel en cette fin d'année, en recommandant l'un ou l'autre périphérique. Les éléments externes tels que les souris, les écrans et les claviers ne sont pas repris. L'introduction prend la peine d'expliquer le jargon utilisé mais surtout détaille les différentes configurations mises en avant, les deux dernières étant axées vers les performances.


De l'Intel Pentium G45xx/G46xx à l'Intel Core i7 8700K, de la GTX 1050 à la surpuissante Nvidia GTX 1080 Ti, quel gamer serez-vous ? Un peu de mémoire, beaucoup d'espace de stockage, ou tout simplement le strict minimum... Tout est possible!

lundi 4 décembre 2017

[JS] Personnaliser la liste de styles dans tinyMCE

Dans tinyMCE, lorsqu'on choisit de dérouler le menu de sélection du format, on dispose d'éléments par défaut comme les en-têtes (h1 à h6), l'alignement ou bien même la mise en forme classique comme le "gras", "souligné" ou "italique".


Ce menu peut être personnalisé de différentes manières. La méthode la plus simple reste de redéfinir les styles dans la méthode d'initialisation de l'éditeur. Dans notre cas cela écrasera les valeurs par défaut pour n'afficher que ce qu'on désire. 
tinymce.init(
{
 ...
 toolbar : [ "bold italic underline | styleselect" ]
 style_formats: [
  {title: 'Blocks', items: [
     {title: 'Paragraph', block: 'p'}
  ]},  
  {title: 'Headers', items: [
     {title: 'Header 1', block: 'h1'},
     {title: 'Header 2', block: 'h2'},
     {title: 'Header 3', block: 'h3'},
     {title: 'Header 4', block: 'h4'},
     {title: 'Header 5', block: 'h5'},
     {title: 'Header 6', block: 'h6'}
  ]},     
 ],
 
 ...
});
Le fait de modifier le contenu de "style_formats" affecte la liste déroulante qui s'affiche quand on ajoute l'option "styleselect" dans la barre d'outils (cfr. paramètre "toolbar"). Vous constaterez également qu'il est possible de créer plusieurs niveaux (ce qui permet visuellement d'obtenir des sous-menus).

Le paramètre "title" est évidemment essentiel. On y met le texte qui sera affiché à l'utilisateur. Il sera automatiquement traduit en fonction de la langue choisie dans la configuration. Les fichiers de langue sont stockés dans un sous-dossier du répertoire de tinyMCE.

Les autres paramètres qu'on peut définir sont :
  • inline : indique le nom de balise inline qui sera utilisé comme conteneur.
  • block : indique le type de balise block qui sera utilisé comme conteneur.
  • selector : indique à quel élément cela peut s'appliquer.
  • classes : indique les classes à associer au résultat.
  • styles : pour générer du CSS pour l'élément
Des exemples sont disponibles dans la documentation officielle.

A lire aussi : content formatting

lundi 27 novembre 2017

[Sécurité] Quel site fabrique de la crypto-monnaie?

Il y a peu j'avais pu constater que certains sites (notamment des sites proposant du téléchargement illégal) utilisaient le moteur JavaScript du navigateur pour miner de la crypto-monnaie. C'est une pratique qui semble devenir... monnaie courante - pardon pour le jeu de mots - afin de générer des revenus. Cela vise à remplacer les bannières publicitaires. Le minage n'est pas toujours avantageux puisqu'il peut utiliser pas mal de ressources CPU de votre machine. Korben met en avant un site web intéressant pour vérifier où ce principe est appliqué. Il s'agit de Whoismining?


Saisissez l'adresse du site internet à vérifier et cliquez sur "Check". Le résultat indique la méthode de fabrication, en analysant le script utilisé (ex : jsecoin, coinhive.com, etc). Vous pourrez donc savoir quels sont les coquins qui font craquer votre machine. Si vous êtes totalement contre cette pratique il n'est pas inutile d'employer des extensions comme Noscript. Cela bloquera l'exécution de ces scripts et donc, votre ordinateur restera tranquille !

Edition du 4 décembre 2017 : il semblerait que certains scripts ouvrent une fenêtre de votre navigateur en arrière-plan en positionnant celle-ci derrière la barre de tâches. Si la transparence est activée, vous pouvez facilement la repérer.

Sources

Korben