samedi 30 mars 2013

InvokeDynamic


A Devoxx,j'ai vu une présentation vraiment intéressante de Charles Nutter sur InvokeDynamic.

Voici un article complet de Charles Nutter   :http://blog.headius.com/2008/09/first-taste-of-invokedynamic.html

Et les slides de la présentation  :http://fr.slideshare.net/CharlesNutter/invokedynamic-in-45-minutes

J'ajoute aussi l'article d'Oracle car il apporte des définitions en plus http://docs.oracle.com/javase/7/docs/technotes/guides/vm/multiple-language-support.html#challenges

vendredi 22 mars 2013

Tester CRaSH en ligne


Si vous ne connaissez pas CRaSH, je vous recommande de le tester !
Vous pouvez le faire en ligne : http://try.crashub.org/

Envoi d'une requête POST sur Google App Engine


Pour envoyer une requête POST sur Google App Engine, vous avez besoin d'utiliser le service Google : Url Fetch service. "The URL Fetch service uses Google's network infrastructure for efficiency and scaling purposes".

Voici un exemple très simple :

   public void send(String messageToSend, String date, String level, String servers) {

        try {
            String message = URLEncoder.encode(messageToSend, ENCODING);
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyUrl, Integer.parseInt(proxyPort)));

            URL url = new URL(urlDest);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);
            connection.setDoOutput(true);
            connection.setRequestMethod("POST");

            OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
            writer.write("date=" + date);
            writer.write("&level=" + level);
            writer.write("&servers=" + servers);
            writer.write("&msg=" + message);
            writer.close();

            if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                logger.info("OK ! message returned:" + connection.getResponseCode());
            } else {
                logger.info("KO ! message returned:" + connection.getResponseCode());
            }
        } catch (MalformedURLException e) {
            logger.error(e.getMessage());
        } catch (IOException e) {
            logger.error(e.getMessage());
        }
    }

J'ai fait un petit projet jave ( 2 class ;-) ) qui envoi une requête POST :  https://github.com/drieu/Tools
Plus de détails sur https://developers.google.com/appengine/docs/java/urlfetch/overview

mercredi 20 mars 2013

Retour d'expérience sur la création d'une application sur Google AppEngine

Objectif :

Créer une application d'alerte sur Google App Engine et évaluer
ce qui est le plus simple et le plus rapide.Voici un petit retour d'expérience :

Test 1 : Création d'un projet avec GWT


Inconvénient


1) Installation

  •  Netbeans : Ne fonctionne pas chez moi.Problème d'installation avec le plugin ...
  • Intellij : Pas de plugin
  • Eclipse : OK et c'est facile

2) Développer son application

J'ai voulu faire une petite application rapidement mais je trouve GWT un
peu compliqué. (Voir https://github.com/drieu/gwtalert).
C'est aussi une histoire d'habitude.

Avantage

Création et déploiement sur Google App Engine facile et rapide à condition
d'utiliser Eclipse.


Test 2 : Création d'un projet Play 1.2.5 avec le plugin GAE

 

Avantage


Facilité de développement grace au framework Play.

 

Inconvénient

  • J'ai eu des difficultés de configuration avec le proxy.
  • J'ai posté la solution sur GitHub : https://github.com/drieu/PlayWithGoogleAppEngine
  • Play 1.2.5 n'est plus maintenu.A voir si le projet yalp va marcher

lundi 18 mars 2013

Monitoring des jobs Play avec CRaSH



Si vous cherchez un moyen simple de monitorer des jobs Play (1.2.5), vous pouvez utilisez
CRaSH et en ligne de commande, il vous suffit de saisir :
% dashboard | thread ls -n "jobs-thread*"
Plus d'informations sur http://www.crashub.org/

jeudi 14 mars 2013

Premier pas avec le cloud Open Shift de Red Hat

Mon objectif : Deployer une application Play 1.2.5 sur OpenShift.

Pour cela, j'ai utilisé le lien suivant : planet_jboss


Résumé des étapes :


- Création de mon application :


J'ai crée directement une application JBoss 7 sur le site.Toutes les commandes pour cloner et se connecter
en ssh sont présentes.Il y a juste à faire un copier-coller.

- Installation sur Gentoo :


emerge dev-ruby/rubygems
ruby -e 'puts "Welcome to Ruby"
gem install rhc


- Initialisation (en tant que user)

rhc setup

- On clone le repo de notre application sur redhat


git clone ssh://XXX/~/git/monapp.git/

Ensuite j'ai suivi les étapes du lien ICI

- Export du war dans monapp/deployements :

play war -o /home/toto/monapp/deployments/cookies.war
git add deployments/cookies.war*
git push

- Vérification du déploiement

- Connexion en ssh sur le le cloud de redhat
- tail -f jbossas-7/logs/server.log


Remarque :

- J'ai essayé d'utiliser le cloud en entreprise.Je n'ai pas réussi en raison de proxy et de firewall.
J'ai essayé de me connecter en ssh par le port 80 mais sans succès.
- De chez moi, je n'ai rencontré aucun soucis et rapidement j'ai pu déployer une application sur le cloud de RedHat.

samedi 9 mars 2013

JavaFx et Maven exemple



Pour apprendre JavaFx, j'ai commencé un petit projet sur GitHub.
J'utilise JavaFx 2 et Maven. Peut être cela peut vous aider à démarrer vos propre projets.

Pour plus d'info : https://github.com/drieu/MetricViewer