Archives par mot-clé : Programmation

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).

Continuer la lecture Récit de l'attaque via PHP de mon blog. En cause : timthumb.php

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.).

Continuer la lecture SoundCloud : en quel langage est codé le service ?

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.

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

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.

Continuer la lecture Faire des Threads en Java-JEE

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…).

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

Erreur Java FileNotFoundException sur le site de la BNP

Héhé, rien de tel pour s’amuser dès le matin. Alors, si vous voulez tenter de reproduire cette erreur, voilà comment faire : vous allez sur cette page, et vous cliquez ensuite sur le picto BNP en haut à gauche de la petite carte indiquant les différentes agences à Saint-Maur des Fossés. Notez qu’en retentant plusieurs fois, je n’ai pas réussi à réafficher cette page…

Continuer la lecture Erreur Java FileNotFoundException sur le site de la BNP

Rechercher-Remplacer une chaine de caractère dans des fichiers d'un projet Java-J2EE

Le but de la commande suivante est de rechercher/remplacer une chaîne de caractère par une autre, ce en une seule fois, et sans avoir à ouvrir des centaines de fichiers. La commande suivante a été utilisée pour remplacer les annotation “@Autowired” dans un projet Java/Spring en annotations “@Inject” (qui sont au standard JPA, donc c’est mieux).

Continuer la lecture Rechercher-Remplacer une chaine de caractère dans des fichiers d'un projet Java-J2EE

Site encore down hier, la faute à un espace disque rempli

Hier encore, abricocotier était down. PLus exactement, le serveur est tombé vers 12h29 et est remonté vers 12h59 (d’après les dates données par Mon.itor.us, mais en fait il a été down un peu moins de temps). Déjà le matin, en publiant un billet sur le Windows Phone 7, j’avais eu la désagréable surprise de ne pas pouvoir uploader mes images correctement. Je me disais que c’était peut-être parce qu’après la tombée du serveur la veille, PHP n’avait peut-être pas été redémarré dans les même conditions que précédemment, et les fonctions de PHP permettant de recevoir les fichiers et de les redimensionner n’étaient peut-être pas utilisables. En fait, pas du tout.    

Continuer la lecture Site encore down hier, la faute à un espace disque rempli

Une procédure PL/SQL pour supprimer toutes les procédures existantes dans Oracle

Un rapide billet pour vous donner une procédure PL/SQL permettant de supprimer toutes les autres procédures stockées dans Oracle. Sachant que j’utilise actuellement Oracle SQL Developer au boulot, et qu’il n’est pas possible de sélectionner plusieurs procédures pour les supprimer toutes en même temps, j’ai cherché un peu sur le web et trouver 2-3 bouts pour construire cette méthode, permettant de supprimer toutes les procédures dont le nom commence par XYZ (XYZ est une chaine de caractère désignant par quoi commence les procédures stockées à supprimer).

Continuer la lecture Une procédure PL/SQL pour supprimer toutes les procédures existantes dans Oracle