Archive for the ‘ IT ’ Category

Ma première application Blackberry Playbook : Floralia

C’est le printemps, la saison du dev et des cadeaux (sic!). Après avoir reçu mon palm pre2 de la part d’HP pour développer dessus, voici que je devrais recevoir une tablette Blackberry Playbook. Pour recevoir cette tablette gratuitement, il fallait bien sur développer une application qui serait acceptée sur leur App World. Je me suis donc attelé au développement sous blackberry.
Pour l’occasion, je me suis mis au flex grâce au Blackberry Playbook Adobe Air SDK et je dois avouer que le flex est plutôt un langage facile.
Mon application, qui devrait se retrouver sur le Blackberry App World d’ici quelques jours permet de trouver quelle fleur offrir en fonction de l’occasion.
On y trouve deux parties :

  • Un explorateur qui recense toutes les fleurs avec leur signification
  • Une aide pour trouver les fleurs qui s’accompagnent le mieux à une occasion

L’écran d’accueil comporte une partie “Le saviez-vous” affichant une petite astuce ou une anecdote sur les fleurs.
L’application recense :

  • 24 fleurs (photo et description)
  • 14 occasions avec les fleurs correspondantes
  • 10 anecdotes

Voici une petite vidéo de l’application :

[hana-flv-player video="http://blog.zoubda.fr/wp-content/uploads/2011/04/bb-floralia.mp4" width="640" height="360" description="Floralia" player="4" autoload="true" autoplay="false" loop="false" autorewind="false" /]Floralia

Bon, ce n’est pas de la grande appli, mais passer un we à développer pour gagner une tablette gratuite, ça valait le coup de se mettre au flex :)

Un peu de nostalgie

Voilà voilà

Finalement, mon nouveau projet va me prendre tout mon temps libre pour au moins les prochaines semaines donc je ne pourrai pas finaliser le jeu du snake.

Pour rappel, il s’agit d’un jeu ayant pour but de ressembler au bon vieux snake que l’on trouvait sur nos téléphones il y a quelques années et qui nous a hypnotisé pendant les cours (de récré bien sur).
Bref, comme dit dans le précédent post, le projet est bien avancé, la principale fonctionnalité non encore implémentée est la gestion de l’accéleromètre pour faire tourner le snake. Vu que je n’ai pas de téléphone pour tester, il faut pour le moment cliquer sur les bords (une bande de quelques pixels).

Voici les sources pour les gens que ça pourrait aider à créer des jeux sous windows phone 7 :)



Clique moi fort !

Snake – Back to the past

Since I am working with friends on a application which will be available on iphoneOS, Android and wp7, I didn’t play with my game project.
So, as I still don’t know if I am going to make the source code free or to put it on the market, here are some screenshots.


It’s almost finished. For the moment, I just did 20 levels (not very interesting to spend hours writing some text files…) and 2 kinds of bonus (blue and red on the screenshots to increase the score and/or the size of the snake). But, the main problem is that, for the moment, to turn the snake, you have to click on the border of the screen as I can’t test accelerometer without a phone… :(

Le nombre croissant de plateforme mobiles est-il un problème?

Il existe à l’heure actuelle 4 grandes plateformes mobiles que sont : l’iPhoneOS, Android, Windows Phone 7 et Symbian.
Pour une entreprise désirant proposer une solution mobile à ses clients, il faut donc normalement développer pour toutes ces plateformes. Or, à l’heure actuelle, on trouve beaucoup d’applications qui sont développée pour l’iPhone, on voit de plus en plus d’applications Android développées pour faire les mêmes choses.
Je ne vais pas m’attarder sur Symbian mais plutôt sur les 3 autres plateformes.

Avec l’arrivée de Windows Phone 7, arrivera-t-on au points ou il faudra développer 3 applications pour satisfaire l’ensemble de ses clients?

J’ai personnellement expérimenté le développement sur ces 3 plateformes avec une certaine préférence pour Android et Windows Phone (n’appréciant pas vraiment l’IDE xcode).
Une entreprise se retrouvera devant une situation assez problématique. Il faudra alors faire appel à des équipes différentes afin de travailler sur les 3 applications produits, cela impliquant un coût non négligeable…

Je pense que d’ici quelque temps, nous verrons apparaître des solutions afin de coder sur plusieurs plateformes à la fois (j’ai assisté à une démonstration ce WE d’un projet vraiment intéressant à ce sujet) bien que ces outils ne suffisent pas à mon avis pour des applications un peu complexes.

Aujourd’hui, avec 2 amis, nous nous sommes lancé dans un projet innovant d’application mobile, et, afin d’avoir une porté maximale, avons décidé de la développer pour ces 3 plateformes (chacun étant à l’aise dans son domaine). Cette application, soulève pourtant un autre gros problème : le système de push des différents OS.
Je ferai un article sur ce problème une prochaine fois mais, notre application disposant d’une partie serveur devant notifier les terminaux, on se retrouve à devoir coder le push côté serveur pour les 3 plateformes !!!

Je mettrai l’avancé de ce projet tout récent sur le blog afin de vous faire partager l’expérience du développement d’un projet sur les ces 3 plateformes que sont iPhoneOS, Android et Windows Phone…

Xna – Simple Arkanoid source code

Screenshots Arkanoid

Et voici mon deuxième essai fait avec XNA. Le code est un peu chaotique mais je n’ai pas vraiment le temps d’y retoucher avec mon “vrai” projet de jeu en parallèle.
Cependant, il aurait été dommage de ne rien faire de ces sources, donc, je le met ici à disposition des personnes que ça pourra intéresser.
Concrètement, pour les débutants en XNA, cet exemple permet de voir la gestion des niveaux dans un jeu. Dans ce code, il est très facile de rajouter des niveaux sans toucher au code source de l’application.
Note : Le moteur physique est vraiment très très basique donc n’y faites pas attention, ainsi que le fait que l’on perde quand on n’a plus de vie mais je compte sur vous pour trouver ce qu’il faut changer pour que ça marche ;)

Pour télécharger les sources, cliquez ici

My first XNA game – Kill the drops.

Screenshot Drop xna game

Drops Screenshot

Here is my first xna game.
I started three games : two I will give for free (with sources) on my blog and one I am working hard to put I on the MarketPlace.
So, my first game was just to make some tests like touchscreen ans sprites.
So, how does the game works?
You just have to touch the drops to make them disappear, otherwise, see will grow up to the top of the screen (and you will lose).
Each drop have a number of points depending of its size. A big drop will make see grow up faster if it falls in.
When the sea is at the top of the screen, the game stop, you loose and have to touch the screen to start a new game.

I hope this sample could help people to start with xna as it is a very simple game with only 3 classes (Game, Drop and Sea).
Xna is more simple than I excepted and, even if the sample is not very optimized (still learning), it’s pretty simple to do.

To download the project, click here

Let’s start with Windows Phone 7

Windows Phone 7

Hy,

It’s not a secret that I have an “old” HTC HD runnind windows mobile 6 (and sometimes Android when it works) and that I like design applications for it.

So, I decided to start learning déveloping for Windows Phone 7 phones. After all, it doesn’t seem to be so hard. I think I’ll try to learn XNA and maybe start with a game.

See you in a couple of days for my first Windows Phone 7 application :)

[HowTo] Java swing – Scroller automatiquement dans un jTextArea

J’ai eu besoin de faire un petit logiciel de contrôle de flux récemment et j’y ai donc intégré une console affichant les évènements reçus du réseau, etc.
Pour que ma console soit sexy, j’ai voulu que celle-ci affiche toujours les derniers messages arrivés et donc qu’elle scroll toute seule vers le bas. Malheureusement, swing ne semble pas gérer cela de base **arf**, il va donc falloir un peu ruser.
Pour faire cela (j’utilise Netbeans au passage), lorsque l’on ajoute un jTextArea, un jScrollPane dans lequel il se trouve est automatiquement créé. C’est parfait. Si vous faite votre interface à la main, il faut donc mettre votre jTextArea que nous appellerons jta dans un jScollPane que nous appellerons jsp

On commence par récupérer la jScrollBar de notre jsp

[sourcecode language="java"]
JScrollBar scrollBar = jsp.getVerticalScrollBar();
[/sourcecode]

On ajoute ensuite le texte que l’on veut dans notre jTextArea

[sourcecode language="java"]
jta.append("Scroll and look at me !");
[/sourcecode]

Ensuite, on regarde si celle-ci est visible. Si c’est le cas, c’est que le jTextArea est déjà plein et on la place donc en bas

[sourcecode language="java"]
if(scrollBar.isVisible())
jta.setCaretPosition(jta.getDocument().getLength());
[/sourcecode]

Voilà, rien de plus simple et très pratique.

Maintenant, voyons le cas ou on aurait bougé dans notre jTextArea et que l’on ne veuille pas scroller à chaque fois qu’un nouveau message y est ajouté… **beaucoup d’applications ne gèrent pas ça et c’est vraiment agaçant!!!**
Pour cela, on rajoute une ligne afin de vérifier si la scrollbar est déjà en bas (dans le cas où on n’aurait donc pas bougé :

[sourcecode language="java"]
boolean isAtBottom = ((scrollBar.getValue() + scrollBar.getVisibleAmount()) == scrollBar.getMaximum());
[/sourcecode]

Puis, on remplace notre test par :

[sourcecode language="java"]
if(isAtBottom)
jta.setCaretPosition(jta.getDocument().getLength());
[/sourcecode]

Voilà, en espérant que ce petit tip aidera :)

Keres project – Manage and secure your people-lifting booms and platforms

During the 3rd year at EPITA, students are able to do a personal project (during 4 month) that can replace some school projects.

So, benjamin, simon and I decided to find and create a solution to manage and secure construction trucks after Access Industries company talked to us about their problem. Actualy, all kind of people-lifting booms and platforms have the same key, so, it’s easier to change it if it is lost. But, it is completly unsecure and it appears that access that their trucks are used during the night or the week end by other companies.

So, we proposed them one solution, not very expensive and easy to use.

Our solution consists of using RFID cards and GPRS connexion to secure the trucks.

Here is how it works :

  • When you want to use a truck, just the card come near the RFID device.Boitier Keres
  • our device contact our server and check if:
    • this card is allowed to switch on this truck
    • this truck can by switch on at this time and date (for example, a company can decide to make this truck only accessible from monday to wednesday between 8am to 4pm)
  • The server responds to our device which switch on or not the truck.

Technologies used

  • RFID receptor
  • Wifi to simulate GPRS for this first step of the project
  • C# webservices
  • asp.Net for the web interface (see video demo) and Ajax
  • C# stand-alone application to manage the RFID device


[hana-flv-player video="http://blog.zoubda.fr/wp-content/uploads/2010/07/projetLibreEpitaKeres.flv"
width="400"
height="330"
description="Mise en situation du produit Keres"
player="4"
autoload="true" autoplay="false"
loop="false" autorewind="true"
/]

Thanks

  • EPITV for the demonstration video
  • Pierre Cauchois (from Microsoft france) who lent us the device (Via Artigo3 with windows embedded standard)

Too see the news on EPITA website written by their journalist (in french): Click here

Consulter son répondeur Freebox

Le 13 juillet, c’est jour de fête, mon Android est tombé en panne alors, voila, retour sur windows mobile. Et, je dois dire, que bien qu’au niveau fonctionnalités rien ne manque, niveau applis, c’est quand même pas la même chose… On se retrouve obligé de lancer opera mobile pour aller chercher certaines infos qui étaient à porté de doigts sur une appli Android.

Anyway, lors de mon stage, j’avais expérimenté une petite appli que j’avais commencé à faire pour winmo afin de lire les message de votre répondeur freebox depuis votre téléphone. Bon, inutile de vous dire qu’elle s’est perdue quelque part mais l’idée me plait toujours bien, donc j’ai recommencé çà avant hier pour votre plus grand bonheur :)

Voici un petit schéma récapitulatif de comment marche l’application une fois lancée.

Workflow de lecture du répondeur Freebox

Workflow de lecture du répondeur Freebox

Alors, dans l’ordre :

  • on se connecte au site de Free afin de s’identifier et l’on récupère les variables qui vont ensuite nous permettre de nous reconnaitre lors de la récupération des messages;
  • Free ne mettant pas à disposition des développeurs des méthodes “jolies” d’accès à ses services, on récupère la bonne page où l’on récupère les infos comme l’on peut :
    • Le numéro de l’appelant;
    • La date du message;
    • La durée du message;
    • Le nom et le chemin du fichier audio;
    • Le chemin pour le supprimer (pour une version prochaine peut-être);
  • A chaque message que l’on récupère, on le rajoute dans la base de donnée du logiciel si il n’y est pas;
  • Pour chaque message également, on le télécharge (j’ai longtemps hésité pour savoir si je téléchargeais tout là ou juste à la lecture, mais j’espère que personne n’a 45 message sur son répondeur) si celui-ci n’existe pas;
  • On affiche la liste des message présents dans la base de données;
  • A chaque lecture d’un message, on set son champ dans la BDD afin de dire qu’il n’est pas nouveau.

Bon, bien de rien dur, la dedans. Le plus long, ne voulant pas vous laisser avec une interface graphique native faite avec les (magnifiques et très modernes) contrôles de base de winmo, fut de réaliser une interface avec la bibliothèque Fluid.
Je vous laisse donc découvrir la première version de l’application et j’attends vos retours (bon, comme mauvais), vos remontées de bug, etc.

Si le temps me le permet, je mettrais à jour l’application. Pour le moment, certaines actions sont déjà implémentées. Voici un récapitulatif de ce que fait l’application, ce qui est déjà implémenté mais pas visible dans l’interface (donc bientôt potentiellement), et ce qui ne marche pas:

  • La connexion au site de free
  • La récupération de la liste des messages
  • Le téléchargement et l’écoute des messages
  • La possibilité de supprimer un message (de la BDD et de votre répondeur bien sur);
  • Rappeler un correspondant;
  • Arrêter la lecture d’un message (vous l’aurez remarqué, cela est impossible pour le moment);
  • Remettre un message comme non lu;
  • Gérer les erreurs (identifiants incorrectes, pas de réseau);
  • Possibilité de rentrer ses identifiants depuis l’interface.

Mon problème pour inclure ces fonctionnalités est la prise en main de la bibliothèque graphique que j’utilise mais que je ne maitrise pas vraiment.

Alors, que faire pour l’installer? Il suffit de télécharger l’installeur dans la partie “Downloads” du site et d’aller éditer un petit fichier xml qui doit se trouver dans le répertoire “data” du répertoire d’installation du programme (normalement Program Files\\Repondeur Freebox\\data) sur votre téléphone afin d’y rentrer votre numéro de téléphone et votre mot de passe free dans les bon champs. Exemple
[sourcecode language="xml"]
<?xml version="1.0" ?>
<infos login="0102030405" password="azerty" />
[/sourcecode]

Je mettrais l’installeur en ligne dans la soirée :)