Aller au contenu | Aller au menu | Aller à la recherche

jeudi, mars 6 2014

Outils d'integration continue, retour d'expérience

Dans un billet précédent, j'avais fait un comparatif d'outils d'intégration continue. Après quelques jours d'utilisation, revirement de décision, j'ai finalement abandonné Jenkins...

Lire la suite...

mercredi, février 5 2014

Comparatif des outils d'intégration continue

En ce moment j'ai pour mission de mettre en place une plateforme de développement. Gitlab a été choisi pour héberger les sources des projets internes et clients. Il faut maintenant mettre en place un outils d'intégration continue, open source si possible. Le premier qui vient en tête est Jenkins. Mais il a des défauts, aussi je suis allé à la recherche d'alternatives, que j'ai installé et testé.

Lire la suite...

lundi, juillet 15 2013

Tada! Here is SlimerJS!

Once upon a time, on the december 10th, 2012, I discovered CasperJS and PhantomJS and this was the beginning of a great history....

Lire la suite...

jeudi, mars 21 2013

Openweb a dix ans

Il y a tout juste dix ans, le premier site français entièrement dédié aux standards du web ouvrait ses portes : Openweb.eu.org. Il fut le résultat du travail de 11 passionnés du web : Tristan Nitot, Laurent Denis, Pascale Lambert-Charreteur, Florian Hatat, Fabrice Bonny, Emmanuel Clément, Mathieu Pillard, Denis Boudreau, Olivier Meunier, Samuel Latchman et moi même. Nous publions tous un peu de notre coté des articles sur les standards (je venais d'ouvrir mon blog deux mois auparavant), et un jour nous nous étions dis que cela serait bien de rassembler toutes ces ressources en un seul lieu.

La magie du web a permis cela, bien que nous soyons tous aux quatre coins de la France (et du canada !).

Je me rappelle encore de certains soirées à coder chez moi dans mon bureau, ou encore cette seule et unique réunion IRL pour discuter du projet, dans les locaux d'AOL où Tristan travaillait. J'y rencontrais donc pour la première fois celui qui allait devenir le président de Mozilla Europe. Je crois aussi que j'avais croisé très furtivement à la cantine d'AOL celui qui allait devenir mon patron 1 an et demi plus tard, Daniel, chez Disruptive Innovations. En effet, les locaux abritaient ce qui restait de Netscape France (Daniel, Tristan, Peter...), filiale de la société à l'origine du projet Mozilla.

Depuis la publication des premières pages d'Openweb.eu.org, de l'eau a coulé sous les ponts. Les personnes qui animent le site ont changé, mais le site est toujours là et est encadré par des gens tout aussi passionnés par le web. Et malgré des périodes d'inactivité il y a quelques années, des articles continuent à paraitre régulièrement. Avec cette "monoculture" webkit qui menace, les standards du web sont plus que d'actualité.

Pour ma part, j'ai tourné la page "openweb" depuis quelques années. Mais j'en suis toujours aussi fier et je continue à soutenir les standards du web. Ce projet fut pour moi le départ de beaucoup de choses, comme mon aventure dans le projet Mozilla, qui démarra avec l'ouverture de xulfr.org dont je fêterai aussi les 10 ans cette année.

Bon anniversaire Openweb !

jeudi, février 28 2013

Firefox OS le grand challenger

Le Mobile World Congress se termine aujourd'hui, et on peut dire que Mozilla a fait beaucoup parler de lui avec son nouveau système d'exploitation pour mobile, Firefox OS. Ça a démarré par une conférence de presse la veille de l'ouverture du salon. Mozilla annonçait alors que 18 opérateurs téléphoniques de par le monde, et 4 fabricants de mobiles (Alcatel, LG, ZTE et Huawei) allaient proposer à leurs clients, dans les mois à venir, des téléphones utilisant Firefox OS. Durant le salon, Sony a aussi déclaré se joindre à la partie, en publiant sur un blog comment installer Firefox OS sur un XPeria.

Bref, Mozilla, avec son stand impressionnant, n'est pas passé inaperçu. Et c'était le but.

Par contre, comme à l'accoutumé, à coté des gens approuvant à 100% le nouveau système de Mozilla, j'ai pu remarquer pas mal de scepticisme parmi les commentateurs en tout genre, la presse etc.

1) Face à Google (Android) et à Apple (IOS), Mozilla a peu de chance

Mozilla aurait peu de chance si la fondation attaquait de front ces deux mastodontes, c'est à dire sur le même marché, ciblant les mêmes clients. Ce n'est tout simplement pas le cas. Mozilla cible en priorité les marchés émergents : Amérique du sud, certains pays d'Asie, et probablement l'Afrique. Elle cible les pays où le taux d'équipement en smartphone est très bas, voir quasi inexistant. Ce sont des pays où un Iphone ou un Galaxy SII n'ont que peu de chance de s'y vendre, à cause des revenus plutôt bas dans ces régions du monde.

On pourrait dire donc que Mozilla vise la complémentarité. La fondation vise surtout à promouvoir le choix sur le mobile, comme elle l'a fait sur le desktop au temps où IE était utilisé par 95% des internautes. Elle avait Firefox Mobile sous Android. Elle a maintenant un système d'exploitation alternatif pour les mobiles, qu'elle propose aux intégrateurs, sans royalties.

2) Je suis déçu des spécifications des téléphones Firefox OS, ça ne me tente pas d'en acheter un

Si vous vous dites cela, c'est que vous n'êtes tout simplement pas la cible. Malgré les bonnes ventes des Iphone et autre Galaxy, n'allez pas croire que tout le monde a autant les moyens que vous pour en acheter un.

Certes, les téléphones annoncés avec Firefox OS ne sont pas très puissants (1GHz, mono-core ou dual-core maxi, 512Mo de RAM..). Mais rappelez-vous : Mozilla vise les marchés émergents. Donc nécessité de fournir des téléphones bas prix, donc peu puissants.

Il se pourrait même que ces téléphones intéressent des gens dans nos pays "riches". D'une part à cause de la crise, et d'autre part, je suis persuadé que beaucoup de gens n'ont pas besoin d'un quad-core dans leur poche. En les observant dans le train ou ailleurs, que font-ils la plupart du temps : téléphoner, envoyer des sms ou des mails, jouer à des petits jeux, lire leurs messages facebook ou twitter.

Très franchement, y-a-t-il vraiment besoin d'un dual-core, voir un quad-core pour faire ces tâches toutes simples ? Si le système est optimisé et peu gourmand, NON. Vous rappelez-vous des machines d'il y a 15 ans ? Elles étaient 10 fois moins puissantes, prenait 10 fois plus de place, mais on pouvait y faire le même genre de tâches sans aucun souci.

Même moi je trouve que mon téléphone, un Galaxy SII, est "overkill" pour l'usage que j'en fais.

3) C'est motorisé par Firefox ? encore un téléphone qui va laguer lol mdr ptdr webkit roxor

Vous savez quoi ? Vous devriez essayer un smartphone motorisé par Firefox OS. Là où un système Android devient vite pénible à utiliser sur les téléphones ciblés par Mozilla, FirefoxOS est plutôt véloce ! Moins de surcouches logiciels et un moteur (celui de Firefox), qui a connu d'énormes progrès en terme de performances et d'occupation mémoire : c'est la recette de Mozilla pour faire tourner correctement son système sur des petites configurations. D'ailleurs, ces améliorations faites pour Firefox OS, profitent également à la version Mobile et à la version Desktop de Firefox !

J'ai pu expérimenter un téléphone Firefox OS pendant une semaine au début de l'année [1] et j'ai été convaincu. Ok, c'est un avis tout à fait subjectif, surtout pour quelqu'un comme moi qui contribue à Mozilla depuis presque 10 ans, mais, même si j'étais plutôt excité par ce nouveau projet à l'automne 2011 quand j'ai vu les premières versions tourner "en vrai", j'avoue que j'étais un peu sceptique. Où allait Mozilla avec ce truc ?! Maintenant je le sais. J'ai pu expérimenter. Et je suis maintenant rassuré et conquis !

Le seul gros point faible que je trouve à mes yeux, c'est tout ce qui utilise la 3D (et donc WebGL) : c'est lent. Mais ce genre de chose est dû au processeur graphique faiblard de ces téléphones, plutôt qu'à Firefox OS.

4) Je trouve l'interface peu innovante

Et bien faites-en une ! Non, je ne plaisante pas. Non je n'ironise pas. Je suis très sérieux.

Il est vrai que l'interface, le "bureau" du système n'est pas très innovant par rapport à la concurrence. On y retrouve les mêmes manières d'interagir avec le téléphone qu'avec les autres smartphones, des applications plutôt normales et simples (quoique, l'application de recherche intégrée de Everything.me apporte une fonctionnalité originale). Mais il y a plusieurs raisons à cet état de fait :

  1. Entre les premières lignes de code du projet, et cette annonce au MWC, il s'est passé 1 an et demi environ. 1,5 an pour développer un système d'exploitation mobile complet. Le noyau, les applications, et toutes les API pour les développeurs d'applications. C'est peu de temps. Très peu. Mes amis développeurs qui bossent à plein temps sur le projet dans les bureaux parisiens de Mozilla peuvent vous en parler[2] ! Même si ils réutilisent des briques open-source (noyau linux, moteur Gecko de Firefox..). Les délais étant très courts, l'innovation dans l’interaction homme-machine a été remise à plus tard.
  2. Cela permet aussi aux futurs utilisateurs de se retrouver en terrain connu, ou d'apprendre à utiliser un smartphone "comme sur les autres". Rappelez-vous, la cible, ce n'est pas le "power-user" du mobile, ce n'est probablement pas vous, mais les personnes qui n'ont jamais eu de smartphones.
  3. FirefoxOS est un système maléable. Son originalité est que toutes les applications sont en HTML5/JS/CSS. Et "toutes" cela comprend vraiment tout : l'appli pour téléphoner, le "bureau", la barre d'état etc. Bref, toute l'interface. Comme l'a dit mon pote Paul Rouget, "le moindre pixel de l'écran est affiché par une application HTML".

Vous n'êtes pas content de l'interface ?

  • En tant que développeur, faites vous plaisir, contribuez au projet Gaia, l'interface de Firefox OS ! Contribuez aux développement des applications fournies en standard ! Le système de Mozilla est 100% Open Source !
  • En tant qu'entreprise innovante, lancez-vous ! Développez un remplaçant à Gaia ! Un nouveau marché s'ouvre à vous !
  • En tant que "power user", un peu de patience, et probablement vous aurez le loisir de remplacer les applications standards par d'autres alternatives :-)

Tenez, d'ailleurs, en quelques heures, un développeur a implémenté une nouvelle manière d'utiliser le clavier virtuel. Firefox OS n'est-il pas sympa ?

En d'autres termes, l'innovation dans Firefox OS ne se trouve pas dans l'interface, mais dans le système et dans sa philosophie. C'est 100% HTML5. Ça repose sur les standards du Web. N'importe quel développeur web peut créer une application HTML5, ou même porter une appli existante en quelques heures seulement, voire quelques minutes (si elle est déjà prévu pour s'afficher correctement sur mobile). Et il a en plus à sa disposition des dizaines d'API innovantes pour développer des fonctionnalités originales dans ses applications web !

5) Chez Mozilla ils ont encore confondu renard de feu et panda roux

Oui, bon. Le logo mis en avant pour Firefox OS, légèrement inspiré de celui de Firefox, est un renard. Cela ne fait aucun doute. Certains avancent même que chez Mozilla, ils sont vraiment nuls en zoologie. Mais vous remarquerez que depuis Firefox 1.0, la bestiole sur le logo de Firefox est vraiment un renard (si vous ne me croyez pas, allez vraiment voir à quoi ressemble un panda roux). Et que si Mozilla a parlé de Panda Roux, c'est d'une part à cause de la traduction de "Firefox", et d'autre part pour faire parler des pandas roux, espèce menacée.

Et puis entre nous, on s'en fout, hein :-)

La grande question, en ce moment, est plutôt : mais quand est-ce que Geeksphone va enfin vendre ses téléphones Firefox OS pour développeurs ?!

Notes

[1] Ce téléphone Firefox OS qui m'avait été prêté, était d'ailleurs un peu moins puissant que ceux présentés aujourd'hui, avec un système en beta test, et pourtant il m'a servi de téléphone professionnel pendant une semaine !

[2] Hey, Vivien, Mounir, Anthony, Kaze et tous les autres, vous déchirez grave!!

lundi, décembre 10 2012

Firefox OS, ça va dépoter

Depuis 3 ans, dans le cadre d'un partenariat entre Mozilla et la Miage d'Evry, je donne des cours sur les technos Mozilla, accompagné de Fabien Cazenave les deux premières années, et de David Rajchenbach-Teller en cette 4ième année. C'est le projet CoMETE. Jusqu'à maintenant, on enseignait les technologies pour réaliser des extensions pour Firefox (XUL, XBL, XPCOM etc...), mais cette année, nous avons décidé d'enseigner le développement web ++, avec les toutes dernières technologies proposées non seulement par Firefox, mais aussi par Firefox OS. Autant dire que les étudiants auront des cours à la pointe (pas comme moi quand j'étais à la Miage d'Orsay en 1996-98, où on nous enseignait encore du Cobol alors que Java faisait fureur :-/ ).

Je suis le projet Firefox OS (aka Boot 2 Gecko) depuis le début. Vivien, l'un des développeurs de Firefox OS, m'avait fait l'honneur de me montrer les toutes premières versions de Firefox OS fonctionner sur un smartphone. C'était en Octobre 2011, 3-4 mois après le démarrage du projet et il y avait déjà des applis 100% HTML, dont celle pour lancer un appel téléphonique ! (bon, un bug empêchait de raccrocher :-) ).

Cependant, je n'ai pas non plus suivi le projet de très près (comprendre : je ne suis pas les commits comme autrefois sur Firefox, et je ne contribue pas - encore ?- au projet). Mais pour préparer ces cours, je suis bien obligé de me plonger dans toutes ces webAPI, dans la réalisation d'une WebApp, ou encore compiler/tester Firefox OS sur mon laptop.

Pour rappel, Firefox OS est un système d'exploitation pour smartphone (et dans le futur pour tablette), dont la particularité est que toutes les applications, y compris le "bureau", sont des applications HTML. En gros, Firefox OS, c'est seulement trois principales couches logicielles :

  • un noyau linux et des drivers adéquates
  • Gecko, le moteur de rendu de Firefox, accompagné de son moteur Javascript
  • des applications 100% HTML5/JS

Et bien sûr, pour que les applications puissent accéder au matériel (comme démarrer un appel téléphonique, envoyer un SMS, utiliser le capteur photographique...), il faut des nouvelles fonctions JS utilisables dans le fichier HTML de l'application. Ce sont les fameuses WebAPI, que Mozilla ne se contente pas d'ajouter, mais aussi de proposer à la standardisation au W3C.

Je dois dire que je suis de plus en plus enthousiaste sur Firefox OS. On va pouvoir réellement tout faire, y compris dialoguer avec les autres applis via les WebActivities. On va pouvoir porter tout ces nouveaux Jeux HTML reposant sur WebGL, vers FirefoxOS, en profitant de nouvelles api (faire vibrer le téléphone, utiliser l’accéléromètre...). L'interface actuelle de Firefox OS montre ce que l'on peut faire avec les transformations et animations CSS3 pour tout les petits effets graphiques. Bref, on va pouvoir refaire le monde avec des technologies que finalement bon nombre de développeurs maitrisent déjà (HTML, JS, CSS), à savoir des technologies standards.

Plus je vois Firefox OS avancer, évoluer, plus je me dis que Mozilla va réussir son pari, celui d'offrir une réelle alternative à IOS et à Android, comme Mozilla l'avait réussi avec Firefox dans un tout autre contexte. Les sceptiques diront que d'autres ont déjà essayé (WebOs par exemple), mais comme l'a écrit Daniel, Firefox OS n'est pas qu'un simple navigateur posé sur un noyau, Firefox OS va plus loin, car Mozilla standardise. De plus, Mozilla ne fait pas ça dans son coin, il a des partenariats avec des opérateurs, en particulier Telefonica, qui vendra des abonnements+téléphones avec Firefox OS préchargé, dés le premier trimestre 2013 , au Brésil.

Vivement que je puisse m'acheter un smartphone et une tablette Firefox OS :-)

mardi, décembre 4 2012

FakeServerConf, une nouvelle lib pour vos tests PHP

Pour tester certains composants du framework Jelix, comme la partie "routage", j'ai besoin d'avoir des paramètres serveurs correctement définis, en particulier dans la variable globale $_SERVER. En effet, les tests étant lancés en ligne de commande avec PHPUnit, $_SERVER ne contient pas du tout la même chose que lorsque le script PHP est lancé par un serveur HTTP. Pire, pour une même URL, nous n'avons pas la même chose selon si PHP est lancé en CGI/FPM, ou si c'est le module PHP pour Apache qui est utilisé.

Bref, cela devient fastidieux dans un environnement de tests en ligne de commande de simuler un contexte HTTP.

C'est pourquoi j'ai crée cette petite bibliothèque, FakeServerConf. On lui indique le type de serveur que l'on veut simuler, et l'url que l'on demande (avec la méthode GET, POST, DELETE...), et FakeServerConf rempli correctement $_SERVER, $_GET et $_POST avec les bonnes valeurs. Vous n'avez plus qu'à tester vos classes qui utilisent ces variables. Et vous pouvez de plus tester avec les différents types de serveurs pris en charge par FakeServerConf. Pour l'instant il n'y a qu'Apache+mod_php et Apache +cgi ou fpm.

samedi, décembre 1 2012

Experience de désinfection d'espionnage web

Quand on surf sur le web, il faut savoir que l'on est de plus en plus pisté, tracké. Notre parcours est analysé, et permet alors aux régies publicitaires de vous afficher des pubs ciblées, ou encore à d'autres sociétés de compléter votre profil qu'elles ont déjà en partie, comme facebook,et google. Ces grosses entités commencent à tout savoir de vous. Et de moi. Et le gros souci, c'est que l'on ne sait pas ce qu'elle font de toutes ces données (en dehors des pubs). Vous avez des doutes sur le fait d'être pisté ? Lisez la suite.

Lire la suite...

vendredi, novembre 30 2012

La nouvelle API password dans Jelix

Il y a un mois je sortais les dernières versions correctives de toutes les branches actives du framework Jelix. Et ça fait un mois que je pensais à écrire ce billet :-).

La raison de ce billet est que ces versions correctives inclues non seulement quelques corrections de bugs comme d'habitude, mais aussi une amélioration dans le système d'authentification de Jelix : il peut désormais utiliser la nouvelle API de mot de passe que proposera PHP 5.5. Une bibliothèque en PHP, password_compat permet de l'utiliser dés maintenant en attendant la sortie de PHP 5.5 et est incluse dans Jelix. J'y ai d'ailleurs apporté quelques modifications pour l'utiliser sur Debian Squeeze.

Pourquoi utiliser cette API ? Parce qu'elle est très simple à utiliser, tout en apportant un hachage fort des mots de passe en utilisant l'algorithme Blowfish par défaut. Dans PHP, on a déjà des fonctions pour encrypter fortement du contenu. Mais il faut avouer que c'est particulièrement compliqué à utiliser.

Pour en savoir plus sur cette nouvelle API, voir l'article de Pascal Martin.

Abandonnez md5, sha1 pour hacher vos mots de passe et les stocker en base de données, ou au moins ajoutez un sel aléatoire. Préférez SHA2 ou supérieur, bcrypt, blowfish, qui sont plus robustes aux attaques de type "brute force", aux "rainbow tables" etc...

dimanche, septembre 30 2012

Sous utilisation de la freebox

J'ai une freebox depuis quelques années. J'ai migré vers la V5 quelques mois avant la sortie de la v6. C'est bête me diraient certains. Ou pas. En fait, j'aurais mieux fait de rester avec une V4. Car le constat après 2 ans d'utilisation est amère : j'aimerais bien moins payer si je le pouvais.

En effet, je n'utilise au final que la partie "modem" et "routeur" de la freebox : pour faire du web, lire mes mails, faire du ssh, irc etc..

Le téléphone ? je ne l'ai jamais utilisé. Bon, faut dire aussi que je n'ai transmis le numéro à personne. Mais mon mobile étant suffisant....

Les centaines de chaînes télé ? Je ne les regarde pas. Déjà avec la V4, j'avais vite arrêté de zapper tellement il y a de chaînes, et tellement il y a de programmes inintéressants. Ou alors il faut passer à la caisse pour avoir accès aux chaînes susceptibles de m’intéresser. Et encore faut-il que la qualité d'image soit là. Je constate trop souvent des "patés" dus à de trop fort taux de compression. La TNT est de meilleure qualité globalement. Donc je reste avec les chaînes de la TNT, en passant par ma télé en direct bien sûr, parce que le module TNT de ma freebox n'a jamais fonctionné.

Le magnétoscope numérique ? comme il y a 20 ans pour mon magnétoscope VHS, ça m'est arrivé d'enregistrer un épisode d'une série par exemple, mais j'oubliais toujours de regarder l'enregistrement. Bref, je n'utilise pas.

Les jeux et autres applications : qualité trop moyenne. Et puis ça commence à faire quelques années que je ne joue plus et que je n'ai plus vraiment de temps pour ça.

Le wifi ? pas de wifi chez moi. Le filaire (ethernet 1Gb) me suffit.

Le NAS de la V6 ? Il me serait inutile car J'en ai déjà un. Et puis "bizarrement", je n'ai pas envie de confier mes données à une boite noire,

Bref, je paye au final des services dont je ne me sers pas. D'ailleurs j'ai fini par débrancher le boitier multimédia.

J'ai bien pensé à changer de fournisseur d'accès internet, mais le souci est que plus aucun ne propose une offre ADSL simple, à un prix inférieur. Il y a quelques jours encore, OVH en avait une, mais elle a disparu. Avec FDN, le tarif est à peine inférieur qu'une offre triple play (certes, on a une neutralité totale du réseau..). Et free reste le moins cher parmi toutes les offres "machinbox". Alors voilà, je suis "condamner" à utiliser une "freebox".

jeudi, août 30 2012

Sortie de Jelix 1.4

Diantre ! 10 mois que je n'ai pas parlé de mon framework PHP Jelix sur mon blog ! Cela date de... la sortie de Jelix 1.3 :-) Et dire que quelques semaines après la 1.3, j'avais annoncé sur la mailing-list que j’accélérerais la cadence des sorties à 2-3 mois. C'est raté. Il faut croire que le rythme est bloqué à 10 mois.

Donc voilà Jelix 1.4 avec sa tonne de nouveautés : cache HTTP, autoload PSR0, templates virtuelles, amélioration de la prise en charge des codes langues, des modules de plus en plus autonomes etc...

Le retard de cette sortie est due à plusieurs choses :

  • Déjà, les vacances d'été, chantiers chez moi etc : j'ai été souvent offline ces dernières semaines :-)
  • La faute à pas de temps
  • La mise en place de docs.jelix.org
  • La libération du code source des sites de Jelix.org

La faute à pas de temps : en effet, j'ai eu un contrat de plusieurs mois (qui se termine), sur un projet hyper intéressant (à base de XUL/javascript), mais plutôt éloigné de chez moi. Donc beaucoup de temps de trajets et de fatigue. Résultat, avec les autres tâches à coté, le projet n'a pas avancé aussi vite que j'aurai voulu

La réalisation du site http://docs.jelix.org a permis de migrer les manuels, du wiki Dokuwiki vers un nouveau système de wiki basé sur Git, et que j'ai développé avec Jelix bien entendu : Gitiwiki. J'en parlerai plus longuement une autre fois. Basculer la documentation sur Git a permis d'accélérer les améliorations du manuel : je peux maintenant écrire en offline (dans le RER par exemple). Par contre, plus en online...Temporairement... Gitiwiki fonctionne pour le moment en lecture seule. Il faut encore que je développe la possibilité d'éditer en ligne :-) (c'est en cours). Cependant, cela ne devrait empêcher personne de contribuer au manuel : il est sur github.

Enfin, comme je disais, j'ai aussi passé du temps à libérer le code source du site jelix.org et bien sûr le code du nouveau site docs.jelix.org, dans l'espoir d'avoir plus d'aide sur tout ce qui fait tourner le projet ;-).

Et puis comme je ne suis pas toujours discipliné, j'ai préféré ces 2-3 derniers mois, à commencer à développer Jelix 1.5 plutôt que de paufiner Jelix 1.4 !

samedi, juin 30 2012

Ma période HP48, Minitel et RTC-ONE

Au début des années 90. Je délaissais mon TO9, pour commencer à manipuler le PC flambant neuf de mon père, en découvrant le langage C. Mais j'étais aussi à fond sur la programmation de la calculatrice HP48.

Lire la suite...

mercredi, juin 13 2012

De retour avec KDE

Il y a un peu plus d'un mois et demi, j'avais tenté un truc. Mon laptop a deux cartes graphiques, une intégré au chipset intel, et une carte séparée, NVidia. Cela permet, pour les systèmes d'exploitations qui prennent en charge, de pouvoir utiliser l'une ou l'autre carte graphique en fonction des besoins des applications, et donc optimiser la consommation en énergie. C'est la fameuse fonctionnalité "Optimus".

Sous Windows, pas de souci. Sous Linux par contre, aucun support (j'étais alors sur une Ubuntu 11.04 32bits). C'est soit la carte faiblarde Intel, soit la carte puissante NVidia, mais il faut alors désactiver l'Optimus dans le bios pour pouvoir l'utiliser. Et l'ennui c'est que, bien qu'il n'y ait qu'une carte utilisée par le système, la deuxième est toujours active, donc pompe du courant pour rien. Et comme j'ai choisi la NVidia, j'ai alors une autonomie plutôt limitée, à peine deux heures :-/

Il y a toutefois un projet pour apporter ce support : Bumblebee. Cela semble prometteur même si un peu embêtant à utiliser puisque si on veut le support NVidia pour une application, il faut la lancer avec un utilitaire fourni.

Cependant, fin Avril, je tente le coup, j'avais du temps, je passais des vacances en Bretagne. J'installe les paquets, mais au final rien ne fonctionne. Problème au redémarrage au niveau de X-Windows. Pire, la désinstallation des paquets ne règle pas le souci. J'essaye de régénérer les fichiers de boot etc, rien. Que dalle. Mon système est flingué. Merci Bumblebee.

Je n'avais pas envie de passer toutes mes vacances à tenter de régler le problème. J'aurai plus vite fait de tout réinstaller. Et ça tombe bien, il fallait que je mette à jour vers une version plus récente d'Ubuntu. Cependant, Unity ne me plaît pas du tout, les dernières avancées dans Gnome ne me satisfont pas.

Et si je retentais KDE ? KDE, mon environnement de bureau fétiche jusqu'à la sortie de sa version 4. J'avais été pas mal déçu par KDE 4.1, et j'étais alors resté sous Gnome (qui était pré-installé sur le laptop que je m'étais payé quelques mois auparavant). Depuis 4 ans, tous les problèmes ont dû être réglé, me dis-je. Hop, c'est parti pour la dernière Kubuntu.

Et je ne suis pas déçu. Effectivement la plupart des reproches que j'avais n'ont plus lieu d'être. C'est réactif, fluide, agréable à utiliser. Il y a bien quelques petits trucs qui me chiffonne (comme le fait que dès qu'on approche une fenêtre du haut de l'écran, KDE met cette fenêtre en plein écran, et je n'ai pas encore trouvé comment désactive ce truc, Merci à Hello dans les commentaires, c'est réglé :-) ), mais ça reste supportable. Depuis un mois et demi donc, je suis très satisfait de KDE4.

Bon, par contre, malgré que je profite d'un noyau plus récent, toujours pas de prise en charge d'Optimus. Ni d'ailleurs de mon lecteur d'empreinte, ni de mon touchpad multitouch (pour ce dernier, j'ai ouïe dire que c'était réglé dans le tout dernier noyau...). Cependant, depuis un an que j'ai ce portable [1], le lecteur de carte SD, le firewire et les diverses fonctions de mise en veille fonctionnent enfin sans bugger ! Avec Linux, il faut être patient :-)

Aller Dell, un petit effort pour fournir des drivers linux (même proprio, je m'en fiche) avec vos nouvelles machines, comme dans le temps...

Notes

[1] un Dell latitude e6520 avec toutes les options au maximum :-)

vendredi, mai 4 2012

Recherche de développeurs XUL

Firefox, avec ses 25-30% de part de marché des navigateurs, est un projet très vivant, et des entreprises ont souvent besoin de réaliser des extensions pour Firefox ou des applications basées sur Firefox. La technologie utilisée est donc XUL, XPCom, et cela peut aller jusqu'à des Firefox personnalisés qui nécessitent recompilation etc...

À Innophi, société que David Marteau et moi-même avons fondé il y a 2 ans, nous avons donc régulièrement des demandes de prestation pour des projets XUL. Cependant il nous arrive d'en refuser faute de disponibilités. Aussi, si vous proposez des prestations avec les technologies XUL, que vous soyez une société de service ou un développeur freelance, nous pourrions avoir des projets pour vous. Contactez-moi : laurent@innophi.com ;-)

dimanche, avril 1 2012

jsDatasource, a component for XUL templates

I just released publicly a new version of a component : jsDatasource.

This component allows to use javascript objects as datasource for XUL templates. You can use it in your own extension or XUL applications. It becomes easy to use XUL templates with js datasources!

I started this component in 2009, for a software, ZoomCreator, when I worked for Zoomorama. Even if it was written under a free licence, I didn't release it at this time (well, I had so much work..). And for a recent customer project, I need it with some improvements, like the support of recursion or the support of sorting. So I improved it, and I just open a public repository :-)

I hope it will help some XUL developers :-)

vendredi, mars 16 2012

Un serveur pour des tests ? Node.js bien sûr !

Pour une grosse extension pour Firefox (un projet client), j'ai réalisé entre autre chose un composant qui agit sur des pages web. Pour tester ce composant (avec des tests unitaires bien sûr !), j'avais besoin d'un serveur web servant des pages HTML statiques.

J'avais bien pensé à apache, mais ça m’embêtait de déployer toute une artillerie comme WAMP, surtout sur la machine de travail que l'on me prête, pas très performante (et sous windows mais bon, c'est une autre histoire... :-) ). Et puis ça m’embêtait de configurer un serveur web tout court. Donc exit aussi Nginx.

Bref, je voulais un truc très simple, très light. Je me suis alors tourné très vite vers node.js. Téléchargement, lancement de l'installateur, click, click, c'était installé.

J'ai choppé ensuite un script JS implémentant un serveur http de fichiers statiques, pour node.js, comme on en trouve par dizaine sur le web. Une ligne de commande plus tard, j'avais un serveur qui écoutait patiemment le port 8080.

En moins de 5 minutes, j'étais prêt à écrire mes tests. J'ai trouvé ça génial :-) Ça c'est de la productivité !

mardi, février 21 2012

Autoload avec modération

Dans un billet de Loïc d'Anterroches qui cherche à comprendre pourquoi Symfony 2 est très lent dans les benchs qu'il a fait, j'ai appris via un commentaire que Symfony 2 chargeait par défaut tout un tas de truc (avant d'arriver à l’exécution même du code propre à la page), et notamment donc, des "autoloaders" pour chaque composant. D'ailleurs, un "conseil" de la part d'un "expert" SF2, indique qu'il faut désactiver des choses, comme par exemple l'autoloader pour swiftMailer, qui serait l'une des causes de ralentissement. La conséquence ne m'étonne guère au final. Par contre que SF2, soit disant un framework performant, le fasse par défaut, m'a étonné, voir même stupéfié.

Lire la suite...

jeudi, octobre 20 2011

Jelix 1.3 et au delà

10 mois après la version 1.2, voici la version 1.3, avec son lot de nouvelles fonctionnalités. J'ai pu amélioré et stabiliser cette version 1.3 sur des projets clients, dont un gros projet de plusieurs mois (application B2B), et qui tourne maintenant en production.

Pour ceux qui n'ont pas suivi l'actu Jelix ces dernières semaines ou mois, sachez que ça a pas mal bougé avec l'aide des contributeurs :

  • migration des sources de bitbucket vers github
  • migration des services jelix.org sur un nouveau serveur plus puissant
  • nouveau site, booster.jelix.org, qui référence les modules et plugins existants pour jelix, réalisés par des utilisateurs et contributeurs.
  • une nouvelle charte graphique du portail est en préparation, avec une toute nouvelle et belle page d'accueil. Le forum sera aussi migré vers la version 1.5pre de havefnubb.

Et puis je réfléchi en ce moment à la version suivante. J'ai bien sûr des tonnes d'idées d'améliorations, dont pas mal dorment dans le bug tracker depuis des lustres. Reste qu'il faut les prioriser, et puis décider si c'est le moment ou pas de casser des choses pour mieux les refaire. Voir de casser des choses pour profiter de ce qui est déjà fait ailleurs (comprendre, réutiliser des composants existants).

La mode est au 2.0 en ce moment : Symfony 2.0, CakePHP 2.0, et bientôt Zend 2.0. La concurrence est rude et soutient un rythme plutôt soutenu :-). Jelix était en avance sur certains points. Il va falloir garder cette avance, et rattraper certains retards. Un challenge continuel.

Par exemple, Symfony 2 vient d'intégrer le concept de "bundles", qu'on appelle "modules" ici dans Jelix. Jelix a ce principe de module[1] depuis sa naissance en 2006, et on peut même dire que ça date depuis 2002 si je me souviens bien, puisque je l'avais implémenté pour la première fois dans Copix, l'ancêtre de Jelix. Symfony 2 et CakePHP 2 mettent aussi plus en avant l’interaction avec des objets représentant la requête et la réponse HTTP, un concept dominant dans Jelix depuis ses débuts. Mais Jelix a perdu du terrain par exemple sur les problématiques de cache. Ainsi il n'y a pas encore de prise en charge du mécanisme de cache de HTTP. Même si il est tout à fait possible de le faire actuellement "à la main". C'est quelque chose que l'on va améliorer (un patch est en review ;-)), entre autres choses (par exemple la couche ORM mériterait qu'on la rénove)..

Certaines améliorations vont pouvoir être faites sans casser les applis existantes, donc qui auront leur place dans une version 1.4 ou 1.5. Mais d'autres devront être faite dans une version 2.0 qui cassera quelques compatibilités. Cependant, pour le moment, la vision que j'ai d'un Jelix 2.0, ne remettra pas en cause fondamentalement les principes du framework. Je pense qu'il y aura moyen de faire des profondes modifications dans le noyau, sans rendre totalement incompatibles les modules existants. En effet, l'organisation des sources dans les modules Jelix est suffisamment structurée et éprouvée pour pouvoir ajouter d'autres types de fichiers sans bouleverser le reste. D'ailleurs, une des tendances des frameworks, d'après ce que je vois, est de structurer assez fortement l'organisation des sources, et de le faire de manière à ce que ce soit modulaire, extensible. Ce que fait Jelix depuis 6 ans maintenant ;-).

Bref, proposer toujours plus de fonctionnalités, en évitant de trop casser l'existant :-)

Une dernière chose, Jelix est un projet encore à "taille humaine". Tout contributeur potentiel peut y trouver sa place facilement[2], et il y a de quoi faire ;-). Et nous, les contributeurs actuels et moi, sommes ouvert à toute discussion, pour permettre aux développeurs de construire leurs projets de manière toujours plus efficace et plus robuste.

Venez imaginer avec nous le framework du futur[3]!

Notes

[1] Je dois reconnaître que Symfony pousse le concept un peu plus loin, mais il va suffire de peu de chose dans Jelix pour être "à niveau"

[2] ce qui est plus difficile dans un projet à plusieurs centaines de contributeurs

[3] en PHP bien sûr ;-)

vendredi, octobre 14 2011

Adieu Mr Ritchie

L'inventeur du langage C et co-créateur d'Unix, Dennis MacAlistair Ritchie, est mort. Malgré sa relative anonymie (vis à vis du grand public en tout cas), ses travaux ont énormément bouleversé l'informatique et continue d'influencer l'informatique d'aujourd'hui. Linux, les systèmes BSD (dont MacOS) et donc tout ce qui motorise les équipements les plus modernes comme les tablettes et les smartphones (Android, iOS), dérivent des créations de Dennis.

Le langage C et Unix sont les technologies qui ont marqués mes années d'études. J'ai découvert le C et le C++ au début de l'année 91 pendant mes années lycées, avec mon premier PC, équipé de Borland C++. J'ai tout de suite adoré (faut dire que ça me changeait du Basic 128 du TO9). Tellement adoré que les matières sur le C/C++ et Unix en IUT m'ont permis d'avoir des notes très élevées, moi qui était un élève moyen en général.

Je peux vous dire que quand j'ai pu enfin utiliser linux sur mon PC, puis quelques temps après, reléguer définitivement Windows sur une partition secondaire de mon disque dur, ce fut jour de fête.

Sale période en ce moment pour les figures de l'informatique, pour ceux qui ont marqué mes débuts en informatique. Même si pour moi Dennis a fait bien plus que Steve Jobs pour l'informatique.

jeudi, septembre 1 2011

Jelix : de Mercurial à Git

Depuis deux ans déjà, j'ai complètement abandonné subversion et utilisé Mercurial pour gérer le code source de mes projets. J'avais choisi Mercurial au départ parce que je devais l'utiliser pour contribuer à Firefox. J'avais alors apprécié le produit et l'avais adopté pour mes autres projets personnels. Pour les projets professionnels comme chez Zoomorama, et ou pour Jelix, nous (moi et mes collègues ou les contributeurs) avions étudié bien sûr Git avant de choisir Mercurial. À l'époque, Mercurial paraissait plus simple d'utilisation : des commandes plus claires, plus concises, moins verbeuse. Il avait aussi un meilleur support multi-plateforme en particulier sous windows. Ce dernier critère me paraissait essentiel par exemple pour Jelix, car j'avais des contributeurs sous Windows.

Lire la suite...

- page 1 de 46