Recherche sur le blog

jeudi 18 juin 2015

[Preview] Windows 10 build 10130

Alors qu'on se rapproche tout doucement de la sortie de la version finale, Microsoft continue tout de même d'enchainer ses builds. Disponible depuis un moment sur le canal "rapide", la version 10130 du système est désormais disponible sur l'autre canal. En bref, voici la liste des principaux changements apportés.


Au menu des nouveautés on notera le déblocage des options de personnalisation du menu démarrer et de la liste des raccourcis, la correction de la traduction du bouton "Puissance" ainsi que l'apport de quelques ajustements au niveau de l'apparence des icônes. On peut également noter que la barre des tâches n'affichera que les applications actives sur le bureau virtuel en cours, que Cortana peut être activé à l'aide du raccourci Windows + C, et qu'il est possible de forcer l'affichage des volets dans le navigateur Microsoft Edge (dont le nom n'a pas encore été changé dans cette version).


On pourra aussi saluer les correctifs apportés à l'installation de la version. Aucun plantage n'a été constaté, le temps de mise à jour (sur machine virtuelle) était plutôt correct.

mercredi 17 juin 2015

[Divers] Samsung présente son Safety Truck

L'Argentine n'est visiblement pas réputée pour la sécurité de son trafic routier. En effet, d'après le constructeur Samsung on apprend qu'une personne meurt toutes les heures sur les routes du pays. La firme a donc décidé de passer par l'agence Leo Burnett afin d'équiper ses camions de caméras à l'avant et d'écrans à l'arrière afin de permettre aux autres conducteurs de les dépasser sans prendre de risques inutiles. 

Une vidéo de 2 minutes peut être visionnée sur Youtube. Il s'agit d'une présentation de ces fameux camions. Le système est plutôt simple : les écrans - au nombre de 4 - sont fixés sur les portes arrière du véhicule, et sont reliés à une caméra placée à l'avant de ce dernier. Les voitures qui souhaitent alors doubler ne doivent plus se déporter sur la gauche. Cela évitera d'entrer en collision avec une personne qui arrivera en face au même moment. On peut donc saluer l'initiative !


Sources

mardi 16 juin 2015

[WD19] Filigrane sur un PDF déjà généré

Ayant des fichiers PDF déjà générés, je cherchais une solution pour rajouter un filigrane du style "Duplicata" pour une réimpression. Travaillant en Windev, je suis tombé sur la solution de Jurassic Pork sur les forums de PC SOFT, où il conseille d'utiliser ITextSharp, un assemblage .NET qui permet en gros de générer des PDF ou de les manipuler (séparer en plusieurs documents, fusionner, ajouter un filigrane ou un tampon, remplir des formulaires, etc).

Pour une question de licence, il recommande d'utiliser une ancienne version, soit la 4.1.6 (qu'on peut télécharger à l'adresse suivante : http://pdfviewernet.googlecode.com/svn-history/r55/trunk/PDFView/PDFView/lib/itextsharp.dll) et qui est sous licence MGPL/LGPL... Mais attention, d'après plusieurs sources, celle-ci est deprecated (considérée comme obsolète). Si vous souhaitez travailler avec une version plus récente, vous retrouverez l'assemblage sur Sourceforge (projet ITextSharp). Notez que la version 5 est passée sous licence AGPL. Pour savoir ce que cela implique, consultez le site GNU.org, section "Licences". 

Intégrer l'assemblage .NET 

Si vous ne vous rappelez pas comment intégrer un assemblage dans votre projet, voici comment il faut procéder : 
  • Dans l'explorateur de projets, clic droit sur "Assemblages .NET". 
  • Choisissez l'option "Utiliser un assemblage .NET dans le projet".
  • Cliquez sur le bouton "Parcourir" dans la fenêtre qui s'ouvre.
  • Sélectionnez le fichier "itextsharp.dll" puis cliquez sur OK.
  • Validez et recompilez le projet.

Procédure pour ajouter le filigrane

La procédure écrite par "JP" recevra en paramètre trois éléments : l'emplacement du fichier source, l'emplacement (complet - avec le nom de fichier et l'extension de celui-ci) pour le fichier de destination, et le texte qu'on souhaite afficher.


En début de procédure on va déclarer les premières variables :
  • Une variable de type entier pour contenir l'index de page, qui sera en fait utilisée dans une boucle en partant de la valeur 1. Il sera nommé "pageIndex".
  • Un objet de type PdfReader, qui va servir à charger le fichier source (on passe l'emplacement du fichier en paramètre du constructeur). Il sera nommé "MonFichierPDF".
  • Un objet de type FileStream pour initialiser un flux pour la création du fichier de destination (les paramètres du constructeur, sont, dans l'ordre : l'emplacement du futur fichier, et le mode de création - ex : FileMode.OpenOrCreate). Il sera nommé "fluxSortie".
  • Un objet de type PdfStamper qui sera utilisé pour ajouter du contenu supplémentaire au fichier source. Les paramètres du constructeur sont : l'objet PdfReader précédemment instancié, et le flux de sortie). Il sera nommé tout simplement "pdfStamper".
La fameuse boucle dont il était question ci-dessus est de type "POUR variable = x _A_ y". Dans ce cas-ci on réutilise notre entier - nommé "pageIndex" qu'on initialise à 1 en début de boucle, pour aller jusqu'à "MonFichierPDF.NumberOfPages"(inclus).


Ensuite dans la boucle il va falloir effectuer plusieurs choses :
  • D'abord la création d'un objet dynamique de type "itextsharp.text.rectangle". Il s'agit d'une représentation d'une forme géométrique. Dans ce cas-ci l'objet contiendra la représentation géométrique d'une page. Cela nous permettra de récupérer sa longueur et sa largeur afin de plus tard, placer le filigrane au bon endroit.
  • On va instancier un objet dynamique de type "PdfContentByte". Il va en fait contenir les images et le contenu textuel de la page renvoyée par notre objet "pdfStamper". Pour obtenir cela on appelle la fonction GetOverContent() en passant en paramètre le numéro de la page.
  • On va configurer la police et la taille pour le futur filigrane.

Mais ce n'est pas tout !


Toujours dans la boucle qui parcourt les différentes pages de notre document PDF, on va commencer à créer le filigrane. Tout d'abord à l'aide d'un objet "PdfGState" - qu'on va nommer "graphicsState" -, on va définir son opacité (à 0.4 dans l'exemple). Pour cela il faut écrire :

graphicsState.FillOpacity = 0.4

Ensuite, à l'aide de la fonction SetGState() de l'objet "PdfContentByte", on va appliquer cette caractéristique d'opacité au contenu existant. On définit ensuite la couleur de l'écriture - à l'aide de SetColorFill() -, puis on indique qu'on va commencer à saisir du texte - en utilisant BeginText().

La méthode suivante - ShowTextAligned() - va recevoir en paramètre la position du texte (ex : Element.ALIGN_CENTER), le texte à afficher, sa position sur la page - qui sera calculée en divisant respectivement la hauteur et la largeur par 2, et la valeur de la rotation. Si vous avez bien compté, cela fait au total 5 paramètres.

Dernière ligne de la boucle, il faut appeler la fonction EndText() de notre objet "PdfContentByte". Tous ces traitements se répéteront donc pour chacune des pages présentes dans le PDF. Cela peut prendre du temps en fonction du nombre de pages à traiter.


Ensuite il faut appeler la méthode Close() sur nos deux objets, "pdfStamper" et "fluxSortie". C'est très important pour que le fichier soit correctement sauvegardé et pour que le programme libère tous les descripteurs de fichiers ouverts.

Bon développement !

Sources

Forums PC-SOFT

samedi 13 juin 2015

[Android] Le LG G2 se met à jour

Après plus d'un an sous Android Kitkat 4.4.2, le LG G2 se met enfin à jour vers Android Lollipop 5.0.2 (depuis début mai en fait...). La marque coréenne, longtemps critiquée pour le manque de suivi logiciel, a fait de nombreux efforts pour assurer que la plupart des modèles phares bénéficie des dernières nouveautés en terme de fonctionnalités. Pour profiter du nouveau système il suffit tout simplement de télécharger de logiciel LG Mobile Support Tool, de brancher l'appareil à l'ordinateur à l'aide du câble USB, et le reste se fera (presque) automatiquement. Attention, le fichier à télécharger - ROM D80230b-EUR-XX - est plutôt conséquent puisqu'il pèse près d' 1,6 Go. Mais bon, ce n'est pas vraiment un problème sur nos connexions actuelles.


Une fois installé et démarré, on constate directement la différence, surtout au niveau de l'interface. Tout d'abord on remarquera que les icônes ont subi un sacré lifting (Paramètres, Téléphone, Internet, Messagerie). Les boutons de la barre de navigation tactile ont également été modifiés : on retrouve désormais par défaut un triangle, un cercle, et un carré. Le premier permet de revenir en arrière, en général à l'application précédente. Le cercle, lui, permet de revenir à l'accueil. Un appui long sur ce dernier permet de lancer la recherche Google. Enfin, si vous appuyez sur le carré, vous obtiendrez la liste des activités récentes, en tâche de fond. Vous pouvez décider de les fermer une à une ou toutes d'un coup. Un appui prolongé sur ce fameux carré permettra d'afficher le menu contextuel de l'application active, ou de l'écran d'accueil.


Depuis les paramètres il est possible de configurer les touches tactiles affichées en bas de l'écran. Celles-ci peuvent également être réorganisées. Dans les images ci-dessus, nous avons rajouté à la barre le bouton qui permet d'afficher ou de faire disparaitre les notifications à l'écran. Notez qu'il est toujours possible de faire apparaitre celle-ci en glissant le doigt depuis le haut de l'écran. D'ailleurs, en parlant de ça, vous constaterez que le centre de notifications a bien changé lui aussi. Le bouton de luminosité permet de basculer entre plusieurs modes prédéfinis, mais vous pouvez régler vous-même l'intensité ou basculer en mode automatique. Les notifications s'affichent dans des encadrés blancs sous les différents contrôles, mais on ne le voit pas sur les images ci-dessus.


En explorant un peu on découvrira que les applications fournies par LG se mettent à jour. Parfois il ne s'agit que de changements cosmétiques, parfois cela va plus loin, avec par exemple Voice Mate qui peut désormais traiter les commandes vocales en français, à l'image de Siri sur l'iPhone. Malheureusement elle n'est pas aussi aboutie surtout en ce qui concerne son humour. Certaines phrases un peu drôles ne sont pas comprises par le téléphone. Enfin, c'est déjà bien qu'on puisse enfin l'utiliser en français, surtout que dicter et envoyer un SMS fonctionne plutôt bien. Quelques bugs ont quand même été constatés, comme le fait que l'application n'arrivait pas à trouver un contact dans la mémoire du téléphone alors que le nom était bien compris.


LG en profite pour supprimer ses options maison de planification pour le mode silencieux pour laisser place à la fonctionnalité "Do Not Disturb" d'Android L. Il sera possible de déterminer quand les notifications devront ne pas être signalées et même de déterminer les contacts pour lesquels cela ne s'appliquera pas.


Parmi les autres applications pré-installées, on retrouve toujours le fameux gestionnaire de tâches, bien pratique. Il permet de vider la mémoire RAM en fermant les applications et les services inutilisés. Dans les paramètres, on peut cocher la liste des services qui devront être arrêtés. Faites tout de même attention à ne pas couper tous les services des applications système car cela pourrait en faire planter d'autres.

On peut le dire la mise à jour vers Android Lollipop semble être un succès, du moins sur mon téléphone cela n'a pas posé de souci en particulier. L'interface est réactive, fluide. Alors que beaucoup d'utilisateurs se plaignent d'une durée de vie catastrophique de la batterie sous cette version, la mienne semble plutôt bien tenir le coup. Mais il ne faut pas croire son appareil "intouchable" car malgré tout, ces problèmes existent bel et bien. Il y a quand même un "hic" avec le déverrouillage. Lorsque je rallume l'écran - soit à l'aide du Knock On, soit avec le bouton à l'arrière - et que je soulève ou pose le téléphone, l'écran a tendance à s'éteindre de suite, comme si l'accélération "forçait" cette action. On peut donc supposer qu'il y a un bug avec les différents capteurs de mouvements...

Autre problème rencontré mais cette fois-ci temporaire : la rotation de l'écran peut parfois cesser de fonctionner. Dans ce cas, arrêter et relancer le téléphone est suffisant. Si cela ne fonctionne pas, certains utilisateurs conseillent d'effectuer un nettoyage du cache... Et si vraiment rien n'y fait, d'effectuer un "factory reset". La première solution a fonctionné pour moi, heureusement.

On verra si LG compte apporter des corrections.

lundi 1 juin 2015

[Système] Icône de mise à jour vers Windows 10

Ce matin en allumant votre ordinateur, vous avez peut-être remarqué une icône Windows apparaitre dans la zone de notification de la barre de tâches, à côté de l'heure. Soyez rassurés, ce n'est pas une nouvelle forme de phishing ni un logiciel douteux. Il s'agit en fait d'une application qui vous permet de réserver votre mise à jour gratuite de Windows 10.


Lorsqu'on clique sur cette icône une nouvelle fenêtre apparait et nous explique étape par étape le fonctionnement de la (future) mise à niveau. L'idée est que ceux qui ont réservé soient informés dès la sortie officielle du système et que ce dernier se télécharge automatiquement sur la machine de l'utilisateur une fois disponible. Par après il vous suffira de choisir d'effectuer l'installation immédiatement ou de la reporter.

D'après le site Microsoft, Windows 10 sera disponible le 29 juillet

Sources