samedi, octobre 17 2015

Applet

Quand je lis ce document de Google sur les problèmes de sécurité avec les applications Web, je me dis que les Applets ont été écartées pour de mauvaises raisons.
Certes je ne suis pas un spécialiste en sécurité mais Google lui-même indique que l'utilisation massive d'AJAX a créé des failles de sécurité qui n'existaient pas avant avec des sites plus classiques. Et Google est un des plus actifs promoteurs des applications AJAX.
Par ailleurs ce qu'ils appellent Same-Origin Policy a été copié de ce qui avait été introduit par les Applets (en quelle année ? 1998 ?). De même le problème d'injection de code par des entrées utilisateurs n'est pas possible en Applets puisque l'application n'est pas faite en HTML/JS/JSON. C'est du Java. On peut difficilement imaginer saisir dans un formulaire du code Java en espérant qu'à l'affichage il va s'exécuter.
Je ne dis pas qu'il n'y a pas de failles dans les Applets mais je pense que ce ne sont pas des failles introduites par un mauvais codage alors qu'en HTML/AJAX/JS c'est le cœur du problème.
En fait on peut considérer que la plupart des sites ont des failles dues à une méconnaissance des problèmes de sécurité.
Bref tout cela me fait dire qu'avec HTML/AJAX/JS on a fait un bon en arrière incroyable en promouvant des technologies qui n'étaient pas adaptées pour faire des applications solides. D'ailleurs le nombre de frameworks qui existent dans ce domaine indique que ces technologies en sont au stade du prototype et que chacun cherche désespérément à combler les lacunes d'un système de développement bancal.
En fait - parenthèse - tout ce temps perdu me donne à penser que la concurrence exacerbée est vraiment un mauvais système. Au contraire une coopération entre les différents acteurs aurait abouti beaucoup plus rapidement (en théorie) à produire les fonctions manquantes sur les systèmes existant, en l’occurrence Java puisque c'est le sujet. L'idéologie des USA nous a entrainé dans des errements dont on n'est pas encore sorti.
Parallèlement Java est depuis longtemps une technologie aboutie et il aurait juste fallu corriger les quelques choses qui n'allaient pas (UI/Swing, le problème du déploiement par exemple) mais des guerres de pouvoir ont sabordé cela.
Quand je vois JavaFX 2, je me dis que si il était sorti en 2000 les choses auraient pu être différentes.
Alors on va me dire qu'avec Java il faut installer une JVM, c'est chiant. C'est vrai mais comment croyez-vous que JavaScript s'exécute ? Avec une VM embarquée comme l'était la JVM dans les premiers navigateurs.
De plus je pense que Java pourrait évoluer pour être modulaire et n'installer dans le navigateur que le strict nécessaire au fur et à mesure des besoins. De même, ne pourrait-on pas imaginer de livrer une application Java entièrement autonome (en fait c'est déjà possible en utilisant des outils payants) ?
Le problème principal étant que les acteurs qui font les navigateurs sont engagés dans une mise à l'écart de Java dans le Web et dans les systèmes car ils veulent tous que le développeur utilise leur framework de développement à l'exclusion de tout autre (Google, Apple, Microsoft). Java étant multi-plateforme il doit être tué.
De la part de Google c'est quand même un peu bizarre étant donné qu'il a volé choisi Java pour en faire le système de développement sur Android. D'ailleurs il n'a pas choisi JavaScript mais Java (tout le monde sait que JavaScript est un très mauvais langage...). De fait on peut considérer qu'il y a désormais deux Java différents qui évoluent de manière indépendante. Cela fractionne encore plus les énergies.
C'est une spécialité de l'informatique de refaire 100 fois les mêmes outils. Il suffit pour s'en convaincre de consulter la liste des langages de programmation sur Wikipedia. Il faut imaginer tout le temps et l'argent dépensé pour créer tous ces langages dont peut-être 10% sont couramment utilisés et encore moins dans l'industrie. Et encore ce ne sont que les langages de programmation. Il y a plein d'autres langages pour tout un tas d'usages tous plus ou moins différents parfois de manière très subtile.
Franchement les différences (je considère uniquement le langage) entre C++, Java, Ruby, Groovy, Python, Scala, C#, JavaScript, Go, Dart, Eiffel etc. justifient-elles de créer un nouveau langage et un nouveau environnement de compilation, d'exécution et de débug ? Ne pourrait-on pas juste améliorer l'existant ? C'est par exemple ce que fait Java 8 en intégrant des nouveautés présentes dans d'autres langages. Mais comme le processus est long, les autres langages ont le temps de prendre une place significative.
Ceci dit, c'est plaisant de découvrir un nouveau langage mais le problème se pose de pouvoir le maitriser pour le mettre en œuvre de manière efficace, sachant que si l'on fait cela on se disperse immanquablement et je ne peux m’empêcher de penser que cela nuit à l'efficacité globale. Une autre façon de voir est de s'inspirer de ce que l'on voit dans d'autres langages pour l'appliquer dans son langage courant. C'est parfois possible mais pas toujours du fait de manques rédhibitoires.
D'ailleurs - une parenthèse - cela me fait penser aux films SF dans lesquels les informaticiens arrivent à télécharger des programmes dans des systèmes dont ils ne savent rien. On imagine donc que le futur n'utilisera qu'un seul système, avec un seul type de langage, un seul type de binaire, un seul type de connexion etc. On branche, ça upload et POUF le programme s'exécute ! Magique. Quand on voit le bordel que c'est actuellement j'ai de la peine à l'imaginer.
Il y a quand même un domaine où Java est très populaire, c'est le domaine des applications serveur, et on peut considérer qu'il ne survit que pour cela. C'est dommage car Java est l'évolution de Smalltalk qui était aussi une plateforme entière de développement aboutie aussi bien client que serveur.

MAJ: j'étais à l'instant sur un forum de développement Mac et ça parlait de Swift. C'est vrai que j'avais oublié de le citer dans ma liste non exhaustive de langages. Je ne connais pas bien Swift mais il semble qu'il soit plus statique que Objective-C qui est dynamique par nature. En effet la méthode exécutée n'est découverte qu'à l'exécution et non à la compilation. Visiblement Swift corrige cela. Mais alors on peut se demander pourquoi ne pas avoir choisi Java qui est fortement typé ?

vendredi, février 24 2012

Safari

Bon Firefox n'est pas entièrement satisfaisant. Les plus gros problèmes étant une consommation CPU excessive lors de video Flash (mon ventilo se met en route alors qu'avec Safari je ne l'entends jamais), et l'ouverture des PDF. Parfois aussi l'interface est comme bloquée, peut-être uniquement quand je lis des videos.

Donc je suis revenu à Safari car finalement j'ai trouvé un plug-in permettant de gérer les cookies : Safari Cookies

Le principe est qu'il ne bloque pas les cookies mais il supprime en sortant ceux qui n'ont pas été marqués comme favoris. C'est assez pratique car comme cela il y a un reset des cookies ne permettant pas aux sites de tracer continuellement vos visites.

vendredi, novembre 4 2011

Navigateur

En ce moment j'utilise de nouveau Firefox.
Avant j'utilisais Safari sauf que je viens d'avoir la lubie de bloquer tous les cookies sauf sur les sites que j'autorise (principe élémentaire de sécurité : on bloque tout d'abord), en je n'arrive pas à le faire avec Safari.
Il se trouve que c'est possible avec FF.
J'ai donc configuré FF avec les plugins habituels : Ghostery, AdBlock et FlashBlock.
Du coup je récupère un peu de mémoire car Safari a vraiment un problème de ce côté.
L'idéal serait que j'ai tout ça dans Camino mais le développement de Camino est vraiment très lent donc en attendant... Il faudrait que je regarde si il y a une extension pour lire les vidéos en H264 au lieu d'utiliser Flash : ah ben oui il y en a plusieurs :)

lundi, août 29 2011

winmail.dat

C'est pas croyable qu'en 2011 on récupère encore des fichiers attachés winmail.dat.
Ce qui est fort quand même c'est que le mail du mac ne connaisse pas le format Word DOC car en utilisant ma messagerie Zimbra, j'arrive à récupérer ce fichier .DOC et à le lire avec TextEdit ou LibreOffice.
Est-ce trop demander à Apple de bien vouloir faire un mail qui fonctionne au lieu de mettre des effets à la con partout, hein ?
Remarque, Thunderbird ne fait pas mieux, mais concernant Thunderbird ça ne m'étonne pas.

samedi, janvier 29 2011

Résultats de recherche

Je viens de faire une recherche sur bd orbital étant donné que je viens d'entendre parler de cette BD à la radio.
J'ai d'abord utilisé duckduckgo qui m'a retourné en premier des liens vers des sites de téléchargement (torrent ...).
Je me suis dis que j'aimerai bien aussi des sites qui parlent de BD, j'essaye dans Google et là je ne récupère AUCUN lien de téléchargement dans la première page.
Donc pour moi c'est clair que Google filtre les résultats et supprime certains sites selon des critères inconnus, en tout cas ça commence à sentir mauvais.

J'essaye duckduckgo en ce moment et j'ai aussi installé le plugin Ghostery pour tous supprimer les systèmes de tracking.
Ca me semble pas mal, en particulier sur Agoravox.fr, on peut supprimer la barre d'outils qui apparait en bas et dont je ne me sert jamais. Ca supprime aussi les outils de statistique (Google Analytics ...). Faut avouer que le système de stat de Google est vraiment mal fichu puisqu'il utilise du javascript, donc si on supprime le code javascript, plus de stats ! Même chose pour Xiti qui utilise une image. Donc si vous en avez marre de vous faire suivre à la trace, vous savez ce qu'il vous reste à faire.
Ca me fait penser aux mobiles, en particulier l'iphone qui ne permet aucune modification du navigateur. Du coup on se fait tracker par Apple et par les sites. Il faut alors utiliser un autre navigateur. Il commence à exister des alternatives comme Privately ou Incognito qui suppriment les traces de navigation quand on les quitte.

Un autre moteur de recherche intéressant : Startingpage, qui lui utilise Google.