mercredi 17 décembre 2008

Tableaux avec array sous LaTeX

Ce petit billet illustre, en utilisant un petit exemple, toute la souplesse que procure le paquetage array pour la réalisation de tableaux sous LaTeX.

Dans cet exemple, toutes les colonnes sont centrées horizontalement et verticalement. La dernière colonne fait exception car elle est justifiée à gauche. De plus, dans la dernière colonne, le texte est écrit en petit. La taille de cette dernière s'adapte automatiquement à la largeur du texte. Pour les calculs, il faut utiliser le paquetage calc. Je n'ai pas utilisé le paquetage tabularx qui me pose des problèmes.

Voici une image du tableau obtenu :



Voici le code pour obtenir ce tableau :

\usepackage{array}
\usepackage{calc}
...
{\setlength{\tabcolsep}{2pt}
\begin{tabular}{|>{\centering}m{3.5em}|>{\centering}m{4.5em}|>{\centering}m{6em}|>{\small}m{\textwidth-3.5em-4.5em-6em-8\tabcolsep-5\arrayrulewidth}|}
\hline
\textbf{Année} & \textbf{Nom} & \textbf{Appellation} & \multicolumn{1}{|c|}{\textbf{Apports majeurs}} \tabularnewline
\hline
2000 & Le nom complet & l'appellation & bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \tabularnewline
\hline
\end{tabular}}

samedi 22 novembre 2008

Synology DS107e et montage NFS dans la fstab sous Linux

Ce billet décrit comment accéder à son NAS Synology en utilisant le protocole NFS.

Première étape : activer le serveur NFS côté NAS
  1. Se connecter sur l'interface Management du Synology.
  2. Aller dans Services réseauxNFS et cocher Activer NFS.
Deuxième étape : configurer le serveur NFS côté NAS
  1. Se connecter sur l'interface Management du Synology.
  2. Aller dans PrivilègesDossiers partagés puis sélectionner ou créer un dossier.
  3. Cliquer sur Privilèges NFS →Créer ; saisir le numéro IP du client qui cherchera à monter le répertoire dans le premier champs ; dans le deuxième champs, choisir entre Lecture seule et Lecture/écriture ; dans le troisième champs, choisir l'option de mappage (i.e. la façon dont le client sera perçu par le NAS).
Si vous avez configuré le serveur NFS de cette façon, sautez l'étape suivante qui n'est qu'une alternative en ligne de commande.

Deuxième étape alternative : configuration en ligne de commande
  1. Se connecter au NAS via telnet ou ssh.
  2. Si le fichier /var/lib/nfs/rmtab n'existe pas, le créer :
    touch /var/lib/nfs/rmtab
  3. Taper vi /etc/exports pour éditer le fichier exports.
  4. Pour pouvoir partager le répertoire /volume1/data avec le client dont l'adresse IP est 192.168.0.20 en lui donnant les droits de lecture et d'écriture et en le mappant avec l'utilisateur d'uid 1027 et de gid 100, ajouter la ligne :
    /volume1/data 192.168.0.20(rw,all_squash,anonuid=1027,anongid=100)
    (Rem : pour connaître l'uid et le gid d'un utilisateur donné, saisir dans un schell la commande id nom_utilisateur)
  5. Valider les modifications du fichier exports :
    /usr/sbin/exportfs -a
Dernière étape : monter les répertoires côté client (votre station de travail)
  1. Installer le paquet nfs-common pour pouvoir utiliser NFS, soit comme client soit comme serveur.
  2. Pour accéder avec le protocole NFS au répertoire /volume1/data du NAS, en le montant dans le répertoire /media/Synology-Data, il faut ajouter à votre fichier /etc/fstab la ligne suivante :
    192.168.0.23:/volume1/data /media/Synology-Data nfs user,auto,exec 0 0
  3. Monter le répertoire :
    mount /media/Synology-Data

dimanche 16 novembre 2008

Environnement verbatim personnalisé sous Kile

Kile est un bon éditeur LaTeX. Cependant, sous Ubuntu - Hardy Heron, la configuration d'un nouvel environnement verbatim en utilisant l'interface (Settings → Configure Kile ... → LaTeX → General → Configure...) ne fonctionne pas. Pour parvenir à ses fins, il faut éditer directement le fichier : ~/.kde/share/apps/katepart/syntax/latex.xml. Si le fichier n'existe pas, copier le fichier /usr/share/apps/katepart/syntax/latex.xml avant de l'éditer.

sudo, gksudo, kdesudo : effectuez des tâches en tant que root

sudo (SuperUser DO) est l'outil permettant à un utilisateur (par défaut, le premier utilisateur créé lors de l'installation d'Ubuntu) d'exécuter des tâches d'administration. sudo s'utilise de la manière suivante :
sudo commande
sudo est utilisé uniquement pour les commandes et les programmes fonctionnant dans une console. Pour les applications fonctionnant en mode graphique, il faut utiliser gksudo pour l'environnement GNOME et kdesudo pour l'environnement KDE.

mardi 4 novembre 2008

Regénérer son ficher xorg.conf sous Ubuntu

Si votre fichier xorg.conf sous Ubuntu est en vrac, voici un moyen simple de repartir sur de bonnes bases :
sudo dpkg-reconfigure -phigh xserver-xorg

Comment utiliser un vidéo-projecteur sous Linux

Sous Linux, il suffit de connecter le vidéo-projecteur, de l'allumer, puis de redémarrer le serveur X (Ctrl+Alt+Del). Au lieu de redémarrer le serveur X, vous pouvez aussi saisir dans un Terminal la commande :
xrandr --auto
Ces deux manipulations ont pour effet de cloner l'affichage de l'écran de l'ordinateur portable sur la sortie vidéo. Une fois la projection terminée et le vidéo-projecteur débranché, la même manipulation permet de retrouver sa configuration de départ.
L'intérêt d'utiliser la commande xrand est qu'elle ne redémare pas le serveur X et n'oblige donc pas à se reloguer. Cette manipulation semble bien fonctionner avec les systèmes debian et ubuntu à jour (je n'ai pas testé sur d'autres système).

Projeter avec un vidéo-projecteur sous un Linux récalcitrant

Même avec un système récalcitrant, il existe une solution qui fonctionne dans la plupart des cas pour projeter avec un vidéo-projecteur sous Linux. Pour cela, il faut être capable d'allumer le portable sans démarrer le système, ce qui est le cas si vous utilisez un dual boot par exemple.
La procédure est la suivante :
  1. Allumer le vidéo-projecteur et le connecter à l'ordinateur portable.
  2. Allumer l'ordinateur portable sans démarrer le système.
  3. Utiliser la combinaison de touche adéquate pour basculer sur la sortie video. A ce stade, l'écran devrait basculer sur le vidéo-projecteur.
  4. Démarrer votre système normalement.
L'inconvénient de cette solution de fortune est que vous n'avez plus d'affichage sur l'écran du portable. Merci à Robert pour m'avoir indiqué cette astuce.

Afficher les informations sur les écrans connectés : commande xrandr

Pour afficher les informations (résolutions disponibles, résolution active, ...) pour chaque écran connecté à son serveur X, il suffit de taper :
xrandr
Si vous venez de connecter un vidéo-projecteur sur votre portable, vous pouvez cloner votre affichage sur la sortie vidéo en tapant (il faut que le vidéo-projecteur soit allumé) :
xrandr --auto

vendredi 19 septembre 2008

Quelques liens pertinents concernant UIMA

L'objet de ce billet est de rassembler une sélection de liens que je juge pertinents concernant l'environnement de développement UIMA (Unstructured Information Management Architecture).

Liens fondamentaux
Sélection d'Articles

lundi 8 septembre 2008

Empêcher une application de se lancer au démarrage de Windows

C'est simple : Menu Démarrer → Exécuter... → msconfig
Puis décocher dans l'onglet Démarrage l'application en question.

vendredi 29 août 2008

Wifi ou Wap pour accéder à Internet sous Windows Mobile ?

Pour configurer une connexion GPRS WAP permettant d'accéder à Internet (après avoir activé cette fonctionnalité chez votre opérateur préféré, bien entendu), il suffit de faire : Démarrer → Paramètres → Connexions → Configuration réseau.
Là, cochez Sélectionner votre opérateur pour configurer les services WAP, MMS, et Internet automatiquement puis choisissez votre opérateur (Bouygues dans mon cas). Le paramétrage se fait tout seul et la connexion GPRS WAP à Internet est automatique.
Par contre, pour pouvoir utiliser une connexion Wifi, il faut créer une nouvelle connexion : Démarrer → Paramètres → Connexions → Connexions → Avancés → Sélectionner des réseaux. Cliquer sur Nouveau... sous Les progr. se connectant à Internet automatiquement doivent utiliser ces param.:. Choisir un nom (ex. : ConWifi), puis, dans l'onglet Paramètres du proxy, cliquez dans la case Ce réseau se connecte à Internet, puis valider en cliquant sur ok en haut à droite.
Maintenant, avant d'accéder à internet, aller dans Démarrer → Paramètres → Connexions → Connexions → Avancés → Sélectionner des réseaux. Cliquer sur Bouygues WAP Settings sous Les progr. se connectant à Internet automatiquement doivent utiliser ces param.: si vous voulez utiliser la connexion GPRS WAP et ConWifi si vous voulez utiliser la connexion Wifi active.

PS : je n'aimes pas Windows.

jeudi 28 août 2008

Mes applications préférées sous Windows Mobile

  • Launcher v1.40 : Plugin écrit par Scott Seligman qui permet d'ajouter une barre de lancement rapide d'applications sur l'écran aujourd'hui. Pour ajouter une application, il suffit de placer un racourci dans le répertoire /Launcher/.
  • Total Commander : Gestionnaire de fichier qui remplace avantageusement celui de WindowsMobile.
  • Google Maps : Très utile pour trouver son chemin, un restau, etc.
  • TomTom : Logiciel de navigation routière qu'il est inutile de présenter, mais pas de payer.
  • OggSync : Le seul moyen fonctionnant parfaitement que j'ai trouvé pour synchroniser mon agenda avec tous mes Google Calendars, mais c'est payant...
  • Funambol : Client permettant la synchronisation de l'agenda avec google agenda. Hélas, n'est plus utile depuis que ScheduleWorld est devenu payant

dimanche 17 août 2008

Réencodage vidéo pour la FreeBoxHD : transcode

Un décalage entre le son et l'image survient parfois lors de la lecture de certains fichiers avi avec la FreeBoxHD. Ce décalage est variable et peut s'amplifier avec le déroulement de la vidéo.
Il est possible de pallier ce problème en réencodant la vidéo avec l'outil transcode de la manière suivante (en ligne de commande sous Linux) :
transcode -i FichierSource.avi -o FichierCible.avi -y xvid
Ce réencodage peut également solutionner d'autres cas où la FreeBoxHD ne parvient tout simplement pas à lire la vidéo.
Pour réencoder toutes les vidéos d'un répertoire, vous pouvez procéder de la manière suivante :
transcode -i RépertoireSource -y xvid --dir_mode Cible
Transcode va générer des fichiers portant les noms suivant :
  • Cible-000.avi
  • Cible-001.avi
  • ...

jeudi 29 mai 2008

Mes modules complémentaires pour Firefox et Thunderbird

Modules complémentaires concernant Firefox
  • Adblock Plus : filtrage du contenu des pages Web (éliminer publicité, ...).
  • Foxmarks Bookmark Synchronizer : synchronisation automatique de ses bookmarks sur plusieurs ordinateurs.
  • Google Toolbar for Firefox : offre des fonctionnalités de recherche qui deviennent très vite indispensables.
  • Google Preview : permet de visualiser en miniatures les sites renvoyés lors d'une recherche sur google.
  • Firebug : outil de débogage de pages Web sous Firefox.
Modules complémentaires concernant Thunderbird
  • Nostalgy : raccourcis clavier pour déplacer des messages, avec une complétion automatique des noms de dossier. C'est le module indispensable proposé par Alain Frisch pour tous ceux qui archivent leurs mails dans un nombre important de dossier !
  • Dictionary Switcher : commuter simplement le dictionnaire de la correction orthographique lors de l'écriture d'un message.
  • Image Zoom : permet de zoomer ou dézoomer une image se trouvant dans un courriel.
  • Remove Duplicate Messages : permet de supprimer les courriels en doublon.

vendredi 4 avril 2008

Tutoriel UIMA III : enchaîner des composants d'annotation

L'opération consistant à enchaîner plusieurs composants est extrêmement simple et ne requiert aucune écriture de code.
  1. Créer un Aggregate Analysis Engine Descriptor :
    File → New → Others → UIMA → Analysis Engine Descriptor File ; préciser le nom dans le champs File name: puis Finish. Faire ensuite un clic droit sur le fichier .xml ainsi créé puis Open With → Component Descriptor Editor. Dans l'onglet Overview, cocher Aggrerate comme Engine Type.
  2. Dans l'onglet Aggregate, ajouter tous vos annotateur en cliquant sur Add...
  3. Enfin, dans l'onglet Capabilities, il faut préciser les types utilisés, et s'ils le sont en entrée ou en sortie, en cliquant sur Add Type.
Tutoriel et guide du développeur UIMA (puis cliquer sur Tutorials and Users' Guides)
Sommaire UIMA sur ce blog

jeudi 20 mars 2008

Tutoriel UIMA II : paramétrage d'un composant d'annotation

  1. Déclarer des paramètres
    Pour déclarer des paramètres pour un composant, il suffit de se rendre dans l'onglet Parameters du descripteur XML de l'annotateur (clic droit sur le fichier .xml puis Open With → Component Descriptor Editor). L'onglet Parameter Settings permet de donner une valeur par défaut aux paramètres déclarés.
  2. Accéder aux paramètres
    Supposons que le paramètre maChaine de type String ait été préalablement déclarée au niveau du descripteur XML de l'annotateur (cf. ci-dessus). On peut accéder à ce paramètre dans le code Java de l'annotateur de la manière suivante :

    String monParametre = (String) this.getContext().getConfigParameterValue("maChaine");
    La méthode getContext() permet de récupérer un objet du type UimaContext qui centralise l'accès aux différentes facettes du contexte de l'annotateur comme les paramètres ou l'historique des événements (logging).
  3. Accéder aux paramètres depuis la méthode initialize()
    Un moyen plus propre d'accéder aux paramètres est de surcharger la méthode initialize(UimaContext), appelée automatiquement par le framework lors de l'instanciation de l'annotateur, qui reçoit justement comme paramètre un objet du type UimaContext :
    private String monParametre;
    public void initialize(UimaContext aContext) throws ResourceInitializationException {
      super.initialize(aContext);
      monParametre = (String) aContext.getConfigParameterValue("maChaine");
    }
Tutoriel et guide du développeur UIMA (puis cliquer sur Tutorials and Users' Guides)
Sommaire UIMA sur ce blog

mercredi 12 mars 2008

Comment utiliser un séparateur décimal point à la place de la virgule sous OpenOffice.org en français ?

Pour pouvoir utiliser le point comme séparateur décimal sous OpenOffice.org en français, il suffit de spécifier dans Format → Cellules → Nombres l'option Anglais.

Autre solution sous Ubuntu : aller dans Système Préférences ClavierAgencement, et choisir le clavier "France" et supprimer le clavier "France - Autre" (clavier par défaut).

lundi 10 mars 2008

Tutoriel UIMA I : création d'un composant d'annotation (Analysis Engine)

Ce billet décrit comment créer un composant d'annotation (Analysis Engine) UIMA simple qui segmente un fichier texte en mots.
  1. Préparation du projet dans Eclipse
    Lancer Eclipse puis : File → New → Other... → Java → Java Project → Next. Saisir un nom dans le champs Project name: puis cliquer sur Finish.
    Il faut ensuite attacher la librairie UIMA au projet : Project → Properties → Java Build Path → LibrariesAdd External JARs... ; sélectionner le fichier uima-core.jar dans le répertoire apache-uima/lib.
  2. Définir un type dans le schéma d’annotation
    Le schéma d’annotation commun (Common Analysis Structure ou CAS dans UIMA) encapsule toutes les annotations concernant le document analysé ainsi que le document lui-même. Il nous aurons besoin du type Token dans cette structure, nous allons donc le déclarer dans un système de types : File → New → Others → UIMA → Type System Descriptor File ; préciser le nom dans le champs File name: puis Finish.
    Faire ensuite un clic droit sur le fichier .xml ainsi créé puis Open With → Component Descriptor Editor. Dans l'onglet Type System cliquer sur Add Type et saisir le nom dans le champs Type Name: (ex : Token) et préciser uima.tacs.Annotation dans le champs Supertype:.
    L'action d'enregistrer vos modifications doit générer automatiquement les fichiers associés (ex : Token_Type.java et Token.java).
  3. Développer le code de l'annotateur
    Il faut créer une classe héritant de la classe JTextAnnotator_ImplBase correspondant à l'implémentation par défaut d'un annotateur de données textuelles : File → New → Class ; saisir le nom de la classe dans le champs Name: TokenAnnotator ; préciser la classe org.apache.uima.analysis_component.JCasAnnotator_ImplBase dans le champs Superclass: ; puis cliquer sur Finish.
    Il ne reste plus qu'à écrire le code proprement dit :
    import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
    import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
    import org.apache.uima.jcas.JCas;
    import java.text.BreakIterator;
    public class TokenAnnotator extends JCasAnnotator_ImplBase {
    public void process(JCas aJCas) throws AnalysisEngineProcessException {
    BreakIterator iterToken = BreakIterator.getWordInstance();
    iterToken.setText(aJCas.getDocumentText());
    int deb = iterToken.first();
    int fin = iterToken.next();
    while (fin != BreakIterator.DONE) {
    Token token = new Token(aJCas);
    token.setBegin(deb);
    token.setEnd(fin);
    token.addToIndexes();
    deb = fin;
    fin = iterToken.next();
    }
    }
    }
  4. Descripteur du composant d'annotation (Analysis Engine Descriptor)
    L'architecture UIMA impose qu'un annotateur soit décrit par un fichier XML appelé Analysis Engine Descriptor : File → New → Others → UIMA → Analysis Engine Descriptor File ; préciser le nom dans le champs File name: puis Finish.
    Faire ensuite un clic droit sur le fichier .xml ainsi créé puis Open With → Component Descriptor Editor. Indiquer le fichier java implémentant l'annotateur dans le champs Name of the java class file de l'onglet Overview.
    Dans l'onglet Type System, il faut énumérer les types que l'annotateur utilise. Cliquer d'abord sur Set DataPath dans la colonne Imported Type Systems pour indiquer le chemin du fichier XML contenant schéma d’annotation commun (Type System Descriptor). Dans la même colonne, cliquer ensuite sur Add... pour sélectionner ce fichier.
    Enfin, dans l'onglet Capabilities, il faut préciser, parmi les types énumérés dans l'onglet Type System, lesquels sont utilisés et s'ils le sont en entrée ou en sortie. Cliquer sur Add Type, sélectionner la ligne correspondant à votre token et préciser que le type est utilisé en sortie uniquement (Out) puis valider (Ok).
  5. Tester le composant
    Il faut commencer par mettre à jour la variable d'environnement CLASSPATH pour y ajouter le chemin vers votre répertoire bin. Dans un shell, saisir :
    export CLASSPATH=$CLASSPATH:chemin/vers/votre/bin
    Vous pouvez alors exécuter le script documentAnalyzer.sh qui vous permettra de tester votre annotateur.
  6. Tester le composant sous Eclipse
    Commencer par importer le projet exemple d'UIMA : File → Import... → General → Exusting Project into Workspace → Next ; puis dans Select root directory sélectionner le répertoire racine d'UIMA ; puis Finish.
    Il est maintenant possible d'exécuter directement le CPE GUI pour tester le composant :
Tutoriel et guide du développeur UIMA (puis cliquer sur Tutorials and Users' Guides)
Sommaire UIMA sur ce blog

Les entités nommées : Installer TagEn sous Linux

Les entités nommées sont une appellation générique pour désigner les noms propres de personnes, de lieux, d'organismes, mais aussi des dates, des prix, etc.

TagEN est un outil de reconnaissance d'entités nommées développé par Jean-François Berroyer et Thierry Poibeau, au Laboratoire d'Informatique de Paris-Nord (LIPN). L'implémentation de TagEN est basée sur des automates à états-finis et utilise pour cela la plate-forme Unitex développée à l'Université de Marne-la-Vallée.

Pour installer TagEN, il faut commencer par le télécharger, puis :

  1. Décompresser l'archive TagEN.tar.gz à l'endroit définitif de son choix
  2. Exécuter le script compile dans le répertoire TagEN/src
Pour utiliser TagEN, il faut lui spécifier l'un des modes renseignés dans le fichier tagen.conf, comme :
  • mucfr : entités nommées MUC (français) ;
  • equer : domaine médical (français) ;
  • bio : genes, proteins and species names (english) ;
  • carnivore : carnivore plants (english) ;
Par exemple, pour exécuter TagEN sur le fichier ptprince.txt en utilisant le mode mucfr, il faut saisir la commande :
./tagen :mucfr ptprince.txt
Voici quelques extraits du fichier ptprince.tag.txt produit en sortie :

[...]Quand il est <timex><time>midi</time></timex> aux <enamex><location>Etats-Unis</location></enamex>, le soleil, tout le monde sait, se couche sur la <enamex><location>France</location></enamex>.[...]
[...]J'ai vu une maison de <numex><money>cent mille francs</money></numex>[...]
[...]le rayonnement du cadeau de <timex><date>Noël</date></timex> que je recevais[...]
[...]ce sera ce soir vers <timex><time>sept heures quarante</time></timex>[...]
Remarque : il existe une option -t (ex : ./tagen -t :mucfr ptprince.txt) qui ne semble pas documentée et qui produit un résultat plus synthétique contenant le type et les offsets des entités nommées identifiées :
enamex 31 36
person 31 36
enamex 367 372

mardi 4 mars 2008

Résoudre un problème d'affichage ou de clavier sous Ubuntu

Sous Ubuntu, depuis une console, la commande suivante
sudo dpkg-reconfigure xserver-xorg
permet de régénérer le fichier /etc/X11/xorg.conf. Cette commande peut permettre de régler des problèmes de serveur graphique, de résolution d'écran, de clavier ou de souris. Toute la configuration, bien assistée et bien explicitée, se passe en mode texte. Il faut donc utiliser les flèches, la touche TAB et la touche Entrée pour naviguer et la touche espace pour les cases à cocher.

vendredi 29 février 2008

Les ampoules basse consommation participent au réchauffement climatique !

Dans son livre, L'énergie en 21 questions, chapitre 7, Pierre Bacher nous explique que les lampes basse consommation sont très fortement recommandées dans les grandes installations commerciales et dans les 10% de logements qui utilisent des énergies renouvelables. Mais pour 90% des autres foyers, le gain en production de CO2 d'une ampoule basse consommation est soit pratiquement nul (dans le cas d'un chauffage électrique) soit complètement négatif (dans le cas d'un chauffage au gaz par exemple). L'explication vient du fait qu'une ampoule classique perd énormément d'énergie (son rendement est faible), mais que l'énergie perdue se transforme en chaleur : or, quand on chauffe son logement, cette énergie n'est pas perdue. Ainsi, lorsque l'on utilise des ampoules basse consommation, le système de chauffage du logement doit compenser cette perte d'énergie calorifique. Le bilan globale en terme de production de CO2 n'est alors souvent pas favorable. La publicité faite pour ces lampes peut se justifier comme symbole des économies d'énergie, mais pas comme moyen de préserver le climat !

La fonte des glaces des pôles entraine-t-elle la monté du niveau de la mer ?

La physique c'est fantastique est un site sympathique de vulgarisation concernant la physique et la chimie. Par exemple, ce site explique ici pourquoi la fonte d'un glaçon flottant à la surface d'un verre rempli d'eau à ras bord ne fait pas déborder le verre. La conclusion est par contre très surprenante :
Ce problème [...] permet de mieux comprendre l'actualité : il est souvent dit dans les médias que le réchauffement de la Terre va faire fondre les glaces du pôle et qu'ainsi certains pays seront engloutis. Or ceci est faux [...] en fait ce n'est pas la fonte des glaces qui va provoquer la montée des eaux des océans mais un autre phénomène très courant : un liquide se dilate [...] quand la température augmente [...]
Cette conclusion est tout simplement erronée. En effet, il faut distinguer deux sortes de glaces :
  • les calottes, posés sur les continents, qui peuvent atteindre plusieurs milliers de mètres d'épaisseur,
  • et les banquises, flottant sur la mer, qui peuvent atteindre 15 mètres d'épaisseur.
S'il est exact que la fonte de la banquise n'entraine pas directement de montée du niveau de la mer, il en va tout autrement pour les calottes de l'Antarctique et du Groenland ! Ainsi, la fonte totale de ces calottes entrainerait une montée du niveau de la mer d'environ 77 mètres ! Depuis 1880, le niveau de la mer est monté de 12 cm environ. 5 cm sont dus à la dilatation thermique et 7 cm à la fonte des calottes.

mercredi 27 février 2008

TV multiposte (télévision sur l'ordinateur) avec VLC

En étant abonné à Free, pour pouvoir regarder une chaine télé, ou écouter une station de radio, sur l'ordinateur, il faut :
  1. Configurer le pare-feux (firewall). Par exemple, avec Firestarter, il suffit, dans l'onglet Politique du trafic entrant, d'autoriser les connexions de l'hôte mafreebox.freebox.fr.
  2. Lancer VLC, puis Fichier → Ouvrir un fichier (avancé)... et saisir http://mafreebox.freebox.fr/freeboxtv/playlist.m3u dans le champs Ouvrir et enfin valider (Ok). Faites ensuite apparaitre la Liste de lecture et choisissez votre chaine.
Le plus simple est de configurer un raccourci (Lanceur d'application personnalisé) avec la commande suivante :
vlc -vvv http://mafreebox.freebox.fr/freeboxtv/playlist.m3u

jeudi 21 février 2008

Installation d'UIMA sous Linux (... Suite)

  1. Verifying Your Installation (extrait du fichier README dans le répertoire apache-uima)
    To test the installation, run the documentAnalyzer.sh:
    $ documentAnalyzer.sh
    This should pop up a Document Analyzer window. Set the values displayed in this GUI to as follows:
    • Input Directory: UIMA_HOME/examples/data
    • Output Directory: UIMA_HOME/examples/data/processed
    • Location of Analysis Engine XML Descriptor: UIMA_HOME/examples/descriptors/analysis_engine/PersonTitleAnnotator.xml
    Replace UIMA_HOME above with the path of your Apache UIMA installation.

    Next, click the Run button, which should, after a brief pause, pop up an Analyzed Results window.
    Double-click on one of the documents to display the analysis results for that document.

  2. View the examples code with Eclipse (extrait du document UIMA Overview & SDK Setup section 3.2. Setting up Eclipse to view Example Code)

    You can create a special project in Eclipse to hold the examples. Here's how:
    • In Eclipse, if the Java perspective is not already open, switch to it by going to:
      Window → Open Perspective → Java
    • Select the File Import menu option.
    • Select General/Existing Project into Workspace and click the Next button.
    • Click Browse and browse to the UIMA_HOME directory.
    • Click Finish. This will create a new project called uimaj-examples in your Eclipse workspace. There should be no compilation errors.
    To verify that you have set up the project correctly, check that there are no error messages in the Problems view.

Installation complète de l'environnement de développement UIMA sous Linux

Ce billet décrit comment installer complètement l'environnement de développement UIMA sous une station de travail Linux sans avoir besoin des droits d'administrateur. Par installation complète il faut comprendre l'installation de tout ce qui est nécessaire : le SDK Java, Eclipse, les plugins nécessaires et le SDK UIMA.
  1. Installation du SDK Java

    La première étape consiste, si ce n'est déjà fait, à installer la dernière version du kit de développement de logiciels (SDK) Java. Commencer par télécharger le fichier d'installation (jdk-6u4-linux-i586.bin dans mon cas) dans le répertoire de son choix. Saisir ensuite, dans un shell, en étant dans le répertoire où le fichier a été téléchargé et où l'installation doit se faire :

    $ chmod +x jdk-6u4-linux-i586.bin
    $ ./jdk-6u4-linux-i586.bin
    (Il vous faut répondre yes aux termes du contrat pour réaliser l'installation)

  2. Installation de l'environnement de développement intégré (IDE) Eclipse

    Si ce n'est déjà fait, installer la dernière version d'Eclipse (version 3.3.1.1, build id M20071023-1652 au moment de l'écriture de ce billet). L'installation se résume à décompresser à l'endroit de son choix le fichier téléchargé.
    Pour exécuter la version d'Eclipse qui vient d'être d'installée avec la version de Java installée précédemment, il faut saisir dans un shell une ligne de commande du style (penser à créer un raccourci) :

    $ ~/eclipse/eclipse -vm ~/jdk1.6.0_04/bin/
    Ensuite, dans Eclipse, il faut préciser la version de Java qui sera utilisée. Aller dans :
    Window → Preferences... → Java → Installed JREs → Add...
    Puis préciser :
    JRE name : Java jdk1.6.0_04
    JRE home directory : ~/jdk1.6.0_04
    Valider en cliquant sur Ok, puis penser à cocher la nouvelle version du JRE ajoutée avant de valider de nouveau en cliquant sur Ok.
    Vérifier également, la cas échéant, que la variable d'environnement ECLIPSE_HOME est correcte (i.e. désigne bien le répertoire ~/eclipse) dans :
    Window → Preferences... → Java → Build Path → Classpath Variables
  3. Installation du plugin Eclipse EMF

    Il faut ensuite installer le plugin EMF utilisé par UIMA. En fait, avec la dernière version d'Eclipse, Eclipse Modeling Framework (EMF) Updates apparait automatiquement dans la liste des sites d'installation automatique de plugins (sinon, se référer à EMF Update Manager Site). Une fois Eclipse lancé, il suffit donc de faire :

    Help → Software Updates → Find and Install... → Search for new features to install → Next
    Puis sélectionner Eclipse Modeling Framework (EMF) Updates, Ignore features not applicable to this environment et Automatically select mirrors puis Finish.
    Ensuite déployer Eclipse Modeling Framework (EMF) Updates pour sélectionner EMF SDK 2.3.1 puis :
    Next → I accept the terms in the license agreements → Next → Finish → Install All → Yes
  4. Installation du plugin Eclipse UIMA

    On peut alors passer à l'installation du plugin Eclipse d'UIMA :

    Help → Software Updates → Find and Install... → Search for new features to install → Next → New Remote Site...
    Saisir :
    Name : Apache UIMA
    URL : http://www.apache.org/dist/uima/eclipse-update-site
    Puis Ok.
    Sélectionner Apache UIMA, Ignore features not applicable to this environment et Automatically select mirrors puis Finish.
    Sélectionner Apache UIMA puis :
    Next → I accept the terms in the license agreements → Next → Finish → Install All → Yes
  5. Installation du SDK UIMA

    Il faut enfin installer le kit de développement de logiciels (SDK) UIMA. Télécharger la dernière version du SDK d'UIMA, puis décompresser à l'endroit de votre choix le fichier téléchargé.
    Éditez votre fichier .bashrc pour définir les variables d'environnement UIMA_HOME et JAVA_HOME et modifier le PATH en ajoutant les lignes suivante à la fin du fichier :

    export UIMA_HOME="~/apache-uima"
    export JAVA_HOME="~/jdk1.6.0_04"
    export PATH=${PATH}:${UIMA_HOME}/bin
    Puis saisir la commande suivante dans un shell pour mettre à jours les chemins des exemples du SDK :
    $ adjustExamplePaths.sh
    Penser à lire le fichier README dans le répertoire apache-uima pour plus d'information sur l'installation du SDK UIMA ainsi que pour une procédure permettant de tester votre installation (également décrite ici).

Sous Eclipse, vérifier également que la variable d'environnement UIMA_HOME est correcte (i.e. désigne bien le répertoire ~/apache-uima) dans :

Window → Preferences... → Java → Build Path → Classpath Variables
Si ce n'est pas le cas, il faut la modifier (bouton Edit...) ou la définir (bouton New...).

Si tout s'est bien passé, tous les fichiers concernant l'installation complète de l'environnement de développement UIMA doivent être répartis dans les répertoires apache-uima pour le SDK UIMA, eclipse pour l'environnement de développement intégré Eclipse et les plugins installés et jdk1.6.0_04 pour le JDK Java.

UIMA Manuals and Guides (Overview and Setup)
Sommaire UIMA sur ce blog

UIMA (Unstructured Information Management Architecture)

UIMA (Unstructured Information Management Architecture) est un framework de développement et de déploiement d'applications de traitement des données non structurées.

samedi 16 février 2008

Mise à jour du cours d'UML 2.0

Je viens de mettre à jour le cours d'UML 2.0. Le chapitre sur les diagrammes de classes a été substantiellement remanié avec, entre autres, la prise en compte de la notion de possession de terminaison d'association introduite dans la version 2.1.1 d'UML. Parmi les nouveautés, on peut également noter la présence de travaux dirigés, sans la correction, dans la version pdf du cours.

mardi 12 février 2008

LaTeX sous Ubuntu

Pour installer et travailler avec LaTeX sous Ubuntu, il faut installer les paquets suivant :
  • texlive correspond à l'installation minimale de LaTeX ;
  • texlive-fonts-recommended pour les fonts ;
  • texlive-lang-greek pour le symbole € ;
  • latex-ucs pour la prise en charge de l'UTF8 dans les documents LaTeX ;
  • latex-beamer pour les présentations en LaTeX ;
  • kile est un bon éditeur LaTeX ;
  • jabref ou pybliographer comme gestionnaire bibliographique ;
  • hevea pour générer des pages html.
Remarque : si vous êtes un utilisateur régulier de LaTeX, le mieux est d'installer le paquet texlive-full qui installe tous les paquets texlive.

lundi 4 février 2008

Configurer un moniteur LCD 22 pouces large (16:10) sous Ubuntu gutsy

Pour configurer un moniteur large (16:10) sous Ubuntu gutsy, il faut procéder de la manière suivante.
  1. Aller dans : Système > Administration > Écran et Affichage
  2. Choisissez votre modèle, par exemple Générique > LCD Panel 1680 x 1050 pour moniteur 22 pouces au format 16:10
  3. Cocher la case Écran large
C'est la troisième étape qui est contre-intuitive. En effet, on ne s'attend pas, après avoir spécifié LCD Panel 1680 x 1050, que la résolution 1680 x 1050 ne soit pas disponible ! Elle le devient si on coche la case Écran large ...
Il en va de même pour tous les écrans larges.

jeudi 24 janvier 2008

Tableaux à deux dimensions et passages de paramètres en langage C

Dans le langage C, les crochets que l'on utilise pour encadrer les index d'un tableau ne sont, en réalité, qu'une façon de déréférencer un pointeur.
Si ptr est un pointeur, et n un nombre entier, alors l'expression ptr[n] est strictement équivalente à *(ptr + n). Vous pourrez vérifier que ces deux notations sont équivalentes par vous-même.
Ces deux notations permettent de déréférencer un pointeur sur un tableau à une dimension. Intéressons-nous maintenant au cas d'un tableau à deux dimensions défini de la manière suivante :
int matrice[NB_LIGNES][NB_COLONNES]
Dans ce cas, l'expression matrice[ligne][colonne] est strictement équivalente à :
matrice[(NB_COLONNES * ligne) + colonne]
elle-même strictement équivalente à :
*(matrice + (NB_COLONNES * ligne) + colonne)
Ainsi, le compilateur a besoin du nombre de colonnes d'un tableau à deux dimensions pour pouvoir réinterpréter une notation du type matrice[ligne][colonne]. C'est pourquoi cette dimension doit être précisée lors du passage d'un tableau à deux dimensions comme paramètre d'une fonction.
En fait, lors de la transmission d'un vrai tableau à deux dimensions, le paramètre effectivement transmis est un pointeur sur le premier sous-tableau, et non un pointeur sur le premier élément.
Le passage du tableau matrice à une fonction devra donc se faire de la façon suivante :
void fonction(int (*matrice)[NB_COLONNES]) ;
Une autre notation possible, bien qu'elle masque la véritable nature du paramètre transmis (ce qui n'est pas bien), est :
void fonction(int matrice[][NB_COLONNES]) ;
L'inconvénient évident est que les fonctions ainsi définies ne sont absolument pas générales puisqu'elles ne peuvent manipuler qu'un tableau de NB_COLONNES. Le prix de la généricité est l'abandon du vrai tableau au profit de l'allocation dynamique.

dimanche 20 janvier 2008

VLC Media Player, un client UPnP sous Ubuntu ?

VLC permet d'accéder directement au contenu UPnP AV mis à disposition sur le réseau. Pour cela, Vue > Liste de lecture... puis Gérer > Découverte de services > Découverte Universal Plug'n'Play (Intel) et le ou les serveurs UPnP AV apparaissent dans la liste de lecture.
Hélas, chez moi, VLC n'arrive pas encore à développer complètement l'arbre UPNP : le client UPnP de VLC n'est donc pas encore utilisable.

dimanche 13 janvier 2008

Rhythmbox, un client UPnP sous Ubuntu ?

Théoriquement, Rhythmbox supporte maintenant l'UPnP. C'est très bien pour lire depuis Ubuntu la musique stockée sur son NAS et mise à disposition sur le réseau par une application comme TwonkyMedia par exemple. Cependant, Ubuntu Gutsy Gibbon n'est visiblement pas encore prêt pour ça. Tout d'abord, impossible d'activer dans Rhythmbox le greffon UPnP (Edition > Greffons... > Prise en charge du partage UPnP). Visiblement un problème de dépendance non renseignée par Rhythmbox. Ce n'est pas grave, il suffit d'installer le paquet python-louie avec Synaptic, par exemple, et le tour est joué : on peut activer le greffon UPnP. Mais il ne fait rien ... En effet, pour fonctionner correctement, il faut aussi installer le paquet python-coherence qui lui, n'est pas encore disponible pour Ubuntu Gutsy Gibbon, mais le sera pour la prochaine version : Ubuntu Hardy Heron. Rendez-vous donc en avril 2008 pour un support de l'UPnP probablement effectif avec Rhythmbox.

jeudi 3 janvier 2008

Lenteur du FTP vers la FreeboxHD causée par un problème d'interférences Wifi !

Depuis quelques semaines, le FTP vers la FreeboxHD est devenu lent et inutilisable avec un taux de transfert instable et inférieur à 5 KB/s ! Après de multiples tests et tentatives infructueuses de joindre la hotline de Free, j'ai fini par mettre le doigt sur le problème : interférences avec le Wifi du DLink DIR-635 ! En coupant, ou en baissant l'intensité Wifi du routeur tout rentre dans l'ordre (transfert stable de l'ordre de 1 MB/s). Il est probable qu'en éloignant les deux bestioles on obtienne le même effet. Curieusement, je n'avais pas de problème avec la diffusion de chaines de TV par ADSL. Dans tous les cas, il est bon de savoir que l'émission Wifi d'un routeur peut interférer avec la connexion Mimo (donc Wifi également) entre la Freebox et la FreeboxHD ...

Freebox : tout bien mais pas bien tout

Je possède une Freebox version 5. Je l'utilisais au départ simplement pour sa fonction modem (fonctions routeur et Wifi désactivées). La Freebox était connectée au routeur DLink DI-704P qui gérait un réseau filaire (deux ordinateurs, le Synology DS107e et une imprimante).
L'arrivée d'un smartphone et du Noxon 2 m'ont contraint à activer les fonctions routeur et Wifi de la Freebox afin de bénéficier du Wifi. Le routeur DLink DI-704P s'est alors transformé en simple serveur d'impression. Le résultat est que j'ai énormément perdu en fluidité du réseau. Visiblement, la Freebox n'assure pas du tout pour réaliser correctement les fonctions de routeur, de Wifi et de modem en même temps. Par exemple, si le NAS (DS107e) utilise plusieurs connections Internet, même avec un trafic très faible (proche de zéro), la bande passante pour les autres postes (PC et Noxon) devient très difficile et saccadée. La navigation sur Internet devient une galère et l'écoute d'une radio ou d'une musique disponible par UPNP avec le Noxon quasiment impossible. En fait, le réseau devient fluide uniquement si un seul client est actif à la fois ...
L'achat d'un routeur Wifi (DLink DIR-635) et la désactivation des fonctions routeur et Wifi de la Freebox m'ont permis de retrouver un réseau très fluide. Je déconseille donc d'utiliser la Freebox pour autre-chose que sa fonction de modem !