P3 A new story begins

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 27 janvier 2012

JavaFX 2 Presentation

I will demonstrate JavaFX 2 capabilities at ToulouseJUG on February 16th.

Registration to this free event is not yet opened, please check www.toulousejug.org website to be informed.

Here the event poster :
ToulouseJUG_JavaFX2_16-02-2012.png

You can also download the printable pdf version : ToulouseJUG_JavaFX2_16-02-2012.pdf

mercredi 28 décembre 2011

Type Filters for Accelerated JavaFX 2.0 UI development

I was bored by Eclipse who ask me to choose between many API classes when I press crtl+shift+O to Organize Imports.

So I explore the type filters feature of my preferred IDE : Eclipse.

Here you have a screenshot of packages filtered to gain few seconds when you write new class reference into your code.

I filter the awt and swing API, and also the Javafx inner API and other package which hold simlilar class names.

Eclipse Type Filter for JavaFX 2.0

if you want to copy paste packages name :

  • AWT
    • com.sun.awt.*
    • java.awt.*
  • Swing
    • javax.swing.*
  • Inner JavaFX 2.0 API
    • com.sun.javafx.*
    • com.sun.prism.*
  • For Line class
    • javax.sound.sampled.*
  • For Duration class
    • javax.xml.datatype.*

Be careful some classes will be inaccessible.

jeudi 17 novembre 2011

Regexp Part2

Suite du billet

Encore une fois les regexp m'ont fait gagner du temps et surtout de la sérénité

^([éèàç\u00ee\u00eba-zA-Z_\\\-\s]*)\t([éèàa-zA-Z_\\\-\s']*)\t([a-zA-Z0-9_\\\-]*)\t([a-zA-Z_\\\@\\\-\\\.]*)$

Deux choses à noter le \\\ devant le @ pour bien et le \uxxxx pour gérer des caractères unicodes spécifiques du genre ë et î que vous pourrez trouver ici http://mess.genezys.net/unicode/ (entre autres)

mercredi 26 octobre 2011

JRebirthAnalyzer Preview

You can download a preview of JRebirthAnalyzer here : JRebirthAnalyzer.zip

Double click on .jnlp file to launch the application.

mercredi 19 octobre 2011

Sonar RuleSet

Today I decide to share my Sonar Source ruleset that I use for JavaFX 2.0 project (JRebirth.org), because global quality greatly depends on rules used.

My Sonar instance is accessible here quality.jrebirth.org

Sonar_Timeline_JRebirth

Recently I update the default ruleset and the quality index decrease from 98.7% to only 10% !

Here you can see the project timeline view which illustrate well the impact of the new ruleset !!

I activate all rules Pmd,Checkstyle,FindBugs (721) excepts :

  • At Least One Constructor - Pmd
    Sometimes it could be a waste of time to write empty default constructor.
  • Bean Members Should Serialize - Pmd
    Sometimes we don't want to provide a setter, (workaround is to set the property transient, but every object is not a bean specifically in UI)
  • Default Package - Pmd
    it could be useful to reduce visibility to current package, to not share public API
  • Header - Checkstyle
    Broken
  • Illegal Catch - Checkstyle
    In order to manage Jdk7 Multicatch
  • Javadoc Package - Checkstyle
    Who write javadoc for package in a dedicated file ?
  • Magic Number - Checkstyle
    When writing UI there is a lot of magic numbers needed.
  • Missing Constructor - Checkstyle
    See above At Least One Constructor
  • Regexp - Checkstyle
    Broken
  • Regexp Header - Checkstyle
    Broken
  • Regexp Multiline - Checkstyle
    Broken
  • Regexp Singleline - Checkstyle
    Broken
  • Regexp Singleline Java - Checkstyle
    Broken
  • Short Variable - Pmd
    When I work with a bean named Car I'm used to name variable c, to be homogenous with long name like NotificationType nt
  • XPath rule template - Pmd
    Broken

You can download my active rules : Sonar Active RuleSet and my inactive rules : Sonar Inactive RuleSet

Let me know what do you think about them !

Later I will share my dedicated xml configuration files for CheckStyle, Pmd and FindBugs

mardi 27 septembre 2011

JRebirth

Mon nouveau PPP est officiellement démarré => Nom de code JRebirth

Il s'agit d'un Framework pour JavaFx2 qui utilisera les meilleurs pratiques que j'ai pu apprendre lors de mon utilisation de Flex, de Silverlight (mais aussi de Swing et de SWT/JFace).

Si vous avez des questions ou que vous voulez vous joindre au projet n'hésitez pas !!! Je vais enclencher la deuxième d'ici peu .... (problème de logistique interne)

Stay Tuned !

La logistique est quasiment prête ! Comme je suis plus radin qu'éco-concepteur dans l'âme le serveur hébergeant tout ce petit monde est parfois hors ligne (notamment la nuit). Si la sauce prend il sera en ligne non stop voire pourquoi pas sur un dédié.

Me manque-t-il quelque chose ?

mercredi 24 août 2011

Prise en main de JavaFX 2

Je viens enfin de tester NEtBeans 7.0.1 pour créer une application JavaFx2

Le résultat est minable mais cela vaut bien un HelloWorld :D

Demo JavaFx2

Linq

Ca me coute de publier ce billet mais bon .... cela me re-servira peut être un jour

Voici un lien fort utile pour avoir des exemples d'intégration de Linq

101 Linq Samples

Pour ceux qui se dise Linq Quezako ? c'est un langage de requêtage dans des objets disponible dans le SDK .Net (depuis le 3.5) Il permet de faire des boucles complexes en une ligne avec une syntaxe proche de SQL permettant de faire des tris des filtres et plein d'autres choses.

PS : Attention je ne fais pas l'apologie du C#, je laisse juste une trace pour ceux qui sont contraint de travailler avec ... (comme moi)

PS2 : Pour les gens plus open qui font du Java, Lambda débarquera (peut-être) avec Java8 pour faire à peu la même chose sauf que le compilateur gérera des string et n'intégrera pas les mots clé comme avec Linq , je reste du coup assez sceptique sur la maintenance du machin... Pour rappel, resharper (plugin de JetBrains pour Visual Studio) permet de refactorer du code en utilisant Linq à GoGO... la maintenance peut vite devenir très douloureuse pour nos pauvres petits esprits.

mardi 23 août 2011

JavaFx (2) RuleZ

Un billet pour la postérité !!!

Voici 3 liens de benchmark sur les différentes technologies utilisées pour faire une Rich internet Application

  1. riabench-start
  2. guimark
  3. Bubblemark

On peut en conclure que javaFx1.3 est bien plus puissant que DHTML, Flex ou Silverlight (3 technos qui m'ont donné de sérieux maux de tête !!)

Au prochain Java One java Fx 2 sortira et enterrera toutes les autres technos, JavaFx 2 reprensente le dernier espoir des RIAs !!!! Il sera entièrement en Java avec un pont technique vers Swing et une accélèration graphique matérielle, que de bons choix !!

Son seul défaut est de ne pas encore avoir de plugin sous Linux mais cela sera vite résolu (enfin j'espère pour eux).

Après cela reste mon opinion personnelle mais on en reparle dans 1 an si vous voulez.

Si vous voulez débuter un projet en JavaFx 2, mailez moi au plus vite je suis preneur

mardi 9 août 2011

Back To Web

Voici un petit billet listant quelques ressources web bien utiles :

mardi 12 juillet 2011

To Bom or not To Bom

Qu'y a t-il de plus pénible que de s'apercevoir que son script shell tout fraichement déployé sur un serveur ne fonctionne pas correctement à cause de problème d'encodage ...

Avec une erreur du style ou autre

-bash: ./ttoto.sh : /bin/bash^M : mauvais interpréteur: Aucun fichier ou dossier de ce type

2 problèmes peuvent survenir, l'encodage des retours à la ligne et l'en tête BOM.

Il faut noter que certaines versions d'UNIX sont compatible avec les retours lignes CR+LF et avec BOM , dans ce cas veuillez vérifier que votre fichier est bien exécutable.....

Pour le premier, il suffit de convertir les retours ligne au format UNIX,

Pour rappel :

  1. Windows : <CR><LF>
  2. Unix : <LF>
  3. Mac : <CR>

CR => Carriage return \r en UTF-8 => 0D LF => Line Feed \n , en UTF-8 => 0A

Dans Notepad++ on peut facilement visualiser les retours ligne en activant l'option Affichage>Symboles spéciaux>Afficher tous les caractères

bom_1.png

On peut aussi facilement convertir les retours ligne en version UNIX

bom_2.png

Par défaut Eclipse utilise les retours lignes spécifiés dans Windows>Preferences>General>Workspace>New text file line delimiter avec l'encodage spécifié Windows>Preferences>General>Workspace>Text file encoding. Si toutefois votre script ne fonctionne pas et vous dit qu'il y a un problème avec le shebang #! (/bin/bash) alors vous devez avoir un problème de BOM (Byte Order Mask)

Ouvrez votre fichier avec un éditeur héxadécimal:

bom_4.png

Pour un fichier UTF-8 on s'apercoit qu'il y a la séquence EF BB BF qui est mal interprété par le shell bash

Dans Notepad++ réencoder le fichier SANS BOM.

bom_3.png

et maintenant votre script fonctionnera correctement.

On peut aussi noter que le plugin maven-assembly-plugin propose un attribut fort utile pour mettre à jour les saut de ligne à la volée :

  1. Element : lineEnding
  2. 1.0.0+
  3. Sets the line-endings of the files in this fileSet. Valid values:
  4. - "keep" - Preserve all line endings
  5. - "unix" - Use Unix-style line endings
  6. - "lf" - Use a single line-feed line endings
  7. - "dos" - Use DOS-style line endings
  8. - "crlf" - Use Carraige-return, line-feed line endings

lundi 27 juin 2011

Best SVN Client for Windows

La vie n'est pas tous les jours facile surtout quand on travaille sur des projets bancals.

Pour un projet développé sous Visual Studio 2010 et hébergé sous le contrôle de sources Subversion, nous avons testé AnkhSvn qui s'est rapidement révélé totalement inutile car incapable de synchroniser des dossiers de manière récursive...

Nous avons donc opté pour TortoiseSVN qui est un client SVN gratuit pour Windows (vous l'aviez bien sur compris quand je parlais de VS2010)

Or Tortoise est vraiment lamentable dans la gestion des conflits ...

J'argumente : Un des développeurs a récemment commité tous les fichiers de config des projets (les fameux .csproj) avec des paramètres abracadabrantesque et il m'était impossible de ne pas écraser ma copie locale avec ses changements farfelus !! Point d'Overide and Commit ou de Mark as merged en vue...

Résultat grosse crise de nerf... copie de mon source dans un fichier temporaire, update, coller de mon source , commit .... et ce pour tous les fichiers..... Au passage VS2010 ne propose pas un historique par fichier comme le fait Eclipse donc grosse grosse galère (encore une après-midi à râler dans ma barbe)

Avec un peu de recul, et surtout à tête reposé j'ai cherché une alternative à TortoiseSVN. Mais point d'alternative gratuites en vue..... :(

J'ai donc pu évaluer (rapidement) deux solutions :

  1. SmartSVN
  2. SynchroSVN


Les deux m'ont permis de faire le fameux Mark as merged qui me permet de conserver ma copie locale intacte et de la re-commiter en écrasant le code du malotru qui commit sans regarder...

Ma préférence va cependant vers SynchroSVN qui possède une interface plus claire et qui est légèrement moins cher (59$ contre 79$)

le voici en image :

Synchro SVN

Et vous qu'utilisez-vous ?

PS: Après 4 mois d'utilisation de SyncroSVN je ne peux plus m'en passer !! Dans la mesure ou la nouvelle version de SvnKIT (1.3.6) ne corrige toujours pas la régression de la version 1.3.5 qui lance des handshake failed sans arrêts avec le protocole svn+ssh, je ne vois pas d'autres alternative efficace. Et puis le patron n'est pas à 50€ près quand il est prêt à payer une licence VS2010 :D

vendredi 17 juin 2011

Byobu

Nouveauté de la version 11.04 d'Ubuntu, Byobu est utilisé par défaut

Il permet de révolutionner votre shell préféré et surtotu de vous faire gagner un maximum de temps ! Vous pouvez avoir plusieurs onglets ouvert (ouverture avec F2) et les parcourir avec les touches F3 et F4

Byobu_1

En appuyant du F9 on peut configurer byobu :

Byobu_2

Je préfère afficher d'autres informations car je connais parfaitement l'ip de ma machine et je sais pertinemment qu'elle tourne sous Ubuntu 11.04 (je vous parle même pas de mon login), Le nom de la machine peut être intéressant quand on administre plusieurs machines simultanément, personnellement je préfère changer de couleur de fond d'écran (avec des couleurs pastels pour éviter que le fond rouge de la prod me rende épileptique).

A noter si vous ouvrez une session SSH depuis Windows avec Putty il vous faudra chancger un paramétrage (Xterm R6) pour débloquer les touches F1-F4

Byobu_3

Byobu vous propose 3 écrans par défaut:

  1. le gestionnaire des tâches
  2. Un concentré de fichier log
  3. l'état de vos disques dur (en image)

Byobu_5

Vous pouvez également créer vos propres fenêtres avec la commande de votre choix, par exemple un watch sur un fichier de log bien précis pour un serveur de production

Byobu_5

mercredi 1 juin 2011

L'Url magique du jour

Voici l'URL magique du jour :

https://hudson|jenkins:port/scm/SubversionSCM/enterCredential

Elle vous permet de changer le compte utilisé pour rapatrier le code source depuis votre SCM (subversion par exemple)

Je l'avais utilisé il y a quelques mois mais maintenant en cliquant sur l'icône info situé à côté du champs url du Repository vous pouvez y accéder sans avoir à vous en souvenir, c'est beau le progrès.

Prochaine astuce à venir, comment gérer le protcole svn+ssh avec jenkins

dimanche 1 mai 2011

Saleté de machine

La semaine dernière j'ai eu une idée curieuse :

Pourquoi ne pas m'installer un Kubuntu sur une vieille partition laissé libre par un Ubuntu ayant déménagé sur un autre poste .... Je copie l'iso de Kubuntu sur une clé USB avec l'outil fournit par Ubuntu. Je décide de brancher la clé USB à l'arrière de ma tour car à cet endroit aucune petit main viendra la retirer, pour ce faire je déplace légèrement le boîtier et c'est parti...

Durant le Boot de Kubuntu l'écran se fige... rien à faire

Je décide de relancer Windows pour relancer la création de la clé Bootable de Kubuntu et là patatra plus rien ne fonctionne.....

Pendant 3 jours je me penche sur la question mais pourquoi plus rien ne fonctionne....

Je décide alors de faire le ménage de printemps dans le PC, un bon coup d'aspirateur pour y voir plus clair.

Après avoir débranché et rebranché tous les disques durs un à un sans succès je décide de lancer un petit MemTest... Et là pareil l'écran se fige à nouveau à des avancements différents.

je bidouille donc les barrettes mémoire pour trouver une configuration qui fonctionne correctement....

Et là Miracle !! Je m’aperçois d'un détail qui change tout le connecteur d'alimentation des cartes mères de 'nouvelle' génération ont besoin d'un connecteur 20pin + 4pin et mon connecteur de 4pin pendouillait gentiment juste à coté de la prise .....

Je le rebranche et hop tout re fonctionne normalement ...enfin presque la clé USB de Kubuntu se fige en émettant toujours un bip guttural ... Je vais peut être me contenter d'un Ubuntu avec une installation manuelle de KDE...

EDIT:

J'ai brûlé un CD pour re-tenter l'sintallation de Kubuntu et Hop ça a fonctionné !! Le bruit de buzzer était lié au son via la sortie Hdmi, après installation des pilotes Amd/Ati le problème a été réglé.

Je suis bien content d'être revenu à KDE car les nouveautés de la version 4 sont vraiment sympatiques ! (notamment la gestion des agencements), je l'avais quitter avec openSuse il y a bien des années...

- page 1 de 5