Archives de catégorie : Astuces

Comment ouvrir un fichier JSON avec Excel ou Power BI ?

Le format JavaScript Object Notation est très fréquemment utilisé sur internet. Par exemple, pour les échanges d’information entres serveurs ou avec votre navigateur.

Cependant si vous souhaitez ouvrir des fichiers JSON avec Excel pour les exploiter comme des tableurs classiques, suivez ces quelques étapes.

Si vous utilisez PowerBI, vous pouvez directement passer à l’étape 3.

Si vous n’avez pas de fichier JSON, vous pouvez utilisez ce json que j’ai utilisé dans mon exemple ci-après

[{« colA »:1, »colB »: »abc », »colC »: »def »},{« colA »:2, »colB »: »abc », »colC »: »def »},{« colA »:3, »colB »: »abc », »colC »: »def »},{« colA »:4, »colB »: »abc », »colC »: »def »},{« colA »:5, »colB »: »abc », »colC »: »def »},{« colA »:6, »colB »: »abc », »colC »: »def »},{« colA »:7, »colB »: »abc », »colC »: »def »},{« colA »:8, »colB »: »abc », »colC »: »def »},{« colA »:9, »colB »: »abc », »colC »: »def »}]

Excel

  1. Pour commencer, ouvrez un nouveau classeur Excel

2. Cliquez ensuite sur l’onglet Données puis Obtenir des données -> A partir d’un fichier fichier et enfin selectionés JSON.

3. Une fenêtre Power Query s’ouvre alors avec une description très succincte du fichier. Comme vous pouvez le voir seule une colonne est présente au lieu de 3.

4. Pour voir les autres cliquez sur l’un des numéros de ligne pour avoir le détail de la ligne. Si vous cliquez sur Record, vous pouvez revenir en arrière avec les étapes appliquées dans la colonne de Droite. Supprimez simplement l’élément Navigation pour revenir à l’écran précédent.

Pour transformer ces données en fichier Excel, cliquez sur « Vers la table » juste en dessous de Fichier

5. Dans la fenêtre qui s’affiche, laissez les valeurs telles quelles en cliquant sur OK.

6. Cliquez ensuite sur le bouton entouré en noir dans la capture ci-dessus qui va permettre de convertir chaque objet en colonne.

7. Sélectionnez alors les colonnes que vous souhaitez convertir puis cliquez sur OK

8. Nous arrivons à la dernière étape, cliquez sur « Fermer et charger » pour que les données reviennent dans votre classeur d’origine.

Il ne vous reste plus qu’à renommer les colonnes pour que votre fichier soit prêt à être utilisé.

Connaissez-vous l’Assistance rapide de Windows 10 ? Une alternative gratuite à TeamViewer

En ces temps de confinement, lié au Coronavirus, le recours au télétravail impose également des contraintes de dépannages à distances.

Sur le marché des solutions de prises de main à distance ou téléassistance tout le monde connait le leader TeamViewer qui est utilisable sans frais pour un usage personnel mais payant pour un usage professionnel.

Mais saviez-vous que Windows 10 intègre un logiciel d’assistance utilisable gratuitement par internet ?

Ce dernier s’appel Assistance rapide et ne nécessite qu’un compte Microsoft.

Comment ça marche ?

Pour l’ouvrir tapez simplement dans la barre de recherche Assistance rapide

Recherche de l’assistance rapide Windows 10

Une fois lancée l’application propose deux modes de fonctionnement

Le premier (Obtenir de l’aide) est à utiliser par la personne à dépanner, il faut qu’elle entre un code à six chiffres qui est fourni en utilisant la seconde option, Aider un autre utilisateur.

Pour offrir de l’aide à un autre utilisateur vous devrez tout d’abord vous connecter à votre compte Microsoft.

Ensuite il ne vous reste plus qu’à communiquer le code à usage unique qui n’est valable que 10 minutes.

La personne distante n’a plus qu’à entrer ce code et accepter la connexion pour pouvoir prendre la main sur l’ordinateur ou simplement visualiser l’écran

Une fois le contrôle pris vous pourrez :

  • Sélectionner l’écran que vous voulez dans le cas des ordinateurs avec plusieurs écrans
  • Chattez avec la personne sur l’ordinateur distant
  • Redémarrer l’ordinateur
  • Ouvrir le gestionnaire des taches
  • Annoter l’écran

Cette assistance rapide ne fonctionne qu’à partir de Windows 10 et sur les systèmes Microsoft. Si vous devez prendre le contrôle de système Linux, Mac etc il vous faudra vous tourner sur les solutions traditionnelles telles que TeamViewer, Logmein etc.

Astuce – Comment augmenter la limitation du nombre de caractères dans le chemin d’accès des fichiers/dossiers sur Windows 10 ?

Sur tous les systèmes d’exploitation Microsoft, une limite est appliquée au nombre de caractères autorisés pour l’emplacement d’un fichier ou d’un dossier. Cette limite par de la racine du lecteur, et prend en compte les noms de dossiers espaces compris jusqu’au fichier avec l’extension.

Peut être avez vous déjà eu le message « Chemin d’accès de destination trop long » comme quoi « Le ou les noms de fichiers sont trop longs pour le dossier de destination » ou comme dans la capture ci-dessous « Nom de répertoire non valide« .

Capture à la création

Elle était de 260 caractères jusqu’à maintenant. Depuis la version 1607 de Windows 10 cette limite peut être levée mais ne l’est pas par défaut.

Attention, les manipulations ci-dessous sont à faire dans le registre de Windows et peuvent être risquée si vous ne le maîtrisez pas. Pensez à réaliser des sauvegardes avant d’effectuer toute modification.

La clé à modifier dans le registre se situe dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

Cherchez la valeur LongPathsEnabled et passez la à 1.

Une fois la modification effectuée, fermez et ré-ouvrez l’application ou l’explorateur Windows pour que la modification soit effective.

Comment synchroniser des répertoires FTP avec lftp ?

Lftp est un un programme disponible sous UNIX qui permet de faire des transferts FTP mais également de synchroniser deux répertoires distants.

Prenons l’exemple d’une synchronisation du dossier par défaut d’Apache /var/www/html que l’on voudrait sauvegarder sur un serveur distant dans /var/backups/html

La première étape est de vous connecter à votre serveur distant

lftp
open nom_d_utilisation:mot_de_passe@ip_ou_nom_du_serveur

Si elle n’est pas installée sur votre système vous pouvez l’installer avec yum ou apt par exemple sous Debian:

apt-get update
apt-get install lftp

Une fois connecté vous pouvez lister les fichiers et dossiers présents avec ls pour vérifier que la connexion est correcte.

Pour quitter lftp entrez la commande quit

Maintenant que nous avons vu que la connexion s’effectue comme il faut nous allons nous intéresser à la commande mirror qui va nous permettre de synchroniser deux répertoires.

Elle s’utilise de la façon suivante:

lftp nomdutilisateur:motdepasse@ip -e "mirror  /var/www/html /var/backups/html;quit"

Cette commande s’avère très pratique pour effectuer des sauvegardes mais également pour des migrations de serveurs plutôt que de récupérer en local pour renvoyer ensuite sur une autre serveur vous pouvez faire l’opération bien plus rapidement.

La commande mirror propose une multitude de paramètres comme -e pour supprimer les fichiers qui auraient été supprimés de l’hôte distant, -R pour non pas télécharger des fichiers d’un serveur distant mais la de les envoyer vers un autre FTP on inverse alors la commande.

Voici ci-dessous la liste des paramètres issue du site officiel (http://lftp.yar.ru/lftp-man.html )

              -c,      --continue                 continue a mirror job if possible
              -e,      --delete                   delete files not present at the source
                       --delete-excluded          delete files excluded at the target
                       --delete-first             delete old files before transferring new ones
                       --depth-first              descend into  subdirectories  before  transferring
                                                  files
                       --scan-all-first           scan  all directories recursively before transfer‐
                                                  ring files
              -s,      --allow-suid               set suid/sgid bits according to the source
                       --allow-chown              try to set owner and group on files
                       --ascii                    use ascii mode transfers (implies --ignore-size)
                       --ignore-time              ignore time when deciding whether to download
                       --ignore-size              ignore size when deciding whether to download
                       --only-missing             download only missing files
                       --only-existing            download only files already existing at target
              -n,      --only-newer               download only newer files (-c won't work)
                       --upload-older             upload even files older than the target ones
                       --transfer-all             transfer all files, even seemingly the same at the
                                                  target site
                       --no-empty-dirs            don't    create    empty    directories   (implies
                                                  --depth-first)
              -r,      --no-recursion             don't go to subdirectories
                       --recursion=MODE           go to subdirectories on a condition
                       --no-symlinks              don't create symbolic links
              -p,      --no-perms                 don't set file permissions
                       --no-umask                 don't apply umask to file modes
              -R,      --reverse                  reverse mirror (put files)
              -L,      --dereference              download symbolic links as files
                       --overwrite                overwrite plain files without removing them first
                       --no-overwrite             remove and re-create plain files instead of  over‐
                                                  writing
              -N,      --newer-than=SPEC          download only files newer than specified time
                       --older-than=SPEC          download only files older than specified time
                       --size-range=RANGE         download only files with size in specified range
              -P,      --parallel[=N]             download N files in parallel
                       --use-pget[-n=N]           use pget to transfer every single file
                       --on-change=CMD            execute the command if anything has been changed
                       --loop                     repeat mirror until no changes found
              -i RX,   --include=RX               include matching files
              -x RX,   --exclude=RX               exclude matching files
              -I GP,   --include-glob=GP          include matching files
              -X GP,   --exclude-glob=GP          exclude matching files
                       --include-rx-from=FILE
                       --exclude-rx-from=FILE
                       --include-glob-from=FILE
                       --exclude-glob-from=FILE   load  include/exclude  patterns from the file, one
                                                  per line
              -f FILE, --file=FILE                mirror  a  single  file  or  globbed  group  (e.g.
                                                  /path/to/*.txt)
              -F DIR,  --directory=DIR            mirror  a  single directory or globbed group (e.g.
                                                  /path/to/dir*)
              -O DIR,  --target-directory=DIR     target base path or URL
              -v,      --verbose[=level]          verbose operation
                       --log=FILE                 write lftp commands being executed to FILE
                       --script=FILE              write lftp commands to  FILE,  but  don't  execute
                                                  them
                       --just-print, --dry-run    same as --script=-
                       --max-errors=N             stop after this number of errors
                       --skip-noaccess            don't try to transfer files with no read access.
                       --use-cache                use cached directory listings
                       --Remove-source-files      remove  source files after transfer (use with cau‐
                                                  tion)
                       --Remove-source-dirs       remove source files and directories after transfer
                                                  (use  with  caution).   Top level directory is not
                                                  removed if it's name ends with a slash.
                       --Move                     same as --Remove-source-dirs
              -a                                  same as --allow-chown --allow-suid --no-umask

Comment faire un package hors ligne pour une application React avec NPM Serve?

Bien que la plupart des usages de React soient destinés à Internet il arrive que l’on ne puisse pas avoir d’accès extérieur dans le cadre du déploiement d’une application sur des machines autonomes déconnectées d’Internet.

Tout fonctionnait parfaitement pour moi jusqu’au moment du déploiement sur l’ordinateur cible, je voulais garder les url telles qu’elles étaient afin de ne pas avoir à réadapter l’application si elle venait à être publiée sur le web et la documentation React conseille plusieurs serveurs web, Serve, Apache, Express, etc.

Dans cet article je vais vous montrer comment procéder avec npm et serve.

Tout d’abord il vous faut une application React, si vous n’en avez pas vous pouvez récupérer un starter kit ici https://create-react-app.dev/docs/getting-started .

Vous pouvez tester l’exécution de l’application en faisant un npm start en ouvrant ensuite votre navigateur à l’adresse http://localhost:3000

Je suppose ici que vous avez déjà un environnement de développement React d’installé.

Une fois prêt nous allons récupérer une version portable de Nodejs (https://nodejs.org/en/download/) en zip. à l’heure de l’écriture de cet article la plus récente étant 10.16.3 en LTS. Pour l’architecture je vous laisse le choix selon vos besoins.

Dé zippez l’archive et ouvrez une invite de commande dans ce dossier. (vous pouvez directement taper cmd dans la barre d’adresse de l’explorateur de fichier)

Si vous exécutez sur votre ordinateur npx serve, npm ira directement chercher dans votre environnement de développement les modules liés à serve et par l’occasion ne téléchargera pas en local dans le dossier ou alors il ira télécharger les modules mais les placera dans %appdata%/Roaming/npm-cache ce qui fait qu’en déployant le dossier zip seul vous obtiendrez le message suivant:

npx serve
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/serve failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network ‘proxy’ config is set properly. See: ‘npm help config’

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\micka\AppData\Roaming\npm-cache\_logs\2019-09-26T22_03_50_668Z-debug.log
Install for serve@latest failed with code 1

Pour éviter ce problème il faut au préalable installer de manière locale avec l’option –save de npm le serveur serve.

npm install serve –save

Attention il est important que vous soyez dans le dossier ou se trouvent npm et npx avant de lancer cette commande.

Une fois cette étape effectuée, vous aurez les fichiers serve et serve.cmd au même niveau que npm et npx et dans le dossier node_modules, l’ensemble des dépendances seront présentes. L’installation est maintenant réellement portable.

Vous pouvez aller plus loin en ajoutant un navigateur embarqué comme Electron par exemple et proposer un package encore plus complet.