Après un peu d'absence, revoici une petite liste de liens, de veille, etc. C'est pas vraiment classé, je pense que je ferai ça bientôt.

Sublime Text 2 est un (très) bon éditeur de texte. Entre autre il fonctionne sous windows, linux et mac. Enfin un vrai remplaçant à TextMate ? J'en ai bien l'impression, d'autant que nombre de bundle, thèmes sont compatibles.

A tester plus en avant, le "mauvais" point étant qu'il est payant et surtout non libre, mais ça me semble être réellement un produit de qualité.

Ha, j'oubliais presque : le lien présenté est une page regroupant pas mal d'astuces à propos de ce logiciel.

Savez-vous comment fonctionne (quelles technologies) YouTube ?

YouTube utilise MySQL au coeur de son infrastructure ! Et oui mon bon monsieur. Je suis sur que vous vous attendiez à du NoSQL ou je ne sais quelle technologie hype, mais non, un bon vieux MySQL des familles.

Enfin, façon de parler, car ce serait oublier vitess ! Pour faire simple, vitess est un outil permettant d'aider à avoir une bonne scalabilité de MySQL. C'est entre autre une interface RPC qui accepte et transmets des commandes SQL (tout en les améliorants, corrigeant) vers des MySQL. Il fait office de multiplexeur (10 000 connexions en entrée, beaucoup moins en sortie vers les MySQL) et relativement rapide, de l'ordre de 10 000 requêtes par seconde.

Je vous laisse lire la suite si cela vous intéresse, je trouve ça plutôt pertinent et montre que, finalement, il est assez dur de se situer entre NoSQL et SQL aujourd'hui.

Ha oui, c'est donc un programme, open source, développé par Google ... en Go ! Car Go est sorti en version 1. Mais il s'agit d'une autre histoire.

Et si PHP devenait un langage executable au dessus d'une JVM (au même titre que Java, Scala ou Groovy) ?

Beaucoup ont cru à un poisson d'avril, en mode "trop gros, passera pas". Finalement non, il s'agit d'un réel travail de Clever Cloud qui entend remplacer Zend (le moteur de PHP) par la JVM.

Honnêtement, c'est une piste intéressante. Même si je ne suis pas convaincu de l'intérêt réel, la JVM a tout de même d'assez bonnes possibilités d'optimisations et performances, à la volée. C'est pas toujours significatif (je note en général une amélioration significatives de perfs sur mes tests à partir de, à la louche, 50 000 exécutions de la même requête) mais ça vaut le coût d'essayer. En outre ça permettrait peut-être d'augmenter l'eco système PHP avec des bibliothèques provenant de Java. A voir ce que ça donnera, dans tous les cas un projet à suivre.

(vous noterez que j'arrive même à parler de PHP sans en dire du mal...)

Voici un mémo bien sympa sur divers langages interprétés : php, perl, python et ruby. Vous y trouverez un tableau présentant les points communs et différence entre ces 4 langages, de manière plutôt complète. Intéressant si vous devez en utiliser un tout en connaissant un autre.

Ou comment se sortir d'un test de développement, lors d'un entretien, haut la main... Bon, je ne suis pas certain que ce soit réellement une bonne idée, mais pourquoi pas ;-)

Avec les lois type DADVSI, il devient très compliqué de savoir ce qui est légal ou non dans le les logiciels (notamment lorsqu'il est question de DRM).

VLC, qui voudrait bien avoir l'assurance du droit de lire les Blu-ray vient de saisir Hadopi afin de savoir ce qu'ils peuvent ou non faire de manière légale. Hadopi servirait-elle enfin à quelque chose d'autre que la mise en place du pare-feu openoffice ?

Une présentation de SpringSource (vmware) sur les choix d'architecture pour des applications cloud scalables. La prez dure environ 1h, par contre les slides sont plutôt légères. Néanmoins, l'une des informations importantes est celle-ci : "App-level Modularity"

Comment débuter le développement d'une grosse application ?

Voici en substance à quoi cet article tente de répondre. Entre autres choses, se concentrer sur la capacité à livrer rapidement un produit (même totalement incomplet) mais ayant une certaine valeur, un intérêt.

Voici une très très intéressante présentation sur l'utilisation FindBugs pour améliorer la qualité des logiciels. FindBugs est un outil d'analyse statique de code Java, dans le but avoué de détecter les erreurs potentielles (ou pas d'ailleurs).

Comment débugger un système en production ? Voici une très vaste question, à laquelle nous devons chaque jour trouver un minium de réponses. Mais il s'agit d'un problème réellement compliqué, problème auquel on sera toujours confronté, même en améliorant encore nos procédures de test.

Voici donc une présentation axée sur ce problème, et certaines pistes de réflexion.

Un très très bon article sur l'encodage des caractères, sur Unicode.

D'après l'auteur, tout programmeur digne de se nom doit savoir comment fonctionne unicode, au moins ce qui est dans cet article. Ha oui, je vous ai pas dit, l'article date de 2003...

Je vous recommande vraiment de lire cet article. Lorsqu'on voit à quel point les problèmes d'encodage, encore aujourd'hui, viennent nous pourrir la vie, il serait temps de réellement comprendre ce qu'il en est de, enfin, prendre les choses correctement. Bonne lecture !

Vous le savez certainement, Google Maps propose une couche météo. Désormais cette couche est disponible dans l'API Google Maps v3. Pour le moment je n'ai pas trouvé la bonne doc, le "problème" de la doc en lien est quelle est interne à google (login.corp.google.com)... Mais la lecture des sources suffit à pouvoir savoir comment l'intégrer.

Edit : la doc a été corrigée, vous pouvez désormais aller voir comment l'utiliser.

Tiens, j'envoie plus beaucoup d'infographies en ce moment. En voici une, représentant l'état de l'industrie du numérique en France. A voir, entre autre, que les jeux vidéo, les vidéos à la demande et le téléchargement de musique représente une part presque négligeable de l'industrie...

En ces temps, ou le moindre jeux correct à un style vraiment poussé, un petit retour aux bases s'impose ! Je sais pas vous, mais moi lorsque j'ai commencé à jouer sur ordi le son venait du buzzer du pc (vous savez encore ce que c'est ?) et il y avait ... 4 couleurs (ou 8, faudrait que je vérifie).

Quoi qu'il en soit, j'aime beaucoup ce style, un peu oublié, mais tellement agréable.

Saviez-vous que le plus vieux tunnel de métro au monde est à Paris, et date de Louis XIV ? Non ? Dans ce cas, que diriez-vous d'une petite visite du métro parisien ? Pour tout dire, le côté abandon m'a toujours fasciné...

Histoire de continuer avec les histoires de lieux abandonnés, voici le fabuleux travail de Lucie et Simon, qui ont vidés les plus grandes villes du monde afin de les photographier. Très sympa !

Et, mais je crois que je l'avais déjà fait passé, un petit lien sur des villes réellement abandonnés : http://www.topito.com/top-10-des-vi...

Un article présentant l'intérêt d'utiliser la bonne techno au bon moment. Oui je sais, dit comme ça c'est une évidence, en réalité c'est rarement fait.

Pour l'occasion, il s'agit d'utiliser au maximum les streams (dans ce cas c'est du node.js mais le principe est valable pour tous) pour créer des zips à la volée, et non créer le zip puis l'envoyer.

La conclusion c'est surtout que la manière de coder nos applis peut influencer de manière importante l'expérience utilisateur. Et ça fait aussi la différence entre une bonne et une mauvaise application, à fonctionnalités équivalentes.

Un petit exemple d'intégration des nouveaux layers de Google Maps API, à savoir la couche météo mais surtout, assez sympa, la couche "nuage".

Si vous voulez savoir à quel point c'est simple à faire, allez simplement regarder la source html, c'est vraiment tout bidon...

Une map plutôt sympa, encore une fois basée sur Google Maps API.

Je vous laisse naviguer dessus, c'est assez bien foutu, même s'il n'y a pas grand chose. Mais comme quoi, rien qu'un peut de style sur une map fait déjà beaucoup.

Je ne sais pas si le terme "sticky navigation" (navigation collée) vous dit quelque chose, mais je suis certain que vous l'avez tous déjà rencontré. Il s'agit de la tendance actuelle a faire apparaitre une partie du bandeau, liée à la navigation, tout en haut de la page, constamment visible, lorsque vous scroller dans cette dite page.

C'est assez sympa, visuellement c'est souvent plutôt bien fait, et en terme d'ergonomie c'est un vrai plus. En effet, sans pour autant prendre une place trop importante, la navigation devient tout le temps disponible, ce qui est très agréable. Voici donc quelques exemples de sticky navigation assez sympa.

Histoire de continuer sur les bases SQL utilisée sur de (très) gros services, voici que Twitter livre certains de leurs travaux autour de MySQL.

Il est très intéressant de voir les efforts mis en oeuvre par ces sociétés pour continuer à utiliser du SQL "standard" alors qu'on aurait tendance à croire que tout le monde passe sur du NoSQL.

Un petit tuto permettant de créer un formulaire type "écriture à la main". Plutôt sympa, ça permet d'avoir des mises en pages un peu plus originales et contextualisées. Surtout depuis qu'on peut (pour les navigateurs récent) embarquer facilement des polices de caractères. Bon, par contre le résultat n'est pas totalement au point, je pense qu'il reste quelques ajustements à faire dès qu'on dépasse quelques lignes de texte.

Un petit article sur l'utilisation de l'API HTML5 FileSystem. L'objectif étant d'avoir des pages entières hors connexion. Il faut bien voir que ce type d'usage tend à se généraliser de plus en plus. Bien qu'on ait du matériel de plus en plus connecté, il reste important de comprendre que ce n'est pas toujours le cas (ne serait-ce que dans le métro, alors que c'est un lieu ou beaucoup de monde utilise ses appareils mobiles).

L'article est plutôt succins, mais si vous suivez les liens contenus vous pourrez accéder à de nombreuses informations sur cette API.

Voici un article assez complet sur les nouvelles possibilités de drag and drop et d'upload en HTML5. L'article est plutôt simple et clair, mais il fait son taff. N'hésitez pas à aller le lire, ne serait-ce que pour savoir ce qui est possible.

J'ai déjà parlé, de nombreuses fois, de Go, le langage de Google. Initialement un langage dédié au système, désormais un langage généraliste.

Voici un petit article montrant comment écrire un web service en Go. Pour un langage qui se rapproche du C/C++, vous verrez qu'on peut faire des choses simples, élégantes, mais puissantes.

C'est un exemple assez sympa pour prendre en main Go et voir quels sont les intérêts de ce langage.

Suite à l'écriture d'un service web en Go, voici la même chose en C.

Bon, vous l'imaginerez sans mal, c'est déjà un peu plus coton. Mais ça se fait. Intéressant à lire pour bien mettre en évidence la différence entre ces deux langages.

Si vous manquez d'inspiration, voici une sélection assez sympa de street art. Certains sont tout simplement magnifiques, et on dépasse, de loin, le cadre de tags ou graffitis classiques.

En tant que mot de passe, qu'est ce qui est le plus sécurisé et plus difficile à casser : 'Tr0ub4dor&3' ou 'correcthorsebatterystaple' ? En gros, pour le premier il faut 3 jours de brute force, pour le second de l'ordre de 550 ans...

zxcvbn (wxcvbn en azerty...) est une lib js qui permet de calculer de manière plus correcte la complexité d'un mot de passe, non seulement en regardant la présence de tel ou tel caractère. Plutôt intéressant comme code, et surtout, intéressant dans la réflexion de ce qui rend un mot de passe réellement complexe à être cassé.

Je savais bien que j'avais dit un peu trop de bien de PHP ces derniers temps... Un "petit" bug bien sympa, PHP n'arrivant pas à réaliser certaines égalités correctement...

Et en plus ça affecte le switch (qui effectue donc une égalité simple == et non une égalité stricte ===) : https://gist.github.com/2397507

Un jour peut-être arrêtera-t-on de voir des bugs de ce type dans les programmes informatiques

Ha ha !

D'ailleurs, voici quelques commentaires de Douglas Crockford : "That is insanely stupid code", " Learn to use semicolons properly." Un peu de bla bla sur le sujet : http://brendaneich.com/2012/04/the-...

Ha oui, et pour ceux qui ne connaissent pas Dougle Crockford (http://fr.wikipedia.org/wiki/Dougla...) il a juste un peu créé le json, participé depuis longtemps dans le JS, créé JSLint.

Bon, il apparaît aussi que JsMin était lui aussi en cause...

Voici un petit site avec beaucoup de démos et expérimentations basées sur CSS3 (et les portions 3D). Pas forcément vraiment utiles, mais plutôt intéressantes pour savoir un peu ce qui est possible, ce qui sera possible demain sur le web. Dans le genre très flashy, les effets de scroll sont pour certains assez sympa.

Et voilà ! Google a enfin sorti mod_spdy. SPDY est un nouveau protocole initié par Google, dans le but d'améliorer significativement HTTP (en gros). Les performances s'en trouvent grandement améliorées.

D'ailleurs, si vous surfez sur les sites de Google avec Chrome, vous utilisez sans le savoir SPDY (ok, peut-être pas tout le temps). Mozilla a commencé à ajouter le support de SPDY dans les dernières versions de Firefox. Voici donc un mod pour Apache, permettant de faire dialoguer votre serveur préféré en SPDY.

Comment passer sous silence cette news ?! Voici les sources de Prince of Persia ! Heu oui, je parle du vrai jeu, pas des versions moisies pseudo 3D jenesaisquoi. Le vrai, le seul. Bon ok, je n'y jouait pas sur un Apple II mais sur un 286. Et c'était vraiment un jeu fabuleux pour l'époque (on parle d'avant 1990 donc les petits jeunes nés après auront quand même du mal à comprendre...)

Comment ne pas avoir en tête le bruit des "guillotines" un peu partout !

(le pire c'est que j'ai remis il y a peu en route un 386, la première chose que j'ai fait a été de lancer Prince of Persia...)

Histoire de continuer l'histoire de Prince of Persia, voici le début du Making of réalisé par Jordan Mechner. Plutôt intéressant, notamment concernant les mouvements du joueur, point participant grandement à l'intérêt du jeu. Voir également ici : http://fr.wikipedia.org/wiki/Rotosc... pour connaître la technique.