J’ai installé sur une de mes machines virtuelles le sdk Android de Google afin de voir à  quoi ça ressemble et de comprendre l’architecture choisie par le géant américain.

Android sous Ubuntu

Voici pour information la plateforme sur laquelle j’ai installé ce SDK :

OS : Ubuntu 7.10
IDE : Eclipse Europa (v 3.3)
JDK : 1.5.0_13
Android : SDK Linux m3-rc20a

Premières impressions :

L’installation est très simple, aucun problème rencontré.
A l’utilisation, rien de bien sorcier, il suffit de suivre le tutoriel fourni par google, très clair et complet.
On peut simuler plusieurs types d’appareils avec différentes tailles/résolutions d’écrans (Dans Eclipse : Run/Open Run Dialog… sélectionner une application Android puis Emulator).

Le langage est très proche du Java et pour cause, les applications tournent sur un dérivé de la jvm : Dalvik.
Les habitués Java s’y retrouveront parfaitement.
Economiquement parlant, le fait que Google se lance dans cette direction valide pas mal de points sur l’avenir et la viabilité des futurs revenus générés par les téléphones portables et autres « pda-phones ».
J’ai lu quelque part qu’un milliard de personnes ont un pc contre 3 milliards qui ont un téléphone portable… Ça laisse réfléchir…

Bon, j’y retourne, il y a pleins de choses encore à  découvrir et peut être à  créer…

Si vous voulez plus d’infos pour débuter, je vous conseille cet excellent article du blog Java de developpez.com.

Commentaires fermés

Lien 1 : Un blog de présentations d’outils gratuits orientés web dont de nombreuses librairies JavaScript.

Lien 2 : Un sondage sur les interfaces que vous préférez. Très instructif.

Lien 3 : Une correspondance des logiciels tournant sur Windows sur Linux.

Lien 4 : Plugin pour The Gimp implémentant l’algorithme surprenant du redimensionnement d’image sans perte (voir la vidéo).

Lien 5 : Librairie de scripts pour prototype.js.

Lien 6 : Librairie PHP permettant de parser du HTML comme on interroge une base de données en SQL.

Lien 7 : Tout savoir sur la navigation page à  page. Très très intéressant. A lire !

Commentaires fermés

Lien 1 : Ressource de polices sur fawnt.com

Lien 2 : Quelques exemples d’intégrations d’Adsense

Lien 3 : Un répertoire complet de solutions Ajax et JavaScript

Lien 4 : Les patterns pour Ajax

Lien 5 : Quelques chiffres sur Google, impressionnants…

Commentaires fermés

Idée intéressante.
En gros, dans un formulaire vous insérez un input caché grâce à  un style CSS (style=display:none) avec une valeur vide.
Lors de la validation vous vérifiez (côté serveur) que ce champs de formulaire est bien une chaine vide sinon c’est du spam.
Les robots spammeurs remplissent tout ce qu’ils « voient », alors que l’utilisateur lui ne peut pas remplir ce champs caché.

21
oct
2007

Nous avons tous besoin de références et de connaitre les restrictions techniques lorsque nous concevons des applications et services web.

Pour cela, j’ai créé un tableau de bord reprenant :

  • Les dernières versions et leur prochaine version des technos que j’utilise, ainsi que leurs principaux apports;
  • Les taux de pénétration des différents navigateurs ainsi que diverses petites choses comme les résolutions d’écrans, etc…

J’ai décidé de le publier, et pour mémo, vous retrouverez le lien sur la barre de navigation, actuellement à droite sous Veille.

Commentaires fermés

Le remote debugging consiste à connecter le debugger d’Eclipse à  une autre machine que celle sur laquelle il se trouve.

Très utile lorsque les serveurs local et distant ont des configurations différentes et qu’il est impossible recréer le bug en local.

Voici comment faire :

  • Mise en oeuvre sans serveur d’application :
  1. Déposer l’application à  la racine de du lecteur de la machine distante.
  2. Lancer l’application en ligne de commande : « java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,adress=8000 -jar <nomdelappli>.jar »

Explication des arguments :
-Xdebug : Demarre la JVM en mode debug
-Xrunjdwp : Comment se connecter pour le debug à  distance :
- transport=dt_socket : Type de connexion à la JVM.
- server=y : Demarrage de la JVM en mode serveur en attendant la connexion d’un programme extérieur (ce sera Eclipse).
- suspend=y : Suspend la JVM en attendant le débogueur (elle se relance une fois qu’il est connecté).
- adress=8000 : port sur lequel le débogueur pourra se connecter à  la JVM.
La JVM doit répondre qu’elle écoute le port 8000.

  1. On attache le débogueur d’Eclipse à  la JVM distante :

Aller dans « run>Debug » puis dans la colonne de gauche faire un clic droit sur « Remote Java Application » et choisir New, puis remplir le formulaire proposé convenablement :

Remote debugging avec Eclipse

Name : Le nom de votre connexion distante
Project : Spécifie le projet à  déboguer
Connection type : Type de connexion, socket généralement
Host : IP de la machine distante
Port : Le port que la JVM distante écoute, ici 8000
Allow termination of remote : Permet à  Eclipse d’arrêter la JVM distante.
Cliquer sur [Apply], puis sur [Debug] et là , la JVM qui était suspendue relance l’application.
Suivre le process habituel pour faire votre débug. (Window/Open perspective/Debug).

  • Mise en oeuvre avec serveur d’application, ici JBOSS :

Même process que précédemment, sauf :

  • Arrêter JBOSS
  • Décommenter la ligne ci-dessous dans le fichier de lancement de JBoss : <rép. d’instal de JBoss>\bin\run.bat :

« set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS% »

  • Le port de connexion du débogueur sera le 8787 (celui par défaut dans run.bat)
  • Après clic sur [Apply] dans la fenêtre de configuration de la connexion à  la JVM distante :
  • Déployer l’application
  • Redémarrer JBoss et l’appli
  • Cliquer sur [Debug] pour commencer le déboguage.

Pour en savoir plus

Commentaires fermés

Aujourd’hui nous travaillons au niveau du code et nous voyons de plus en plus de logiciels et d’outils permettant de modéliser la conception et de générer le code.

Egalement les applications développées deviennent de plus en plus conséquentes en lignes de codes et gagnent également en complexité (maintenabilité, fonctionnement, etc…).

Du coup, cela laisse réfléchir vers quoi tout cela va nous mener et également sur l’avenir du métier de développeur.

Je pense que ce métier va ‘orienter progressivement vers l’abstraction et la modélisation et pour être plus précis le MDA (Model Driven Architecture).

L’OMG (Object Management Group) qui a notamment déposé l’UML, prépare actuellement le futur standard MDA.

En gros, je ferai une analogie (basique) avec l’arrivée d’outils comme DreamWeaver qui permet de concevoir les pages HTML en mettant le moins possible les mains dans le code généré.

Petite présentation succincte du MDA :

Exemple de modèles MDA

Exemple de modèles MDA

Dans le schéma précédant, le niveau d’abstraction s’accroit de la droite vers la gauche.

Le MDA se décompose en 4 couches :

  • Le CIM (Computationnal Independent Model) : Représente le modèle métier de plus haut niveau. Utilise un langage procédural spécialisé métier, éventuellement dérivé du MOF (Meta-Object Facility).
  • Le PIM (Platform Independent Model) : Modèle objet du système, indépendant de toute plateforme. En général s’appuie sur l’UML ou versions dérivées.
  • Le PSM (Platform Specific Model) : Modèle objet du système, spécifique d’une plateforme.
  • Le PSM projette le PIM sur une plateforme spécifique.
  • Le modèle de code : Représente le code déployable, habituellement sous forme de langage de haut niveau : PHP, Java, C++, C#, CORBA, .Net, …).

Aujourd’hui nous travaillons principalement au niveau du modèle de code et petit à  petit nous nous orienterons vers le PSM, le PIM est plutôt orienté maître d’oeuvre, le CIM restera selon moi pour la maîtrise d’ouvrage et l’assistance à la maîtrise d’ouvrage.

Attention toutefois, le PSM peut très bien être utilisé par l’architecte d’applications, je parle ici du PSM pour la partie logique de l’application et permettant une organisation plus cohérente du code.

Quels outils ?

Je ne vais pas en faire une liste exhaustive mais voici 2 qui attirent mon attention :

Sous Eclipse il y a un plug-in Open Source s’appelant Acceleo.

Enterprise Architect de Sparx System, est également un outil très réputé, à voir donc.

Conclusion :

Ce standard n’en est qu’à  ses débuts, beaucoup d’acteurs interagissent et les entreprises s’immisçant dans la discussion de ce futur standard, rien n’est donc encore définitif.

Mais je conseille vivement de se tenir informer, les choses peuvent aller très vite.

Commentaires fermés

http://malsup.com/jquery/cycle/ Des effets sympas à partir de JQuery.

Système de mouse tracking à base de JS et PHP.

miniajax.com : Un ensemble de scripts permettant de faire des effets sympas notamment à  base de requêtes XMLHttpRequest (AJAX).

Commentaires fermés
09
mai
2007

Maintenant que nos machines commencent à être de plus en plus performantes, la virtualisation commence à être une solution envisageable pour le commun des développeurs et autres utilisateurs.

Virtual Box OSXJ’ai testé plusieurs solutions :
Il faut savoir que la virtualisation existe à plusieurs niveaux : Machine virtuelle (VM), Isolateur, Noyau en espace utilisateur, Paravirtualisation ou Matérielle. J’ai choisi la première solution qui est pour moi la meilleure car plus souple quand on est nomade et que l’on change régulièrement de poste de travail. Je me suis configuré plusieurs environnements de développement sous différents OS. Ces configurations tiennent chacune dans un ou deux fichiers que je peux déposer sur mon disque dur portable.
Ainsi, en me retrouvant devant un nouveau poste de travail, il me suffit d’installer un soft client de virtualisation. De là, je peux retrouver mes différents environnements de travail sans modifier la machine hôte, hormis l’installation de ce client.
D’autre part, si la machine virtuelle crashe, il me suffit de récupérer un fichier d’un environnement vierge et c’est reparti, les fichiers de travail se trouvant eux sur le réseau de l’entreprise. Ou mieux on peut effectuer des snapshots (dans VirtualBox par exemple) à certains instants de vie de la VM. Ainsi, en cas de problème on peut « remonter » dans le temps de vie de la VM et la reprendre telle qu’elle était à cet instant là .
Résultat, je gagne beaucoup de temps en cas de problème ou lors de mon entrée dans un nouveau projet.
L’autre avantage est que je peux utiliser tous les outils disponibles pour les différents OS, il me suffit de basculer d’une machine virtuelle à une autre, et je peux tester à ma guise de nouveaux OS ou de nouvelles versions sans modifier la machine principale.
Le principal inconvénient est, comme vous l’imaginez, que vous ne bénéficiez pas de toutes les capacités de la machine puisque la machine hôte en prend une partie pour elle. Mais comme évoqué plus haut, avec nos machines actuelles et pour le développement en général ou la bureautique ce n’est pas gênant. Du point de vue des softs, j’ai eu l’occasion de tester notamment, Virtual PC 2007 de Microsoft, Virtual Server 2005 du même éditeur et également VirtualBox de chez Innotek. J’ai adopté VirtualBox car il permet d’installer du Linux sans trop de soucis, contrairement à Virtual PC 2007 qui lui est pro Windows bien sûr et le support de Linux n’est pas officiel.

Virtual Box Gui
Virtual PC 2007 permet le drag’n drop entre le bureau de la machine virtuelle et celui de l’hôte, ce qui peut être très pratique. La mise en réseau est également très simple, vous n’avez pas de pont à créer comme sur VirtualBox.
Par contre, VirtualBox est disponible sur Windows, Linux et Mac, ce qui a été l’argument principal pour mon choix. Aujord’hui sur Windows, demain peut être sur Linux…
Virtual Server s’adresse quand à lui plutôt aux admins systèmes et réseaux sur Windows 2003 Server. Il offre notamment une console web d’administration des machines virtuelles et d’autres outils vraiment très puissants. Si cela vous intéresse, voici quelques liens à suivre :

Commentaires fermés

Je vous propose de découvrir un doc créé par Luke Wroblewski sur la bonne mise en forme des formulaires WEB.
L’auteur est Principal Designer chez Yahoo! donc je pense que ses conseils sont à regarder de près.
Tout est décrit dans sa doc, et vu la richesse de ce document il me semble être un incontournable.

Commentaires fermés