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.

Le lien est le suivant : http://mbaron.developpez.com/nosql/cassandra/installation-outils-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 fiche 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.