perso perso tim anthony manuel exclamation tux pitit Implémentation de l’algorithme de Gillespie : PseudoCodeperso portfolio cisoun tux tux ya kelk1 pitit Implémentation de l’algorithme de Gillespie : PseudoCodeImplémentation de l’algorithme de Gillespie : PseudoCode

Dans le précédent article, j’expliquais les bases de l’algorithme de Gillespie. Je vous propose maintenant une implémentation en pseudo-code. Je reprends volontairement les étapes de la même façon que Gillespie dans son article A general method for Numerically simulating the stochastic time evolution of coupled chemical reactions.

Step 0 Initialisation

Variables :

Fixer le temps : t = 0
Fixer les concentrations initiales des N espèces : X1 X2 X3... XN
Spécifier et stocker les valeurs c1 c2 c3 ... cM pour les M réactions
Calculer les M quantité c1h1 c2h2 c3h3 ... cMhM pour les M réactions

Spécifier et stocker une série de temps auxquels on va générer
 une sortie des concentrations XN.

Fixer un temps maximum tstop.

Step 1

Générer une paire aléatoire Tau et Mu, tel que présenté dans le précédent article.

r2 = uniforme(0,1)
suma = a1 + ... + an
i = 1
sumpart = a1
tant que r2 * a < sumpart :
    incrémente i
    sumpart = sumpart + ai
sinon
    mu = i - 1
r1 = uniforme(0,1)
tau = (1/suma) ln(1/r1)

Step 2

En utilisant les nombres Tau et Mu, on fait avancer t de Tau et on change les valeurs de quantités Xi impliquées dans la réaction Mu.

pour i dans 1, n n nombre de réactants de Rmu
Xi = Xi - ai avec ai le nombre stoechiométrique correspondant
pour i dans 1, m m nombre de produits de Rmu
Xi = Xi + ai
t = t + tau

Step 3

Si t vient de dépasser un des temps auxquels on doit générer une sortie, lire les quantités de toutes les concentrations Xi. Si t est supérieur à tstop ou si tous les h sont nuls (preuve qu’il n’y a plus de réactants), s’interrompre, sinon retourner à l’étape 1.

perso perso tim anthony manuel exclamation tux pitit Algorithme de Gillespieperso portfolio cisoun tux tux ya kelk1 pitit Algorithme de GillespieAlgorithme de Gillespie

Qu’est ce qu’un algorithme de Gillespie ?

C’est une méthode stochastique (ça signifie aléatoire) pour simuler l’évolution d’un système. Dans ce système un certain nombre d’évènements et chacun de ces évènements a une probabilité donnée d’arriver. Le but est d’en choisir un aléatoirement, en tenant compte de cette probabilité. En « arrivant », un évènement va modifier la probabilité d’autres évènements.

Daniel T. GILLESPIE (Américain, 1977 – ) a développé son algorithme pour simuler numériquement l’évolution de réactions chimiques couplées. Sa méthode est développée dans un article paru en 1976. (JOURNAL OF COMPUTATIONAL PHYSICS 22, 403-434). Son système est composé de molécules et il est intéressé par l’évolution du nombre de ces molécules en fonction de réactions (les évènements), au cours du temps.

Réactions chimiques

Dans le système, on note perso  Algorithme de Gillespie l’espèce i et perso  Algorithme de Gillespie le nombre de molécules de cette espèce chimique.

Gillespie s’intéresse aux réactions de création par source externe,
perso  Algorithme de Gillespie

Les autres réactions possibles ne mettent pas en jeu plus de trois molécules, qui peuvent être identiques ou différentes.

Chacune de ces réactions est caractérisée par un paramètre de réaction perso  Algorithme de Gillespie. Ce paramètre est intimement lié à la constante de Michaëlis-Menten.

Relation entre le paramètre perso  Algorithme de Gillespie et la constante de Michaëlis-Menten

La constante de Michaëlis-Menten est une constante dépendant des concentrations, tandis que perso  Algorithme de Gillespie dépend des quantités en molécules. Ainsi, on obtient la relation suivante :

perso  Algorithme de Gillespie

Où i est le cardinal de chaque réactant et perso  Algorithme de Gillespie le nombre stœchiométrique de ce réactant et N le nombre total de réactants différents.

Probabilité de rencontre

Afin de définir la fonction de densité de probabilité de réaction, Gillespie fait aussi appel à la probabilité de rencontres des molécules.

perso  Algorithme de Gillespie  est le nombre de combinaisons distinctes de molécules réactante pour la réaction perso  Algorithme de Gillespie, présentes dans le volume V au temps t .

perso  Algorithme de Gillespie

Densité de probabilité de réaction

Cette fonction de densité de probabilité est définie de la façon suivante : avec perso  Algorithme de Gillespie la réaction et perso  Algorithme de Gillespie la durée de cette réaction,

perso  Algorithme de Gillespie

Algorithme

L’algorithme en lui-même est relativement simple, il s’agit de tirer au hasard un perso  Algorithme de Gillespie et un perso  Algorithme de Gillespie d’après les fonctions de densité de probabilité. Ensuite on recalcule les fonctions, on tire au hasard un nouveau couple etc…

On interrompt le processus lorsque les quantités de molécules atteignent toutes 0 ou qu’un temps maximum définit est dépassé.

Méthode pour tirer perso  Algorithme de Gillespie et perso  Algorithme de Gillespie

Gillespie propose dans son article deux méthodes, une méthode dite directe et une méthode dite de la première réaction. Je ne développe que la méthode directe, réputée pour être plus efficace dès que le nombre d’événements dépasse 3.

Dans la méthode directe, on considère un nombre a, somme du produits des probabilité de rencontre et paramètre de réaction pour chacune des réactions.

perso  Algorithme de Gillespie

Pour calculer le paramètre perso  Algorithme de Gillespie on tire un nombre perso  Algorithme de Gillespie à partir d’une distribution uniforme sur l’intervalle unité.

perso  Algorithme de Gillespie

Le tirage de perso  Algorithme de Gillespie est a little bit more tricky comme dit ma tutrice de stage. On tire un nouveau réel perso  Algorithme de Gillespie dans l’intervalle unité à partir d’une distribution uniforme.

perso  Algorithme de Gillespie est tel que
perso  Algorithme de Gillespie

Les valeurs successives de a sont additionnées jusqu’à ce que la somme soit supérieure ou égale à perso  Algorithme de Gillespie, alors perso  Algorithme de Gillespie est la dernière valeur pour laquelle c’était inférieur.

perso  Algorithme de Gillespie est considéré comme le temps que dure la réaction plus le temps où rien ne se passe.

Conclusion

On obtient un algorithme facilement implémentable en beaucoup de langages. La performance comme souvent en simulation étant de rigueur, un langage compilé sera toutefois préférable !

L’article de Gillespie écrit il y a un certain nombre d’année présente une implémentation en FORTRAN particulièrement efficace, je serais curieux de pouvoir comparer la rapidité de simulation de ses tests en 1976 sur les machines puissantes qu’il évoque par rapport à ceux que l’on produit aujourd’hui sur le plus simple des ordinateurs personnels.

Il est maintenant plus que temps de rentrer à la maison, une bonne demi-heure de vélo sous le soleil m’attend !

  1. Leneurone

    Le sujet est assez imbuvable pour quelqu’un qui n’a pas la moindre notion dans le domaine, mais c’est assez bien écrit !

    La seule remarque que j’ai est que tu n’expliques pas il me semble ce qu’est un évènement…

    Il pourrait être intéressant aussi d’avoir l’algo entier écrit sous forme algorithmique, histoire de formaliser un peu tout ce que tu expliques avant !

    J’aime bien la tournure que prend ton blog :)

    ++
    Leneurone

  2. Florck

    Un évènement a un probabilité donnée de survenir, qui dépend des paramètres du système. En survenant, cet évènement va modifier ces paramètres.

    Dans l’exemple traité par Gillespie, un évènement est une réaction chimique. En fait l’évènement est alors la rencontre des espèces nécessaires et la « disparition » de ces espèces au profit de la création de nouvelles espèces, les produits de la réaction.

  3. Florck’s blog » Blog Archive » Implémentation de l’algorithme de Gillespie : PseudoCode

    [...] le précédent article, j’expliquais les bases de l’algorithme de Gillespie. Je vous propose [...]

humeurs humeur brunocb tux terre g1 et sa lune pitit Vie virtuelle dune cellule non moins virtuellehumeurs portfolio cisoun tux tux ya kelk1 pitit Vie virtuelle dune cellule non moins virtuelleVie virtuelle d’une cellule non moins virtuelle

Plus d’un an après, c’est le blog revival !

À quelle occasion ? Celle du début de mon stage en hollande dans un laboratoire de biologie et bioinformatique.

Accueilli pour mon stage de fin de 4ème année, ma mission est simple : implémenter un algorithme de Gillespie, pour tester la cellule virtuelle.

La cellule virtuelle

Le but est de créer une cellule minimale par une méthode d’algorithme génétique. (Un article suivra pour expliquer le principe de cet algorithme).

L’algorithme génétique étant un algorithme évolutif, il est important de définir si la cellule est plus ou moins viable, fait plus ou moins ce qu’elle doit. On parle de fitness.

Pour une cellule, les scientifiques ayant développé et cherché une cellule virtuelle sont parti du principe qu’une des choses essentielles pour une cellule est d’être capable de maintenir son homéostasie, c’est à dire à maintenir son équilibre en dépit des variations qu’elle peut subir.

La cellule est celle défini par Alex A Neyfakh dans son article publié le 17 Août 2006 dans Biology Direct.

On considère deux types de petites molécules. A et X. A est disponible dans le milieu et X est une molécule porteuse d’énergie.  Il existe aussi des protéines de différent type : des enzymes catalysant le métabolisme d’A en X et des enzymes catalysant l’anabolisme de A et X en déchet; des pompes qui permettent de faire entrer A dans la cellule, des facteurs de transcription, recevant un ligand et pouvant se lier à un opérateur (une séquence sur le code génétique).

Ces protéines sont codées par des gènes. Dans l’article, pas de codage du gène nécessitant une traduction. On stocke juste des paramètres, un numéro de séquence opérateur, etc…

Ces protéines peuvent être créées, dégradées.

Dans l’article, le métabolisme de la cellule, c’est à dire l’évolution des concentrations des petites et grosses molécules est suivi par simulation des équations différentielles, une méthode dite déterministe.

Algorithme de Gillespie

Une autre voie serait de simuler cette évolution par une méthode stochastique. C’est le principe de l’algorithme de Gillespie.

Je vous expliquerai bientôt en quoi consiste cet algorithme et quelles modifications je dois lui apporter pour l’adapter au problème et les raisons de ces modifications et enfin, le modèle que j’ai choisi d’adopter.

Il est l’heure d’aller dormir !

Mots-clefs :, , , | Classé dans : Humeurs, Portfolio
Pas de commentaire

libre libre    fcys14 tux asterix pitit Subversionlibre portfolio cisoun tux tux ya kelk1 pitit SubversionSubversion

Aujourd’hui en cours, découverte de subversion, le logiciel de gestion de versions et de travail collaboratif.

Le principe est de travailler à plusieurs sur les même fichiers sans perdre les modifications apportées par les uns et par les autres. On utilise donc un serveur qui stocke les fichiers et chacun travaille sur une copie qu’il met à jour régulièrement. De même régulièrement, chacun reposte ses modifications sur le serveur. Si jamais j’ai édité un fichier et que quelqu’un d’autre l’a aussi édité avant que je le renvoie sur le serveur, alors le système m’en informe et me permet de choisir quelle version garder ou de faire un mix des deux.

Le système permet aussi de revenir ou de consulter des versions antérieures. Il existe d’autres systèmes qui permettent ceci, mais subversion en est un des plus récents. Son avantage sur son prédecesseur (très longtemps utilisé) cvs est qu’il ne garde pas à chaque fois une copie complète du fichier, mais juste les modifications apportées, donc gain de place évident !

Schématiquement (honteusement pompé du cours de mon prof, ça doit venir du web et ne m’appartient pas )

libre capture2 Subversion

libre capture3 Subversion

Ce système a pris le parti de laisser deux personnes travailler en même temps sur un même fichier, mais s’assure juste de la possibilité de faire la mise à jour ou non (contrairement à d’autres systèmes où la personne qui édite pose un verrou).

Créer le dépot

Sous mac et linux, il est généralement installé par défaut. Le serveur n’est qu’un serveur de données. C’est le client qui fait tout le travail.

Pour créer le serveur la commande est

svnadmin create myrepo

dans le répertoire où l’on veut créer le dépot myrepo.

Créer le projet sur le dépôt

La commande

svn import . file:///chemin/et/nom/du/depot/nomduprojet -m "Commentaire"

va importer tous le contenu du répertoire courant pour remplir le nouveau projet sur le dépôt. On peut pratiquer cette commande sur un répertoire vide. Alors, ceci a pour unique effet de créer le projet sur le dépôt.

Le commentaire sert à indiquer que l’on crée le dépôt par exemple. Par la suite, dans les autres commandes de modification du contenu, on ajoutera de même des commentaires.

Commencer à travailler

Pour commencer à travailler, il faut utiliser la commande suivante :

svn co file:///chemin/et/nom/du/depot/nomduprojet repertoirelocal

Alors un nouveau répertoire nommé repertoirelocal va être créé dans le répertoire courant et tout le contenu du projet nomduprojet y est téléchargé.

Modifications locales

Création d’un fichier

Pour créer un fichier, la commande à utiliser est svn add nom sur le fichier ou le répertoire existant à ajouter au projet.

Suppression d’un fichier

Il ne faut pas utiliser la commande rm seul, mais utiliser svn delete nom pour le fichier ou le répertoire. Ça supprime le fichier / répertoire en local et l’inscrit dans les modifications à effectuer sur le dépôt.

Déplacement/Renommage d’un fichier

La commande à utiliser n’est pas non plus mv, mais svn move nomancien  nomnouveau . (Il existe aussi svn copy).

Modification d’un fichier

Il suffit simplement d’éditer le fichier.

Contrôler les changements en attente

Pour cela, utilisons la commande svn status .

Appliquer les changements

Mettre à jour par rapport au contenu du dépôt et vérifier qu’il n’y a pas de conflits

svn update

Résoudre les conflits

La commande update signale les conflits et propose plusieurs options : résoudre plus tard (postpone : p), appliquer les changements « des autres » (theirs-full : tf) ou les miens (mf).

Si l’on choisit résoudre plus tard, il nous reste la possibilité de comparer les versions avec la commande diff et d’éditer le fichier de travail pour faire une compilation qui nous convient. Enfin, ne reste plus qu’à lancer la commande :

svn resolve --accept [state] fichierquiposepb

avec state soit : working, version modifiée pour compilation par exemple, mine-full ou theirs-full pour choisir de garder sa version ou celle du dépôt.

Effectuer les changements

Enfin, la commande

svn commit -m "commentaire"

valide les changements une fois les conflits résolus et passe à la version n+1 en inscrivant dans l’historique le commentaire.

Suivre les changements

La commande svn log permet d’afficher l’historique des changements.

Connexion pas ssh à un serveur svn

svn co svn+ssh://login@ipduserveur/chemin/et/nom/du/repo/projet
Mots-clefs :, , | Classé dans : Libre, Portfolio
Pas de commentaire

libre libre    fcys14 tux asterix pitit SSHlibre portfolio cisoun tux tux ya kelk1 pitit SSHSSH

Aujourd’hui, quelques astuces d’utilisation du SSH (secure shell).

SSH est un protocole qui permet d’établir un lien entre deux ordinateurs. Très utilisé sur des systèmes de type Unix, il est aussi possible de l’utiliser avec Windows©. SSH permet : l’exécution d’applications en lignes de commande ou en graphique depuis la machine hôte, la redirection de ports, le transfert de fichiers. Il utilise le port 22, il faut donc que les communications sur ce port soient autorisées. Malgré tout, il existe un moyen pour faire du ssh même si tous les ports sont fermés en entrée. C’est le principe du reverse SSH qui utilise pleinement la redirection de ports !

Installation

Sous Ubuntu, c’est le paquet openssh qui permet d’installer le serveur.

Connexion

En ligne de commande, la commande ssh login@ipdelamachine permet la connexion directe. La connexion étant sécurisée, la première fois qu’on contacte une nouvelle machine, celle-ci envoie sa clé (une sorte d’empreinte) qui garantie que lors des prochaines connexions on se connectera bien à la bonne machine. Une fois cette authentification physique de la machine effectuée, une invite demande d’entrer le mot de passe. Une fois ceci fait, nous sommes maintenant sur la machine distante. Nous pouvons explorer le contenu du disque et lancer des commandes.

Astuce : pour savoir qui d’autre est connecté à la machine, utiliser la commande who .

Lancer des applications en mode graphique

Le SSH permet de lancer des applications de la machine distante. L’application sera totalement lancée sur la machine distante, seules les trames graphiques seront traitées par notre propre machine. Il est à noter que de ce fait, le processus est assez économique du point de vue de la puissance processeur de notre machine, mais extrèmement gourmand en ce qui concerne l’utilisation de la bande passante.

Pour pouvoir utiliser cette fonction, il faut rajouter l’option -X à la demande de connexion :

ssh -X login@ip

Puis de lancer le nom du programme (eg : firefox &). Rappel : le & dans l’exemple indique qu’on souhaite lancer le programme en tache de fond, c’est à dire garder la main sur la console.

Transfert de fichier

Le transfert de fichier se fait par le protocole sftp : ftp sur du ssh.

sftp chemin/et/nom/du/fichier/local login@ip:/chemin/du/fichier/distant

Le rapatriement de fichier se fait de la même façon :

sftp login@ip:/chemin/et/nom/du/fichier/distant /chemin/du/fichier/local

Il est aussi possible de le faire en visuel interactif avec Konqueror ou Nautilus grâce aux protocoles sftp, fish ou scp.

Cascading et Reverse ssh

SSH permet le cascading  : Imaginez la situation, un parefeu bloque les connections sur une machine 1 depuis les machines à l’extérieur d’un réseau donné dont la notre la machine 0, mais vous avez accès à la connection ssh sur une machine 2 qui fait aussi partie de ce réseau. Alors nous pouvons nous connecter avec la machine 0 sur la machine 1 et relancer une connection sur la machine 2 à partir de l’interface ouverte.

Une autre astuce est de laisser en permanence ouverte une connexion ssh de la machine 1 à la machine 2, qui fait une redirection de ports : techniquement, quand avec la machine 0 on fera une connection ssh sur le port 2243 de la machine 2 par exemple, alors ça répercuterait sur la machine 1 sur le port 22 la demande :

portfolio portfolio cisoun tux tux ya kelk1 pitit Mise à jour vers wordpress 2.6.5portfolio blog brunocb leonard de vinci    tux de vitruve pitit Mise à jour vers wordpress 2.6.5Mise à jour vers wordpress 2.6.5

Ça y est ! Non seulement je reviens avec quelques idées d’articles futurs en tête, mais en plus j’ai mis à jour WordPress vers la nouvelle version. Tout s’est bien passé. J’en ai profité pour mettre à jour le plugin category icon, que j’avais modifié pour avoir les icônes en haut de page.

Avec mon css, l’icône doit être au dessus du titre, il faut donc baliser correctement.

Il suffit de remplacer la ligne dans le fichier category_icons.php

$list = str_replace($child[1],$img.$child[1], $list);

$list = str_replace($child[1],$img. »<div id=titre_cat> ».$child[1]. »/div>< », $list);

Mots-clefs :, , | Classé dans : Portfolio, Vie du Blog
Pas de commentaire

libre libre    fcys14 tux asterix pitit Configuration Wifi ad hoclibre portfolio cisoun tux tux ya kelk1 pitit Configuration Wifi ad hocConfiguration Wifi ad-hoc

Comme beaucoup, j’ai beaucoup galéré quand il a fallu résoudre la problématique suivante : Partager la connexion internet (filaire) entre plusieurs pc (par wifi).

Après de nombreux essais, et de nombreux essais, j’ai réussi à effectuer ce que je voulais.

La première étape a été de vérifier que mes deux cartes étaient compatible ad-hoc, et installer le cas échéant les bons pilotes.

Sur l’ordinateur hôte (connecté à l’internet)

Pour lancer le mode ad-hoc sur une carte, afin d’être sur de la réussite du changement de mode, il vaut mieux la désactiver :

1
ifconfig wlan0 down

Ensuite, grâce à la commande suivante, on passe la carte en mode ad-hoc.

1
iwconfig wlan0 mode ad-hoc

Puis rallumons la carte et attribuons lui une adresse ip de résau local (attention de choisir une classe d’adresse différente de celle du réseau qui relie en filaire à l’internet) :

1
2
ifconfig wlan0 up
ifconfig wlan0 192.168.2.1

Puis configuration de la carte : remplacer wlan0 par le modèle de carte, maison par le nom du réseau qu’on souhaite donner. Rajouter une clé WPA ou WEP pour la sécurié. Important pour ne pas vous faire pirater votre internet…

1
iwconfig wlan0 essid maison mode ad-hoc channel 6

Voila pour la configuration de l’hôte.

Configuration du client

Les manips pour la configuration du client sont les mêmes, si ce n’est qu’il faut lui attribuer une autre adresse IP (192.168.2.3 dans mon exemple).

Automatisation au démarrage

Pour automatiser ces actions au démarrage des ordinateurs, il est très facile de réaliser un petit script :

1
kdesudo kate /etc/init.d/reseaux // ou gksudo gedit

et d’y copier le contenu suivant :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/sh
case "$1" in
start|"")
# au démarrage
ifconfig wlan0 192.168.2.1
ifconfig wlan0 down
sleep 1
iwconfig wlan0 mode ad-hoc
sleep 1
ifconfig wlan0 up
ifconfig wlan0 192.168.2.1
iwconfig wlan0 essid maison mode ad-hoc channel 6
;;
stop)
# à l'arret
;;
*)
echo "Paramètre erroné [start | stop]" &gt;&amp;2
exit 3
;;
esac

Il faut ensuite donner les droits d’exécution à ce script et l’ajouter au niveau d’exécution standard :

1
2
sudo chmod +x /etc/init.d/reseaux
sudo update-rc.d reseaux defaults

Et le tour est joué !

Installation de squid

Nos deux ordinateurs se parlent. Ne reste plus qu’à créer une passerelle entre eux grâce au proxy squid (toujours lui !). L’installation est simple grâce à un apt-get.

En ce qui concerne la configuration, voila le squid.conf : on autorise l’adresse ip du pc (facultatif) et pour les autres on demande une authentification (important).

Mots-clefs :, , | Classé dans : Libre, Portfolio, Ubuntu, Vie du Blog
2 commentaires
  1. leneurone

    Bah, il est où le squid.conf ?
    Sinon bon article, je tente la mise en oeuvre…

  2. leneurone

    J’ai réussi à poster mon article sur Squid sur mon blog, mais je te dis pas le combat pour passer la modération, j’ai dû surveiller mes paroles drastiquement…

    Je dois vraiment me motiver à changer d’hébergeur, ça me fera un joli cadeau de Noël…

portfolio portfolio cisoun tux tux ya kelk1 pitit Désactiver une touche du clavier sous Xportfolio ubuntu sparkledesign ubuntux pitit Désactiver une touche du clavier sous XDésactiver une touche du clavier sous X

Heureux titulaire d’un eeepc, premier du nom (le fameux 701), j’en suis extrêmement satisfait. Solide, suffisament véloce pour les tâches que je lui attribue, pratique en voyage ou pour la prise de note.

Mais ce matin, pour une obscure raison, la touche F1 est devenue complêtement folle : sans que j’appuie dessus, elle semblait en permanence enfoncée. Ainsi, dans les logiciels, la page d’aide s’ouvrait à l’infini, ou lorsque j’enfonçais seules les touches ctrl + alt, il passait sur la première console et affichait une suite de [[A .

J’ai tout essayé pour la débloquer : appuyer dessus doucement, fermement, aspirer mon clavier, souffler dessus, la démonter… Rien n’y a fait. La solution a été purement logicielle : demander à la partie de X qui gère le clavier de remapper cette touche vers le néant.

La commande est simple : tout d’abord, récupérer le code de la touche : cela s’est fait grâce à l’utilitaire xev.

Xev retrace tous les évenements effectués depuis son lancement, donnant énormément de détail sur la commande effectuée (clic ou frappe de clavier). Puisqu’elle était enfoncée, son action apparaissait indéfiniment ! J’ai récupéré son code (67) et lancé :

xmodmap -e "keycode 67="

Pour que cette commande soit effective au démarrage, il m’a juste fallu la rajouter dans l’autostart de kde. En effet c’est une commande qui modifie le comportement de Xorg et nécessite donc que celui-ci soit lancé. Voila pourquoi je ne l’ai pas rajouté à mon .bashrc !

Et le tour est joué ! Merci Père Noël !

Mots-clefs :, , | Classé dans : Portfolio, Ubuntu
Pas de commentaire

libre libre    fcys14 tux asterix pitit LaTeX et la classe Beamer libre portfolio cisoun tux tux ya kelk1 pitit LaTeX et la classe Beamer LaTeX et la classe Beamer

À mon emploi du temps j’ai depuis quelques semaines et pour encore quelques autres un cours intitulé « communication scientifique ». Il s’agit en fait de nous donner des outils et des principes pour réaliser des articles scientifiques, des rapports et aussi faire des interventions orales avec support.

La première étape a été de nous apprendre à utiliser LaTeX. J’en profite au passage pour saluer le 5ème framabook, sorti il y a quelques jours sur le LaTeX : Tout ce que vous avez toujours voulu savoir sur LaTex sans jamais oser le demander de Vincent Lozano.

Pour produire des présentations, on nous a proposé une classe nommée Beamer, actuellement ce qu’on fait de plus efficace pour celà. Le rendu est très propre, il est relativement simple de créer des effets d’apparition/disparition, l’inclusion automatique d’une table des matières pour suivre le fil de la conférence/ de l’exposé est possible…

Mais ce qui fait à mes yeux la plus grande force de Beamer c’est la possibilité de rééditer sous différentes versions papier :

\documentclass[10pt, green]{beamer}
%version standard

\documentclass[class=article, a4paper]{beamer}
% article destine à l’impression

\documentclass[10pt, green, handout]{beamer}
% version imprimable pour assistance

\documentclass[10pt, green, handout, notes=show]{beamer}
% version imprimable avec notes d’orateur

L’option class=article transforme le diaporama en un texte éditable réalisé avec la class article. C’est peut-être l’option la plus intéressante !

L’option handout fusionne les différentes étapes d’un même slide (ex : apparition d’éléments d’une liste un à un) pour faire une version papier pour les auditeurs.

L’option notes=show permet à l’orateur de faire s’afficher ses commentaires.

source : http://mirabellug.org/wikini/upload/Documentations_beamer_article.pdf

Mots-clefs :, , , | Classé dans : Libre, Portfolio
1 commentaire
  1. Fork

    Yesss !
    LaTeX c’est chouette, et beamer aussi (j’avais fait les slides de la présentation du TP transversal avec).

    Je viens d’ailleurs de passer un certain nombre d’heures à faire mon compte-rendu de TP d’algo sous LaTeX, et j’ai pu apprécier certains outils plutôt puissants, ou comment traduire un .c en un .tex avec un belle mise en valeur des mots clef et des commentaires.

libre libre    fcys14 tux asterix pitit Emacs et les raccourcislibre portfolio cisoun tux tux ya kelk1 pitit Emacs et les raccourcisEmacs et les raccourcis

Après une longue absence due à la rentrée et son cortège de week-ends d’intégration, de découverte de nouveaux cours, de soirées et de réunions, me revoici !

Au programme de ce billet, emacs, ou comment s’arracher les cheveux !

En effet, cette année, je vais subir un grand nombre d’heures de cours d’informatique et principalement apprendre à coder dans différents langages (C, C++, python…). Notre prof d’informatique, Hedi alias Maître Jedi, fervent détracteur du truc, est adepte de emacs. Il va donc falloir que je m’y mette, tandis que j’avais toujours été assez hermétique à ce logiciel ! La flemme de l’habitude surement !

Pour faire simple, emacs est un éditeur de texte avancé fonctionnant sans interface graphique. En vulgaire, je dirais que c’est à nano ce que notepad++ est au notepad du machin.

Pour faire fonctionner emacs, pas de boutons et autres menus, mais des commandes. Celles-ci sont issues des commandes des shells de l’époque de sa création (il y a trente ans). Entre temps est arrivé un certain Bill Gates et son DOS bousculant toutes les habitudes et apportant de nouvelles commandes claviers, vite devenus des raccourcis aux commandes visuelles. Les anciennes commandes sont alors tombées bien souvent en désuétude, principalement dans les logiciels ‘copies’ de logiciels propriétaires tels que firefox et OpenOffice.org. (Le terme copie n’est pas péjoratif, j’utilise ces logiciels moi-même et trouve que ce sont d’excellent chevaux de Troie du monde du libre.) Les shells dont le plus utilisé dans les distributions linux actuelles, à savoir bash, sont pour la plupart resté aux anciennes commandes et il en va de même pour emacs.

J’ai un peu menti en disant qu’emacs n’étais pas un logiciel en version graphique. En fait il implémente sa propre interface graphique et est extrèmement performant, permettant notamment de séparer son écran en plusieurs « buffers » (fichiers ouverts pour le commun des mortels).

Je ne détaillerai pas les différents raccourcis, ils sont donnés dans le fichier joint. Par contre à retenir, comment sortir et revenir dans le buffer principal quand on est perdu ? trois fois échap !!!

Ci-joint voici une fiche récaptitulative, en anglais, proposée sur le site du département, des commandes principales. Enjoy !

emacs-refcard-a4

NB : Emacs n’est pas installé par défaut sous ubuntu, il faut installer, par synaptic ou par apt-get en ligne de commande le paquet emacs et ses dépendances.

Mots-clefs :, , | Classé dans : Libre, Portfolio
4 commentaires
  1. Fork

    J’imagine que tu te doutais que ça arriverait en postant un tel message…

    Vi c’est mieux !
    (En plus TC nous oblige à l’utiliser pendant nos TP. J’espère qu’il n’y a pas d’emacsien traumatisés parmi nous).

    Enfin, c’est déjà bien d’utiliser des éditeurs non graphiques (quoi c’est une régression ? Ben moi je préfère mon linux spartiate et mon téléphone fëanoresque au Mac OS, au smartphone, et à l’iphone de mon pôpa.)

    Bon, ce commentaire pars dans tous les sens, donc finissons sur une note bilingue : don’t be mean, eat your greens!

  2. Paul

    Si les adeptes du terminal/lignes de commande pouvaient retourner surfer sur internet avec lynx, on aurait sûrement le droit à des commentaires un peu plus constructifs….

    1) les interfaces graphiques, c’est le bien, les lignes de commande ne sont vraiment utiles à mon avis que quand :
    -les interfaces graphiques sont mal faîtes (conversion de fichiers…)
    -la tache est répétitive

    2) ras le bol des trolls windows vs linux, kde vs gnome, vi vs emacs, debian vs ubuntu, que les trolls restent dans leurs grottes

    3) pour finir sur la programmation en ligne de commande, je trouve qu’il est étrange de programmer des interfaces graphiques depuis un éditeur en ligne de commande…

    Bon week-end quand même
    Truc

  3. Florck

    L’est pas content Paul ;)
    Plus sérieusement, toutes attaques que j’ai ou que Fork a pu lancer ne sont que des plaisanteries à prendre au second degré.

    En ce qui concerne vim et emacs, je n’ai pas d’avis sur lequel est le mieux… En ce qui me concerne j’aurai à travailler avec le second, mais comme je pars de zéro, ça m’est bien égal !!!

    Un des avantages des logiciels en ligne de commande sont les temps de réponse. Quand tu traites un fichier avec un nombre important de lignes de codes ton système passe plus de temps à l’afficher qu’à faire les modifications que tu lui demandes. De plus beaucoup trop de gens utilisent les IDE pour développer la partie pur code ce qui est une perte de temps.

    Enfin certains langages te permettent de développer simplement une interface utilisateur sans avoir à tremper les mains dans une interface de plaçage approximatif des composants !

    En ce qui me concerne je considère que programmer avec emacs aura beaucoup d’avantages, si j’ai tiré dans les pattes de windows, c’était pour souligner une fois de plus à quel points ils nous ont conditionné et créé leur propres normes écrasant les normes déjà en place.

  4. Fork

    Au cas où, je précise que mon intention n’était pas de troller ;)
    Mais sur un message parlant d’éditeurs de textes, c’est plus une question de référence historique.
    (Bon, je viens de me relire et je me rend compte que ça a effectivement l’air d’un gros troll, donc désolé.)

    Pour ce qui est des interfaces graphiques, je ne suis évidemment pas contre (et j’en utilise intensivement).
    Quand je parle de régression, c’est qu’en toute honnêteté, les gadgets me laissent plutôt froid. D’accord, c’est joli, mais en ce qui me concerne, ça ne me sert à rien, donc je préfère ne pas gaspiller de ressources.

    Enfin, en TC, on ne code justement pas d’interfaces graphiques (‘pas le but, on est pas en IF), du moins pour l’instant, et à ce que j’ai compris ça devrait quand même durer, et la présence de Vi est garantie sur toutes les machines unix, et on travaille sous linux.

    *Au fait, rectification : c’est ipod *touch* et pas iphone. Je savais bien qu’avec tous ces nouveaux produits qui sortent je finirais par m’embrouiller.