mardi 30 septembre 2008

Microsoft et jQuery

Microsoft vient d'annoncer l'adoption de jQuery pour ses produits (Internet Explorer et Outils de développement)
C'est une grande nouvelle car l'éditeur de Redmond à généralement l'habitude de réinventer la roue.

Qu'est ce que jQuery
jQuery est une librarie JavaScript open-source très populaire dans le monde du développement Web.
jQuery est une librairie JavaScript rapide permettant l'écriture de code JavaScript avec une syntaxe condensée.
Le but de jQuery est de simplifier l'adressage et la manipulation des éléments DOM d'une page html.
jQuery permet également de gérer les événement, les requêtes Ajax et des animations.
jQuery à la prétention raisonnable de changer la façon dont les développeurs écrivent en JavaScript.
jQuery est une librairie cross browser, compatible CSS3, et de petite taille (15kb compressée).

Voici un exemple de code JavaScript exploitant jQuery:
$("p.neat").addClass("ohmy").show("slow");
 
Pour vous faire une idée des capacités de jQuery, allez donc jeter un oeil sur ce tutoriel destiné au Web Designer.
La section tutoriels de jQuery contient également un certain nombre d'exemple pratique.
Bien que les tutoriaux et la documentation des API jQuery soient excellents (voir ici), je recommande néanmois un petit passage par ce tutorial d'introduction.

Microsoft
Microsoft intégrera jQuery dans son produit de développement phare "Visual Studio".
Les développeurs ASP.NET tirerons un profit inestimable de cet nouvelle intégration.
L'article "jQuery to ship with ASP.NET MVC and Visual Studio" de Scoot Hanselman's montre comment Visual Studio intègre la librairie jQuery dans les développement ASP.NET.

Nokia
Pour terminer, il semblerait que Nokia se prepare également à inclure la librairie jQuery dans ses produits.

Livres
Voici quelques publications autour de JQuery.
  • jQuery in Action
    jQuery in Action is a fast-paced introduction and guide. Has good comment (Able to start coding quickly), referenced from jQuery web site.   
    Bear Bibeault and Yehuda Katz chez Manning Publication  $44
  • Learning jQuery
    Better Interaction Design and Web Development with Simple JavaScript Techniques. Referenced from jQuery web site.
    De Karl Swedberg, Jonathan Chaffer chez Packt Publishing  33$
  • jQuery Reference Guide
    Chapitres: Anatomy of a jQuery Script, Selector Expressions, DOM Traversal Methods, DOM Manipulation Methods, Event Methods, Effect Methods, AJAX Methods, Miscellaneous Methods, Plug-in API, Dimensions Plug-in, Form Plug-in, Online Resources, Development Tools.

    De Karl Swedberg, Jonathan Chaffer chez Packt Publishing  33$
 
Sources: PCInpact, jQuery, blog de Scott Hanselman's  

lundi 29 septembre 2008

Stockage en ligne

Parmis tous les services en ligne, il existe box.net et humyo.com qui disposent de compte gratuit (sous conditions bien entendu).
Le plus attractif est certainement humyo qui offre gratuitement pas loin de 30Go (dont 25 Go dédié uniquement à la vidéo et la musique).
Les fichiers stockés peuvent être soit privés, soit publiés.
Dans tout les cas, il est possible d'invité un autre utilisateur. Mais dans le cas de la publication, les fichiers sont accessibles via une url (ou un object html) à la maniàre Google, YouTubes,... ce qui rends le service franchement pratique et attractif pour les bloggeurs.
Les formats de documents courant peuvent même être collaborativement édités en ligne.

Les fichiers sont bien entendu accessible par connexion sécurisée en utilisant votre browser internet préféré.
Il existe néanmoins un logiciel client Windows permettant d'acceder aux fichiers l'espace de stockage directement depuis un lecteur virtuel. Ce logiciel est testable gratuitement pendant deux semaine et inclus dans les services de la version payante. 
Le seul point négatif de cette offre gratuite est qu'il est nécessaure de se logger régulièrement (tous les 90 jours) pour ne pas voir ses fichiers automatiquement effacés.
Enfin, la version payant propose un espace de stockage de 100Go librement utilisable pour 50€/an.



Pour plus de détail sur l'offre de humyo, cliquez ici

mardi 23 septembre 2008

Lecture autour de Ubuntu

Voici quelques livres qui pourraient êtres intéressants:
  • Ubuntu Hacks: Tips & Tools for Exploring, Using, and Tuning Linux.
    Le contenu semble intéressant. La quote est excellente, pas étonnant, c'est un O'Reilly.
    Disponible chez Amazon pour 20$.
  • Ubuntu Linux Toolbox: 1000+ Commands for Ubuntu and Debian Power Users
    Contenu plus technique mais adéquat pour raffraichir de vielles connaissances Unix.
    Le quote est bonne. Disponible chez Amazon pour 17$.

lundi 22 septembre 2008

Gérer des mots de passes sous Windows et Ubuntu

De part mon métier (informaticien), je traine avec moi une liste assez conséquente de mots de passes.

Au travail, nous développons nos applications sous Windows.
C'est donc tout naturellement que j'ai recherché, il y a plusieurs années, une solution portable pour Windows (Note: les solutions portables fonctionnent directement depuis une clé USB).
Parmis tout les logiciels disponibles, j'ai sélectionné KeePass Password Safe (en version portable).
Pratique, simple d'emploi, bien sécurisé et gratuit, c'est probablement l'un des meilleurs logiciels qui existent dans ce domaine.
Ce logiciel est à ce point pratique que je l'utilise également pour stocker mes mots de passes personnels (tout aussi abondants).

Avec l'installation à la maison d'un PC Ubuntu pour la navigation internet, je me suis retrouvé bien ennuyé lorsque j'ai eu besoin de mes mots de passes perso. Sur un autre système d'exploitation, plus question de démarrer "KeePass Password Safe" pour Windows depuis ma clé USB.
J'ai donc fait des recherches pour trouver un produit fonctionnant aussi bien sur les plateformes Windows que Linux.
C'est ainsi que j'ai appris, pour mon plus grand bonheur, que KeePass fonctionne aussi bien sur Windows que sous Linux. KeePass pour Windows est en fait le petit frère du projet Linux KeePassX.
Après quelques recherches complémentaires, j'ai trouvé comment installer KeePassX sur ma distribution Ubuntu 8.04.

sudo apt-get install keepassx
Source: ici

Depuis ma distribution Ubuntu, j'ai été capable d'ouvrir la base de données des mots de passes (fichier .kdb) disponible sur ma clé USB (avec le logiciel KeePass portable pour Windows).
Une fois le mot passe sécurisant ma dite base de données correctement introduit, j'ai pu consulter et modifier mes mots de passes.
Après avoir sauvegardé la base de donnée (.kdb) modifiée depuis Ubuntu, je me suis reconnecté sur une machine Windows pour vérifier que tout fonctionnait bien...
Et comme de bien entendu... tout fonctionnait parfaitement.

Qui plus est, il existe des versions de KeePass pour Mac, Blackberry phone, Smartphone, etc.
KeePass Portable et KeePassX sont des logiciels que je recommande chaudement.

samedi 20 septembre 2008

Citation de Tacite et Guillaume Musso

Voici deux citations glanées au détour de mes récentes lectures...

Le vrai tombeau des morts,
C'est dans le coeur des vivants.
Tacite


A deux, on court peut-être moins vite, mais on va tellement plus loin.
Guillaume Musso
Extrait de l'épilogue du livre "Je reviens te chercher", pg 327
isbn 978-2-84563-370-4

vendredi 12 septembre 2008

Livres pour développer des applications Asp.Net

Voici deux livres de Dino Esposito concernant la programmation .Net.
Ils m'ont étés chaudement recommandés par Bas (lead developper chez macaw.nl) durant un training .Net.
Etant donné les connaisances de ce dernier dans ce domaine, je n'ai même plus de question à me poser sur le bien fondé de ces achats.
Note: il existe une version Asp.Net 3.5 de ces livres.

.Net Enterprise library

Description:
Le site msdn de Microsoft contient en autre l'Enterprise Library - Application Block.
L'Enterprise Library est une collection de blocs de développement destiné à aider le développeur à concevoir des applications complexes.
Les blocs applicatifs de l'Enterprise Library sont habituellement utilisés pour des applications faisant l'objet d'un large déploiement et/ou qui doivent inter-opérer avec d'autres applications ou systèmes.
Les blocs applicatifs répondent aux exigences de sécurité, de fiabilité et de performance.

Les applications blocks, ce sont:
  • Des codes sources et des projets libres.
  • Des "patterns" libres.
  • Des "factories" libres.
Domaines traités par les Applications Blocks
Les applications blocks couvrent différents domaines de développement.
En voici une liste exhaustive.

Le caching:
Les Caching Application Blocks sont utilisés par des développeurs désirant incorporer un mécanisme de cache dans leur application.

La cryptographie:
Les Cryptography Application Blocks sont utilisés pour introduire des capacités de hashing et d'encryptions symétriques aux applications.

L'access aux données:
Les Data Access Application Blocks permettent d'incorporer des fonctionnalités standards d'accès (et manipulations) de base de données.

Gestion des erreurs:
Les Exception Handling Application Blocks sont utilisés conjointement par les développeurs and les personnes responsables des lignes de conduites relatives à la sécurité de l'information.
Ces blocs applicatifs permettent de créer des stratégies cohérente de gestion d'exceptions (d'erreurs) qui peuvent être déclenchées depuis n'importe quelle couche de l'architecture logiciel.

Système de logs:
Les Logging Application Blocks offre des facilités de logging.

La validation:
Les Validation Application Blocks permettent de créer des règles de validations pour les objets de la couche business (a tout les niveaux architectural de l'application).

Policy Injection:
Les Policy Injection Application Blocks sont utilisés par les développeurs pour mettre en place des règles d'interceptions (interception policies) pouvant être utilisés pour simplifier l'implémentation de caractéristiques standards (ex: le logging, le caching, la gestion d'exception et la validation).

Sécurité:
Les Security Application Blocks sont utilisés pour incorporer des fonctionalités d'autorisations et de caching de droits de sécurités.

Unity:
Unity Application Blocks can use as a lightweight and extensible dependency injection container with support for constructor, property, and method call injection.

C'est plus parlant en anglais :-)

Object Builder
"Object builder" est un projet de démonstration de l'Enterprise Library 4.0 (mai 2008).
Ce projet montre comment créer dynamiquement une instance d'une classe stockée dans un assembly externe.
Dans le cas de ce projet, la classe (et l'assembly) à instancier sont stockés dans un fichier de configuration.
Cet exemple est typique du fonctionnement des Plug-ins ou d'exécution de modules/fonctionnalités à la demande.

Voici la marche à suivre pour localiser le projet "Object Builder" sur le site de Microsoft:
  1. Ouvrir le site msdn.
  2. Faire une recherche sur "Object Buidler".
  3. Dans l'arbre (Tree view), localiser l'entrée: MSDN Library | Servers and Enterprise Development | Enterprose Architecture, Patterns, and practices | Microsoft patterns and practices | Application Blocs | Entreprise Library | Enterprise Library 4.0 - May 2008
Enterprise Library et Mono
Bien que libre, les sources de l'Enterprise Library de Microsoft ne pouvaient pas être distribuées avec mono.
En effet, la licence utilisé par Microsoft ne l'autorisait pas jusqu'a maintenant.
Un récent article sur le blog de Miguel de Icaza révèle qu'une nouvelle licence (plus permissive) couvre maintenant les sources de l'Enterprise Library 4.0 de Microsoft.
La distribution des sources est maintenant possible... elles pourront donc certainement être intégrées dans les développements mono sans violer les propriétés intellectuelles de Microsoft.
Voir l'article de Miguel de Icaza pour plus de précisions.

jeudi 4 septembre 2008

Développement ASP.NET avec MonoDevelop

Comme déjà précisé, MonoDevelop ne dispose pas d'un Web Designer.
Il n'empêche qu'il est cependant possible de faire fonctionner des applications Asp.Net directement sous mono.
Voici quelques-unes des caractéristiques de développement supportées par MonoDevelop.

Projets WEB
  • Créer des applications web pour toutes les langues supportées.
  • Compiler une application web et l'afficher dans un browser en utilisant xsp.
  • Les références GAC du projet sont synchronisées dans le web.config.
  • Add new ASP.NET files:
    • Page (.aspx) avec ou sans CodeBehind (avec class partielle si le langage le supporte).
    • Controlle Utilisateur (.ascx) avec ou sans CodeBehind (avec class partielle si le langage le supporte).
    • Web Service (.asmx) avec ou sans CodeBehind.
    • Web Handler (.ashx) avec ou sans CodeBehind.
    • Web.config (pour l'application ou le sous-répertoire en fonction de l'emplacement du fichier).
    • Page master (.master) avec ou sans CodeBehind (avec class partielle si le langage le supporte) mais seulement pour le runtime 2.0.
    • Global.asax avec ou sans CodeBehind.
  • Les contrôles serveurs ASP.NET ajoutés aux fichiers aspx on des dépendances (membres) automatiquement ajoutés aux classes CodeBehinds au moment de la compilation (dans les fichiers *.designer.* part si les classes partielles sont supportées).
Web References
  • Recherche d'un web service et création d'une classe proxy.
  • Mise à jour de la classe proxy d'un web service.

Google Chrome - la Bande Dessinée

Comme expliquer précédemment, il existe une "bande dessinée" produite par les membres de l'équipe Chrome (en anglais).
Ce fut une lecture facile et surtout très enrichissante que je recommande vivement.

mercredi 3 septembre 2008

Packages multimedia pour Ubuntu

Medibuntu propose des packages transformant une distribution en centre multimedia (ou presque).
Dans le monde, il existe de nombreux logiciel gratuit... seulement ils ne sont pas tous distribués avec la même licence.
Selon les logiciels à installer et le pays de distribution, les règles de licences peuvent fortement varier.
Le contraintes sont telles que l'éditeur d'Ubuntu à décidé de ne pas prendre lui même en charge la distribution de tels outils.
Heureusement, il y a MediBuntu qui se propose de distribuer les packages Ubuntu nécessaires pour faciliter l'installation de tels produits.

Source: Cet article sur PCInpact.
Liens: Aide d'installation sur PCInpact.

mardi 2 septembre 2008

Google lance son propre Web Browser

Google Chrome, voila un projet qui va faire couler beaucoup d'encre.
Actuellement destiné à Windows, ce browser devrait être rapidement disponible sous Linux et Mac. Les photos sont ici.

A la fois apparenté aux browsers libres FireFox et WebKit (Apple), Google Chrome annonce d'hors et déjà quelques avancées intéressantes.
  • Le processus d'exécution protégé isole le browser du reste de la machine.
    Je comprends maintenant l'achat, il y a plusieurs années, de "Green Border" spécialiste de ce type de solution.
  • Un nouveau moteur Javascript (V8) libre. Ce dernier axé sur la rapidité et le multithreading devrait permettre l'apparition d'une nouvelle génération d'application.
    Tel qu'il est conçu, ce nouveau moteur Javascript pourrait être intégré dans n'importe quel autre browser.
  • Suggestion du moteur Google directement depuis la barre de navigation.
    Il ne faudrait quand même pas que Google s'oublie.
  • Support de bookmarks.
    Personnellement, je préfère quand même Delicious (2).
  • Un mode Incognito permettant de browser le Net sans laisser de trace sur l'ordinateur.
  • Une interface revue... pour être aussi simple que la page d'accueil du moteur de recherche Google.
  • Mise a jour continue d'une BlackList et PhishingList (3) pour protéger l'utilisateur naïf contre les dangers du Net.
Qu'on ne s'y trompe pas, Chrome n'est pas seulement là pour damer le pion à Internet Explorer.
Chrome va avant tout servir de tremplin pour les produits en lignes de la tentaculaire société Google. Ces mêmes produits en ligne à qui l'on demande sans cesse de repousser les limites de la convivialité, des performances et de la sécurité.
Il est fort a parier que la technologie Gears (1) fera partie intégrante de Chrome.
Par ailleurs, il serait bien de ne pas considérer Chrome comme un simple browser... il est certainement appelé à devenir une plateforme de développement pour applications en ligne. Et Google serait le premier à en tirer profit.
J'imagine très bien google mettre au point un traitement texte performant, fonctionnant en ligne avec les services google docs, mais utilisant les capacités de Chrome pour l'interface utilisateur.

Va t'on voir fleurir une nouvelle plateforme de développement d'application en lignes basée sur un moteur JavaScript de nouvelle génération?

Google a toujours produit des outils de qualités et Chrome fera partie du lot (ce ne sera pas un flop... Google a les moyens d'en faire un succès).
En tant que développeur, je ne vois pas d'un bonne oeil le débarquement d'un nouveau browser qu'il faudra supporter.
Par contre je me réjouis qu'il émane de Google... car chez Google, le respect des standards est une culture de société.

Hormis l'annonce dans la "libre" je suggère également un coup d'oeil sur cette "bande dessinée" produite par les membres de l'équipe Chrome (25 pages en anglais).

Liens utiles: Cet article assez sommaire présentant le produit à venir.
Source: Jyce (merci).

1) Google Gears autorise le stockage et la manipulation de documents googles doc, google calendar, google spreadsheets, etc en mode déconnecté. Les documents sont ensuite automatiquement resynchronisés lorsque la connexion internet est disponible.
2) Gestion de favortis en ligne utilisant le principe des tags. Simple, pratique et convivial.
3) Le phishing est une technique utilisée par des sites malveillants pour se faire passer pour des sites connus (comme celui de votre banque). Cela permet d'innocemment vous extirper des données à caractère sensible (comme login et mot de passe, No de carte de crédit, etc). Pour plus d'info, voir wikipedia