Skip to content

Instantly share code, notes, and snippets.

@yactouat
yactouat / index.php
Created October 27, 2022 12:33
quick and dirty address validation
<?php
$regex = "/^[\w'\s\p{L}-]*$/u";
$test = preg_match($regex, "8 rue du marché");
$test2 = preg_match($regex, "5 rue de l'apostrophe");
$test3 = preg_match($regex, "10 rue du passage \n à la ligne");
echo "\n";
echo !$test ? "test KO" : "test OK";
echo "\n";
@yactouat
yactouat / bashrc
Last active October 6, 2022 08:51
Ubuntu bash aliases
# env vars
## AWS
export AWS_CONFIG_FILE=~/.aws/config
export AWS_ACCESS_KEY_ID="some_access_key"
export AWS_DEFAULT_REGION=eu-central-1
export AWS_SECRET_ACCESS_KEY="some_secret_key"
export AWS_SHARED_CREDENTIALS_FILE=~/.aws/credentials
# aliases
## Apache stuff
@yactouat
yactouat / activity.md
Created September 18, 2022 08:52
udacity_fr_session9_activity3

Activité (10 min)

Ecrivez un décorateur qui va logguer ou afficher

  • les paramètres en entrée de la fonction décorée
  • la valeur en sortie de la fonction décorée
@yactouat
yactouat / activity.md
Created September 18, 2022 08:50
udacity_fr_session9_activity2

Activité (10 min)

Ecrivez un décorateur qui va:

  • déterminer le temps d'exécution de la fonction décorée quand elle est appelée
  • le décorateur peut afficher ce temps dans la console ou bien logger ce temps dans un fichier
@yactouat
yactouat / activity.md
Last active September 18, 2022 08:26
udacity_fr_session9_activity1

Activité (10 min)

  • créez deux fonctions différentes, ces fonctions peuvent être très simples, comme par exemple afficher une valeur "A" pour l'une et une valeur "B" pour l'autre
  • créez un décorateur qui va logguer dans un fichier:
    • le nom de la fonction décorée
    • la date (au format que vous souhaitez) à laquelle la fonction décorée a été appelée
  • le fichier de log ne doit pas écraser la valeur précédente à chaque fois qu'il est mis à jour

Vous pouvez vous inspirer d'un schéma très simple de décorateur pour créer cette fonctionnalité => https://github.com/yactouat/python_decorators/blob/master/simple_decorator.py

@yactouat
yactouat / login.js
Created September 2, 2022 11:14
log a user in an Express controller (mongoose)
const jwt = require('jsonwebtoken');
// you'll also need some mongoose User model
exports.login = async (req, res, next) => {
let usr;
try {
usr = await User.findOne({ email: req.body.email });
} catch (error) {
res.status(500).json({
data: null,
@yactouat
yactouat / activity.md
Last active August 20, 2022 19:11
udacity_fr_session5_activity

Activité (30 min)

  • cloner le le repo de la todo app' à tester
  • créer une base de données de dev et une base de données de test
  • si vous n'utilisez pas Docker, mettre à jour les URL des bases de données dans les fichiers suivants =>
    • app/app.test.py
    • app/init.py
  • exécuter l'application en utilisant au choix:
    • Docker
  • un environnement virtuel
@yactouat
yactouat / activity.md
Last active August 14, 2022 14:08
udacity_fr_session4_activity1

Activité (25 min)

  • cloner le repo de démo de Flask-WTF
  • dans les formulaires new et edit ajouter un champ facebook_link en utilisant le champ basique le plus approprié
  • valider ce champ afin qu’il n’accepte que des urls provenant de Facebook
  • faire une pull request afin de demander à merger votre solution
@yactouat
yactouat / activity.md
Created August 6, 2022 14:52
udacity_fr_session3_activity2

ecole_entites

Activité (10 min)

Dans le cadre d’une application de gestion d’une école, vous êtes chargés de modéliser les relations entre les entités qui vont être utilisées dans le monde réel afin de créer la structure de données relationnelle la plus pertinente:

  • définissez les liens entre ces entités en termes d’agrégation vs composition
  • dites s’il s’agit d’une relation one-to-one, one-to-many, many-to-one

NOTE: un étudiant peut suivre son cursus à distance

@yactouat
yactouat / activity.md
Created August 6, 2022 14:16
udacity_fr_session3_activity1

Activité (15min):

Le but n’est pas de résoudre les problèmes, mais de vous entraîner à obtenir une information efficacement !