mercredi 30 septembre 2015

windows 10

Quelques trucs un peu pénible sur Windows 10 :

  • La barre de tâche plante souvent.Du coup, pour l'utiliser, il faut redémarrer le PC
  • Avant il y avait un petit outil pas mal pour les captures écran.Maintenant, il faut faire ALT + Imp Ecran puis coller dans Gimp ou autre

samedi 26 septembre 2015

Eclipse plugin : pas de menu dans l'onglet Extension


En ce moment, je regarde un peu le développement de plugin Eclipse et j'ai rencontré le soucis suivant : le menu n'apparaissait pas lorsque je faisais clic droit sur une extension.

J'avais aussi le warning suivant dans la vue  Extensions  : No schema found for the “org.eclipse.ui.menus” extension point

Pour résoudre le problème, j'ai ajouté  RCP Target Components ( voir http://stackoverflow.com/questions/8366303/no-schema-found-for-the-org-eclipse-ui-menus-extension-point )

  1. Dans Eclipse,  Help > Install New Software... 
  2. Initialisez l'update site: http://download.eclipse.org/eclipse/updates/4.5
  3. Choisir"Eclipse RCP Target Components" pusi Next our l'installer
Maintenant le menu apparait :




Eclipse IDE for Java Developers
Version: Mars Release (4.5.0)














dimanche 20 septembre 2015

Grails 3 et les IDE


Cela fait quelques temps que je cherche un IDE qui offre le support de Grails 3.
Pour le moment, voici l'état des lieux :
  • Eclipse : aucun support, le plugin n'est plus disponible sous STS.
  • Intellij : apparemment c'est supporté mais il faut payer la licence ...
  • Netbeans : début de support
Le point posistif, c'est que Netebans 8.0.2 reconnait les projets Grails 3.Ainsi, j'ai pu créer et importer un projet Grails 3.Vous pourrez également démarrer votre projet et il y a une coloration syntaxique pour les GSP.il faut avouer cependant que ce n'est pas encore complet mais au moins on peut commencer à se faire un peu la main dessus.

https://stackoverflow.com/questions/29441503/grails-3-0-support-in-netbeans/32425071#32425071

Une dernière chose, sous Eclipse, vous pouvez importer un projet Grails 3 en tant que projet Gradle comme l'indique la documentation mais ce n'est pas terrible.Je n'ai pas réussi à avoir la coloration syntaxique.A suivre donc ...

vendredi 18 septembre 2015

Mise à jour de Grails 2.5.0 vers 2.5.1

J'ai fait cette mise à jour sans problème.Il suffit juste de mettre à jour les plugins qui sont listés dans la ReleaseNote.

Le seul petit détail qui est un peu perturbant, c'est que vous avez un warning : Script 'Upgrade' not found.
Pour résoudre ce problème, vous devez sélectionner 3 (SetGrailsVersion) dans le menu ci-dessous :

|Running pre-compiled script
|Script 'Upgrade' not found, did you mean:
   1) MigrateDocs
   2) IntegrateWith
   3) SetGrailsVersion
   4) InstallDependency
   5) DependencyReport
Please make a selection or enter Q to quit: 3


A noter également, j'ai résolu le problème suivant en upgradant ma version de Grails : http://stackoverflow.com/questions/32562678/grails-plugin-error-class-path-resource-cannot-be-resolved

mercredi 16 septembre 2015

Comment importer des fichiers avec GRAILS ?

Dans les sites métiers, nous avons souvent besoin d'importer des fichiers de configuration.
Il y a plusieurs méthodes pour le faire.Je vais vous en présenter deux : avec un  formulaire ou avec une url.Dans cet article, je n'aborderai pas la question sur les batchs car ,dans mon cas, cela ne fonctionne pas avec la version GRAILS 2.5.



Une IHM pour importer des fichiers


Si vous avez seulement quelques fichiers à importer manuellement, le plus simple est de réaliser un formulaire.

Exemple de formulaire form.gsp


Dans ce formulaire, on appelle l'action init du controlleur admin.La balise input file avec le paramêtre multiple va permettre d'uploader plusieurs fichiers.


<g:uploadForm action="init" controller="admin">
    <form role="form">
        <div class="form-group">
            <label for="files">Choix du fichier à parser</label>
            <input type="file" id="files" name="files[]" multiple>
            <p class="help-block">Vous devez choisir un fichier httpd.conf</p>
        </div>
        <div class="form-group">
            <label for="machinename">Nom de la machine</label>
            <input type="text" class="form-control" id="machinename" name="machinename" placeholder="....ac-limoges.fr" value="">
        </div>
        <button type="submit" class="btn btn-info">Submit</button>
    </form>
</g:uploadForm>


Controller


Le tableau files[] va contenir tous les fichiers à Importer.Attention au type de file, il s'agit de org.springframework.web.multipart.MultiPartFile et non de java.io.File.Donc par exemple, vous pouvez traiter les fichiers de la manière suivante :
      
class AdminController {
  
   def init() {
        if (request instanceof MultipartHttpServletRequest) {
            ...
            request.getFiles("files[]").each { file ->
                log.info("init() file to parse:" + file.originalFilename)
                       InputStream inputStream = file.inpustream
                       BufferedReader = new BufferedReader(new InputStreamReader(inputStream))

                        try {
                            String ldapUser = EMPTY
                            String ldapPwd = EMPTY
                            String ldapHost = EMPTY
                            String ldapPort = EMPTY

                            while ((line = br.readLine()) != null) {
                            ...
                            }
                        }
            }
            ...
        }
    }
...


Import de fichier de manière automatique


Une autre façon de faire est d'utiliser une méthode du controlleur.Cela permet d'importer des fichiers automatiquement :

class AdminController {
    def reloadData() {
        def path = "E:\\projet\\toolprod\\import\\"

        log.info("reloadData() Initializing application from httpd.conf files in machine directory ...")
        new File(path).listFiles().findAll{
            if (it.isDirectory()) {
                log.info("reloadData() Machine name ( Directory name ) :" + it.name)
                String machineName = it.name
                log.debug("reloadData() files list:" + it.listFiles())
                for (File f : it.listFiles()) {
                ...

            }

        }
...



Ensuite, il vous suffit d'accéder à l'url : http://localhost:8080/appli/admin/reloadData
Après cela, il est facile de faire un curl et de le mettre dans une crontab.


lundi 14 septembre 2015

Passage à Windows 10

Hier je suis passé à Windows 10.La mise à jour est passée sans problème.
Mes premières impressions sont bonnes.Je le trouve mieux que Windows 8.1 ( Par exemple, je ne suis plus embêter avec les mouvements de la souris qui ouvre des fenêtres non désirée ).
A noter,  petit truc pénible, il faut faire CTRL + ALT + AROBASE pour faire un @. Mais bon, on ne change pas Windows ;-)
Bon bien sûr cela ne vaut pas une bonne Gentoo mais Windows reste obligatoire dans beaucoup d'entreprise ...
De plus, il faut je pense faire un peu de ménages.Pour cela, voici un lien intéressant : http://korben.info/windows-10-est-il-un-systeme-dexploitation-diabolique.html

vendredi 11 septembre 2015

Podcast en fançais

Sur le forum de HumanCoders, je suis tombé sur une discussion intéressante : https://forum.humancoders.com/t/connaissez-vous-des-podcasts-en-francais/1752

J'ai appris l'existence de podcasts sur le développement que je ne connaissais pas :
Apparemment les podcast ci-dessus sont plutôt orientés développement web.Je vais tester pour voir ...
Et bien entendu, il y a aussi l'incontournable https://lescastcodeurs.com/
  

jeudi 10 septembre 2015

Amazon introduit un nouveau modèle de monétisation pour les Apps Android

Voici une petite news qui interessera les développeurs d'application sous Android.



Avec ce système, c'est le temps passé sur l'application qui est pris en compte !



Plus d'infos sur ce lien :



Amazon introduit un nouveau modèle de monétisation pour les Apps Android