sábado, 28 de mayo de 2011

Annal AIHM

Luz y yo hemos considerado absolutamente necesario que vierais el enunciado de nuestro examen (aqui lo llaman ANNAL, es por algo...) de aihm (is2, pero que no tienen nada que ver)

el link directo es el siguiente: https://www-licence.ufr-info-p6.jussieu.fr/lmd/licence/annales/aihm/textes/tx_2009_02_mai_txt.html

esto es solo lo que hay que leerse para poder hacer algo, hacer algo ya es otro tema...
estamos super desesperadas, es todo lo que tenemos que decir.




1. Question de cours (30 minutes, 5 points)

* Cet exercice est indépendant des autres exercices et ne suppose la compréhension d’aucune annexe.

►1a. Pour chacune des lignes L1 à L5 (texte source n° 1), précisez clairement si la ligne est compilable (sans erreur ni avertissement) ou non ; dans les deux cas, précisez clairement pour quelle(s) raison(s).

►1b. Pour chacune des lignes B.1 à B.5 de la classe B du texte source n° 2, précisez clairement si la ligne est compilable (sans erreur ni avertissement) ou non. Si ce n’est pas le cas, précisez clairement pour quelle(s) raison(s) et proposez quel(s) modificateur(s) (parmi new, virtual, override) ajouter ou supprimer à cette ligne pour qu’elle devient compilable.

►1c. Pour chacune des cinq lignes éditées par le programme Exo_Redefinition (texte source n° 3), énoncez la ligne éditée et justifiez votre réponse avec clarté et précision.

2. Le modèle du catalogue des dictionnaires, classe WebDicoData (45 minutes, 7 points)

* Cet exercice suppose la compréhension des annexes 1 et 2.

* Prenez connaissance des contraintes et des indications d’implémentation de l’annexe 2C.

►2a. Énoncez la déclaration et l’initialisation des champs qui vous paraissent nécessaires pour implémenter les deux modèles.

►2b. Proposez une implémentation des méthodes de service qui vous paraissent utiles pour implémenter les méthodes et propriétés des questions qui suivent.

►2c. Proposez une implémentation des méthodes Add, Replace et AddOrReplace.

►2d. Proposez une implémentation de la propriété AsArray.

►2e. Proposez une implémentation des propriétés CurrentInfos et CurrentTitle.

3. Le cluster d’ihm, classe WebDicoCluster (45 minutes, 8 points)

* Cet exercice suppose la compréhension des annexes 1, 2 et 3.

* Prenez connaissance des indications d’implémentation figurant à l’annexe 3.

►3a. Énoncez les champs qui sont nécessaires pour l’implémentation du cluster. Ne mentionnez pas les champs associés aux composants qui sont pris en charge par le concepteur.

►3b. Proposez un énoncé pour le constructeur du cluster. Ne mentionnez pas l’initialisation des composants pris en charge par le concepteur.

►3c. Énoncez, s’il y a lieu, la méthode à abonner à l’événement ApplicationOpen du composant events.

►3d. Énoncez, s’il y a lieu, les méthodes qu’il vous semble nécessaire d’abonner à des événements de notification de changement exposés par les modèles mvc (du plugin WebDiconaryPlugin ou des autres plugins).

►3e. Énoncez la méthode qui gère la validation des actions (à abonner à l’événement ApplicationIdle du composant events).

►3f. Proposez un énoncé pour la méthode à associer à l’événement Execute de l’action acDicoFind.

►3g. Énoncez la méthode qui archive l’état du cluster et du catalogue des dictionnaires (à abonner à l’événement Archive du composant events).

Texte source n° 1 (question 1a)

class A {
private A( int x ) { }
protected A( string s ) { }
public A( A a ) { }
}

class B : A {
public B( int x ) : base( x ) { } // L1
protected B( string s ) : base( s ) { } // L2
private B( B b ) : base( b ) { } // L3
}

class X : A { } // L4

class Y : A {
public Y( string s ) { } // L5
}

Texte source n° 2 (question 1b)

class A {
private void Change( ) { } // A.1
protected virtual void Change( int i ) { } // A.2
protected static string Change( byte b ) { return ""; } // A.3
protected virtual string Change( bool b ) { return ""; } // A.4
}

class B : A {
private virtual void Change( float f ) { } // B.1
protected string Change( byte b ) { return ""; } // B.2
protected override string Change( double d ) { return ""; } // B.3
private static new bool Change( int i ) { return false; } // B.4
public override new string Change( bool b ) { return ""; } // B.5
}

Texte source n° 3 (question 1c)

public class A {
public string name = "A" ;
public virtual string Name { get { return name ; } }
private string M1 { get { return name + ".M1" ; } }
protected string M2 { get { return name + ".M2" ; } }
public string M3 { get { return name + ".M3" ; } }
}

public class B : A {
private new string name = "B" ;
public override string Name { get { return name ; } }
public string M1 { get { return ((A) this).name ; } }
public new string M2 { get { return ((A) this).Name ; } }
public new string M3 { get { return base .Name ; } }
}

public class Exo_Redefinition {
static void CW( string s ) { System.Console.WriteLine( s ) ; }
static void Main() {
B refB = new B() ;
CW( "cas 1 : " + ((A) refB).Name ) ;
CW( "cas 2 : " + ((B) refB).name ) ;
CW( "cas 3 : " + refB .M1 ) ;
CW( "cas 4 : " + refB .M2 ) ;
CW( "cas 5 : " + refB .M3 ) ;
}
}

Annexe 1 : spécifications générales

Il existe de nombreux dictionnaires accessibles en ligne. Ainsi, par exemple, le Centre national de ressources textuelles et lexicales (cnrtl), qui dépend [encore] du cnrs, propose le Trésor de la langue française informatisé (tlfi), dictionnaire élaboré entre 1960 et 1994, initialement édité en 16 volumes ; il propose également plusieurs éditions du Dictionnaire de l’Académie française ainsi que l’Encyclopédie de Diderot et d’Alembert (éditées en collaboration avec l’Université de Chicago). La fondation Wikipedia propose des dictionnaires dans de nombreuses langues. Bref, il y a matière à élaborer un plugin « WebDictionaryPlugin » pour l’Explorateur qui fournisse les fonctionnalités permettant d’afficher aisément la définition d’un mot.

L’interface d’utilisation

Comme la tendance est à la sobriété pour les ihm, l’interface d’utilisation de ce plugin est réduite à l’extrême et se présente sous la forme d’une barre d’outils comportant deux boutons et une combo box, sachant qu’un sous-menu « Dictionnaires » a été ajouté au menu principal (photo de gauche ci-dessous) :



Le plugin tient à jour un catalogue de dictionnaires, et l’un de ces dictionnaires fait office de dictionnaire courant. La boîte combo permet de saisir un mot qui se comprend comme le mot courant. Rechercher la définition du mot courant dans le dictionnaire courant revient à composer l’url de la page qui, au sein de ce dictionnaire, correspond à la définition de ce mot.

Un menu contextuel (photo de droite), qui s’ouvre lorsqu’on clique avec le bouton droit de la souris sur l’un quelconque des deux boutons, donne accès aux principales fonctionnalités du plugin (quelques autres fonctionnalités mineures sont accessibles via le menu « Dictionnaires » de la barre d’outils principale) :

acDicoFind (liée aussi au bouton de droite) : provoque l’affichage de la définition du mot courant selon le dictionnaire courant ;

acDicoChoose (liée aussi au bouton de gauche) : ouvre une fenêtre (photo du milieu ci-dessous) qui permet de choisir le dictionnaire courant dans le catalogue des dictionnaires ; l’icône de cette action est la favicon du dictionnaire courant (s’il en a une), ou une image par défaut sinon ;

acDicoEdit : ouvre le dialogue modal (photo de droite ci-dessous) permettant de saisir les informations spécifiant un dictionnaire en vue d’ajouter ou de modifier ces informations dans le catalogue ;

acDicoRemove : supprime le dictionnaire courant du catalogue des dictionnaires ;

acDicoClear : supprime tous les dictionnaires du catalogue des dictionnaires ;

acDicoCreateTab : action en style case à cocher qui indique (propriété Checked) si l’affichage des définitions doit se faire à chaque fois dans un nouvel onglet ;

acDicoShowTools : action en style case à cocher qui indique (propriété Checked) si la barre d’outils du plugin est visible ou non (cette action est accessible via le menu « Affichage »).



– la combo box, qui permet de saisir le mot courant, est associée à une la liste déroulante (photo de gauche) qui affiche un historique mru (most recently used) des mots dont la définition a été recherchée :

· chaque mot ne figure qu’une seule fois dans l’historique ;

· dès que la définition d’un mot a été recherchée (action acDicoFind), le mot est introduit au début de la liste s’il n’y figure pas, ou déplacé au début de la liste s’il y figurait déjà ;

– la photo du milieu montre l’affichage du catalogue des dictionnaires lié à l’action acDicoChoose ;

– la photo de droite montre le dialogue qui permet d’ajouter ou de modifier les informations spécifiant un dictionnaire Ces informations sont : un titre, une url de base pour former les url à soumettre au dictionnaire, et une clé de favicon optionnelle (relative au plugin des icônes WebFaviconPlugin).

Classes et interfaces exposées (espace de noms Psl.Explorer.Exposed)

On suppose que la librairie standard Psl.Explorer.dll contient les classes et interfaces suivantes :

– classe WebDicoInfos : classe associée aux informations relatives à un dictionnaire ;

– classe WebDicoKeys : classe exposant les clés des fonctionnalités exposées dans le registre d’application ;

– interface IWebDicoData : interface du modèle mvc du catalogue des dictionnaires.

Classes de l’implémentation du plugin (espace de noms Psl.Explorer.Dictionaries)

Le plugin des dictionnaires WebDictionaryPlugin est un plugin à chargement dynamique. Toutes les classes qui composent l’implémentation de ce plugin sont générées dans une librairie chargeable de manière dynamique nommée WebDictionaryPlugin.dll :

– WebDicoData : double modèle mvc implémentant l’interface IWebDicoData ;

– WebDicoCluster : cluster d’ihm comportant la barre d’outils et les menus du plugin ;

– WebDicoChooseDialog : fenêtre d’affichage du catalogue pour choisir le dictionnaire courant ;

– WebDicoEditDialog : fenêtre de dialogue modale pour la saisie des informations d’un dictionnaire ;

– WebDicoTools : boîte à outils fournie (méthodes de classe pour faciliter l’implémentation).

Annexe 2 : classes et interfaces exposées

Annexe 2a : la classe WebDicoInfos

La classe WebDicoInfos (espace Psl.Explorer.Exposed), complètement énoncée ci-dessous, regroupe de manière très simple les informations relatives à un dictionnaire :

public class WebDicoInfos {
public const string DefaultTitle = "Dictionnaire indéterminé";
public const string DefaultBaseUrl = "about:blank";
public const string DefaultFavicon = "dictionary://default.*";

/// Référence unique sur la description par défaut d'un dictionnaire
public static readonly WebDicoInfos Default =
new WebDicoInfos( DefaultTitle, DefaultBaseUrl, DefaultFavicon);

// Champs d'instance publics en lecture seule
public readonly string Title;
public readonly string BaseUrl;
public readonly string Favicon;

/// Constructeur
public WebDicoInfos( string title, string baseUrl, string favicon ) {
Title = string.IsNullOrEmpty(title) ? DefaultTitle : title;
BaseUrl = string.IsNullOrEmpty( baseUrl) ? DefaultBaseUrl : baseUrl;
Favicon = string.IsNullOrEmpty(favicon) ? DefaultFavicon : favicon;
}

/// Redéfinition de ToString() retournant le titre du dictionnaire
public override string ToString() { return Title; }
}

* En C#, un champ (de classe ou d’instance) déclaré readonly est un champ qui ne peut être affecté qu’une seule fois, exclusivement dans une clause d’initialisation ou dans un constructeur.

* Remarquer que cette classe est immutable : une fois créée, une instance ne peut être modifiée.

– Constructeur : normalise les champs pour qu’ils n’aient jamais une valeur null ou chaîne vide.

– Default : champ de classe (static) déclaré readonly donnant donc accès à une unique instance de WebDicoInfos faisant office de descripteur par défaut (équivaut à la propriété Empty de la classe String).

– BaseUrl : url de base pour les requêtes auprès des dictionnaires.

– Favicon : clé de favicon relative au cache des icônes du plugin WebFaviconPlugin [364].

– ToString() : redéfinit la méthode de object de manière à retourner le Titre du dictionnaire.

Annexe 2b : l’interface IWebDicoData

La classe WebDicoKeys énonce la clé d’enregistrement du catalogue des dictionnaires. L’interface IWebDicoData spécifie deux modèles mvc, liés l’un à l’autre :

public class WebDicoKeys {
public const string KeyWebDicoData = "Psl.Explorer.WebDico.data"; // IWebDicoData
}

public interface IWebDicoData {

// Le modèle MVC lié au catalogue des dictionnaires
int Count { get; }
WebDicoInfos TryGetInfos( string title );
WebDicoInfos this[ int index ] { get; }
bool Contains( string title );
int IndexOf( string title );
void Add( WebDicoInfos value );
void Replace( WebDicoInfos value );
void AddOrReplace( WebDicoInfos value );
void Remove( string title );
void Clear();
WebDicoInfos[] AsArray { get; set; }
event EventHandler CatalogChanged;

// Le modèle MVC lié à désignation du dictionnaire courant
string CurrentTitle { get; set; }
WebDicoInfos CurrentInfos { get; }
event EventHandler CurrentChanged;
}

Le premier modèle mvc : le catalogue des dictionnaires

C’est une liste d’associations clé/valeur où les clés sont les titres des dictionnaires (type string) et où les valeurs sont des objets de type WebDicoInfos. Ce modèle est contraint comme suit :

– aucune clé du catalogue ne peut être null, chaîne vide, ou la valeur WebDicoInfos.DefaultTitle ;

– il n’y pas de duplication des clés, et les clés sont triées dans l’ordre alphabétique ;

– toutes les méthodes (sauf le setter de AsArray) qui modifient l’état de la liste sont optimisées pour ne déclencher une notification de changement OnCatalogChanged que si la liste a réellement changé ;

– une méthode ou un setter déclenche au plus une notification de changement OnCatalogChanged ;

– les méthodes ou setters qui suppriment ou remplacent des éléments du catalogue doivent veiller à tenir à jour le dictionnaire courant et à déclencher s’il y a lieu au plus une notification OnCurrentChanged ;

– lorsqu’un dictionnaire supprimé du catalogue (via Remove, Clear, etc.) est aussi le dictionnaire courant, le dictionnaire courant devient le dictionnaire par défaut WebDicoInfos.Default ;

– lorsqu’un dictionnaire est remplacé (via Replace, AddOrReplace ou le setter de AsArray) et que ce dictionnaire est aussi le dictionnaire courant, le nouveau dictionnaire (le dictionnaire remplaçant) devient le nouveau dictionnaire courant.

Les méthodes et les setters de propriétés effectuent systématiquement une normalisation de la valeur des paramètres qui leur sont soumis. Selon le type :

– type string (en rôle de titre de dictionnaire) : toute valeur null ou chaîne vide est considérée comme étant la valeur WebDicoInfos.DefaultTitle ;

– type WebDicoInfos : toute valeur null est considérée comme étant la valeur WebDicoInfos.Default.

Les contraintes liées au catalogue conduisent les méthodes et propriétés à effectuer certains contrôles et à déclencher éventuellement certaines exceptions. Pour abréger les spécifications, ces exceptions sont désignées par un sigle ; à chaque sigle correspond un type d’exception :

– sigle knfe : type KeyNotFoundException : le titre est introuvable dans le catalogue ;

– sigle kdup : type ArgumentException : un dictionnaire de même titre figure déjà dans le catalogue ;

– signe kdft : type ArgumentException : le titre par défaut n’est pas un titre valide de dictionnaire ;

– sigle aoore : type ArgumentOutOfRangeException : l’index est hors bornes ;

Les contraintes générales précédemment énoncées s’appliquent à toutes les méthodes et propriétés (sauf mention explicite contraire) :

– TryGetInfos : retourne les informations du dictionnaire dont le titre est fourni en argument, retourne null si le dictionnaire est introuvable ; aucune exception ;

– this[int] : retourne les informations du dictionnaire à la position index ; exception : aoore ;

– this[string] : retourne les informations du dictionnaire ayant un titre donné ; exception : knfe ;

– Contains, IndexOf, Remove : sémantique habituelle ; aucune exception ;

– Add : sémantique habituelle, exceptions kdft, kdup ;

– Replace : sémantique habituelle, exceptions kdft, knfe ;

– AddOrReplace : ajoute un dictionnaire ou remplace le dictionnaire de même titre ; exception : kdft ;

– AsArray : propriété en lecture/écriture :

· en lecture, retourne un tableau des éléments figurant dans le catalogue ; ne retourne jamais null ;

· en écriture, commence par vider le catalogue puis peuple le catalogue avec les informations de dictionnaire figurant dans le tableau ; ne déclenche jamais d’exception (ne fait rien si la référence de tableau est null, ignore les références null, les informations de dictionnaire non valides, et effectue un remplacement en cas de titres dupliqués ; déclenche toujours exactement une notification de changement OnCatalogChanged.

Le second modèle mvc : le dictionnaire courant

Ce modèle, qui tient à jour le dictionnaire courant, est piloté via le setter de la propriété CurrentTitle ou par les méthodes qui modifient le catalogue des dictionnaires. Il est régi par les contraintes suivantes :

– CurrentTitle ne retourne jamais null ou chaîne vide ;

– CurrentInfos ne retourne jamais null ;

– lorsqu’il n’y a pas de dictionnaire courant, CurrentTitle retourne WebDicoInfos.DefaultTitle et CurrenInfos retourne WebDicoInfos.Default ;

– une notification de changement (CurrentChanged) doit être déclenchée lorsque la référence CurrentInfos change, même si la [nouvelle] propriété CurrentTitle est la même chaîne de caractères [que l’ancienne] (par exemple, parce que les informations relatives à un dictionnaire ont été remplacées alors que le dictionnaire a conservé le même titre) ; rappel : la classe WebDicoInfos est immutable.

La sémantique des deux propriétés est à peu près évidente :

– CurrentInfos : retourne les informations du dictionnaire courant ;

– CurrentTitle : obtient ou détermine le dictionnaire courant ; en écriture, le setter ne déclenche jamais d’exception : (1) il applique la même normalisation du titre que l’autre modèle (les titres null ou chaîne vide sont considérées comme étant la valeur WebDicoInfos.DefaultTitle), (2) affecter la valeur par défaut WebDicosInfos.DefaultTitle est licite, et signifie qu’il n’y a plus de dictionnaire courant, (3) affecter un titre qui ne correspond à aucun dictionnaire figurant dans le catalogue équivaut à affecter la valeur par défaut WebDicosInfos.DefaultTitle.

Annexe 2C : Contraintes et indications pour l’implémentation

Contraintes d’implémentation

* évitez au mieux la duplication de code, donc dégagez des méthodes de service ;

* diminuez au maximum le nombre de recherches à effectuer sur les clés du catalogue

Indications d’implémentation

* La classe non générique SortedList [253].

· Vous pouvez choisir la liste de votre choix. Il est cependant recommandé d’utiliser la classe SortedList, éventuellement en version générique plus facile à programmer.

· Utilisez au mieux des déclarations proposées dans l’extrait de la classe WebDicoData ci-dessous.

Extrait de l’implémentation de la classe WebDicoData

La classe WebDicoData (espace Psl.Explorer.Dictionaries) implémente l’interface IWebDicoData. L’extrait ci-dessous énonce les déclarations dont vous pourrez faire usage dans votre implémentation :

public class WebDicoData : IWebDicoData {

// Messages d'exceptions
private const string TitleNotFound = "Dictionnaire introuvable dans le catalogue";
private const string TitleDuplicated = "Titre de dictionnaire dupliqué";
private const string TitleInvalid = "Le titre par défaut n'est pas un titre valide";

// Evénements
public event EventHandler CatalogChanged;
public event EventHandler CurrentChanged;

// Déclenchement centralisé des événements

protected virtual void OnCatalogChanged() {
if ( CatalogChanged != null ) CatalogChanged( this, EventArgs.Empty );
}

protected virtual void OnCurrentChanged() {
if ( CurrentChanged != null ) CurrentChanged( this, EventArgs.Empty );
}
}

Annexe 3 : Le cluster d’ihm

La photographie du concepteur montre la barre d’outils (nommée tools) munie de ses deux boutons et de la combo box (nommée combo). Le concepteur comporte en outre une barre de menu principale (nommée menu) correctement composée et paramétrée pour être immergée dans la barre de menu de l’application, une liste d’actions (nommée actions) regroupant les actions spécifiées à l’annexe 1 (acDicoFind, acDicoEdit, acDicoChoose, acDicoEdit, acDicoRemove, acDicoClear, acDicoCreateTab, acDicoShowTools), un composant de type ApplicationEvents (nommé events) pour l’accès aux événements généraux de l’application, et un menu contextuel (nommé contextMenu) associé aux deux boutons (voir l’annexe 1).

Indications pour l’implémentation

* Le composant ComboBox [278].

* Les actions [307], le composant ApplicationEvents [333].

· vous supposerez que les tous les plugins requis par le cluster ne sont peut-être pas installés ;

· vous laisserez de côté le lien au plugin des favicons, et vous utiliserez la méthode GetDicoInfosImage (classe WebDicoTools ci-dessous) pour obtenir les images associées aux dictionnaires ;

· vous utiliserez les deux méthodes Archive de la classe WebDicoTools pour l’archivage du cluster ;

· vous utiliserez la méthode MakeDicoUrl de WebDicoTools pour composer les url à soumettre aux dictionnaires.

La classe WebDicoTools

public class WebDicoTools {
public static void Archive( IArchiver sender, string key, IWebDicoData catalog ) {…}
public static void Archive( IArchiver sender, string key, ComboBox.ObjectCollection items ) {
public static string MakeDicoUrl( string baseUrl, string word ) {…}
public static Image GetDicoInfosImage( WebDicoInfos infos ) {…}
}

* Considérez que la classe WebDicoTools (espace Psl.Explorer.Dictionaries) vous est fournie : vous n’avez pas à énoncer l’implémentation des méthodes de cette classe.

Elle propose quelques méthodes de services :

– Archive (première méthode) : archive en lecture et en écriture, dans la section courante :

· le catalogue des dictionnaires (via la propriété AsArray de IWebDicoData) ;

· le dictionnaire courant (via la propriété CurrentTitle) ;

– Archive (seconde méthode) : archive en lecture et en écriture, dans la section courante, la collection des items d’une combo box (propriété Items de la combo box) ;

– MakeDicoUrl : prépare une requête à partir de l’url de base d’un dictionnaire et du mot dont on cherche la définition ; la chaîne retournée est une url prête à être soumise à un navigateur.

Note : les requêtes de certains dictionnaires sont en fait très simples à former : il suffit d’ajouter (en s’assurant de la présence d’un « / ») le mot à rechercher à l’url de base du dictionnaire.

– GetDicoInfosImage : retourne l’image associée au dictionnaire dont les informations sont fournies en argument ; cette méthode ne retourne jamais null ;

Note : l’image est obtenue auprès du plugin des favicons s’il est installé et si la clé de favicon figurant dans les informations du dictionnaire correspond à une image ; sinon, cette méthode retourne une image par défaut.

jueves, 25 de noviembre de 2010

Le froid est déjà arrivé à Paris

Pues si, pues si, los termómetros han bajado estrepitosamente desde la última actualización, yo me empiezo a forrar entre jerseys, leotardos, bufandas, gorro, guantes... y luz... bueno, luz después de un año llendo a Cantoblanco en moto es toda una campeona. Y esto no ha hecho más que empezar, se comenta que lo peor llegará en febrero en palabras de un frances "cuando se te congelen las orejas y te duelan tanto que dejes de sentirlas"... Se comenta también que la nieve llegará en breves, de hecho hay quien dice que ya ha visto copos. Realmente y pese a este frio (super diferente al español) se agradece el hecho de que la lluvia haya dado una tregua.
En otro orden de cosas, que ya hemos hablado bastante del tiempo, pongamonos al dia desde la última actualización.

Pocos días después de que supierais de nosotras por última vez, nos dio la locura y nos preparamos un viaje a bruselas en 3 días escasos. Tres horas y media de autobus bastante economico, y el dia 11 de noviembre a eso de las cuatro y media de la tarde estabamos pisando suelo belga. La ciudad nos recibio lloviendo... y nos despidio de la misma manera, aunque nos dejo disfrutar y turistear sin pasar demasiado frio. Bruselas no es demasiado grande, de hecho tardamos como media hora de la estacion al hotel que estaba en pleno centro.
Y ahí llegamos nosotras con nuestro rollo mochilero a un hotel de 3 estrellas que nos había salido mas barato que un albergue (tipica ganga de ultima hora), y en recepción imaginaros el tipico estirado que nos vio jovenes y empapadas, vamos, que no cuadrabamos en el estilo de su hotel. Dejamos las maletas, y en menos de 5 minutos ya estabamos recorriendonos las calles.
Asi en general y para no aburriros demasiado, dire que el centro es muy bonito, el atomium un tanto decepcionante (espacio mal aprovechado y tematica completamente fuera de contexto) y chocolate formidable (preguntarle a Dola ;)). Si entre vuestros planes de futuro está haceros un viaje a Bruselas no planeeis mas de dos días allí, merece la pena visitar los alrededores(aunque nosotras aun no hemos tenido oportunidad). A destacar que aprendimos muchisimo frances, cada noche nos tragabamos unas 3 horas de tele, ya fueran pelis, series de medicos varias... volveremos a españa controlando la jerga desfibrilador-morfina-antropina xD
Cosas curiosas de la belgique... sin duda el metro huele increiblemente peor que el de Paris (cosa realmente complicada)y esta bastante peor trazado (lineas que se solapan... un tanto inutil),llueve muchisimo mas que en paris (que tambien es dificil),y lo peor de todo el IceTea tiene gas (incomprensible, a la par que asqueroso...). Una de las cosas más tipicas alli son los gofres y en especial los gofres de speculo, y como es normal no nos podíamos volver sin probarlo. Total que entramos en una cafetería y le pedimos a la camamrera un gofre de speculo y otro de no me acuerdo que (salida de emergencia por si el speculo no nos gustaba...). total que la tia, que tenía más cara de trabajar en una plantación de hierba (como "catadora") que de camarera empieza a probar helados y a preguntarnos si era eso lo que queríamos... un dato importante es que nosotras no teniamos ni idea de lo que era el speculo... total que termino por hacer un random...hasta ahi todo medianamente normal, pero no, no se quedo ahi la cosa. Al rato entraron compañeros erasmus de la uni q estaban tambien alli de viaje y pidieron speculo, y ahi esta la gracia... el speculo no estaba en helado... era una especie de crema que se hechaba por encima... asi que ahi me quede yo, pringada de chocolate y sin saber de que era el helado que me habia comido. Una vez en Francia hemos probado el speculo... y es una de las cosas mas ricas que he comido nunca :)
El finde pasado tuvimos visitas y fuimos a un sitio al que le teniamos ganas desde hace bastante:las catacumbas... desde luego y aunque suene un poco raro es uno de los sitios de paris mejor cuidados y que más me han gustado. Es cierto que impresiona, al fin y al cabo estas rodeado de cadaveres que estás viendo... pero es algo diferente, excepto por las ochentaytantas escaleras de caracol super mareantes que tuvimos que subir fue una visita que si algun dia venis a Paris no podeis perderos.
Esta semana ha sido durilla examenes, examenes y más examenes... pero de momento la cosa no va mal del todo. Estamos terminando los cours(clases magistrales) y en breves terminaremos tambien las practicas y como ya sabeis (y si no lo sabeis os lo cuento yo) el dia 10 cogemos el avion para volver (por fin) a casa por Navidad!
Asi que si no vuelvo a tocar esto hasta la vuelta de las vacaciones, Feliz Navidad!
Nos "leemos" al año que viene ;)

p.d: tengo varias cosas curiosas para contar/subir, entradas especiales de cagadas idiomaticas y mierdas varias, pero las dejaremos para mas adelante, que esas cosas hay que hacerlas bien ;)

jueves, 4 de noviembre de 2010

Otoño en Paris

Nos reincorporamos al mundo bloggero después de muuuchos acontecimientos. Justo despuésde mi última actualización llegó el famoso Navigo (abono transportes), y por fin los franceses consiguieron lo que querían, me tienen tan harta de papeles que ni siquiera voy a reclamar los días de retraso que según la web deberían abonarme ya que estube a base de metrobus (nada baratos, por cierto...). Hablando de metrobuses, nunca lo he he comentado por aqui, pero si algun día venís a esta mágica ciudad y intentais comprar un metrobús de 10 viajes no os espereis el típico metrobús. Cuando abrais la tapa para recogerlos os encontrareis 10 tiquets. y si por algun casual teneis que sobrevivir dos meses a base de metrobuses llegara un momento en el que haya tiquets por todos vuestros bolsillos, carteras, chaquetas... hasta que lleguen a ser parte del paisaje hogareño parisino.
Y el porque del titulo??porque paris esta absolutamente precioso con todas las hojas caidas, la temperatura es perfecta y hace bastante que no sacamos el paraguas de paseo. Ademas, esa cara fria y triste de los franceses ya no amarga, ahora va con el paisaje, le da un rollo muy bohemio. Definitivamente hoy Paris mola. Tambien puede deberse a que nos hemos vuelto adictas al cafe frances y hoy mismo hemos encontrado una maquina en el campus con cafe a 30 centimos. y que cafe, menudo cafe... nunca pense que un cafe de maquina pudiera ser tannn delicioso :P

En otro orden de cosas, hicimos nuestro primer viaje fugaz a España, que aunque el pisillo mole y me salga una tortilla de patata de rechupete (esta noche mis compis erasmus han tenido el lujo de volverla a degustar acompañado de un choricillo español, marca casino, como no) una ya necesitaba algo mas consistente. Y alli estaba mi pobre madre a las 2 de la mañana esperandome en barajas con un taper de macarrones y lomo. Y al dia siguiente cocido, y al otro arroz al horno... solo dire que una cuarta parte de mi maleta de vuelta fueron "taperwares" xD.
Y esta semana parciales, unos fueron mejor otros peor... pero nos sirve como primer acercamiento a la fauna francesa en un habitat aun desconocido para nosotras... los examenes.
Empecemos por lo básico, para hacer un examen hay que estudiar. Ok, vamos a estudiar por ejemplo... en una biblioteca!uy que genial hay varias en mi campus, muy monas ellas, muy bien iluminadas. Saco mis apuntes, libros ejercicios, diccionario (imprescindible!), miramos el tuenti, el facebook, el correo de la uam, el de la upmc... pues eso que todos sabemos como empieza una jornada de estudio... bueno pues justo despues, todos sabemos lo que se hace justo despues, se va al baño! ERROR en Francia no!Aqui hay varias opciones:
1. te aguantas (no viable)
2. te jorobas de frio cruzando el campus
3. te llevas un cubo (no me arriesgo a ponerla como opcion viable porque lo mismo hay que pedir un permiso al gobierno. papeleo, papeleo, papeleo!!
asi que nos quedamos con la cuarta, y estudiamos en casa.
Llegamos al examen.La primera cosa curiosa, es el orden que tienen. En funcion de tu apellido se te asigna un aula y en ese aula un sitio (tienes tu papelito con tu nombre, apellido, grupo...). Esto se agradece, no mola encontrarse como en la eps 15 minutos despues de la hora de comienzo buscando sitio. Bueno pues en el primer examen tengo al lado a un tio que se limita a poner su nombre y dormitar durante dos horas. En el segundo examen tengo al tipico que moquea... el moqueo dejo de ser problema a mitad del examen cuando le dio un brote psicotico y empezo a moverse, moviendo con el a todo el banco... y a todo esto con la tontería del orden alfabético siempre estamos los mismos cerca... y siempre esta el tipico raro (muy frecuente en la France). Pues a mi me ha tocado el chico de "tengo la impresion de que quieres decirme algo". No he contado esa historia, pero es cuanto menos curiosa, salgo de clase y un chico me dice en español, bastante malo por cierto "tengo la impresion de que quieres decirme algo". Le explico que no, que se equivoca (todo en frances, porque ya me habia demostrado sus dotes para el español) y el pobre se empecina en que si. Luego pasa a la fase frances acosador (muy por encima del nivel español baboso) y me pide el movil. Podria decir que me hice la sueca, pero me hice la española, y le dije que el facebook que por lo menos veia que estaba "en couple" y cesaba en su empeño... pues no! el chaval ni corto ni perezoso me manda un privado para decirme "tengo la impresion de que quieres decirme algo". A mi ahí ya me tocaba las narices porque creo que mi primer "tu t'est trompé" debería haber quedado suficientemente claro... pues parece ser que no, lo quería por escrito tambien. y no, siguio sin cesar... y ya me mata con un (esto ya en frances, que el traductor del google no daba para mas) " tu dices que no, pero tu lenguaje corporal me dice que si, ya sabes, dime como te mueves y te dire quien eres, o que quieres en nuestro caso". Respuesta escueta: creo que el lenguaje corporal en español y en frances es distinto. Y a que viene todo el rollo del chico de la impresion? Pues a que hay franceses muy cargantes. Situaros, jueves pasado, fiesta erasmus, gente erasmus (apunte:que frescas que son algunas niñas europeas!!) y entre todo, franceses raros, muy raros, los mas raros que deciden ir a intentar hacer amiguitas (pillar cacho). Supongo que no todos los franceses seran asi, pero sus tecnicas para ligar... pufffff te entran diciendote que son franceses, mal vamos chaval, 30 franceses mas en mi clase y no me dirigen la palabra mas de 4 o 5...y probablemente tu seas uno de los 25 que no me mira ni a la cara...no sigas por ahi. Luego dicen que quieren aprender español... bueno pues buscate una academia, en españa se lleva mucho para aprender idiomas, pruebalo en serio! Si al hecho de que son muy cansinos le sumas que o se duchan poquito, o tienen un problema muy serio con sus glandulas sudoriparas... apaga y vamonos! y eso es lo que hacemos, apagamos y nos vamos! Repito que estos son los tipicos babosos que tambien los hay en españa, pero creerme que los de aqui son infinitamente mas torpes!
dejando el ya clasico apartado de paris bizarre, vamos a por otro clasico... los ofertones!pero no esta vez no ha sido en casino(el cual sigue en el top ten, que no cunda el panico!). el otro dia volviendo de la universidad calleron unos 2 kilos de champiñones frecos en la fruteria por 2€! si, esto era genial hasta que estube 3 dias comiendo champiñones... ninguno de mis compis erasmus los quiere, estoy desesperada, creo que se estan reproduciendo en la nevera... cada dia veo mas!!ya los he probado hasta con ketchup (para q veas dola, que utilizo tus tecnicas culinarias ;)) yno estan malos ehh??asi que si me esta leyendo alguien en paris que quiera champiñones que lo diga por dios!!! que se los llevo a donde sea! y ya estan lavados, solo hay que cortarlos y hecharlos a la sarten xD
y bueno creo que siendo jueves y las 3 de la mañana ya he contado suficientes cosas por hoy. Seguiré escribiendo, intentaré que con algo más de asiduidad porque siempre me da la impresión de que me dejo cosas que contar, pero esto es una locura, no hay tiempo para nada!
Ah! y un agradecimiento especial a posti, por estar tan enganchadisimo a todo que nos ha comunicado que la UAM nos recomienda(http://www.facebook.com/photo.php?fbid=10150266751785147&set=a.247013860146.291277.185024375146&pid=14660091&id=185024375146)!que parece una tontería pero estando tan lejos nos gusta que nos leais, tanto los que nos conoceis como la gente que se encuentra el blog por casualidad :)
Suerte con vuestros parciales epesitos!!


pd:ahhh! y por primera vez desde que llegamos a paris... atencion que es muy fuerte!!no ha habido greve!! bueno greve que nos afecte directamente, porque los que se han subido ahora al carro han sido los controladores aereos franceses, de hoy al dia 8 si no me equivoco...viva la revolucion!:P

martes, 19 de octubre de 2010

Mayo del 68

Esta mañana iba en el metro y como algunos ya sabeis, debido a la simpatía extrema de los franceses mis primeros pasos para mejorar el idioma se basaban en escuchar la megafonía. Hace poco di un paso más y decidí enganchar la parabólica a alguna de las conversaciones que hubiera en el vagón. Mis preferidos son los viejos, que hablan como si estuvieran cansados y lo entiendo mejor(aunque he de decir que hoy he sintonizado una de dos chicas que hablaban por telefono sobre el acceso a la uni de nanterre). Pues eso, que iba yo en el vagón y un señor le decia al otro que esto se estaba poniendo como mayo del 68. Y aqui y apueden pasar dos cosas:
1.- que mayo del 68 no fuera para tanto
2.- que ahora estemos realmente jodidos y yo no me este dando cuenta

Ya he comentado alguna vez que aqui las huelgas solo tienen de huelga el nombre, sin ir mas lejos una de las lineas que pasa por mi casa tiene 75% de servicios minimos, y la que peor esta un 50%. La semana pasada tuvimos fastidiado lo de entrar al metro (era un poco rollo metro de japon) pero hoy no se notaba nada la huelga. En el barrio no hay coches ardiendo, ni en la universidad los estudiantes hieren a policias a pedradas. Siempre hay algun pirao, los hay en todas partes y aunque es cierto que paris supera con creces los indices normales, nosotras no hemos visto escenas como las que salen por la tele (las cuales estoy convencida de que son imagenes de archivo de Irak o algo asi...), y la mierda del transporte publico es muy dificilmente empeorable.
Las manifestaciones pasan por nuestra universidad (barrio 100% burgues) y es como una especie de fiesta, gritan contra sarkozy, hacen una especie de verbena y poco mas... lo mas parecido a las fiestas de un pueblo. Hoy, sin ir más lejos, la manifestacion empezaba a las puertas de la universidad y ha habido 0 revuelo (y ademas les ha llovido, JA!joderos!).


Cambiando de tema, esta semana estamos sufriendo a tope el rollito bolonia, un examen cada dia, yo el lunes otro y los parciales a la vuelta de la esquina. y para colmo en el curso de frances me hacen fichar una hora o dos en la biblioteca... para que luego digan los franceses que liberté liberté...

en la linea de las entradas de siempre, el tema papeleo sigue dando asco. ya tengo linea en el movil, pero mi abono se ha perdido por algun lugar del caotico paris. el tema compra-ahorro hoy llega de la mano de 32 rollos de papel higienico extra suave de color rosa por 8€!! mama si lees esto, probablemente cuando vuelva a españa en junio todavia me llevare alguno para casa xD


y eso es todo de momento, pronto volveremos con mas novedades administrativas, ofertones casineros, rarezas francesas y quejas varias ;)



pd:benoitl, tu peux m'ajouter au facebook(Veronica Bas Cordobés) et on parle! mais je t'assure que mon avis de la plupart des français est très difficile de changer (même si je dis ça, c'est vrai que j'ai une voisine française très sympatique,très gentile, et qu'elle aime bien faire la fête, mais il faut dire qu'elle n'est pas parisienne!:P)

martes, 5 de octubre de 2010

Paris bizarre...

Que no cunda el panico que seguimos vivas!No nos ha entrado la vena antisocial francesa (todavia), y no es que estemos perdidas del mundo, lo que pasa es que gracias a Dios, esto se va pareciendo cada dia mas a una vida normal. Y aunque parezca mentira nos hemos acostumbrado poquito a poco a las cosas que mas nos chocaron al principio.
Ahora ya vemos con total normalidad a los TRASTORNADOS que cantan en el metro, en el super, por la calle o donde les apetezca, porque joder, la calle es de todos, y ya que en Paris esta prohibido casi todo (aunque se lo pasen por el forro), aprovechan con lo poco a lo que la ley no hace alusion (aun). También ha dejado de fliparnos que la gente no mire raro a esta gente, porque puedo entender que lo respeten, que lo acepten o que lo lleven con resignacion, pero el otro dia sin ir mas lejos iba a mi lado por la calle un tio vestido con un sombrero, una chaqueta de cuero, guantes de cuero a lo mendigo, y un antifaz blanco, muy a lo héroe de manga... y yo acojonada, pensandome que iba a sacar la pistola en cualquier momento, que no es el primer loco que se pone a dar tiros porque lo hace fulanito el del videojuego...pues la gente pasaba, como si sale perico a pasear el perro lo mismito...
Sus normas, tambien super acostumbradas, en Paris colarse, c'est super! y da igual donde te cueles el metro (pero cuidadito con los swatch), en la cola de la panaderia, en la cafeteria de la uni... bueno aqui ya encontramos dos variantes, la de hay un tio esperando y de repente llegan 5 que dicen ser sus amigos...FALSO! los franceses no tienen amigos, de hecho estoy segura de que el unico momento de relacion con otros seres humanos que tienen al dia es el momento colarse (y porque obviamente la norma tengo-que-colarme anula la de la no-socializacion). luego esta la mas descarada... que es la de me voy metiendo, me voy metiendo... y si soy rubia y doy muuuucho asco me meto con descaro delante de unos chinos, que total no se enteran y me creo que les domino (ja!menudos son los chinos...si tenia alguna duda de su futura hegemonia mundial al llegar aqui las he despejado). Pero que conste que todo esta prohibido.. en el metro tienes que ir por el pasillo que te digan hay uno de entrada y otro de salida, y solo puedes usar uno, que te tienes que dar una vuelta del copon?pues te jodes!y como te pongas tonto te sacan la guillotina. Por cierto resulta comico ver como los franceses presumen de la guillotina a la vez que organizan jornadas de protesta contra la pena de muerte... por que esa es otra... son hipocritas hasta decir basta... me rio yo de la clase obrera parisina ja ja ja! y ya lo que me remata son sus putos teclados azerty... quien escribe con eso???por dios!!
en fin... los franceses y sus cosas, estan mucho mas atrasados de lo que ellos se piensan, pero viven en su pompa de cabeza de europa...
y despues de este desahogo de la sociedad francesa me despido que hay que dormir (hay que aprovechar que aun no esta prohibido :P)

sábado, 25 de septiembre de 2010

le premier rhume...

Pues sí, me he vuelto a quedar sola en mis 18m2, bueno, sola no, sigo teniendo a sabina y a iker jiménez sonando todo el día en el ordenador, y al duende meón haciendo su actuación cada media hora... el duende meón, creo que a muy pocos os he hablado de él. Resulta que mi casa me da muuuucho miedo, de día es un ático parisino monísimo, muy íntimo, muy tranquilo... de noche es el último piso y está al final del pasillo, compartiendo la pared con el instituto de al lado y si, me da canguelo!Además tengo un enoooorme clan de palomas viviendo justo encima de mi y por las noches estan demasiado activas. Si a esto le sumas que misteriosamente cada media hora mas o menos la cadena del water se tira sola... pues eso... A-CO-JO-NA-DA!
Además me he puesto mala, llevaba 2 días doliendome la garganta y hoy he caido, después de llevar a Dola al aeropuerto me he empezado a sentir muy mal...y mira que me traje un botiquin bastante apañado, y una vez que llegué aquí lo termine de completar (agua oxigenada, tiritas, mercromina...) pues se me olvido la clave :un termometro. Hoy iba a bajar a por uno a la farmacia (tengo 2 o 3 en la misma calle) pero me encontraba demasiado mal para bajar 6 pisos, y peor para volverlos a subir, asi que lo voy a dejar todo en manos del ibuprofeno y mañana Dios dirá.
Mañana el día se presenta casero, a parte de que a vuelto el mal tiempo (los últimos 10 días ha hecho un tiempo fabuloso!) y de que estoy pocha, toca batallón de limpieza y estudiar, que el lunes tengo mi primer examen.
De la última semana, no hay mucho que contar... bueno si... luz tiene sometido a su compi frances. El chaval se llama kimwi(o algo asi...xD) y yo no lo conocia hasta que el otro día en bases de datos llega y muy simpatico el chaval nos dice HOLA. yo emocionada diciendo un español! pero no, luz ha decidido que para que aprender ella frances pudiendo aprender su compi español??!!ya lo sabeis, es una crack!
ahh!! y algunos franceses ya nos hablan!!no sabemos muy bien porque, pero se ve que ya no tienen miedo a que nos los comamos (se deben de haber enterado de que yo ya solo como leader price xD)
y poco más! este finde más visitas, y por supuesto fiesta el jueves sin falta ;)

martes, 21 de septiembre de 2010

L'Erasmus a commencé!

Si señores, despues de mas de 15 días en París, quedó inaugurado oficialmente el pasado sábado. 5 españoles, un italiano, un mcdonalds, unas cerves y un bar muy cuco que era capaz de enlazar una canción de elvis con otra de acdc o police. Personajes de todo tipo, una redada en plena plaza de la bastilla, el caos de los noctilien (buhos parisinos) y un extintor abandonado en plena calle (al que obviamente luz y yo no pudimos resistirnos) nos hicieron pasar una noche cuanto menos curiosa. En la fac (a la que a partir de ahora llamaremos Benetton por la diversidad de sus gentes) las cosas van mejorando, ya conocemos a mas gente, sobre todo españoles y extranjeros aunque hay algún francés que nos ha hechado una mano sin pedirsela y no solo por la cortesía francesa(a destacar que NO son parisinos, desde luego). Con la asignatura que me la liaron hable con el profesor, un encanto de hombre, que a parte de explicar genial, me dijo que no me preocupara, me resolvio todas las dudas que me iba surgiendo y además le hizo muchisima gracia que fuera española (se dirige a mi como "la compatriota de penelope cruz", en vez de como las erasmus raras como hacen la mayoria xD).
Después de mi esplendida tortilla de patata, me he ido lanzando con más cosillas, de hecho me estoy volviendo una cocinillas!ya me he atrevido con pavo al ajillo, redondo de pavo (siii que pasa??el pavo es lo más barato que hay!), pollo en salsa... buaaaa mama! vas a flipar cuando vuelva a casa :) y ya lo de hacer la compra es otro nivel... quien dice que paris es caro no ha probado "leader price" marca blanca, de envoltorio cutre donde los haya, pero unos precios... SU-BLI-MES y de calidad no esta nada mal, yo de hecho ya soy adicta a varias cosas. Algun dia cuando estudie a fondo todos sus productos os contare... ahhh! y ya tenemos hasta la carta de fidelite del casino!! y no, no me he vuelto ludopata, aqui el super se llama casino y es genial! la marca casino tambien me gusta bastante y hasta he encontrado un rinconcillo en el que las cosas son mas baratas porque estan a punto de caducar, q para tomar esa misma noche apaña bastante bien. y despues de todos estos consejos publicitarios, por los que (aunque parezca mentira) no he cobrado un duro, os voy a ir dejando hasta la proxima vez que tenga un ratillo para seguir contando ;)

A bientôt!