• Vous êtes ici :
  • Accueil
  • >
  • Programmation

Programmation



Pierre Paul Lefebvre
Pierre Paul Lefebvre
1 mars 10
  • 2
  • 0

Nouveau DRM pour Ubisoft

Ubisoft a présenté il y a environ un mois un nouveau système DRM. En résumé, un DRM(Digital Rights Management) est un système qui permet de vérifier que le jeu ou l'application ne sont pas une copie. Ces systèmes permettent en théorie de réduire le taux de piratage, mais en pratique, ils amènent beaucoup de problèmes chez les clients.

Certains DRM étaient tellement restrictifs que beaucoup de clients qui avaient acheté des jeux légalement étant incapable de jouer avec leurs jeux nouvellement achetés. Le système avait des failles ou n'avait pas été testé assidument sur tous les systèmes d'exploitation. Un des systèmes qui avait été pointé particulièrement du doigt était Starforce parce qu'il simulait un lecteur CD-ROM pour faire ses tests de vérifications. Le lecteur CD-ROM virtuel est venu entrer en conflit avec certains lecteurs CD-ROM bien réel et rendait ces lecteurs complètement inutilisables. Le gamer devait donc tout simplement réinstaller Windows afin de pouvoir utiliser son lecteur. Le système a été piraté assez rapidement, au point tel que certaines personnes qui avaient acheté le jeu le pirataient afin d'éviter des problèmes.

Le nouveau système de Ubisoft a décidé de s'y prendre d'une autre façon. Plutôt que d'installer des trucs bizarres et qui vont peut-être entrer en conflit avec certains ordinateurs, ils ont décidé d'obliger l'utilisateur d'avoir une connexion sur internet s'il voulait jouer. Le jeu utilisant ce DRM ferait des vérifications périodiquement pendant que vous jouez (dans le jargon, on appelle ça Phoning home). Ubisoft a poussé la chose un peu plus loin en gardant sur leur serveur votre partie enregistrée.

Voici les principaux points négatifs soulevés :

  • Vous devez toujours être en ligne... en d'autres mots, si votre connexion internet flanche, vous perdez votre progression dans le jeu.
    L'implémentation du jeu ici est cruciale. Les développeurs pourraient forcer le jeu à se fermer et vous perdriez votre progression, ou ils pourraient simplement vous donner un avertissement en attendant que votre connexion internet revienne. Vous pourriez perdre votre connexion à cause de votre ISP (Bell, Vidéotron, etc.) à cause de votre rooter ou simplement à cause d'un câble qui s'est fait manger par votre chien.
  • Il deviendrait impossible de revendre votre jeu. Le jeu serait associé à votre compte Ubisoft, vous seriez donc obligé de vendre votre compte Ubisoft aussi, ce qui est impossible selon la condition d'utilisation (TOS) des comptes Ubisoft.
  • Si les serveurs d'Ubisoft sont fermés pour réparation ou pour une mise à niveau, vous serez dans l'impossibilité de jouer, parce que les parties enregistrées sont sur leur serveur et l'authentification est impossible à faire.
  • Possiblité de jouer sans CD/DVD, qui était le DRM par défaut de plusieurs jeux.

Les bons côtés maintenant :

  • Si tout fonctionne, on pourrait rêver à une diminution du prix des jeux parce qu'il y aurait moins de piratage, mais j'imagine que le prix va rester le même et les profits seront redistribués sur d'autres franchises et le développement de nouveaux jeux.
  • Possiblité de jouer chez un ami avec votre personnage sans avoir à amené votre partie enregistrée. Le fait d'avoir votre partie sur leurs serveurs vous permet de jouer de n'importe ou, pourvu que le jeu soit installé. En théorie c'est une bonne idée, mais en pratique, si vous allez chez ami, c'est pas pour qu'il vous regarde jouer et si vous le faites, vous amenez votre ordinateur. Pourtant, Ubisoft met l'emphase sur ce "très" bon côté.
  • Possiblité d'avoir des amis et de parler avec eux pendant que vous jouer, un peu comme fait Steam ou Battle.net entre autres.

En en parlant avec Guillaume, nous avons trouvé des bons côtés qui malheureusement, n'ont pas été mentionnés par Ubisoft pour l'instant :

  • Des marchants légendaires se promenant de joueur en joueur et vendant les items achetés/vendus par les autres joueurs. Nous aurions de vrais marchands itinérants!
  • Des troupes ennemies légendaires se promenant aussi de joueur en joueur. Présentement les ennemis sont gérés au hasard ou reviennent toutes les X minutes.
  • Rendre possible de switcher entre le jeu single player et multiplayer plus facilement et avec plus de transparence. Je vois particulièrement l'intérêt ici, vous êtes en train de jouer avec vos amis et tout à coup votre petit frère commence à télécharger un film en HD sur sa Xbox360, il serait possible de tomber en mode single player et continuer à jouer où vous étiez rendu. Le système d'authentification et d'enregistrement de partie demande beaucoup moins de bande passante qu'un jeu complètement en ligne.
  • Avoir les bons cotés des MMO sans avoir les mauvais cotés : Système de vente aux enchères sans les serveurs trop lents par exemple.
  • Avoir des émissaires ou des factions qui se promènent entre les joueurs, selon les missions accomplies et les choix faits par les joueurs, le monde diplomatique et ou physique du jeu pourrait changer. Par exemple, 60% des gens décident d'aider le scientifique fou et une ville complète disparaît de la carte pour tous les joueurs. Une ville se fait conquérir par le royaume ennemi parce que la majorité des joueurs ont décidé d'aider le royaume.

Beaucoup de bonnes (et mauvaises!) idées peuvent ressortir avec un système qui oblige le joueur à avoir une connexion internet constante. Les implémentations de ces exemples se font au niveau du jeu et non pas au niveau du DRM, mais si le DRM oblige l'utilisateur à être connecté, les implémentations deviennent beaucoup plus faciles à réaliser. Personnellement, j'espère que le système fonctionnera et qu'il profitera des ouvertures qu'il apporte, mais j'ai bien peur que beaucoup de pirates s'amuseront à faire planter les serveurs de Ubisoft pour les obliger à le retirer. Si les serveurs ne tiennent pas le coup devant les pirates, les gens vont commencer à poursuivre Ubisoft parce que les biens qu'ils ont achetés sont inutilisables.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Pierre Paul Lefebvre
Pierre Paul Lefebvre
28 janvier 10
  • 2
  • 0

Des petites modifications qui ont beaucoup d'impact.

Parfois les gens ne réalisent pas qu'un petit changement, aussi stupide qu'il semble être, peut devenir très compliqué et peut amener des bogues avec des conséquences graves.

Le groupe Crédit Suisse a récemment fait un petit changement à leur interface leur permettant de faire des transferts d'action en lot.

La petite modification était d'ajouter une flèche en haut et en bas, pour pouvoir modifier certains paramètres d'un lot.

Une fois les flèches pesées, une instruction était envoyée pour annuler le dernier lot et envoyer le nouveau avec les nouvelles instructions.

Le programmeur n'avait pas pensé que l'utilisateur double-cliquerait sur les flèches plutôt que de faire de simples cliques. Le programme envoyait donc les instructions en double et parfois les serveurs recevaient des demandes d'annulation de lot pour des lots qui n'étaient même pas encore arrivés.

Le groupe Crédit Suisse a écopé d'une amende de 150 000$ par le NYSE (New York Stock Exchange) pour ne pas avoir supervisé adéquatement le développement de leur application.

C'est un double-clique qui coute cher...

Source : Ars Technica

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Marie-Andrée Lacroix
Marie-Andrée Lacroix
22 décembre 09
  • 4
  • 0

Des concepts de validation de formulaires bien pensés

Je n'ai pas pu m'empêcher de bloguer sur ce sujet qui me tient tant à coeur. La validation, c'est très important! Voici quelques exemples qui, à mon avis, sont efficaces et vraiment bien faits.


https://secure.livestream.com/myaccount/login
Il y a un indicateur (assez évident merci) qui valide au fur et à mesure. Notez que le bouton submit est innactif tant et aussi longtemps que les champs ne sont pas remplis correctement. Winner!


http://www.bigcartel.com/signup/diamond
Les erreurs sont affichées en rose en haut. Les labels erronés deviennent rose. L'essentiel quoi.


http://gowalla.com/users/new
Look original! Les champs erronés et valides sont différenciés de façon clair.


http://www.launchmind.com/signup/
Intéressant. Étant donné que le formulaire est long, le message d'erreur s'affiche en bas, en-dessous du bouton « create account ». J'aime l'idée.


http://www.popscreen.com/join
On peut facilement différencier le champs valide et celui qui ne l'est pas. De plus, on a une petite note qui donne de l'information supplémentaire sur le champs actif. Bien pensé.


http://thumbslap.com/signup/
Classique, mais assez évident.


https://wwws.mint.com/login.event?task=S
J'aime le fait que la validation se fait au fur et à mesure. Il est facile de savoir ce qui est bon de ce qui ne l'est pas. Thumbs up!


https://www.squarespace.com/process/CreateSquarespaceAccount
Un formulaire horizontal... c'est la première fois que j'en vois un. Pas mauvais comme validation.


https://secure.wufoo.com/signup/1/
Classique, mais original en même temps. Vive l'évidence!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Marie-Andrée Lacroix
Marie-Andrée Lacroix
21 décembre 09
  • 5
  • 0

Créer une newsletter : respectez les règles!

Une newsletter est destinée à plusieurs boites de messagerie différentes (hotmail, yahoo, gmail, outlook, thunderbird...) et chacune réagit différemment. La simplicité et l'accessibilité est de mise! Voici quelques règles à suivre pour maximiser la compatibilité:

- Ne pas excéder 600 pixels de large

- Ne pas dépasser 30 Ko

- Insérer le code à l'intérieur de la balise BODY (oublier le reste)

- Intégrer complètement en tableaux (aucun div!)

- Déclarer le CSS à l'interieur du code (CSS inline)

- Lier toutes les images (et autres médias) en liens absolus

- Utiliser les entités HTML

- Valider le code (Validator du W3C)

- Supprimer les espaces inutiles et les commentaires


Conseils éclairs

Il semble y avoir des problèmes de compatibilité avec la couleur de background déclaré dans le HTML, BODY ou un DIV. Je vous recommande donc de créer un tableau 100% avec un BGCOLOR.

Il semble aussi avoir des troubles avec les BORDER dans hotmail. Vous pouvez toujours créer des bordures artificielles à l'aide de TR et TD en spécifiant une couleur de fond et un width ou un height.

Privilégiez les IMG au lieu des BACKGROUND-IMAGE. Vous constaterez que hotmail et outlook sont capricieux sur ce point.

Quelques liens très utiles sur le sujet :
http://www.email-standards.org/
http://www.campaignmonitor.com/css/
http://www.xavierfrenette.com/articles/css-support-in-webmail/

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Serge Perreault
Serge Perreault
24 novembre 09
  • 3
  • 0

Firebug Lite VS. les bugs d'IE: la fin d'un cauchemar ?

Tout intégrateur néophyte, a vu un jour ou l'autre son site internet, fraichement intégré sous Firefox, être complètement trucidé lorsqu'il testa ce dernier sous Internet Explorer 6-7 voire même sous la version 8. Les interprétations parfois douteuses d'IE, notamment lorsque l'on parle de float, de bordure, de background-image, de min ou max-width/height  ou du comportement des images .png, peuvent amener l'intégrateur au bord du désespoir absolu.

Parfois sous IE, les solutions rationnelles et logiques ne fonctionnent pas alors que les scénarios les plus loufoques donnent les résultats voulus. De plus, les outils fournis par Microsoft pour faire le "debugage" paraissent incomplet et peu efficace (exemple IE Developer Toolbar). Dans IE Tester, la DebugBar, renseigne certes sur la nature de la structure CSS, mais dû à son positionnement fixe à gauche de la fenêtre, elle vient parfois réduire le contenu de la fenêtre à un point où la page s'affiche déjà de manière tout chaotique (surtout sur les écrans à faible résolution).

Or, lors du debug les utilisateurs de Firefox ont pour la plupart, adoptés un outil fort intéressant appellé Firebug. Bonne nouvelle, Firebug est désormais disponible en mode partiel sous IE, Opera, Safari.On parle ici de Firebug Lite.

Un outil qui pourra mettre fin à une incessante période de traumatisme psychologique chez les intégrateurs web de ce monde?

On est loin du compte...


Qu'est-ce que Firebug Lite ?

Firebug Lite est le petit frère de l'extension légendaire que l'on retrouve sous Firefox, en version <script> Javascript. Firebug Lite se décline en trois modes d'utilisation distincts soit :

  • en insérant une ligne de code dans la page html, pour une utilisation en ligne, activer par la touche F12;
  • en téléchargement, pour intégrer les fichiers .js à votre projet pour une utilisation hors-ligne;
  • en "bookmarklet" ou pour les puristes de la loi 101, en applisignet, qui consite à faire d'un lien favoris dans votre barre de signets, un lien vers une application javascript qui s'ouvre à l'intérieur du site actuellement consulté ( voir l'image A )


Image A - Firebug Lite en bookmarklet


Les comparaisons entre Firebug et Firebug Lite?

Il ne faut pas rêver en couleurs 32 bits, Firebug Lite est une version fort minimaliste de l'authentique Firebug. Pour commencer, les similitudes sont:

  • dans la possibilité d'inspecter les différentes sections du siteavec l'outil INSPECT, qui permet de voir les codes HTML, CSS, Script, DOM et XHR. 
  • dans la présence de la CONSOLE Firebug où les utilisateurs expérimentés peuvent questionner directement le site. Voir la liste complète des commandes sur
    http://getfirebug.com/console.html
    .
  • Le positionnement de la fenêtre de Firebug Lite, dans le bas de l'écran est identique à Firebug, n'affectant pas la mise en forme du site. Il est aussi possible d'ouvrir Firebug Lite dans une fenêtre indépendante pour pouvoir voir pleinement les renseignements affichés.

Comme vous le devinez déjà, il existe plusieurs différences majeures entre les deux versions de Firebug :

  • Il est impossible d'éditer les fichiers HTML, CSS, etc, en direct de la page. Les informations affichées par Firebug Lite sont statique. La grande différence avec Firebug, c'est justement qu'il était possible de faire des modifications à même la page et de voir les résultats en direct. Firebug Lite ne donne malheureusement pas cette latitude, qui faisait toute la force de son grand frère.
  • L'onglet excessivement pratique RÉSEAU retrouvé dans Firebug est absent dans Firebug Lite.
  • Il y a aussi un absent de taille, surtout pour les accrocs du respect "pixelistique" du design / intégration, soit l'onglet Pixel Perfect.
  • Sous Firefox, lorsque l'on inspectait un lien avec Firebug, ce-dernier était temporairement désactivé tant que l'on était en mode INSPECT, diffusant ainsi les informations désirés. Or, sous IE, lorsque l'on fait INSPECT sur un lien, on active ce lien, on quitte la page actuelle et Firebug se ferme, vû qu'il était ouvert comme un script javascript à même la page active. Ce bug se décline sous tous les modes d'utilisation de Firebug Lite.


Firebug Lite, une faible lumière dans la grande obscurité interprétative d'IE...

Pour ceux qui voyaient en Firebug Lite, une solution à biens des migraines constamment renouvelées à chaque debug de fin de projet, je n'ai aucun autre choix que d'être submergé de compassion à votre égard. J'ai aussi passé par ce stade de joie/déception en apprenant l'existence de cet outil. Je m'attendais à un jumeau identique, ou quelques peu diminué du "genuine" Firebug.

Mais l'appellation Lite aurait dû me mettre sérieusement la puce à l'oreille... Somme toute, j'ai adopté avec enthousiasme cette petite application, mais je dois m'avouer un peu déçu par ses limites, qui s'approchent, outre la console, des fonctions offertes par le debugbar d'IE Tester (sans les bugs d'affichage de ce dernier) ou de la IE Developer Toolbar d'IE.

Mais garder espoir, distingué(e)s collègues, Firebug Lite est en amélioration constante et nous verrons fort probablement de nouvelles versions se rapprocher de notre fidèle compagnon qu'est devenu Firebug.

Les sources utilisés pour écrire cet article sont :
http://remysharp.com/2007/03/13/firebug-in-ie-for-any-web-site/
http://getfirebug.com/lite/ie.html
http://blog.strictly-software.com/2009/02/using-firebug-lite-for-debugging.html
http://blog.jaysalvat.com/articles/firebug-lite-le-firebug-cross-browser-sans-extension.php

Bon debug et longue vie à Firebug Lite.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Marie-Andrée lacroix
Marie-Andrée lacroix
19 novembre 09
  • 8
  • 0

Une fois pour toute : Mythes et réalités de la balise META DESCRIPTION et META KEYWORDS

Il m'arrive encore de croiser des clients qui me demandent d'ajouter des meta tags dans leur site Web pour améliorer leur référencement. J'aurais pensé qu'en 2009 tout le monde saurait à quoi servent réellement ces balises. Mais bon...

Cet article s'adresse donc à tous les clients néophytes ou tous les novices dans ce domaine.

La balise meta description

La balise meta description, qui consiste à décrire le contenu de la page, est prise en compte par Google mais uniquement pour l'affichage des résultats. Cette balise n'a aucun impact sur le positionnement. Je répète, cette balise n'a aucun impact sur le positionnement. Il est donc inutile de penser qu'on peut améliorer le référencement en ajoutant cette balise dans les sites web.

Objectif premier : donner envie aux internautes de cliquer !

Une bonne balise meta description contribue à augmenter le taux de clic. Les moteurs en affichent environ 170 caractères. Cette balise doit être explicite et incitative à cliquer sur le lien. Il est important de noter que cette balise doit être obligatoirement différente sur chacune des pages puisqu'elle doit représenter le contenu de la page sur laquelle elle se trouve. Il est inutile d'y insérer une panoplie de mots clés. Cela changeras en rien le référencement.



Si votre site ne contient aucune balise meta description, Google se chargera d'en créer une pour vous. Il prendra, dans la balise body, le texte le plus rapproché ... qui n'est pas nécessairement le plus « marketing ».

Je vous invite donc à rédiger des balises meta description au minimum sur vos pages d'accueil si vous n'avez pas le temps d'en faire des personnalisée sur chacunes de vos pages.

La balise meta keywords

La balise meta keywords, qui consiste à lister des mots clés, est complètement ignoré par Google.  Tout le monde ensemble : Cette balise est complètement inutile pour le référencement sur Google. Toutefois, d'après John Mueller, elle serait pris en compte par d'autres moteurs de recherche et/ou annuaires. Il n'est donc pas mauvais d'en avoir une personnalisée sur chaque page. Si j'étais vous, je ne passerais pas trop de temps là-dessus.

En conclusion

Si un « spécialiste » du référencement vous conseil fortement d'ajouter des meta keywords pour améliorer votre référencement sur Google, sauvez-vous en courant! Ou encore, si vous tombez sur un article qui promouvoit les bienfaits de ces balises pour le référencement, vérifiez la date de celui-ci :P

Pour plus d'information, consultez le Google Webmaster Central Blog.


  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Pierre Paul Lefebvre
Pierre Paul Lefebvre
27 juillet 09
  • 1
  • 0

Python

Je me suis lancé récemment dans le Python, sans trop d'attente, mais avec un projet en tête. Étant donné que le projet était un projet personnel, me lancer dans un nouveau langage semblait être une bonne idée afin d'en apprendre un peu plus. J'ai été agréablement surpris de Python.

La page web de Python définit le langage comme : "dynamic object-oriented programming language" que je traduisais intérieurement à "langage de programmation hyper compliqué pour pas grand-chose », mais étant donné la popularité du langage, je ne pouvais pas au moins essayer. À mon grand plaisir, le python est très, très (encore une fois) très loin d'être compliqué. J'ai eu l'impression de retourner au primaire lorsque j'apprenais à faire des phrases. Autre chose qui m'a surpris, l'indentation. Elle est obligatoire et elle permet la compilation du programme. Heureusement, une fois le plug-in installé dans Éclipse, tout était bien géré. Le fait d'obliger l'indentation, oblige en quelque sorte au programme de rester propre.

Je n'ai pas eu le temps de m'y tremper assez pour pouvoir dire que c'est un bon ou un mauvais langage, mais je suis persuadé que pour ceux qui commencent la programmation, c'est un très bon point de départ. Énormément de projets open source sont faits en python ce qui permet de télécharger le code et de regarder la partie qui vous intéresse. Python n'est pas jeune, 15 ans environ, mais la version 3.* a seulement un an et la documentation n'est pas aussi rependue que je l'aurais voulu. Par contre pour la version 2.*, la documentation est omniprésente sur internet.

Finalement, pour ceux que ça intéresse, je vous invite à aller lire le guide du débutant sur Python.org (http://wiki.python.org/moin/BeginnersGuide) qui offre un guide pour ceux qui commencent la programmation et ceux qui sont déjà à l'aise avec des principes de programmation orientée objet. Dernier petit tuto que je trouve très bien : Ars nous montre comment construire un éditeur de blogue sous Ubuntu/Gnome avec python.

Dernière note importante, si vous avez des enfants autour de vous, il est important de ne pas se tromper entre python.com et python.org ... Bonne lecture!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Pierre Paul Lefebvre
Pierre Paul Lefebvre
21 mai 09
  • 1
  • 0

MXHR

Un des moyens connus et rependus pour accélérer la vitesse d'un site web est de réduire le nombre d'appels (request) HTTP. Plusieurs méthodes sont disponibles, les sprites css, les images maps, une gestion efficace de la cache coté client. La gestion de la cache côté serveur est très importante aussi, mais n'a aucun rapport avec les appels HTTP donc je réserve ça pour un autre article!

Je vais résumer rapidement les méthodes mentionnées afin de ne pas perdre personne sur des termes qui ne sont peut-être pas les mêmes pour tout le monde :

Sprites CSS : réunir plusieurs images en une seule et, via css, attribuer à un élément cette nouvelle image à un background-image. Ensuite, cibler la partie de l'image demandée avec background-position. Je vous invite à voir JQueryUI, dans le bas de la page, pour voir les icônes réunit en une seule image (icons.png) et chaque <span> qui cible l'icône demandée.

Image maps : Une seule image contient plusieurs zones sensibles permettant de faire, par exemple, des liens différents.

Cache coté client : un code HTTP est renvoyé sur chaque ressource demandée. Le fameux 404 par exemple veut dire que la ressource demandée n'existe pas. Dans cas précis, le code 304 devrait être renvoyé pour signaler que le fichier n'a pas été modifié.

Une nouvelle méthode qui vient d'atteindre le stade alpha est le MXHR, qui permet de grouper plusieurs fichiers et de les "dégrouper " du côté client. Similaire si vous voulez à la compression gzip on-the-fly mais comprenant plusieurs fichiers. Le MXHR, qui a été fait par l'équipe de Digg, ne supporte pas encore la cache, mais c'est une feature qui est dans les priorités. Une démo a été mise en place pour montrer la différence entre une partie de page normale et une partie de page en stream. Je répète encore une fois que la librairie est en stade alpha et que les performances seront améliorées sur certains navigateurs(Internet Explorer par exemple est dans la mire de feu). Sur Firefox 3.0.1, j'ai une amélioration d'environ 550%.

Cette technique sera particulièrement utile pour les images qui ne peuvent être transformées en css sprites ou en images map, pour les conditions css qui ne sont pas toutes dans le même fichier ou encore pour des zones complètes de page web qui n'ont pas besoin d'être chargées dans la première seconde (des divs qui s'affichent au clic d'un bouton par exemple). J'ai hâte de voir comment va se dérouler le développement de cette technique!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
7 mai 09
  • 4
  • 0

Wordwrap pour Eclipse

Êtes-vous programmeur? Non? Ne lisez pas ce billet!

Voilà déjà un moment que je cherchais la façon dans Eclipse de faire "wrapper" une ligne trop longue... N'étant pas une fonctionnalité "built-in" de l'éditeur, j'avais alors abandonné...

Ce soir, c'était important que j'arrive à trouver une solution et j'ai réussi!

Il suffit d'un plugin Eclipse fait en 2006, pas parfait mais combien pratique!

http://ahtik.com/blog/2006/06/18/first-alpha-of-eclipse-word-wrap-released/

Update site à partir d'Eclipse : http://ahtik.com/eclipse-update/

Bon code!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Pierre Paul Lefebvre
Pierre Paul Lefebvre
10 avril 09
  • 50
  • 0

Des dessins de geek

Je suis tombé sur un beau petit site qui montre visuellement l'efficacité des algorithmes de tris les plus connus/populaires dans différentes circonstances. On peut voir que certaines techniques sont vraiment plus rapides dans certains cas tandis que dans d'autres ils sont vraiment plus lentes. Le site est fait spécifiquement pour java et fournis des exemples de code pour chacun des types d'algorithmes en java, mais c'est un bon exemple pour n'importe quel langage.

Il faut cependant prendre compte que les fonctions de tris directement implantées dans le langage de votre choix seront peut-être plus rapides que notre fonction écrite à la main, mais je suis certain que dans certains cas ça vaut la peine d'au moins faire les tests.

Happy sorting!
Site : Sorting-Algorithms.com

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Luc Plamondon
Luc Plamondon
7 avril 09
  • 2
  • 0

Profilage du PHP

Oui, on peut profiler du PHP! Par profilage (profiling), j'entends ici le dépistage des fonctions dans lesquelles un script PHP perd trop de temps. Récemment, j'ai pu augmenter de 100 fois la vitesse d'un script après avoir optimisé LA boucle responsable de 99 % du temps d'exécution.

Comment obtient-on ces précieuses informations? En combinant Eclipse PDT, Xdebug et Kcachegrind! Je l'avoue, la configuration est laborieuse. En fait, Eclipse n'est pas nécessaire, mais si vous réussissez à lancer vos scripts à partir de la vue de débogage d'Eclipse vous aurez en prime une interface graphique pour déboguer vos scripts, avec points d'arrêt (breakpoints), inspecteur de variables et tout.

Mettez ensuite à 1 la variable xdebug.profiler_enable dans votre php.ini et l'exécution de votre script produira une trace cachegrind.out. La beauté de la chose, c'est qu'il s'agit de tout ce dont a besoin Kcachegrind pour faire son travail (ou WinCacheGrind sur Windows, ou encore MacCallGrind sur Mac).

Le résultat vaut-il le temps de configuration qui est nécessaire? Oui et non. Une analyse du code par un programmeur averti suffira à repousser pendant longtemps la nécessité d'installer un profileur. Mais si vous en êtes rendu à afficher le temps d'exécution à plus de dix endroits dans le code parce que vous ne trouvez pas, le profileur vous sera d'un grand secours.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Sophie
Sophie
12 mars 09
  • 4
  • 1

CSS conditionnel

En tant que "bon" intégrateur nous avons à gérer l'affichage pour tous les types de navigateur. Jusque la nous avions toujours la possibilité d'utiliser les commentaires conditionnels IE pour lesquels Microsoft assure qu'ils seront toujours utilisés.... Mais Microsoft et confiance ne rime pas très bien ensemble.
Nous avions aussi la possibilité d'utiliser le javascript ou php pour loader tel ou tel css.

Voici un petit programme qui va peut etre en aider plus d'un. Conditional-CSS et un fichier php qui sera loader en début de page. Il contient les noms des fichiers css à mettre en ligne et permet d'y intégrer des conditions.
Les conditions sont donc directement inclus dans le css :

div.box {  
    width400px;  
    [if IE 5] width: 600px;  
    padding: 0 100px;


ou encore :
a.button_active, a.button_unactive {  
  displayinline-block;  
  [if lte Gecko 1.8] display-moz-inline-stack;  
  [if lte Konq 3.1] float: left;  
  height30px;  
  [if IE 5.0] margin-top: -1px;
  text-decorationnone;  
  outlinenone;  
  [if IE] text-decorationexpression(hideFocus='true');  

le programme permet d'utiliser php mais aussi c# ou c++. Une fois que vous avez un fichier type il vous suffit d'yajouter les différents css à loader vous n'avez donc pas besoin de générer un fichier pour chaque projet, vous pouvez partir du fichier type.

Le script permet de faire des import css conditionnels, de créer des groupes et d'affecter des règles css à un groupe :
[if cssA] ul.li { }

voici la liste des navguateurs supportés :
  • IE - Internet Explorer
  • Gecko - Gecko based browsers (Firefox, Camino etc)
  • Webkit - Webkit based browsers (Safari, Shiira etc)
  • 'SafMob' - Mobile Safari (iPhone / iPod Touch)
  • Opera - Opera's browser
  • IEMac - Internet Explorer for the Mac
  • Konq - Konqueror
  • IEmob - IE mobile
  • PSP - Playstation Portable
  • NetF - Net Front

Un nouveau moyen d'utiliser un seul fichier css plutot que un par browser. Et cela permettra sans doute de facilité les ajustement nécessaires à chacun.

On pourrait d'ailleur envisager d'ajouter des conditions de résolution permettant de gérer très facilement les ecran 800*600.

Donnez-nous vos commentaires si vous essayer cette methode.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Pierre Paul Lefebvre
Pierre Paul Lefebvre
5 mars 09
  • 1
  • 0

Coup de foudre

Je suis recemment tombé amoureux de JQuery, un framework Javascript/CSS. Jamais auparavant je n'ai eu tant de plaisir à faire une interface web, l'animer et faire mes request Ajax. La documentation est bonne, facile à chercher et JQuery propose aussi une libraire qu'il appelle JQueryUI.

Cette dernière permet d'intégrer dans une page web, facilement, des tabs, des fenêtres de dialogue, des progress bars, la possibilité de faire du redimensionnement d'élément (draggable), des accordéons et j'en passe.

Si vous avez quelques minutes/heures avant de vous coucher, profitez-en pour l'essayer! Thumbs up pour JQuery et JQueryUI!

Si vous avez encore deux secondes de plus pour aller JQuery Robot. Il y a beaucoup de place à l'amélioration, mais les débuts sont prometteurs.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Hugues Beaumont
Hugues Beaumont
26 février 09
  • 2
  • 0

Logiciel libre ou sur-mesure ?

Ce n'est pas nouveau en informatique, les flamewars et les engueulades ont toujours été le lot quotidien de l'informaticien. "Windows c'est de la merde! Linux FTW!", "Mac c'est ben mieux que PC" ou encore "IE sucks. Vive Firefox !", ça vous dit quelque chose ?

Une controverse, un peu moins en spotlight celle-là, concerne le développement des sites et d'applications web: qu'est-ce qui est le plus intéressant pour un client, une application basée sur des logiciels GPL ou une application sur-mesure ?

Jusqu'à tout récemment, j'étais d'avis que l'option GPL menait invariablement à de la cochonnerie. Des sites trop compliqués et mal adapté au client, plein de trous de sécurité, difficilement extensible... De l'autre côté, les détracteurs du sur-mesure ont des arguments très défendables : coût de sortie plus élevé car absence de communauté pour maintenir le code, plein de trous de sécurité car pas autant testé...

Une discussion franche hier midi avec une personne influente du milieu que je respecte beaucoup m'a cependant fait adoucir ma position. Ma curiosité a été piquée et j'ai décidé d'installer les dernières versions de Drupal, WordPress et Magento afin de voir où ces projets en étaient rendu. Je dois dire que j'ai été très impressionné par les fonctionnalités offertes par ces logiciels, et je vois très bien comment ils pourraient constituer une solution avantageuse pour certains types de clients. Au lieu de partir sur de longues explications ici, je vous invite à lire cet excellent billet de Nicolas Roberge, qui résume parfaitement ma (nouvelle) vision sur la question. Je résumerais en disant simplement qu'il s'agit de déterminer ce qui est le plus rentable pour chaque client: que l'application Web s'adapte à ses processus internes, ou que ses processus internes s'adaptent à la solution informatique.

Vraiment, il y a de la place pour les deux types de solutions.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


Pierre Paul Lefebvre
Pierre Paul Lefebvre
27 janvier 09
  • 1
  • 0

Du plaisir au playground

Je suis tombé sur un petit site fait sur code.google.com : AJAX APIs Playground. Le site propose 3 panneaux différends, un pour lister les fonctionnalités et APIs, un pour un exemple de code et un dernier pour voir le résultat du code.

Vous pouvez éditer tant que vous voulez le code et cliquer sur Run pour appliquer les modifications et voir le nouveau rendu. C'est vraiment un playground pour développeurs!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis