mercredi, avril 09, 2014

Introduction à Apache Hadoop. Partie 1 : Généralités sur HDFS et MapReduce


Je viens enfin de rédiger mon premier tutoriel sur Apache Hadoop. Ce premier tutoriel introductif s'intéresse à présenter le système de fichiers HDFS (Hadoop Distributed File System) et le modèle de programmation MapReduce. 


Il s'agit d'un premier tutoriel sur une série de plusieurs. L'idée est de poser les bases des concepts et de pouvoir continuer sur un axe plus technique pour les tutoriels suivants. Le deuxième devrait arriver d'ici peu, il traitera de l'installation et de l'exécution d'un job MapReduce.

J'espère que ce premier tutoriel vous plaira.

Bonne lecture.

vendredi, février 14, 2014

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • SonF est une implémentation de SWT pour JavaFX. Au lieu d'utiliser les composants natifs du systèmes, ce sont les composants de la boite à outils JavaFX qui sont utilisés.
  • Un exemple qui montre comment réaliser un SplashScreen avec SWT.
  • Un nouveau logo pour Eclipse (source).
Java
  • OWNER est une API qui permet de gérer efficacement un fichier de propriétés. L'API s'occupe de charger un modèle objet Java à partir d'un fichier de configuration (XML ou autre). C'est très simple et efficace.
  • Une photo qui montre un transparent où l'on peut voir "GWT bon mais morte lente". L'auteur semble être un employé de chez Google.
  • GWT 2.6.0 est sortie, pour les nouveautés c'est ici.
  • Un debriefing de la conférence GWT.Create qui s'est tenue à San Francisco et Francfort en décembre 2013.
Divers
  • DevDocs est un site Web qui regroupe au sein d'une même interface, les documentations de différentes bibliothèques et outils (bases de données...). Très pratique pour avoir la documentation de JavaScript ou de PostgreSQL. En mode hors ligne vous avez aussi Dash (Mac) et Zeal (Windows et Linux).
  • WizTree est une application Windows qui cherche les fichiers et dossiers qui prennent le plus d'espace.
  • Start Menu X est un remplaçant au menu Démarrer de Windows. A ajouter au génial Clover.
  • ScreenMarker est une petite application Windows qui permet de faire des annotations sur l'écran en cours. Pratique si vous êtes en réunion ou pour une démonstration.
  • Duplicate File Finder est une application sous Windows qui permet de chercher sur vos disques des fichiers identiques.
NoSQL
  • Un billet qui explique comment créer une cluster virtualisé de plusieurs machines Hadoop avec VirtualBox. La distribution Hadoop utilisée est Cloudera.
  • CQLC est un DSL pour Cassandra s'appuyant sur l'API JOOQ. Cette dernière fournit une API Java de type Builder Pattern basée sur SQL.

dimanche, janvier 05, 2014

Nouvelle année 2014, les résolutions pour cette nouvelle année

Lecteurs de mon blog, je vous souhaite une très bonne année 2014 et pleins de bonnes choses.

L'année 2013 sur mon blog n'a pas été très productif en billets, seulement 10. Du côté des tutoriels, il y a eu un atelier sur EMF et un article généraliste sur Cassandra. Le travail sur Developpez.com me prend beaucoup de temps.

Pour 2014, un article sur Apache Hadoop devrait voir le jour, peut-être un second si j'arrive à bien expérimenter un cluster. J'espère également écrire un atelier sur le développement Eclipse RCP avec Eclipse 4. Je pense enfin réécrire mes deux ateliers SOA (JAX-WS, JAX-RS) afin d'utiliser Eclipse et non Netbeans. 

Encore une fois, très bonne année 2014.

dimanche, octobre 27, 2013

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.
 
Eclipse
Java
  • Un article pour améliorer la sérialisation via différents formats
  • Une résolution du problème des variables mutables dans une classe anonyme.
  • jo-widgets est une boîtes à outils au dessus de Swing, JavaFX, SWT et RAP.
  • Une présentation intéressante qui montre comment utiliser NoSQL avec EclipseLink et JPA.
  • PGStudio est un PGAdmin PostgreSQL réalisé en GWT. Le code est accessible pratique pour faire du reverse Engineering. 
NoSQL
  • Fonctionnalités de Cassandra 2.0 (news sortie depuis septembre donc pas très fraiche, désolé)
Divers
  • ngrok est une application qui permet de créer un tunnel pour accéder aux applications serveurs en local. L'intérêt est de pouvoir rendre accessible depuis Internet une application sur votre PC (un site Web par exemple). Très pratique pour les démonstrations en live.
  • Un site qui regroupe un ensemble de bibliothèque JavaScript.
  • PHPVirtualBox et VBoxRemote (réalisée en GWT) sont des applications Web qui permettent de gérer les machines virtuelles VirtualBox d'une machine hôte.
  • En me documentant sur Vagrant, j'ai découvert et expérimenté Puppet après avoir fait plusieurs tentatives avec des scripts bash.  Il s'agit d'un langage pour gérer la configuration des systèmes d'exploitation (Linux et Windows).
  • Un site qui propose de configurer une machine virtuelle pour provisionner un serveur Web pour du développement PHP. Il vous sera possible de choisir la distribution Linux, le type de serveur Web, la configuration et la version PHP puis le type de SGBD (MySQL ou PostgreSQL). Une fois créé une configuration Vagrant sera générée incluant des scripts Puppet. Un très beau projet tout simple. 
  • Un état des lieux des différents drones de loisirs, ça commence a devenir abordable. Si vous êtes intéressés par les drones qui volent voici un lien : http://helicomicro.com/.
  • Un débat Developpez.com sur "Le métier d'ingénieur logiciel passionne-t-il encore ?". Pour moi la réponse est positive. Le métier dans la recherche amène à des projets très intéressants.
  • ASCII Generator est une application qui permet de convertir une image en texte ASCII.

vendredi, août 09, 2013

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines. 

Eclipse
  • Un tutoriel très simple sur la création d'une application Eclipse RCP avec E4.
  • Un billet de l'auteur du livre Eclipse 4 Plug-in Development by Example: Beginner’s Guide qui détaille plein de choses autour de l'écriture et de la publication de son livre.
  • Un billet qui montre comment utiliser le système d'événements d'Eclipse 4 (EventBroker) sans l'injection de dépendance.
  • Une solution qui montre comment utiliser le logger d'Eclipse 4 depuis une méthode statique.
  • Un article qui montre comment utiliser le contrôleur de geste LeapMotion au sein d'une application Eclipse 4. A noter que cet article montre également comment créer ses propres annotations.
  • EScript est un langage de scripts pour Eclipse.
  • Un billet qui propose des classes utilitaires pour gérer efficacement les agents de placement GridLayout et GridData.
  • Un tutoriel de démarrage (Getting Started) pour EMFStore. Pour rappel ce projet permet de stocker, distribuer et collaborer à plusieurs avec des modèles EMF (modèles et instances).
  • Des statistiques de téléchargement sur la nouvelle version d'Eclipse Kepler : 1 million de téléchargement en 18 jours.
  • Un tutoriel qui propose de customiser l'apparence des modèles EMF en utilisant EMF Client Platform.
  • Une astuce pour mettre en plein écran une fenêtre d'une application Eclipse 4 RCP.
Java
  • Un article qui montre comment gérer efficacement la Stack Trace côté client pour GWT.
  • docx4j est une bibliothèque Java pour manipuler les formats Microsoft Open XML.
NoSQL
  • Amélioration du langage Cassandra CQL prévue pour Cassandra 2. J'ai noté principalement le support des triggers et les alias au niveau des SELECT.
Divers
  • Bibliothèque JavaScript qui permet de mettre en surbrillance le texte du code de plus de 54 langages.
  • ReaderIsDead ou ZombieReader est une initiative permettant de faire revivre Google Reader. De mon côté je suis passé à Feedly. Je retrouve pratiquement tous les services de Google Reader exceptés la création des blogrolls.
  • BZR Player est un lecteur Audio qui gère une multitude de formats.
  • Un historique lié à l'univers Lego. Impressionnant la machine à résoudre les Rubik's Cube.
  • S'il y a bien une application à installer sous Windows, c'est Clover. Cet utilitaire permet d'ajouter la notion d'onglets à votre explorateur Windows.
  • WinDirStat permet de connaitre l'occupation de vos répertoires. Il affiche l'information sous forme de Map.

lundi, juin 17, 2013

Atelier EMF - Création et instanciation de modèles avec Eclipse Modeling Framework (EMF)

Un nouvel atelier consacré à la création et l'instanciation de modèles avec Eclipse Modeling Framework (EMF) est disponible à cette adresse : http://mbaron.developpez.com/tutoriels/eclipse/emf/creation-instanciation-modeles/

L'atelier se décompose en cinq exercices :
  • Exercice 1 : Création du modèle EMF d'un carnet d'adresses
  • Exercice 2 : Génération de codes Java
  • Exercice 3 : Création d'instances via l'éditeur généré
  • Exercice 4 : Création d'instances via l'API EMF : EarlyBinding
  • Exercice 5 : Manipulation du métamodèle Ecore : LateBinding

Les trois premiers exercices sont basiques et rien de révolutionnaires par rapport à ce que l'on peut trouver sur le net. Pour les exercices quatre et cinq, j'ai tenté d'être moins dépendant de l'outil Eclipse. J'ai préféré explorer l'APIs d'EMF. C'est ainsi que pour l'exercice 5, je montre comment charger un modèle Ecore et ses instances.

N'hésitez pas à me faire des retours s'il y a des choses que vous ne comprenez pas.

dimanche, juin 02, 2013

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines. 

Eclipse
  • Le deuxième billet sur quatre concernant l'internationalisation des applications Eclipse RCP pour la plateforme Eclipse 4.
  • L'équipe d'OBEO vous propose un retour d'EclipseCon 2013 via une vidéo.
  • Un billet de Lars Vogel qui explique comment récupérer les sources de la page Web dédiée aux nouveautés de la plateforme Eclipse.
  • Si vous débutez avec la plateforme Eclipse, ce billet est fait pour vous. Il présente toutes les ressources documentaires pour débuter et résoudre ces problèmes.
  • Une astuce qui explique comment nommer ces Workspaces afin de facilement les identifier quand plusieurs Eclipse sont ouverts.
  • NatTable du projet Eclipse Nebula fournit une version très améliorée de la Table SWT. La version de NatTable est sortie en 1.0 (fonctionnalités de la version).
  • Une astuce pour améliorer la rapidité de la complétion de code. Par défaut, il faut attendre 200ms, en réduisant à 40ms vous devriez améliorer vos performances ;-)
Java
  • Une présentation de GwtQuery (JQuery pour GWT) qui date mais peut être utile. Vous trouverez également la vidéo lors du Google I/O 2009.
  • Lors d'une session GWT au Google I/O 2013, il a été présenté le futur de GWT. Notamment le nouveau site, le nouveau logo, l'intégration continue via Jenkins. La vidéo est disponible ainsi que les transparents. Des debriefings de la conférence peuvent être trouvés ici : Developpez.com, Sami Jaber, Zenika.
NoSQL
  • Un article qui permet d'avoir les idées claires sur les différentes distributions Hadoop.
  • Angelo Zerr vous propose une série de billet consacré à l'utilisation de MongoDB dans une application Java EE.
Divers
  • Un site qui permet d'apprendre GIT via l'exemple.
  • Un memento en image pour les outils de recherche de Google (moteur de recherche, Google Scholar...).
  • Un billet qui montre comment utiliser les modules XBee via une application Java.
  • Instagram permet d'embellir vos image. Instacode permettra quant à lui d'embellir vos codes.

mardi, mai 07, 2013

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines. Certes il y a des annonces pas très fraiches mais comme dit le dicton, vaut mieux tard ...

Eclipse
  • Instasearch un plugin qui permet de faire de la recherche fulltext dans les projets.
  • Mousefeed un plugin qui permet de faire apparaitre dans une bulle d'aide le raccourci d'une action réalisée via la souris. Idéal pour se former au tout clavier.
  • Un billet qui explique efficacement comment mettre à jour les "Copyright" des fichiers sources.
  • Ian Bull montre un retour d'expérience sur l'utilisation de Java, Equinox et Eclipse RT dans un Raspberry Pi.
  • Eclipse Kepler M7 (Eclipse 4.3) est disponible (page des nouveautés et page de téléchargement).
  • Un billet d'une série de quatre sur l'internationalisation des applications Eclipse.
  • Un billet qui montre comment faire du Databinding avec EMF.
  • Une astuce qui permet d'exécuter une application Eclipse sur une machine et faire le debug depuis une autre machine.
Java
  • De très bons supports de cours avancés sur Java fournis par Rémi Forax. 
  • JBoss AS 7 s'appellera Wildfly (source).
  • ZeroTurnaround fournit une série de billets concernant les serveurs d'applications du marché. Chaque billet s'intéresse au téléchargement, la facilité d'installation, l'exécution, la documentation, etc. IBM Liberty Profile, Jetty, Tomcat, JBoss AS7 (futur Wildfly).
  • Java 8 SE prévue pour mars 2014 (source et roadmap).
  • Un résumé de ce que vous pourrez trouver dans Java EE 7 (qui vient d'être validé). Je suis enthousiaste pour Batch Applications for the Java Platform 1.0, Java API for JSON Processing 1.0, Java API for WebSocket 1.0 et JAX-RS: The Java API for RESTful Web Services 2.0.
Divers
  • Une documentation complète sur htaccess.
  • Puran Utilities fournit un ensemble d'utilitaires pour optimiser votre système Windows.
  • Si vous souhaitez des Box toutes prêtes pour votre VirtualBox, Korben référence une liste de sites.
  • Easy CSS Menu Maker est un outil pour réaliser des menus CSS via un outil graphique (ou pour ceux qui sont allergiques au Javascript).

dimanche, mars 24, 2013

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines. 

Eclipse
  • Eclipse 4.2.2 est disponible depuis le 1 mars. L'environnement gagne en performance et en réduction de consommation mémoire (page de téléchargement).
  • Tycho, l'outil de Build pour le monde OSGi/Eclipse prend de l'importance dans la fondation Eclipse. Les builds se feront bientôt via Tycho.
  • Un billet sur les points d'extension.
  • EclipseCon France 2013 se tiendra le 5 et 6 juin 2013 à Toulouse en France (source 1, source 2)
  • Un billet qui montre comment gérer un menu dynamique avec la plateforme Eclipse 4.
Java
  • GWT 2.5.1 est disponible en version finale (source). Ce lien vous donne le détail des nouveautés.
NoSQL
  • Apache Cassandra 1.2.3 est disponible (page de téléchargement). Ce lien vous donne les informations de la mise à jour.
Divers
  • Puran Software est une boite à outils d'utilitaires gratuite pour Windows (défragmentation...)
  • Google Reader s'arrêtera (source 1, source 2, source 3...) le 1er juillet 2013. Toute ma veille informatique se faisait dessus. En attendant je cherche un moyen pour le remplacer. Je ne donne pas cher de Blogger.

vendredi, février 15, 2013

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.  

Eclipse
  • Une série de billets sur Tycho, l'outil de construction de build à la sauce Maven.
  • Un billet sur SWTBot, l'outil de test d'application Eclipse.
  • Eclipse RAP 2.0 est disponible. Vous trouverez sur cette page la liste des nouveautés et sur celle-ci  la page de téléchargement. Plusieurs billets qui expliquent les principales avancées de cette version (billet 1, billet 2, billet 3, billet 4 et billet 5).
  • Un billet qui montre comment faire de la synchronisation avec l'IHM depuis un autre Thread.
Java
  • Deux billets concernant GWT. Le premier s'intéresse à montrer comment faire de la compilation via Maven, du débugage et enfin utiliser des logs. Pour le second il est question de configuration d’une datasource par JNDI, l’injection de dépendances Spring dans une servlet GWT, et enfin la sérialisation/désérialisation dans la partie cliente.
  • Un billet qui présente trois prédictions pour Java pour 2013. A voir si cela va se concrétiser. Je partage un peu l'opinion surtout au niveau des langages alternatifs.
  • Un billet sur la manière de nommer les concepts (classes, attributs...).
  • Un billet qui traite d'une première utilisation du langage DART, le langage orienté Web de Google (celui qui tente de supplanter GWT).
NoSQL 
  • Un article sur les performances de Cassandra comparées à d'autres solutions de stockage.
  • CCM est un utilitaire pour Cassandra qui permet de créer un Cluster en local.
  • Un billet qui montre comment utiliser la bibliothèque Metrics avec Apache Cassandra. Pour information Metrics sert à instrumentaliser différents outils et bibliothèques pour obtenir des informations comme par exemple temps de réponse pour les Servlets, taux de message par type de log pour Log4J...
Divers

samedi, janvier 12, 2013

Introduction au NoSQL Apache CASSANDRA. Partie 1 : installation, prise en main rapide et outils d'administration

Je viens de rédiger un premier article sur le NoSQL Cassandra. Cet article présente brièvement les fonctionnalités, l'installation, une première prise en main et quelques outils d'administration.


Vous constaterez qu'il s'agit d'un article Developpez.com. Je pensais d'abord le faire comme billet de blog mais le format billet ne me convenait pas.

J'espère que ce premier article vous plaira.

A très bientôt pour le suivant...

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines. 

Eclipse
  • GitBlit est un serveur GIT multi-plateformes. Il se présente sous la forme d'une application Web à déployer sur un serveur d'application Java. GitBlit se base sur l'implémentation Java JGit développée pour Eclipse. Par conséquent, je suis désormais capable d'installer un serveur GIT sous Windows.
  • Changement de nom pour Eclipse RAP. Auparavant Eclipse RAP signifiait (Rich AJAX Platform) maintenant il signifie Remote Application Platform. 
  • Billet sur le débogage en Java avec Eclipse.
  • Eclipse 4 Kepler la prochaine version d'Eclipse est sortie en Milestone 4 à Noël (page des nouveautés et page de téléchargement).
  • Un billet sur le modèle de programmation d'Eclipse 4.
Java
  • Un billet d'Angelo Zerr qui montre comment convertir docx/odt en pdf/html en utilisant Java.
  • Une pré-version de Java 8 pour processeur ARM (par exemple pour le Raspberry Pi).
NoSQL
  • Cassandra 1.2 est disponible. Au niveau des principales nouveautés CQL le langage de requêtes en version 3, Atomic Batches pour l'intégrité transactionnelle et les nœuds virtuels. Pour télécharger cette nouvelle version, direction le site d'Apache de Cassandra.
  • Une présentation qui décrit toute une série de concepts sur Hadoop, MapReduce...  
Divers
  • FTP Ruch un client FTP qui concurrence Filezilla. Un gros point fort c'est la possibilité de faire du serveur / serveur (source Korben).  
  • DBV est un outil de versionning dédié au monde des bases de données (site de l'outil). 

vendredi, janvier 04, 2013

Meilleurs voeux 2013 et les résolutions qui vont avec

Je profite de ce message pour vous souhaiter une très bonne année 2013. L'année 2012 a été très réduite en message sur ce blog. J'ai des tonnes d'idées mais pas assez de temps. Je vais donc rester modeste en espérant publier au moins autant de billets que l'année passée.

Pour l'année 2013, j'espère avancer sur la série Cassandra et j'espère également continuer les supports de cours sur EMF.

Concernant Cassandra, le premier article est pratiquement terminé. Je n'aurai pas tenu ma promesse de le proposer pour début décembre mais bon je suis confiant pour qu'il sorte mi janvier.

dimanche, novembre 18, 2012

Série d'articles sur le NoSQL Cassandra

Depuis quelques temps, je m'intéresse à la base NoSQL Cassandra (famille Orientée Colonne). Ayant suivi certaines présentations et ayant remarqué qu'il existait de nombreuses ressources, je me suis donc mis à regarder en détail ce NoSQL. Je me suis principalement focalisé sur le modèle de données (exemple : comment représenter les différentes relations entre classes) et sur les APIs clientes.

Je vous propose donc une série d'au moins cinq articles dont les principales idées sont :
  • Article 1 : installation et outils autour de Cassandra
  • Article 2 : modèle de données et API Hector
  • Article 3 : Cassandra Query Language (CQL) avec Java via JDBC
  • Article 4 : Faire de l'ORM avec Cassandra (Hibernate OGM, EclipseLink et via Hector)
  • Article 5 : Clustering via Cassandra
Il s'agit d'une proposition qui évoluera surement au fur et à mesure de mon avancement sur Apache Cassandra.

Les ressources sur le Net concernant Cassandra sont assez importantes. J'ai regretté que l'accent soit mis sur l'administration. Étant développeur d'applications en Java je me suis posé de nombreuses questions et notamment : Suis-je capable de faire du NoSQL pour un développeur formaté au classique SQL ?  

Le premier article est en cours de rédaction, j'espère vous le proposer début décembre.Il s'intéressera à présenter rapidement Cassandra, son installation, une première prise en main et les outils d'administration disponibles. Il ne sera pas révolutionnaire mais au moins j'aurais présenté tous ce dont j'ai besoin pour les articles suivants.

N'hésitez à venir proposer des commentaires. J'espère de mon côté pouvoir tenir ma motivation sur l'écriture de ces articles.


Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines. 

Eclipse
  • Tous les billets sur les bonnes pratiques pour faire de l'Eclipse RCP sont disponibles (http://www.modumind.com/category/best-practices/).
  • Eclipse ORION 1.0 est disponible (billet de l'annonce). Vous trouverez la page de téléchargement ici.
  • Eclipse RAP 2.0 millestone 3 est disponible (billet de l'annonce). Vous trouverez la page de téléchargement et la page des nouveautés.
  • Un billet qui présente 10 astuces pour être efficace avec l'environnement Eclipse.
  • Un billet qui montre comment faire du tri avec une TableViewer.
  • Un billet intéressant qui montre comment lire une vidéo sur du RCP et du RAP.
Java
  • GWT 2.5 est désormais en version définitive. 
  • Un article qui décrit en détail les classes internes en Java.
  • Un article qui se veut être une série pour une présentation de quelques bases NoSQL.
Divers
  • LastActivityView est une application sous Windows qui permet de connaitre les dernières actions réalisées sur le système.
  • CodeMirror est un composant JavaScript pour l'édition de code (complétion de code, syntaxe...). Toutes les aides des environnements de développement modernes sont proposés.

dimanche, octobre 14, 2012

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse 
  • Eclipse RAP 1.5.1 est disponible (voir les bugs résolus).
  • Un article qui montre comment réaliser un build du SDK d'Eclipse.
  • Un billet qui fait un point sur Eclipse 4 et pourquoi nous devrions y aller.
  • Une série de billets sur les bonnes pratiques pour faire de l'Eclipse RCP. Actuellement seuls 3 billets sont disponibles (billet 1, billet 2 et billet 3).
  • Fuzz Box un petit plugin qui permet de générer des diagrammes UML à partir de classe Java.
Java
  • GWT 2.5 RC2 est disponible (page des nouveautés).
  • Un article sur Hibernate OGM qui montre comment débuter.
  • La JSR 353 présentée à JavaOne 2012 proposera une API pour le support JSON, enfin !! (source Developpez.com).
  • Un article qui présente la fonctionnalité Rules au niveau de JUnit. Pour faire simple, cela permet de réaliser des opérations avant et après un test.
Divers
  • Adobe publie une police de caractères dédiée aux développeurs.
  • Quelques conseils pour les débutants Java qui souhaitent réussir son entretien.
  • Reveal.js, Impress.js, Html5slides, Csss sont des frameworks HTML5 pour faire des présentations (source Korben).
  • Un site qui permet de retrouver de vieilles versions de logiciel (pratique pour retrouver un vieux Firefox).
  • Deux idées de sources de données pour réaliser une application à base de NoSQL (ClickStream et TimeSeries) (source CastCodeurs).
  • Une démo HTML5 avec WebGL qui permet de modifier en temps réel l'image issu d'une WebCam.

vendredi, septembre 28, 2012

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines. 

Eclipse
  • Critiques liées aux performances d'Eclipse JUNO, Mike Milinkovich tente de répondre
  • Un petit billet de Paul-Emmanuel qui explique comment créer un Splash-Screen dynamique.
  • Également proposée par Paul-Emmanuel, une série de liens pour connaître ce que vos applications RCP consomment en mémoire ou comment activer les logs.
  • Une série de billets (billet 1, billet 2 et billet 3) concernant les spécificités d'Eclipse 4 (modèle d'application, injection...).
  • Eclipse Kepler, la prochaine version d'Eclipse, sort en 4.3 Millestone 2 (page des nouveautés et page de téléchargement).
  • Orion (l'IDE dans le navigateur) sort en 1.0 M2 (page des nouveautés et page de téléchargement).
Java
  • P6Spy est un proxy de pilote JDBC qui facilite la trace des requêtes JDBC. Peut s'employer partout où il est possible de définir un driver JDBC (Hibernate...). Ce billet détaille les grandes lignes.
  • Un billet intéressant qui montre comment mettre en œuvre du multidispatch en Java.
  • Participer au sondage sur le futur de GWT (ça prend 10 minutes)
Divers
  • Désireux de connaître le jargon des programmeurs (Yoda Conditions, Gotcha...), un billet qui s'y intéresse.
  • Jetstrap un éditeur WYSIWYG pour éditer des pages basées sur le CSS Bootstrap.

dimanche, septembre 09, 2012

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Opal une bibliothèque de composants pour la plateforme Eclipse. Certains des composants sont un portage de la bibliothèque graphique Swing.
  • Un billet qui explique comment utiliser des bibliothèques tiers lors d'un développement Eclipse RCP.
  • Un billet qui explique comment utiliser efficacement les validators de JFace Data Binding.
  • Ce billet détaille comment utiliser SWT/JFace dans une application qui n'est pas basée sur OSGi.
  • Un retour d'expérience sur Tycho afin de construire des applications basées sur Eclipse.
  • Une astuce qui permet de supprimer les lignes vides des codes Java (idéal pour les monomaniaques).
Java
  • Une analyse sympathique sur le devenir de GWT donnée par un contributeur Eclipse. Il cite que la décision de Google de libérer GWT à la communauté Open Source serait comparable à la décision d'IBM d'offrir Eclipse à la communauté en 2001. GWT connaitra-t-il le même succès ?
  • Un composant de sélection pour GWT basé sur Chosen, un plugin Javascript pour jQuery.
  • Utiliser Bootstrap avec GWT depuis ce projet.
  • Atmosphere, la bibliothèque pour faire du Push Serveur, est disponible en 1.0. Elle propose différents supports (Web Sockets, SSE, Long-Pollings, HTTP-Streaming et JSONP).
  • Un petit billet qui expliquer comment commencer avec Hibernate, c'est toujours pratique d'avoir ce type d'article.
  • f5less permet de reconstruire et recharger une application Web en cours de développement lorsque vous faites un ctrl + s. Nécessite d'après la documentation, une JVM assez récente.
  • L'arrivée de Jetty 9 est proche, un billet qui explique les impacts nécessaires (GWT et  GAE devront y passer un jour).
  • Jnario fournit un DSL pour l'écriture de test unitaire. C'est assez sympathique les différents niveaux de langage (de la spécification à l'implémentation).
  • Un billet qui fait partie d'une série sur Spring Roo. Dans celui-ci il y a une très bonne présentation sur le NoSQL MongoDB orienté document.
Divers
  • Bootstrap 2.1.0 est disponible. Voici la page des nouveautés. 
  • USB Disk Access Manager est un utilitaire qui permet de protéger ses ports USB.
  • La boite à outils ViewDNS propose des outils concernant la gestion des noms de domaine.
  • Un ensemble d'API en relation avec des services de météo, trouvée à l'occasion du service Google qui a disparu.
  • Une astuce qui montre comment envoyer automatiquement un email quand un utilisateur se connecte sur une machine Windows.

mercredi, septembre 05, 2012

J'ai besoin ... de construire une PirateBox

Suite à un article publié sur Le Monde, j'ai découvert une conférence vidéo de Gaël Musquet donnée à l'occasion du festival Pas Sage en Seine et qui présentait le principe de la PirateBox. Une PirateBox est un réseau sans fil, local qui permet d'échanger des fichiers de manière anonyme. L'idée m'est alors venue de créer une PirateBox afin de pouvoir partager mes différents outils de développements préférés (Eclipse, Java...). Cela est aussi une occasion de découvrir des choses intéressantes sur l'installation et la configuration d'un système embarqué comme OpenWRT.

L'objectif de ce billet et donc de vous présenter une installation d'une PirateBox. A vrai dire il s'agit d'une installation un peu particulière puisqu'elle ne s'est pas déroulée correctement. En effet, la mise à jour du firmware du routeur n'a pas réussi et j'ai du passer par une communication port série pour résoudre le problème.

Dans le cas où vous souhaitez des tutoriels plus concis et qui montrent les étapes pour installer une PirateBox dans les cas classiques, je vous conseille les suivants :
Pour créer une PirateBox, j'ai utilisé le matériel suivant :
  • Router TP-Link MR3020 V1.7 disponible sur Amazon,
  • Batterie Tecknet 7000 mAh pour être autonome au niveau de l'alimentation électrique. Prévoir une capacité élevée pour augmenter la durée ~ 14 heures disponible sur Amazon,
  • Clé USB 32 GO pour stocker les données. Il est possible d'utiliser une disque externe mais il faudra penser à l'alimenter ce qui pourra réduire considérablement l'autonomie de la batterie.

Concernant le matériel pour la communication port série, j'y reviendrai plus tard. C'est un passage obligé s'il ne vous est plus possible de passer par la voie Ethernet.

Au niveau logiciel, j'ai utilisé :
  • Windows 7,
  • Putty pour la communication Telnet, SSH et COM,
  • le firmware OpenWR,
  • le package PirateBox.

Pour les différentes étapes, je vais suivre un ordre chronologique.

Étape 1 : déballage du routeur TP-Link MR3020

Ayant reçu rapidement mon routeur TP-Link MR3020 commandé sur Amazon, je décide de me lancer dans la création de ma PirateBox. Premier constat, j'ai l'impression de déballer un produit Apple (IPod, IPhone). L'emballage est très ressemblant. Le contenu contient un routeur, une alimentation un cable USB et un câble Ethernet.
Emballage du TP-Link MR3020
Contenu de l'emballage du TP-Link MR3020

Étape 2 : connexion au routeur TP-Link MR3020

Je m'assure avec tout que l'interrupteur du routeur est en mode "Wisp". Je branche ensuite l'alimentation du routeur via le micro USB vers le port USB de mon portable. De même, je branche le câble Ethernet du routeur à mon portable. Enfin, je passe en WIFI afin de conserver la connexion internet sur mon portable PC.
Connexion du TP-Link MR3020
Ouvrir l'URL suivante http://192.168.0.254 à partir de n'importe quel navigateur.
Le nom d'utilisateur et le mot de passe sont 'admin'.

Étape 3 : mise à jour du firmware du routeur

Depuis le menu de gauche, choisir l'élément System Tools ;
Choisir alors l'entrée Firmware Upgrade puis sélectionner le fichier openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin (téléchargé ici).
Faire la mise à jour en cliquant sur Upgrade. L'installation va procéder et aucun message d'erreur ne devrait apparaitre. Il est ensuite indiqué que le routeur va redémarrer.
Historiquement il ne s'agit pas du même fichier que j'avais utilisé. Le précédent concernait la version 1.6 du routeur et l'installation sur la 1.7 (la version de mon routeur) a abouti à un problème d'activation du réseau. On va donc considérer par la suite que le connexion réseau vers le routeur ne fonctionne pas.

Étape 4 : le blackout, le début des problèmes

Le routeur redémarre et d'après les différents tutoriels que j'ai suivis, l'étape suivante consistait à se connecter en Telnet au routeur. J'ai utilisé le Telnet de Putty via la configuration suivante :
Configuration Telnet avec Putty
Le problème c'est que rien ne se produisait, le routeur ne répondait pas. Un test ping pour s'assurer de l'existence d'une connexion active n'a rien donné. Comme j'étais en DHCP sur ma configuration réseau, j'ai configuré en IP fixe pour avoir une classe d'adresses identique au routeur. Cela n'a également rien donné. J'ai décidé de rebooter le routeur et réitérer les différentes commandes précédentes, mais pas plus de changement.

J'ai découvert sur les différents forums qu'il existait un Safe Mode sur le routeur. Pour l'activer, il faut éteindre le routeur et le rebrancher. Dés que la première LED s'allume, il faut appuyer longtemps sur le seul bouton du routeur. Le résultat que vous devez obtenir est que la première LED clignote très rapidement. Mais le Safe Mode n'a rien changé non plus. A cette étape, j'ai bien pensé que mon routeur était mort.

Étape 5 : les forums PirateBox et le WIKI OpenWRT

Le site PirateBox contient un forum que j'ai parcouru pour tenter de trouver un message qui décrirait à peu près mon problème. C'était pas glorieux, il n'y avait pas grand chose. En fait, je me rendais compte que la version du routeur que je possédais était récente. J'ai donc décidé après m'être assuré que le problème n'était pas résolu de poster un message sur ce forum (Cannot connect in telnet after the OpenWRT firmware installation). Après plusieurs Allé / Retour sur cette discussion et sur le forum OpenWRT, j'en suis venu à la conclusion que seule une connexion via le port série était possible.  

Étape 6 : achat du module série

Depuis le WIKI d'OpenWRT pour le MR3020, une section décrit comment communiquer via le port série. Il est préconisé d’acheter un composant tout prêt qui permet d'utiliser le port série via une entrée USB. En fait je ne me sentais pas capable de monter un circuit from scratch. Je me suis donc orienté vers ce module FTDI Basic Breakout - 3.3V. J'ai également pris cela pour que les branchements soient plus faciles.

Étape 7 : le bricolage et la soudure

Tout d'abord il faut accéder à l'intérieur du routeur. Pour cela il faut vous munir d'un petit pied de biche en plastique et ouvrir le couvercle côté LED (vous pouvez essayer avec un tournevis au risque de rayer le plastique).
Outil pour ouvrir le dessus du routeur
Il n'y a aucune vis pour retenir le circuit imprimé du routeur, retirer donc le de son logement en plastique afin de faciliter les opérations de soudure. 

Le port série est identifiable via les quatre petits fiches / trous placé(e)s en ligne.
Identification des fiches du port série du TP-Link MR3020
Deux solutions s'offraient à moi pour connecter les fils sur le circuit imprimé. La première était de dénuder 4 fils et d'effectuer un point de soudure pour chaque trou. Le problème s'est la fragilité des fils. La seconde s'était d'essayer de reproduire une fiche mâle. C'est la seconde solution qui a été choisie. 
Pour trouver la bonne taille de connectique, j'ai utilisé des aiguilles à coudre. Pour les points de soudure, faites les par le dessous du circuit imprimé. Vous devriez obtenir le résultat suivant. J'ai fait un test au voltmètre pour m'assurer que les points de soudure étaient correctement réalisés.

Étape 8 : connexion via le port série du routeur TP-Link MR3020

Sur le routeur, la première fiche est identifiée par p1. Les fiches désignent dans l'ordre :
  • p1 : TX
  • p2 : RX
  • p3 : GND (masse)
  • p4 : VCC
 Sur le module USB/Série, le rôle des fiches est directement imprimé :
  •  p1 : GND (masse)
  •  p2 : CTS
  •  p3 : Power 3.3V
  •  p4 : TX
  •  p5 : RX
  •  p6 : DTR  
Naturellement j'ai fait correspondre les TX, RX et GND. Pour le VCC, j'ai branché l'alimentation. Toutefois, ça ne fonctionnera pas. Suivre alors les modifications suivantes.

Il faut supprimer l'alimentation (VCC) pas de p4 et intervertir TX et RX. Vous obtiendrez le résultat suivant :
Connexion TP-Link MR3020 avec le module FTDI Basic Breakout - 3.3V
Il faut ensuite connecter le module USB/Série sur votre PC et alimenter le router via le mini USB.
Il faut par ailleurs identifier le port virtuel COM employé par le module USB/Série. Dans mon cas c'était le COM5.

Depuis l'application Putty, paramétrer les informations afin d'effectuer une connexion en port série en s'assurant que les paramétrages suivants sont respectés :
  • Bits per second: 115200
  • Data bits: 8
  • Stop bits: 1
  • Parity: None
  • Flow control: None
Faire Open, vous devriez maintenant obtenir une communication avec OpenWRT. Si ça ne fonctionne pas assurez-vous que lorsque vous tappotez sur le clavier de votre PC les LED du module USB/Série clignotent. Vérifier également les points de soudure et contrôler enfin les branchements.

Étape 9 : mise à jour du firmware

A cette étape, j'arrive à me connecter au routeur. Je peux parcourir le contenu et m'apercevoir que tout le contenu de l'OpenWRT a l'air correcte. Un reboot du routeur me permet de remarquer que le configuration réseau pose problème. Il fallait donc que je trouve un moyen de mettre à jour ce firmware en m'assurant d'utiliser une version correcte pour mon routeur. J'ai pris le parti d'utiliser une clé USB et de déposer le firmware dézippé dedans.

Depuis Windows, copier le nouveau firmware dé-zippé sur une clé.

Brancher cette clé sur le routeur et procéder à son montage
 mount /dev/sda1 /mnt/usb
Copier le firmware dans le répertoire /tmp

Exécuter cette instruction et attendez que la mise à jour soit terminée
mtd -r write openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin firmware

Étape 10 : installer PirateBox

Pour le reste de l'installation de la PirateBox, je ne vais pas faire un copier/coller des nombreux tutoriels qui existent. Vous pouvez suivre celui-ci qui est très bien fait.

Conclusion

Au début de ce challenge, je ne pensais pas qu'il allait m'arriver ce genre de mésaventure. En y réfléchissant, je ressentis lors du plantage une certaine frustration du fait que j'avais acheté le routeur et que peut être il ne me servirait pas à grand chose. Un peu de patience, des recherches sur Internet, des gens motivés et le tour est joué : j'ai maintenant ma PirateBox.

dimanche, août 12, 2012

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.    

Java
  • La version GWT 2.5 est disponible depuis un peu plus d'1 mois déjà (enfin non, pour l'instant il s'agit d'une RC). Les nouveautés se trouvent essentiellement au niveau de la performance. On notera entre autre la présence d'un mode Super Dev qui se veut être beaucoup plus rapide. Un article sur le mode Super Dev est disponible ici.
  • Jigsaw l'extension censée ajouter la notion de module a Java ne sera finalement pas disponible dans la prochaine version de Java 8 (source)
  • Un article technique intéressant concernant un récapitulatif sur les Closures (appelées également Lambda) de la prochaine version de Java (Java 8)
  • Deux articles intéressants sur le NoSQL Hadoop. Le premier décrit de manière très simple le principe de Map Reduce. Le second explique comment créer un pont entre Hadoop et l'outil de reporting Birt. A noter que le sous projet Hive (un entrepôt de données pour Hadoop) est utilisé pour exploiter le langage de requête HadoopQL.
  • Un billet qui montre comment créer un exécutable Windows en utilisant Maven.
Eclipse
  • Deux tutoriels (lien 1 et lien 2) concernant le projet Eclipse Graphiti dont l'objectif est de facilement construire un éditeur de modèles.
  • Lars Vogel vient de publier un article sur Tycho.
  • Un site qui propose des thèmes pour Eclipse quelle que soit la version. Depuis Eclipse 4 qui tente de rendre plus accessible la customisation des interfaces graphiques, à mon avis il va y avoir de plus en plus de thèmes.