- 08juillet 2008
-
Après la banque il y a quelques jours, c'est l'hébergement web qui est à l'honneur ce soir... enfin à l'honneur, c'est beaucoup dire ! OVH héberge la plupart de mes noms de domaines, et alors que, pour mes clients/partenaires, j'utilise mon propre serveur DNS, ce soir, après avoir acheté un domaine à titre personnel, j'ai voulu configurer mes hosts & alias. Beeeeenn... c'est pas gagné ! Premier point désagréable : mon hébergeur (je suis pourtant plutôt satisfait de leurs services, mais leur ergonomie est à revoir) a créé automatiquement une tonne de CNAME dans mon domaine, qui vont de imp.ledomainekivabien.com à jabber.ledomainekivabien.com... je ne sais pas - enfin si je sais, plus ou moins, mais je n'ai jamais utilisé - ce que sont imp et jabber, mais franchement, que voulez-vous que j'en fasse ? Alors zou, premiere phase, on les vire... un par un... avec un bazillon d'écran de validation (plus que pour installer un soft sous Vista, c'est dire...). Commençons par virer les éléments les plus simples : D'abord un clic sur l'îcone supprimer dans la liste : puis forcément, la page de validation : puis une boite de validation... Multipliez ça, par les 8 ou 9 alias DNS qui sont définis et savourez :) Ca ne vous a pas énervé, juste en imaginant ? Aors on continue avec le plus grandiose de tous : la suppression de l'enregistrement MX ! C'est l'extase, cela commence (après le clic sur l'îcone supprimer) par un dialog d'avertissement :  Puis la fenêtre de validation : On continue avec confirmation puis un bon gros message d'erreur :  Il ne reste plus qu'a cocher la case "Forcer l'opération" et à recommencer avec la boite de dialogue de confirmation : là, si vous n'avez pas encore tué femme et enfants, vous avez enfin réussi à supprimer l'enregistrement MX... Formidable, non ?
|
|
|
- 01juillet 2008
-
J'ai de plus en plus de mal à supporter les interfaces bâclées de la plupart des sites webs... Preuve encore ce matin, avec le site de ma banque - que je ne citerai pas - et leur module de gestion des virements. Réaliser un virement se fait en deux étapes (enfin, pour les destinataires connus, parce que pour ajouter un nouveau compte, direction votre agence, c'est quand même plus pratique de devoir faire 10 bornes..., mais passons) : - D'abord la saisie d'un mot de passe pour sécuriser cette partie, c'est plutôt une bonne idée, pour - par exemple - une société cela permet de séparer le droit de visualisation de celui de réaliser des opérations
- Puis viens l'écran de définition du virement en lui même
Tout va bien, me direz vous ? oui... mais non... La page de saisie du mot de passe ressemble à ça : Quant à celle de saisie des informations, elle se termine comme ceci : Les boutons accepter/annuler sont inversés entre les deux écrans. J'ai du m'y reprendre a 3 fois pour valider... grrrr. et je ne parle pas de la différence d'aspect des boutons, parce qu'il y a plus grave :p Tout cela pour dire : l'ergonomie ce n'est pas fait pour les chiens, et dans le cas qui nous occupe, il faut au moins décider une fois pour toute si vous mettez les boutons "confirmer" à gauche ou à droite (à gauche c'est mieux, c'est comme cela que l'on est pour la plupart habitués, puisque c'est le sens habituels des boutons sous Windows) des boutons "annuler".
|
|
|
- 26juin 2008
-
Il y a déjà pas mal de temps (ah oui, 5 ans, tout de même...), Scott Hansleman donnait un certain nombre de conseils pour la réalisation du présentation/formation technique. Heureusement, il ne s'est pas arrêté là, et les a remis à jour il n'y a pas bien longtemps. Pour résumer (et hormis l'inévitable "essayez au moins de connaître un minimum votre sujet"), voici les remarques que je trouve les plus pertinentes - un peu remis à ma sauce - : - Utilisez des machines virtuelles pour vos présentations. Cela a deux gros intérêts : le premier, comme scott le suggère c'est d'avoir une solution de remise à zéro simple et rapide. Le second, encore plus intéressant, c'est de pouvoir laisser aux techniciens venus assister à la démo un environnement complet qu'ils pourront utiliser pour reproduire votre démonstration et/ou approfondir, sans avoir à se soucier de trouver un serveur, de prendre le temps d'installer etc. De quoi Passer pour un dieu(TM) . J'ai pour habitude de mettre ces machines virtuelles sur un disque USB (et depuis peu e-sata) mais rien ne vous empêche de graver un ou deux DVDs (et de pleurer sur le peu de données que l'on peut mettre sur 4.7go...)
- Ne courrez pas au travers de la pièce pour faire avancer vos slides. J'ai utilisé aussi bien le Cordless Presenter de Logitech que la Presenter Mouse 8000 de Microsoft, et franchement, c'est vraiment indispensable. Nous ne pouvons pas tous être Steve Jobs et avoir quelqu'un juste là pour faire avancer la présentation, donc optez pour une solution vous permettant de ne pas avoir à vous pencher sur votre notebook. (Pour info, j'aime beaucoup l'horloge du Cordless, cela permet de ne pas trop dépasser le temps prévu)
- Réduisez au maximum le "bruit" de vos interfaces. Vous avez 17 toolbars personnalisées dans l'application ? Oubliez les pour vos présentations : elles ne feront que surcharger l'écran pour pas grand chose. Rappelez vous que votre contenu devra être visible de loin donc que la quantité d'informations présentées doit être réduite. Tant que vous y êtes, en plus de supprimer les toolbars inutiles, regardez si vous pouvez changer la taille de police et ou le paramêtre dpi de Windows pour rendre le texte plus lisible à distance. (Si vous essayez de changer les dpi pour mettre en "grande police" selon la terminologie XP, soyez sûr de refaire un tour complet de votre présentation, peu d'applications supportent ce genre de plaisanterie sans faire n'importe quoi)
|
- 25juin 2008
-
Si vous ne connaissez pas encore le Touchsmart d'HP, je vous invite à aller faire un p'tit tour sur le site de présentation, c'est assez sympa ! Avec l'iPhone, Surface et tout le buzz (et réussite commerciale dans le cas de l'iPhone) que ces deux produits ont générés, il ne restait plus très longtemps avant que les premières interface touch pour PC pointent le bout de leur nez ! La démo est assez convaincante, même si la possibilité de "resizer" les bloc du haut avec plusieurs doigts semble un peu ajoutée juste pour montrer que c'est du multi-touch :) Quoiqu'il en soit, ca m'a redonné l'envie (mais malheureusement pas le temps) de retravailler un peu sur l'interface touch que j'utilise pour ma domotique. Bon, c'est clair que ca n'a pas le look ni la finition du produit de HP, mais même si ce n'est pas satisfaisant au niveau graphique, c'est quand même bien utile, que ce soit à partir d'un UMPC ou d'un ecran touch.  Screenshot réalisé sur la version de test du module domotique
|
- 22juin 2008
-
Bon, c'est presque un message personnel - à Seb, qui se reconnaîtra -, mais puisqu'il est quasiment impossible de discuter avec les fanboys Apple... PARC, mon gars, retiens bien ces 4 lettres : PARC Ah... oui et retiens aussi Alto... Pour ceux que ça intéresse, PARC - à l'époque Xerox PARC (Palo Alto Research Center) - est l'inventeur de (presque) tout ce qui fait l'informatique telle que nous la connaissons aujourd'hui : souris, affichage & interface graphique, l'affichage Wysiwyg, les Remote Procedure Call, la programmation objet (enfin, en tout cas le premier langage objet qui ai tenu le coup : smalltalk)...
|
- 27mai 2008
-
Bon, eh bien cela fait un an et demi que j'ai installé vista... Le temps est venu de faire le constat sur ce qui s'est bien passé, ce qui me plaît et ce qui m'enerve sur cet OS... Bon, bien évidemment, comme tout le monde sait que je suis (presque) un fanboy de Microsoft,vous ferez ce que vous voulez de mon opinion :) Les bons côtés - La recherche intégrée au menu démarrer. On l'avait vu en 2003, au PDC (enfin disons plutôt qu'on l'avait vu sur les vidéo APRES le PDC), avant SpotLight et Google Desktop Search, mais ne plus avoir à aller dans ce très énervant écran de recherche pour se servir de l'indexation des fichiers c'est quand même l'extase. Surtout qu'au passage, le moteur d'indexation - déjà présent dans XP, et je me demande même si il ne l'était pas dans Windows 2000 - est plus intelligent : il indexe aussi le menu démarrer, les e-mails etc.
- Le volet de prévisualisation. On se croirait un peu revenu au temps de Windows 95 - ou de 98, je ne sais plus lequel contenait quickview - avec cette fonctionnalité, même si elle est mieux intégrée. Pour la plupart des fichiers "standards" (images, videos, texte, et bien d'autres en ajoutant de nouveaux filtres), vous n'avez plus besoin d'ouvrir l'application associée pour visualiser le contenu : il s'affiche directement dans l'explorateur
- .net 3.0 intégré au système. Pas besoin d'en dire plus : .net rocks !
- UAC. Je dois bien être le seul utilisateur qui trouve qu'UAC est une véritable merveille, mais bon : ne plus avoir à utiliser des scripts du type MakeMeAdmin.bat pour effectuer des changements "administratifs" ça n'a pas de prix. En effet, si vous n'aviez pas la mauvaise habitude de travailler en administrateur sur vos machines, vous verriez qu'UAC est vraiment sympa en retirant tous ces passages compliqués du compte "normal" au compte "admin".
- Media Center intégré.
- Superfetch. On mets pas mal de temps à en voir l'interêt mais en fait, c'est pas mal du tout : superfetch se charge de "pré-charger" une partie de vos applications habituelles en mémoire... impressionant comment cela améliore le premier démarrage des grosses applications, du type Office.
Les trucs énervants - C'est quand même super gourmand. Si vous voulez vraiment profiter de vista, exit les vieux PCs, ce n'est même pas la peine d'y songer. Pour que vista soit à son aise, prévoyez un strict minimum de 2go de mémoire et un bon processeur (heureusement que le double core se retrouve presque partout). Bon d'un autre coté, cela fait plus d'un an que (mis à part peut-être la mémoire, mais à 20€ le Go/25€ pour les portables, ce n'est pas hors de prix...) ce type de configuration se retrouve partout.
- Les redémarrages de Windows Update ne peuvent pas être annulés (enfin pas par les utilisateurs "non-administrateurs"). Ca c'est vraiment pénible sur mes PCs hors domaine - ceux faisant partie du domaine (et donc servant au boulot) ont une stratégie d'application des patchs spécifiques - et a fait que j'ai repassé mes utilisateurs en administrateur, ce qui est un peu dommage, surtout qu'il aurait suffit d'un prompt UAC...
- L'aspect Glass : la c'est purement affaire de gout, mais je n'aime pas les nouvelles bordures et barre de titre des fenetres, je trouve cela disgracieux - pas autant que l'effet alu brossé de MacOS, mais quand même très moche. J'aimais beaucoup l'aspect playskool de Windows XP
- nVidia. Oui, bon, c'est facile de toujours taper sur eux, mais ils l'ont cherché... 8 mois avant de sortir un driver potable, c'est long !
- En parlant drivers, d'ailleurs, l'impossibilité d'utiliser les drivers XP pour certains composants/périphériques (imprimantes, son, etc) est assez pénible, surtout quand la société qui a fait votre carte son 7.1 est inscrite aux abonnés absents...
|
- 22mai 2008
-
Dans un billet précédent, je vous faisait part d'une grande découverte que nous avions fait lors du développement de nos applis WPF : Vos développeurs vont devoir oublier une bonne partie de ce qu'ils savent sur l'écriture d'une application ! Eh bien, pour que cela soit un peu plus parlant, voici un exemple. NB : tous les codes fournis dans cet article ne sont pas à utiliser dans l'état, et présentent juste une façon naïve et simplifiée à outrance des concepts que je souhaite démontrer. A vous de compléter tout cela par les habituelles optimisations, gestion d'erreurs etc. Imaginons que vous ayez à afficher dans un écran une liste de clients, en Windows Forms, cela devrait ressembler plus ou moins à cela : // ...
public void Search(/* ... */)
{
List<Client> clients = MonObjetMetier.Search(/* ... */);
listView1.Items.Clear();
foreach (Client c in clients)
{
ListViewItem it = listView1.Items.Add(c.Nom);
it.SubItems.Add(c.CodePostal);
it.Tag = c;
}
}
// ...
Une méthode Search(), qui raffraichit une liste- bon, évidemment, dans la vraie vie vous auriez fait quelque chose de plus complexe pour utiliser le multi-threading ainsi que pour éviter le listview1.Items.Clear() - et cela roule. Maintenant, imaginez que vous ayez la même chose à faire en WPF... bien sûr, la même technique est parfaitement utilisable, mais vous n'allez pas vous faire aimer de votre designer : il aura besoin de vous ne serait-ce que pour échanger l'ordre des colonnes !
La première chose à faire, c'est de ne plus réflechir en terme de "texte affiché" mais en terme "d'objet affiché" : ce n'est pas à vous, en tant que développeur, de décider ni où, ni comment seront affichés (si ils le sont) les codes postaux ! Contentez-vous de vous dire que l'écran affiche des clients, et laissez quelqu'un d'autre se charger de la présentation. // ...
public void Search(/* ... */)
{
List<Client> clients = MonObjetMetier.Search(/* ... */);
listView1.Items.Clear();
foreach (Client c in clients)
{
listView1.Items.Add(c);
}
}
// ...
Si vous utilisez cette méthode, le designer pourra assez facilement modifier la façon dont seront affichées chacune des lignes de la liste (avec un DataTemplate) et/ou l'apparence globale de celle-ci (par un ControlTemplate ou un ItemsPanelTemplate). En vous arrêtant là, vous aurez déjà fait un gros progrès par rapport à WinForms, mais il est possible d'aller beaucoup plus loin : dans l'extrait de code ci-dessus, c'est encore le developpeur qui decide de mettre les données dans la listview. Et si le designer voulait utiliser autre chose qu'une listview ? ?
La deuxieme partie de l'équation est donc d'arrêter, aussi, de réaliser des écrans qui affichent quelque chose : encore une fois "ce n'est pas à vous, en tant que développeur, de décider ni où, ni comment seront affiché[e]s (si [elles] le sont)" les données. Contentez vous de fournir des données (sous la forme de collections, par exemple, à vous d'optimiser la façon dont ses données sont chargées/mise à disposition). // ...
public ObservableCollection<Client> LesClients = ... public void Search(/* ... */)
{
List<Client> clients = MonObjetMetier.Search(/* ... */);
LesClients.Clear();
foreach (Client c in clients)
{
LesClients.Add(c);
}
}
// ...
En écrivant vos programmes de cette manière, vous devriez voir une grande simplification du workflow développeur<>designer, chacun pouvant alors s'occuper de ce qu'il connait le mieux : la gestion des règles métiers et de l'aspect technique ou la représentation des informations et leur manipulation.
|
- 26avril 2008
-
Si vous faites un peu de programmation WPF, vous avez certainement dû vous retrouver assez souvent à écrire du code ressemblant à : ThreadPool.QueueUserWorkItem
(new WaitCallback(delegate(object ignored)
{
// un appel à un traitement long comme une requête
// sql ou un web-service
Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
new WaitCallback(delegate(object ignored_too)
{
// le traitement de mise à jour de votre
// controle
}
), null);
}
));
Je vous propose donc un petit extrait de code qui se charge d'écrire cela à votre place (le bonus étant que les namespaces sont importés automatiquement) :
Une fois installé, vous pourrez utiliser le snippet wpfthreadtask :
|