Tous les articles par Mickael Puyfages

Astuce – Comment augmen­ter la limi­ta­tion du nombre de carac­tères dans le chemin d’ac­cès des fichiers/dossiers sur Windows 10 ?

Sur tous les systèmes d’ex­ploi­ta­tion Micro­soft, une limite est appliquée au nombre de carac­tères auto­ri­sés pour l’em­pla­ce­ment 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’ex­ten­sion.

Peut être avez vous déjà eu le message « Chemin d’ac­cès de desti­na­tion trop long » comme quoi « Le ou les noms de fichiers sont trop longs pour le dossier de desti­na­tion » ou comme dans la capture ci-dessous « Nom de réper­toire non valide« .

Capture à la créa­tion

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

Atten­tion, les mani­pu­la­tions ci-dessous sont à faire dans le registre de Windows et peuvent être risquée si vous ne le maîtri­sez pas. Pensez à réali­ser des sauve­gardes avant d’ef­fec­tuer toute modi­fi­ca­tion.

La clé à modi­fier dans le registre se situe dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentCon­trolSet\Control\FileSys­tem

Cher­chez la valeur LongPathsE­na­bled et passez la à 1.

Une fois la modi­fi­ca­tion effec­tuée, fermez et ré-ouvrez l’ap­pli­ca­tion ou l’ex­plo­ra­teur Windows pour que la modi­fi­ca­tion soit effec­tive.

Github réduit ses tarifs et offre gratui­te­ment les dépôts privés avec un nombre illi­mité de colla­bo­ra­teurs

Github, racheté il y a deux ans par Micro­soft, vient d’an­non­cer ce soir la refonte de ses tarifs.

A commen­cer par son offre gratuite qui permet main­te­nant d’avoir autant de colla­bo­ra­teurs que souhaité ainsi qu’un nombre illi­mité de repo­si­tory.

Cette refonte permet donc aux petites équipes de déve­lop­peurs d’avoir accès à Github alors qu’au­pa­ra­vant seuls les dépôts publics étaient gratuits contrai­re­ment à son concur­rent Bitbu­cket qui offrait cette possi­bi­lité depuis long­temps.

Impres­sion écran des nouveaux tarifs github

Autre chan­ge­ment, la première offre payante destiné aux équipes passe de 9$/mois par utili­sa­teur à 4$, cette offre apporte entre autres plus d’es­pace de stockage 2GB au lieu de 500 MB.

Elle apporte des fonc­tion­na­li­tés plus pous­sées en termes de colla­bo­ra­tif par exemple, comme des branches à accès restreint, la protec­tion de certaines parties de code qui déclen­che­raient des alertes en cas de modi­fi­ca­tion ou encore la possi­bi­lité d’as­si­gner plusieurs personnes à une pull request.

Cette édition offre égale­ment la possi­bi­lité de créer des pages et wikis.

Enfin l’offre enter­prise est plutôt desti­née aux entre­prises de taille inter­mé­diaire et est plus orien­tée vers l’as­pect sécu­rité et connexion avec l’ap­port du SSO, une SLA de 8h, la connexion LDAP ou encore des fonc­tion­na­li­tés avan­cées d’au­dit. Cette offre est propo­sée à 21$/utili­sa­teur par mois.

Détails des nouveaux tarifs Github

Décou­vrez et instal­lez le nouveau navi­ga­teur Edge de Micro­soft

Micro­soft a récem­ment sorti une nouvelle version de son navi­ga­teur Edge qui est main­te­nant basée sur le projet Chro­mium (la version open source de Google Chrome).

Cette nouvelle version apporte donc tous les avan­tages de Google Chrome en termes de rendu mais égale­ment une nouvelle inter­face, une compa­ti­bi­lité avec tous les systèmes d’ex­ploi­ta­tion.

Si vous êtes habi­tué à utili­ser Google Chrome vous ne serez pas perdu avec cette nouvelle inter­face qui lui ressemble forte­ment, Micro­soft a revu le menu pour y ajou­ter des para­mètres supplé­men­taires mais aussi la partie profil utili­sa­teur qui permet non plus d’y connec­ter un compte Google mais un compte Micro­soft.

Si votre ordi­na­teur n’a pas encore reçu la nouvelle version vous pouvez la télé­char­ger depuis le site de Micro­soft: Télé­char­ger le nouveau Micro­soft Edge

La page d’ac­cueil

Le premier chan­ge­ment si vous venez de Google Chrome est la page d’ac­cueil qui vous présente les sites les plus visi­tés mais aussi les dernières actua­li­tés MSN.

Ces présen­ta­tions peuvent être chan­gées en utili­sant le bouton avec la roue cran­tée et vous n’avez plus qu’à choi­sir celle que vous préfé­rez ou créer la votre avec l’op­tion Person­na­lisé

Para­mètres de confi­den­tia­lité

Concer­nant les para­mètres de confi­den­tia­lité que vous pouvez retrou­ver dans le menu para­mètres et dans l’on­glet Confi­den­tia­lité et services.

Capture d’écran des para­mètres de confi­den­tia­lité de Micro­soft Edge

Le para­mé­trage a été simpli­fié au maxi­mum concer­nant les cookies et le suivi qui est fait de votre navi­ga­tion. Vous aurez ainsi le choix entre trois niveau allant sur basique ou les cookies sont quasi­ment tous accep­tés au niveau strict ou au contraire ils sont majo­ri­tai­re­ment bloqués au risque de bloquer le fonc­tion­ne­ment de certains sites comme les sites e-commerce ou d’ad­mi­nis­tra­tion qui fonc­tionnent avec des cookies pour les connexions.

Les exten­sions

Le fait qu’Edge soit basé sur Chrome apporte égale­ment les exten­sions, les déve­lop­peurs peuvent faci­le­ment porter leurs exten­sions d’ailleurs Micro­soft propose égale­ment un store diffé­rent du Micro­soft Store, le cata­logue est en revanche bien plus allégé à l’ins­tar de Google.

Vous pouvez retrou­ver vos exten­sions en tapant comme adresse edge://exten­sions/ ou sinon vous rendre sur le store en allant sur https://micro­sof­tedge.micro­soft.com/addons/cate­gory/EdgeEx­ten­sionsE­di­torsPick?hl=fr

Gestion des langues

Si lors du télé­char­ge­ment votre version est en Anglais vous pouvez faci­le­ment chan­ger la langue en vous rendant dans les para­mètres puis dans la section Langues

Gestion des langues dans MS Edge

Vous pouvez ensuite ajou­ter des langues en cliquant sur le bouton et il ne vous reste plus qu’à acti­ver la langue dési­rée et de redé­mar­rer Edge pour prendre en compte le chan­ge­ment.

Comment synchro­ni­ser des réper­toires FTP avec lftp ?

Lftp est un un programme dispo­nible sous UNIX qui permet de faire des trans­ferts FTP mais égale­ment de synchro­ni­ser deux réper­toires distants.

Prenons l’exemple d’une synchro­ni­sa­tion du dossier par défaut d’Apache /var/www/html que l’on voudrait sauve­gar­der sur un serveur distant dans /var/backups/html

La première étape est de vous connec­ter à votre serveur distant

lftp
open nom_d_utilisation:[email protected]_ou_nom_du_serveur

Si elle n’est pas instal­lée sur votre système vous pouvez l’ins­tal­ler 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éri­fier que la connexion est correcte.

Pour quit­ter lftp entrez la commande quit

Main­te­nant que nous avons vu que la connexion s’ef­fec­tue comme il faut nous allons nous inté­res­ser à la commande mirror qui va nous permettre de synchro­ni­ser deux réper­toires.

Elle s’uti­lise de la façon suivante:

lftp nomdutilisateur:[email protected] -e "mirror  /var/www/html /var/backups/html;quit"

Cette commande s’avère très pratique pour effec­tuer des sauve­gardes mais égale­ment pour des migra­tions de serveurs plutôt que de récu­pé­rer en local pour renvoyer ensuite sur une autre serveur vous pouvez faire l’opé­ra­tion bien plus rapi­de­ment.

La commande mirror propose une multi­tude de para­mètres comme -e pour suppri­mer les fichiers qui auraient été suppri­més de l’hôte distant, -R pour non pas télé­char­ger 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 para­mètres issue du site offi­ciel (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 appli­ca­tion React avec NPM Serve?

Bien que la plupart des usages de React soient desti­nés à Inter­net il arrive que l’on ne puisse pas avoir d’ac­cès exté­rieur dans le cadre du déploie­ment d’une appli­ca­tion sur des machines auto­nomes décon­nec­tées d’In­ter­net.

Tout fonc­tion­nait parfai­te­ment pour moi jusqu’au moment du déploie­ment sur l’or­di­na­teur cible, je voulais garder les url telles qu’elles étaient afin de ne pas avoir à réadap­ter l’ap­pli­ca­tion si elle venait à être publiée sur le web et la docu­men­ta­tion 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 appli­ca­tion React, si vous n’en avez pas vous pouvez récu­pé­rer un star­ter kit ici https://create-react-app.dev/docs/getting-star­ted .

Vous pouvez tester l’exé­cu­tion de l’ap­pli­ca­tion en faisant un npm start en ouvrant ensuite votre navi­ga­teur à l’adresse http://local­host:3000

Je suppose ici que vous avez déjà un envi­ron­ne­ment de déve­lop­pe­ment React d’ins­tallé.

Une fois prêt nous allons récu­pé­rer une version portable de Nodejs (https://nodejs.org/en/down­load/) en zip. à l’heure de l’écri­ture de cet article la plus récente étant 10.16.3 en LTS. Pour l’ar­chi­tec­ture je vous laisse le choix selon vos besoins.

Dé zippez l’ar­chive et ouvrez une invite de commande dans ce dossier. (vous pouvez direc­te­ment taper cmd dans la barre d’adresse de l’ex­plo­ra­teur de fichier)

Si vous exécu­tez sur votre ordi­na­teur npx serve, npm ira direc­te­ment cher­cher dans votre envi­ron­ne­ment de déve­lop­pe­ment les modules liés à serve et par l’oc­ca­sion ne télé­char­gera pas en local dans le dossier ou alors il ira télé­char­ger les modules mais les placera dans %appdata%/Roaming/npm-cache ce qui fait qu’en déployant le dossier zip seul vous obtien­drez le message suivant:

npx serve
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://regis­try.npmjs.org/serve failed, reason: getad­drinfo ENOTFOUND regis­try.npmjs.org regis­try.npmjs.org:443
npm ERR! network This is a problem rela­ted to network connec­ti­vity.
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 [email protected]­la­test failed with code 1

Pour éviter ce problème il faut au préa­lable instal­ler de manière locale avec l’op­tion –save de npm le serveur serve.

npm install serve –save

Atten­tion il est impor­tant que vous soyez dans le dossier ou se trouvent npm et npx avant de lancer cette commande.

Une fois cette étape effec­tuée, vous aurez les fichiers serve et serve.cmd au même niveau que npm et npx et dans le dossier node_modules, l’en­semble des dépen­dances seront présentes. L’ins­tal­la­tion est main­te­nant réel­le­ment portable.

Vous pouvez aller plus loin en ajou­tant un navi­ga­teur embarqué comme Elec­tron par exemple et propo­ser un package encore plus complet.