Fork me on GitHub

npm, le gestionnaire de package de node.js

Je suis en train de me documenter et de tester node.js, un framework pour construire des applications réseaux (type serveur web, chat…), basé d’une part sur le moteur javascript V8 et conçu d’autre part pour être complètement asynchrone afin de gérer au mieux la concurrence.

node.js bien que jeune a son propre gestionnaire de package npm, facile à installer et à utiliser. En bref ce qu’il faut retenir:

Installation de npm:

curl http://npmjs.org/install.sh | sh

Installer un package en global (ne pas oublier le -g sinon le package s’installe dans le répertoire local:

npm install -g monpackage

Récupérer la liste des packages installés:

npm ls -g

Mettre à jour tous les packages:

npm update

Pour relier les packages dans une application node.js, il faut éditer le fichier package.json:

{
    "name": "application-name"
  , "version": "0.0.1"
  , "private": true
  , "dependencies": {
      "express": "2.3.11"
    , "jade": "0.12.2"
    , "less": "1.1.2"
    , "mongoose": "1.4.0"
  }
}

puis pour relier les packages au projet

npm link
Soyez le premier à commenter

Pow & Radiant

J’ai découvert dernièrement le serveur de développement Pow qui permet très simplement de mettre en place un serveur Rack (pour les applications Ruby comme sinatra ou Rails) sur un Mac sans aucune configuration.

Par contre il peut réserver quelques surprises de configuration, notamment avec Radiant. Deux points à retenir (en tout cas jusqu’à présent

1. Il faut désactiver le cache en développement sinon cela provoque des erreurs aléatoires de chargement des pages – dans config/environements/development.rb

config.cache_classes     = true

2. Il est nécessaire d’ajouter un fichier config.ru juste pour le développement et surtout ne pas le copier en production, sinon cela empèche les contenus statiques de s’afficher (images, css et javascripts donc!)

# Rails.root/config.ru
require "./config/environment"
run ActionController::Dispatcher.new

Sinon, basé sur node.js, Pow est efficace et permet d’accéder à l’ensemble des applications en même temps via des url du type http://monappli.dev: je le recommande donc vivement pour se faciliter la vie de développeur Ruby.

Soyez le premier à commenter

Nouvelle application ZenRunnin’

Coureur amateur, je me suis acheté à Noël une montre Polar pour mesurer mes performances (temps, distance…) – j’ai commencé à utiliser le logiciel fourni (polarpersonaltrainer), sans être convaincu par son ergonomie ou ses fonctionnalités.

Bricoleur numérique dans l’âme , j’ai donc développé le site Zenrunnin’, une application simple de suivi de vos courses, utilisant les comptes facebook pour partager ses performances avec ses amis et connaître les leurs.

Zenrunnin’ m’a permis de me familiariser avec les différentes API Facebook et m’a fait découvrir OAuth qui permet d’interagir et de publier facilement des données sécurisées à travers un système simple et unifié d’autorisation.

Pour en savoir plus:

Soyez le premier à commenter

Règles du bricolage numérique

Le développement n’étant pas mon métier mais plutôt un hobby, les petits projets de « bricolage numérique » que je mène partagent certaines règles simples pour s’assurer de l’efficience du travail:

  1. Toujours se lancer sur des projets qui ont une utilité immédiate pour mes proches ou moi (inmemoria, veilleur …)
  2. Profiter de chaque projet pour tester des nouvelles technologies (dernière en date: les API facebook, prochaine: les technos javascript avancées comme node.js et le développement sous iOS)
  3. Utiliser les mêmes outils de base pour développer (Github, MacVim par exemple)
  4. Pour les applications web, utiliser un socle de feuilles de style css et de morceaux de code ou librairies javascript réutilisables

Ces quatre règles me permettent en ce moment de sortir une application tous les deux mois.

Soyez le premier à commenter

Les joies de datamapper

Datamapper est un ORM (Object Relational Mapper) écrit en ruby et permettant de lier facilement Ruby à n’importe quelle base de données (mysql, postgresql…).

Grand fan de du framework web Sinatra, j’utilise souvent datamapper…et je tombe souvent dans ses pièges:

  1. Etre vigilant sur les relations 1-n ou n-n et sur l’utilisation des objets pour éviter de charger en mémoire des centaines de données inutiles (cela m’est arrivé sur Veilleur, voir le post correspondant
  2. Vérifier systématiquement que les données sont bien sauvegardées: par défaut (c’est à dire sans l’option #DataMapper::Model.raise_on_save_failure = true), aucun message ne prévient de l’erreur
  3. Mettre en place un système de pour récupérer les erreurs envoyées par Datamapper via notamment: xx.errors.inspect

Ces quelques points simples permettent de gagner beaucoup de temps!

Soyez le premier à commenter
©2008-2011 Julien Raigneau - Tous droits réservés.