Webpulser sponsor officiel du RailsCamp Paris

Publié par Maxime Druaert Ven 23 mai 2008 11:46:00 GMT

Fidèle à ses engagements dans la communauté Ruby on Rails, l’équipe de Webpulser était présente en tant que sponsor officiel au RailsCamp Paris du 17 mai 2008 qui s’est tenu à la Cantine, lieu incontournable des acteurs du web et considéré comme “la Mecque du Paris numérique”.

Le but de cette journée qui s’est déroulée dans une atmosphère conviviale, était de permettre à la communauté des Railers de se rencontrer, d’échanger des idées sur des sujets variés et de faire naître des projets autour de RoR, framework préféré des développeurs web.

Nous remercions d’ailleurs Guillaume Desrat et Jean François Trân de l’association Ruby France pour leur accueil et leur bonne humeur. Voici les photos de notre journée sur flickr.

En tant que spécialiste du développement de site e-commerce et sites transactionnels, nous avons présenté notre back-office de e-commerce développé en Ruby on Rails. Nous avons également échangé sur la thématique de la sécurité, élément primordial des sites e-commerce :

  • Comment détecter les failles critiques de sécurité?
  • Comment s’assurer de la sécurité d’un site e-commerce?
  • Quels sont les apports de Ruby on Rails face à cette problématique?
Le succès de Ruby on Rails est intrinsèquement lié à la philosophie de ce framework qui reprend toutes les bonnes pratiques du développement web depuis ses débuts :
  • Don’t repeat Yourself : éviter les répetitions
  • Convention over configuration : compacité et organisation du code
  • Say what you do, do what you say : expréssivité et extensibilité du langage
  • One language to rule them all : un seul langage pour tout faire.
L’équipe de Webpulser sera également présente au premier Barcamp Lillois qui se tiendra ce samedi 24 mai dans les locaux de l’ESC Lille. Nous espérons vous y trouver aussi afin de vous présenter les technologies de dernière génération que nous mettons en oeuvre dans nos projets de développement de sites e-commerce.

Publié sous  | Mots clés , , , , ,  | aucun commentaires

Café-Meo lance son nouveau site dédié aux professionnels

Publié par Maxime Druaert Mer 07 mai 2008 13:09:00 GMT

Déja présent sur le web sur les deux premiers segments de leur activité; meo.fr et meo7.fr, et en pleine “chti mania”, les cafés meo lancent ce mois-ci leur site dédié aux professionnels, réalisé par Webpulser.

logo_meo-pro

Ce site a pour objectif de présenter, simplifier et développer les ventes à destination:
  • Des Cafés – Hôtels – Restaurants.
  • Des entreprises souhaitant mettre à disposition de leurs clients et collaborateurs des machines à café.

Développé en Ruby on Rails, le site meo-pro ainsi que son back-office, exploitent au mieux les avantages du framework, notamment au niveau de la présentation des produits et de l’expérience de navigation :

  • Un carrousel de navigation dans les produits.
  • Un moteur de recherche dynamique
  • Un zoom produit dynamique

Le choix de Webpulser et du framework Ruby on Rails n’est d’ailleurs pas un hasard pour Meo:

En effet, en tant qu’entreprise du Nord, région très dynamique et à la culture prononcée, Meo accorde beaucoup d’importance à l’innovation et au respect des traditions.

Grâce aux offres de meo-pro, vous pourrez donc voyager sur tous les continents en buvant un bon café grâce aux différentes origines, proposer des cafés rares et de grands crus à vos clients importants, et cela en toute simplicité !

Publié sous , , ,  | Mots clés , , , , ,  | aucun commentaires

Bienvenue à De Neuter dans le monde du E-Commerce

Publié par Maxime Druaert Ven 18 avr 2008 16:00:00 GMT

De Neuter, entreprise de distribution de jeux et jouets pour les professionnels et comités d’entreprise depuis 1954, entre dans l’ère du E-Commerce avec le lancement de son nouveau site réalisé en Ruby on Rails.

Grâce à la mise en place d’un catalogue interactif ainsi que d’un système de commande en ligne, De Neuter diffuse plus largement son catalogue, facilite la tâche des CE, et peut concentrer ses efforts commerciaux sur la conquête de nouveaux marchés.

La création de ce site démontre encore une fois la capacité de Webpulser à accompagner les entreprises du commerce et de la distribution dans leur stratégie web.

Publié sous , ,  | Mots clés , , , , , ,  | aucun commentaires

Webpulser dans les magazines phpsolutions et LINUX+

Publié par Maxime Druaert Mar 08 avr 2008 15:49:00 GMT

L’actualité des frameworks est riche pour Webpulser en cette année 2008, avec un article sur Symfony publié dans le magazine PHPsolutions ainsi qu’un article sur Ruby on Rails qui paraît ce mois ci dans le magazine Linux+.

article presse webpulser article presse webpulser


Les frameworks Symfony et Ruby on Rails sont les fruits de 10 années d’expériences dans le développement web au cours desquelles n’ont été conservées que les bonnes pratiques.

Ces 2 frameworks sont très proches dans leur philosophie dont les principes fondamentaux sont:
  • « Don’t Repeat Yourself » : éviter la redondance de code facilite la maintenance, le test, le debuggage et les évolutions.
  • « Convention over Configuration »: il est inutile de préciser des détails lorsqu’ils respectent des conventions établies.

Afin de faire comprendre à tous, les nombreux intérêts et avantages de Symfony et de RoR, Webpulser a voulu dans ces numéros, vous faire découvrir ou redécouvrir ces frameworks et vous donner l’envie de les essayer et de les adopter.

Créé en 2005, Symfony est un framework MVC open-source écrit en PHP 5. Il est à ce jour le framework PHP le plus abouti et dispose d’une documentation exemplaire ainsi que d’une communauté très active qui s’efforce d’améliorer en permanence la plate-forme de développement.
A travers cet article, Webpulser confirme sa maîtrise de Symfony et nous fait découvrir le large éventail de possibilités offertes par ce framework.

Depuis sa naissance en 2004, Ruby on Rails n’a fait que grandir et commence déjà à atteindre une certaine maturité, qui lui permet d’envisager des projets toujours plus ambitieux. Nombreuses sont les entreprises a avoir déjà franchit le cap même si la France reste en retard par rapport à aux Etats-Unis où RoR à tout de suite été adopté et pèse un poids de plus en plus important dans le monde du développement web.

En effet, les principes de ces frameworks correspondent au besoin grandissant des entreprises de développer des sites dynamiques, évolutifs et surtout avec une productivité record sans pour autant négliger la qualité. Sur ce point, le développement de projets Web autour d’un framework accélère grandement le temps de développement et permet d’atteindre de nouveaux standards de qualité et des objectifs plus élevés qu’auparavant.

Par ces publications, Webpulser démontre une fois de plus son expertise dans les frameworks de dernière génération et les technologies du web 2.0 et affirme son engagement dans la communauté du libre.

Pour aller plus loin:
documentation Symfony en français
workingwithrails

Publié sous , ,  | Mots clés , , , ,  | aucun commentaires

Conférence Ruby on Rails

Publié par Lucie Mar 28 août 2007 09:56:00 GMT

Toute l’équipe de Webpulser vous invite à assister à sa conférence le jeudi 27 septembre.

Au programme : Ruby on Rails ou les nombreux avantages que ce framework a apporté au développement de sites Internet.

Différents sujets seront abordés : historique et contexte actuel du marché de l’e-business, Ruby on Rails, d’un point de vue technique et enfin deux cas clients afin d’apporter des exemples concrets.

Rendez-vous à partir de 18h dans les locaux de Digiport (Euratechnologies).

Parcourez le détail de la conférence et inscrivez-vous ici

Publié sous  | Mots clés , , ,  | 1 commentaire

Webpulser to sponsor the Railsconf Europe

Publié par Lucie Lun 27 août 2007 15:20:00 GMT

Webpulser is one more time standing out for its values by sponsoring the Railsconf Europe, which will take place in Berlin on september 17th, 18th and 19th.

This event dedicated to the framework Ruby on Rails, gives the opportunity to share and learn more about the framework and its uses.

Webpulser will be hosting an informational gathering on the last day. It will deal with Ruby on Rails and the advantages that this framework brought to the development of e-commerce applications.

Learn more on : Railsconf Europe

Publié sous  | Mots clés , , ,  | aucun commentaires

Webpulser au service des cafés Méo

Publié par Lucie Lun 27 août 2007 15:00:00 GMT

Les Cafés Méo ont choisi Webpulser pour le développement fonctionnel et logique de leur nouveau site Méo-pro.fr.

Cette boutique en ligne, destinée aux entreprises et aux professionnels de la restauration a pour objectif de présenter, simplifier et développer ses ventes de machines à café ainsi que l’ensemble de ses produits dérivés. Méo-Pro.fr sera réalisé en Ruby on Rails.

Notons que le choix du framework est en totale adéquation avec l’image des Cafés Méo : innovation et qualité.

La mise en ligne du site se fera courant septembre. En attendant, vous pouvez visitez : meo

Publié sous  | Mots clés , , ,  | aucun commentaires

You need automation ? Use Rake!

Publié par Nico Mar 26 juin 2007 10:18:00 GMT

For those who don’t know, Rake is a built language, similar in purpose to make and ant. It’s a specific domain language written in Ruby.

In this article I will introduce rake and describe some interesting tricks you can use to automate repetitive things you do everyday.

Theory

Rake has been developed by Jim Weirich and is based on Ruby, which means that you have full access to Ruby power inside Rake. Rake is not limited to what you know with tools like make or ant, it’s much more powerful and flexible.

Rake is all about dependencies. When you write a Rake script, you’re going to tell it that a given task depends on another one and so on. This way you can build a complete receipe to explain how to do things and in which order.

Because Rake is built on Ruby, you can do anything you want with your tasks :

  • manipulate files
  • compile your programs
  • cleanup your filesystem
  • generate skeletons
  • much much more

Let’s see what we can do!

Real World

First try: Adding a task and triggering it by default

task :default => [:say_hi]

desc "This is our first task"
task :say_hi do
  puts "Hey! I'm the first task you wrote!"
end

desc "Running test"
task :test do 
  require 'rake/runtest'
  Rake.run_tests 'tests/*.rb'
end

On the first line we’re telling rake that our default task—the one called if we use rake on the command-line) will be the task named say_hi. You can also call it by using rake say_hi.

Then we describe the task we’re going to write. This description will be printed if you use rake -T to know which tasks are available in your Rakefile.

Finally we’re defining a new task called say_hi using task keyword. What you put inside this task is just usual Ruby code.

Rake provides some facilities to manipulate files, create Gems and things like that. You should take a look at this API.

We’re using these facilities with the test task by loading a library distributed with Rake and calling one of its methods. For instance, we’re loading runtest library and running each test file available in ‘tests’ directory.

Linking tasks:

task :upload_files do
  # do the uploading
end

task :symlink => :upload_files do
  # create symlinks on the server-side
end

task :deploy => :symlink do
  # deploy the latest revision of your project
end

Now we have a bunch of tasks we can use. If we type rake deploy, it’s going to call the symlink task that depends on upload_files task. So rake will execute upload_file first, then symlink and deploy.

This is how you can link tasks and make sure that all required steps would be run before doing what you asked for.

Conclusion

If you begin to use Rake to automate your tasks, you’ll quickly realize that it is a powerful tool, easy to use . One of the most interesting thing is that Rake is built upon Ruby and that Ruby can run on any operating system. Of course, knowing Ruby will help you to master Rake but you can easily write simple tasks even if you’re a Ruby beginner.

Another thing is that Rake is not only for Ruby users. You can use it for anything like building C programs, cleaning your file-system, deploying, administrating your databases, ...

You should really give a try to Rake and if you do, let us know what you think about it and what you’re doing with it by leaving us a comment.

Publié sous  | Mots clés , ,  | 2 commentaires

Comprendre l'objet "self"

Publié par Nico Jeu 12 avr 2007 12:58:00 GMT

En Ruby, self représente l’objet courant. L’objet self va donc varier en fonction du contexte dans lequel vous vous trouvez. Il est initialisé et géré automatiquement par l’interpréteur.

La théorie

self peut se trouver dans les contextes suivant :
  • le contexte global (tout endroit qui ne correspond pas aux contextes suivants)
  • la définition d’une classe
  • la définition d’un module
  • la définition d’une méthode

Il y a quelques exceptions mais dans la majorité des cas, vous vous retrouverez dans le contextes précédemment cités.

Voici un tableau récapitulatif pour mieux vous y retrouver :
Contexte Exemple Que représente self ?
global Partout en dehors des blocs main (objet par défaut)
Classe class Test L’objet class Test
Module module M L’objet module M
Méthode Global main
Méthode d’instance L’instance de la classe
Méthode d’instance d’un module L’objet étendu par le module ou l’instance qui mixe le module
Méthode singleton L’objet étendu par le singleton

La pratique

Voyons maintenant une session IRB pour découvrir par l’exemple :
puts self
# => main
class C
  puts self # => C

  module M
    puts self # => C::M
  end

  def C.x
    puts self # => C
  end

  def x
    puts self # => Une instance de C
  end
end

Quelques explications

On dans l’exemple précédent que self se comporte de façon tout à fait logique en devenant l’objet par défaut qui paraît le plus évident.

  • en dehors de tout contexte, il représente l’objet main
  • on entre ensuite dans la définition de notre classe C est représente donc cet objet.
  • nous ajoutons un module à notre classe, self réprésente donc maintenant notre objet module C::M (puisque déclaré dans la classe C)
  • nous sortons du module et déclarons une méthode de classe, self va donc réprésenter notre classe C
  • finalement nous définissons une méthode d’instance et self réprésentera donc une instance de notre classe C

Conclusion

Comprendre ce que représente self à chaque instant et savoir le manipuler représente un aspect crucial dans la maîtrise de Ruby. Manipuler correctement self vous permettra d’aller beaucoup plus loin et plus vite lors de vos développement.

Publié sous  | Mots clés ,  | aucun commentaires

Intégrer Comparable à vos classes

Publié par Nico Jeu 12 avr 2007 09:14:00 GMT

Dans le dernier billet nous avons vu comment intégrer le module Enumerable à vos classes Ruby. Aujourd’hui nous verrons comment faire de même avec le module Comparable.

Comparable permet d’ajouter des méthodes de tri et de comparaison à vos classes telles que <, between?, sort.

Encore une fois il suffit d’écrire une méthode qui donnera les bases au module Comparable.

La théorie

Toute classe voulant utiliser les capactités du module Comparable doit implémenter une méthode <=>. Cette méthode doit pouvoir comparer deux objets sur un critère dont vous êtes le seul juge et renvoyer une valeur (-1, 0 ou 1) qui indique quel est le plus grand élément ou s’ils sont égaux.

On a par exemple :
1 <=> 2
# => -1
2 <=> 1
# => 1
2 <=> 2
# => 0

Définir <=> et inclure le module Comparable dans votre classe, c’est ajouter le possibilité à votre classe de trier des collections et d’effectuer des comparaisons entre deux objets.

Voyons maintenant comment mettre cela en place.

La pratique

Prenons un exemple simpliste mais qui résume bien la façon de mettre en place les fonctionnalités de Comparable dans vos propres classes. Nous allons écrire une classe qui pour ses comparaisons se basera sur la taille des chaînes qui lui sont passées.

 class Taille
   include Comparable
   attr :str

   def <=>(autre)
     str.size <=> autre.str.size
   end

   def initialize(str)
     @str = str
   end

   def inspect
     @str
   end
end

# Utilisation de la classe

s1 = Taille.new("Z")
s2 = Taille.new("YY")
s3 = Taille.new("XXX")
s4 = Taille.new("WWWW")
s5 = Taille.new("VVVVV")

s1 < s2
# => true
s4.between?(s1, s3)
# => false
s4.between?(s3, s5)
# => true
[ s3, s2, s5, s4, s1 ].sort
# => [Z, YY, XXX, WWWW, VVVVV]

En incluant le module Comparable ainsi qu’en définissant la méthode de comparaisons (<=>), on donc accès à toutes les méthodes de comparaison et de tri pour notre classe.

Quelques explications

Nous incluons tout d’abord le module Comparable pour préciser que l’on souhaite faire usage de ses possibilités.

Il ne nous reste plus qu’a écrire la méthode de comparaison (<=>) qui va se charger de comparer une spécificité de notre objet courant avec celle d’un autre objet passé en paramètre. Dans notre exemple, nous comparons la taille de la chaîne.

Voilà, nous avons maintenant à disposition dans notre classe tous les outils de comparaison dont nous avons besoin. Notre exemple le démontre en utilisant les méthodes <, between? et sort.

Conclusion

L’ajout de méthode de comparaison est donc chose aisée. Si votre classe a besoin de pouvoir comparer ses instances entre elles, pensez à inclure le module Comparable et à écrire une méthode <=>. Votre classe gagnera en quelques minutes la possibilité de comparer et trier ses instances.

Publié sous  | Mots clés ,  | aucun commentaires

Billets précédents: 1 2