Performance côté client avec Rails & Heroku

À ChooseYourBoss on développe une appli web tout ce qu’il y a de plus classique : HTML5, JS, CSS3 + quelques API (Linkedn, Viadeo, Google Maps, Google Analytics, etc). Côté serveur on est en Rails sur Heroku. Bref, rien d’exceptionnel quoi.

Puis un jour, on a jeté un œil sur le graphe de temps de chargement de notre appli – merci Google Analytics. Et là le drame : une moyenne de plus de 5 secondes pour la page d’accueil, et je ne vous parle pas sur mobile. On se dépêche alors d’aller faire un petit tour sur Google Pagespeed, notre score : 44/100 (bof bof).

On décide d’investiguer point par point nos hypothèses, en voici un résumé.
Lire la suite

Le push web avec Pusher

Introduction

Depuis que les sites web sont devenus des applications riches, le besoin de push s’est largement manifesté. Il est présent sur des sites de mails, de feeds d’information, de partage de documents, de réservation de billets avec choix des places… Le push web permet de notifier le client d’une certaine information directement depuis le serveur, sans nécessiter de recharger la page du client. C’est typiquement un paradigme qu’on peut utiliser sur un site de messagerie instantanée.

Plusieurs technologies permettent d’implémenter ce genre de comportement, les plus connues étant probablement les WebSockets, les server-sent events (tous deux inclus dans les spécifications HTML5), ou encore le long polling, du web pull simulant du web push, utile sur certains navigateurs des moins récents.
Lire la suite

Hubluc.com, le comparateur musical issu de la R&D Octo

Un lundi matin ordinaire au boulot…

10h30 – Nostalgique, j’achète le dernier Muse sur iTunes à 9,99€
11h10 – L’album diffuse en boucle dans le bureau
11h20 – David entre « T’as eu la promo Amazon à 4,99€ ? »
11h23 – En plus d’être nostalgique, je suis maintenant déprimé

Et sinon, il y a Hubluc.com, LE comparateur dédié aux sites de téléchargement et streaming.

Muse - The Resistance - Hubluc.com
Lire la suite

Rails += Tests

Si vous avez déjà créé une application Ruby on Rails, vous avez déjà dû voir un étrange répertoire : tests.

N’ayez pas peur, tout a été fait pour faciliter la mise en place de tests de bout en bout avec Rails.

Je vais donc vous donner les méthodes que j’apprécie et que je considère efficaces pour l’écriture de tests en Rails. Que vous soyez novices ou expert, j’espère pouvoir vous en apprendre un peu.

Tous les exemples donnés seront pour Rails 3, mais ils sont pratiquement tous compatible Rails 2.

Le code source des exemples est disponible sur ce github.

Lire la suite

Quelques niouses (en) Ruby du mois d’Avril

C’est quoi cet article ? Facile ! Un résumé de l’actualité autour de Ruby du mois passé, pour les techos et les geeks pressés. Retrouvez moi sur ce blog pour des infos de techos à techos.

Pour les plus pressés, une seule chose à retenir pour cette brève : Twitter a amélioré la VM Ruby en y incluant un garbage collector plus puissant.
Lire la suite

ActiveLDAP, ActiveRecord pour le LDAP

ActiveRecord est un patron de conception pour le mapping entre du code et une base de données. Son implémentation la plus connues est celle de l’ORM utilisé par Ruby on Rails : ActiveRecord. Chaque table de la base de données est représentée par une classe, et chaque ligne d’une table par une instance d’une classe. Les attributs des objets sont les colonnes de la table en base. De plus, chaque objet est responsable de sa persistance, de fournir des opérations basiques de type CRUD (Create, Read, Update, Delete), et de la gestion de sa partie métier. Ce patron de conception a été popularisé par Martin Fowler qui sera un des speakers de l’USI 2010.

ActiveLDAP est une bibliothèque en Ruby qui se veut respecter au maximum l’interface proposée par ActiveRecord, mais pour un annuaire LDAP. Cet article va donc faire un tour des possibilités d’ActiveLDAP. On verra dans un premier temps comment l’installer pour fonctionner avec Ruby ou JRuby, puis comment l’utiliser à la manière d’ActiveRecord. Si vous avez quelques notions de Ruby et LDAP cela vous aidera à mieux comprendre l’article.

Lire la suite