Oracle Application Express (APEX) : Un outil intéressant pour certains types d’applications Web ?

24 mars 2010

J’ai dernièrement expérimenté avec un outil fourni avec la version gratuite de la base de données Oracle. J’ai même fait une petite application pour le groupe DBA chez mon employeur. APEX est un outil de développement rapide d’application Web basée sur la base de données Oracle, et ce avec un minimum de code. J’étais pourtant extrêmement sceptique par rapport à cet outil de au départ, et ce, pour plusieurs bonnes raisons. Premièrement, il va à mon avis à l’encontre des courants actuels de développement Web, (par exemple dans Rails, Grails et autres MVC) où la base de données est dérivée du modèle d’affaire et non l’inverse. Ce n’est pas non plus le genre d’outil que nous pouvons voir sur le « cloud » non plus. On pourrait même dire que la façon de développer va à l’encontre des courants de développement passés (au moins depuis 2000 / 2001) puisque le tout génère du PL-SQL, le langage de procédures stockés de Oracle. Non, il n’y a pas de middleware. On retourne loin dans le passé avec cela. Je me rappelle bien avoir développé des applications Web directement en PL-SQL au début de ma carrière, et je sais bien que ce n’est pas parce qu’on utilise un langage dans la base de données qu’on ne peut pas utiliser certains des principes du modèle vue contrôleur. Par contre, quand on parle de développement Web en PL-SQL, ça fait rire un peu, parce que ça fait longtemps qu’on ne fait plus cela.

Malgré mon énorme (euphémisme) scepticisme, j’ai regardé une présentation organisée par OraGec (lien) le groupe d’intérêt Oracle à Montréal. J’ai pu y remarqué deux choses : APEX n’est pas vraiment dans le radar des gros sous chez Oracle. Il y a aussi une communauté tissée serrée qui fait des applications à haute disponibilité avec. On pourrait dire qu’APEX est capable de créer des applications internes rapidement, très fonctionnelles, sans avoir dix couches de redirections de middleware. Lorsque l’objectif est de mettre une base de données existante sur l’intranet (ou le Web aussi), seulement quelques requête SQL sont nécessaires pour générer le tout. Cela peut aller assez loin aussi, ça supporte les Web Services, des contrôles peuvent être créés, on peut évidemment faire du transactionnel avec, etc… Ce type d’application prendrait beaucoup plus de temps à créer avec des serveurs d’applications et des framework Java (ou autre), même avec Grails. Dans ma tête, le clique s’est fait et je me suis dit que dans certaines situations (et peut-être dans d’autres) APEX pourrait bien être une recette secrète qui diminue le coup de développement. J’ai posé les questions habituelles du trippeux de standards Web : est-ce que tout cela génère du code conforme et accessible ? Évidemment non, les contrôles ne respectent pas encore la section 508 (loi aux États Unis), en tout cas pas dans la version actuelle (4), mais peut-être dans la prochaine version. APEX est donc DOA pour des sites Web traditionnels (le SEO n’est pas évident à faire non plus). Toutefois, on peut peut-être y faire qqch. Il est possible de modifier les templates HTML que l’outil génère. Ce serait certainement possible d’améliorer les choses de ce côté. Je me suis dit que ce serait intéressant d’organiser une présentation en collaboration avec le W3Québec pour parler du templating de ce type d’application. (ergonomie, etc). J’ai donc proposé la chose au groupe OraGec et au W3Québec et le résultat de cela sera présenté lundi prochain, le 29 mars 2010.

Ceci dit, j’ai développé un petit qqch avec l’outil, et malgré le fait que le SQL n’est pas ma majeure, et que l’outil génère ce que je fais à la main habituellement, le temps de développement fût très court, probablement aussi court que si je l’avais fait avec du Grails. Quand on travaille avec une BD déjà montée, ça va très bien. Si vous travaillez dans une équipe de DBA et de développeurs de base de données, ça utilise très bien leurs connaissances et cela donne qqch de somme toutes très bien.

Je me dis qu’il faut être ouvert dans le type d’applications Web que l’ont construit. Autant que j’aimerais que ce soit le cas, mon expérience me dit qu’il n’y a pas de « one size fits all » dans les frameworks d’application (particulièrement les rapides). Vous avez beaucoup d’investissement dans les BD Oracle, ça vous tente de faire du développement d’applications Web rapides qui n’ont pas nécessairement besoin d’être accessible ? Prenez la peine d’évaluer Oracle Apex, à mon avis, ça vaut le coup ! Qui sait, les contrôles seront peut-être accessible pour la prochaine version. (Anyway, les contrôles ne sont pas nécessairement accessibles avec les frameworks 6 fois plus lourds alors…)

Vous êtes dans le monde des bases de données Oracle et vous aimeriez en savoir plus sur les interfaces Web (accessibles et conformes), venez faire un tour au W3Québec. Vous êtes spécialistes de front end, mais voudriez travailler dans des projets plus près de la BD, faites au tour à la prochaine réunion du W3Québec, (et devenez membres tant qu’à y être) ! Une des choses que je considère importante dans les groupes d’intérêt comme le W3Québec, c’est qu’il ne faut pas rester dans des silos et rester ouvert. Travailler avec des applications du type de APEX nous amène à avoir des points de vues différents et faire des rencontres que nous ne ferions pas nécessairement. Augmentons la discussion et les échanges !

Quelques liens :

Tiens, je viens de découvrir qu’il y avait un groupe d’intérêt spécifique à APEX au Québec : ApexQuébec. Faudrait bien que je les contacte!

Retour sur Confoo.ca

17 mars 2010

Premièrement, j’aimerais remercier la gang de confoo.ca (PHP Québec, Python Montréal, Ruby Montréal, OWASP et bien sûr le W3Québec) pour cette très bonne conférence. Ce fût vraiment intéressant. Les présentations étaient de très bonne qualité et le tout était, il faut l’admettre, ridiculement pas cher pour la qualité. C’est sûr, il y avait moins de bébelles dans les sacs de conférence (et pas tant de commanditaires que cela), mais si vous allez à une conférence pour cela, je pense que vous avez des problèmes avec vos priorités ;-) !

J’ai bien aimé le keynote de Mark Pilgrim sur HTML5. Je ne m’attendais pas à grand chose je dois l’admettre, car je n’ai pas vraiment confiance en la gang du WHATWG. Avec tout le FUD que les membres du WHATWG sortent (ex : faire croire que Adobe sont contre le HTML5 et veulent le bloquer), j’avais peur qu’il nous sorte des niaiseries du genre. Mais non, son keynote parlait de grandes lignes du HTML5, et c’était très bien. En fait, il parlait aussi que le HTML5 dans le fond, c’était l’ensemble des nouvelles technologies et spécifications entourant ce qui roule dans un navigateur (HTML5, CSS3, Javascript, Géolocalisation, etc). Il n’a pas tort. Enfin, il a très tort, mais comme le WHATWG (et Google, et Apple, etc) possède le leadership dans tout ce qui est nouvelles spécifications Web, ce qui pourrait être vu comme mensonge va devenir réalité (avec la pub et les conférences et etc), un peu comme dans 1984 de Georges Orwell. Faut admettre que c’est de la bonne manipulation pour faire entrer dans le HTML5 les choses que le W3C ne veut pas inclure dans celui-ci (comme Microdata et la géolocalisation, par exemple). Dans sa présentation, on pouvait y voir une slide qui donnait les dates où Netscape découvrait le Web (et le ruinait), et où Microsoft découvrait le Web (et le ruinait). Il a oublié la date où le WHATWG découvrait le Web (et la ruiné), car je commence à croire que qqpart qu’il faut ruiner le Web pour le faire avancer.

Sa présentation m’a aussi fait réaliser que nous changeons de paradigme. Au lieu de penser à un ou des standards avec une version spécifique et sur lequel nous nous basons pour construire un site Web, nous choisissons à partir d’un « melting pot » un « set » de technologies qui sont compatibles avec les agents utilisateurs que nous visons. En effet, nous pouvons bien faire une application HTML(5) qui est faite spécifiquement pour un iPhone ou encore qui sert de widget sur un système d’exploitation et qui ne roule pas nécessairement sur le Web. Cela fait contraste avec XHTML 1.1, qui définissait des modules qui eux même pouvaient ou pas être supporté par des agents utilisateurs. La façon de faire de HTML ongoing est plus free for all, mais plus flexible. Au départ, je n’aimais pas l’approche trop n’importe quoi de HTML5, mais finalement, ce sera peut-être pour le meilleur, et cela n’empêche pas chacun des morceaux d’être très bien spécifié, même s’ils n’ont pas leur namespace à proprement dit. On va voir ce que cela va donner. Si on veut absolument suivre un standard plus strict, on pourra toujours choisir un style de codage comme on le fait dans les langages de programmation.

Cela m’a quand même ennuyé que M. Pilgrim ignore dans sa slide sur l’historique du Web les contributions des Zeldman, Meyer et autres WASP dans l’évolution des standards Web dans le marché. Mais bon, c’est probablement moi qui cherche des conspirations là où il y en a pas.

J’ai parlé à M. Pilgrim suite à sa présentation, je n’ai pas pu lui poser beaucoup de questions, sauf une : « Pourquoi tant de haine envers les balises « summary » et « longdesc ». » Il m’a répondu que c’était puisqu’elles ne fonctionnaient pas. Je ne peux pas vraiment m’obstiner avec ce point, je ne suis pas un spécialiste en accessibilité après tout. Supposément que les lecteurs de texte supportent ou supporteront les éléments qui remplacent ces deux attributs comme « aria-described-by ». Je me suis aussi involtairement proposé pour traduire son livre sur le HTML5 en lui posant la question si une traduction française serait disponible. Pas sûr que je vais avoir le temps, mais ce serait super cool si je pouvais le faire. Dernier point : M. Pilgrim a parlé de l’achat de ON2 par Google, et a spécifié qu’il ne pouvait rien dire de plus. Pensons que Google aimerait bien régler l’impasse des codecs pour l’utilisation de la balise video. Ce serait une très bonne chose. Sans contredit, Google est le leader à suivre en ce moment.

J’ai aussi discuté avec Joey Devila, un évangélisateur open source chez Microsoft : un gars bien sympatique qui joue de la musique industrielle avec son accordéon. Il m’a dit qu’Internet Explorer 9 aurait des choses pas mal intéressantes au niveau des standards Web. Je serais surpris qu’Internet explorer 9 supporte la balise « canvas », mais on a déjà vu plus bizarre. Après tout, la meilleure façon d’aider Silverlight est peut-être en premier lieu de faire mal à Flash. Les balises canvas et video seraient un bon moyen … Et puis, peut-être que Microsoft se rend compte que le marché de Silverlight est bien plus dans les intranets que sur le Web… ou encore qu’il y a une équipe chez Microsoft qui travaille vraiment sur les standards Web et les vends à l’interne. Ça ne me suprendrait pas du tout. C’est drôle de voir comment Microsoft essaie d’attirer les développeurs « open source ». Je ne suis pas certain que cela marche à tout coup, mais cela ouvre sûrement des opportunités intéressantes pour tous. (mise à jour : IE9 va supporter XHTML et SVG : Les poules ont des dents!)

Les autres points forts de cette conférence ont été pour moi la présentation de Elie Sloïm sur la qualité du Web et celle de Vincent François (AccessibilitéWeb) sur l’accessibilité au gouvernement du Québec.

J’ai aussi présenté à la « unconference » un petit qqch sur le HTML5, mais malheureusement, le tout ne fût pas assez publicisé pour que beaucoup de personnes y soient présentes. Par contre, le tout m’a inspiré le billet que je vous présente ici.

Je souhaites beaucoup de succès à l’équipe de confoo.ca, et j’espère que je pourrai y contribuer plus l’année prochaine.

Quelques liens en rapport avec ce billet :

La guignolée du Web

20 décembre 2009

En ces temps de magasinage tardif, il ne faut pas oublier que nous sommes chanceux et donner un peu à ceux qui le sont moins. Je vous encourage donc à faire une petite bonne action cette année en participant à la Guignolée du Web. Je sais, je suis un peu à la dernière minute pour mettre la bannière sur mon blogue, mais vaut mieux tard que jamais ! Sans plus tarder, voilà la bannière (que vous pouvez retrouver sur le site officiel de la Guignolée du Web)

Donnez - La guignolée du Web : Le Web québécois s'unit pour venir en aide aux gens dans le besoin.

Assemblée générale du W3Québec – 17 novembre 2009

16 novembre 2009

N’oubliez-pas, l’assemblée générale annuelle du W3Québec est demain, le 17 novembre 2009 à 19:45 à l’Hôtel Intercontinental. Il ne reste presque plus de temps pour s’inscrire. Au plaisir de vous y voir en grand nombre!

Retour sur la formation Silverlight donnée par le groupe .NET de Montréal

30 octobre 2009

Le samedi le 24 octobre 2009, je suis allé faire un tour à la formation Silverlight organisé par le groupe d’intérêt .NET de Montréal. J’aimerais premièrement féliciter et remercier le groupe .NET de Montréal pour la très bonne organisation de cette formation, qui était presque gratuite (fallait être membre, 25$). Comme à leur habitude, ils avaient des conférenciers d’un très bon calibre et ce fût fort intéressant. Personnellement, quand Laurent Duveau est là et que ça ne coûte pas trop cher, je m’arrange pour me déplacer, car il est très efficace pour bien présenter les sujets aux développeurs.

J’ai quand même quelques petits bémols par rapport à la journée (qui n’engagent que moi) et une recommandation pour la communauté de développement Web (.NET et + ). La journée était au niveau de Silverlight assez avancée, et comme je fais peu (ou pas) de Silverlight (je fais la promotion de standards ouverts après tout, Silverlight n’en est pas un), j’ai eu un peu de difficulté à suivre parfois. Aussi, j’aurais aimé que le code de projet soit disponible à l’avance. J’ai passé la soirée d’avant à installer Windows Server 2008 éval.+ Expression Blend éval. + Visual Studio 2008 express sous Parallels (ça se fait pas mal bien en passant) et j’aurais bien aimé pouvoir suivre en même temps sur mon Macbook Pro. Les meilleures présentations que j’ai suivies dans ma carrière (en fait, celles qui ont eu un impact long terme sur moi) sont celles avec lesquelles j’ai pu suivre et exécuter le code avec mon portable en même temps que le présentateur. J’ai quand même réussi à faire cela en partie avec la présentation de Guy Barrette sur Expression Blend et je dois admettre que ça démystifie un peu les outils type Flash pour moi. (Quand je regarde un IDE pour Flash, c’est en général assez rébarbatif pour moi, j’en ai déjà fait, mais c’est pas ma spécialité ! ).

Le choix de la salle était très bien aussi, on voyait très bien les présentations et les problèmes de sons n’étaient pas si pires que cela (mais il faut dire que je me suis placé en avant, pour ne rien manquer, ça fait Nerd je sais, mais c’est ce que je suis).

Microsoft était là aussi et son représentant a mentionné quelque chose qui m’a laissé perplexe et dont j’aimerais bien avoir la preuve aussi. Il a spécifié qu’un des meilleurs avantages de Silverlight sur Flash était son accessibilité. Oui, oui. Je sais qu’Adobe fait beaucoup d’effort de ce côté, mais je ne savais pas que Silverlight était encore plus accessible. Moi évidemment, je veux des preuves et j’aimerais bien qu’il y ait une étude sur les capacités d’accessibilité de ces deux technologies. Les seuls que je connais qui seraient potentiellement capables de faire cette évaluation sont nos collègues d’AccessibilitéWeb. Alors je vais faire un appel à tous : Pouvons nous soit financer ou faire nous même une comparaison sérieuse de l’accessibilité de Silverlight et Flash pour différents type de projet (expérimentiels, Web, application Web et application intranet / portail). Une telle étude à mon avis aurait une très grande valeur et pourrait orienter tant Adobe que Microsoft sur les problèmes de leurs plates formes (tant qu’a y être, on pourrait ajouter HTML5 dans le lot, pour que la comparaison soit complète pour les RIA). Enfin, j’en parle comme cela, je sais que cela prendrait des assez gros sous pour faire une étude sérieuse et qui n’est pas partisane. Mais ce serait super utile pour la communauté.

Pour Silverlight comme tel, je crois qu’en tant que technologie, elle a beaucoup d’avenir dans les intranets et les applications riches Web d’entreprises. J’allais dire dans les entreprises 100% Microsoft, mais Silverlight roule quand même assez bien sous le Mac et même Linux, et ce, parfois même mieux que les extensions propriétaires HTML de Microsoft. J’ai hâte au jour où les interfaces de Sharepoint seront refaites en Silverlight, ça va mieux marcher sur Safari et Firefox que l’affreux HTML dégueux que cela génère en ce moment. J’aime mieux le HTML respectant les standards du W3C, mais entre un plugiciel et du HTML propriétaire, je préfère le plugiciel, au moins c’est maintenable.

J’aurais été jusqu’à dire que Silverlight a le potentiel de remplacer Visual Basic 6, mais malheureusement, l’impédance Expression Design / Expression Blend / Visual Studio rend le développement d’application basée sur Silverlight beaucoup plus complexe que du VB6. Je pense que Microsoft a un peu manqué son coup sur ce point. Je ne crois pas non plus que Silverlight ait une quelconque chance de sortir Flash du Web. Flash est encore des années lumières en avant de Silverlight pour les sites dits expérimentiels, pour l’animation et les petits jeux vidéo. Je pense même que la combinaison HTML5 Canvas et SVG risque d’être plus utilisée que Silverlight pour ce type de site. Les techniques d’optimisation pour les moteurs de recherches (SEO) en Silverlight me semblent aussi plutôt douloureuses (répétition simpliste en HTML du site, Google ne lisant pas le XAML, en fait c’est même présentement impossible, puisque les données sont cherchées dynamiquement par le code Silverlight lors de l’exécution, il faudrait que Google ait un interpréteur Silverlight pour chercher le texte.).

Je dirais par contre que si vous avez une vieille grosse application VB6 à migrer en version Web / intranet / extranet, Silverlight est une technologie à ne pas ignorer. En effet, les paradigmes d’interfaces clients serveurs sont parfois difficiles à porter en mode intranet, et il est difficile de réutiliser les connaissances .NET. Cela prends en général beaucoup de javascript pour arriver au même niveau d’interactivité. Silverlight donne la possibilité de réutiliser une partie des connaissances de votre équipe et l’expérience utilisateur final aura de bonnes chances d’être plus proche de l’original. Silverlight ne règle toutefois pas les problèmes de performances perçues par les utilisateurs lors d’appels AJAX. En fait, l’expérience est très semblable à du AJAX en termes de vitesse. Je crois que Microsoft devrait essayer d’améliorer ce point pour le rendre aussi rapide que du client serveur traditionnel.

Un autre point important, et ça vaudrait peut-être la peine que je fasse un billet sur ce sujet, est qu’une application Silverlight nécessite un graphiste et ou un designer d’interface qui utilise un logiciel différent du développeur. Dans le cas d’une application client serveur, le développeur est celui qui crée les interfaces à partir de Visual Studio. Dans le modèle Silverlight, ce ne sera pas lui, mais un designer qui utilise Expression Blend et Expression Design. C’est cette impédance dont je parlais tantôt qui pourrait créer une baisse de productivité. Mais si cela donnerait au contraire des interfaces plus conviviales, plus faciles et agréables à utiliser. Allons nous voir une nouvelle spécialisation dans le domaine de créations d’interfaces riches, ergonomes et designer, qui comme pour les sites Web, se mettraient au service des applications internes de grandes entreprises. Cela me semble un défi potentiellement intéressant pour les designers Web qui veulent diversifier leurs modes de travail. En tout cas, lors de la présentation, on a dit qu’il manquait pas mal de designers qui pouvaient utiliser les outils de design Microsoft. Ce sera à voir si un tel modèle peut être viable ou si c’est le développeur qui devra aller chercher l’expertise nécessaire pour utiliser efficacement Expression Design et Expression Blend.

Je termine en disant que j’aimerais bien avoir l’occasion au niveau professionnel d’expérimenter avec cette technologie. Je pourrais ainsi valider ou invalider mes impressions.

De l’idée vers la réalisation versus la neutralité du NET

16 juillet 2009

Supposons maintenant qu’une startup nommé toto (je vais l’appeler comme cela) arrive avec un idée super géniale, que tout le monde veut utiliser, mais qui bouffe vraiment beaucoup de bande passante. Son fournisseur coupe sa bande passante et lui empêche de bien réaliser son idée. (Et si on est parano, peut même lui voler son idée, on parlera pas de brevet ici)

Est-ce un vrai danger ou est-ce que je suis dans le domaine de la science fiction? Après, faut que quelqu’un paie pour la bande passante. Avoir beaucoup de bande passante c’est d’avoir la capacité de réaliser n’est-ce pas ? Une idée c’est bien beau, mais sans la capacité de réaliser ce n’est pas grand chose.

Donner une chance égale à tous au niveau des infrastructures pour avoir une meilleure capacité de réalisation et d’innovation, c’est je pense une chose importante.

Par contre est-ce qu’il faut aussi être capable d’empêcher ceux qui bouffent toute la bande passante sans innovation (je ne ferais pas de dessin ici) et qui par leur activité, diminuent la capacité d’innovation des autres?

En gros, en neutralité du NET, il y en aura pas de facile et les enjeux sont pas mal plus gros que le petit exemple généraliste et mal documenté que je viens d’énoncer.

Le vieux Web

15 juillet 2009

Ça fait un bout de temps que je voulais écrire ce billet. Je sentais tranquillement pas vite qui IE 6 allait s’en aller. Ne vous détrompez pas, je suis tout aussi heureux et content que tous les autres développeurs Web qu’il tire finalement sa révérence. C’est juste qu’il me prend un petit coup de nostalgie, comme ça. Faut dire aussi que je travaille souvent pour des intranets avec des outils qui sont habitués de générer du code spécifiquement pour IE 6 que je risque d’avoir encore à supporter pendant quelques années. Je suis aussi de ceux qui ont supporté Netscape 4 un peu trop longtemps.

Comme je spécifiais dans mon dernier billet sur le sujet, arrêter de supporter IE6 veut aussi dire laisser tomber toute une catégorie de vieux ordinateurs (disons 10 ans et plus) qui dans plusieurs cas fonctionnent encore très bien. Je pense entre autres à mes deux Pentium et mon vieux Pentium II que j’utilise encore une fois de temps en temps.

Il est vrai que je n’utilise pas souvent ces machines, mais il m’arrive encore de jouer dessus à Baldur’s Gate et Icewind Dale (deux très bon jeux, ma blonde et moi jouions à ces jeux en réseaux quand elle était enceinte de notre fille, les premières chicanes de couples, qui allait avoir le trésor héhé… ma fille joue à ces jeux aujourd’hui et elle apprend l’anglais avec… désolé de cet aparté, je trouvais l’anecdote cute). Et c’est pratique de partir Internet Explorer 6 sur ces machines pour retrouver les walkthrough de ces vieux jeux qui fonctionnent encore sur les vieux navigateurs (peut-être même Netscape, je dois avoir Netscape 4 Communicator qui traîne quelque part sur cette machine, peut-être même Netscape 2 Gold et Netscape 3). C’est IE 6 qui marche le mieux sur ces vieux ordis, et cela me fait penser qu’il y a encore une tonne de vieux contenus sur le Web qui sont encore utilisables et qui s’adresse à ces temps pas si lointain que cela finalement. J’espère que ce vieux Web ne disparaîtra pas et j’espère que je pourrai continuer de naviguer cette section du Web avec mes vieux ordinateurs. Il y a toujours les archives Internet, mais c’est encore mieux si le contenu original existe encore. Ce genre de contenu, ce n’est pas à mon avis important de le mettre à jour pour les nouveaux navigateurs, parce que après tout, il y a de bonnes chances qu’un walkthrough sur un vieux jeu soit accédé par des machines de la même époque (ou des émulateurs).

Ceci dit, j’aimerais que vous me donniez dans les commentaires des exemples du vieux sites Web qui sont encore utiles et que vous aimeriez qui restent en ligne, et ce en HTML 3.2. Pour ma part, toutes les critiques et informations sur de vieux jeux sont encore utiles aujourd’hui. Il y a aussi de vieux sites sur des séries télévisées oubliées depuis longtemps qui contiennent des informations amusantes qu’on ne retrouve pas nécessairement sur wikipédia (d’ailleurs, celui-ci remplace un peu le vieux Web, c’est un autre exemple de site, qui devrait à mon avis continuer de supporter IE 6 pendant un bon bout de temps).

Quand devrait-on laisser complètement tomber Internet Explorer 6 et pourquoi ?

14 juillet 2009

Avec l’annonce que Youtube va bientôt ne plus supporter Internet Explorer 6 (cf http://www.techcrunch.com/2009/07/14/youtube-will-be-next-to-kiss-ie6-support-goodbye/ ), nous pouvons que nous réjouir du fait que pour bientôt, nous non plus, dans nos développement Web, n’aurons plus à faire des entourloupettes dans notre code pour satisfaire ce dinosaure.

Nous ne sommes toutefois pas tous des Youtube et notre clientèle n’est pas nécessairement encore prête au Web 2.0 et au vidéo en ligne. En effet, couper Internet Explorer 6 coupe aussi toute une génération de vieux ordinateurs, qui fonctionnent encore bien et peuvent très bien aussi naviguer sur le Web pour le contenu statique et le HTML 3.2. Je pense en particulier à mon Pentium II que j’ai acheté en 1996, pour qui Firefox et même Opera sont plus lourd que Internet Explorer. Il y a certainement des personnes qui ne peuvent se permettre d’acheter une machine plus récente et pour qui Internet Explorer 6 est la meilleure solution puisque c’est ce qui est le plus performant. Toutes ces machines peuvent aussi être recyclées et être réutilisables par des gens moins fortunés. Internet Explorer 6 est encore ce qu’il y a de plus performant pour eux (pour les pages simples on s’entends). N’allez pas me dire de mettre Ubuntu et Firefox sur ces machines, je suis presque prêt à parier que ce sera beaucoup moins performant pour les sites simples.

Il y a aussi tout ces pauvres gens qui en entreprise sont encore obligés d’utiliser de vieilles applications d’entreprise (en fait même des nouvelles) qui ne fonctionnent que sur Internet Explorer 6.

Si ces deux publics font partis de votre public cible, il n’est malheureusement pas le temps pour vous de laisser tomber IE6. Youtube est un cas spécial : Il est habituellement bloqué en entreprise (la plus grande partie des IE6) et ses vidéos sont trop lourds pour les vieilles machines.

Il y a aussi des sites dont la clientèle risque d’utiliser Internet Explorer 6 plus longtemps. En premier les moteurs de recherches, les sites de résultats de loteries, météo, nouvelles, peut-être aussi les petits sites de commerces et les sites dont le sujet est technologiquement vieux (je vais vous en parler dans un autre billets).

Pour un site de nouvelles, j’aurais tendance à proposer une page simple sans visuel, avec quelques grands titres. Il est peut probable que les utilisateurs en veulent plus. Un site comme par exemple celui des résultats de Loto-Québec diffusion.loto-quebec.com(*), est un bon exemple de site devrait marcher pour des vieux navigateurs. Étant donné le Web 2.0, il y a plusieurs manières de diffuser son contenu, mais le cœur de ce celui-ci devrait fonctionner pour le plus grand nombre de personnes possibles, et cela veux dire supporter les très vieux navigateur. Il y a 3 ou 4 ans, ça voulait dire supporter IE5 et IE5.5, il y 8-9 ans, c’était Netscape 4, et aujourd’hui et pour encore 3 4 ans, ce sera Internet Explorer 6. Comme j’ai toujours conseillé de faire un site accessible au Web mobile et aux personnes handicapé (je n’utilise pas encore le bon terme, désolé), je vais conseiller de faire des sites qui peuvent fonctionner minimalement avec les vieilles plate-formes. On pourra mettre dans ce coffre bientôt le vénérable, mais détesté Internet Explorer 6. Le grand champion de la guerre des navigateurs se retire tranquillement. Nous pourrons faire maintenant des applications plus évolués plus facilement. Avec probablement un petit if IE 6 5.5 5 +N4 un petit bloc de HTML 3.2 avec le contenu de base pour les quelques anachroniques.

L’autre gros bloc qui ne pourra pas laisser tomber IE 6 pour un bout de temps ce sont les applications d’entreprises. Les Webpshere Portal, Sharepoint, SAP et autre ERP et Portails de ce monde. Tout ce qui utilise JSF 1.1, .NET 1 et 2. Les vieux contrôle ActiveX et tout le tralala.

Vous travaillez dans un intranet pour une grande entreprise : prenez votre mal en patience. Vous voulez que votre application s’intègre à ces systèmes, IE 6 (et peut être IE7) est votre plus important client. (En fait dans une situation comme cela, Silverlight risque d’être votre sauveur plus qu’autre chose). Vous voulez faire les mêmes applications Entreprise 2.0 sous ces plates-formes, vous allez souffrir. Personnellement, je pense qu’en entreprise, Silverlight va prendre une bonne partie du marché Web 2.0esque, il marchera dans IE6 (activex les amis) et va être plus facile à programmer pour et visuellement ce sera beau comme du Flash. Qu’est-ce que vous voulez de plus.

Pour les autres, je pense que ce sera le temps de regarder dans vos logs et d’attendre le moment fatidique du 2-3% d’utilisateurs. Si votre site est suffisamment statique, un support de type dégradation harmonieuse est de mise. Pour les sites dynamique, les fonctions plus avancés ne seront plus disponibles aux vieux navigateurs, pour les même raisons que Youtube. Il suffira pour vous de décider du quel côté de la barrière votre site se situe. Web 2.0, Web statique ou Entreprise 2.0 (grosse ou PME ou startup).

Pour un site comme le mien… je dirais que je vais m’assurer que le minimum marche avec IE6, mais sans plus. C’est ce que je fais depuis…offf 2006…

Disclaimer : J’ai déjà travaillé sur le site des résultats de Loto-Québec, et j’en étais même l’un des développeurs principaux il y a de ça un bon 8-9 ans, avant que je me mette vraiment au standards Web. Au moment d’écrire ces lignes, c’est le plus vieux site sur lequel j’ai travaillé qui est encore en ligne, le cœur de ce site n’a pas vraiment changé depuis circa 2001, 2002, quoi ? ce site marche et il n’est pas tuable (sauf peut-être par un gros Flash, mais bon. Je suis fier de ce site pareil… le HTML n’est plus vraiment le même par contre.

De la problématique des codecs supportés ou encouragés par HTML 5

13 juillet 2009

Parfois nous avons des opinions arrêtés qui à première vue semble être dans l’intérêt du Web, de son ouverture et de son interopérabilité, mais qui après réflexion pourraient en réalité causer le contraire.

En fait, je crois que la plus grande problématique pour supporter ogg theora dans les navigateurs est le fait qu’il n’est pas supporté au niveau du matériel des cartes graphiques. En effet, la plupart des cartes graphiques de NVIDIA et AMD supportent le H.264 de façon native. Ce qui ferait par exemple qu’un vidéo nécessitera beaucoup moins de puissance machine s’il utilise H.264 que s’il utilise ogg theora. Je suis loin de bien connaître les codecs vidéos; je n’ai aucune idée s’il serait simple d’implémenter ogg theora nativement au niveau du matériel, et encore moins combien de temps cela prendrait (et au niveau technique, et au niveau légal, j’ai peur que ce dernier serait encore plus long).

En fait, la problématique est encore pire pour les téléphones cellulaires qui sont limités en puissance. Aussi, imaginons un instant que nous regardions un vidéo en streaming haute définition sur disons un Mac Mini (je le prends en exemple, puisque j’en ai un plogué sur ma télé, avec lequel j’écoute des émissions en 720p (oui oui, légalement)). Nous utilisons un site avec Safari et H.264 et tout est rapide, avec un autre Firefox et ogg theora. Devinez avec lequel « l’expérience » sera la meilleure? La conséquence de tout cela serait un renforcement de H.264 et de Safari dans l’industrie. Les opérateurs de site Web choisiraient H.264 puisque c’est plus performant et les utilisateurs finaux Safari (dans le cas d’un Mac) pour les mêmes raisons. On revient à pire que la case départ et personne ne supporte le standard.

Est-ce que des solutions existent ? D’un côté, encourager fortement les revendeurs de matériel graphique à supporter ogg theora, de l’autre encourager les consortiums derrière H.264 d’offrir une licence ouverte ou libre aux revendeurs de navigateurs.

Si HTML 5 impose ogg theora comme codec de base pour la balise video, est-ce que cela encouragera à ce que celui-ci soit bien supporté (matériel et logiciel) ou est-ce que cela pourrait avoir l’effet contraire et isoler les standards ouverts et les navigateurs ouverts / libre / de petit marché ? Est-ce que de ne rien faire est mieux ? Qu’en pensez-vous ? Par principe, HTML 5 devrait imposer un standard ouvert et libre pour la vidéo, par contre si les conséquences vont à l’encontre de l’ouverture, nous ne sommes pas plus avancés.

Est-ce que dans cette situation, l’utilisation de Flash est la meilleure solution ? En fait le plugiciel Flash ne favorisera pas aucun navigateur en particulier, et potentiellement aucune plate forme (quoi que en ce moment, Flash marche mieux sur Windows, ensuite Mac et pour finir GNU/Linux). Il pourra utiliser l’accélération matérielle et payer pour les brevets de codecs. Est-ce que, dans le fond, pour les vidéos, l’utilisation de plugiciel et la solution la plus interopérable et même éventuellement (lorsque les brevets seront échus) la plus libre ? Il aurait peut-être fallu améliorer la balise object plutôt que de créer d’autres balises. En fait, une des orientations du passé aurait été de faire disparaître les balises img, iframe, et d’utiliser object à la place. Peu importe comment on la regarde, la situation actuelle n’est pas intéressante pour les formats libres. J’ai l’impression toutefois que beaucoup de gens vont travailler pour améliorer les choses. Est-ce chiâler de notre côté peut aider un peu ? Peut-être, mais pas trop en lutin grognon (troll) par contre :-)

Quelques commandes rake pour Ruby On Rails : Parce que je m’en rappelle jamais

5 juillet 2009

Les Parce que je m’en rappelle jamais sont une série sur mon blogue qui se veut un hommage au manque de mémoire et au déficit d’attention. Vous n’y trouverez pas des bonnes pratiques, mais simplement des exemples de commandes que j’ai eu besoin de faire un moment donné.

Sans plus tarder, quelque commandes rake pour Ruby on Rails :

Rouler les tests :
rake test
Mettre à jour la bd avec la dernière migration :
rake db:migrate
Mettre à jour la bd avec une version spécifique des migration:
rake db:migrate VERSION=30
Créer une migration :
./script/generate migration le_nom_de_la_migration
Revenir à la plus vieille version de la BD :
rake db:migrate VERSION=0
Détruire la BD :
rake db:drop
Créer la BD (sans le schema) :
rake db:create
Charger les tables dans le schema (sans les migration) :
rake db:schema:load