Tout sur : Programmation

Parsing de XML en Java : les élements DOM et la génération en String

Parsing de XML en Java : les élements DOM et la génération en String

J’ai eu à faire un parsing de XML en Java, avec sortie en objet PoJo (un objet Java contenant juste les champs, setters et getters). Puis j’ai eu à faire l’inverse. Parce que la recherche de classes permettant la création d’objets DOM en Java m’a été laborieuse et que je n’ai pas forcément envie d’y repasser beaucoup de temps la prochaine fois, je mets ici un exemple de parseur XML vers Java et Java vers XML. Notez qu’il y a certainement de meilleures solutions, des meilleurs frameworks (et vous avez le droit de les proposer en commentaire). Le but ici est de parser un XML contenant une configuration de murs (PIERRE ou BOIS) dans un jeu vidéo, pour le mode ESCARMOUCHE. (Lire la suite…)

Méthode Jquery.curCSS() : problème entre les versions de Jquery UI 1.7.x et Jquery 1.8.x

Méthode Jquery.curCSS() : problème entre les versions de Jquery UI 1.7.x et Jquery 1.8.x

Je fais un billet rapide pour indiquer la façon dont j’ai résolu un problème lors d’une migration Jquery. En effet, sur un de nos projets, nous fonctionnons avec Jquery 1.7.2 et Jquery UI 1.7.2. Or, l’idée était de faire monter la version de Jquery Core à la dernière version stable disponible. A savoir la 1.8.3. Donc ça a commencé par un remplacement pur et simple du fichier puis une recette des fonctionnalités. Mais problème : je me suis rendu compte que des pages où j’utilisais JQuery UI pour faire du drag and drop ne fonctionnaient plus (enfin la fonctionnalité de drag and drop ne fonctionnait plus, plus précisément).   (Lire la suite…)

Algorithme pour obtenir le plus proche multiple en Java

Algorithme pour obtenir le plus proche multiple en Java

Pour mon boulot, j’ai eu à écrire un algorithme sortant le multiple d’un nombre le plus proche (supérieur) d’un autre nombre donné en entré. Dans les faits, on cherchait le multiple de 50 le plus proche, tout en restant supérieur, de la longueur d’une liste passée en entrée. L’objectif de tout ça était d’envoyer à Oracle une requête présentant toujours le même nombre de paramètres, ce afin qu’Oracle puisse sauvegarder (mettre en cache, etc) cette requête (si j’ai bien compris, Oracle mets certaines requêtes en cache, si tant est qu’elles sont toujours sur le même pattern).

A l’origine, quelque soit la longueur de la liste au départ (et même si elle est vide), on faisait dans Oracle une requête finissant par un AND mon_id NOT IN (ma_liste_generee). La liste générée étant constituée des ID à exclure et complétée par les valeurs « -1″ jusqu’à ce que sa longueur fasse 1000. (Lire la suite…)

HTMLSelectElement : différences d’interprétation Javascript entre Chrome et Firefox

HTMLSelectElement : différences d’interprétation Javascript entre Chrome et Firefox

Une ligne ne renvoie pas pareil sur Chrome et sur Firefox. Chez moi, je ne la vois que sur des HTMLSelectElement.

En fait j’ai l’impression que les HTMLSelectElement n’ont pas le même type de constructeur entre Firefox et Chrome. sur Chrome, le test typeof(obj.constructor) == 'function' renverra true pour un HTMLSelectElement. Sur Firefox, il renverra false.

Sauf que pour le coup, c’est le résultat de Firefox que je veux obtenir sous Chrome. Donc je veux que dans le cas d’un HTMLSelectElement, Chrome me renvoie false.

(Lire la suite…)

Récit de l’attaque via PHP de mon blog. En cause : timthumb.php

Récit de l’attaque via PHP de mon blog. En cause : timthumb.php

Ce matin, en regardant mon tableau de bord Analytics, j’ai découvert des pages bizarre affichées sur mon blog. Bizarre car les urls ne correspondaient pas au pattern que je leur ai donné sur mon blog… Et surtout, en allant voir ce que donnaient ces pages HTML, j’ai eu la très mauvaise surprise de constater que celà renvoyait des pages visuellement avec le même thème que mon blog, mais avec des textes ayant trait à tout ce que l’on peut trouver de pharmaceutique dans le dossier « spam » de sa boite mail… Ce dans des langues différentes du français : globalement c’était de l’allemand et de l’espagnol. Bizarre, car même les liens de mon blog étaient traduits (les pages en haut et la description à droite). (Lire la suite…)

SoundCloud : en quel langage est codé le service ?

SoundCloud : en quel langage est codé le service ?

Rapide billet pour dire que je me demandais en quel langage était codé SoundCloud, et que j’ai cherché via les structures d’URL à le savoir, mais je n’ai pas réussi à trouver via ce biais. Les URL sont très propres, en terme de serveur utilisé, on est sur du Varnish+Nginx en front, mais c’est la seule chose que l’on peut voir. J’ai donc cherché dans les offres d’emploi disponibles sur le site (ici et ici par exemple). Et s’il y a un langage qui revient souvent, c’est bien le Ruby (ils disent d’ailleurs dans leurs offres d’emploi « SoundCloud Rails-based platform »). Donc on peut très bien imaginer que SoundCloud tourne sur un mod Phusion Passenger (mais habituellement on le voit dans les header, hors ici je n’en vois pas trace, donc c’est bizarre.). (Lire la suite…)

Une pénurie de développeurs ? Et si on arrêtait de prendre les gens pour des cons ?

Une pénurie de développeurs ? Et si on arrêtait de prendre les gens pour des cons ?

Je reviens maintenant sur un article paru le 19 décembre dernier et qui avait eu le mérite de me faire enrager (c’est assez rare). Cet article parle de la pénurie de développeur en France, c’est à dire que les développeurs sont soi-disant de plus en plus difficiles à trouver pour les recruteurs. Cela touche les cabinets de recrutements qui vivent de ce besoin (ils sont payés pour trouver des développeurs). Je vais essayer d’exprimer ici mon point de vue sur les thèses données dans cet article, sans m’énerver (ça ne va pas être évident), et tout en essayant d’être clair. (Lire la suite…)

Les produits de Google codés en GWT

Les produits de Google codés en GWT

J’ai pu découvrir ce week-end via Twitter (qui m’emmenait sur Google Plus, pour être honnête) une liste des produits de Google codés en GWT. Cette liste était fournie par Ray Cromwell, qui travaillerait chez Google sur le développement du framework GWT, d’après son profil. (Lire la suite…)

Faire des Threads en Java-JEE

L’idée de faire des threads sur une application web vient du fait que les processeurs des serveurs sous souvent sous-utilisés (je dirais en moyenne 20%), et donc on pourrait gagner en rapidité des applications en mettant davantage de threads, plutôt qu’en augmentant les capacités des processeurs. Voilà donc rapidement comment faire des threads en Java. (Lire la suite…)

Empêcher le copier-coller dans un champs input HTML

Empêcher le copier-coller dans un champs input HTML

J’ai eu à trouver un moyen d’empêcher le copier-coller dans un champs input HTML, et donc je partage ici les résultats de mes recherches. C’est intéressant à plusieurs titres. Sachez qu’il existe un évènement onPaste sur les champs input (et textarea, sans doute), supporté par la large majorité des navigateurs récents (mais pas Opéra). Au passage cet évènement ne semble pas prévu par le W3C (sur la page des DOM Events, Wikipedia liste cet événement comme IE only…). (Lire la suite…)