Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

La météo de Royan-Pontaillac en direct

 

UPDATED - Mai 2010 : La station est désormais à Lorris dans le 45, dans le menu à droite "Pages" vous trouverez la nouvelle page "Ma Station météo". 

------------------------ 

Tout geek qui se respecte possède des tonnes de "zinzins éléectroniques". Du pur gadget totalement inutile (mais tellement fun) aux bricolages de savants fous, on trouve de tout.

Ne reniant pas mon côté geek, je suis en train de tester ma nouvelle station météo reliée au PC avec génération automatique d'images publiées tout aussi automatiquement sur mon blog. C'est tellement beau de voir sur une page web en France la valeur de mon anémomètre qui a transitée via les ondes dans le boitier central puis de ce dernier au PC via RS232 puis du PC aux serveurs de mon hébergeur sur la côte ouest des USA pour enfin revenir sous la forme d'un PNG ! J'adooooore :-)

J'ai bien entendu prévu divers traitements en C#, graphiques, tableaux, etc, histoire d'occuper les longues soirées d'hiver. Mais bon, ça c'est ce qu'on se dit, encore faut-il trouver le temps, pas celui qu'il fait, mais celui qui passe...

Pour l'instant vous trouverez la météo en direct sur la page du même nom de ce blog (regardez le menu "pages" à droite). Il y a une image png générée automatiquement toutes les dix minutes, pour l'instant pas de refresh automatique, il faut faire F5 sur la page toutes les dix minutes donc pour avoir la dernière version...

(Un rapport mensuel a été ajouté dernièrement, jetez y un oeil c'est joli :-) )

accès direct à la page ici

Menus de XP trop rapides à la détente

Une petite astuce simple en passant...

Vu que le monde entier n'a pas encore basculé sous Vista (malgré des avantages certains) et que ce bon vieil XP se rencontre encore un peu partout cette astuce devrait en intéresser plus d'un !

J'ai eu le cas sur l'un de mes portables et j'ai eu beaucoup de mal à trouver la réponse d'où l'intérêt de la publier même si ce n'est pas l'affaire du siècle.

Le symptôme : vos menus sous XP s'ouvrent très vite, bien trop vite, et c'est très agaçant. Il existe pourtant une façon bien simple de régler le problème, simple une fois que l'on sait, comme souvent en matière de technique (et même en général !).

Lancez Regedit pour accéder à la registry, puis ouvrez les noeuds HKEY_CURRENT_USER, Control Panel, Desktop. Stop, on y est ! Dans le volet de droite chercher la clé: MenuShowDelay. Regarder la valeur, elle doit être bien basse. La valeur "agréable" (chacun ses goûts bien entendu) se situe entre 200 et 500 en balayant large. Bien entendu vous pouvez mettre moins si vous recherchez l'effet contraire (accélérer l'affichage des menus) ou beaucoup plus si vous préférez déclencher les ouvertures de menu par des clics volontaires au lieu des ouvertures automatiques.

Si la clé n'existe pas, créez là, de type REG_SZ (donc chaîne de caractères).

Voilà, comme je le disais en intro, c'est pas le scoop du millénaire, mais personnellement ça m'a franchement changé la vie sur ce portable. Si j'en sauve juste un seul de la crise de nerf, je serai heureux :-)

Stay tuned !

Le coin des bonnes adresses Microsoft

La nouvelle année est l'occasion de mille nouvelles promesses et bonnes résolutions qui seront souvent fort peu suivies d'effet ! Ainsi va la nature humaine.

Si se former, s'intéresser aux nouveautés, rester au top de la technologie fait partie de votre liste de bonnes résolutions pour 2008 alors soyeux heureux, j'ai un bon moyen pour qu'au moins vous puissiez tenir cette promesse ! Comment ? En suivant les liens de cette collection d'adresses indispensables !

Bonne lecture !

ThèmesDescriptionAdresse
Architecture Une vision des dernières technologies et applications, donnant des idées et des exemples sur la manière de les intégrer avec succès dans la mise en oeuvre des architectures. www.microsoft.com/architecture/
Framework Centre d'information .NET Framework msdn.microsoft.com/netframework
Micro Framework Vous connaissez le Compact Framework, mais le Micro Framework (ou embedded framework) ? Vous saurez tout en suivant ce lien ! msdn2.microsoft.com/en-gb/embedded/bb267253.aspx
ASP.NET Centre d'information et de ressources ASP.NET www.asp.net/
IIS Centre d'information et de ressources MS Internet Information Services www.iis.net
Learning center Le centre de formation MS sur toutes les technos de l'éditeur www.microsoft.com/learning
Sécurité Centre d'information sur la sécurité (articles, webcasts...). A ne pas négliger ! msdn2.microsoft.com/en-us/security/aa973363.aspx
SQL Server Toute l'information sur SQL Server www.microsoft.com/sql/default.mspx
Sync Framework ADO.NET Entity Framework, ADO.NET Data Services (Astoria), que des choses importantes ! msdn2.microsoft.com/en-us/data
MS United Communication Microsoft UC offre une palette de choix dans la manière dont les communications et la collaboration des logiciels sont implémentées, gérées et maintenues.
www.microsoft.com/uc/default.mspx
VS 2008 L'IDE star a aussi son site ! msdn2.microsoft.com/en-us/vstudio/default.aspx
Windows Server 2008 Le nouveau serveur Windows www.microsoft.com/windowsserver2008/
Vista Toute l'info sur cet OS www.microsoft.com/windowsvista/businesses/default.mspx
MSDN L'incontournable site d'information de Microsoft www.msdn.com

Le DVD des TechEd est arrivé !

Pour les chanceux qui ont participé aux TechEd Developers 2007 qui se sont tenues à Barcelone du 5 au 9 novembre (voir mes billets à ce sujet), la boucle est enfin bouclée avec l'arrivée du DVD dans nos chaumières !

La bonne surprise c'est qu'il s'agit de 2 DVD et non d'une seul puisque la pochette contient aussi celui des TechEd IT Forum, événement qui se tenait au même endroit la semaine suivante (12-16 novembre). En raison malgré tout des coûts liés à un séjour de deux semaines certainement peu d'entre nous ont pu participer aux deux événements chacun ayant choisi celui qui lui semblait le plus proche de ses besoins immédiats. Néanmoins, les participants de l'IT Forum seront certainement très heureux de visualiser les vidéo des sessions des TechEd Developers, l'inverse sera tout aussi vrai. Il faut donc remercier Microsoft de n'avoir pas mesquiné en envoyant à tout le monde les deux DVD !

L'année commence donc bien et même si les vidéos étaient disponibles sur le Web pour les participants (nouveauté 2007) dès la semaine suivante les TechEd, chacun appréciera le confort d'un DVD ne nécessitant pas forcément d'être connecté en ADSL pour voir ou revoir les meilleures conférences.

Bonnes fêtes de fin d'année !

La trève des confiseurs est un rituel sacré, au sens propre pour certains, au sens purement laïc et festif pour les autres. Que vous fassiez partie des premiers ou des seconds, je vous souhaite d'excellentes fêtes de fin d'année.

L'année qui s'achève a été riche en annonces. L'année 2008 qui va s'ouvrir sera l'une des plus exitantes dans notre métier, l'année de LINQ, de l'Entity Framework, de Silverlight, de Astoria (Adot.net data services), de Blend 2.0, et de toutes ces nouveautés extraordinaires ! Vivement 2008 !

Passez de bonnes fêtes !

 

Multithreading simplifié

Le multithreading c'est l'épouvantail du développeur. Vous en parlez, hop! tout le monde s'en va de la machine à café... et s'il y en a un qui ne part pas , c'est le genre fanatique qui va débaler une science opaque sur les AppDomains, les mutex et autres mots qui fâchent, du coup, c'est vous qui partez :-)

Je carricature à peine...

C'est tout le problème du multithreading. Pratiqué avec simplicité c'est une technique de plus en plus indispensable pour tirer partie des microprocesseurs multicoeurs et fluidifier les interfaces, mais voilà, comment faire simple avec une telle technique ?

Les puristes vous diront qu'il faut absolument comprendre la technique, et qu'en suite c'est facile... Un peu comme Coluche qui expliquait dans l'un de ses sketchs que son professeur de violon lui avait dit d'apprendre à jouer avec des gants de boxe parce que quand on les enlève ça semble facile...

Je ne vais pas vous dire qu'une démarche rigoureuse est inutile, j'ai un module de multithreading avancé dans mes plans de cours et, bien entendu, voir les choses en profondeur au sein d'une formation est le seul moyen de maîtriser cette technique. Mais il existe aussi des façons simples d'introduire un peu de multitâche dans vos applications.

Il s'agit du composant BackgroundWorker des Windows Forms. Certes le sujet tranche avec mes billets généralement plus orientés vers les super nouveautés hypra fraîches à tel point qu'elles sont même parfois en bêta... Mais il faut bien maintenir les applications existantes, les améliorer, et pour cela il existe, comme le BackgroundWorker des solutions pratiques qui ne nécessitent pas d'installer le framework 3.5 puisque cette classe a été fournie avec .NET 2.0.

De plus, ce composant Windows Forms n'impose pas de connaître les mécanismes du multithreading, il suffit de programmer ces événements comme un bouton. Trop facile ? Peut-être que cela choquera les puristes parce que "cela cache la réalité de ce qui se passe vraiment dans la machine", je leur répondrais que faire du C# au lieu de faire de l'assembleur c'est un peu pareil... Là où je les rejoindrais c'est que, bien entendu, la classe backgroundWorker ne doit pas être utilisée à tord et à travers. Si l'on désire concevoir des classes gérant finement le multitâche, il faut réellement comprendre et donc apprendre. Mais dans de nombreux cas, le BackgroundWorker pourra vous être utile et rendre plus fluide vos applications Windows Forms sans avoir à entrer dans les détails d'une technique un peu aride.

Mais trève de mots, le plus simple c'est de jouer avec ce composant pour se rendre compte de son utilité. Pour facilité la.. tâche... je vous ai préparé un petit projet VS 2005 qui montre comment se servir de backgroundWorker : BGW.zip (41,83 kb)

Un peu de douceur multitâche dans ce monde de multicoeurs...

Présentation des différentes facettes de LINQ (article à télécharger)

Le voilà enfin ! [Updated ! Version 1.1 en ligne]

un PDF de 32 36 pages et 5 6 projets exemples sous VS 2008 pour vous présenter les différentes facettes de LINQ. Je n'en voyais plus le bout de cet article ! Non par lassitude, bien au contraire, mais parce que LINQ est d'une incroyable richesse et que je voulais vous en dire la maximum.

Sans entrer dans les détails trop techniques de la syntaxe (la doc Microsoft est très complète et n'a nul besoin d'une redite), cet article présente le pourquoi et le comment de LINQ au travers d'explications et d'exemples de code.

  • LINQ to Objects
  • LINQ to SQL
  • LINQ to Dataset
  • LINQ to XML
  • LINQ to Entities

Sans prétendre que toutes ces versions de LINQ n'auront plus de secret pour vous après avoir lu l'article, vous en saurez certainement plus pour mieux comprendre pourquoi il y a eu un avant LINQ et qu'il va y avoir un après LINQ...

Pour télécharger l'article cliquez ici !

Avant de lire cet article il est préférable de connaître les nouveautés syntaxiques de C# 3.0, si ce n'est pas votre cas vous pouvez télécharger mon précédent article.

Pour la liste de tous mes billets sur LINQ cliquez ici.

Note de la version 1.1 : table des matières ajoutée + plus de détails sur Linq to Entities et un projet utilisant la bêta 3.

LINQ à toutes les sauces !

Je suis en train de boucler mon article de présentation de LINQ. Au départ je pensais m'en sortir en une dizaine de pages, mais j'en suis à plus du double... juste pour faire le tour des principales possibilités et sans détailler la syntaxe (ce n'est pas le but de cet article).

J'ai eu maintes fois l'occasion de vous dire ici que LINQ est l'innovation la plus fantastique que j'ai vue depuis longtemps dans un langage. Vous en saurez plus en lisant le prochain article qui sera en ligne ce week-end, mais pour vous prouver que LINQ peut servir partout et tout le temps voici deux exemples à contre-courant de l'idée qu'on se fait des utilisations possibles de LINQ :

Cas 1 : Lister les services actifs de Windows.

C'est bête mais balayer et filtrer une simple liste comme celle là (et de bien d'autres du même genre retournées par le framework .NET ou par vos applications), c'est produire du code pas très marrant... Avec LINQ ça devient :

using System.ServiceProcess; 
var srv = from s in ServiceController.GetServices()
         where s.Status == ServiceControllerStatus.Running
         select s.DisplayName;
ListBox1.DataSource = srv.ToList();

 
Je trouve ça élégant, pas vous ?

Cas 2 : Remettre à unchecked tous les Checkbox d'une form

Balayer certains contrôles d'une fiche n'est là non plus pas l'endroit où l'on s'attend à trouver du LINQ... Et pourtant ! Imaginons une fiche de saisie avec des tas de checkbox et un bouton "raz" de remise à zéro de la fiche. Balayer tous les contrôles de la fiche pour ne sélectionner que les checkbox n'est pas un code bien complexe mais avec LINQ ça devient tellement plus chouette !

var cb = (from Control c in this.Controls select c).OfType<CheckBox>();
foreach (var c in cb) c.Checked=false;
 

C'est pas plus joli et plus clair écrit comme ça ? (et encore on pourrait se passer de la variable "cb" et intégrer directement la requête LINQ après le "in" du "foreach")?

Bref, LINQ j'adore. Et j'espère bien que le papier à venir va vous transformez en fans vous aussi ! alors... Stay tuned !

Les nouveautés syntaxiques de C# 3.0

Les expressions Lambda vous connaissez ?

Et l'inférence des types locaux, les méthodes d'extension, les expressions d'initialisation des objets ou les types anonymes ?

Si tout cela sonne bizarrement à vos oreilles, n'hésitez plus une seconde : téléchargez le nouvel article que j'ai mis en ligne gratuitement !

Voici le lien, il n'y a qu'à cliquer ici !

Vous êtes encore là ?

... Alors ne loupez pas le tout dernier article "Présentation de LINQ avec C#", un papier de 32 pages riche en exemples !

Kit gratuit d'entraînement pour Visual Studio 2008 et le framework 3.5

Microsoft a mis en téléchargement public un kit d'entraînement pour VS 2008 et le framework 3.5.

Le fichier pèse environ 120 Mo, vous pouvez le télécharger en cliquant ici.

Le contenu

Ce training kit est en fait le contenu de formation qui a déjà été donnée sur 5 jours à un certain nombre de partenaires Microsoft ces mois derniers. Il contient 20 hands-on-lab, 28 présentations et une vingtaine de démos scriptées pour se former au produit et à ses nouveautés.

Le contenu a été mis et jour pour refléter la réalité de la version finale (distribuée aux abonnées MSDN depuis ce mois-ci en attendant la mise sur la marché en février prochain - vous pouvez donc utiliser la bêta 2 en téléchargement gratuit dans ce laps de temps si vous n'êtes pas abonné MSDN).

Les sources d'info complémentaires

Le petit supplément de Monsieur Plus : je vous rajoute en prime les liens de plusieurs vidéos complémentaires au kit :

Rien que du bon, mais en anglais. Pour les francophiles/phones anglophobes il faudra attendre mes articles à venir.. Alors : Stay Tuned !