- 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
Un petit blog principalement sur l'univers du développement pour partager aussi bien des astuces pratiques utiles au quotidien mais également réfléchir sur les évolutions et perspectives de l'informatique.
mercredi 30 septembre 2015
windows 10
Quelques trucs un peu pénible sur Windows 10 :
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 )
- Dans Eclipse, Help > Install New Software...
- Initialisez l'update site: http://download.eclipse.org/eclipse/updates/4.5
- Choisir"Eclipse RCP Target Components" pusi Next our l'installer
Eclipse IDE for Java Developers
Version: Mars Release (4.5.0)
jeudi 24 septembre 2015
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
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
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.
Si vous avez seulement quelques fichiers à importer manuellement, le plus simple est de réaliser un formulaire.
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>
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) {
...
}
}
}
...
}
}
...
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.
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
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/
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
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
Inscription à :
Articles (Atom)