CrEv's blog

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

2013 janv. 31

Curriculum Vitae


Lire la suite...

2013 janv. 2

Nouvelle année, nouveau site !

Et oui, ça y est, on y est ! La fin du monde est passée (ou pas). On débute une nouvelle année. Il est alors temps de changer quelques petites choses.

J'ai commencé à écrire, des choses plutôt inintéressantes il faut bien l'avouer, en septembre 2005. C'est que c'est plutôt loin mine de rien. Ce fut très très irrégulier, mais quelques petites choses étaient un peu plus intéressantes que d'autres. A la base c'était assez tourné linux, mandriva. Et il y a eu de grands moments de vide aussi...

Puis il y a eu (je ne sais même plus quand précisément en fait...) déménagement de l'url du blog, passant d'un blogs.winsos.net/crev à www.winsos.net/~yves tout en gardant les billets originaux.

Récemment j'ai beaucoup plus écris sur ce blog (surtout partage de mes liens de veille lorsque j'en ai le temps), mais il est temps de changer un peu les choses. Ça faisait longtemps que je me disais que je referais ce site, que le dotclear je l'aime pas, que le thème je le changerais bien, etc.

Mais plutôt que de trouver un nouveau thème à dotclear, pourquoi ne pas repartir sur des bases saines, c'est à dire from scratch ? Je voulais mais bon, c'est jamais si évident. Et, un jour, j'ai voulu faire une page web.

À partir de ce moment c'était simple, un tout petit peu de taff en plus et j'ai finalement un générateur de site / blog statique maison, mais qui fonctionne parfaitement. Et voilà !

Evidemment je ne reprendrai pas pour cette fois les anciens posts. Nouveau moteur de blog, nouveau contenu, nouveau style. Pas d'existant hormis quelques billets intéressants recopiés, mais pas d'historique.

Alors oui, ça pert en fonctionnalités. Oui il n'y a pas de possibilité (pour le moment au moins) de commenter. Oui le design est plutôt sobre. Mais c'est performant, rapide (intéressant lorsque c'est auto-hébergé), fiable, facile à mettre en oeuvre, facile à publier de mon côté. Nikel quoi.

D'ailleurs les sources du générateur seront bientôt en ligne...

A voir si jamais ça me permet de poster plus régulièrement, et même, pourquoi pas, des choses plus intéressante ;)

En attendant, voici donc le nouveau blog :

http://log.winsos.net

Bonne lecture !

Note : L'ancien ne sera pas supprimé pour autant, il va juste arrêter de vivre...

2012 déc. 6

Ecrire une page web de nos jours, suite des aventures

Il faut croire que l'épisode précédent vous a intéressé (mon petit doigt me dit qu'il est même passé sur un incubateur d'excellence aux dires des mytiloïdes qui s'y trouvent). Voici donc la suite tant attendue.

    Comment ça une suite ?

Ben vous croyez quoi ?! On fait de la page oueb monsieur ! C'est un sujet sérieux ! Pas question de s'arrêter avec juste un peu de Haml, Sass, Ruby, Rake et git. Cela suffirait à des développeurs inexpérimentés, pas pour des vrais bons comme nous !

Lire la suite...

2012 déc. 4

Ecrire une page web de nos jours

Edit: allez voir en fin d'article, il y a du bonus !

J'aurais aussi pu l'appeler Le html c'est surfait !

Ces derniers jours, je me suis mis à la création d'une page web. En gros, il s'agit d'une simple page, totalement statique (pas de code serveur ni de code côté client). Allez, on va quand même mettre un peu de css histoire d'avoir un peu de style, et pour que ça reste relativement sobre, pas d'images.

Logiquement j'aurais pu prendre un éditeur de texte tout simple et écrire mon css et mon html (la page est vraiment petite).

Mais non, malheureux ! Tout le monde sait bien que l'html c'est surfait aujourd'hui !

Voici donc dans la suite comment créer une petite page web tout simple en utilisant Haml, Sass, solarized, Font Awesome, ruby, rake et git, le tout en utilisant Sublime Text 2.

Ha oui, et histoire que ce soit drôle, vous verrez que j'ai collé pleins de liens partout pour faire genre, spéciale dédicace à... heu non, allez, restons sympa ;-)

Lire la suite...

2012 nov. 27

Remonter le temps...

edit : Impossible que ce soit une coincidence !! ;-) Nostalgie, j'ai même versé une petite larme

note : oui ce poste est amené à évoluer petit à petit en fonction de mon avancée ;)

Remonter le temps... ce fantasme de pouvoir (re)voir des évènements, des gens, des situations, pourquoi pas de les modifier.

Finalement c'est pas si compliqué (enfin sauf la partie modification). Ce soir c'était travail de conversion de la pièce qui servait de bureau / chambre d'amis en future chambre pour mon deuxième enfant (note perso : "reste bien au chaud j'ai pas fini de ranger !"). Et c'est, aussi, l'occasion de trier des documents datant pour certains de plus d'une dizaine d'année.

Mais c'est aussi l'occasion de revoir, de se remémorer des moment, des émotions, des envies, des souhaits, de rêves.

Petit désordre dans ma tête (dont certaines choses plutôt techniques, je préviens) :

  • retrouver du code... sur papier. Non, pas juste quelques extraits, du code, du vrai. Faut dire que c'était de l'assembleur pour calculatrices HP (un petit OS multitâches). Mine de rien, lorsque je regarde ça je me dis que c'était pas si mal que ça. Ecrire de manière déconnectée de l'exécution (et non taper du code-compiler-lancer-erreur-correction) avait le mérite de forcer à bien plus réfléchir à l'ensemble des cas arrivant, obligeait une certaine propreté du code (pour ne pas dire plus), que la manière parfois idiote qu'on rencontre souvent. Et je ne parle même pas du code/debug à coup de sysout.
  • retrouver d'ailleurs les dites calculatrices : une HP48 (je regrette aujourd'hui d'avoir vendue la version dans laquelle j'avais soudé des puces mémoires et le controleur qui allait bien pour en augmenter la capacité) et une HP49
  • retrouver beaucoup de correspondance, repenser aux êtres aimés (et certains disparus aujourd'hui), se concentrer sur les agréables souvenirs et tenter de laisser les autres de côté
  • retomber sur un business plan pour lequel je n'ai jamais osé me lancer totalement... et penser à l'équivalent qui cartonne aujourd'hui, sorti plus d'un an et demi après ce foutu papier que je n'ai pas concrétisé :-(
  • retrouver des macros C++ griffonnées sur papier, dans le but de faire communiquer javascript et plugin 3D en C++ sous firefox (dans les deux sens, entre autre avec les composants html/js créé à partir d'une vue en C++)
  • revoir de nombreux livres, sur des domaines que je ne touche tellement plus (électronique, thermodynamique, etc)
  • retomber sur un teste d'embauche où, lorsqu'on me demande d'écrire un parser de fichier XML en C#, ma réponse contient essentiellement des expressions régulières...
  • se souvenir de beaucoup de cv/lettres de motivations/rapports/... écrites en LaTeX... avoir oublié de faire du LaTeX depuis plusieurs années...

Et se dire que c'est bien beau tout ça, mais il reste encore des papiers, des anciens cours, des documents à trier, jeter, archiver, et que ça va pas se faire tout seul !

2012 nov. 23

De tout, de rien, des bookmarks, du bla‐bla #47

Comme à sa presque habitude, voici un petit condensé de ma veille. Cette veille est également disponible sur linuxfr.org.

Vous l'aurez remarqué, il y a un peu de lag… mais bon, c'est aussi le principe ;-)

Comme toujours, il s’agit comme souvent essentiellement de bookmarks, très légèrement commentés. Pour cette fois, il y a un peu moins de contenu, mais pourquoi pas, je pense que ça conviendra peut-être mieux à certains. Et je ne voulais pas attendre une semaine de plus, ce serait moins intéressant.

C’est plutôt orienté développement, essentiellement côté Web, javascript, ruby, mais j’essaie aussi de toujours avoir deux ou trois petites choses annexes. Le but étant juste de partager et d’initier discussions, débats, avis, touckevouvoulez.

Comme toujours, vous trouverez une liste des liens présentés en fin d’article, pour que les plus rapides puissent cliquer directement sans lire le bla‐bla qui traîne autour.

Bonne lecture !

Contributions

Introduction

Il m'arrivait souvent (surtout lorsque je le faisais pour mon travail) de commencer par une introduction. Ok, il m'est aussi arrivé de faire une conclusion de 3 pages…

C'est entre autre pour ce genre de contenu qu'initialement, je voulais ces contenus en journaux (de seconde pages s'ils existaient encore). À voir, si ça vous dérange ou non, de mon côté ma "veille" n'a toujours été que mon reflet personnel et absolument pas objectif / équitable / neutre.

Quoi qu'il en soit, j'aurais voulu juste reposer un lien ici, même s'il est déjà passé sur linuxfr. Il s'agit de l'article de slate sur _why. Cet article, je l'ai trouvé réellement intéressant. Non pour le côté ruby au final, non pour le côté "people", mais pour le côté "info-suicide". N'avez-vous jamais eu envie de fermer tous vos comptes et de recommencer (ou non d'ailleurs) à côté ? Au final, à quoi ça sert tout ça ? Tous ces comptes ? Toute cette vie numérique et fausse ? On voit de plus en plus de monde qui ne vit presque que pour avoir un follower de plus, un like de plus sur leur page, leur post. Et finalement, le monde du développement est pareil, regardez sur github (le facebook des dev), sur coderwall, etc. Mais tout ceci sert à quoi au final ? Quand je regarde, j'ai un compte g+, un facebook, un github, un twitter, un viadeo, un linkedin, un coderwall (et même un linuxfr). Dans chacun des cas, on a surtout une illusion d’interaction. Oui, parfois il y a de vrais interactions, mais en général c'est du vent. Et la grande majorité des interactions que j'ai via ces plateformes sont en fait avec des gens que je connais personnellement, IRL.

Bon, je ne sais pas trop comment terminer cette introduction qui n'en est pas une, mais je voulais juste ouvrir une porte sur ce sujet que je trouve plutôt intéressant et important. Il faudrait probablement le détailler un peu plus, ce que je ferai un jour (je ne le mets pas sur ma liste des choses à faire, elle déborde déjà au point que je ne la regarde plus…).

Un peu de contenu

Développement

Si vous vous intéressez un peu à HTML(5) vous aurez probablement noté que pas mal d'API voient le jour. Dans le genre plutôt pratique, il existe désormais une API de gestion de la batterie, une API de préchargement de contenu, une API permettant de savoir quand un utilisateur affiche une page, et même une API permettant d’accéder à votre matériel type webcam (en simplifiant un peu). On peut trouver ça plutôt étrange mais ça répond, pour une fois, à certains besoins intéressants et remplace réellement de plus en plus ce qui était autrefois réalisé par des greffons, tels flash. Voici donc un article vous présentant rapidement 5 API HTML5. Et pour ceux qui ne sont pas au fait je vous recommande aussi de jeter un œil à ces autres API, notamment element.classList.

Dans le genre un peu plus léger, si vous faites du ruby vous serez probablement intéressés par nutella. Rien de très magique ni exceptionnel, mais simplement une petite collection d'utilitaires visant à simplifier encore un peu Ruby.

Restons un peu dans le monde Ruby pour vous présenter rapidement le module Benchmark de ruby 1.9. Honnêtement je n'ai pas testé ceci, mais ça peut répondre à certaines problématiques de recherche de performances.

Vous vous êtes probablement toujours demandé (si, si) comment convertir des nombres en chiffres romains… heureusement, il y a une gem pour ça ! Et oui, c'est le boulot (mais aussi pour l'inverse) de roman-numerals.

Bon, quittons ceux qui font mumuse avec Ruby pour retourner vers le vrai monde web, PHP ! Vous le savez probablement, PHP c'est pas vraiment toujours rapide… Pour corriger ce problème, certains se sont mis en tête de créer, par exemple, des serveurs optimisés pour servir du PHP. C'est, entre autres, le cas de Pancake (dont vous trouverez les sources ici). Ha oui, histoire de rigoler un peu, Pancake est un serveur PHP… écrit en PHP ;-) Sans cela, ça aurait été beaucoup moins drôle ! Plus sérieusement, il y a certaines choses qui semblent réellement intéressantes, notamment le fait de ne pas avoir à recharger le code PHP (ce qui est fait en général), tout en évitant certains problèmes liés aux éléments statiques. Ben oui, il faut bien comprendre que vu que PHP est rechargé tout le temps, la gestion des éléments statiques est "un peu" différente… et genre, pas forcément besoin de fermer des handler, puisque l'exécution n'est pas persistante… (et sinon, j'aime les projets qui ont des noms sympa).

Je ne sais plus trop d'où je sors ce lien (j'espère que ça ne provient pas d'ici ;)) mais il est plutôt intéressant. Il s'agit de la découverte d'un mauvais effet de bord sur le site de twitter lors du passage de jquery 1.4.2 à 1.4.4. Suite à cette mise à jour mineure, une baisse significative des performances s'est faite ressentir. Qu'est-ce qui a bien pu causer se problème ? Tout simplement, l'utilisation de querySelectorAll à la place des classiques getElementsByTagName et getElementsByClassName. Faites bien attention à tout ça, on a tendance (surtout lorsque c'est masqué par des bibliothèques comme jquery) à utiliser des opérateurs de recherche plutôt flous, tel querySelector (comme on le ferait en CSS), alors qu'une simple petite combinaison des opérateurs classiques serait plus propre et plus performante. C'est sûr que les sélecteurs sont vraiment sympa, mais il faut faire attention à ce qu'on fait. Attention aussi à ne pas tomber dans l'excès inverse, les "micro-optimisations" peuvent avoir un gain utilisateur totalement nul et une perte de lisibilité/maintenance du code importante. Pour lire l'histoire, intéressante, c'est ici : learning from twitter

Avant propos : dans le paragraphe suivant je vais parler de Go. Je sais très bien que Go n'a pas tout inventé, beaucoup de choses qui sont présentées en Go (que ce soit langage ou les outils créés avec) peuvent déjà exister par ailleurs (outils existants, langages implémentant les mêmes fonctionnalités, etc). Maintenant que c'est précisé, je traite donc le sujet suivant comme je traite tous les autres en réalité.

pandastream est une société qui développe une API d'encodage vidéo. Afin de faciliter leurs déploiements et surtout le rechargement d'applications réseau sans perte de paquets, ils viennent de développer (en libre) socketmaster. Socketmaster est un petit utilitaire en Go qui va permettre de mettre en attente les demandes arrivant sur le service en gardant les sockets ouvertes le temps que le service réel redémarre. Bon, je sais pas si c'est super clair, mais c'est vraiment pratique. En gros, lorsqu'un demande arrive, elle arrive au niveau de socketmaster et non au niveau du serveur réellement. Si le serveur peut répondre, la demande lui est transférée. Si ce n'est pas le cas (par exemple pendant un redémarrage) les demandes sont mises en attente et transmises au serveur dès qu'il redevient disponible. Vous trouverez sur le blog de pandastream un article présentant socketmaster. Dans cet article, ils présentent entre autre certaines raison qui les ont fait utiliser Go :

The tool is written in Go which allowed me to shorten my development time considerably compared to C. Go allowed me to tap into the lower-level POSIX constructs while also having access to handy higher-level abstractions. For you, it means that it can easily be cross-compiled and distributed in a binary form.

En gros, Go permet d'aller beaucoup plus vite que C. C'est plus mieux en étant à la fois bas niveau, avec des structures de haut niveau. Et ça permet de faire des binaires facilement.

Toujours côté développement, voici quelques présentations que je vous conseille :

  • Making the Web Faster at Google and Beyond : présentation sympa sur les performances du web, temps de réponse, etc. Lorsque je vois la rapidité de certains sites (c'est évidement malheureusement ironique), je me dis par contre que cette présentation est réellement loin de la médiocrité (pour ne pas dire pire) de certains :-(
  • A Gentle Introduction to Ember : une introduction sympa à Ember, entre autres, montrant comment créer un lecteur de RSS.

Graphisme, design & co

Dans le genre étrange, voici les photos de 25 endroits sur Terre qui ne semblent pas normaux… et pourtant ils sont bien réels ! J'en connaissais déjà certains (comme la Namibie), mais d'autres sont réellement impressionnants. Si vous voulez vous extasier quelques instants, prenez le temps d'aller voir ces 25 photos, c'est intriguant mais agréable.

Pendant un temps il m'arrivait de placer des lego dans quasiment toutes mes news. Cette fois-ci (grâce à xunfr) voici une image du brevet de ces petites briques. Ok, ça ne sert pas à grand chose mais moi j'aime bien :)

Liste des liens présentés

Développement

Graphisme, design & co

2012 nov. 7

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

Juste comme ça, la nouvelle version de ma veille "de tout, de rien, des bookmarks, du bla bla" est à nouveau en dépêche sur linuxfr : http://linuxfr.org/news/de-tout-de-rien-des-bookmarks-du-bla-bla-45

Et pour la première fois il s'agit d'une dépêche collaborative. En effet, certains liens présentés ont étés proposé par des lecteurs/contributeurs à linuxfr. C'est une première, mais j'espère que ce ne sera pas la dernière !

Bonne lecture !

2012 nov. 4

znc, bitlbee et irssi/xchat : le combo gagnant ?

Au boulot, on utilise un chan IRC pour papoter, mais aussi pour recevoir diverses notifications telles que les commits réalisés, les fails de jenkins, les déploiements capistrano, etc. Plutôt pratique, ça me rappel mes études où je trainais un peu sur #mandrakefr.

Quoi qu'il en soit, il m'a fallu me remettre à tout ça, et je pense que j'ai trouvé un combo plutôt pas mal :

  • ZNC comme proxy irc
  • BitlBee pour parler sur twitter / gtalk / msn / facebook avec irc
  • irssi ou xchat comme client irc

Explications

Proxy IRC ?

Comment ça un proxy IRC ? Et d'abord ça sert à quoi ?

La solution la plus simple avec IRC, c'est d'avoir un client quelconque, de se connecter au serveur et voilà. Le problème, c'est que parfois il faut arrêter le logiciel, redémarrer sa session, etc. Et là, hop, déconnecté. C'est pas super gênant mais c'est pas toujours très pratique... surtout lorsqu'on peut faire autrement.

La première étape en général est de passer par screen ou un équivalent. Evidemment ça ne fonctionne que pour des outils en ligne de commande (il y a des équivalent pour X mais je n'ai pas essayé). Et qui dit IRC en ligne de commande dit irssi. Ok, cool, irssi dans un screen. Ha mince, une mise à jour noyau. Hop, reboot ... et là irssi n'y peut pas grand chose...

L'étape d'après est donc de passer sur un serveur distant via ssh sur lequel on utilise screen avec irssi. C'est pas mal, mais parfois ça lag. Et surtout, ça lag lorsqu'on tape du texte... et ça c'est vraiment vraiment désagréable.

La solution est alors d'avoir le client sur son poste. Il ne peut alors plus avoir de lag puisqu'on tape en local.

Ha oui, mais je comprend plus rien, il faut être en distant pour ne pas avoir de problème et là on a un client local ?!

Et oui, c'est là qu'intervient le proxy IRC. Sur mon serveur distant, j'ai un proxy IRC qui se connecte à freenode et bitlbee. Il me permet d'être toujours connecté, de ne pas perdre les messages si je ne suis pas présent, etc. Et agit comme un proxy, c'est à dire qu'il me repousse le tout en utilisant le protocole IRC.

Et à l'autre bout, côté client, je ne me connecte pas à freenode mais à mon proxy. De cette manière j'ai une très bonne interactivité avec mon client puisqu'il est local, et je passe simplement par un proxy pour parler / lire. Et finalement il n'y a pas grande différence à être connecté directement à un serveur freenode ou à mon proxy. Donc ça c'est supair !

Initialement, comme je parlais d'irssi, j'utilisais la fonctionnalité proxy d'irrsi. Vous trouverez d'ailleurs pas mal de tuto sur le net à ce sujet. Mais ce n'est pas parfait. Entre autre, la config n'est, je trouve, pas toujours simple, et les fonctionnalités de type backlog ne sont pas géniales. Le backlog permet de recevoir sur le client les messages postés sur le serveur (où l'on est toujours connecté) pendant que le client est déconnecté.

Et c'est là que j'ai découvert ZNC qui est plutôt pas mal :

  • configuration très simple et très claire, il suffit de faire un znc --makeconf et ça roule
  • backlog intégré
  • un module permettant de passer en away dès que le dernier client quitte
  • une interface web (sur le même port en fait) qui permet de tout configurer simplement et agréablement

BitlBee ?

Maintenant que j'ai un proxy IRC qui tourne et que j'ai un client (irssi) je peux gérer ma présence sur IRC très facilement et agréablement. Imaginez, vous êtes en train de discuter avec quelqu'un sur un pc, vous voulez sortir. Hop, fermeture du client, ouverture d'un nouveau client sur le téléphone. Aucun lag, aucune perte, c'est parfait.

Et finalement ça serait encore mieux si les autres services étaient gérés de la même manière. Par autres services j'entend surtout msn (bouh), jabber (et gtalk), twitter, facebook. Et c'est là qu'intervient BitlBee. Il s'agit d'une passerelle (un peu un proxy encore une fois) vers ces réseaux. C'est en fait un client twitter, un client jabber, un client msn, ... mais qui, au lieu de vous afficher une fenêtre, vous "parle" et écoute via IRC.

Votre client IRC permet donc de se connecter à cette passerelle et vous l'utilisez pour papoter avec tous vos réseaux. L'avantage est d'une part qu'on peut le coller derrière le proxy IRC (donc pas de déconnexion par exemple) mais aussi que vous n'avez plus qu'un logiciel pour gérer tous vos comptes. Et ça c'est réellement parfait !

Client

Maintenant, il ne reste plus qu'à avoir un client IRC de dispo. Sous la plupart des systèmes, un simple irssi devrait suffire. Entre autres choses très très agréables, vous pouvez découper votre écran en plusieurs fenêtres. Très pratiques si vous êtes sur un chan en permanence et que vous voulez en même temps discuter via jabber. Ou pour avoir votre flux twitter toujours visible.

Si vous ne vous sentez pas trop d'utiliser irssi (en mode "texte") alors un xchat fera l'affaire sans trop de problème.

Mise en oeuvre

Ce qui suit est valable pour une mageia 2, mais ça devrait être sensiblement la même chose sur n'importe quelle distrib.

Installation

Il faut d'abord installer bitblee et znc. Rien de plus facile :

# urpmi znc bitlbee

Et voilà !

Bitlbee tourne en service (via xinetd) par défaut sur le port 6667. Vous pouvez, dans le fichier /etc/bitlbee/bitlbee.conf changer ceci, ajouter un mot de passe, etc.

Maintenant, il faut configurer le tout.

Le plus simple est de lancer ZNC qui a un mode permettant d'initialiser la configuration. Faites le avec un utilisateur classique, et pourquoi pas dans un screen si vous ne le détachez pas (ce qu'il peut faire tout seul).

$ znc -c

Il va alors passer dans un mode interactif et vous pouvez le configurer. Pour ma part j'ai ajouté deux utilisateurs, l'un qui s'appelle freenode et qui se connecte à ... freenode (irc.freenode.org/6667) et un autre, bitlbee qui se connecte à mon bitlbee local, soit localhost/6667.

Ce qui est bien avec de système d'utilisateurs, c'est que le proxy IRC ne tourne que sur un seul port, et suivant l'utilisateur il me redirige vers l'un ou l'autre.

Ha oui, j'ai oublié de dire : et voilà, c'est terminé !

Vous pouvez ajouter certains modules si vous le souhaitez, mais le mieux est de simplement suivre le script de configuration, il vous demandera tout ce qu'il faut.

Côté client, il suffit d'ajouter vos deux (ou plus) configurations, par exemple :

  • /connect <votre serveur>/<port znc> freenode:<mdp> et vous accéderez à freenode
  • /connect <votre serveur>/<port znc> bitlbee:<mdp> et vous serez sur bitlbee

Pour freenode je pense qu'il n'y a pas grand chose de spécial à dire, pour bitlbee le mieux est d'aller voir les configurations possibles sur leur wiki. C'est simple et plutôt clair, je ne vais pas faire de la redite ici.

Lorsque vous quitterez votre client IRC... au mieux vous serez marqué away, au pire il ne se passera rien, et vous pourrez reprendre votre session en ouvrant un nouveau client. Et vous serez resté en ligne pendant ce temps !

2012 oct. 26

Petites news

Comme vous avez pu le remarquer (ou pas) je n'ai pas publié de "De tout, de rien, des bookmarks, du bla bla" cette semaine. Normal, pour la deuxième fois ma veille est passée en dépêche sur linuxfr.org.

J'avais indiqué il y a relativement peu de temps que j'ai quitté mon emploi chez Business Geografic pour rejoindre l'équipe de TEA. Vous pouvez désormais voir une partie du travail que j'y effectue puisqu'un des projets sur lequel je travail est open source. Il s'agit de TeaBook Open Reader, un lecteur d'epub sous forme d'application web.

Vous pouvez trouver de plus amples informations, détails, lien vers la démonstration, etc dans la news linuxfr.org que j'ai rédigée pour l'occasion.

2012 oct. 17

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

Pour changer, cette veille est passée en dépêche sur linuxfr.org :) Comme d'habitude vous trouverez pas mal de chose côté développement (essentiellement côté web, js), mais aussi deux trois petites choses annexes.

Une liste de l'ensemble des liens présentés est accessible à la fin de l'article.

Bonne lecture

Un peu de contenu

Développement

Vous avez toujours regardé Go mais n'avez jamais franchi le pas ? Vous ne savez pas faire des choses toutes bêtes en Go ? Alors Go by Example est fait pour vous. Il vous présente les bases à connaître au travers de petits exemples clairs et documentés.

Chaque semaine je vois passer des nouvelles migrations vers go. Ce que je trouve intéressant est que c'est régulièrement des codes important et on y retrouve souvent les mêmes arguments : c'est simple, agréable à coder, ça fonctionne simplement bien. Cette fois ci ce sont les dns du pool ntp qui viennent de migrer sous go. Et les sources sont sur github.

Ha oui, et évidemment c'est développé avec SublimeText et GoSublime ;)

Je suis sur que vous avez toujours rêvé de pouvoir écrire du code comme vous pensez. C'est désormais une réalité pour les développeurs ruby (car de toute façon « il y a une gem pour ça ») avec fsck. Pour illustrer, voici un petit exemple tout simple :

```ruby

all i want is to sum the goddamn elements

sum = 0 (1..10).each_fucking_element { |e| sum += e } ```

Alors, cool, non ? Bon en fait c'est pas méga compliqué, ça utilise surtout method_missing qui va être appelé à chaque fois qu'on essaie d'exécuter... une méthode manquante.

Sympa et totalement inutile, donc absolument indispensable !

Restons dans les langages intéressant. Tout d'abord avec The State of Javascript. Il s'agit d'une présentation sur javascript assez intéressante. Ca parle entre autre de ES6 (EcmaScript 6). S'il y a plein de bonnes choses, je suis très perplexe quand à son adoption par l'ensemble des navigateurs. Et sans cette condition ça ne servira pas à grand chose, en fait ça deviendra simplement un de plus parmi typescript, dart, ...

Toujours en js, j'ai découvert melonJS. Il s'agit d'un framework javascript orienté jeux vidéos (par tuile). Plutôt sympa, ça donnerait presque envie de coder des jeux (mais bon, c'est pas trop mon truc les jeux...)

Et côté nouveautés langage, Rust vient de sortir la version 0.4. J'ai l'impression que par certains côtés ça s'oriente vers les mêmes solutions que, par exemple :

Classes are replaced with simpler structs

Après il y a eu beaucoup de renommage, c'est assez marrant (mais doit être perturbant pour ceux qui ont écrit du code) :

  • ret became return and alt became match
  • import is now use; use is nowextern mod`
  • extern mod { ... } is now extern { ... }
  • use mod is the recommended way to import modules
  • pub and priv replace deprecated export lists

Avez-vous déjà essayé Rust ? Un petit retour ?

Si vous utilisez AngularJS et SublimeText vous serez probablement intéressés par deux bundles permettant d'ajouter de l'autocompletion. Tout d'abord AngularJs.tmbundle, qui rajoute simplement quelques snippets. Mais surtout, Sublime-AngularJS-Coffee-Completions qui rajoute pas mal de complétions, que ce soit en HTML ou en CoffeeScript.

Dans un autre registre, je viens de découvrir Codiad. Il s'agit d'un IDE (bon ok, un éditeur surtout) web. Il est donc possible de le placer sur un serveur plutôt basique (seul php5.3+ est requis, pas de base de données entre autre) et pourra donc vous permettre d'éditer vos fichiers, directement depuis votre navigateur. Même si ça peut être risqué (ne pas le laisser accessible surtout) je trouve que c'est intéressant. Il faut avouer que les éditeurs en ligne commencent à être de plus en plus performant et pratiques à utiliser (voir aussi par exemple The ACE Editor, l'éditeur de Cloud9 IDE). A noter que ces deux éditeurs sont libres.

Voici par contre un nouveau concurrent dans les "forges", dans le hosting de dépôts de sources : PikaCode. C'est marrant comme le design me fait penser à une lib qu'on rencontre souvent, et à un site très connu dans le domaine ;) J'ai pas testé non plus, mais un point fort je trouve est d'héberger du mercurial et du git.

Misc

Evidemment vous avez suivi l'histoire du gars qui monte très très haut, juste pour sauter dans le vide... (bon en même temps ayant déjà sauté, de beaucoup moins haut, je comprend l'intérêt ;) ) Voici un petit résumé en vidéo du saut.

Voici, comme souvent, une petite présentation agréable sur How do you build great software? chez github. Pas grand chose à dire, juste que j'aime bien, que ce soit le fond ou la forme.

Graphisme

List des liens présentés

Développement

Misc

Graphisme

2012 oct. 11

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

Note : Comme d'habitude ce contenu est cross-posté sur linuxfr

Introduction

Bon, j'ai zapé encore une fois quelques numéros, mais c'était entre autre parce que j'ai créé Sleipnir et ça m'a pris un peu de temps. Et je sais que vous l'attendiez tous impatiemment !

Pour cette fois, comme d'habitude pas mal de dev web, surtout autour de javascript.

Allez, assez de bla bla, place aux liens

Un peu de contenu

Développement

Tout d'abord, une nième surcouche à javascript. Cette fois ci en provenance mozilla, Sweet.js. Je ne l'ai pas encore testé mais je n'ai pas vraiment saisi l'intérêt. L'un d'entre vous a-t-il déjà essayé ?

Encore en lien avec Mozilla, voici LLJS. Il s'agit, d'après la doc, d'une surcouche à javascript orientée bas niveau, avec un système de typage à la C, avec gestion manuelle de la mémoire. Idem je ne sais pas quel est vraiment le but recherché, c'est intéressant sur le principe, mais je vois pas bien l'intérêt. Par contre, ça peut être assez marrant et il serait intéressant de voir si l'absence de garbage collector peut avoir un intérêt quelconque (performances par exemple).

Bon, je ne parlerai pas vraiment de TypeScript, allez juste un petit peu. Beaucoup de personnes l'ont comparé à Dart. Mais je pense que ce n'est comparable qu'en apparence. TypeScript tente de corriger des problèmes du genre typage, modèle objet. Le but est, il me semble, d'avoir un langage plus robuste, plus propre pour aider au développement, et ensuite de l'exécuter une fois compilé en javascript. Dart part d'un tout autre constat : on s'approche des limites d'optimisation de javascript. En gros, par design, javascript est complexe à optimiser et chaque amélioration coûte assez cher. L'objectif est donc de remplacer javascript par un langage qui peut être mieux optimisé, qui, par design, pourra mieux répondre aux attentes de performances. Evidemment le tout en améliorant le langage, mais sans non plus tout changer. En attendant, Dart peut tout de même être compilé en javascript, ce qui pour le coup les mets un peu à égalité dans les faits.

Toujours en parlant de Dart, voici des conventions d'organisation de paquet. Même si les choses s'améliorent, c'est un point qui est souvent négligé dans le web. Probablement car initialement il n'y avait pas besoin d'empaqueter grand chose. Mais maintenant que tout (ou presque) passe par des préprocesseurs ou compilateurs (que ce soit les feuilles de style, les templates, les dart/typescript/coffeescript/...) les choses deviennent un peu plus complexes. Avoir une bonne structure à ce niveau est plutôt intéressant.

Et en parlant de coffeescript, v'la t'y pas que Dropbox migre sous coffee pour leur code client. Un retour d'expérience plutôt intéressant, sur un ensemble de code de taille correcte (environ 20 000 lignes). Je vous laisse allez voir leurs arguments et quelques exemples, mais ce qui est clair est qu'ils sont plutôt tombé sous le charme. D'ailleurs tout le nouveau code est en coffee.

Pour rester un peu dans le web, je ne sais pas si vous avez vu passer les news en provenance du w3c : après avoir fait de html5 une version "rolling release", puis séparé html5 en html5 et html5 (bon ok, un truc plutôt stable et un truc plutôt mobile) voici qu'ils planifient html 5.1. Franchement j'ai un peu de mal à voir l'intérêt. On va en fait revenir à la même situation qu'avant, les navigateurs qui supportent des versions différentes, et un bordel sans nom pour gérer ça. Et je ne parle même pas du fait d'utiliser rapidement des nouveautés...

Je ne rentre pas dans le détail, mais voici une plutôt bonne explication des websockets.

Et également une présentation de la boucle d’évènement de node.js. Plutôt intéressant si vous voulez vous y mettre, ou juste par curiosité.

Avant de clore la partie développement voici un lien particulièrement instructif. Il s'agit d'un article sur le fait d'écrire de meilleurs bibliothèques javascript. L'article commence, à raison, sur le fait qu'on passe beaucoup plus de temps à utiliser une bibliothèque qu'à l'écrire. Par contre, s'il y a des choses plutôt intéressantes, je suis mitigé par rapport à certains points. Un exemple parmi d'autres : Generating accessors. Je vois bien leur problème de duplication de code, mais je trouve que l'usage de générateurs est quelque chose qu'il est souvent (pas forcément tout le temps) préférable d'éviter. Déjà on commence à s'approcher de la méta programmation, et c'est malheureusement pas ce que beaucoup de développeurs (à tord) connaissent et utilisent. Ensuite, je trouve que la lecture du code de la bibliothèque en est très fortement perturbée. On ne voit plus vraiment les méthodes existantes, et ça en terme de maintenance c'est plutôt mauvais. La documentation est également tout de suite plus complexe à réaliser (et pourtant pour une bibliothèque c'est quand même super important). En fait j'utilise les principes de générateurs dans un tout autre contexte, qui je trouve est beaucoup plus pertinent : les méthodes cross navigateurs. Typiquement les méthodes de gestion d'évènements. Beaucoup de méthodes du genre sont bourrées de tests, pour savoir si on a attachEvent ou addEventListener. Pour le coup il est vraiment intéressant de créer, à l'exécution, la bonne méthode. L'avantage étant que le code exécuté sera plus simple, plus performant car supprimant pas mal de tests. Juste pour représenter ce que je dis (grossièrement). En général on a :

javascript myCoolApi.addEvent = function(target, eventType, ...) { if ("attachEvent" in window) { // bla bla bla } else if ("addEventListener" in window) { // bla bla bla } else { throw new Error("unsupported") } }

alors qu'on pourrait pour le coup avoir :

javascript myCoolApi.addEvent = (function() { if ("attachEvent" in window) { return function(target, eventType, ...) { // do the ms way }; } else if ("addEventListener" in window) { return function(target, eventType, ...) { // do the right way }; } else { return function() { throw new Error("unsupported"); } } }()

Je trouve ça relativement clair tout en étant meilleur à l'exécution. Et vous, vous en pensez quoi ?

Et pour terminer, je vous laisse sur une vidéo bien cool présentant quelques subtilités de ruby et javascript.

Misc

Voici une "petite" analyse très sympa sur les codes pin. Allez vraiment la voir, ça pourra répondre par exemple à la question "pourquoi 2580 est en 22° position des codes les plus utilisés alors que sur votre clavier ça ne ressemble pas à grand chose ?".

Je me suis mis récemment à irssi (en fait je suis même passé sous i3 mais c'est encore une autre histoire). Et de mes recherches, voici deux liens qui peuvent vous intéresser. Tout d'abord un thème sympa, solarized. Normal qu'avec ma css linuxfr je l'utilise ;) Ensuite, voici un article sur l'utilisation de irssi et screen. Je ne l'ai pas encore complètement lu, mais il semble plutôt complet et intéressant.

Et vous, avez-vous des ressources, astuces, ... pour un débutant sous irssi (ou sous i3 d'ailleurs) ?

Graphisme & co

Si vous vous demandez quels sont les principes derrière l'interface de Firefox OS, en voici une présentation.

Un peu de graphisme dans ce monde de brutes ! Voici une série de logos plutôt intéressants par leur utilisation de l'espace négatif. On y pense malheureusement peu souvent, c'est pas toujours évident à manier mais c'est plutôt agréable et permet d'avoir des logos à deux lectures.

Liste des liens présentés

Introduction

Développement

Misc

Graphisme & co

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

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

Introduction

Un numéro de zappé, mais c'était pour la bonne cause : ma css linuxfr-solarized. Finalement ça prend plus de temps que prévu, donc moins de liens collectés. Et faut dire aussi que j'ai l'impression que pas mal de monde a commencé les vacances, donc beaucoup moins d'activité. Donc toute petite revue cette fois-ci, mais revue quand même.

Un peu de contenu

Développement

On commence directement avec du développement web. L'une des questions qui revient toujours est de savoir quelles sont les fonctionnalités supportées et disponibles pour un navigateur. Ce site, haz.io, ne vous renseignera pas sur le support pour l'ensemble des navigateurs, mais mettra en évidence ce que votre navigateur supporte. Et pour quasiment chaque fonctionnalité un lien vers les specs (ou draft) du W3C est réalisé, est ça c'est bien.

Toujours côté web, la fonction css calc() est désormais non préfixée. Enfin presque, c'est pour firefox 16. C'est une très bonne chose, c'est réellement une fonctionnalité intéressante pour le design web. Voici le bug chez mozilla. Cette fonctionnaltié existe aussi dans IE9, ce qui permet de l'utiliser (en rajoutant les bons préfixes) sur tout navigateur récent, IE >= 9, firefox et webkit.

Pour continuer les précédents numéro, un peu de coffeescript : j'ai découvert qu'on pouvait chainer les comparaisons :

Au lieu d'écrire ça

js value < 100 && value > 50

on écrit simplement

js 100 > value > 50

Mais pourquoi les autres langages n'ont pas ça ?

Une petite astuce toute simple pour ceux qui débutent avec git et qui ont peur des merges. En gros c'est l'utilisation des branches comme bookmark (pour une fois que je peux employer un terme hg en parlant de git ;-) ) pour pouvoir avoir un point de restauration si on se plante.

Je remonte également un lien trouvé dans un commentaire de nono sur les EBook : une lib javascript pour afficher des maths dans une page web. Entre autre chose une utilisation importante des polices de caractères, ce qui permet au rendu de suivre les zooms. Et ça c'est vraiment bien, bien mieux que n'importe quel plugin, mieux qu'une image, et même mieux qu'une image vectorielle finalement (ne serait-ce que parce que c'est toujours du texte). A avoir sous le coude si vous devez inclure des maths dans de l'html.

Comme vous l'avez probablement remarqué, je suis toujours en quête d'un bon outil pour gérer mes sources, mes bugs, mes code reviews, etc. Cette fois-ci je vous propose phabricator. Phabricator regroupe tout ça et même plus. C'est à la base un projet de facebook et ça me semble plutôt pas mal. Je suis justement en cours d'installation.

Actuellement j'utilise github, j'ai aussi des repositories sur baregit. J'ai aussi une instance de gitorious mais je n'en suis pas totalement satisfait (il manque pas mal de choses, même si le côté hébergement de source fonctionne plutôt bien). J'aimerais en fait pouvoir avoir une instance chez moi d'un équivalent (fonctionnel) à github et simplement avoir des miroirs des sources (pour alléger ma bande passante si certains veulent faire un clone).

Dans la liste des versions à tester, j'ai également gitlab qui vient de passer en version 2.7 avec pas mal de nouveautés.

Misc

Si vous êtes sous gnome, vous apprécierez peut-être ce client mail : Geary. Pour ma part je ne l'ai pas testé, mais il me semble plutôt sympa, au moins pour du mail "perso".

Vous aussi vous avez un site web ? Vous aussi vous stockez des mots de passe ? Alors ne faites simplement pas comme Tesco. Voici un article très intéressant vous rappelant plusieurs règles de sécurité à adopter, en prenant comme contre exemple Tesco. Faut dire qu'ils l'avaient un peu cherché en twittant :

Passwords are stored in a secure way. They're only copied into plain text when pasted automatically into a password reminder mail.

Qu'est ce qui motive les gens ? Les récompenses ? Leur donner le choix ? Les forcer ? Les autonomiser ? Voici un Ted talk plutôt connu dans lequel Dan Pink tente d'apporter quelques réponses : The surprinsing science of motivation. Et pour ceux qui ne le savent pas, le lecteur est plutôt bien fait avec entre autres de nombreuses transcriptions et traductions, liées à la vidéo.

Graphisme & co

Un lien sympa (parmi plein d'autres) pour savoir faire des formes en css.

Liste des liens présentés

Développement

Misc

Graphisme & co

2012 juil. 17

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

Introduction

Je suis un peu en retard par rapport à ce que je voulais faire (boulot, changement, toussa), et au final j'ai pas trop de liens intéressants. Mais tant pis, voici la petite sélection de la semaine passée avec, je l'espère, tout de même quelques liens qui pourront vous intéresser.

Un peu de contenu

Développement

Voici une petite présentation de CoffeeScript. Si vous connaissez déjà le langage vous n'apprendrez rien du tout. Si vous ne le connaissez pas et connaissez javascript çar peut être intéressant. Entre autre ça pointe certains points négatifs de CoffeeScript et ça c'est bien (il est domage dans certaines prez de les masquer, connaître les limites est vraiment important je trouve).

C'est plus de la sécurité que du développement, mais voici un article intéressant et plutôt simple à lire concernant Stuxnet et ses mises à jour.

Voici encore un outil de code reviews, barkeep. Je ne l'ai pas testé, mais si quelqu'un a un comparatif / retour entre les différents outils existant (reviewboard, crew, etc) je suis preneur.

Oula, je ne pensais pas qu'on pouvait encore faire des migrations du genre : les ports de FreeBSD viennent de migrer de CVS vers SVN ! Hum, je comprend qu'on a pas forcément réellement besoin de plus que SVN (quoique...) mais je trouve étonnant de migrer vers SVN tout de même. Quelqu'un aurait des infos sur pourquoi SVN et par Git par exemple ?

Misc

Google a libéré les slides utilisées durant Google I/O. Evidemment (ou pas) il s'agit de slides à exécuter dans un navigateur web récent... sous webkit. Je n'ai pas vraiment essayé avec un autre, je ne sais pas trop ce que ça donne mais surtout je ne sais pas pour quelle raison cela ne pourrait pas fonctionner avec, par exemple, un firefox récent. Quoi qu'il en soit ces slides sont plutôt sympa, assez propres et claires. J'aime beaucoup le fait qu'on puisse ouvrir plusieurs fois le même document pour avoir l'un en plein écran (pour le public) et un autre avec les commentaires par exemple (un mode présenteur quoi). C'est vraiment un point intéressant pour le coup (la communication se faisant via postMessage). Ca semble également assez bien adapté à la présentation d'extraits de code. Plutôt bien quoi.

Là où je suis par contre plutôt surpris (mais bon, je ne devrais pas il est vrai) et qu'ils n'utilisent pas les différentes libs Google mais à chaque fois un équivalent :

C'est un peu étonnant, et j'ai parfois du mal à capter la logique. Surtout que si on continue a regarder ces points ont arrive entre autre jusque Yeoman, même si pour le coup j'attend un peu de voir et tester.

Pour rester sur le même sujet, il existe d'autres outils permettant de faires de présentations en HTML5. Entre autre, voici celui utilisé par nono (mais non je ne cherche pas à me faire bien voir, il n'a qu'à pas balancer des choses intéressantes :-) ) : Slide'em up. Il y a tout de même quelques différences. Entre autre je n'y ai pas vu de mode présenteur (j'affectionne particulièrement pour ma part), et c'est basé sur du Ruby. L'écriture des slides est égalemment réalisée en Markdown (c'est à priori aussi possible pour celles de Google). De ce que j'en ai compris, il s'agit par contre d'un fork de ShowOff avec des thèmes et surtout le remplacement de Sinatra par Goliath. De ce que j'ai compris il s'agit de serveurs web en ruby, Goliath étant asynchrone (un peu comme si on faisait du nodejs, non ?). Sinatra est plus un DSL et non un vrai serveur ? Si nono passe pas là je suis pas contre une explication de ce choix de remplacer l'un par l'autre. En fait juste pour bien comprendre les différences entre les deux et pourquoi c'est plus intéressant d'avoir Goliath dans ce cas que Sinatra.

Voici, beaucoup plus léger, une photo que j'ai vu passé sur twitter, peut-être vous aussi : good - cheap - fast. Une façon assez sympa de présenter trois catégories de réalisations, un peu comme le théorème CAP finalement.

Humans.txt est une initiative assez intéressante. Il s'agit de replacer un peu d'humain dans les sites web. On a par exemple des fichiers robots.txt pour parler aux moteurs de recherche. Là il est question d'un fichier qui, pour le coup, est destiné aux humains : déclaration des autheurs, des créateurs, remerciements. Par contre, j'ai pas bien compris la ligne IDE, je vois pas trop ce que ça vient faire dedans... Vous trouverez une explication sur le site robots.txt...

Graphisme & co

Si vous utilisez balsamiq pour faire vos maquettes d'interfaces, vous serez probablement ravis d'apprendre qu'il existe une nouvelle alternative, moqups. Il s'agit d'un outil assez similaire, en html (au lieu de flash/air) et qui plus est gratuit. Par contre, ça ne semble pas libre.

Liste des liens présentés

Développement

Misc

Graphisme & co

2012 juil. 12

Informaticien : quels risques ?

Je suis tombé (ouille) via twitter sur un article plutôt intéressant concernant les risques du métier d'informaticien.

Tout d'abord j'ai découvert un site dont je n'avais pas connaissance : "Travailler mieux. La santé et la sécurité au travail" accessible via http://www.travailler-mieux.gouv.fr. Vous pouvez consulter la fiche dont je vais vous parler sur ce site.

Si, évidemment, les accidents sont peu spécifiques et probablement peu nombreux, deux catégories de problèmes m'ont intéressés.

Tout d'abord les risques inhérents au tâches : travail sur écran, position statique prolongée et frappes répétitives. Ok, on le savait déjà, mais c'est pas grave il est bon de le rappeler et de rappeler que bouger de temps en temps est quand même intéressant. D'ailleurs dans de plus en plus d'entreprises (je ne sais pas en France) des bureaux debout (statiques ou dont le plan de travail permet les deux positions) font leurs apparitions. L'avantage, surtout avec un bureau qui permet plusieurs hauteurs, et de permettre de continuer à travailler sans pour autant passer toute ses journées assis (un exemple parmi d'autres dans cette présentation de Fog Creek).

Mais le point qui m'a interpellé le plus concerne les risques psychosociaux. Si les symptômes ou problèmes sont asses classiques et facile à identifier, la liste des causes identifiées fait malheureusement un peu froid dans le dos. En fait elle fait froid dans le dos non à cause des différentes causes en elles-mêmes, mais par le fait que, jusqu'à présent, j'ai réussi à rencontrer une majorité de ces problèmes, y compris simultanément. En fait il est même rare d'être dans la situation où aucune de ces causes ne serait présent à un instant donné.

Voici la liste :

  • l’urgence des travaux à effectuer et l’impossibilité de négocier les délais,
  • l’obligation de résultats,
  • le déficit managérial,
  • l’absence de reconnaissance
  • les périodes intercontrats ou le salarié n’est pas affecté à une activité précise
  • la culture du jeunisme

De mon côté, sur ces 6 causes, en général 5 sont présentes (pas constamment mais très fréquemment). Ha oui, pour info je ne suis pas en SSII donc pas d'intercontrat. Ok, c'est donc moche je suis à 100%...

Ensuite quelques phrases intéressantes (qu'il faudrait développer mais pas le temps maintenant) :

La charge mentale dans cette activité est très importante

La nature des tâches à accomplir offre de l’autonomie pour les réaliser (sans que cela soit forcement assorti d’autonomie de décision)

déficit organisationnel et un faible soutien social

2012 juil. 10

Vous reprendrez bien un peu de tea ?

OK, c'était vraiment facile comme titre...

Tout ça pour annoncer que je quitte mon employeur actuel, Business Geografic et me dirige petit à petit vers tea.

C'est donc, à partir de septembre, le début d'une nouvelle aventure. Nouvelle équipe (plus petite), nouveau projet, nouveau secteur (livre numérique), nouvelles technologies, etc. Pas mal de choses qui changent, certaines qui restent (javascript ;-) ) et certaines à écrire.

J'aurai probablement l'occasion de revenir dans un billet ultérieur sur mes presque 5 ans passés chez BG (et plus globalement sur ces 5 dernières années, d'autant plus qu'ont peut multiplier le tout par 6 pour obtenir une nouvelle échéance).

J'ai en effet assez peu parlé de mon boulot actuel, voici néanmoins un petit saut dans le passé (qui ne vous apportera il est vrai pas beaucoup d'informations) :

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 juil. 4

Développeur sénior

Edit : je rajoute juste un lien sur le même sujet, mais qui décrit / explique autrement : http://blog.mageekbox.net/?post/2012/07/04/Le-developpeur-une-espece-en-danger-d-extinction

Développeur senior

Au détour d'un article assez intéressant de Xebia sur la pénurie de seniors dans les équipes de développement je viens d'avoir une révélation : je suis désormais (enfin depuis quelques temps en réalité) un développeur senior ! :-)

Au delà de 5 ans d’expérience, les développeurs sont considérés comme « seniors »

Développeur senior ?

Honnêtement je trouve que cette classification senior est un peu prématurée. En gros le découpage, dans cet article, est fait comme suit :

  • 0 - 2 ans : débutant
  • 2 - 5 ans : confirmé
  • > 5 ans : senior

En même temps je commence pour ma part à vraiment sentir la différence entre aujourd'hui et quelques années en arrière, notamment dans une bien meilleur anticipation des problèmes pouvant survenir. Oui, c'est pour le coup l'expérience qui parle, surtout confronté à des développeurs débutants (ou n'ayant même pas encore fini leurs études) mais aussi par rapport à des développeurs ayant quelques années de boulot mais pas trop.

(oui je sais ça fait un peu vieux con ce que j'écris)

Donc oui, je me sens quand même comme un développeur ayant une assez bonne expérience, une culture assez large en informatique. Mais dans la classification l'un des points qui me gène est le suivant : il n'y a aucune étape après 5 ans d'expériences ? Qu'est-on lorsqu'on à 10 ans, 20 ans de dev derrière nous ?

Une pénurie de senior ?

Sinon, je suis plutôt d'accord avec ce billet. L'informatique (et malheureusement aussi les éditeurs de logiciels bien que ce soit peut-être un petit peu moins marqué) manquent cruellement de développeurs seniors. Evidemment un senior va demander un salaire plus élevé. Mais n'est-ce pas rentabilisé par la production d'un meilleur logiciel au final ? Moins buggé et plus maintenable (car le développeur a justement eu l'expérience suffisante, s'est déjà frotté plus d'une fois à un code non maintenable pour en avoir beaucoup plus conscience). Mais aussi simplement de part l'expérience la création de meilleurs logiciels, l'utilisation de méthodes plus adaptées, etc.

Le problème est que, au delà de ce problème de salaire, il y a un problème de mentalité. En France (je ne sais pas pour les autres pays) un développeur confirmé est tout juste considéré, un développeur senior l'est encore moins. En tout cas c'est le sentiment partagé par de nombreux développeurs. Alors que fait-on lorsqu'on est développeur ? Ben on devient chef de projet, directeur technique (c'est quand même mieux que chef de projet je pense, mais ça dépend des cas). Dans certains cas on va passer sur des phases spécifiques de conception, d'architecture, mais c'est parfois réducteur. Au final, certes on prend des responsabilités, mais on s'éloigne avant même d'avoir pu exploiter entièrement nos capacités, connaissances. En fait avec cette divagation on n'exploite même pas réellement l'expérience acquise. Et c'est dommageable pour tout le monde, pour les entreprises, les éditeurs de logiciels, comme pour les utilisateurs.

Principe de Peter

Concernant le phénomène de passer chef de projet (ou autre), je pense qu'il y a deux raisons : déjà lorsqu'on est dans une école d'ingénieur (surtout une école orienté info) c'est la voie qui est indiqué : tu sortira de l'école et tu prendra 50k€ tout en étant chef de projet. Mais il y a aussi une raison plus insidieuse, presque perverse, et qui fait beaucoup de tord (mais ce n'est pour le coup pas du tout lié à l'informatique). Il s'agit du principe de Peter :

tout employé tend à s'élever à son niveau d'incompétence

ou, si on prend l'un des principes de base :

un employé compétent à un poste donné est promu à un niveau hiérarchique supérieur

C'est quelque chose qui se rencontre (malheureusement ?) partout. Lorsqu'on est compétent, on nous donne le poste suivant. Si on est un développeur compétent, performant, avec plusieurs années d'expériences, on va vous demander de gérer des projets, voir de diriger le service développement. C'est bien, c'est gratifiant, c'est une promotion. Mais c'est, souvent, une erreur. En effet, si je suis bon pour développeur un logiciel, si je suis performant, efficace, compétent, ça ne veut pas dire que je le serai au poste supérieur. Il se peut que oui, auquel cas c'est très bien. Mais il se peut que non, ou que j'ai encore beaucoup de choses à donner au poste actuel.

Le problème c'est qu'on confond deux choses différentes. Un développeur qui deviendrait confirmé, puis senior, qui prend un rôle de plus en plus important dans le développement, qui devient référent sur certains points, qui va guider les autres, etc est une bonne chose. D'ailleurs ses évolutions devraient être également prises comme des promotions. Mais au lieu de ça que fait on ? On dirige vers chef de projet, directeur technique, responsable de service. Et là en réalité ce n'est simplement plus le même métier. En fait on change totalement de métier (car au final, faire du management de développeurs ou d'autres types de profiles reste en majorité du management)

Par cette confusion on va déconsidérer le développeur en faisant croire que l'évolution logique et de passer au management au lieux d'évoluer dans le développement. Le développement est alors vu comme une voie de garage, aussi bien par les développeurs (qui veulent donc l'éviter) que par les entreprises (qui ne le comprennent pas forcément, ne veulent pas payer les développeurs avec expérience, etc).

D'où la pénurie finalement.

Après, la non considération des développeurs est aussi, je trouve, du fait d'un manque de compréhension du métier. Beaucoup (y compris dans l'édition de logiciel) pensent que le développement est une chose assez "simple", que n'importe qui peut faire le boulot d'un autre, que l'expérience n'amène pas grand chose, ou qu'on peut juste blinder les développements / logiciels par des processus stricts.

Alors, que faire ?

Déjà faire réellement prendre conscience du métier de développeur. Et ça c'est à tous les développeurs de le faire. C'est pas évident, mais primordial. Faire comprendre que non, un stagiaire ne va pas pouvoir vous faire presque seul le logiciel critique de la boite, mais que payer un développeur confirmé / senior permettrait d'avancer correctement et d'avoir, au final, un bon retour (sur investissement).

Une fois ceci fait, faire comprendre que développeur, chef de projet, directeur technique, responsable de service sont des métiers différents, et combattre le principe de Peter.

Payer les développeurs à leur juste valeur.

Avec ceci, les choses devraient pouvoir s'améliorer, mais honnêtement je ne vois actuellement pas trop d'évolution à ces niveaux...


Pour l'histoire perso : je suis actuellement justement en train de changer de travail (je détaillerai probablement un peu plus tard). Entre autre chose j'ai justement du faire le choix entre changer de poste - passer du côté responsabilité de service - ou être considéré comme développeur expérimenté et donc continuer à développer (oui, il y a quand même des entreprises qui le comprennent). Sans surprise j'ai prix le deuxième choix, car je suis, pour le moment, développeur. Peut-être que dans quelques années je changerai de voie, je partirai vers d'autres domaines (du type de la première proposition), ou même dans un secteur totalement autre que le développement (je tiens fortement à mon côté - et ma formation - généraliste). De part mon choix, j'espère avoir, aussi, contribué à l'amélioration des deux premiers points mentionnés ci-dessus (pour le troisième c'est moins de mon ressort, enfin c'est plus compliqué quoi).

2012 juil. 3

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

Introduction

Voici une nouvelle petite sélection de liens pour la semaine passée. Par rapport aux autres fois je suis légèrement en retard, week end oblige. D'ailleurs, une question pour toutes les personnes habitant à Paris ou environs : c'est quoi votre espèce de truc qui ressemble vaguement (mais de loin) à des transports en commun ? Franchement c'est une honte votre métro, comment vous faites pour utiliser ça ? Des escaliers dans tous les sens (supaïr avec enfant, poussette et bagages). Des portiques tellement étriqués qu'on a du mal à passer dedans (supaïr avec enfant, poussette et bagages). Des passages larges introuvables, inexistant ou non indiqués (supaïr avec enfant, poussette et bagages, mais aussi pour personnes à mobilité réduite, âgées ou autre). Franchement, venez à Lyon, au moins la majorité (tous ?) des quais sont accessible via ascenseur, on peut passer les portiques avec poussette et bagages. En fait le métro à Paris c'est juste fait pour les personnes en bonne santé tenant debout sur leurs deux jambes quoi. Ben c'est beau...

Comment ça on s'en fout ?

Comme la dernière fois, vous pouvez retrouver la liste des liens à la fin du post.

Un peu de contenu

Développement

Pour bien commencer ces bookmarks, voici Solarized, une palette de 16 couleurs. L'objectif est évidemment de colorer nos précieux codes sources, de manière la plus agréable possible. Un sacré travail a été fait pour avoir des couleurs homogènes, un contraste correct, une bonne relation entre les couleurs (qui ne sont pas du tout prises au hasard). Le tout existe en deux versions (fond clair ou foncé). Pour ma part j'ai essayé rapidement et j'ai trouvé la version sombre un peu désagréable, j'utilise actuellement la version claire pour préparer ce post. Maintenant je me suis aussi rendu compte que le rendu variait fortement suivant les écrans, donc c'est pas évident. Quoi qu'il en soit un thème sympathique et cohérent, et dans tous les cas une très bonne base. Bravo pour ce boulot qui change des thèmes classiques ou fait un peu au hasard !

Dans le genre "ça peut toujours être utile" voici une petite liste de [10 .htaccess] à garder sous le coude. Beaucoup sont connus mais le force download par exemple est intéressant.

Git est devenu, assez rapidement, un outil de développement très répandu. Mais il n'est pas toujours évident de comprendre tous les concepts présents. Voici donc, sans être exhaustive, une présentation visuelle de git. Il ne s'agit bien évidemment que de représentation du dépôt ou de l'état des fichiers, mais c'est déjà pas mal.

Evidemment, qui dit Git dit GitHub (ou pas). Et je suis certain de nombreux utilisateurs de GitHub attendaient cette fonctionnalité avec grande impatience : l'utilisation de subversion comme client pour github ! Bon, je vous avouerais honnêtement que j'en vois pas l'intérêt, mais pour quoi pas. Dans tous les cas une bien belle performance alors que certains s’évertuent à faire exactement l'inverse (git-svn par exemple).

Adobe est en train de développer un nouvel éditeur, pour les technos web, Brackets. Mais surtout, il est développé à partir du web. En effet, l'éditeur est réalisé en utilisant de l'html, du css et du javascript (sur base de chrome). Le style est plutôt sobre mais agréable, les premiers tests effectués m'ont plutôt laissé une bonne impression (rare pour des éditeurs en javascript). Je ne sais pas trop ce que ça va donner au final mais à suivre. Ha oui, et c'est dispo sous windows et mac même s'ils disent que le portage sous linux ne devrait pas poser trop de problème vu les technologies choisies. Et c'est sous MIT donc vous pouvez le porter vous même. A priori certains premiers retours sont encourageant.

J'ai déjà parlé plusieurs fois de Sublime Text 2. La version 2.0 est maintenant officielle (précédemment beta). C'est un éditeur (malheureusement pas libre) multiplateforme (windows, linux, mac). Il est vraiment agréable, très pratique et très puissant. C'est une très bonne alternative à certains IDE et en partie à vim/emacs, même si c'est probablement moins extensible. Sur ce point il faut noter qu'il est compatible avec Textmate et ça offre tout de suite pas mal de bundles ou thèmes.

Franchement c'est un très bon éditeur, avec des fonctionnalités vraiment sympa (comparativement à beaucoup d'éditeurs) ne serait-ce que la sélection verticale, la sélection des occurrences d'un mot pour édition multiple, transformation multi-ligne - mono-ligne, etc. Allez voir le site c'est plutôt bien présenté.

Ha oui, le tout avec une interface plutôt agréable et légère (mini maps par exemple).

Maintenant, la question que je me pose malgré tout : pourquoi n'y a-t-il pas d'éditeurs du genre en libre ? (et non je ne parlerai pas de notepad++ qui outre le fait de ne pas être multiplateforme à une interface déplorable, enfin très windows quoi). Est-ce que la présence de vim/emacs fagocyte tout projet de bon éditeur ? Est-ce simplement qu'un (bon) éditeur c'est long et compliqué à créer et que pour vivre en même temps c'est pas évident en libre (sachant que c'est pas forcément évident de faire / vendre du service autour et que c'est souvent le moyen de subsistance dans le libre) ?

Si je demande ça c'est que je trouve que ça manque vraiment. Pendant quelques années on voyait beaucoup de monde sous Textmate (entre autre depuis que les démos de Rails sont apparues...). Il semble en perte de vitesse pour le moment et sublimetext2 est en train de marcher un peu dessus, alors que la demande d'un équivalent windows/linux était très forte (oui, je sais, la demande, pas les doigts pour le code...)

Après de nombreux titres comme Doom, Quake 1 et 2, Doom3, voici que Fabien Sanglard s'attaque à faire une code review de Quake 3. Un sacré sujet et, comme d'habitude, un très bon et impressionant boulot de réalisé. Si vous avez quelques heures à perdre, voici de quoi faire.

Voici un très bon article à propos, entre autre, de Go (le langage de Google). Il est vraiment intéressant à lire, aussi bien pour le côté histoire (ben oué moi j'aime bien les mails de Torvalds dans les news de patrick_g, d'ailleurs c'est ce que je lis en priorité) que pour le côté technique, langage de programmation. Dans tous les cas, si vous vous intéressez aux langages et plus grossièrement à la programmation, allez simplement lire ce très bon article : less is exponentially more. (oui j'ai honteusement pompé ce lien depuis le compte twitter de nono)

Twitter continue d'ouvrir certains programmes. Cette fois-ci il s'agit de Lago un générateur de charge (en fait je ne sais pas trop comment le traduire). Le but est de tester, profiler des systèmes haute performance sous charge, dans un contexte réseau / distribué en s'approchant de la réalité, bruit sur le réseau, etc.

Javascript, bien que très largement utilisé à grand échelle, souffre encore d'un manque de "sérieux" et d'industrialisation. Entre autre, il est assez rare de voir du code testé de manière unitaire et c'est bien dommage vu le côté de plus en plus critique des applications javascript. Pour tenter d'améliore un peu les choses, voici un article d'introduction au test unitaire en javascript.

Misc

Je pense que pas mal de personnes ont du voir circuler cette nouvelle mais je le repartage car c'est plutôt intéressant. Il s'agit d'un contrat de développement en mode agile, écrit par un avocat, en droit français. Ca devrait permettre de réaliser des projets du genre avec un minimum de garantie quant au cadre légal (pas toujours facile, surtout que les méthodes agiles ne sont pas toujours bien vues des "clients", souvent simplement car non comprises ou faisant peur). En tout cas très bonne initiative et une bonne idée de le publier.

Je remonte ici le guide fourni à l'embauche de Valve bien qu'il m'ait été précisé dans les commentaires d'un ancien journal. Je trouve que c'est plutôt bien sympa (ok j'ai pas encore tout lu), autant sur le fond que sur la forme et la démarche. A lire si vous vous demandez si autre chose qu'une boite où vous êtes fliqués dans votre boulot existe.

Pour Google (autre boite sympa, non ?) le cloud est aussi une question de réduction de consommation électrique. Et voici les résultats de leur étude sur le sujet. En effet, combien de serveurs physiques totalement sous-exploités sont en fonction ? La virtualisation permet un premier pas intéressant en terme de mutualisation, et le cloud également à plus grande envergure. C'est un point qu'il ne faut pas négliger, même si ce n'est en général pas le frein ou l'argument le plus important lorsqu'on choisi de placer ces données dans le cloud.

Graphisme & co

Pour changer un peu des Lego, voici quelques sculptures de vos héros préférés. Plutôt sympa, non ?

Lorsqu'on fait du web, du graphisme (ou qu'on cherche juste à créer un nouveau thème pour emacs) on a souvent besoin d'outils pour obtenir des informations sur les couleurs, les dégradés, etc. ColorHexa est justement l'un d'eux. Il renseigne sur les couleurs (RGB, décimal, HSL, ...) mais permet aussi de travailler sur les dégradés. A ajouter dans sa boite à outil concernant les couleurs.

Voici quelques [dessins en 3D]. Et franchement c'est superbe ! J'aimerais vraiment bien savoir dessiner de la sorte ;-) La 3D est vraiment bien représentée, en utilisant l'anamorphose pour simuler l'effet de profondeur. On y croirait presque et l'inclusion d'objets réels sur le dessin ne fait que renforcer cette impression. Du très bon boulot.

Cartographie

Bing vient d'annoncer qu'ils allaient ajouter [165 To d'orthophotographies] aux 129 To existants. Le but est d'avoir, en Amérique du nord et Europe de l'Ouest, une résolution de 30cm/px. C'est quand même bien précis pour une ortho sur un site grand public. En tout cas une sacré mise à jour puisqu'elle est donc plus important que toute la donnée similaire déjà présente. Une tentative de leur part de s'améliorer et de conquérir un peu de la part de marché de Google.

D'un autre côté, Google met en évidence les zones du monde où il n'y a pas de route. Evidemment une partie du résultat était prévisible, mais la représentation (géo)graphique est toujours assez parlante.

Liste des liens présentés

Développement

Misc

Graphisme & co

Cartographie

2012 juin 26

Avant - après

Avant :

11_-_1.jpg

Après :

CAM00195.jpg

- page 1 de 6