Archive pour la catégorie 'Uncategorized'

Le choix de mon parser CSS (2)

Voila quelques semaines, j’avais décidé d’implémenter les CSS dans le framework Swinger. Je savais que je me lançais dans une tâche ardue. Je m’étais fixé comme objectif de livrer une version ce mois de juin.

Avec l’arrivée du mois de juillet, je dois dire que le choix du parser Batik est un échec, je ne serai pas en mesure de tenir les délais. La raison est que je me suis rendu compte à l’intégration que mon modèle ne collait pas avec celui de Batik. Je m’attendais à un parser plus facilement exploitable, en fait il a été développé dans une philosophie assez rigide et difficile à cerner car mal documentée.

Mais la vraie raison de cet échec est que je ne me suis pas donné suffisamment de temps pour étudier cette api. La conséquence est que je me retrouve confronté à une impasse. Je n’ai que deux options qui s’offrent à moi. Soit détricotter mon code pour me conformer aux attendus de Batik, soit abandonner cette api et développer mon propre parser.

C’est la deuxième option que je choisi. Pour plusieurs raisons. D’abord cela m’ennui de renoncer à plusieurs semaines de travail. Le code que j’ai produit est loin d’être parfait et devrait pêcher par manque de performance dans le cas de CSS très complexes. Mais il est bien à adapté à l’architecture de Swinger qui repose sur des Accessors qui attendent des chaînes de caractères pour l’initialisation des attributs.

L’autre raison qui me trotte dans la tête depuis deux ou trois semaines est que je souhaite que l’api Swinger puisse être intégrée comme bundle Osgi. Or dans ce cas, les librairies externes sont un handicap si elles ne sont pas elles-même livrées en tant que bundles.

Pour ces raisons, je n’ai pas de regret à me séparer de Batik. La conséquence est que cela va retarder sensiblement la livraison d’une version supportant les CSS. Du coup, je vais livrer dans les semaines qui viennent une version intermédiaire qui permettra de choisir son layout. C’était en effet le point de départ de ma réflexion sur la configuration des attributs apparents.

Je ne suis pas en mesure de fixer de date quand au support des CSS. Ce qui est certain est que ce support sera partiel et portera sur quelques attributs seulement. Les aspects les plus délicats, comme le positionnement relatif des composants, sera reporté à une version ultérieure. En tout état de cause, le support de CSS ne sera jamais complet car la philosophie de l’api swing ne permet pas par exemple de gérer le texte de la même manière qu’en html.

Sans fournir de date buttoir en raison des beaux jours dont je profite autant que possible, j’espère néanmoins finir mon parser avant la fin du mois de juillet.

Je vous tiendrai au courant de l’arrivée de la prochaine release dans les semaines à venir qui supportera la personnalisation des layouts.

Swinger est livré en version 0.4

Cela faisait presque un an que je n’avais pas touché à ce projet. Il s’agit d’un framework qui permet de construire des IHM swing grâce à un langage de balise comme le html.

J’ai complètement refondu l’api. La principale nouveauté est la possibilité de configurer l’application pour déclarer des objets auxquels on peut accéder dans le fichier swg grâce aux expressions langage.

Actuellement, le positionnement des composants n’est pas bien géré. Le framework ne permet pas de choisir son layout manager, il faut coder en java. Je souhaitais ajouter cette fonction dans la prochaine release, mais je me suis rendu compte que je me trouvais confronté à un problème de langage. J’ai déjà introduit les expressions langage au sein du format swg, mais je souhaite m’en tenir à des formes de notations communément admises, je ne souhaite pas innover en la matière car je pense que ça serait un frein à l’adoption de ce framework.

Or, l’utilisation des layout manager nécessite de pouvoir passer des paramètres d’initialisation, ce qui n’est pas possible dans le cadre actuel. La solution qui m’est venue immédiatement à l’esprit est de passer par un fichier de propriétés comme le fait la JSR-296. Je me suis un renseigné sur les avantages et les inconvénient de ce framework, et il me semble que le principal avantage est de permettre de gérer les différents cycles de son application. En revanche, je n’aime pas la manière dont sont gérés les resources, ce que je trouve aberrant est d’associer un fichier par classe, ça risque rapidement de devenir le foutoir. Concernant la gestion du style à proprement parler, l’inconvénient est que le format actuel ne gère pas l’héritage.

Finalement, je m’oriente vers une autre solution, l’implémentation des CSS. Je sais que le projet tk-ui implémente déjà ce support et qu’il en est question pour la prochaine version du framework Eclipse. Le site du W3C propose une interface qui est implémentée dans deux api, Flute et Batik. Je n’ai pas encore choisi quelle api je vais choisir, j’avais même pensé un moment développer moi-même le parser CSS en intégralité.

Je reviendrai prochainement sur les critères qui me feront choisir l’une ou l’autre de ces api.

http://code.google.com/p/swinger

Le nouveau delicious est arrivé

Pour ceux qui ne connaissent pas delicious, il s’agit d’un service de bookmark qui permet de sauvegarder ses Favoris sur le Web plutôt que sur le poste de travail. Cela permet d’accéder à ses Favoris à partir de n’importe quel terminal Web.

Le site était réputé pour sa sobriété, et même critiqué par certains utilisateurs comme devenu obsolète pour cette raison. Après avoir été annoncé maintes fois, le toilettage du site a enfin eu lieu. La nouvelle mise en forme met l’accent sur la fonction de recherche plutôt que sur le tagging, ce qui conviendra à ceux qui comme moi ont plusieurs centaines de tags, chose devenue pratiquement ingérable. C’est donc avec joie que j’accueille le nouveau delicious, d’autant que ce service et devenu pour moi absolument indispensable.

À vos marques !!! Téléchargez

La fondation Mozilla veut établir le record du monde de téléchargement en 24h sur le logiciel Firefox 3. Le téléchargement sera disponible à partir de 19h, heure de Paris.

Google vous avertit lorsqu’il a repéré un site contenant des malwares

Je viens de découvrir que Google propose un système anti-malware. Lorsqu’une page est répérée comme ayant un contenu douteux, Google nous redirige vers une page d’avertissement :

[EDIT] : il semble que les liens proposés ne soient plus valides.

Participez au Download Day !!!

L’équipe de Firefox va établir le record du nombre de téléchargements en 24h. Si vous voulez participer à ce record du monde, inscrivez-vous au Download Day et engagez-vous à télécharger Firefox 3 le jour de sa sortie (probablement courant juin).

Java considéré parmis les logiciels les plus pénibles

via standblog

Un article de ZDNet UK liste les articles qu’il juge les plus pénibles. Java est nommé parmis d’autres logiciels comme Windows Update ou Acrobat Reader.

Il est vrai que Java a un caractère intrusif. Les utilisateurs sont nombreux à rencontrer des problèmes de version et à être confrontés à d’obscures boîtes de dialogue. Les utilisateurs sont toujours réticent à télécharger ou mettre à jour un logiciel dont ils ne comprennent pas la fonction. La notion de JVM et trop abstraite pour entrainer l’adhésion du premier péquin.

La magie de l’informatique distribuée

via mfavez

Un concert pour la paix

Les fascistes à l’assaut du Web

Ca commence à faire du bruit dans la globosphère blogosphère. Comme je l’avais signalé dans un blog précédent, les régies qui se partagent le marché de la publicité en ligne devront bien s’orienter vers l’adoption d’un code déontologique ou du moins d’une étiquette. Les publicités aux relents xénophobes sont inadmissibles, elles participent à la banalisation des idées extrêmistes.

Page suivante »