<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Randoomz</title>
	<atom:link href="http://www.randoomz.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.randoomz.org</link>
	<description>Blog et portfolio d&#039;un développeur</description>
	<lastBuildDate>Thu, 16 Feb 2012 23:33:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Projet de programmation par contraintes</title>
		<link>http://www.randoomz.org/2012/02/projet-de-programmation-par-contraintes/</link>
		<comments>http://www.randoomz.org/2012/02/projet-de-programmation-par-contraintes/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 23:28:27 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=427</guid>
		<description><![CDATA[La programmation par contraintes était quelque chose de totalement obscure avant mon cours de &#171;&#160;Programmation Fonctionnelle, Logique et par Contraintes&#160;&#187;. Grâce à l&#8217;apprentissage d&#8217;un nouveau langage, Scala, d&#8217;une nouvelle librairie,]]></description>
			<content:encoded><![CDATA[<p>La programmation par contraintes était quelque chose de totalement obscure avant mon cours de &laquo;&nbsp;Programmation Fonctionnelle, Logique et par Contraintes&nbsp;&raquo;. Grâce à l&#8217;apprentissage d&#8217;un nouveau langage, Scala, d&#8217;une nouvelle librairie, JaCoP, et du cours donné durant ma 3ème année à l&#8217;<a href="http://www.ipl.be">Institut Paul Lambin</a>, j&#8217;ai pu effleurer les possibilités de cette façon de programmer.</p>
<p>J&#8217;ai éprouvé beaucoup de difficultés pour mener à bien ce projet pour la simple raison qu&#8217;il s&#8217;agit d&#8217;une manière totalement différente de ma programmation habituelle, presque révolutionnaire vu le nombre de lignes minimes pour un travail aussi énorme mais vraiment tordue :).</p>
<p>Il m&#8217;a été demandé de programmer un générateur d&#8217;horaires en tenant compte qu&#8217;il fallait :</p>
<ul>
<li>2 séries minimum</li>
<li>2 locaux minimum</li>
<li>Remplir toute une semaine de cours pour les 2 locaux</li>
<li>Assez de professeurs et de cours pour les remplir</li>
</ul>
<p>Une tâche quand même ardue compte tenu du fait que nous n&#8217;avons pas eu de cours théorique. Nous devions nous documenter par nos propres moyens via la <a href="http://www.scala-lang.org/">documentation de Scala</a> et la <a href="http://www.jacop.eu/">documentation de JaCoP</a>.</p>
<p>Un aperçu est disponible à la suite de ce billet, le rapport qui m’a été demandé et les sources du projet :</p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-16-à-23.53.46.png"><img class="aligncenter size-medium wp-image-434" title="Screenshot Projet de programmation par contraintes" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-16-à-23.53.46-300x213.png" alt="" width="300" height="213" /></a></p>
<ul>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/RAPPORT.pdf">Rapport du projet de programmation par contraintes</a></li>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/PFLC_Projet.zip">Application du projet de programmation par contraintes</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/projet-de-programmation-par-contraintes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ListView contenant des vues personnalisées</title>
		<link>http://www.randoomz.org/2012/02/listview-contenant-des-vues-personnalisees/</link>
		<comments>http://www.randoomz.org/2012/02/listview-contenant-des-vues-personnalisees/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 14:24:44 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Tutoriels Android]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=383</guid>
		<description><![CDATA[Les ListView d&#8217;Android ne permettent pas d&#8217;afficher que de simples éléments. Il est tout à fait possible de définir nos propres vues à afficher à chaque ligne de la liste.]]></description>
			<content:encoded><![CDATA[<p>Les ListView d&#8217;Android ne permettent pas d&#8217;afficher que de simples éléments. Il est tout à fait possible de définir nos propres vues à afficher à chaque ligne de la liste. C&#8217;est l&#8217;objet de ce second tutoriel.</p>
<p><span style="text-decoration: underline;"><strong>But de ce tutoriel :</strong></span></p>
<ul>
<li>Afficher sur une ligne le titre et le contenu d&#8217;une &laquo;&nbsp;news&nbsp;&raquo;</li>
<li>Afficher l&#8217;url du site quand on clique sur un élément de la liste</li>
<li>Confectionner son propre adapteur pour afficher sa vue personnalisée</li>
</ul>
<p>On entre déjà dans un tutoriel un peu plus complexe, nous allons aborder un point très important dans la programmation sous Android. Puisque les ListView sont des &laquo;&nbsp;layouts&nbsp;&raquo; les plus utilisés, il est indispensable de pouvoir les personnaliser comme bon nous semble.</p>
<p>Dans un premier temps, nous allons créer la vue de notre news. Pour ce faire, déroulez le menu <strong>File &gt; New &gt; Android XML File </strong>et remplissez la fenêtre de la façon suivante :</p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-14-à-14.40.02.png"><img class="aligncenter size-medium wp-image-387" title="New Android XML File" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-14-à-14.40.02-293x300.png" alt="" width="293" height="300" /></a></p>
<p>Nous avons créé un &laquo;&nbsp;layout&nbsp;&raquo; que nous pouvons éditer dans <strong>res &gt; layout &gt; news_vue.xml</strong>. Le but de ce deuxième tutoriel est d&#8217;afficher le titre et le contenu de la news. Nous allons donc rajouter 2 &laquo;&nbsp;TextView&nbsp;&raquo; comme ci-dessous :</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot;
    android:orientation=&quot;vertical&quot; &gt;
    &lt;TextView
        android:id=&quot;@+id/tvTitreNews&quot;
        android:layout_width=&quot;fill_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;Titre de la news&quot; /&gt;
    &lt;TextView
        android:id=&quot;@+id/tvContenuNews&quot;
        android:layout_width=&quot;fill_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;Contenu de la news&quot; /&gt;
&lt;/LinearLayout&gt;
</pre>
<p>Comment faire maintenant pour intégrer ce &laquo;&nbsp;layout&nbsp;&raquo; à chacune de nos lignes de notre ListView ? Nous rentrons dans quelque chose d&#8217;un peu plus compliqué. Pour y parvenir, il va falloir créer 3 nouvelles classes : News, VueNews et AdapterListeNews.</p>
<p>La News n&#8217;est qu&#8217;une classe qui va contenir notre news, qui va la représenter. Nous voulons que notre news sauvegarde son id, son titre, son contenu et son url :</p>
<pre class="brush: java; title: ; notranslate">
/**
* Tutoriel n°2 dans le cadre du blog Randoomz&lt;br /&gt;
* Classe du domaine pour représenter une news
*
* @author Gerard
*/
public class News {
    private int id;
    private String titre;
    private String contenu;
    private String url;

    public News(int id, String titre, String contenu, String url) {
        super();
        this.id = id;
        this.titre = titre;
        this.contenu = contenu;
        this.url = url;
    }
    public int getId() {
        return id;
    }
    public String getTitre() {
        return titre;
    }
    public String getContenu() {
        return contenu;
    }
    public String getUrl() {
        return url;
    }
}
</pre>
<p>La VueNews est la classe qui va utiliser notre &laquo;&nbsp;layout&nbsp;&raquo; news_vue.xml afin de la mettre en page dans notre ListView.</p>
<p>Nous devons l&#8217;étendre à l&#8217;élément racine de notre fichier xml, récupérer les &laquo;&nbsp;TextView&nbsp;&raquo; pour les remplir à partir d&#8217;une news qu&#8217;on récupère :</p>
<pre class="brush: java; title: ; notranslate">
/**
* Tutoriel n°2 dans le cadre du blog Randoomz&lt;br /&gt;
* Vue qui va utiliser notre layout news_vue.xml afin de la mettre en page dans
* notre ListView
*
* @author Gerard
*/
public class VueNews extends LinearLayout {
    private TextView tvTitre;
    private TextView tvContenu;
    private News news;

    public VueNews(Context context, News news) {
        super(context);

        initLayout(context);
        initComposants();
        setNews(news);
    }
    // suite plus bas ...
}
</pre>
<p>Il nous reste à initialiser les différents éléments de la classe.</p>
<p>L&#8217;initialisation du &laquo;&nbsp;layout&nbsp;&raquo; doit se faire par déserialisation du fichier xml. Nous ne pouvons utiliser la méthode setContentView, il faut donc utiliser cette alternative :</p>
<pre class="brush: java; title: ; notranslate">
private void initLayout(Context context) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Conext.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.news_vue, this, true);
}
</pre>
<p>L&#8217;initialisation des composants de la vue sont maintenant récupérable par la méthode findViewById :</p>
<pre class="brush: java; title: ; notranslate">
private void initComposants() {
    this.tvTitre = (TextView) this.findViewById(R.id.tvTitreNews);
    this.tvContenu = (TextView) this.findViewById(R.id.tvContenuNews);
}
</pre>
<p>L&#8217;initialisation du contenu de ses composants doivent se faire dans le setter de la news puisque, lorsqu&#8217;on change de news, on doit pouvoir modifier les composants de la vue :</p>
<pre class="brush: java; title: ; notranslate">
private void initContenuComposants(News news) {
    this.tvTitre.setText(news.getTitre());
    this.tvContenu.setText(news.getContenu());
}

public News getNews() {
    return news;
}

public void setNews(News news) {
    this.news = news;
    initContenuComposants(news);
}
</pre>
<p>Ceci est une bonne chose de faite. Nous avons déjà la classe qui va contenir notre news et la vue pour chaque ligne de notre ListView. Il nous reste une chose à faire avant de modifier la classe principale pour parvenir à intégrer nos nouvelles classes, programmer notre adapter pour nos vues.</p>
<p>L&#8217;utilité de coder son adapter est de redéfinir l&#8217;une de ses méthodes (getView) pour renvoyer notre vue personnalisée (VueNews). Pour commencer, nous devons récupérer le contexte de l&#8217;application, la liste des données (les news) et l&#8217;étendre avec la classe BaseAdapter :</p>
<pre class="brush: java; title: ; notranslate">
/**
* Tutoriel n°2 dans le cadre du blog Randoomz&lt;br /&gt;
* Adapter de la ListView de nos news
*
* @author Gerard
*/
public class AdapterListeNews extends BaseAdapter {
    private Context context;
    private List&lt;News&gt; liste;

public AdapterListeNews(Context context, List&lt;News&gt; liste) {
        this.context = context;
        this.liste = liste;
    }
    // suite plus bas ...
}
</pre>
<p>Ceci étant fait, eclipse vous oblige à devoir implémenter plusieurs méthodes. Générer les et compléter les de la façon suivante :</p>
<pre class="brush: java; title: ; notranslate">
@Override
public int getCount() {
    return this.liste.size();
}

@Override
public Object getItem(int pos) {
    return this.liste.get(pos);
}

@Override
public long getItemId(int pos) {
    return pos;
}

@Override
public View getView(int pos, View vue, ViewGroup parent) {
    return vue;
}
</pre>
<p>Vous vous en douter, notre dernière méthode prend tout son sens si on ne renvoi pas la vue qu&#8217;il attend mais notre propre vue :</p>
<pre class="brush: java; title: ; notranslate">
@Override
public View getView(int pos, View vue, ViewGroup parent) {
    VueNews vueNews = (VueNews) vue;
    // La vue n'existe pas encore, on l'a construit
    if (vue == null)
        vueNews = new VueNews(this.context, (News) getItem(pos));
    // La vue existe déjà, on l'a reconstruit
    else
        vueNews.setNews((News) getItem(pos));
    return vueNews;
}
</pre>
<p>Notez la réutilisation de la vue si elle existe déjà. Android tente de réutiliser le plus possible des éléments créés au préalable afin d&#8217;économiser la batterie.</p>
<p>Modifions maintenant notre code de l&#8217;activité principale pour remplir une liste de news, initialiser l&#8217;adapter créé, l&#8217;attacher à notre ListView et afficher l&#8217;url du site en cliquant sur l&#8217;une des lignes de la liste :</p>
<pre class="brush: java; title: ; notranslate">
/**
* Tutoriel n°2 dans le cadre du blog Randoomz&lt;br /&gt;
* Liste d'affichage des news
*
* @author Gerard
*/
public class Randoomz_TutoActivity extends ListActivity {
    private AdapterListeNews adapter;
    private List&lt;News&gt; items = new ArrayList&lt;News&gt;();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Initialisation de la liste des items
        items.add(new News(1, &quot;Randoomz&quot;, &quot;Site web de randoomz&quot;, &quot;www.randoomz.org&quot;));
        items.add(new News(2, &quot;Google&quot;, &quot;Site web de google&quot;, &quot;www.google.be&quot;));
        items.add(new News(3, &quot;Apple&quot;, &quot;Site web de Apple&quot;, &quot;www.apple.fr&quot;));
        items.add(new News(4, &quot;Facebook&quot;, &quot;Site web de Facebook&quot;, &quot;www.facebook.com&quot;));
        items.add(new News(5, &quot;Twitter&quot;, &quot;Site web de twitter&quot;, &quot;www.twitter.com&quot;));

        // Initialise l'adapter et l'ahoute à la ListView
        this.adapter = new AdapterListeNews(this, items);
        this.setListAdapter(adapter);

        // Récupère la ListView
        ListView lv = getListView();
        // Ajoute une action au clique sur un élément de la liste
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {
                // Affiche un &quot;Toast&quot; avec l'url de l'élément sélectionné
                Toast.makeText(getApplicationContext(),((VueNews) view).getNews().getUrl(), Toast.LENGTH_SHORT).show();
            }
        });
    }
}
</pre>
<p>Nous finissons avec cela notre second tutoriel. Son résultat final ne correspond pas du tout à l&#8217;apparence de notre application final. Nous verrons au prochain tutoriel comment changer le fond de notre &laquo;&nbsp;Activity&nbsp;&raquo;, le fond de chacune des lignes et programmer de façon à bien détacher les différentes ressources.</p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-15-15-14-59.png"><img class="alignnone size-medium wp-image-408" title="Screenshot Android Tutoriel 2" src="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-15-15-14-59-168x300.png" alt="" width="168" height="300" /></a> <a href="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-15-15-15-30.png"><img class="alignnone size-medium wp-image-409" title="Screenshot Android Tutoriel 2 02" src="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-15-15-15-30-168x300.png" alt="" width="168" height="300" /></a></p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Randoomz_Tuto_2.zip">Codes sources du Tutoriel Android n°2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/listview-contenant-des-vues-personnalisees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projet de programmation graphique Pacman</title>
		<link>http://www.randoomz.org/2012/02/projet-de-programmation-graphique-pacman/</link>
		<comments>http://www.randoomz.org/2012/02/projet-de-programmation-graphique-pacman/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 09:40:33 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=360</guid>
		<description><![CDATA[La création de jeux vidéo est le doux rêve de tous les futurs programmeurs. Ceux qui pensent qu&#8217;ils vont directement faire des &#171;&#160;trucs cools&#160;&#187; et programmer le nouveau jeu qui]]></description>
			<content:encoded><![CDATA[<p>La création de jeux vidéo est le doux rêve de tous les futurs programmeurs. Ceux qui pensent qu&#8217;ils vont directement faire des &laquo;&nbsp;trucs cools&nbsp;&raquo; et programmer le nouveau jeu qui va révolutionner le genre parce qu&#8217;ils ont &laquo;&nbsp;l&#8217;idée&nbsp;&raquo;.</p>
<p>Ils ont peut-être &laquo;&nbsp;l&#8217;idée&nbsp;&raquo; (qui sait) mais pour le reste, ils sont bien loin de la vérité. Il m&#8217;a fallu attendre ma 3ème année, dans le cadre du module de programmation graphique, avant de pouvoir réaliser un pacman en 2D et 3D par groupe de 2 constitué de <a href="https://twitter.com/#!/kmoulart">Kévin Moulart</a> et moi-même.</p>
<p>Ceci étant dit, la réalisation de ce projet a été vraiment très productif. Cela m&#8217;a permit d&#8217;apprendre le <strong>C++</strong> et la programmatin graphique avec <strong>OpenGL</strong> et <strong>GLUT</strong> (il faut donc avoir installé ces librairies pour faire tourner l&#8217;application). Ainsi que de coder au moyen de différents patterns dans le but de rendre un code clair et bien structuré.</p>
<p>Plusieurs aperçus sont disponibles à la suite de ce billet, la faible analyse qui m&#8217;a été demandé et les sources du projet :</p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-10-à-08.44.14.png"><img class="aligncenter size-medium wp-image-367" title="Screenshot Pacman 2D" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-10-à-08.44.14-300x140.png" alt="" width="300" height="140" /></a></p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-10-à-08.45.28.png"><img class="aligncenter size-medium wp-image-368" title="Screenshot Pacman 3D Parallèle" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-10-à-08.45.28-300x141.png" alt="" width="300" height="141" /></a></p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-10-à-08.46.20.png"><img class="aligncenter size-medium wp-image-369" title="Screenshot Pacman 3D Perspective" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-10-à-08.46.20-300x141.png" alt="" width="300" height="141" /></a></p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-10-à-08.46.44.png"><img class="aligncenter size-medium wp-image-370" title="Screenshot Pacman 3D Parallèle Brouillard" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-10-à-08.46.44-300x140.png" alt="" width="300" height="140" /></a></p>
<ul>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Analyse-du-Pacman.zip">Analyse du Pacman</a></li>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Application-du-Pacman.zip">Application du Pacman</a></li>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Executable-du-Pacman.zip">Executable du Pacman</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/projet-de-programmation-graphique-pacman/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Projet d&#8217;Application Orientée Objet</title>
		<link>http://www.randoomz.org/2012/02/projet-dapplication-orientee-objet/</link>
		<comments>http://www.randoomz.org/2012/02/projet-dapplication-orientee-objet/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 22:45:08 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=333</guid>
		<description><![CDATA[En 2ème année à l&#8217;Institut Paul Lambin, j&#8217;ai du confectionner ma première grosse application dans un groupe de 4 personnes constitués de Derek Hendrickx, Laurent Spitaels, Kévin Moulart et moi-même dont]]></description>
			<content:encoded><![CDATA[<p>En 2ème année à l&#8217;<a href="http://www.ipl.be">Institut Paul Lambin</a>, j&#8217;ai du confectionner ma première grosse application dans un groupe de 4 personnes constitués de <a href="http://geektarget.com/" data-hovercard="/ajax/hovercard/user.php?id=1098836866">Derek Hendrickx</a>, <a href="https://twitter.com/#!/lspitaels">Laurent Spitaels</a>, <a href="https://twitter.com/#!/kmoulart">Kévin Moulart</a> et moi-même dont j&#8217;étais le chef de projet.</p>
<p>Le but était de développer un framework complet en Java utilisant une base de données sous PostgreSQL. Ensuite, ce framework était utilisé dans un contexte de carnet de vols de planeurs comportant un espace administrateur pour gérer les vols et les pilotes enregistrés.</p>
<p>Il s&#8217;agit sûrement de l&#8217;un des projets les plus difficiles de mon apprentissage puisqu&#8217;il fallait respecter des délais strictes, fournir régulièrement une analyse poussée et un code le plus propre possible.</p>
<p>Vous pouvez voir un aperçu de l&#8217;application en mode &laquo;&nbsp;Mock up&nbsp;&raquo; en cliquant sur les miniatures ci-dessous et télécharger l&#8217;analyse et l&#8217;application complète :</p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-09-à-14.48.141.png"><img class="alignnone size-thumbnail wp-image-344" title="Screenshot PAOO 1" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-09-à-14.48.141-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-09-à-14.48.40.png"><img class="alignnone size-thumbnail wp-image-336" title="Screenshot PAOO 2" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-09-à-14.48.40-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-09-à-22.29.24.png"><img class="alignnone size-thumbnail wp-image-337" title="Screenshot PAOO 3" src="http://www.randoomz.org/wp-content/uploads/2012/02/Capture-d’écran-2012-02-09-à-22.29.24-150x150.png" alt="" width="150" height="150" /></a></p>
<ul>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Analyse-du-projet-de-paoo.zip">Analyse du projet de PAOO</a></li>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Application-du-projet-de-paoo.zip">Application du projet de PAOO</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/projet-dapplication-orientee-objet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ListeView contenant des vues simples</title>
		<link>http://www.randoomz.org/2012/02/listeview-contenant-des-vues-simples/</link>
		<comments>http://www.randoomz.org/2012/02/listeview-contenant-des-vues-simples/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 20:53:00 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Tutoriels Android]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=307</guid>
		<description><![CDATA[Si vous suivez un peu l&#8217;actualité du blog, vous aurez noté la sortie prochaine de l&#8217;application officielle de Randoomz (actuellement en alpha). L&#8217;idée était de libérer le code source une]]></description>
			<content:encoded><![CDATA[<p>Si vous suivez un peu l&#8217;actualité du blog, vous aurez noté la sortie prochaine de l&#8217;application officielle de Randoomz (actuellement en alpha). L&#8217;idée était de libérer le code source une fois la version alpha à l&#8217;état stable.</p>
<p>La chose a un peu changé. N&#8217;ayez crainte, le code source sera bien libéré mais pas directement une fois l&#8217;application à l&#8217;état stable. Je compte fournir des tutoriels expliquant le code de l&#8217;application petit à petit. Cela permettra d&#8217;aider les débutants et, peut-être, d&#8217;apprendre certaines choses aux plus expérimentés.</p>
<p>Le tutoriel d&#8217;aujourd&#8217;hui porte sur les ListView. Il s&#8217;agit d&#8217;un &laquo;&nbsp;layout&nbsp;&raquo; un peu particulier qui vous permet d&#8217;afficher une liste de vues. C&#8217;est sans doute l&#8217;un des &laquo;&nbsp;layout&nbsp;&raquo; les plus utilisés dans les systèmes Android.</p>
<p>Dans ce premier tutoriel, je présenterai la ListView avec de simples vues pour commencer doucement. Un autre traitera sur la personnalisation de ses vues pour en afficher des plus complexes.</p>
<p>Commençons !</p>
<p>Après avoir créé votre projet android, éditez le fichier <strong>res &gt; layout &gt; main.xml</strong> en remplaçant son contenu par :</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;TextView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
   android:layout_width=&quot;fill_parent&quot;
   android:layout_height=&quot;fill_parent&quot;
   android:text=&quot;&quot; /&gt;
</pre>
<p>Ce &laquo;&nbsp;layout&nbsp;&raquo; sera utilisé pour s&#8217;appliquer à chaque élément de notre futur ListView.</p>
<p>Maintenant, ouvrez la classe qui a été créé automatique à la création de votre projet. Il y a plusieurs façon d&#8217;intégrer une ListView dans une activité. Dans notre cas, nous allons utiliser une méthode qui restreint son contenu puisqu&#8217;il ne peut y avoir qu&#8217;une ListView.</p>
<p>A la place de Activity, étendez votre classe par ListActivity :</p>
<pre class="brush: java; title: ; notranslate">
public class Randoomz_TutoActivity extends ListActivity {
</pre>
<p>Complétez la méthode onCreate de la classe :</p>
<pre class="brush: java; title: ; notranslate">
@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   // Ajoute automatiquement une ListView qui remplit l'entièreté de l'écran
   this.setListAdapter(new ArrayAdapter&lt;String&gt;(this, R.layout.main, items));
   // Récupère la ListView
   ListView lv = getListView();
   // Ajoute une action au clique sur un élément de la liste
   lv.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView&lt;?&gt; parent, View view,
         int position, long id) {
         // Affiche un &quot;Toast&quot; avec le texte de l'élément sélectionné
         Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_LONG).show();
      }
   });
}
</pre>
<p>Attardons nous un peu sur la méthode setListAdapter. Cette méthode prend en paramètre l&#8217;instance d&#8217;un ArrayAdapter. Le constructeur de cette classe prend 3 paramètres :</p>
<ol>
<li>Le contexte de la classe</li>
<li>Une ressource</li>
<li>Une liste d&#8217;objets</li>
</ol>
<p>Notre liste d&#8217;objet est en faite un simple tableau de String puisque le type générique de ArrayAdapter est de ce même type :</p>
<pre class="brush: java; title: ; notranslate">
private String[] items = { &quot;Belgique&quot;, &quot;France&quot;, &quot;Espagne&quot;, &quot;Italie&quot;, &quot;Angleterre&quot;, &quot;Irlande&quot; };
</pre>
<p>Bien entendu, le contenu du tableau peut être différent du moment qu&#8217;il s&#8217;agit d&#8217;un tableau de String.</p>
<p>Nous avons fini notre application. Vous devriez avoir le résultat suivant :</p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-09-20-05-16.png"><img class="alignnone size-medium wp-image-320" title="Screenshot Randoomz ListView 01" src="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-09-20-05-16-168x300.png" alt="" width="168" height="300" /></a> <a href="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-09-20-06-06.png"><img class="alignnone size-medium wp-image-321" title="Screenshot Randoomz ListView 02" src="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-09-20-06-06-168x300.png" alt="" width="168" height="300" /></a></p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Randoomz_Tuto.zip">Codes sources du Tutoriel Android n°1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/listeview-contenant-des-vues-simples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projet de base de données sous PostgreSQL</title>
		<link>http://www.randoomz.org/2012/02/projet-de-base-de-donnees-sous-postgresql/</link>
		<comments>http://www.randoomz.org/2012/02/projet-de-base-de-donnees-sous-postgresql/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 22:16:33 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=273</guid>
		<description><![CDATA[Dans le cadre d&#8217;un cours de base de données, il m&#8217;a été demandé, par groupe de 2, d&#8217;effectuer une application basique en console utilisant une base de données sous PostgreSQL.]]></description>
			<content:encoded><![CDATA[<p>Dans le cadre d&#8217;un cours de base de données, il m&#8217;a été demandé, par groupe de 2, d&#8217;effectuer une application basique en console utilisant une base de données sous PostgreSQL.</p>
<p>Une première expérience dans la gestion d&#8217;une base de données qui a été à la fois très productive et sympathique. J&#8217;avais enfin l&#8217;occasion de pouvoir essayer autre chose que MySQL.</p>
<p>Le projet consistait à fournir :</p>
<ul>
<li>Une application cliente pour une simple consultation des données.</li>
<li>Une application serveur pour ajouter, supprimer et consulter les données.</li>
<li>Des &laquo;&nbsp;queries&nbsp;&raquo; afin de pouvoir créer une base de données à l&#8217;identique sur un autre environnement PostgreSQL.</li>
</ul>
<p>Puisque le projet côté Java n&#8217;est pas graphique, je libère seulement l&#8217;analyse et les codes sources et ne vous montre pas de screenshots.</p>
<ul>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Analyse.zip">Analyse du projet de base de données sous PostgreSQL</a></li>
<li><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Application.zip">Application du projet de base de données sous PostgreSQL</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/projet-de-base-de-donnees-sous-postgresql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Les lunettes Google pour bientôt !</title>
		<link>http://www.randoomz.org/2012/02/lunettes-google/</link>
		<comments>http://www.randoomz.org/2012/02/lunettes-google/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 22:56:14 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[High Tech]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=263</guid>
		<description><![CDATA[Google fait beaucoup parler de lui ces temps-ci, notamment avec le mystérieux projet X qui est inconnu de tous y compris par la plupart des employés de Google. Mais je]]></description>
			<content:encoded><![CDATA[<p>Google fait beaucoup parler de lui ces temps-ci, notamment avec le mystérieux projet X qui est inconnu de tous y compris par la plupart des employés de Google. Mais je ne viens pas vous parler de cette affaire, que je suivrais avec grand intérêt, mais d&#8217;une autre qui est tout aussi intéressant : les lunettes Google.</p>
<p>Vous en avez peut être déjà entendu parler à l&#8217;état d&#8217;une rumeur ou d&#8217;une lointaine information. Cependant, selon le site <a href="http://9to5google.com/2012/02/06/hud-google-glasses-are-real-and-they-are-coming-soon/">9to5</a>, Google travaillerait bien sur des lunettes et serait commercialisé pour bientôt.</p>
<p>Même plusieurs caractéristiques sont déjà connues :</p>
<ul>
<li>La forme des lunettes devrait se rapprocher dy style de <a href="http://goo.gl/a98gX">Oakley Thumps</a></li>
<li>Un écran de type Head Up Display, c&#8217;est-à-dire un affichage tête haute qui consiste à superposer des informations sans gêner la vue</li>
<li>Un OS mobile intégré basé sur Android</li>
<li>Une navigation effectuée par des mouvements intuitifs de la tête facile à mémoriser</li>
<li>Possibilité de prendre des photos et vidéos avec ou sans flash, de téléphoner, intègre un GPS, etc.</li>
</ul>
<div>Doux rêve ou non ? Un avenir ou pas ? Je suis personnellement assez impatient d&#8217;en connaitre un peu plus et j&#8217;espère avoir l&#8217;occasion de tester la chose dans un avenir plus ou moins proche.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/lunettes-google/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Séminaire Microsoft : Windows Phone 7</title>
		<link>http://www.randoomz.org/2012/02/seminaire-microsoft-windows-phone-7/</link>
		<comments>http://www.randoomz.org/2012/02/seminaire-microsoft-windows-phone-7/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 11:26:04 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=236</guid>
		<description><![CDATA[Sur le marché mobile, il y a quelques grands acteurs dont les plus connus Android et iOS. Aujourd&#8217;hui, je me suis inscris à un séminaire Microsoft pour en connaitre un peu plus]]></description>
			<content:encoded><![CDATA[<p>Sur le marché mobile, il y a quelques grands acteurs dont les plus connus Android et iOS. Aujourd&#8217;hui, je me suis inscris à un séminaire Microsoft pour en connaitre un peu plus sur le petit nouveau de Microsoft, Windows Phone 7, et ainsi mourir moins bête. J&#8217;avais beaucoup de bonnes attentions sur cette nouvelle plateforme grâce à son interface innovante et son ergonomie vraiment bien pensé.</p>
<p>On m&#8217;a demandé de configurer mon portable pour pouvoir suivre le séminaire en installant le SDK de Windows Phone 7. Ayant déjà Visual Studio 2010 (IDE Microsoft) en version Ultimate installé sur ma partition Windows, j&#8217;ai voulu intégrer le SDK à ce dernier. Impossible ! Il ne veut fonctionner qu&#8217;avec une autre version de Visual Studio, nommé Express. Pour une version dite Ultimate, c&#8217;est déjà un comble.</p>
<p>Passons, le lendemain, après une bonne heure d&#8217;attente du représentant myTIC (un partenaire de Microsoft), il nous explique comment va se passer le séminaire : 40 minutes de théorie et 2h d&#8217;exercices pratiques.</p>
<p>Les 40 minutes sont totalement inintéressantes. Comparé à Android qui dispose de diagrammes et autres schémas sur l&#8217;architecture de son OS et de son fonctionnement, je n&#8217;ai eu droit que à des slides remplies de textes et très ennuyantes. Mauvais point, on commence mal.</p>
<p>Ceci étant dit, l&#8217;architecture de cet OS n&#8217;est pas si mal pensé et règle bon nombre de problèmes liés à la batterie ou de la gestion de la mémoire. Cela permet aux terminaux sous Windows Phone 7 de gagner énormément en autonomie comparé à ses concurrents Android (iOS est à part puisqu&#8217;il n&#8217;implémente pas non plus un vrai système multitâche).</p>
<p>Pour ce qui est de la partie pratique, ce n&#8217;est pas beaucoup mieux. Aucune interactivité avec le représentant. Je n&#8217;ai la possibilité que de recopier son code qu&#8217;il projette sur l&#8217;écran bêtement et de bénéficier d&#8217;explications interminables. Déjà que le C# n&#8217;est pas très intéressant, c&#8217;est encore moins attirant dans ces conditions.</p>
<p>Windows Phone 7 est pour moi un OS très sympathique à l&#8217;utilisation pour un certain type d&#8217;utilisateur (utilisateur Windows et Xbox au quotidien) mais je pense que programmer pour cette plateforme est une horreur sans nom que je déplore.</p>
<p>J&#8217;espère donc n&#8217;être jamais amené à programmer pour cette plateforme dans ma carrière de programmeur.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/seminaire-microsoft-windows-phone-7/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Première alpha de l&#8217;application Android Randoomz</title>
		<link>http://www.randoomz.org/2012/02/premiere-alpha-de-lapplication-android-randoomz/</link>
		<comments>http://www.randoomz.org/2012/02/premiere-alpha-de-lapplication-android-randoomz/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 21:02:22 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=226</guid>
		<description><![CDATA[Si vous suivez Randoomz sur facebook (disponible via la liste des liens pour me suivre) , vous aurez noté que je travail sur une application Android du blog. Après plusieurs jours]]></description>
			<content:encoded><![CDATA[<p>Si vous suivez Randoomz sur facebook (disponible via la liste des liens pour me suivre) , vous aurez noté que je travail sur une application Android du blog. Après plusieurs jours de travail acharnés, je suis en mesure de sortir une première alpha de cette application.</p>
<p>Toutes les fonctionnalités voulues ne sont pas encore implémentées. Elles sont même assez restreintes, l&#8217;application permet pour cette alpha :</p>
<ul>
<li>De visualiser la liste des derniers billets</li>
<li>De visualiser les commentaires d&#8217;un billet sélectionné</li>
<li>De partager un billet de la façon que vous voulez</li>
</ul>
<p>Donc une application très simple mais le but de cette alpha est plus de me donner un retour au niveau du design, de l&#8217;ergonomie et de la fluidité sur une large nombre de terminaux android.</p>
<p>Si vous êtes intéressé de participer à cette alpha mais que vous ne savez pas comment installer une application via une apk. Je vous conseil de faire un détour vers l&#8217;android market en téléchargent une application comme <a href="https://market.android.com/details?id=com.metago.astro&amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5tZXRhZ28uYXN0cm8iXQ..">Astro</a> qui permet d&#8217;installer des applications via une apk stocké dans la mémoire de votre smartphone.</p>
<p>Vous êtes interessé ? envoyez moi une demande au mail suivant androwiiid [a] randoomz.org</p>
<p>Pour ceux qui n&#8217;ont pas de androphone mais qui désirent avoir un aperçu de l&#8217;application, voici deux captures d&#8217;écran :</p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-03-21-03-36.png"><img class="aligncenter size-medium wp-image-230" title="Application Android v0.1 : Liste des billets" src="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-03-21-03-36-168x300.png" alt="" width="168" height="300" /></a></p>
<p><a href="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-03-21-04-15.png"><img class="aligncenter size-medium wp-image-231" title="Application Android v0.1 : Liste des commentaires" src="http://www.randoomz.org/wp-content/uploads/2012/02/Screenshot_2012-02-03-21-04-15-168x300.png" alt="" width="168" height="300" /></a></p>
<p>N&#8217;hésitez pas à donner votre avis dans les commentaires :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/02/premiere-alpha-de-lapplication-android-randoomz/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bref, je suis le sosie du mec de Bref</title>
		<link>http://www.randoomz.org/2012/01/bref-je-suis-le-sosie-du-mec-de-bref/</link>
		<comments>http://www.randoomz.org/2012/01/bref-je-suis-le-sosie-du-mec-de-bref/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 17:32:36 +0000</pubDate>
		<dc:creator>AndroWiiid</dc:creator>
				<category><![CDATA[Série]]></category>

		<guid isPermaLink="false">http://www.randoomz.org/?p=212</guid>
		<description><![CDATA[Bref est la web série qui cartonne en ce moment sur la Toile. Moi même j&#8217;en suis particulièrement fan mais le &#171;&#160;nouveau&#160;&#187; bref est assez &#8230; particulier :) Regardez par]]></description>
			<content:encoded><![CDATA[<p>Bref est la web série qui cartonne en ce moment sur la Toile. Moi même j&#8217;en suis particulièrement fan mais le &laquo;&nbsp;nouveau&nbsp;&raquo; bref est assez &#8230; particulier :)</p>
<p>Regardez par vous même !</p>
<p style="text-align: center;"><iframe width="500" height="281" src="http://www.youtube.com/embed/cxzC2SbH3MY?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.randoomz.org/2012/01/bref-je-suis-le-sosie-du-mec-de-bref/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

