Category Archives: Java

[Blackberry]RemotePowerpoint, control your presentation remotely [BETA]

Hello everybody!

This is my first BlackBerry project, and I give you the opportunity to try and use it!

My project is an app to control a Powerpoint remotely, for the moment only via Bluetooth, and maybe later via Wi-FI too.

It will work only with Blackberry having a Full-Keyboard (like 8900, 9000, 9700, etc..), and Bluetooth. I haven’t tried it on 4.x firmware, but I think it should work (need confirmation)

RemotePowerpoint is really easy to use. Launch the app on your Blackberry, and on your computer, choose the computer which is running RemotePowerpoint in the device list shown after 10 seconds

and you’re connected.

If you have any problem to find your computer, you’ve to re-launch the app for the moment. I haven’t implemented a way to “refresh” the list again (in my to-do list)

When you’re connected, and after MS Powerpoint is launched, you can press “S”, and your powerpoint will start in fullscreen. Then press “N” or “Space” to move to next slide, and “P” to go previous.

There is a timer on the screen. You can start/stop when pressing “T”. To reset it, press “R”.

It is better to start the bluetooth from the Blackberry, in “Manage connections”, than to start it while RemovePowerpoint is starting.

If you want to download this app from your BB, go to http://blackberry.rocks-it.com, and you’ll find a link named “RemoteBlackberry”.

The desktop application can be download from here

If you try it, give me some feedbacks (good or bad), and I’ll take all what you say into consideration. And if you have ideas to improve this app, say it, and I’ll do all what I can to implement it for the next version.

If you find this app cool and/or useful, or just because you want to motivate me… Buy me some beers!



Summary

You need Java on your computer

The application needed on your computer can be found here

Go to http://blackberry.rocks-it.com with your Blackberry to download this app. !!! UPDATE Link is invalid for now. If you really need this app, please email : admin*AT*scboffspring.eu (replace *AT* by “@”)!!!

Be careful! This is Beta 0.1, bugs probably exists..

PS: Sorry for my english, it isn’t my mother tongue…

[PlayFramework] Premier jour de jeu!

Aujourd’hui, comme annoncé dans mon dernier article de la nuit passée, j’ai donné une chance à ce récent framework Java, permettant le développement web, j’ai nommé Play!

Ce que j’ai fait

Tout d’abord, j’ai commencé par télécharger ce framework, voir comment il était structuré, ce qui était possible, ce qu’il y avait fourni avec, etc…

Alors, fourni en téléchargement, il y a :

  • Documentation du framework, dans son dossier
  • Le framework en lui-même, avec les sources!
  • Python, pour l’utilisation sous windows de l’invite de commande permettant de créer un projet, lancer le serveur, etc…
  • Le plugin pour eclipse
  • Et bien sûr, l’invite de commande de Play

J’ai donc installé le plugin, et configurer mon eclipse afin de pouvoir travailler convenablement^^. Pour installer le plugin, rien de plus simple, il suffit d’ajouter le .jar se trouvant dans support/eclipse dans le dossier d’eclipse, et le tour est joué.

Ensuite, je me suis dirigé vers le guide se trouvant sur le site du framework, et je l’ai suivi pour réalisé ce blog.

Et pour finir, j’écris ce billet pour vous dire ce que j’ai apprécié, et ce que j’ai moins aimé en développant avec Play!

Ce que j’ai apprécié

Premièrement, la simplicité de développement. Mes souvenirs de JSF, un immense paquet de fichiers XML où il faut configurer 452 choses pour pouvoir déjà rien que lancer l’application, et après, un espèce de patchwork à mettre en place, qui une 1 sur 2 ne marchais pas. Ici, avec Play!, je n’ai pas eu ce genre de soucis. J’ai créer mon projet, j’ai appelé la commande pour réalisé les fichiers eclipse, j’ai importé le projet, j’ai configurer la base de donnée, et j’ai lancé le serveur pour voir si tout marchait ! Ensuite, c’est du Java, que je connais plutôt bien, et du HTML/CSS/JS pour l’affichage. Seul truc qui peut dérouter un peu au début, c’est la syntaxe pour les templates, mais on retrouve le droit chemin rapidement!

Deuxièmement, le serveur. Ça paraît con, mais ne pas avoir besoin de relancer le serveur, et de “rebuild” l’application à chaque modification, c’est vraiment plaisant ! Avec JSF, j’étais toujours en train de build, et perdais un temps monstrueux, maintenant, je modifie mon fichier, j’enregistre, je vais sur mon navigateur, et c’est déjà là. Même la base de donnée! On modifie le model, et c’est pris en compte directement.

Troisièmement, le MVC. Toujours été fan d’une bonne organisation, et là, c’est le cas, donc tant mieux. Il est vrai qu’avec Java, on a souvent le droit à du MVC, ce qui me fait du bien en pensant à PHP^^

Pour finir, je dirais la logique de développement. Le but est de faire le code une fois, et après, on ne fait pas de copier/coller comme je réalisais parfois avec PHP. Là, c’est organisé tellement bien, que c’est presque impossible de ne pas faire du code DRY (Don’t Repeat Yourself).

Ce que j’apprécie moins

Personnellement, je n’ai pas vu grand chose que je n’apprécie pas. Peut-être une ou deux choses mineurs.

Tout d’abord, au niveau de la façon de récupérer les objets dans la base de données.

Avec Play, pour récupérer par exemple les “Posts” d’un blog, le code est le suivant :

List<Post> olderPosts = Post.find("order by postedAt desc").from(0).fetch(10);

Je pense, personnellement, que la façon de rechercher avec Ruby on Rails, et plus pratique, et plus clair. Par exemple, pour ici, ce serait :

HashMap<String,String> params = new HashMap<String,String>();
params.put("order","order by postedAt desc");
List<Post> olderPosts = Post.find("params").from(0).fetch(10);

C’est un choix du développeur, mais je vois qu’il est aussi possible de remplacer “order by postedAt desc” par la requête complète. Je ne connais pas encore assez le “JPA” utilisé dans le framework pour vraiment m’avancer, je trouve dommage.

Autre chose, qui est peut-être dommage, le nom-support de base du module de “CRUD” et de “Security”. Même si c’est trèèès facile à ajouter, je pense qu’ils sont/seront tellement utilisés, qu’il est dommage de devoir les activer manuellement.

Conclusion

Je suis VRAIMENT satisfait de ce Framework, et je vais développer mon prochain site grâce à lui. Dans la logique, il est proche de Ruby on Rails, et c’est quelque chose qui me plaît beaucoup.

Avantages

  • Logique de développement DRY
  • Support de toutes les librairies de Java
  • Facilité de prise en main
  • Guide complet (même si 1 ou 2 erreurs sont présentes)
  • La “compilation” à la volée
  • Possibilité d’exporter sous format “war” compatible Glassfish/Tomcat/etc…
  • Module “Security” et “CRUD” vraiment pratique

Inconvénients

  • Communauté encore réduite
  • Gestion des objets relationnels pas encore terminé à mon goût

Je dirais donc… Foncez ! Essayer, c’est l’adopter !

Et dans quelques jours, je ferai un prochain article sur la gestion du Multilingue, de l’implémentation d’AJAX, et d’autres choses intéressantes que je trouverai d’ici là!

[PlayFramework] Play, le framework de développement Java du future?

Play? Kézako?

Aujourd’hui, en réalisant quelque recherche sur les différents framework permettant de le développement de sites webs, je suis tombé sur un (apparemment nouveau) framework qui me paraît bien prometteur. J’ai nomé “Play“.

Ce framework est développé en Java, et pour développé… Ben c’est aussi en Java! Chose qui m’intéresse grandement, vu que c’est le langage que je connais le mieux (avec PHP)… Il a été développé en premier lieu par Guillaume Bort, un Français, et aidé, à l’heure actuelle, de 9 autres développeurs. Le framework est, comme dit précédemment, jeune, et se trouve en version 1.02. La version 1.1 se profile à l’horizon.

Déjà, pour vous donner un aperçu de la vitesse à laquelle il est possible de développer, voici la vidéo se trouvant en page d’accueil de leur site :

Au niveau des possibilités offertes par Play, tout ce qui se trouve dans Java SE, avec un ÉNORME avantage. Lorsqu’un bug se produit, par exemple un “;” manquant, il suffit de modifier le fichier, le sauvegarder, et recharger la page! Pas besoin de relancer le serveur ou autre.  Une fonctionnalité déjà très intéressante.

Ensuite, comme RoR, les URI sont du type /Control/Action, un concept que j’apprécie :)

Pour finir, je dirais qu’un autre avantage de ce framework est la façon d’écrire ses templates. Alors qu’avec, par exemple, JSP, il faut écrire un paragraphe énorme comme celui-ci :

1
2
3
4
5
6
7
8
9
10
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
  <c:choose>
    <c:when test="${emails.unread != null && fn:size(emails.unread)}">
    You have ${fn:size(emails.unread)} unread email(s)!
  </c:when>
  <c:otherwise>
    You have no unread emails!
  </c:otherwise>
</c:choose>

Qui est pas très… Propre dirons-nous, avec Play, il suffit de :

1
You have ${emails.unread ?: 'no'} ${emails.unread?.pluralize('email')} !

Prochaine étape?

Pour moi, la prochaine étape est de testé ce framework à l’occasion, et je vous ferai un petit retour sur ce que j’ai trouvé bien/moins bien :)

En attendant, pour vous donnez un peu envie d’en savoir plus, allez ici pour voir quelques exemples :) Et pour télécharger, ainsi que le guide du débutant, ça se trouve par