App order
App order permet de réorganiser / gérer l’ordre des icônes des applications dans la barre de menu.
Lien : https://apps.nextcloud.com/apps/apporder
Right click
L’application Right click permet d’avoir des actions sur les fichiers/dossiers en faisant un clic-droit dessus (supprimer/renommer/etc.)
Lien : https://apps.nextcloud.com/apps/files_rightclick
Extract
L’application Extract permet de dézipper des archives (différents formats supportés du zip au rar) côté serveur. Cela peut être utile.
Lien : https://apps.nextcloud.com/apps/extract
Metadata
L’application Metadata rajoute un onglet dans l’affichage des propriétés d’un fichier (volet de droite où se trouve également les possibilités options de partage), affichant les métadonnées d’un fichier.
My space to share technical knowledge with the world.
Voici la recette
1 rôti de porc rôti de porc de 800 g
2 petits oignons
200 ml de sauce BBQ
100 ml de ketchup
2 cuillères à soupe d’huile d’olive
Epluchez les oignons et coupez-les en dés.
Préchauffez le four à 140°C, chaleur tournante.
Versez l’huile d’olive dans une cocotte passant au four. Quand elle est chaude, faites-y colorer le rôti de porc sur toutes ses faces. Ajoutez ensuite les cubes d’oignon et laissez-les dorer.
Pendant ce temps mélangez la sauce barbecue et le ketchup.
Quand le rôti et les oignons sont bien dorés, arrosez avec la sauce. Le rôti doit bien être badigeonné sur toutes les faces.
Avant et en cours de cuisson
Avant et en cours de cuisson
Couvrez, et enfournez pour 4h30 de cuisson, en retournant une fois à mi-cuisson.
Cheat Sheet for Visual Code Emmet
Ingredients
2 cups all-purpose flour
2 cups white sugar (granulated or unrefined cane sugar)
3/4 cups unsweetened cocoa powder
1 teaspoon baking powder
1 teaspoon salt
1 cup bananas (ripe, mashed)
1/4 cup unsweetened soy milk (or almond milk)
1/4 cup canola oil
1 teaspoon vanilla extract
1 cup dark dairy-free chocolate chips
Bake for 25 to 35 minutes at 350F/180C, or until a toothpick inserted into the center emerges clean.
2 tasses de farine
2 tasses de sucre blanc (sucre de canne ou non raffiné)
3/4 tasse de cacao en poudre non sucré
1 cuillère à café de levure chimique
1 cuillère à café de sel
1 tasse de bananes (mûres, écrasées)
1/4 tasse de lait de soja non sucré (ou lait d'amande)
1/4 tasse d'huile de colza
1 cuillère à café d'extrait de vanille
1 tasse de pépites de chocolat noir
A minimal, almost class-less CSS library to write modern websites that look like LaTeX documents.
Je bosse en ce moment sur une petite API pour un usage ludique au bureau (j’expliquerais ce que c’est une prochaine fois), et ça m’a inspiré une courte note sur comment générer un token sécurisé en perl.
Pour générer des chaînes de caractères en perl, il existe l’excellent String::Random. Il combine plusieurs méthodes mais elles peuvent s’avérer pauvres pour générer un token, car celui-ci doit :
être une suite aléatoire de caractères alphanumériques
avoir un pattern dynamique
Avoir un pattern dynamique, ça veut dire que la séquence ne doit pas se répéter même si les caractères sont aléatoires, par exemple:
Majuscule-minuscule-chiffre-minucule...
C’est un pattern statique : les caractères auront beau être aléatoires, la suite restera la même. Ce serait donc mieux si le pattern était également aléatoire.
Pour répondre à cette problématique, j’ai combiné la méthode randpattern à la méthode randregex.
randpattern renvoie une chaîne de caractère définie par un pattern respectant :
c : tout caractère latin en minuscule
C : tout caractère latin en majuscule
n : tout chiffre
. : n’importe lequel des trois précédents
Par exemple :
my $s = String::Random->new();
$s->randpattern("cCn"); # renvoie jR4, sK1, pF3...
Utiliser seulement randpattern revient à utiliser un pattern statique puisqu’écrit en dur.
randregex renvoie une suite de caractère aléatoire qui sont choisis dans la regex donnée en argument. Par exemple :
my $s = String::Random->new();
$s->randregex('\d\w\d{5}'); # renvoie 5Z61258, 8R46964, 6l14705...
Les lettres pouvant être majuscules ou minuscules, c’est presque aléatoire. Mais en combinant les deux ainsi :
my $s = String::Random->new();
$s->randpattern($s->randregex('[CcnCn]{20}'));
J’obtiens donc une suite réelement aléatoire de 20 caractères, puisque pris aléatoirement dans l’ensemble CcnCn, et utilisés ensuite par randpattern pour mixer ce pattern afin de cracher le token voulu :
S5eYwWj30MWXEZ4FmWmr
1BW93BAh9ueCsYIY2js7
vW9ytOPVaG571BK40Ove
J491kSRwn9Wh3ZoRZS9J
0LQoVwF512GR4mcLAZ86
Cela permet des suites aléatoires et dont le pattern est dynamique : par exemple, le premier caractère est parfois un chiffre, parfois une majuscule, parfois une minuscule.