CrEv's blog

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - go

Fil des billets

2012 sept. 20

De tout, de rien, des bookmarks, du bla bla

Introduction

Pfiou, la dernière news remonte à un moment quand même.... Bon, je vais essayé de reprendre le rythme même si mon nouveau boulot ne m'en laisse pas vraiment le temps pour le moment...

Quoi qu'il en soit voici quelques news en vrac, il y a probablement des choses qui datent un peu mais ça devrait le faire quand même.

Bonne lecture !

Un peu de contenu

Développement

Vous connaissez probablement tous atom. S'il est plutôt souvent utilisé il reste relativement lourd et complexe. Voici donc hAtom qui est un microformat basé sur un sous ensemble d'atom mais en étant plus orienté vers les articles de news, les blogs, etc. Je ne sais pas si ça a un intérêt réel mais je trouve l'idée assez intéressante tout en prenant en compte l'existant (atom) plutôt que de vouloir tout réinventer.

En tant que sujet quelque peu récurrent, voici des articles au sujet de go (le langage). Tout d'abord un petit exemple, une petite introduction au langage et quelques libs : quick and clean in go. Ce que je trouve vraiment intéressant est la facilité, rapidité avec laquelle on se retrouve avec un serveur web, un moteur de template, une connexion à mongodb, etc. Plutôt pas mal pour un langage initialement plutôt système.

Deuxième article, cette fois expliquant comment créer un chat avec go et les websockets HTML5.

Ensuite, un petit retour de la part de bitly et de leur usage de go, Go go gadget.

Et enfin, voici un ensemble d'outils (un framework ?) web pour go, Gorilla.

Tout ceci me donne sacrément envie de tester Go. Je pense que ça va être, vraiment, le prochain langage que je vais apprendre (outre le fait que je recommence le php, le ruby et que je début en coffeescript...).

Pour continuer dans les langages de développement, voici une petite partie dédiée à javascript et au web (je ne pouvais pas faire sans ;) )

Tout d'abord voici un article qui parle de garbage collector en javascript. En gros, comment écrire du code qui va permettre d'être bien pris en compte par le garbage collector. C'est un sujet qui est peu abordé en javascript, mais avec l'augmentation des performances et l'augmentation de l'usage de ce langage, ça devient vraiment intéressant de s'en préocuper.

D'ailleurs, si vous souhaitez vous améliorer en javascript, deux ressources peuvent vous intéresser. Tout d'abord un superbe bouquin (en CC NC-ND) sur les design patterns en javascript. Ce livre est plutôt complet, et plus qu'un livre à lire d'un bloc c'est je pense une bonne référence à garder sous le coude en cas de besoin. Si jamais vous souhaitez lire d'autres livres sur javascript, voici par contre la référence ultime : JSbooks. Il liste une belle petite collection de livres (libres/gratuits) sur javascript ou coffeescript. J'aimerais vraiment pouvoir faire des doubles journées pour avoir le temps de tout lire...

Maintenant que vous êtes au fait de javascript, vous vous demandez probablement comment packager vos applications web ? Non ? Heu... Bon c'est pas grave, twitter s'est un peu posé la question et ils ont sorti bower. Bower est un outil générique pour résoudre des dépendances. Il peut récupérer directement depuis git et n'est pas spécifique à javascript (même si c'est l'une des cibles privilégiées). Un package peut aussi bien contenir du javascript que du css, de l'html, des images, etc. Il est plutôt bas niveau, utilise node.js (et donc npm node package manager pour s'installer). Je ne l'ai pas encore testé mais ça me semble plutôt intéressant. Twitter est entrain de migrer son frontend pour utiliser bower. Comme outil utilisant déjà bower, on retrouve yeoman dont j'avais déjà parlé et qui est désormais public. Je n'ai pas non plus eu le temps de le tester (doubles journées, toussa) mais ça figure en très bonne position sur ma todo list. Quelqu'un l'a-t-il déjà testé et pourrait faire un retour ?

Mais il n'y a pas que le javascript sur le web. Il y a aussi le CSS ! Voici donc quelques liens plutôt sympa sur le sujet. Tout d'abord, une mine d'information sur linear-gradient. Si vous ne saviez pas comment utiliser cette propriété vous n'avez désormais plus aucune excuse. Voici également une présentation des nouvelles possibilités des régions CSS. J'attends réellement ça avec impatience tant le gain est important. Pour avoir bosé pendant un temps du côté de l'édition et donc avoir eu à cotoyer ce type de bloc, c'est vraiment une très bonne avancée pour la publication sur le web. Et si vous voulez avoir des designs qui ont de la gueulle, voici une présentation sur les possibilités typographiques en CSS. Allez la voir, ça prend pas longtemps mais c'est vraiment instructif.

Maintenant, il faut dire que de plus en plus on utilise des préprocesseurs CSS. L'un des plus connus est SASS, qui vient de passer en version 3.2. Vous trouverez pas mal de ressources sur le net, dont par exemple cette liste de mixins à garder sous le coude pour ne pas réinventer tout le temps la roue.

Misc

Et sinon, en vrac, voici une présentation sur le fonctionnement de github, Google qui prévoit d'arrêter le support d'IE8, une présentation sur la CLI. Voici également une explication du design de la page de status d'heroku

Graphisme & co

Voici un article réellement intéressant sur les couleurs. J'ai hésité un peu à le placer dans les liens de développement mais finalement il a plus sa place ici car traite du choix de couleurs à partir d'algorithmes. Un très bon article à lire, vraiment.

Je ne résiste vraiment pas à vous partager ce dessin réalisé au stylo à bille, c'est juste impressionnant !

Liste des liens présentés

Développement

Misc

Graphisme & co

2012 juil. 10

De tout, de rien, des bookmarks, du bla bla

Introduction

Bon, je suis un peu en retard sur mon planing, mais c'est aussi car j'ai trouvé un peu moins de choses intéressantes ces derniers jour. Voici tout de même une petite compilation de liens de cette dernière semaine (et vous noterez que je n'ai même pas collé de troll dans l'introduction...).

edit : voici les épisodes précédents

Un peu de contenu

Développement

Histoire de commencer en douceur, voici une table unicode en site web. Ok, rien de bien nouveau dedans. Par contre, l'usage des caractères unicodes est de plus en plus utilisé dans le web car cela permet de remplacer pas mal d'icones et donc d'alléger les pages. Cela permet en outre de garder un côté vectoriel et stylable avec CSS, donc plutôt sympa.

Pour continuer avec un peu de "rien de bien nouveau", voici un article sur la programmation orientée aspect en PHP. Intéressant mais à creuser un peu plus. D'ailleurs l'article est plus sur de l'utilisation de reflexivité que réellement de la programmation par aspect.

Github continue d'avancer. Cette fois ils présentent un tutoriel git à utiliser dans votre navigateur. Une manière finalement assez sympa pour apprendre à utiliser cet outil.

Connaissez-vous git-flow ? Il s'agit de quelques extensions basées sur git permettant de facilité le travail en suivant un workflow assez intéressant. J'ai appris récemment qu'une variante existant pour mercurial, hg-flow. A noter que sourcetree permet d'utiliser ces deux outils directement depuis son interface (voir les notes de version).

Passons un instant du côté dart de la force (oui, je sais...) pour présenter ce port des classes crypto de Google Closure Library en dart.

Et restons chez Google (enfin presque) pour parler un peu de go. Voici en premier lieu un retour de cloudflare sur leur utilisation de go. Et ensuite une présentation de nono sur le monde merveilleux de Golang, présentation donnée au RMLL si je ne me trompe. Je n'y ait pas encore touché mais je trouve ça plutôt intéressant, et les différents articles (par exemple sur le blog d'af83 donnent envie d'essayer). Finalement peut-être un pont entre les langages classiques et bas niveaux tels que c/c++ et les langages plus haut niveaux comme python et ruby, tout en étant plus expressif que java. Bref ça me tente pas mal, mais j'ai déjà d'autres langages à (ré)apprendre donc ça passer après...

Pour clore cette partie développement un lien vers un livre blanc autour de la dette technique en informatique. Je n'ai pas encore eu le temps de le lire mais le début me semble intéressant. L'un d'entre vous l'a-t-il déjà lu ?

Misc

Mais que ce passe-t-il lorsqu'on exécute une recherche sur Google ? Cette infographie tente d'y répondre.

Graphisme & co

Si vous vous intéressez un peu à la typographie et au web, vous devez savoir qu'une des solution pour avoir une mise en page agréable est de se baser sur des grilles. Voici donc un petit outil fournissant des css de grilles a afficher dans vos pages, pour vous aider à les concevoir correctement.

D'ailleurs à ce propos il faudrait que je fasse un petit retour sur le livre webgrids que j'ai terminé et qui est plutôt intéressant.

Evidemment j'étais obligé de coller au moins une news sur les Lego ou quelque chose approchant. Donc voici une présentation sur le processus de design chez Lego.

Et pour rester dans les choses plutôt amusantes une petite vidéo qui vous expliquera comment réaliser une petite fusée à base d'allumette !

Liste des liens présentés

Développement

Misc

Graphisme & co

2012 avr. 19

Liens, veille, toussa

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.