Extraterrestre

Je sais le sujet n’a rien de nouveau mais après avoir regardé une émission (portant sur les aliens) sur Discovery SC je me suis posé pleins de questions.

LES EXTRATERRESTRES, FICTION OU REALITE ?

Même si le cas d’une éventuelle réalité nous apporterait plus de réponses (je peux me tromper), je pense que quelle que soit la réponse c’est un avantage pour l’Homme de pouvoir répondre avec certitude à cette question.

Cette question a déjà fait l’objet de plusieurs débats et certains scientifiques disent même : « Il serait prétentieux de penser que nous sommes seuls dans l’univers ». Personnellement j’accepte d’être prétentieux car je pense que nous sommes seuls et je continuerai de le croire jusqu’à ce que nous ayons des preuves (non contestables) de la présence d’une vie extraterrestre. Aussi je viendrai modifier cet article dès que je serai convaincu de leur existence en ajoutant que je crois en leur présence :-P.
Bon pour la suite cet article je suppose que les extraterrestres existent. En faisant cette hypothèse je me pose d’avantage de questions qui me préoccupent vraiment.

POURQUOI AURAIT-IL DES TETES BIZARRES  AVEC DES YEUX AUSSI LARGES QUE DES ŒUFS ?

Figure 1 – Extraterrestre

Je me demande qui a imaginé un pareil visage. Dans tous les films/séries c’est le même genre de tête, c’est limite devenu une norme en matière de représentation des extraterrestres. Je me demande même si c’est sorti pour la 1ère fois de l’imagination d’un scénariste ou si les extraterrestres ont été découverts avant leur 1ère représentation.

POURQUOI SERAIENT-ILS AVANCES TECHNOLOGIQUEMENT ET DONC INTELLIGENTS ?

On parle souvent d’invasion extraterrestre mais peut-être que si nous n’avons pas encore été envahis c’est parce qu’ils sont très en retard sur le plan technologique. Peut-être vivent-ils encore dans une sorte de « Paléolithique » ? Si c’est le cas les terriens iront-ils en pacifistes vers ces planètes ? Sincèrement je ne pense pas.
En même temps je me dis que le danger pour nous terriens serait qu’ils soient très avancés et qu’ils décident de supprimer les terriens parce que nous ne sommes d’aucune utilité pour l’univers car très idiots. Dans ce cas-là il faudrait vraiment que nous soyons prêts à nous défendre. C’est peut-être pour mieux se préparer que nous imaginons qu’ils sont meilleurs que nous (enfin j’espère). Bref, un tas de questions qui auront un jour une réponse.

POURQUOI N’AURAIENT-ILS PAS DE SENTIMENTS ?

Très souvent dans les films les extraterrestres sont sans cœur, j’entends par là qu’ils n’ont pas de sentiments, aucune pitié. Pourquoi bon DIEU imaginons-nous ce genre de choses ? Un instant ! S’ils ont des sentiments et qu’ils sont supérieurs à nous c’est nous les hommes qui sommes en dangers hein ! Il y a aura beaucoup de cocu :-D, reste à savoir si une femme peut aimer un alien comme celui de la figure 1 après tout l’amour c’est le cœur d’abord :-P.

Ces questions n’ont rien de scientifique mais je ne peux m’empêcher de me les poser. Si vous vous posez aussi des questions où avez des réponses à mes questions laissez un commentaire. En attendant la prochaine réflexion portez-vous bien.

[W8] Afficher du texte avec des colonnes

Très utile (Afficher du texte avec des colonnes)

Christian Kouamé | Tech Blog

Bonjour à tous et à toutes, aujourd’hui nous allons adresser une problématique qui vous a surement emmerdé à fond dans vos app Windows 8 : comment mettre en forme son texte pour avoir des colonnes ?

Le problème

Vous voulez faire une superbe app pour votre blog, mais vous voulez qu’il ai une superbe disposition comme dans cette app :

image

Le soucis est qu’aucun contrôle natif de Windows 8 ne vous permet de faire ce genre de disposition avec colonnes.

L’observation

Alors comment est ce que ces développeurs à USA Today on réussi à le faire ? Si vous êtes un peu fouineurs, vous avez surement remarqué qu’en créant un projet de type grille (sous Visual Studio 2012),  la page ItemsDetailPage est capable de nous afficher le texte en multi-colonnes.

La solution

Comme dit plus haut, si vous essayez avec Visual Studio 2013 (et donc avec une application Windows 8.1)…

View original post 1 713 mots de plus

Présentation de quelques applications 1

J’ai décidé de publier une série d’articles sur quelques applications réalisées par des amis. C’est ma manière à moi de les encourager à continuer de produire des applications.

Les applications sont citées selon l’ordre alphabétique des noms des applications.
Le nom des applications sera accompagné de leur description disponible sur le Windows Phone Store.

  • AstroPunch
    Description :
    Reçoit quotidiennement ton horoscope (Arabe, Chinois et Français) ainsi que chaque mois, ta personnalité suivant ton signe Astrologique….Si tu aimes L’astrologie, AstroPunch est fait pour toi…. Tu vas l’adorer
  • CIV Foot
    Description :
    Avec CIV Foot dans votre poche, consultez l’actualité et suivez les flux Twitter football ivoirien.
  • Distance
    Description :
    Cette application vous permettra de vous géolocaliser et donner la distance de votre position à un lieu géographique de votre choix et la nouveauté c’est que vous pourriez visualiser l’itinéraire de votre position au lieu que vous indiquerez.
  • PlanComptable
    Description :
    Votre plan comptable OHADA (Organisation pour l’Harmonisation en Afrique du Droit des Affaires) est maintenant disponible sur mobile dans sa version 1.0.0.0
    Fonctionnalités:
    -Navigation par classe
    -Recherche des comptes
  • This Day
    Description :
    This Day vous donne l’éphéméride du jour, accompagnée de liens utiles pour chaque évènement historique.
    Une citation journalière est aussi disponible, vous pouvez en outre partager les évènements et la citation à vos contacts.Plus :Cette application est disponible également sur Windows 8 (interface Modern UI).

    N’hésitez pas à télécharger ces applications puis à les évaluer.

LES APPLICATIONS MODULAIRES : Plug-In, Add-In, Add-on (2ème partie et fin)

Dans la 1ère partie de ce tutoriel nous avons vu comment mettre en place un système de plugin pour son application. Dans cette seconde partie nous ferons la même chose mais en utilisant MEF (Managed Extensibility Framework). Commençons sans plus tarder !

Etape 3 : Création des plugins

Ce n’est pas une erreur : en effet les étapes 1 et 2 sont les mêmes que les étapes 1 et 2 de la 1ère partie de ce billet.

Créons le 1er plugin :

  1. Ajoutez un nouveau projet basé sur le template Bibliothèque de classes à la solution et nommer le Plugin1.
  2. Ajoutez une référence au projet PluginContract.
  3. Sélectionnez la référence de projet et dans la fenêtre de propriété mettez Copie
    locale à false.
  4. Renommez la classe par défaut en Plugin1
  5. Faites-la implémenter l’interface IPlugin.
  6. Ajoutez une référence à System.ComponentModel.Composition
  7. Faites un import : using System.ComponentModel.Composition ; dans la classe Plugin1.
  8. Marquez la classe avec l’attribut d’export : Export(typeof(IPlugin))

Créons un autre plugin :

Répétez les étapes 1 à 6 en changeant Plugin1 par Plugin2.

Des explications s’imposent sur le rôle de l’attribut Export(typeof(IPlugin)) mais patientons jusqu’à la prochaine étape qui est juste en dessous.

Etape 4 : Création de l’application hôte

Nous devons charger dynamiquement les plugins au démarrage de l’application.

C’est ce que nous allons faire.

  1. Ajoutez un nouveau projet basé sur le template Application console à la solution et nommer le MyApp.
  2. Ajoutez une référence au projet PluginContract.
  3. Sélectionnez la référence de projet et dans la fenêtre de propriété mettez Copie
    locale à false.
  4. Ajoutez une référence à System.ComponentModel.Composition.
  5. Dans l’explorateur de solution, ajouter une nouvelle classe au projet puis nommez-la : PluginLoader.

Insérez le code ci-dessous :


Les explications :

Si vous avez suivis la 1ère partie de billet vous avez sûrement remarqué un changement énorme dans la classe PluginLoader.cs : elle est beaucoup plus simple et compréhensible et c’est grâce à l’attribut Export(typeof(IPlugin)) de l’étape 3. Cet attribut permet d’indiquer à notre plugin le type de contrat qu’il doit respecter. Ainsi dans notre classe PluginLoader nous n’avons qu’à lui indiquer le chemin à partir duquel il doit charger les plugins et il se charge tout seul de charger les bons plugins c’est-à-dire ceux qui respectent leur contrat.

  1. Dans la classe Program.cs ajoutez le code ci-dessous :

Etape 5 : Création d’un répertoire d’installation

Lorsque vous développez une application modulaire vous devez mettre tous vos plugins dans un dossier particulier qui se trouve généralement dans le dossier d’installation de votre application. Pour simuler ceci nous allons créer les dossiers suivants n’importe où sur notre disque :

MyApp
Plugins
PluginContract

Configuration des options de déploiement :

  1. Pour chacun des projets dans la solution, allez dans l’onglet Générer des propriétés du projet puis changez le chemin de sortie comme suit :
Projet Chemin
MyApp MyApp
Plugin1 MyApp\Plugins
Plugin2 MyApp\Plugins
PluginContract MyApp\PluginContract
  1. Ensuite générez la solution (F6)
  2. Dans l’explorateur de solution, définir MyApp comme projet de démarrage.
  3. Exécuter l’application (F5)

Si tout se déroule sans erreur vous obtiendrai cet écran :


Le même résultat que celui de la 1ère partie mais obtenu de façon beaucoup plus simple grâce à MEF.

LES APPLICATIONS MODULAIRES : Plug-In, Add-In, Add-on (1ère partie)

Les applications que nous développons sont très souvent amenées à évoluer. Lorsque nous désirons ajouter de nouvelles fonctionnalités l’une des solutions est de recompiler l’application et de mettre la nouvelle version à la disposition des utilisateurs. Il leur faudrait donc désinstaller l’ancienne application afin d’installer la nouvelle. L’une des solutions à ce problème est de construire des applications modulaires, c’est-à-dire avec des fonctionnalités qui se rajoutent automatiquement sans avoir besoin de recompiler l’application. Il existe beaucoup d’application utilisant ce fonctionnement :

  • Internet Explorer
  • Visual Studio
  • Word
  • Etc…

Ce billet a pour objectif de vous apprendre à développer vos applications de façon modulaire.

Comment ça marche ?

Le fonctionnement est simple. Vous devez exposer les fonctionnalités de vos applications dans des fichiers dll. Ces dll seront vos plugins. Toute application prenant en charge les plugins doit être capable de :

  • Charger dynamiquement les plugins à son démarrage.
  • Vérifier que les plugins respectent leur contrat (nous y reviendrons).
  • Communiquer avec ces plugins.
  • S’assurer que ces plugins fonctionnent toujours même en cas d’évolution de l’application.

Certains points vous paraissent surement évidents mais ils sont tout de même importants.

Revenons sur le 2ème point :

  • Vérifier que les plugins respectent leur contrat.

En effet, la 1ère étape pour créer un plugin est de définir un contrat (ou modèle) c’est-à-dire la structure que doivent respecter les plugins afin de pouvoir communiquer avec votre application. Du point de vu de la programmation vous avez deux manières de définir ce modèle :

  1. Une classe abstraite
  2. Une interface

Alors classe ou interface ?

Nous n’allons pas nous mettre à faire une étude comparative en classe abstraite et interface. Toutefois sachez qu’en .NET une classe ne peut hériter que d’une seule classe mais peut implémenter plusieurs interfaces.

Nous utiliserons donc les interfaces afin de ne pas obliger les développeurs de plugins à hériter de notre contrat (contrat de plugin).

Etape 1 : Création d’une solution Visual Studio

Commençons par créer une solution pour nos différents projets.

  1. Dans Visual Studio, créer un nouveau projet basé sur le template Bibliothèque de classes et nommer le PluginContract.
  2. Nommer la solution PluginApp.

Etape 2 : Création du contrat

  1. Dans Visual Studio, ouvrez le projet nommé PluginContract.
  2. Dans l’explorateur de solution, supprimez la classe créée par défaut.
  3. Dans l’explorateur de solution, ajoutez une nouvelle interface au projet puis nommez-la : IPlugin.
  4. Insérez le code ci-dessous


    Nos plugins pourront donc faire deux choses : Do et Other.

Etape 3 : Création des plugins

Créons le 1er plugin :

  1. Ajoutez un nouveau projet basé sur le template Bibliothèque de classes à la solution et nommer le Plugin1.
  2. Ajoutez une référence au projet PluginContract.
  3. Sélectionnez la référence de projet et dans la fenêtre de propriété mettez Copie
    locale à false.
  4. Renommez la classe par défaut en Plugin1.
  5. Faites-la implémenter l’interface IPlugin.
  6. Insérer le code ci-dessous

Créons un autre plugin :

Répétez les étapes 1 à 6 en changeant Plugin1 par Plugin2.


Etape 4 : Création de l’application hôte

Les plus attentifs d’entre vous se souviendront de ceci :

Toute application prenant en charge les plugins doit être capable de :

  • Charger dynamiquement les plugins à son démarrage.

C’est ce que nous allons faire.

  1. Ajoutez un nouveau projet basé sur le template Application console à la solution et nommer le MyApp.
  2. Ajoutez une référence au projet PluginContract.
  3. Sélectionnez la référence de projet et dans la fenêtre de propriété mettez Copie
    locale à false.
  4. Dans l’explorateur de solution, ajouter une nouvelle classe au projet puis nommez-la : PluginLoader.

Insérer le code ci-dessous :

public static class PluginLoader
{
  public static ICollection<IPlugin> LoadPlugins(string path)
  {
    string[] dllFileNames = null;
    if (Directory.Exists(path))
    {
      dllFileNames = Directory.GetFiles(path, "*.dll");
      ICollection<Assembly> assemblies = new List<Assembly>(dllFileNames.Length);
      foreach (string dllFile in dllFileNames)
      {
        AssemblyName an = AssemblyName.GetAssemblyName(dllFile);
        Assembly assembly = Assembly.Load(an);
        assemblies.Add(assembly);
      }
      Type pluginType = typeof(IPlugin);
      ICollection<Type> pluginTypes = new List<Type>();
      foreach (Assembly assembly in assemblies)
      {
        if (assembly != null)
        {
          Type[] types = assembly.GetTypes();
          foreach (Type type in types)
          {
            if (type.IsInterface || type.IsAbstract)
            {
              continue;
            }
            else
            {
              if (type.GetInterface(pluginType.FullName) != null)
              {
                pluginTypes.Add(type);
              }
            }
          }
        }
      }
      ICollection<IPlugin> plugins = new List<IPlugin>(pluginTypes.Count);
      foreach (Type type in pluginTypes)
      {
        IPlugin plugin = (IPlugin)Activator.CreateInstance(type);
        plugins.Add(plugin);
      }
      return plugins;
    }
    return null;
  }
}

  1. Dans la classe Program.cs ajoutez le code ci-dessous :

Etape 5 : Création d’un répertoire d’installation

Lorsque vous développez une application modulaire vous devez mettre tous vos plugins dans un dossier particulier qui se trouve généralement dans le dossier d’installation de votre application. Pour simuler ceci nous allons créer les dossiers suivants n’importe où sur notre disque :

MyApp
Plugins
PluginContract

Configuration des options de déploiement :

  1. Pour chacun des projets dans la solution, allez dans l’onglet Générer des propriétés du projet puis changez le chemin de sortie comme suit :
Projet Chemin
MyApp MyApp
Plugin1 MyApp\Plugins
Plugin2 MyApp\Plugins
PluginContract MyApp\PluginContract
  1. Ensuite générez la solution (F6)
  2. Dans l’explorateur de solution, définir MyApp comme projet de démarrage.
  3. Exécuter l’application (F5)

Si tout se déroule sans erreur vous obtiendrai cet écran :


Nous verrons dans un prochain billet une autre approche pour réaliser des applications modulaire. Cette nouvelle autre approche facilitera grandement le chargement dynamique des plugins…

En attendant j’espère que vous avez aimé ce billet.

« Attiéké-Addict »

 

Oui le titre est bizarre et je vous l’accorde mais le plus important ce n’est pas le titre. Rentrons dans le vif du sujet en commençant par les plats Ivoiriens.

Les plats Ivoirien sont très variés et sont issus de plusieurs groupes ethniques. On peut citer dans la grande famille des sauces :

  • La sauce graine
  • La sauce arachide
  • La sauce djoumglé
  • Etc…

Puis dans la famille des accompagnements :

  • Alloco
  • Attiéké
  • Etc…

Si j’ai décidé d’écrire un article intitulé « Attiéké-Addict  » c’est parce que parmi c’est plats là, il y a un que j’adore particulièrement : l’Attiéké. Comme moi, beaucoup, sinon tous les Ivoiriens adorent ce plat. Et ce n’est un secret pour personne l’attiéké est un plat fait à base de manioc.

Maintenant chez nous les Ivoiriens (tjrs) il y a des normes en matière d’attiéké. Eeeeh oui ! Quand c’est fait par les femmes on parle « d’attiéké » et quand c’est par les hommes on parle de « garba ».

Illustrations :

Figure 1- Attiéké de femme on dit « Attiéké »

Figure 2- Attiéké fait par les hommes on dit « Garba »

Bon personnellement j’ai déjà vu des femmes vendre « Garba » mais jamais des hommes vendre « Attiéké » vous conviendrai donc avec moi des titres des Figures 1 et 2. Si n’êtes pas d’accord ce n’est pas grave, ça n’a aucune importance dans la suite.

Venons-en aux faits ! Que celui qui n’a jamais dit ou pensé que l’Afrique est en retard ou qui n’a jamais eu envie de manger au Mc. Donald en voyant Will Smith éteigne son ordinateur. Je l’ai dit aussi hein, mais sincèrement quand je sais qu’il y a un plat qu’on appelle « Garba » et que des milliers d’Américain n’ont jamais goûté, je me dis « Wouaouuuh l’Afrique c’est génial ». Je suis un « Attiéké-addict » et je peux en manger tous les jours et je n’ai pas honte de le dire. Je crois que si je devais quitter la Côte d’Ivoire la première chose qui me manquerait après la famille c’est l’attiéké. Ne pensez surtout pas que je suis le seul hein, nous sommes beaucoup dans cette situation.

Par exemple je suis arrivé au Garbadrôme (Lieu où se vend le garba) un jour et je vois un monsieur qui se fait insulté par le Garbatigui (Celui qui vend le garba). En tant que client on t’insulte normalement tu fais quoi ?

Tu te barres en lançant au vendeur « Tu penses que tu es le seul ? » (dans la réalité il s’en suivra un « Tchrrrrrrrrrrrrr »). Mais ce jour-là le monsieur est resté arrêté serein et il n’a rien dit. Mais des demoiselles qui se tenaient prêt de moi se sont mises à critiquer :

  • La 1ère : « Hannnn ! Ivoirien aime Garba dèh ! On t’insulte mais tu es là »
  • La 2ème : « Façon il parle pas là, je suis sûr qu’il se dit: ce qui est sûr il faut m’insulter seulement mais ton Garba là, je vais manger piannn ! »

N’allez pas penser que je suis affairé hein ! Elles murmuraient à haute voix. En tout cas ça vous aura j’espère prouver qu’il y a beaucoup de « Attiéké-addict ».

J’avais juste envie de dire à haute voix que j’aime ce plat. N’hésitez pas à laisser un commentaire ou à m’offrir un plat de Garba :lol :

NOMMER LES GROUPES SUR WINDOWS 8

Nous sommes le 30/05/2013 et je viens de découvrir une fonctionnalité de Windows 8 dont j’ignorais l’existence : NOMMER LES GROUPES.
Vous ne savez toujours pas de quoi je parle ? Voyons donc le résultat, c’est plus parlant.

Windows 8
Résultat final

Ces groupes vous permettent de mieux organiser votre bureau. Vous pouvez aussi nommer les différents groupes d’applications comme sur la capture ci-dessus. Les catégories Mes amis, représente les applications (This Day et Titrologie) développées par des amis à moi et disponibles sur le store. Bref ! Pour faire pareil suivez les étapes ci-dessous :
1. Placer les curseur en bas à droite de l’écran et faites un clic sur l’icône en jaune sur l’image

Personnalisation du bureau
Personnalisation du bureau

2. Puis faite un clic droit sur le groupe que vous désirez nommez puis cliquez sur Nommer le groupe

Afficher les options
Afficher les options

3. Entrez un nom puis validez.

Resiseignez le champ
Reneignez le champ

4. Répétez à haute voix « WINDOWS 8 c’est génial » wlEmoticon-winkingsmile.png

J’espère que ce petit billet vous aura été utile