Démonter les propriétés calculées dans Vue

L'approche suivante peut être utilisée pour éliminer les entrées utilisateur qui déclenchent le rendu des propriétés calculées vuejs. En cas de besoin, le débouncing augmentera les performances du site et améliorera la convivialité des fonctionnalités. Dans l'exemple ci-dessous, un ensemble de données est filtré et les résultats sont affichés de manière interactive dans un tableau. Le calcul n'a lieu qu'une fois exactement 250 ms après que l'utilisateur a cessé de taper dans le champ de saisie. Le débouncing d'une propriété calculée peut être réalisé en regardant une variable proxy (queryTableBuffer dans ce cas) ou avec les méthodes getter / setter de la propriété calculée.

<template lang="pug">
  section.section
    b-field
      b-input(v-model="queryTableBuffer")
    b-table(:data="queryTableResults")
</template>

<script>
import { debounce } from 'lodash'

export default {
  data() {
    return {
      table: [],
      queryTable: '',
      queryTableBuffer: ''
    }
  },
  computed: {
    queryTableResults() {
      return extFilteredAndSortedArray(this.table, this.queryTable)
    }
  },
  watch: {
    queryTableBuffer: debounce(function (newVal) {
      this.queryTable = newVal
    }, 250)
  },
  created() {
    this.generateTable()
  },
  methods: {
    generateTable() {
      this.table = extGetDataset()
    }
  }
}
</script>

Flou de la toile de fond

Justo, consequat vitae, tellus. ante, eleifend Aenean Etiam justo, amet, dolor. Aliquam natoque in, varius In eleifend sit pretium eget ut, enim. porttitor tincidunt. Donec pretium. massa. Quisque Vivamus Aenean vulputate Nulla Lorem dis laoreet. lorem felis, ultricies enim. dictum eget, dapibus nec, rhoncus feugiat Phasellus pede parturient vel augue. nisi dui. pede a, mus. ligula Nam felis Aenean vitae, commodo consectetuer nisi. elementum dolor Curabitur quis, fringilla Aenean imperdiet eu, quis, rutrum. et magnis ipsum Nullam Aenean montes, eu, nulla Cras viverra penatibus Integer justo. quam ligula, Cum sociis imperdiet. viverra pellentesque vel, arcu. a, mollis ullamcorper consequat vulputate ridiculus ac, leo venenatis enim ultricies elit. ultricies aliquet Donec metus eget massa tellus. nisi. quis semper sem. adipiscing dapibus. eu ut nascetur nec, Justo, consequat vitae, tellus. ante, eleifend Aenean Etiam justo, amet, dolor.

JavaScript – Interpolation de chaînes dans les expressions régulières

Lorsque vous devez remplacer une variable à l'intérieur d'une expression régulière, vous ne pouvez pas utiliser l'interpolation de chaîne habituelle en JavaScript. Vous devez créer un objet RegExp.

Supposons que vous ayez une expression rationnelle complexe comme /^(?!.*(\w{2}).*\1)\s*(?:(?:en|de|fr|it|es)\b\s*){5}$/ et vous devez manipuler dynamiquement les parties (?:en|de|fr|it|es) et {5}.

N'oubliez pas d'échapper aux barres obliques inverses.

function generate_regex(array) {
  return new RegExp(
    `^(?!.*(\\w{2}).*\\1)\\s*(?:(?:${array.join('|')})\\b\\s*){${
      array.length
    }}$`
  )
}

generate_regex(['en', 'de', 'fr', 'it', 'es'])

/^(?!.*(\w{2}).*\1)\s*(?:(?:en|de|fr|it|es)\b\s*){5}$/


generate_regex(['en', 'de', 'fr'])

/^(?!.*(\w{2}).*\1)\s*(?:(?:en|de|fr)\b\s*){3}$/

Supprimer les caractères inutiles des polices

Cette tâche gulp supprime tous les caractères inutilisés des polices. Il analyse récursivement le répertoire de construction et injecte son contenu du texte dans fontmin. De plus, la tâche produit des fichiers woff2 à côté des types par défaut de eot, svg, ttf et woff. C'est une excellente routine de post-traitement pour garder vos actifs petits et pour vous débarrasser de la notification keep request counts low and transfer sizes small dans votre rapport lighthouse.

Comment obtenir un flux RSS pour une chaîne YouTube

Comme Daniel Miessler l'a souligné, il est possible d'obtenir un flux RSS pour une chaîne youtube. Cependant, vous devez remplacer channel-external-id par channelId dans son article de blog.

Instructions

  1. Visitez une page de chaîne https://www.youtube.com/user/PewDiePie

  2. Affichez la source, puis filtrez pour channelId

  3. Ajoutez le channelId à la fin de la chaîne ci-dessous

https://www.youtube.com/feeds/videos.xml?channel_id=

Ajuster rapidement le serveur DNS dans macOS

# Clear and receive from AP
networksetup -setdnsservers Wi-Fi EMPTY
networksetup -setdnsservers "Thunderbolt Ethernet" EMPTY

# localhost
networksetup -setdnsservers Wi-Fi 127.0.0.1
networksetup -setdnsservers "Thunderbolt Ethernet" 127.0.0.1

# Cloudflare
networksetup -setdnsservers Wi-Fi 1.1.1.1 1.0.0.1
networksetup -setdnsservers "Thunderbolt Ethernet" 1.1.1.1 1.0.0.1

# Google
networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.8.4
networksetup -setdnsservers "Thunderbolt Ethernet" 8.8.8.8 8.8.8.4

# Open DNS
networksetup -setdnsservers Wi-Fi 208.67.222.222 208.67.222.220
networksetup -setdnsservers "Thunderbolt Ethernet" 208.67.222.222 208.67.222.220

# Show result
networksetup -getdnsservers Wi-Fi
networksetup -getdnsservers "Thunderbolt Ethernet"

Se débarrasser de Quoted Keyword Warning dans Phoenix

mix phx.server
warning: found quoted keyword "test" but the quotes are not required. Note that keywords are always atoms, even when quoted, and quotes should only be used to introduce keywords with foreign characters in them

Modifiez les éléments suivants dans votre mix.exs de

defp aliases do
  [
    "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
    "ecto.reset": ["ecto.drop", "ecto.setup"],
    "test": ["ecto.create --quiet", "ecto.migrate", "test"]
  ]
end

à

defp aliases do
  [
    {:"ecto.setup", ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"]},
    {:"ecto.reset", ["ecto.drop", "ecto.setup"]},
    test: ["ecto.create --quiet", "ecto.migrate", "test"]
  ]
end

Apprendre les regex - la manière douce

regex

Qu'est-ce qu'une expression régulière?

Une expression régulière est un groupement de caractères ou symboles utilisés pour trouver un schéma spécifique dans un texte.

Une expression régulière est un schéma qui est comparé à une chaîne de caractères (string) de gauche à droite. Le mot "Expression régulière" est un terme entier, souvent abrégé par "regex" ou "regexp". Une expression régulière est utilisée pour remplacer un texte à l'intérieur d'une chaîne de caractères (string), valider un formulaire, extraire une portion de chaine de caractères (string) basée sur un schéma, et bien plus encore.

Imaginons que nous écrivons une application et que nous voulons définir des règles pour le choix d'un pseudonyme. Nous voulons autoriser le pseudonyme à contenir des lettres, des nombres, des underscores et des traits d'union. Nous voulons aussi limiter le nombre de caractères dans le pseudonyme pour qu'il n'ait pas l'air moche. Nous utilisons l'expression régulière suivante pour valider un pseudonyme:

Start of the line
        |   3 to 15 characters long
        |             |
        |             |
        ^[a-z0-9_-]{3,15}$
              |          |
              |          |
              |     End of the line
letters, numbers, underscores, hyphens

L'expression régulière ci-dessus peut accepter les chaines de caractères (string) john_doe, jo-hn_doe et john12_as. Ça ne fonctionne pas avec Jo car cette chaine de caractères (string) contient une lettre majuscule et elle est trop courte.

Est-il possible d'analyser HTML avec Regex?

Vous ne pouvez pas analyser [X]HTML à l'aide de Regex. Parce que le langage HTML ne peut pas être analysé par Regex. Regex n'est pas un outil qui peut être utilisé pour analyser correctement html. Comme je l'ai répondu en HTML et Regex questions ici si souvent avant, en utilisant regex ne vous permettra pas de consommer html. Les expressions régulières sont un outil mal développé pour comprendre les conceptions utilisées par html. Le langage HTML n'est pas une langue normale et ne peut pas être analysé par des expressions régulières. Les requêtes Regex ne sont pas équipées pour diviser le code HTML en ses parties importantes. Si souvent, mais ce n'est pas toujours pour moi. Même les expressions régulières étendues irrégulières utilisées par perl ne sont pas la tâche de l'analyse html. Tu ne me laisseras jamais craquer. HTML est une langue avec une complexité suffisante qui ne peut pas être analysée par des expressions régulières. Même Jon Dove ne peut pas analyser le HTML avec des expressions régulières. Chaque fois que vous essayez d'analyser le code HTML avec des expressions régulières, l'enfant crie le sang des vierges, et les pirates russes ont leur WebApp. L'analyse HTML avec Regex obtient l'âme endommagée dans le Royaume des vivants. HTML et Regex vont ensemble comme l'amour, le mariage et le meurtre d'enfants rituels. Le <center> ne peut pas le tenir, il est trop tard. La puissance de Regex et html ensemble dans le même espace conceptuel va détruire votre esprit, comme tant d'eau de mastic. Si vous analysez le code HTML avec Regex, donnez-vous à vous et à vos manières blasphématoires que nous pouvons tous devenir des problèmes inhumains pour ceux dont le nom ne peut pas être exprimé dans le plan multilingue de base. HTML plus-RegExp ils fondent les erves du tout en regardant leur psyché dans l'attaque de la terreur. Rege̿̔̉X-based HTML Parser sont le cancer tuant StackOverflow est trop tard, il est trop tard, nous ne pouvons pas être sauvé le trangession d'une garantie Chi͡LD Regex consommera tous les tissus vivants (sauf html, qui ne peut pas,) comme prophétisé, cher Seigneur, aidez-nous, comment quelqu'un peut-il survivre à cette peste avec l'analyse html Regex, l'humanité est devenue une éternité de la torture et des dreadlocks en utilisant regex comme un outil pour le traitement HTML prendra une pause entre ce monde et le Royaume effrayant des entités C͒ͪo͛ͫrrupt ( (comme les entités SGML, mais corrompu) un aperçu simple dans le monde de l'ex reg Parser pour le HTML va à la Tantely, qui porte un programmeur-conscience dans un monde de cris sans fin, il est, la puanteur Alacridi-infection Regex Wil L dévorer l'analyseur ht-ml, l'application et l'existence de tout le temps que Visual Basic obtient seulement pire ne vient pas avec elle com̡e̶s , ̕h̵i s un̨Ho͞ly radiańcé Destro҉Ying All ENLI̍̈́̂̈́ghtenment, tags html Lea͠Ki̧n͘g fr̶ǫm ̡Yo ͟ur Eye͢s̸u ̛l̕ik͏e FL UID douleur, la chanson de l're̸Gular exp-resion analyse sera le feu nguish les voix de l'homme Mor tal de la SP ici peut voir qu'il peut les voir ̲͚̖͔̙î̩́t̲͎̩̱͔́̋̀ est assez t il finalement tourner l'homme se trouve tout est LOŚ͖̩͇̗̪̏̈́T tout ce que j'ai perdu le PON̷y il est , vous C̶̮omes il est, je ou pénètre tout mon visage mon visage ou H Dieu pas Noo̼O ou l'OTAN arrêter un * ̶͑̾̾ ̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe̠̅s ͎a̧͈͖r̽̾̈́͒͑e n OT rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ za̡͊͠͝LGΌ isͮ̂҉̯͈͕̹̘̱ to͇̹̺ͅɲ̴ȳ̳ th̘Ë͖́̉a ͠P̯͍̭O̚ N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎ȩ̬̩̾͛ͪ̈́̀́͘



Avez-vous essayé d'utiliser un analyseur XML? bobince

Désactiver SIP & Gatekeeper

SIP

csrutil status
System Integrity Protection status: enabled.

Pour désactiver la fonctionnalité Protection de l’intégrité du système (SIP) vous devez démarrer votre Mac en mode de récupération (CMD + R) et entrez les informations suivantes dans le terminal.

csrutil disable
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.

Restrictions de SIP

# Enable SIP and allow installation of unsigned kernel extensions
csrutil enable --without kext

# Enable SIP and disable filesystem protections
csrutil enable --without fs

# Enable SIP and disable debugging restrictions
csrutil enable --without debug

# Enable SIP and disable DTrace restrictions
csrutil enable --without dtrace

# Enable SIP and disable restrictions on writing to NVRAM
csrutil enable --without nvram

System Integrity Protection – Adding another layer to Apple’s security model

Gatekeeper

# Per Application:
sudo xattr -rd com.apple.quarantine /Applications/SelectApp.app

# Globally:
sudo spctl --master-disable

Certificat de Letsencrypt pour chaque domaine

Letsencrypt vous propose de combiner plusieurs domaines dans un seul certificat ou de les séparer pour chaque domaine. Lorsque vous effectuez ce dernier notez les limites de fréquence.

cli.ini

rsa-key-size = 4096
#server = https://acme-v01.api.letsencrypt.org/directory
authenticator = webroot
webroot-path = /var/www
email = youremail@domain.tld
renew-by-default = True
agree-tos = True
certbot --config /etc/letsencrypt/cli.ini certonly -d sub.domain.tld

Vous pouvez également combiner un groupe de domaines de partager un seul certificat.

certbot --config /etc/letsencrypt/cli.ini certonly -d domain.tld -d www.domain.tld -d sub.domain.tld

httpd.conf

SSLCertificateFile /etc/letsencrypt/live/$servername/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/$servername/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/$servername/chain.pem

Lister des serveurs virtuels Apache

Renouvellement

certbot --config /etc/letsencrypt/cli.ini renew

Lister des serveurs virtuels Apache

Vous pouvez lister tous vos serveurs virtuels apache/httpd avec cette commande.

# normal
httpd -S | rg '^.*namevhost (\S+) \(.*' --replace '$1' | sort -u

# with counter
httpd -S | rg '^.*namevhost (\S+) \(.*' --replace '$1' | sort | uniq -c

Vous devez installer ripgrep ou le remplacer par sed.

Autres commandes utiles du httpd

Afficher tous les fichiers de configuration inclus.

httpd -t -D DUMP_INCLUDES

Afficher tous les modules chargés.

httpd -M

Exécuter la vérification de la syntaxe...

CSS nth

Nième de type unique

1234567891011nth-child
(8)
(n+6)
(-n+9)
(n+4)(-n+8)
(n+2)(odd)
(3n+1)(even)
.e:nth-child(8) { ... }
.e:nth-child(n+6) { ... }
.e:nth-child(-n+9) { ... }
.e:nth-child(n+4):nth-child(-n+8) { ... }
.e:nth-child(n+2):nth-child(odd):nth-child(-n+9) { ... }
.e:nth-child(3n+1):nth-child(even) { ... }

Des codes clavier de JavaScript

Appuyez sur une touche pour obtenir le code correspondant :

ClavierShift
Code16

Ceci montre les codes JavaScript n’importe quelle touche de votre clavier.

Vous pouvez utiliser le numéro de code pour assigner un événement à la touche du clavier.

window.addEventListener('keydown', funcname, false);
function funcname(e) {

  /* up */ if (e.keyCode === 38   ) { exec_if_pressed() }
  /* dn */ if (e.keyCode === 40   ) { exec_if_pressed() }
 ...

Comment passer des Options avec Gulp

Vous pouvez passer des options à votre tâche de gulp avec la syntaxe { key0: value, key1: value, key2: value, ... }.

Exemple pour gulp-purifycss

La tâche gulp-purifycss utilise purifycss.

.pipe(purify(['./public/app/**/*.js', './public/**/*.html']))

devient

.pipe(purify(['./public/app/**/*.js', './public/**/*.html'], { minify: true, info: true, rejected: false }))

Exemple pour gulp-rsync

La tâche gulp-rsync utilise rsync.

gulp.task('deploy', function() {
  return gulp.src('build')
 ...

Comment utiliser un Gem Ruby personnalisé n'importe quel répertoire

C'est possible d'utiliser des Gems Ruby personnalisés n'importe quel répertoire, par exemple la machine locale, LAN ou à distance, sans qu'il soit nécessaire de passer en revue de l'index officiel des Gems Ruby.

La spécification d'un attribut :path va installer le Gem de ce répertoire sur votre machine locale.

gem "foreman", :path => "/Users/pje/my_foreman_fork"

Alternativement, la spécification d'un attribut :git installera le Gem d'un registre git distants.

gem "foreman", :git => "git:...

Comment enregistrer votre adresse IP

Avez-vous déjà pensé : « Mhmmm… était-ce moi derrière cette adresse IP à ce moment particulier ? Je souhaite que je le sais parce que QUI M’AIDERAIT BEAUCOUP POUR DÉTERMINER SI J’AI UN PROBLÈME ICI OU PAS ! »

Script bash

#!/bin/bash

ipcur=$(curl -s ipecho.net/plain)
if ! tail -n 1 ~/.cronjobs/iplog.csv | grep -q "$ipcur"; then
    {
    printf '%s;' "$(date "+%Y-%m-%d;%H:%M")";
    curl -s ipinfo.io/json | jq -r '.ip + ";"
    + .hostname + ";"
    + .city + ";"
    + .region + ";"
    + .country...

La puissance de compression de l’Opus

Opus Compression

Quand vous aimez écouter beaucoup des Podcasts, des cours ou des livres audio par exemple, et vous souhaitez emporter avec vous autant que vous le pouvez, ensuite le codec audio opus est quelque chose que vous pourriez être intéressé. J’utilise rarement ce terme, mais ici il peut être appliqué: Ça m'a foutu un coup, mec. Il est étonnant de voir combien audio vous pouvez emballer sur un appareil mobile avec des limites de capacité extrem.

J’ai converti maintenant ceci :

none 162 Files mp3,...

Exécuter uniquement si le périphérique est connecté

Avez-vous déjà été dans une situation où vous avez besoin d'ouvrir une application mais vous voulez seulement ouvrir cette application si un périphérique particulier est connecté ? Par exemple, lorsqu’il y a un lien symbolique vers une immense bibliothèque dépendante sur un disque externe. Ou l’interface audio doit être attaché avant l’ouverture de la station audionumérique.

L’exécution de ces applications sans être conforme aux dispositions peut gâcher vos paramètres et vous devrez peut-être...

Usurpation de l’adresse MAC sous OS X/macOS

Cela peut être utile lorsque vous voyagez.

La fonction

Vous pouvez mettre ceci dans votre .zshrc/.bashrc/etc.

spoof () {
    CRED='\033[0;31m'
    CBLUE='\033[0;34m'
    getmac () {
        ifconfig "$1" | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
    }

    macorig=$(networksetup -getmacaddress "$1" | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
    macprev=$(getmac "$1")
    macrand=$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
    sudo /System/Library/PrivateFrameworks...

La coloration syntaxique avec Rouge

Les exemples suivants illustrent la coloration syntaxique de Rouge pour beaucoup de différents langages de programmation. Rouge est développé par Jeanine Adkisson. C’est un marqueur très bonne qui travaille remarquablement précis.

Rouge aspire à la plus haute qualité de lexing dans toutes les langues prises en charge, aussi pour les caractéristiques extraordinaires et cas exceptionnels.

C’est vrai, je peux confirmer que rouge plutôt ne souligne pas du tout avant de faire des choses mal,...

Bonjour le monde - Français

Baudelaire

Lorsque, par un décret des puissances suprêmes, Le Poète apparaît en ce monde ennuyé, Sa mère épouvantée et pleine de blasphèmes Crispe ses poings vers Dieu qui la prend en pitié. Ah! Que n' ai je mis bas tout un nœud de vipères, Plutôt que de nourrir cette dérision! Maudite soit la nuit aux plaisirs éphémères Où mon ventre a conçu mon expiation! Puisque tu m’as choisie entre toutes les femmes Pour être le dégoût de mon triste mari. Et que je ne puis pas rejeter dans les flammes, Comme...