Recherche sur le blog

jeudi 2 mai 2013

[Java] Axis2 et Web Service, les plus…

Nous avons déjà abordé avec vous la création de web services en Java en utilisant le module Axis2 qui s’installe sur un serveur Apache Tomcat. Dans la première partie, nous vous expliquions en bref comment déployer le module sur le serveur, comment le configurer et comment définir le mot de passe de l’administrateur. Nous vous donnions également l’astuce pour installer le plugin dans NetBeans, dont le support n’est plus assuré officiellement. Dans la seconde partie, nous avions créé un projet dans l’EDI et nous l’avions testé dans un navigateur Web. Un autre billet, paru un peu plus tard, indiquait la marche à suivre pour l’intégrer facilement dans WinDev. Aujourd’hui, nous allons voir ensemble quelques “astuces” pour aider au développement.

Impossible d’ouvrir la page depuis NetBeans

Lorsque vous utilisez l’option “Test operation in browser”, un message d’erreur s’affiche, indiquant '”Unable to open web service tester page”. Or, en indiquant vous-même l’URL dans un navigateur, vous obtenez une réponse inattendue du service, à savoir le message “unknown”.

Afin de comprendre cette erreur, nous avons voulu aller plus loin en nous rendant dans les journaux de Tomcat. Ceux-ci sont stockés dans le répertoire “logs” du répertoire d’installation du serveur en question. Le fichier qui nous intéresse est nommé de la manière suivante : tomcat7-stdout.AAAA-MM-JJ.log. On y trouve l’erreur suivante, liée à la tentative d’exécution depuis le navigateur internet.

java.lang.IllegalArgumentException
at sun.reflect.NativeMethodAccessorImpl.invoke0()
at sun.reflect.NativeMethodAccessorImpl.invoke()
at sun.reflect.DelegatingMethodAccessorImpl.invoke()
at java.lang.reflect.Method.invoke()
at …

Dans notre exemple, nous avions redéployé le service en ajoutant un paramètre à l’une des fonctions. Cependant, la modification du WSDL n’a pas lieu si l’option “Generate WSDL File” a été cochée lors de la création. Dans ce cas, effectuez un clic droit sur le service dans l’arborescence du projet puis dans le menu contextuel, choisissez “Generate WSDL…”. Confirmez par “Oui” pour écraser la version précédente. Notez que le fichier est directement éditable à la main.

Intégrez vos librairies .jar lors du déploiement

Plutôt que de jouer avec le classloader du serveur, le plugin Axis2 de NetBeans vous permet de directement intégrer les librairies nécessaires pour l’exécution du service. C’est bien plus pratique. Ainsi, dans la vue “Projects”, effectuez les opérations suivantes.

  • Clic droit sur le nom de votre projet, puis “Properties”.
  • Dans l’arborescence de gauche, cliquez sur “Libraries”.
  • Dans l’onglet “Compile” à droite, ajoutez les archives .JAR grâce au bouton “Add JAR / Folder”.
  • Cliquez sur “OK” pour confirmer.
  • Toujours depuis la même vue, effectuez un clic droit sur “Axis2 Web Services” puis choisissez “Configure…”. Cela devrait ouvrir une nouvelle fenêtre.

NetBeans_ConfigureAxis

  • Dans cette nouvelle fenêtre, sélectionnez les librairies que vous voulez intégrer lors du déploiement de votre service. Lors de son exécution, il n’y aura donc plus besoin de rechercher dans les divers répertoires prédéfinis.
  • Cliquez sur le bouton “OK” pour confirmer.
  • Déployez le service : les librairies seront intégrées à l’archive .AAR.
       

Problème de Timeout avec WinDev

En Java, définir le timeout du client n’est pas bien compliqué. Le blog de Singaram propose un exemple concret où il détermine un timeout au niveau du client (stub). L’image ci-dessous provient directement de son blog. Cliquez sur celle-ci afin de l’agrandir…

axis2 _stub

Pour notre client WinDev, nous avons essayé les autres méthodes qui consistent à éditer les délais directement dans le fichier “axis2.xml”, malheureusement cela n’a eu aucune influence. Pour remédier à ce problème, il suffit d’utiliser la fonction “HTTPRequête” qui reçoit en paramètre une URL Web. Nous appelons donc le Web Service de la même manière que dans un navigateur web, et la réponse obtenue est au format XML.

wsreturn

Dans ce cas, il faudra trouver une méthode pour laisser tomber les balises superflues. La première consiste à insérer vos propres balises dans la réponse et donc, à toujours renvoyer du texte. Il vous suffira alors d’extraire la partie de chaine qui vous intéresse avec un simple appel à “ExtraitChaine”. La seconde consisterait à utiliser les fonctions WLangage disponibles pour parcourir les documents XML. Nous n’avons pas encore testé cette deuxième solution.

Fonctions inaccessibles depuis l’extérieur

Dans la classe de votre Web Service, rien ne vous empêche d’utiliser des fonctions inaccessibles depuis l’extérieur. Soit vous utilisez des fonctions déclarées dans vos classes, qui sont compilées dans une librairie externe, sous forme d’archive .JAR par exemple, soit vous créez des fonctions de type “private” dans la classe associée au service.

Tableau statique de chaines

Dans le code Java du service, nous avons retourné un tableau de type String[] contenant deux chaines en première et deuxième position. Ce tableau peut contenir 20 chaines. La réponse du Web Service est la suivante :

getStringArrayResponse

Ainsi, avec de l’imagination et un peu de savoir-faire, tout en utilisant les requêtes HTTP, nous pourrions analyser le retour XML et redéfinir une variable “tableau de chaines” en WLangage. Reste à savoir la manière dont cela est retourné lorsqu’on utilise le service directement importé dans l’environnement WinDev…

Bon développement !

mercredi 1 mai 2013

[Smartphones] Samsung Galaxy S4 GT-I9505

Ca y est, le Samsung Galaxy S4 est à la vente depuis déjà quelques jours. Il arbore un design similaire à celui de son prédécesseur, le S3. Du côté des caractéristiques techniques, il est équipé d’un processeur Qualcomm Snapdragon 600 quadri-cœur cadencé à 1,9Ghz, de 2 Go de mémoire vive, d’un capteur photo rétro-éclairé de 13 Mégapixels, d’un écran Super Amoled Full HD de 5” (1920x1080). Ce smartphone est plutôt fin – 7,9 mm – et mesure 136,6 mm en hauteur et 69,8 mm en largeur. Placez l’ancien et le nouveau côte à côte : difficile de voir la différence.

GalaxyS4

Pour la connectivité, on retrouve le support de la 3G et de la 4G, du HSPA+, du Wi-Fi 802.11a/b/g/n/ac, du Bluetooth 4.0, un port Micro USB 2.0,  et la prise en charge du NFC. Il dispose également d’un port microSD/SDHC pour étendre la mémoire disponible. Actuellement, Samsung ne mentionne pas l’existence des modèles 32 et 64 GB, mais cela devrait venir prochainement. Enfin, le smartphone est équipé d’une batterie de 2600 mAh (contre 1 440 mAh pour l’iPhone 5), qui visiblement, selon le test du Journal du Geek, lui permettrait de tenir facilement la journée entière.

Niveau logiciel, c’est Android 4.2.2. Jelly Bean qui est installé, avec la surcouche TouchWiz UI bien connue. Samsung nous propose des fonctionnalités plutôt sympathiques telles que Smart Pause, qui permet de mettre automatiquement une vidéo en pause lorsqu’on détourne le regarde l’écran ; Dual Camera, pour prendre des photos en utilisant les deux capteurs (avant et arrière) en même temps ; ChatOn, une nouvelle application de messagerie avec partage de l’écran ; un tout nouveau traducteur texte et voix, qui pourra se rendre utile pour les voyageurs ; et encore bien d’autres…

Petite remarque intéressante : Gizmodo nous signale que sur la version 16 GB, il n’en resterait environ que 9 restants. Cela est sans aucun doute dû aux nombreuses applications pré-installées sur le système. Il faudra peut-être investir dans une carte mémoire ; heureusement, ces dernières sont peu couteuses !

Sachez qu’il est d’ores et déjà disponible à 649 euros, nu, sur le site de vente en ligne “Amazon”. En Belgique, l’opérateur Proximus le propose en précommande à 699 euros sans abonnement – en noir ou en blanc – et offre un kit d’accessoires si on effectue l’achat sur le web. Sachez que Mobistar propose exactement la même chose, au même prix.

Sources

Android
Clubic

Gizmodo
Le Journal du Geek
Le Monde
Samsung Mobile

vendredi 19 avril 2013

[WD17] Application conforme aux normes de l’UAC

Si vous développiez pour Windows XP, mais aussi pour Windows Vista ou 7 tout en ayant désactivé le contrôle de comptes utilisateur, il était possible d’installer vos applications de manière classique, sans intégrer un quelconque manifeste dans votre application. Cependant, il y a bel et bien des règles qui doivent être absolument appliquées puisque désormais sous Windows 8, il est impossible de totalement désactiver le contrôle des comptes utilisateur (sauf en bidouillant dans le registre). Il y a donc quelques normes de programmation à adopter.

En effet, lorsque le mécanisme de l’UAC est activé, et si l’application qui est installée ne possède pas de droits suffisants pour accéder à certains fichiers/dossiers ou éléments du registre, les services de virtualisation de l’UAC redirigent de manière transparente les écritures ainsi que les lectures vers des emplacements spécifiques accessibles de tous. Cependant, nous ne souhaitons pas que ce phénomène arrive : nous désirons que nos fichiers soient toujours enregistrés aux mêmes endroits.

Comme la documentation de PC SOFT l’indique, pour créer et modifier des fichiers sans avoir de privilèges administrateur, il faut ne pas écrire ni dans le répertoire “Windows” (cela inclut les sous-répertoires), ni dans le dossier “Program Files”, bien qu’on puisse au moins y installer les applications.

Par conséquent, il faut également adapter d’autres éléments :

  1. L’emplacement des fichiers HyperFileSQL Classic liés à votre application, si vous n’utilisez pas de serveur de base de données (ce répertoire peut être (re-)défini au déploiement de l’installation sur le poste client).
  2. L’emplacement des fichiers externes, comme des logs ou des paramètres (.ini), que vous interrogez avec les fonctions fXXX() ou même INILit/INIEcrit.
  3. L’installation recommandée est plutôt de type “exécutable auto-extractible”.

Ecrire dans les répertoires adéquats et dans le registre

Notre application-exemple écrit des fichiers “log” au format texte et permet de lire (pas d’écrire) dans un fichier de paramètres (.ini) qui contient les informations de connexion à une base de données de type AS/400. Nous avons défini une classe qui contient des variables chaine pour stocker les dossiers “par défaut”.

rep

Le premier répertoire est un dossier temporaire où l’on va écrire les fichiers “log” lorsqu’une erreur grave se produit dans notre application. Remarquez que nous utilisons la fonction “SysRep()” avec la constante “srAppDataCommun”. Sur un poste Windows Vista / 7 / 8, voici le chemin que cela renvoie :

type_rep

Le second répertoire est celui de l’application, dans lequel nous allons simplement lire. La fonction “ExeInfo()” permet de récupérer le répertoire depuis lequel l’exécutable a été lancé. Il suffit de compléter celui-ci grâce à la fonction ”ComplèteRep()” qui retourne le nom donné avec le séparateur défini par la norme système.

Attention lorsque vous voulez interagir avec le registre. Si vous tentez d’écrire dans “HKEY_LOCAL_MACHINE\ Software”, cette opération sera redirigée vers "HKEY_CURRENT_USER\ Software\ Classes\ VirtualStore\ MACHINE\ SOFTWARE". Ceci explique pourquoi nous avons défini la clé de notre application en demandant d’écrire dans “HKEY_CURRENT_USER\ Software”, qui reste accessible.

Exécutable et installation

Lorsque vous lancerez l’outil “Créer la procédure d’installation” depuis le menu “Atelier”, vous devrez configurer certains points dans les différentes étapes proposées. Par exemple, dans “Données et groupware”, vous devez sélectionner “Répertoire des données de l’application” puis indiquer si par défaut, les données sont installées dans un répertoire par utilisateur ou pour tous. Dans notre cas, nous choisirons la première option.

data_and_groupware

Lorsque vous arriverez à l’étape “Sécurité (1/2)”, il faudra bien demander à intégrer un manifeste “pour Windows Vista et Supérieur”. Cela ne s’applique donc pas si vous développez pour des postes encore sous Windows XP et inférieur. En cliquant sur “Suivant”, l’assistant vous proposera quatre choix : 3 manifestes de base et la possibilité d’en intégrer un personnalisé (format XML, fichier .manifest).

securite_WD

Dans notre cas, nous souhaitons que l’application utilise les privilèges maximum de l’utilisateur courant. Dans ce cas, l’application vous demandera une confirmation avant de se lancer. Si bien sûr, vous ne disposez quand même pas de privilèges suffisants, certaines opérations pourraient échouer. Cela convient bien si vous êtes déjà dans un compte de type “administrateur”.

manifeste

Plus d’informations sur les manifestes : Manifests (Windows) (en).

Pour l’installation, nous avons choisi l’option “avec mise à jour automatique”, en réseau local. Arrivés à “Fichiers de l’installation”, nous avons choisi que le logiciel s’installerait dans un sous-répertoire de “Program Files” (ex : <srProgramFiles>\MonAppli, voir l’image ci-dessus).

rep_install

Continuons ensuite jusqu’à l’étape “Données (1/4)” qui est elle aussi, très importante. Nous allons pouvoir définir l’emplacement par défaut des données HyperFileSQL Classic qui sera utilisé par l’application à l’exécution. Cochez donc la case “Configurer l’emplacement des fichiers de données de l’application”.

empla_donnees

A l’étape “Paramétrage des connexions de données”, sélectionnez” “Emplacement par défaut” puis cliquez sur le bouton “Paramètre”. Cela ouvre une nouvelle fenêtre dans laquelle il faudra saisir les informations suivantes :

  • (…) en utilisant : cocher “Les valeurs indiquées ci-dessous”.
  • Type de connexion : HyperFileSQL Classic (ISAM).
  • Onglet “HFSQL Classic”, saisie du chemin de données. Exemple : <srAppDataCommun>\MonAppli\DB\

hfsqlclassic

Et après…

Lorsque vous déployez votre application sur le poste client, les options sont configurables : emplacement des données HyperFileSQL, localisation des fichiers de l’exécutable. Ainsi, si vous installez sur une machine équipée de Windows XP, vous pouvez faire en sorte que le tout se retrouve dans “Program Files”, sans vous soucier des différentes lectures et écritures. Vous pouvez également adapter votre code en analysant la version de Windows s’exécutant sur la machine (des fonctions existent pour réaliser cette opération) afin d’effectuer un traitement X, Y ou Z.

Voir aussi : Normes de programmation sous Windows Vista et supérieur.

jeudi 18 avril 2013

[Info] Changements sur le blog

Voici la liste des changements :

  • Ajout de nouveaux liens intéressants dans “liens recommandés”.
  • Réorganisation de la page “Ressources”. Le nom précédent de cette page était “Fonctions utiles” mais désormais, on y retrouve également des documents ainsi que des morceaux de code, pas forcément complets. Cette page est une sorte d’aide-mémoire.
  • La page “Utilitaires” s’appelle désormais “Logithèque”.
  • Mise à jour du champ de recherche Google qui ne fonctionnait plus.
  • Mise à jour de la liste des logiciels. Il est possible que tout ne soit pas encore à jour, mais j’essaie de faire le maximum afin que cette liste reprenne les dernières versions connues.

Vous savez ce qu’il vous reste à faire. Surtout n’hésitez pas à émettre vos suggestions afin de me dire ce qui pourrait être amélioré, ajouté, supprimé…

[Test] Lenovo Twist

“Test” est un bien grand mot. En effet, comme vous aurez pu le remarquer, nous n’effectuons pas réellement de benchmarks approfondis, nous ne vous bombardons pas de graphiques extraordinairement compliqués mais qui ne vous serviront peut-être pas (tout le monde n’est pas “geek” comme nous le sommes), nous ne rentrons pas dans les détails techniques comme la fidélité des couleurs de l’écran. Non, nous tenons simplement à partager une expérience avec vous, chers lecteurs, bien que je ne serais pas contre d’avoir à mes côtés des rédacteurs qui seraient prêts à rédiger des billets plus complets… Aujourd’hui, nous mettons “à l’honneur” le Lenovo Twist S230u équipé d’un Intel Core i5-3317U (1,7 à 2,6 ghz), de 4 Go de mémoire DDR3 @ 1333 mhz, d’un disque dur de 500 go accompagné d’un SSD de 24 go utilisé pour le cache, de 2 ports USB 3.0, du Bluetooth 4.0, du Wi-Fi 802.11b/g/n, d’une webcam et d’un lecteur de cartes. Cette fois, un port RJ45 est présent.

twist

En terme de finitions, rien n’a vraiment changé dans le design des Lenovo ThinkPad (Cher IBM, nous n’oublierons pas que tu en es à l’origine !). On retrouve toujours le touchpad, dont la taille nous parait un peu petite, mais aussi le fameux trackpad, fidèle au poste. Dommage pour le bord inférieur en noir laqué, comme si l’écran en entier n’était pas assez salissant comme cela. Enfin bon, la matière rugueuse de la coque remonte le niveau., c’est déjà ça.

Nous nous sommes amusés à faire pivoter l’écran, bien entendu. Attention, celui-ci n’est pas détachable. Le mécanisme, quant à lui, semble solide. Aucun signe de faiblesse après quelques manipulations dans tous les sens. Le principe est plutôt convaincant puisque il permet de rapidement tourner l’écran, ce qui peut s’avérer pratique dans une réunion. Oubliez les projecteurs qui se connectent par le biais de câbles VGA : on ne retrouve que du Display Port qui fait office d’unique sortie vidéo.

L’écran est brillant et ça se voit. Lors de l’installation, cela a été légèrement dérangeant, puisque nous étions dos à la fenêtre pour la réaliser. Il est aussi très salissant, mais pour un écran tactile, ce n’est pas vraiment un scoop. Pour information, il est équipé d’une dalle IPS, qui offre des angles de vision ouverts.

Les performances sont au rendez-vous, grâce à son processeur qui lui permet d’encaisser plus que des simples logiciels de bureautique, mais il est également plus réactif qu’un ordinateur équipé d’un simple disque dur. En effet, ici, nous retrouvons un disque SSD de 24 Go qui permet d’exploiter la technologie ExpressCache. Côté graphique, c’est déjà mieux que le HP Envy x2 puisqu’ici, on retrouve un chipset Intel HD 4000. A noter qu’il existe des configurations plus puissantes (Core i7, SSD uniquement, …).

Windows 8 se porte comme un charme sur ce genre d’appareil. Le démarrage est rapide, pas autant qu’avec un SSD, mais suffisant pour ne pas s’énerver pendant l’installation des mises à jour, qui prennent un temps facilement négligeable. La navigation parmi les tuiles est fluide, rien à redire là-dessus. Nous n’avons malheureusement pas testé le mode portrait pour voir comment se comportait la machine lors de la transition.

Honnêtement, il s’agit d’un ordinateur vraiment intéressant, même si son autonomie déçoit. Bien sûr, avec un tel équipement, on s’attendait à ne pas atteindre des heures et des heures d’utilisation. Pourtant, en se limitant à certaines activités, il est possible de tenir 3h30, et jusqu’à 4 heures, dans le meilleur des cas. Autre petit bémol : son poids qui peut en rebuter certains, puisqu’il pèse 1,56 Kg, ce qui n’est pas forcément idéal lorsqu’on doit le porter constamment. Il n’en reste pas moins un très bon ordinateur, clairement destiné à un usage professionnel.

[Test] HP Envy x2

Nous avons reçu une nouvelle machine avec laquelle nous avons pu nous amuser : il s’agit du HP Envy x2, qui est un hybride tablette-netbook, équipé d’un processeur Intel Atom Z2760 Dual Core (avec Hyper-Threading), cadencé à 1,8 ghz, un écran BrightView IPS de 11,6 pouces avec une définition de 1366x768, ce qui permet l’affichage des fenêtres dans leur intégralité contrairement à certains netbooks, un disque SSD de type eMMC de 64 go, et 2 Go de mémoire LPDDR2 @ 533 mhz. Côté connectivité et réseau, on ne retrouve pas de ports USB 3.0 malheureusement, par contre les technologies NFC (partage par simple contact), Wi-Fi (a/b/g/n) et Bluetooth, sont de la partie.

hp_envy_x2

Nous n’allons pas vraiment rentrer dans des détails trop techniques comme le font certains sites, donc exit les graphiques trop compliqués et l’analyse des couleurs de l’écran par l’intermédiaire d’une sonde. Le but ici est de vous faire partager nos impressions lors des différentes utilisations.

L’ergonomie est basique, car on ne retrouve pas de port réseau RJ45 ni de ports USB 3.0. Sur la tablette, un lecteur de cartes microSD est présent, ce qui permet d’augmenter l’espace de stockage. Une prise casque est également présente, mais nous n’avons rien testé au niveau de l’audio.

Nous avons été enchantés par la finition de l’engin. Pas de matières “glossy” sur la coque ni sur le dock. Quel miracle, il ne faudra nettoyer que l’écran ! Le clavier est agréable et assez silencieux, et le touchpad est suffisamment grand, même si pour le configurer, nous avons préféré employer une souris. Cependant, nous avons été déçus par le mécanisme et le bouton pour retirer la tablette du dock, qui ne nous ont pas semblés aussi solides que ça, contrairement à ce que disent d’autres sites de test.

En ce qui concerne l’écran, il semble être de bonne facture. Il est suffisamment lumineux pour nos collègues, et il permet d’afficher un nombre correct de données à l’écran (dalle en 1366x768). Il est donc adapté pour l’utilisation de nos logiciels. C’est pour nous un critère important.

Là où le bas blesse, c’est qu’il se limite à la bureautique, puisque son processeur, un simple Intel Atom Z2760, ne permet pas de faire de folies, et son chipset graphique Intel ne brille pas par ses performances. Il reste pourtant très réactif (sauf pour l’installation de mises à jour Windows) grâce au SSD eMMC et fluide dans les applications de type Métro. Mais ne comptez pas sur lui pour des traitements vidéo ou des traitements d’image en masse, donc il faudra se limiter aux applications qui ne demandent pas trop de calculs à votre processeur (par exemple, des applications client/serveur qui rapatrient des données à distance). N’espérez pas non plus jouer à des jeux plus aboutis que Angry Birds, ce serait vraiment vous torturer pour rien.

Nous avions été attirés surtout par son autonomie intéressante, puisqu’on a pu lire qu’il pouvait rester éveillé 7h selon les activités pratiquées (en mode tablette) et jusqu’à 14 heures avec le dock connecté. Il n’en est rien puisque nous avons visiblement reçu un modèle défectueux : la batterie du dock, pourtant chargée à 100%, perd jusqu’à 50 % d’autonomie après une matinée sans être sollicitée (le dock étant connecté à la tablette, elle-même éteinte) ! La batterie de la tablette semblait bien s’en sortir en revanche.

Autre petit bémol : le bouton d’allumage. Encore un défaut sur le modèle que nous avons reçu puisqu’il faut s’y reprendre à plusieurs reprises pour allumer la bête (parfois jusqu’à cinq ou six fois). Nous n’avons vraiment pas compris comment cela était possible… Etant donné ces problèmes, nous avons demandé à faire un échange standard.

Ce modèle conçu par HP se rapproche donc plus du Samsung Ativ Smart PC ou de l’Iconia W510 d’Acer. Un manque de performances notable qui le limite à la bureautique pure et dure, mais une autonomie qui relance le débat. Dans une gamme différente, le Lenovo Twist (13”) s’en sort mieux car il propose une configuration relativement plus puissante, pour un prix pas tellement plus élevé. Le seul hic, c’est son autonomie qui lui permet de tenir 3h30 à 4h, contrairement à la machine dont nous venons de parler. Dans un style qui se rapproche plus de l’HP Envy X2, Asus veut nous vendre du rêve avec son hybride Transformer Book TX300, qui sera aussi livré avec un dock équipé d’une batterie. De quoi allier puissance et autonomie honnête. Il reste à voir si les tests confirment nos attentes.

jeudi 11 avril 2013

[WD18] TDF Technique @ Bruxelles

Comme chaque année, la société PC SOFT organise ce qu’on appelle le “Tour de France Technique” et passe à Bruxelles, où plutôt à Braine l’Alleud, afin de présenter sa nouvelle version. En général, il a lieu deux fois l’année, une fois quand le produit est sur le point de sortir, et la fois suivante lorsqu’il est déjà sur le marché avec une ou deux mises à jour à télécharger. Le principe de cette “conférence” de 4 heures est très simple : mettre en avant WinDev et ses nouvelles fonctionnalités avec des exemples concrets. Un support de cours complet sur DVD est fourni à l’accueil, avec tous les exemples et les composants détaillés pendant la session.

Photo0152

Comme toujours, avant de prendre place dans la salle, distribution de goodies pour tous. Cette fois-ci, nous avons reçu un stylo plutôt étrange, avec des yeux en plastique qui tournent dès qu’on les agite, mais aussi un thermo, et enfin un t-shirt WD18. Nous recevons également un sac pour y ranger la farde, le bloc-notes, les publicités, et tous les objets reçus par la suite.

Tout le monde est installé, on peut commencer. Pour ne pas changer, une interview d’un client utilisant le produit de PC SOFT, est diffusée. Cette fois, c’est le patron d’Intersport qui s’y est collé. Gros coup marketing : c’est peut-être l’un des principaux défauts du TDF, en plus des nombreux silences et d’une impression de “récitation par cœur”.

Malgré le fait que nous n’utilisons pas la dernière version de l’AGL, c’est avec plaisir que je découvre certaines fonctionnalités, qui sont clairement plus explicites lorsqu’elles sont accompagnées d’exemples. La première qui me vient à l’esprit : l’apparition du ruban, comme dans les applications récentes de Microsoft. Les options paraissent plus clair, le tout parait moins fouillis que lorsqu’on utilise les barres d’outils. On retrouve donc cinq onglets permanents, et d’autres contextuels (comme dans Word, lorsqu’on sélectionne un tableau, un onglet supplémentaire apparait pour le gérer). Pour ceux qui n’aiment pas le changement, on peut repasser aisément à l’ancienne configuration.

La recherche dans l’éditeur s’est améliorée : plus claire, plus intuitive, et la possibilité d’affiner les résultats selon plusieurs critères. Les occurrences sont regroupées par type d’élément pour s’y retrouver plus facilement. Différents modes de recherche (texte, expression régulière), sont regroupées dans un menu du volet. Mieux encore : il est possible d’ouvrir jusqu’à cinq volets de recherche différents.

Le champ plébiscité par tous est arrivé : le tableau croisé dynamique (cube rOlap). Sur base de tables de votre base de données, vous pouvez créer avec l’assistant, en quelques clics, un superbe tableau dynamique, en gérant les données en ligne, en colonne, ainsi que le nombre d’éléments traités. Ensuite, les FAA (“Fonctionnalités Avancées de l’Application”) permettront aux utilisateurs de modifier l’affichage à leur guise ou d’exporter le tout en Excel. A noter que des nouvelles fonctions WLangage ont fait leur apparition afin de gérer la création, la mise à jour et la sauvegarde.

Peu de temps après, présentation du fameux “PCSCloud”, un service “dans les nuages”, payant en fonction de vos besoins, personnalisable à souhait (nombre de processeurs utilisés, puissance, mémoire, etc), sur lequel vous hébergez des sites développés en WebDev, mais aussi des Web Services ou vos fichiers d’installation et de mises à jour d’applications, destinés aux clients. Pour plus de détails, rendez-vous sur le portail PCSCloud.

Ensuite, démonstration rapide de relooking dans WebDev. Comment transformer rapidement un site en modifiant le modèle de pages, les styles CSS3 via la “fenêtre aux 7 onglets”, les menus, en rajoutant des popups, etc. Le résultat est assez impressionnant et visuellement parlant, ça donne franchement bien.

Aujourd’hui, les périphériques mobiles étaient clairement mis en avant (en plus du fameux Windows 8). Tablettes, smartphones, et même une montre Sony fonctionnant sous Android. Création d’une application simple sous Android en 3 minutes 15, présentation des nouveaux champs et des améliorations d’anciens, démonstration d’applications fonctionnant sous Windows Phone 8.

Difficile de continuer à tout vous citer… Parmi les autres sujets, il y a eu en vrac : des améliorations du WLangage (nouvelles fonctions, nouveaux types de variables, etc), la réplication de données d’un serveur HFSQL à un autre, le concept de bases de données “Big Data”, le concept – pas nouveau – de versioning en utilisant le GDS (“Gestionnaire De Sources”),  l’utilisation d’API externes et de SDK, comme Kinect, pour créer, par exemple, des applications réagissant aux mouvements du visage. Nous avons également eu droit au fameux jeu “Trouvez le bug”, au cours duquel il était possible de remporter un T-Shirt supplémentaire… J’en ai eu un, youpie !

Pour conclure, une petite mise en scène plutôt comique, et le tirage au sort, qui ne m’a pas été favorable. Peut-être pour une prochaine fois ? Le gros lot était une mini-chaine Philips avec dock iPhone ! Un très bel objet…

jeudi 28 mars 2013

[Dossier] Vous et internet, conseils de base

C’est indéniable : à l’heure actuelle, nous avons recours à internet et à ses outils pour de nombreuses tâches : envoyer des e-mails, personnels comme professionnels, rédiger des articles sur des blogs afin de partager ses connaissances, ses loisirs quelconques (sport, automobile, etc) ou pour informer de l’actualité dans le monde entier. La toile regorge également d’un nombre élevé d’informations, encore faut-il qu’elles soient sures. Il faut également s’assurer que la source est fiable, qu’elle ne risque pas d'amener à télécharger des données nuisibles (exemple : virus, malwares) ou à saisir des informations qui seront utilisées contre vous ou revendues (exemple : phishing).

appstore

Sur le web, on trouve aussi des applications à installer, sur nos ordinateurs comme sur nos autres appareils (smartphones, tablettes). Sur nos systèmes actuels, nous pouvons télécharger depuis n’importe quelle source : depuis des “magasins” (ou “app stores”) intégrés au système, qui permettent de s’assurer que les applications sont sans danger, mais aussi depuis des sites spécialisés ou non, ou depuis la page officielle de l’éditeur.

Le but recherché dans ce billet est de vous inciter à mettre en place des solutions simples (modification de vos mots de passe, installation d’un navigateur alternatif, utilisation d’un antivirus payant ou gratuit,…) afin de vous protéger un minimum lorsque vous surfez, consultez vos mails, téléchargez des applications, rédigez sur des forums, regardez des vidéos et bien d’autres.

Les navigateurs

Bien que nous ayons des penchants pour l’un ou l’autre navigateur, c’est à vous de décider lequel vous convient le mieux. Pour cela, rien ne vous empêche d’en installer deux côte-à-côte, puisque vous ne risquez aucun conflit! Les deux préférés qui ressortent du lot sont Mozilla Firefox et Google Chrome. Les utilisateurs de Linux pourront eux aussi bénéficier d’une version de l’un d’eux. Citons aussi Safari, qu’on retrouve de base sur Mac OS X. Depuis sa version 8, et disponible en version 10 sur Windows 7/8, Internet Explorer est lui aussi devenu bien plus sûr et bien moins lourd qu’auparavant. Il conviendra à beaucoup d’entre vous, même si nous préférons le navigateur fourni par Google. A vous de décider !

  

L’antivirus

Sous Linux, bien que l’utilisation d’un antivirus soit controversée, au point que l’on conseille de ne pas s’en servir, sachez que certains éditeurs proposent des versions (gratuites ou payantes). Cependant, attirons tout de même l’attention des utilisateurs Windows pour lesquels il sera nécessaire d’en posséder un.

Quel type d’antivirus faut-il choisir ? Cela dépend de vos besoins et de la sécurité exigée. Tout d’abord, gardez bien à l’esprit qu’aucun antivirus n’est infaillible ! Certains programmes malicieux pourront toujours se faufiler sans que l’utilisateur n’en soit averti.

Si vous attendez d’un antivirus qu’il protège le maximum d’éléments sur votre machine, il faut se diriger vers des versions payantes (Kaspersky, Bit Defender) : en effet, elles disposent de plus de fonctionnalités, telles que la protection de la messagerie instantanée (Skype, WLM), un filtre anti-spam, le filtrage d’URL, l’analyse du contenu des pages web, l’affichage de notifications détaillées, un mode “jeu”, – qui désactive les services gourmands pendant que l’utilisateur joue –, etc. De plus, elles utilisent des systèmes de notifications et de confirmation qui attirent l’attention de l’utilisateur.

Si vous avez de bonnes habitudes et que vous prenez le temps de vérifier vos sources, que vous avez appris à vous méfier de certains fichiers en analysant simplement leurs caractéristiques (exemple : “je télécharge une musique et son extension est .exe”, “je télécharge une archive .zip et elle me semble d’une taille incohérente”, etc), dirigez-vous plutôt vers une version gratuite (Avira Antivir, Avast!) qui propose, en général, uniquement les outils de base, à savoir la protection en temps réel et le scan sur demande. Ils sont donc moins “intrusifs” et demandent peu d’interaction de votre part.

Quelques conseils de navigation

A l’heure actuelle, nous ne nous limitons plus seulement à l’envoi d’emails. Désormais, nous pouvons sauvegarder nos photos et documents dans le cloud (espace de stockage sur un serveur distant), nous écrivons des articles sur nos blogs ou sur des sites personnels que nous avons créés de nos propres mains, nous effectuons des paiements pour acheter des vêtements ou des outils sur des magasins en ligne (e-commerce). Tous ces services requièrent que vous saisissiez un mot de passe et même parfois des informations comme vos coordonnées bancaires (au moment de valider un achat par exemple).

Complexité du mot de passe

Le mot de passe est la combinaison qui protège votre compte. C’est une sorte de clé, un cadenas, qui vous permettra d’être l’unique personne ayant accès au compte. Nous vous déconseillons fortement d’utiliser des mots provenant du dictionnaire sans les accompagner d’autres chiffres, lettres ou caractères. Evitez les prénoms ou les noms de vos proches ; il est désormais très facile de les deviner, grâce aux réseaux sociaux notamment.

cadenas

Combinez autant que possible majuscules, minuscules, chiffres, caractères spéciaux (tels que $, ^, !, ù, µ, +, –…), et mélangez-les suffisamment. Plus le mot de passe est complexe, plus il sera difficile de le trouver avec les méthodes les plus classiques.

Un mot de passe différent

A chaque site que vous visitez, n’hésitez pas à modifier votre mot de passe habituel pour en faire une variante. Ainsi, si l’une de vos combinaisons a été découverte, il y a des chances pour que vos autres comptes ne soient pas la cible de l’attaque. Dans ce cas, la difficulté réside dans le fait qu’il faut pouvoir tous les retenir, sinon vous allez passer du temps à cliquer partout pour les récupérer par mail…

La question secrète : un attrape-nigaud

Beaucoup sont tentés d’y répondre avec franchise, mais c’est un piège qui pourra vous couter cher, sachant que la combinaison de la question-réponse pourra souvent servir à restaurer le mot de passe afin de le redéfinir. Du coup, si vous choisissez “Quel est le nom de jeune fille de votre mère” et que vous répondez honnêtement, vous risquez qu’un individu choisisse ce mode d’attaque pour s’accaparer votre compte. Ainsi, privilégiez des réponses farfelues composées elles-aussi de caractères étranges, de chiffres, et de lettres, le tout passé au mixeur. Attention, la question secrète peut quand même servir pour modifier votre mot de passe depuis votre compte toujours actif ou même demander un support en ligne. C’est le cas de EA avec son logiciel Origin. Dans ce cas, il vous faudra noter la question et la réponse sur un papier bien caché.

Vos paiements… Sur sites sécurisés

C’est quasiment une norme à respecter par les gestionnaires de sites d’e-commerce si vous devez effectuer des achats sur internet : la navigation “sécurisée” doit être activée. Ainsi, des protocoles de protection tels que SSL ou TLS doivent être mis en place pour que vos transactions ne puissent pas passer en clair, et donc être éventuellement interceptées. En tant qu’internaute, vous ne connaissez probablement pas ces techniques de sécurité, mais vous pouvez à tout moment savoir s’il y a un mécanisme en place. En effet, dans votre navigateur, vous devriez voir apparaitre un cadenas à côté de l’adresse (ou même le préfixe “https://” dans l’URL au lieu de “http://”).

TLS

Le fait de cliquer sur le cadenas permet d’obtenir davantage d’informations comme les autorisations effectives – modifiables notamment si vous utilisez Google Chrome –, la validité du certificat et l’organisme ayant vérifié l’identité du site, ainsi que le type de chiffrement utilisé et le protocole adopté – même si cela ne vous parle probablement pas.

Et sur les ordinateurs publics ?

Méfiance lorsque vous vous trouvez dans un cybercafé, dans votre entreprise ou dans une école. Evitez d’utiliser les fonctionnalités d’enregistrement des mots de passe, intégrées aux navigateurs, ou proposées par les pages que vous visitez. Celui qui utilisera la machine après vous sera tenté de faire le curieux…

Le phénomène du “phishing”

Nous en avions déjà parlé dans un précédent article : la technique consiste à usurper l’identité de quelqu’un d’autre afin de s’approprier des informations confidentielles comme des mots de passe, des codes PIN, ou bien des numéros de comptes / cartes bancaires, et ce par l’intermédiaire d’e-mails et surtout de pages internet non officielles.

Blocage de pubs par des extensions

Des modules comme AdBlock Plus peuvent être ajoutés à votre navigateur et permettent de bloquer la publicité, parfois trop présente. C’est bien et mal à la fois. Bien parce que vous évitez d’afficher une multitude de bannières pendant votre navigation. Mal parce que ce sont souvent des sources de revenus pour le propriétaire. Tout ce que nous pouvons dire, c’est que le choix vous revient.

De l’importance des mises à jour

Vos logiciels doivent régulièrement être mis à jour, surtout ceux qui sont régulièrement utilisés sous forme de plugins ou extensions dans les navigateurs. Nous citerons par exemple Adobe Acrobat Reader, Java (attention, ce coquin essaie d’installer une barre d’outils Ask pendant son installation – il faut refuser celle-ci !), Adobe Flash Player, .NET Framework, etc. Ces logiciels, comme beaucoup d’autres, comportent des failles de sécurité qui sont découvertes au fur et à mesure, et qui sont régulièrement comblées. Si vous n’effectuez pas les mises à jour, ces brèches pourront être exploitées par des personnes mal intentionnées, ce qui pourrait avoir des conséquences néfastes.

javabien

Les petits plus…

Quelques conseils supplémentaires… Liste non exhaustive, “of course” :

  • Attention aux téléchargements de “torrents” : leur contenu n’est parfois pas celui auquel on s’attend. Vérifiez toujours la source depuis laquelle vous obtenez ces fichiers.
  • Evitez au maximum les sites pornographiques, ainsi que les sites de téléchargement illégal (cracks de logiciel par exemple), qui peuvent nuire à votre ordinateur en vous faisant parfois installer des outils indésirables.
  • Méfiance : de faux antivirus courent sur le net. Ils sont intrusifs, vous rappellent sans cesse d’effectuer le paiement pour une version complète, et répètent toutes les 5 minutes que votre ordinateur est complètement infecté. En voici une liste, provenant de Clubic : Security Tool, Antivirus 7, CleanUp Antivirus, Security Toolbar, Digital Protection, XP Smart Security 2010, Antivirus Suite, Vista Security Tool 2010, Total XP Security, Security Central, Security Antivirus, Total PC Defender 2010, Vista Antivirus Pro 2010, Your PC Protector, Vista Internet Security 2010, XP Guardian, Vista Guardian 2010, Antivirus Soft, XP Internet Security 2010, Antivir 2010, Live PC Care, Malware Defense, Internet Security 2010, Desktop Defender 2010, Antivirus Live, Personal Security, Cyber Security, Alpha Antivirus, Windows Enterprise Suite, Security Center, Control Center, Braviax, Windows Police Pro, Antivirus Pro 2010, PC Antispyware 2010, FraudTool.MalwareProtector.d, Winshield2009.com, Green AV, Windows Protection Suite, Total Security 2009, Windows System Suite, Antivirus BEST, System Security, Personal Antivirus, System Security 2009, Malware Doctor, Antivirus System Pro, WinPC Defender, Anti-Virus-1, Spyware Guard 2008, System Guard 2009, Antivirus 2009, Antivirus 2010, Antivirus Pro 2009, Antivirus 360, MS Antispyware 2009, IGuardPC, I Guard PC, Additional Guard.
  • N’hésitez pas à “scanner” vos disques avec des utilitaires comme Malwarebytes Anti-Malware. Pour ceux qui ont déjà de l’expérience dans le domaine, nous vous invitons à utiliser des logiciels “avancés” comme ComboFix, SmitFraud Fix et AdwCleaner.
  • Installez un pare-feu ou configurez celui intégré à votre modem (si applicable). Si vous ne savez pas comment faire, de nombreux forums traitant d’informatique pourront vous venir en aide assez rapidement (Clubic, Les Numériques, Zébulon, Comment ça marche, etc). S’il s’agit d’un modem obtenu auprès de votre fournisseur d’accès, vous pouvez éventuellement prendre contact avec le helpdesk, qui saura vous aiguiller.
  • Oubliez au maximum les barres d’outils qui s’entassent dans votre navigateur et qui vous font perdre de l’espace à l’écran mais aussi qui ralentissent le programme. Sont à proscrire : Ask, Babylon, µTorrent Toolbar, QuickStores, etc.
  • Réglez vos paramètres de confidentialité sur les réseaux sociaux pour empêcher que l’entièreté de votre vie privée ne soit dévoilée au monde entier. Nous avons déjà proposé des articles à ce sujet pour vous aider à réaliser cette tâche. Malheureusement, l’évolution de ces sites est très rapide, et donc beaucoup d’éléments se retrouvent à d’autres emplacements… Pas facile de s’y retrouver.

   

Et après ?

Il n’y a pas grand chose à ajouter, à part : “mettez un maximum de conseils en application”. Vous ne profiterez du web que si vous pouvez le faire en toute quiétude. Enfin, c’est beaucoup dire, car il faut sans cesse faire attention aux petits pièges parfois tendus à notre insu. Parfois, par mégarde, on se retrouver à cliquer sur “Oui” au lieu de “Non”. Il faut donc également savoir prendre le temps, réfléchir, afin d’éviter de commettre une bourde.

jeudi 14 mars 2013

[WD17] Le délai d’attente de la requête a expiré

Lorsque vous tentez d’exécuter une requête sur un serveur distant SQL Server, vous pouvez obtenir l’erreur suivante : “Erreur 80040e31, le délai d’attente de la requête a expiré”. En fait, le serveur n’a pas répondu assez vite à la commande envoyée. En effet, il faut bien distinguer le temps d’exécution maximum d’une requête distante (qu’on définit dans les paramètres de SQL Server) et le temps accordé avant qu’une commande envoyée n’expire. C’est pour cela qu’on ne doit pas modifier directement de paramètre sur le serveur mais bien dans la chaine de connexion à la base de données.

Avec HDécritConnexion, vous pouvez définir des informations étendues. Vous pouvez également faire de même en éditant la propriété “InfosEtendues” de la variable de type “Connexion”. La documentation vous indique quelles sont les informations optionnelles utilisables dans la chaine de connexion. Celle qui attire notre attention ici est “WD Command Timeout”, qui permet de fixer la durée maximale de l’exécution d’une commande.

Les valeurs possibles sont :

  • -1 : valeur par défaut définie par la couche client (dans WinDev, il s’agit de 30 secondes – cela s’applique aussi à HyperFileSQL C/S).
  • 0 : illimité. Faites bien attention car des blocages peuvent survenir.
  • > 0 : temps en secondes (dans notre exemple, nous avons indiqué 600 secondes, soit 10 minutes).

wdcommandtimeout

En .NET (par exemple en VB ou en C#), il est également possible de définir ce timeout en le précisant dans une propriété (CommandTimeout) de la variable SqlCommand.  L’exemple ci-dessous permet d’augmenter le temps jusqu’à 90 secondes avant l’expiration.

vbnet

Enfin, en Java, il suffit d’appeler la fonction “setQueryTimeOut” de l’objet “Statement” qu’on aura au préalable initialisé. Dans l’exemple, on laisse un délai de 60 secondes pour envoyer la commande, avant qu’elle n’expire. Il faut impérativement utiliser cette fonction avant d’exécuter la requête.

stmt

Nous pouvons évidemment continuer à citer les différentes analogies entre les nombreux langages de programmation qui existent, mais cela risquerait de prendre beaucoup trop de temps. Ainsi, voici un billet qui pourra servir de mémo dans le futur, au cas où cela vous échapperait à nouveau.

jeudi 7 mars 2013

[WD17] xlsOuvre et consommation de RAM

Quelle catastrophe ! Nous souhaitons utiliser pour la première fois la fonction xlsOuvre avec un fichier qui contient énormément de données. En soi, le fichier est assez léger : il s’agit d’un document “.xlsx” de 14.022 Ko. Celui-ci contient 7 colonnes, et 82.348 lignes. Plusieurs fonctions sont utilisées (arrondi, somme, etc…)

En tentant notre chance une première fois pour ouvrir le fichier Excel en stockant le résultat dans une variable xlsDocument, cela a carrément planté le programme : il est arrivé à 1,8 Go de mémoire RAM consommés, après 3 à 5 secondes, et a mis à genoux le programme. Ce dernier était littéralement bloqué, et occupait également 25 % de l’UC.

La seconde fois, nous avons stocké le résultat dans un entier, comme le permet la fonction. En effet, on récupère dans ce cas un handle qu’on peut manipuler avec le reste des fonctions xls*. Le résultat est (presque) identique mais a toutefois permis d’ouvrir le fichier. La mémoire a grimpé jusqu’à 1,1 Go après 3 à 5 secondes, et le fichier s’est ensuite chargé très (très) lentement, pour arriver à une consommation de 1,5 Go. Nous avons ensuite pu récupérer les premières données. On peut donc constater que dans ce cas, la mémoire requise est légèrement inférieure. Malheureusement, cela reste de trop… Obligation de découper le fichier en plusieurs parties plus petites.

Le test a été effectué sur une machine Intel Core i3 370M, 3 Go de mémoire DDR2, Windows 7 x86 SP1. La mémoire n’a pas été libérée après cette opération. Il faut idéalement attendre l’exécution de xlsFerme pour cela.

A première vue, ce bug avait déjà été remonté pour les versions précédentes de WinDev, puisque des utilisateurs avaient également abordé ce souci. Espérons que PC SOFT prenne enfin ces remarques en considération afin d’améliorer les performances, actuellement désastreuses, de cette fonction. Pour vous dépanner, nous vous recommandons de convertir votre document au format CSV puis d’utiliser les fonctions de gestion des fichiers (fOuvre, fFerme, fLit, etc).