odelmotte.fr

Le blog de odelmotte.fr

A propos du for et du for each

clock août 30, 2007 20:04 by author Olivier

Je programme depuis maintenant un bon moment, que ce soit sur la plateforme .Net (pouah, déjà tout ce temps) que sur VB6 ou même un peu de C ...

Mais en ce moment, je suis en train de m'appercevoir que bon nombre de personne ont un petit problème avec les itérations de types for.

For et For Each, ici en VB, sont deux itérations relativement semblables. A tel point que bien souvent, on prend l'habitude d'utiliser l'une plus que l'autre. Et souvent, on prend la mauvaise habitude. Je m'explique.

Que se soient de vieux développeur ou des jeunes, il y en a qui, quelque soit la situaton passent par l'itération For Each, sans se demander si For i as integer, comme on a coutume de voir, ne ferait pas le même boulot mais un peu plus vite. J'en suis même arrivé à douter mais non Tongue out

J'ai donc écrit vite fait un petit 'bench' dans le train pour vérifier quand même.

Donc c'est bien simple. Je rempli une List(of myItem) avec 10 000 000 d'instances. myItem est un type tout simple, avec seulement une propriété Value de type string.

Ensuite, je lance 5 fois la même série d'itérations, c'est-à-dire une fois For Each, une fois For i as integer, et je mesure le temps d'éxécution à l'aide de la classe Stopwatch (tutoriel de mon ami Ronald Vasseur).

Itération For Each For i
1 154 112
2 151 110
3 171 119
4 157 112
5 157 111

Je pense que le résultat est sans appel. Le For Each peut se révéler presque 1 fois et demie plus lent que le For i as integer.

L'explication est même relativement simple. Si vous regardez de plus près le fonctionnement de For Each, vous verrez qu'il ne fonctionne avec les implémentations d'IEnumerable. Mais IEnumerable, c'est compliqué, du moins à l'exécution.

Il faut d'abord récupérer une instance de l'énumérateur, ensuite à chaque boucle, se déplacer à l'élément suivant via une méthode, et ensuite récupérer l'élément en cours dans l'énumérateur.

Deux appels de méthodes à chaque passage, qui elles même peuvent effectuer des tâches supplémentaires de contrôle ... donc une perte de temps conséquente. Par contre, on récupère directement une instance de notre objet de liste.

For i as integer, elle ne fait qu'incrémenter un compteur et vérifier que celui-ci ne dépasse pas la limite fixée. Dans le cas présent, il y a aussi appel au 'seter' de la propriété Item de List, mais ça ne fait plus qu'un appel.

Donc, au vu de ces résultats et de ces quelques explications, je ne saurais que vous conseiller de réfléchir juste un peu plus lors de l'utilisation de For Each, qui se révèle dans certains cas incontournable (Dictionary(of T)), mais le plus souvent inutile. Si vous regardez la MSDN à propos de l'interface IEnumerable, vous verez en détail le fonctionnement et surtout que, ce n'est qu'un exemple, mais l'implémentation ressemble étrangement à un For i as integer lol

Bonne prog Wink

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Vista SP1 et XP SP3 : c'est pour début 2008

clock août 29, 2007 16:50 by author Olivier

C'est officiel, voici le communiqué de Microsoft France à ce sujet :

Le SP1 de Windows Vista sera disponible au premier trimestre 08. Windows Server 2008, bénéficiant des améliorations et des corrections apportées par celui-ci est également positionné en disponibilité sur le 1er trimestre 2008. Son lancement public aura lieu, en France,  à l’occasion des Techdays 2008, du 11 au 13 Février 2008. 

è Le SP1 de Windows Vista n’est pas qu’une collection de correctifs, c’est un ajout de fonctionnalités dédiées à la performance, la fiabilité, au support de nouveaux type de matériels… et la prise en charge de standards émergeant. Windows Vista & Windows Server 2008 ont été construit à partir de la même souche de code. Certains fichiers sont communs entre les deux produits bien que chacun possède des composants spécifiques à leurs utilisations. Par exemple, Windows Media Center n’est disponible que dans Windows Vista, alors que Active Directory ou les services de « Clustering » n’apparaissent que dans Windows Server 2008.  Des exemples de code communs aux 2 OS sont le noyau, les principaux fichiers de l’OS, les couches de communication, de partage de fichier. Au fil des 12 derniers mois, depuis la disponibilité de Windows Vista, ces fichiers commun à Windows Vista et Windows Server 2008 on été continuellement améliorés.

è En raison de ces fichiers communs, tout changement dans le code de Windows Server 2008 résulte en des changements correspondant dans les fichiers de Vista SP1.  Certain de ces changements en améliorent la fiabilité, alors que d’autres peuvent ne concerner que les composants serveurs et ne pas affecter les utilisateurs de Vista. Cependant, pour conserver une souche de code commune pour la mise au point des services à venir et pour rationaliser la supervision et la gestion des SI, les changements doivent être inclus dans les versions communes des fichiers.

è Le fait que Vista et WS2008 aient un patrimoine commun permet de proposer à leurs utilisateurs une des communications les plus rapide [TCP/IP, IPv6, partage de fichier, accès à distance aux applications], une disponibilité globale améliorée [QOS au niveau bande passante, caching connecté/déconnecté, gestion des impressions] et une gestion des système plus efficace [services de déploiement, NAP, Services Pack partagés]

Voilà, il faut juste un peu de patience avant de voir arriver les services pack des deux derniers OS de Microsoft.

Je vous rappelle que Windows Server 2008, Visual Studio 2008 et Sql Server 2008 sont toujours attendus pour le 27 février de cette même année Wink

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Récupérer une liste aléatoire d'enregistrements en SQL

clock août 27, 2007 14:39 by author Olivier

Je cherchais un moyen simple de récupérer aléatoirement un certain nombre d'enregistrements d'une table.

Avec SQL Server, l'astuce est plutôt simple :

SELECT TOP 5 col1, col2, col3, newid() as randomrow FROM matable ORDER BY randomrow

Comme la colonne randomrow contient des valeurs aléatoires et changées à chaque requête, le tri permet d'obtenir un résultat aléatoire. C'est tout con, mais il fallait y penser Wink

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Paint.Net 3.10 est disponible

clock août 27, 2007 10:29 by author Olivier

Logo Paint.Net

Je vous parlais de la sortie de la beta il y a peu (http://blog.odelmotte.fr/post/PaintNet-310-Beta-2.aspx)

 La version finale de la 3.10 est maintenant sortie.

Au menu, pleins de corrections, de petits changement et de petits ajouts de fonctionnalités ... décrouvrez tout ça par vous même :

http://www.getpaint.net/download.html

Bon téléchargement Wink

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Windows Live Mail

clock août 23, 2007 21:19 by author Olivier

J'ai téléchargé Windows Live Mail. Il est disponible depuis un moment en version Beta sur le site live.com.

Clairement, c'est le remplaçant d'Outlook Express. Ca se note d'ailleurs à la fenêtre d'option qui n'a pas encore trop le style Live de chez Microsoft.

Bref. Son utilisation est plutôt agréable et simple. Une bonne chose est le support des comptes Windows Live qui étaient supporté à leurs débuts dans les différentes version d'Outlook.

Outre le support des comptes de type POP, IMAP et donc HTTP, Windows Live Mail comporte aussi un agrégateur de flux RSS, un gestionnaire de contacts, la gestion des groupes de discussion, et s'intègre avec Windows Live Messenger (avec la beta de la 8.5 ça passe sans soucis).

Bref, j'en suis plutôt satisfait, surtout que j'ai crashé mon Outlook comme un grand. Pour un produit en beta, il est même plutôt très stable, pas encore une seule fenêtre d'erreur et la gestion de 4 comptes de messagerie ne semble pas lui poser de soucis particuliers alors que certains sont quand même bien dodus.

Bref, je ne peux que vous conseiller de le télécharger et de l'adopter Wink

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Exchange 2007

clock août 23, 2007 11:26 by author Olivier

Exchange 2007J'ai enfin réussi à installer Exchange 2007.

Le moins qu'on puisse dire, c'est que c'est carrément plus simple que la version 2003. Plus de domain prep ni de forest prep à faire à la main. Tout se déroule en une étape.

Ensuite, la configuration c'est autre chose. J'étais déjà un petit peu habitué à la version 2003, mais là pas mal de choses ont changé. Le temps de reprendre quelques repaires et on peut commencer à faire quelque chose.

Toujours est-il que la configuration s'annonce un peu plus longue que prévue. Même si je peux recevoir des mails, l'envoie me pose encore quelques problèmes. Mais globalement, je suis plutôt satisfait de cette version, qui m'a l'air plus simple à manier que sa grande soeur.

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Exchange 2007 et le 32 bits

clock août 22, 2007 17:41 by author Olivier

Pour tester la bête, j'ai téléchargé la version 2007 sur la MSDN, j'ai même remonté un 2003 server tout propore pour l'occasion.

Seulement voilà, je ne lis pas toujours toutes les indications, surtout pas celles en petit dans les pages de la MSDN. Et comme je teste sur une vieille machine, j'ai eu une bien bonne surprise.

Exchange 2007 n'est compatible que pour les versions 64bits ...

Cependant, tout n'est pas perdu, il semblerait que la SP1 apporte le support des processeurs x86, en tous cas, la beta 2 de ce Service Pack est bien disponible en téléchargement ...

 J'ai du mal à comprendre pourquoi la version 64bits sort avant la 32bits ... enfin bon

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Incorporer des ressources dans une assembly ASP.Net 2.0 quand on travaille VB.Net

clock août 21, 2007 00:14 by author Olivier

ASP.Net 2.0J'ai développé un petit contrôle ce week-end pour afficher des "onglets" dans une page Web. Le seul problème, c'est que je ne voulais pas mélanger le CSS de ce contrôle au reste du site. J'ai donc creusé et j'ai trouvé qu'il était possible d'incorporer des ressources : images, fichiers, ... dans les ressources d'une assembly de contrôles Web. Et je suis tombé sur cette page : http://support.microsoft.com/kb/910445/fr

Le seul problème est que les exemples sont donnés en C#. J'ai essayé de reproduire sans trop de succès pour VB.Net, mais j'ai eu quelques soucis.

Et la solution ... bien qu'un peu étrange, est toute simple.

Les fans de VB, comme moi, utilisent sans doute le Namespace par défaut pour une assembly. Ca évite de devoir remettre un namespace dans chaque fichier. Bref. Monumentale erreur, et j'avoue que je ne saurais expliquer ce comportement.

Toujours est-il qu'en copiant le comportement de C# pour la déclaration des Namespace, le problème est corrigé. Je posterais un exemple concret très prochainement pour mieux illustrer mes propos.

Si quelqu'un a une explication rationnelle à ça, je prend Wink

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Windows Server 2008 Longhorn ... premier contact

clock août 18, 2007 18:15 by author Olivier

Je viens de finir d'installer la beta 2 de Windows Server 2008 ... je sais, oui, mais j'avais gravé la 2 seulement et j'ai plus de DVD vierges Embarassed

Déjà, l'installation sur ma vieille machine, un modeste PIV 1,7Ghz et 1Go de RAM s'est très bien déroulée, et je dois dire qu'elle est même assez rapide. Mais comme c'est un OS de la génération de la même génération que Vista, je trouve ça normal. J'avais été impressionné par ça justement. Mais passons, l'intérêt d'un OS n'est pas sa vitesse d'installation.

Outre un petit soucis d'ordre graphique qui était décalé et de carte réseau non reconnue, tout fonctionne correctement.

La première chose, quand on lance le système pour la première fois, c'est que le mot de passe administratOr (hé oui, pas de beta en français) est défini à ce moment là. Vient ensuite l'écran de configuration "standard" du serveur. Les petites configuration j'entend : date, nom de la machine, ... Ah oui tiens, le nom de la machine n'est pas définit comme avant, pendant l'installation, ce qui va nous coûter un petit reboot Frown

Le menu de multi-boot est bien entendu le même qu'avec Vista, normal ...

Bon, revenons à notre écran de configuration : une fois que vous avez procédé à la configuration des petites choses, vous pouvez ajouter des rôles au serveur : Active Directory, Serveurs DHCP et DNS, Serveur Web IIS et autres.

Je me contenterais d'installer les fonctionnalités Web, pour le reste je verrais plus tard. Vous aurez donc de mes nouvelles au sujet de IIS 7 avec Windows Server 2008 assez régulièrement je pense.

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Adobe : Vers une possible suite bureautique ... quel intérêt ?

clock août 16, 2007 20:53 by author Olivier

http://www.zdnet.fr/actualites/informatique/0,39040745,39372191,00.htm?xtor=RSS-1

Je suis tombé sur cette news en regardant mes RSS.

 Je dois dire que je suis un peu étonné.

J'ai cherché quelque statistiques d'utilisation des suites bureautiques sur le marché, mais en vain, si quelqu'un a ça sous le coude, qu'il n'hésite pas.

Mais là où je suis étonné, c'est qu'un nouvel acteur se lance sur ce marché, déjà plus que bien dominé par deux suites majeures : Microsoft Office et OpenOffice.org. Je pense ne pas trop me tromper en affirmant que ces deux monstres occupent plus de 90% du marché. Donc déjà, difficile d'arriver sur un segment déjà bien conquis.

Ce qui m'étonne le plus, c'est aussi ce démarrage si tardif. Certes, AIR est une technologie encore jeune, mais quand même. Quand on voit le retard d'OpenOffice.org sur Office (avis personnel, surtout depuis la sortie d'Office 2007) en termes de fonctionnalités offertes et d'ergonomie, je me pose des questions sur les chances d'un éventuel projet d'Adobe.

D'une part, Microsoft, qui travaille sur Office depuis plus de 20 ans (sur Word par exemple), et a donc une expérience plus qu'énorme dans le domaine, connait les attentes des utilisateurs et surtout tout le monde connaît Word où Excel. OpenOffice.org, quant à lui, fait une percée, surtout grâce à son prix, gratuit. Un autre atout, le fait que cette suite soit OpenSource. Les contributeurs sont très nombreux.

Les deux suites majeures du marchées sont donc bien installées, les produits sont complets.

La question que je me pose, en fait la chose que je ne comprends pas : comment Adobe va-t-il réussir à percer et si il y arrive en combien de temps ? Un tel projet est énorme, couteux.

Quand on voit Google et ses outils de traitement de text et son tableur en ligne, je ne connais pas leur part de marché, mais elle doit être très faible.

Je ne vois pas l'utilité d'un tel projet.

Qu'en pensez vous ?

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


P'tit coup de gueule

clock août 16, 2007 00:32 by author Olivier

Comme beaucoup de monde, j'ai un compte GMail. J'avoue que je ne m'en sers pas beaucoup, ou du moins ces derniers mois.

Alors j'ai plein de messages qui s'accumulent, beaucoup, alors je décide de faire le ménage et de supprimer tout ce qui ne m'est plus utile. J'en arrive donc au moment de vider la corbeille. Une fois vide, ce message apparaît.

Vous ne disposez d'aucune conversation dans la corbeille. Il est vrai que supprimer des conversations lorsqu'on dispose de plus de 2 000 Mo d'espace de stockage est inutile !

C'est vrai que 2Go sur une boite mail c'est bien. Mais ce message, qui incite à l'abus de l'espace des boites mail est, je trouve, assez irresponsable de la part de Google. Certes, on a 2Go, mais est-ce une raison pour les utiliser à fond, est-ce, question de bon sens, évident de retrouver un message dans 2Go de mail ? Ne serait-ce pas une incitation à l'envoie abusif de ces mails sans intérêts contenant des power-point, que personnellement je prends et je jette directement.

Tout ça pour dire, que de la part d’une entreprise comme Google, géant du Web, sensé montrer l’exemple, me laisse un peu sur le cul. C’est sur que c’est comme ça que les habitudes des utilisateurs « lambda » vont s’améliorer. Ce n’est pas comme ça que ça marche l’éducation.

Messieurs de chez Google, éduquez vos utilisateur et montrez donc l’exemple au lieu de partir sur 20 000 projets différents, celui-ci devrait être votre principal Wink

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Paint.Net 3.10 Beta 2

clock août 13, 2007 21:18 by author Olivier

Toujous aussi actif, le projet Paint.Net prépare la version 3.10 dont la Beta 2 est d'hors et déjà en téléchargement

Voici leur site, n'hésitez pas à en user et en abuser : http://www.getpaint.net/index.html

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Silverlight

clock août 13, 2007 20:53 by author Olivier

Juste un petit mot pour vous dire que la RC (Release Candidate) de Silverlight est disponible : http://www.microsoft.com/silverlight/install.aspx

Pour rappel, silverlight est un plug-in, disponible pour l'instant pour IE, Safari et Firefox sous Windows et Mac. Il permet de développer des interfaces Web directement en .Net. La richesse des applications Web ainsi obtenues est plus qu'impressionnante.

 A noter aussi, la version Linux, Moonlight est en préparation et c'est le projet mono qui est à l'origine de ce portage pour la plate-forme Linux : http://www.mono-project.com/Moonlight

Vous retrouverez plus d'informations sur http://silverlight.net/

A noter qu'un site http://silverlight.fr/ est en cours de préparation

 

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Plusieurs Sites Web avec IIS sous XP

clock août 4, 2007 00:42 by author Olivier

Il peut être intéressant d'avoir plusieurs sites Web plutot qu'un seul avec des répertoires virtuels pour des developpeurs. Si vous connaissez un peu XP, vous savez que IIS 5.1 ne peut en gérer qu'un, et tout le monde n'a pas un Windows 2003 ou un Vista Ultimate sous la main.

Rassurez vous, il est possible d'en avoir plusieurs, même sous XP :http://andreineculau.wordpress.com/2006/01/23/multiple-websites-using-iis-51-on-windows-xp/

 Voilà Wink

 

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


odelmotte.fr

Recherche

Catégories

Calendrier

<<  février 2012  >>
dilumamejevesa
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

Archives

Tags


Sign in