OpenLLM-France/wikimedia huggingface dataset:
# Programmation PowerShell/Redirections

PowerShell
* Introduction
* Démarrer avec PowerShell
* Navigation
* Formatage de l'affichage
* Les scripts
* Variables, constantes et alias
* Tableaux
* Redirections
* Conditions
* Boucles
* Switch
* Les objets personnalisés
* Fonctions et filtres
* Gestion des services et des processus
* Accès distants

## Redirections

En PowerShell, les commandlettes exécutées affichent parfois des informations dans la console lors de l'exécution et il peut être utile de rediriger les sorties pour masquer ces messages.
C'est assez complexe aussi je ne vous donnerai que cette commande pour débuter :
* Out-Null
Out-Null envoie le texte d'une commandlette dans le néant !
Normalement, l'utilisation typique d'une redirection se fait dans le shell. Ce peut être l'enregistrement des erreurs dans un fichier séparé par exemple :
* 2>&1
2>&1 redirige le flux 2 (les erreurs) dans le flux 1 (les messages s'affichant en cas de succès)
Peut-être en aurez-vous besoin un jour ? En attendant, poursuivez car vous n'avez pas besoin de maîtriser ceci au début !
# Programmation PowerShell/Conditions

PowerShell
* Introduction
* Démarrer avec PowerShell
* Navigation
* Formatage de l'affichage
* Les scripts
* Variables, constantes et alias
* Tableaux
* Redirections
* Conditions
* Boucles
* Switch
* Les objets personnalisés
* Fonctions et filtres
* Gestion des services et des processus
* Accès distants

## Les conditions

Pour donner vie à vos scripts, vous aurez besoin des conditions ou Statements en anglais.
La structure la plus simple est le SI ce qui donne ceci : si une condition est remplie, alors fais ceci sinon fais cela !
Cette structure s'appelle le IF STATEMENT. Pour utiliser cette structure, je vous conseille de procéder ainsi dans ISE :
* Tapez CTRL+J pour afficher les snippets (bouts de code prêt à l'emploi) !
* Tapez If puis ...
* Frappez la touche retour ou entrée !
Le code est inséré. C'est bien pratique :-)
Voici un exemple :
# Électronique

L'électronique est partout dans notre quotidien : ordinateurs, smartphones, téléphones portables, montres connectées, et bien d'autres appareils sont électroniques. Mais bien peu de personnes savent comment fonctionnent ces appareils dans le détail. Peut-être savent-ils qu'ils sont fabriqués à partir de semi-conducteurs et de transistors, mais sans en savoir beaucoup plus. Ce cours va vous donner les bases du domaine. Nous allons commencer par l'abord des semi-conducteurs, avant de voir les composants de base que sont les diodes et les transistors. Nous poursuivrons ensuite par aborder les composants plus élaborés que sont les amplificateurs et filtres électroniques, ainsi que les portes logiques.
    Terminé
* Une version imprimable du livre « Électronique » est disponible. (voir/ modifier)
* La lecture préalable de L'électricité et les circuits électriques (wikilivre). est conseillée.
    Pré-requis : Ce cours demande quelques bases en électricité, que vous pouvez acquérir en lisant ce cours, disponible sur Wikilivres : Électricité.
    Sujet et objectifs de ce cours : Ce cours porte essentiellement sur l'électronique analogique, avec un minimum sur l'électronique numérique. Il aborde notamment les composants à semi-conducteurs, comme les diodes et les transistors et d'autres composants. Il parle aussi des composants analogiques plus évolués, utilisés dans le traitement du signal ou la conception de circuits analogiques : AOP, filtres, oscillateurs, etc. Enfin, il explique comment fabriquer des portes logiques à partir de composants analogiques (avec un bref rappel sur les portes logiques).
Attention : ce cours n'aborde pas tout ce qui a trait aux circuits numériques, à leurs méthodes de conception et tout ce qui dépasse la fabrication des portes logiques à partir de composants analogiques. Pour ceux qui veulent en apprendre plus sur ces sujets, je vous conseille de lire les deux wikilivres suivants :
   * Électronique numérique : logique, un wikilivre assez complet sur le sujet.
   * Les chapitres au début du cours Fonctionnement d'un ordinateur, du chapitre "Le codage des informations" au chapitre "Les circuits de conversion analogique-numérique".

## Sommaire
### Les amplificateurs, filtres et oscillateurs électroniques

* Les amplificateurs électriques
* Les amplificateurs opérationnels
* La rétroaction linéaire et l'amplification
* Les montages à amplificateurs opérationnels
* Les filtres électriques
* Les filtres du premier et second ordre
* Les oscillateurs (générateurs de fréquence)

### Les composants à semi-conducteurs

* Les semi-conducteurs
* Les jonctions PN
* Les diodes et jonctions PN
* Les transistors bipolaires
* Les transistors à effet de champ
* Le fonctionnement en petits signaux des transistors
* Polarisation des transistors BJT et FET
* Les montages amplificateurs à transistors
* Les montages amplificateurs à plusieurs étages

### Les portes logiques et circuits intégrés

* Les portes logiques
* Les familles MOS : PMOS, NMOS et CMOS
* Les familles bipolaires : à diodes, DTL, ETL, TTL et ECL
* Les circuits intégrés
# Sociobiologie. Une introduction/Présentation

Le but de ce livre est double. D'une part, il s'agit de dégager le contexte sociodynamique dans lequel la sociobiologie a pu se contrétiser comme discipline à part entière. D'autre part, il s'agit de mettre en lumière l'impact des activités en sciences de la vie abordées dans un contexte d'influences réciproques.
# Sociologie de l'action

Cette page est considérée comme une ébauche à compléter . Si vous possédez quelques connaissances sur le sujet, vous pouvez les partager en éditant dès à présent cette page (en cliquant sur le lien « »).
Ressources suggérées : Aucune (vous pouvez indiquer les ressources que vous suggérez qui pourraient aider d'autres personnes à compléter cette page dans le paramètre « ressources » du modèle engendrant ce cadre)
L'introduction de la notion d'entité en sociologie se heurte à une double barrière empirique : d'une part, il n'est pas possible d'expérimenter sur des phénomènes sociaux en grandeur réelle, d'autre part, il est vain d'observer le fonctionnement d'un système social quand on en arrête la marche.
Après plusieurs années de recherche expérimentale sur des groupes de laboratoire, nous avons entrepris, vers la fin des années cinquante, un travail de sociologie clinique. Ce travail nous a conduits à construire un outil, la socianalyse, susceptible de traiter l'intrusion d'un observateur collectif comme moyen de décodage du réel social.
Dans un premier temps, pour formaliser la socianalyse, nous avons emprunté à l'approche des systèmes inaugurée par la cybernétique la notion de fonction de transfert. Cet emprunt s'inscrivait dans une réflexion plus générale sur la relation observateur-observé.
En effet, dans le champ des sciences sociales, la présence d'un observateur provoque une perturbation du même ordre de grandeur que les phénomènes qu'il cherche à observer. Cette perturbation n'est pas maîtrisable, comme dans le champ de la physique quantique, par des procédures de contrôle statistique. Il s'agit d'une situation spécifique qui tient à l'identité de nature entre l'observateur et l'observé et au fait que l'observé est doté d'une capacité d'auto-observation qui le rend également capable d'observer son observateur.
Dans le champ social, la relation entre le pôle observateur et le pôle observé est donc réciproque. Comment codifier les conditions de cette réciprocité pour accéder au pôle observé en contrôlant le pôle d'observation ? Ou, en termes opératoires, comment spécifier les configurations d'incitations que le pôle observateur doit produire (entrées) pour déclencher une production qui informe sur le fonctionnement du pôle observé (sorties) ?
Cette question éclaire la visée de l'outil socianalytique, qui cherche à observer des entités sociales en fonctionnement. Ce sera le premier point que nous aborderons ci-après.
Partant de ces observations empiriques, quelles propositions générales peut-on dériver qui s'appliquent à la réalité sociale ? A ce propos, deux aspects seront traités ci-après : quelle est la place de la relation observateur-observé dans l'action ? Qu'est-ce qu'une entité dans le champ social ?
# Sociobiologie. Une introduction/Version imprimable

* Si vous imprimez cette page, choisissez « Aperçu avant impression » dans votre navigateur, ou cliquez sur le lien Version imprimable dans la boîte à outils, vous verrez cette page sans ce message, ni éléments de navigation sur la gauche ou en haut.
* Cliquez sur Rafraîchir cette page pour obtenir la dernière version du wikilivre.
* Pour plus d'informations sur les version imprimables, y compris la manière d'obtenir une version PDF, vous pouvez lire l'article Versions imprimables.
Une version à jour et éditable de ce livre est disponible sur Wikilivres, une bibliothèque de livres pédagogiques, à l'URL : https://fr.wikibooks.org/wiki/Sociobiologie._Une_introduction

# Auteure

Marie Bernard Labrecque, Ph.D.

# Avant-propos

Cette introduction se limite à débusquer les contextes sociodynamiques de la sociobiologie, c'est-à-dire les principaux éléments historiques, sociaux et scientifiques qui ont influencé son émergence et sa survie en tant que science.
Les données ultra-spécialisés de la sociobiologie issus d'expertises poussées en sciences exactes, en sciences de la vie, sociales et humaines ne sont pas abordées dans ce livre. Bien qu'elles soient pertinentes et instructives, ces distinctions provenant, par exemple, de la génétique des populations ou de l'anthropologie demeurent en dehors du propos de cette introduction.
Le contenu s'adresse à toute personne, peu importe le niveau de scolarité, intéressée par la sociobiologie. On peut le considérer comme une simple transmission de connaissances, l'utiliser à titre de survol, de lecture exploratoire, de manuel d'inspiration pour la recherche ou comme outil de réflexion, bref comme bon il semble.

# Présentation

Le but de ce livre est double. D'une part, il s'agit de dégager le contexte sociodynamique dans lequel la sociobiologie a pu se contrétiser comme discipline à part entière. D'autre part, il s'agit de mettre en lumière l'impact des activités en sciences de la vie abordées dans un contexte d'influences réciproques.
# Sociologie des institutions

La sociologie des institutions concerne les institutions, par exemple l'état ou l'Europe qui sont analysés du point de vue sociologique.
# Sociobiologie. Une introduction

* Avant-propos
* Présentation
* Chapitre 1 - Qu'est-ce que la sociobiologie ?
* Chapitre 2 - Assises
* Chapitre 3 - Problématiques de base
* Chapitre 4 - Panorama sociodynamique
* Chapitre 5 - Panorama critique
* Chapitre 6 - État de la question
* Références
* Glossaire
* Bibliographie
* Lectures suggérées
* Pour aller plus loin
# Sociobiologie. Une introduction/Auteure

Marie Bernard Labrecque, Ph.D.
# Sociobiologie. Une introduction/Avant-propos

Cette introduction se limite à débusquer les contextes sociodynamiques de la sociobiologie, c'est-à-dire les principaux éléments historiques, sociaux et scientifiques qui ont influencé son émergence et sa survie en tant que science.
Les données ultra-spécialisés de la sociobiologie issus d'expertises poussées en sciences exactes, en sciences de la vie, sociales et humaines ne sont pas abordées dans ce livre. Bien qu'elles soient pertinentes et instructives, ces distinctions provenant, par exemple, de la génétique des populations ou de l'anthropologie demeurent en dehors du propos de cette introduction.
Le contenu s'adresse à toute personne, peu importe le niveau de scolarité, intéressée par la sociobiologie. On peut le considérer comme une simple transmission de connaissances, l'utiliser à titre de survol, de lecture exploratoire, de manuel d'inspiration pour la recherche ou comme outil de réflexion, bref comme bon il semble.
# Sociobiologie. Une introduction/page de garde

* Ce livre fait environ nombre de pages pages au format A4 (dans la version du date de validité des informations (nombre de pages) JJ/MM/AAAA).
* Si vous imprimez cette page, choisissez « Aperçu avant impression » dans votre navigateur, ou cliquez sur le lien Version imprimable dans la boîte à outils, vous verrez cette page sans ce message, ni éléments de navigation sur la gauche ou en haut.
* Cliquez sur Rafraîchir cette page pour obtenir la dernière version du wikilivre.
* Pour plus d'informations sur les version imprimables, y compris la manière d'obtenir une version PDF, vous pouvez lire l'article Versions imprimables.
# Programmation en Go/Conditions
## Conditions simples

Il est possible d'utiliser les opérateurs de comparaison suivants:
"==" est l'opérateur égal à, différent de l'opérateur d'affectation "=". "!=" signifie 'différent de'.
Ces opérateurs fonctionnent pour les nombres entiers, flottants et pour les chaînes de caractères.

## Opérateurs logiques

* &&, ET logique,
* ||, OU logique,
* !, négation logique.
Ces opérateurs agissent sur les valeurs de type booléen.

## Opérateurs bit à bit

* &, ET logique bit à bit,
* |, OU logique bit à bit,
* ^, OU EXCLUSIF bit à bit,
* ~, complément binaire ou négation bit à bit.
À ces opérateurs il faut ajouter;
* << décalage binaire vers la gauche,
* >> décalage à droite.
Ces opérateurs agissent sur les entiers non signés: uint, uint8, uint16, uint32, uint64, byte.
Il est possible de combiner ces opérateurs avec une affectation de leur résultat comme avec a += b, par exemple:
# Programmation en Go/Formatage de texte
## Formatage de types de base

Nous allons utiliser le module "fmt" comme expliqué au chapitre Premier exemple.

## fmt.Printf

Cette fonction très simple prend un nombre variable d'arguments: le premier est une chaîne [de format] et les suivants sont les arguments à formater.
Dans la chaîne de format, le caractère "%" a une signification spéciale:
* suivi d'un "c", il implique la présence d'un octet ou d'un entier et le formate en caractère,
* suivi d'un "d", il implique la présence d'un entier et le formate en décimal,
* suivi d'un "f", il implique la présence d'un nombre décimal à virgule flottante,
* suivi d'un "s", il implique la présence d'une chaîne,
* suivi d'un "x", il implique la présence d'un entier et le formate en hexadécimal,
* suivi d'un "g", il implique la présence d'un réel,
* suivi d'un "v", il formate de manière automatique n'importe quel type,
* suivi d'un "T", il affiche le type de la valeur fournie.
Enfin, la chaîne "%%" est remplacée par un seul "%" à la sortie.
La fonction fmt.Sprintf a le même type d'entrée mais retourne la chaîne formatée au lieu de l'afficher.

### Exemple

affiche:

## fmt.Println

Cette fonction formate de manière automatique tout type passé comme paramètre. La contrepartie fmt.Sprintln retourne la chaîne formatée au lieu de l'afficher. Cela revient au même que d'utiliser le formatage par défaut "%v".

## String

On peut définir la méthode "String" pour un type quelconque et alors, Go l'utilisera pour formater la structure dans le formatage par défaut ("%v").
# Programmation en Go/Initialisation
## Constantes

On peut initialiser une constante avec le mot-clé const :

## Variables globales

Une variable globale est déclarée par le mot-clé var, avec au minimum un premier caractère en majuscule(exemple:bb est local alors que Bb est globale). Elle est initialisée par le symbole "=" ou ":=".
On peut affecter le résultat d'une fonction à une variable globale, comme ceci:

## Variables locales

On déclare une variable local avec var suivi du nom de la variable puis de son type :
On peut initialiser une variable avec le signe égal :
Ou bien combiner les deux:
On peut inférer le type tout en affectant la variable :
Enfin, on peut omettre var

## La fonction init

La fonction init est une fonction spéciale. Chaque fonction portant ce nom dans chaque module sera appelée à l'initialisation du programme (une seule fois) et ce, dans l'ordre d'import des modules. Un seul thread est utilisé lors de cette phase d'initialisation pour l’exécution des goroutines. (qui feront l'objet d'un autre chapitre)
# Programmation en Go/Interfaces
## Définition d'une interface

Une interface est un ensemble de méthodes, c'est-à-dire des fonctions qu'il est possible d'implémenter pour un type défini. En voici un exemple, une interface de tri:
Cette interface permet de trier n'importe quelle structure de données consécutives. Il suffit de définir les méthode Len, Less et Swap et nous pourrons appeler sort sur cette structure de données.
Nous pouvons par exemple définir cette interface pour un tableau d'entiers:
Ainsi la syntaxe fait précéder le nom de la méthode du type défini entre parenthèses. Nous pouvons maintenant trier une séquence en faisant:

### Note sur les pointeurs

Lorsque l'on implémente une méthode sur une structure, il est d'usage de déclarer la méthode sur un type pointeur de cette structure, pour éviter le passage par valeur:

## Héritage d'interfaces

En incluant un nom de type précédé d'une étoile dans une structure, sans le nommer, la structure hérite de toutes les interfaces de cette structure en les lui déléguant.
Ensuite on appelle
qui est délégué au membre log.Logger de la structure.

### Héritage multiple

Il est possible d'hériter de manière multiple comme dans l'exemple suivant:

### Constructeur

Il est alors d'usage de définir un constructeur, si nécessaire, pour la structure Tache, que l'on nommera "NewTache":
# Programmation en Go/Fonctions
## Nombre variable de paramètres

Le dernier paramètre d'une fonction peut être suivi de ...type qui définit un nombre variable de paramètres.
Ensuite, on peut appeler cette fonction de la manière suivante:
On peut également passer un tableau à la place des arguments avec la syntaxe t...:

## Valeur de retour nommée

On peut omettre le nom de la variable de retour grâce à ce nom:

## Valeurs de retour multiples

On peut retourner deux valeurs ou plus avec la syntaxe suivante:

## Defer

Entraîne l'exécution différée d'une commande à la sortie de la fonction courante. Par exemple, juste après avoir ouvert un fichier, on peut différer sa fermeture par:
ce qui fait que le fichier sera fermé quoi qu'il arrive avant de quitter la fonction. Les commandes enregistrées par 'defer' sont exécutées dans l'ordre inverse de leur déclaration: la dernière déclarée sera la première exécutée.

## Fonctions anonymes

Les fonctions anonymes sont un des types de base de Go. On peut donc stocker une fonction dans un tableau et dans n'importe quelle variable dont le type est défini comme étant:
On déclare une fonction littérale par la syntaxe suivante :
# Programmation en Go/If et switch
## Alternatives: if/else

La forme if/else permet de tester une condition, d'exécuter un bloc d'instructions si cette condition est vraie (le booléen 'true'), et un autre bloc si la condition est fausse.
Par exemple, pour calculer une valeur absolue:

## Switch

On peut ainsi réaliser plusieurs alternatives. On peut également réaliser un "switch" sur une valeur donnée:

## Détecter un type

Une variable de type interface peut contenir une valeur de type quelconque. Il est possible de tester que le type de cette valeur est T en exécutant:
Il est aussi possible de le faire avec switch:

## Alternative avec initialisation

Exemple:
# Programmation en Go/Installation
## Linux

Pour les distributions dérivées de Debian, par exemple Ubuntu, vous pouvez utiliser le système de gestion des paquets avec la commande suivante :
Pour les distributions dérivées de RedHat, comme CentOS, vous pouvez également utiliser le système de paquets :
Dans tous les autres cas, vous pouvez télécharger une version exécutable depuis le site officiel à l'adresse suivante : https://go.dev/doc/install
Une fois le fichier enregistré sur votre ordinateur, vous pouvez appliquer les commandes suivantes dans un terminal. Ces commandes suppriment une éventuelle version déjà présente sur votre système à l'emplacement /usr/local/go, puis extraient les fichiers précédemment téléchargés, afin d'obtenir une installation à jour :
Afin de rendre disponible toutes les commandes de Go dans votre système, vous pouvez ajouter le dossier spécial "go/bin" à votre variable d'environnement PATH. Ajouter la ligne suivante dans votre fichier de configuration, généralement $HOME/.profile :
Puis exécutez un `source $HOME/.profile` afin de prendre en compte cette modification. Vous devrez éventuellement vous déconnecter et reconnecter pour prendre en compte ces modifications au niveau global de votre système.
Vérifiez que tout fonctionne correctement en exécutant la commande suivante dans votre terminal :
Vous devez obtenir en résultat de cette commande, la version actuellement installée de Go.

## Mac / Windows

Vous pouvez télécharger une version exécutable depuis le site officiel à l'adresse suivante : https://go.dev/doc/install. Une fois le fichier téléchargé, ouvrez-le et suivez les instruction pour l'installation de Go.
À présent, vous pouvez tester le compilateur en compilant votre premier programme, comme nous allons le voir au chapitre suivant.
# Programmation en Go/La boucle for
## La forme 'tant que'

Dans ces deux formes, la boucle se répète tant que la condition est évaluée vraie, ou de manière inconditionnelle. Dans les deux cas, cela peut mener à une boucle infinie qui prend de plus en plus de ressources système.
En revanche, il est possible de couper l'exécution d'une boucle:

### break

Cette commande interrompt la boucle et en sort.

### continue

Cette commande interrompt la boucle et réitère. Si l'on parcourt un tableau, on réitère sur un nouvel élément, sinon on réévalue la condition de boucle.

### return

Return fait sortir de la fonction en cours; si une valeur est fournie à return, celle-ci est retournée à l'appelant.

## Itérer sur les éléments d'un tableau

Cette forme a déjà été étudiée dans le chapitre Les tableaux. Elle permet également d'itérer sur les éléments d'une chaîne de caractères Unicode (voir le chapitre Unicode et Go) et sur ceux d'un tableau associatif.

## Itération plus générale

Par exemple la ligne suivante compte de 0 à 9: