Sunfox


Comment je travaille

mai 10th, 2019 , 1 commentaire.

Photo d'un souvenir du Japon

Voici un mode d’emploi sur mon travail en tant que Lead Développeur à KissKissBankBank.

Même si l’exercice est un peu étrange, l’idée derrière l’écriture de ce « Manager README » est de partager mes valeurs et mes attentes afin d’être plus transparent et de mieux travailler ensemble. Allez, c’est parti.

Suite de l’article…

Traduire ses routes dans Rails

juillet 8th, 2015 , 1 commentaire.

Photo de portes de Fushimi Inari-taisha

Les URLs de votre site sont visibles et méritent autant d’attention que le reste de votre interface. Dans ce cas, pourquoi avoir des chemins en anglais uniquement alors que le reste de votre site est traduit ?

https://monsite.com/en/books/1/edit
https://monsite.com/fr/books/1/edit
https://monsite.com/es/books/1/edit

Je trouve que les adresses suivantes, traduites, sont plus élégantes et compréhensibles par tous :

https://monsite.com/en/books/1/edit
https://monsite.com/fr/livres/1/éditer
https://monsite.com/es/libros/1/editar

Mieux, non ?

Pour avoir des URLs pareilles avec Ruby on Rails sans pour autant tout dupliquer, j’ai développé la gemme route_localize.

Une fois installée, il suffit d’entourer les routes à traduire dans config/routes.rb :

scope localize: %w(en fr es) do
  resources :books
end

Vous pouvez ensuite traduire les chemins que vous voulez dans vos fichiers de localisation :

fr:
  routes:
    books: livres
    edit: éditer

Et voilà ! Magie !

Enfin, si vous souhaitez faire passer vos utilisateurs d’une langue à l’autre sur votre site un petit helper prends la langue voulue et vous retourne le chemin traduit.

Enregistrer la langue d’un utilisateur avec Devise

juillet 6th, 2015 .

Daim photographié

J’ai créé une petite gemme Ruby. Son petit nom c’est devise-track_locale. Si vous utilisez Ruby on Rails et Devise sur un site multilangue, cela vous permets d’enregistrer la dernière langue utilisée par l’utilisateur, automatiquement.

C’est un module Devise, donc son installation est aussi simple que d’ajouter :track_locale dans la liste de modules Devise et un champ locale sur les utilisateurs.

Ce n’est pas grand chose, mais plutôt que de garder cette fonctionnalité sur un site j’en ai fait une petite librairie externe, réutilisable, open-source, testée. Et je compte bien en faire autant pour tous ces petits développements qui sortent des fonctionnalités du cœur de mes sites.

Ember en 2015

mars 17th, 2015 .

Trois choses à retirer de la Keynote d’ouverture d’EmberConf 2015 à propos du framework JavaScript Ember :

EmberJS Logo

V2

Toutes les nouvelles features de la version 2 d’Ember sont déjà dans la version 1. Cette nouvelle version va juste retirer les warnings. Du coup la mise à jour d’Ember peut se faire de façon beaucoup plus graduelle et rétrocompatible. Si on compare ça à Angular, la version 2 ne sera pas du tout compatible et introduit énormément de nouvelles façons de faire d’un coup.

Suite de l’article…

Rails et Emails

septembre 4th, 2014 , 2 commentaires.

parisrb

À la dernière conférence Paris.rb je présentais 6 choses à arrêter de faire si vous envoyez des emails avec votre application Ruby on Rails.

Suite de l’article…

Comment j’ai rendu mon blog responsive

août 9th, 2014 , 5 commentaires.

L’HTML et le CSS de ce blog ont été écrits en 2006. En années Internet c’est comme si je l’avais fait il y a 3042 ans.

À cette époque l’iPhone n’existait pas encore et on ne se préoccupait pas de savoir si un site fonctionnait sur son assistant personnel ou pas. La première mention de Responsive Web Design date de 2010 (il y a 520 ans environ). Essentiellement il s’agit de transformer un site pour qu’il puisse s’adapter de façon fluide à toutes tailles d’écrans.

Transformer quelque chose qui n’a pas été pensé mobile first n’est pas chose facile, alors un vieux site au CSS croupissant, cela paraît insurmontable.

Suite de l’article…

En CSS, n’utilisez que des classes

août 6th, 2014 , 2 commentaires.

Photo de la mer

CSS permets d’utiliser plein de sélecteurs raffinés pour ajouter du style à vos éléments. Je soutiens qu’il faut éviter autant que possible d’utiliser quoi que ce soit d’autre que le sélecteur de classes (.foo).

Pour que vos styles soit réutilisables et ne soit plus aussi liés à votre HTML fini donc d’utiliser des sélecteurs d’identifiants, de balises, d’attributs ou de parenté.

Voici pourquoi.

Suite de l’article…

Ajoutez la couleur dominante derrière vos images

juillet 25th, 2014 , 3 commentaires.

Si vous pouvez extraire la couleur dominante d’une photo, une petite touche sympa à ajouter sur votre site est de se servir de celle-ci tant que votre image n’est pas chargée.

Voici un exemple sur cults3d.com :

Chargement d'une page sur Cults 3D

HTML

En HTML, le plus simple est d’appliquer la couleur dominante sur son style inline. C’est cette couleur qui apparaîtra durant le chargement

<img style="background: #f3de56" src="…" width="120" height="120" />

Avec Rails

Si vous utilisez la librairie CarrierWave dans votre application Rails, vous pouvez extraire facilement la couleur dominante à chaque upload grâce à ma gemme ruby carrierwave-color.

Avec WordPress

Si vous utilisez WordPress, ajoutez l’extension dominant-color et ça sauvegardera la couleur dominante à chaque upload de medias. Vous pourrez même éditer la couleur choisie, directement dans l’administration.

EasouSpider le robot qui ne sait pas parler l’utf8

juillet 23rd, 2014 .

Photo de Mathieu mangeant une araignée

Ces derniers jours je recevait une trentaine d’emails par jour m’indiquant qu’une erreur avait éclatée sur cults3d.com. Ces exceptions provenaient toutes d’un robot chinois, EasouSpider, qui parcoure le Web pour remplir son moteur de recherche.

Ce robot ne sait pas parler l’unicode comme tout le monde et envoie dans les formulaires des valeurs mal encodées, ce qui fâche Ruby on Rails. Le problème est surtout que Rails ne traite l’erreur que bien trop tard, lorsqu’on essaie de lire les paramètres de la requête. Et là l’erreur est une incompréhensible ArgumentError :

invalid %-encoding (Q/B0*ÜHܘ0ÅÅ1 0 U GB1 0 U.…

Suite de l’article…

Retrouver les clefs de localisation facilement avec Rails

juillet 17th, 2014 , 3 commentaires.

Photo de Drapeaux Lego

J’utilise Locale avec Ruby on Rails pour permettre à n’importe qui dans l’équipe de modifier les textes d’un site quelle que soit la langue.

Néanmoins, ce n’est pas évident pour celui qui n’a pas le code sous les yeux de retrouver quel texte correspond à quelle clef.

Suite de l’article…

ActionMailer n’aime pas vos URLs (par défaut)

juillet 14th, 2014 .

Faire un lien dans un email dans une application Ruby on Rails devrait être aussi simple que de faire un lien dans le reste de l’application, non ?

Photo of a miniature train, by Sunny

Suite de l’article…

Liens de partage sans JavaScript vers Facebook, Twitter, Google Plus, Pinterest et email

février 6th, 2014 , 8 commentaires.

Exemple de boutons de partage de Cults3d.com

Parce que vous voulez inclure des liens de partage sans que ça ne vienne importer 1 Mo de JavaScript sur votre page, voici des liens de partages. Sans balise script. Rien que des liens. Simple.

Ne pas oublier d’URL-encoder chaque paramètre, comme dans les exemples.

Suite de l’article…

Favicon dynamique

juin 16th, 2013 , 1 commentaire.

Capture d'écran de favicônes toutes identiques
Sites sans favicon : Boo!

Le favicon est un endroit assez délaissé dans une page Web alors que c’est parfois la seule indication visuelle permettant aux utilisateurs de de se retrouver dans ses onglets.

Edith

Sur Edith j’ai choisi de représenter la page en cours directement dans le favicon, en le mettant à jour à chaque caractère tapé.

Capture d'écran montrant la modification en temps réel de la favicon
favicon qui change à la volée sur Edith

JavaScript

Trop facile.

  1. Créer un canvas de 16×16 et colorier ses pixels via JavaScript
  2. Appeler sa méthode toDataURL() pour transformer le canvas en data:image/png;base64,iVBORw0…
  3. Placer dans le DOM dans le <link rel="icon" href="…" /> de la page en cours.

Noter que pour qu’il soit mis à jour instantanément Firefox a besoin qu’on supprime et qu’on recréer la balise link.

Exemple dans le CoffeeScript utilisé sur Edith.

Can I Use?

Fonctionne là où canvas et les datauri fonctionnent, soit IE9+.

Erreurs 404 dynamiques dans Rails 3

novembre 14th, 2012 .

Utiliser un fichier statique public/404.html dans Rails est très vite limitant. Si on veut utiliser le layout normal de l’application, des informations dynamiques comme des menus, le nom de l’utilisateur courant ou un formulaire de recherche il faut rendre ces erreurs dynamiques.

Pour ça il faut intercepter deux erreurs qui produisent des 404 : les infos nos trouvées dans la base via ActiveRecord::RecordNotFound et les routes qui n’existent pas avec ActionController::RoutingError.
Suite de l’article…

May the fourth be with you

mai 5th, 2011 , 1 commentaire.

Pour continuer de célébrer le jour de Star Wars voici de gros boutons de sons en HTML5 grâce à bigbuttons :

Suite de l’article…

Quand ne faut-il pas mettre en ligne un site Web ?

décembre 9th, 2010 , 18 commentaires.

Sur votre calendrier, remplacez mise en ligne les vendredi à 19:00 par sodomie
Il y a mieux à faire
les vendredis…

  • Le vendredi
  • Le soir
  • À un pic de fréquentation

Merci.

Calendriers de l’avent pour artisans du Web

décembre 2nd, 2010 , 3 commentaires.

Casier en bois numéro 24
Un mois à 24 jours

Ça y est, décembre est lancé. Et avec les premières neiges on a envie de rester au chaud et de lire des bons articles qui parlent du Web, n’est ce pas ?

4 calendriers avec des perles à découvrir chaque jour de décembre :

  • 24ways remets ça pour la sixième année : des articles de haute qualité qu’on attends toute l’année. Ils contribuent à rendre l’hiver moins dur.
  • HTML5 Advent : des démos HTML5 pour en avoir plein les yeux.
  • Adfont Calendar : mateurs de typographie, sous chaque case se cache une police d’écriture proposée par FontDec.k
  • Performance Calendar : et oui, même les performances Web ont leur calendrier.

Typographie, HTML5 et performances : les sujets chaud du Web de cette année sont là pour se tenir au chaud cet hiver jusqu’à Noël.

Raccourcis clavier pour changer d’onglet dans TextMate

novembre 16th, 2010 .

Logo TextMate

La mise à jour 1.5.10 de TextMate change les raccourcis pour aller à l’onglet précédent et suivant. À la place de ⌥⌘← et ⌥⌘→. Ils sont maintenant ⌘⇧⌥5 and ⌘⇧⌥° sur un clavier français.

La raison pour ce changement est que c’est la façon de changer d’onglet dans Safari. Je sais pas vous mais je préfère les raccourcis précédents et ceux de Firefox…

Changez les raccourcis en allant dans Préférences Système, Clavier, Raccourcis clavier, Raccourcis d’applications et ajoutez vos raccourcis. Choisissez l’application Textmate et entrez les titres de menu « Next File Tab » et « Previous File Tab ».

Et pour couronner le tout, désindenter un bloc de code avec ⌥⇧↦ ne fonctionne plus pour les claviers français à cause d’un bug. Pour le réparer avant d’attendre la prochaine mise à jour ajouter "~$\t" = "shiftLeft:"; dans /Applications/TextMate.app/Contents/Resources/KeyBindings.dict

Après cette mise à jour les développeurs de Textmate se sont « rendus compte que tout le monde n’utilisait pas un clavier US » et ont donc remis les raccourci précédents ainsi que réparé le second bug d’indentation. Sigh.

N’utilisez plus « www »

novembre 15th, 2010 , 14 commentaires.

www

Pourquoi ne plus utiliser « www. » quand on donne un lien vers un site :

  • on dit « va sur facebook.com » et pas « va sur www.facebook.com »
  • www ne sert à rien techniquement
  • www est difficile à dire
  • on sait que c’est un site Web sans ajouter www
  • l’adresse devient plus longue
  • il faut en choisir un des deux et le garder pour des raisons de référencement et de performances Web
  • on ne mets jamais de www devant les sous-domaines, qui sont pourtant aussi sur le World Wide Web (images.google.com, dev.sunfox.org, …)
  • les sites qui s’internationalisent mettent souvent un pays à la place (fr.msn.com, fr.wikipedia.org, …)
  • www n’existe que pour de vieilles raisons historiques

« Le World Wide Web est la seule chose que je connaisse pour laquelle la version plus courte est trois fois plus longue à dire que l’expression entière. » Douglas Adams

Quelques sites qui les retirent tout le temps :

Un site qui en mets deux :

La puissance du texte sur le Web

novembre 10th, 2010 , 1 commentaire.

Portrait de Jean-Marc Hardy
Jean-Marc Hardy

Mon résumé de la conférence sur la puissance du texte sur le Web à Paris Web 2010 par Jean-Marc Hardy.

Le texte reste maître à bord

Même si une image vaut mille mots on la compte tout de même en mots

Le référencement passe forcément par du texte.

Le texte attire plus l’attention que les images. Le texte est la première chose vue par l’œil dans les premières millisecondes. Les publicités textuelles de Google Ads fonctionnent mieux que les images.

Le texte reste la meilleure façon d’inviter au clic. Changer un bouton Continue en Check availability donne +230% de conversion.

Quelques bonnes pratiques

  • Pas de jargon, utiliser les mots des gens. Par exemple :
    « Low fares » 40 000 recherches
    « Cheap flights » 25 000 000 recherches.

  • Ne pas utiliser des liens/boutons au libellé générique (cliquez-ici, continuer…)

  • Les 11 premiers caractères d’un titre sont les plus lus, donc les plus importants

  • Coller aux recherches ciblées qui intéressent plus les visiteurs et où il y a moins de concurrence.

  • Utiliser le moteur de recherche interne du site pour trouver les mots clefs importants.

  • Dans les titres utiliser un mot clef générique puis la marque, par exemple « Video Technology – Adobe ».

  • Se focaliser sur les deux premiers mots des titres.

  • Utiliser des chapôs, il sont très lus (30-50 mots maximum).

  • Mettre des légendes sous les images.

  • Utiliser les mots pour rassurer, comme Amazon qui utilise comme intitulé de lien « pourquoi cette opération est sans danger » plutôt que « conditions d’utilisation ».

  • Garder une cohérence syntaxiques dans les menus, ne pas mélanger verbes et questions.


:D Sunny Ripert

est un développeur web vivant à Paris. Contact


Textes et contenus sous licence Creative Commons. Site propulsé par WordPres