Quels sont les avantages de Ruby on Rails ?

Posté le 17 novembre 2011 @ 11 h 10 min par Matthieu Segret

 

Voici ce que je lis et j’entends quotidiennement :

« Je suis développeur PHP, je dois me former à Ruby on Rails pour un projet, je suis curieux de pouvoir comparer avec Symfony. »

« J’ai beaucoup entendu parler de Ruby on Rails, que fait-il de plus que les autres frameworks ? »

« Je suis venu à cet apéro Ruby car je voudrais en savoir plus sur Ruby on Rails.. »

Manifestement, il y a un grand besoin de comprendre pourquoi ce framework web fait autant parler de lui.

En retour j’entends :

« Ce que j’aime le plus dans Ruby c’est sa syntaxe élégante ! »

Question de goût donc ?

« Pour moi la force d’un programme écrit en Ruby, c’est sa capacité de s’écrire lui même »

Ça me fait une belle jambe !

« Ruby on Rails est très bien conçu : MVC, Migrations, Tests etc.. »

Les autres frameworks ne font pas la même chose ?

Depuis 5 ans les frameworks web se sont nourris les uns les autres. Lorsque l’un d’entre eux met en avant une bonne idée, celle-ci est souvent reprise et digérée par les autres.

C’est ainsi que beaucoup d’entre eux possèdent maintenant un environnement dit « full-stack », une architecture MVC (ou proche), un ORM, un language de templating, un gestionnaire de librairies, un système de tests, des migrations, etc. C’est le cas par exemple pour CodeIgniter, Symfony, Zend Framework, CakePHP, Django, Play!.

De plus les principes Don’t repeat yourself et Convention Over Configuration ont commencé à faire leurs bout de chemin chez tous ces frameworks.

Pourtant Ruby et Ruby on Rails gardent pour moi des atouts qui expliquent leurs popularités croissantes. J’ai donc décidé d’écrire une série d’articles sur ces avantages qui me servent au quotidien :

Apprenez Ruby on Rails en 4 jours

Posté le 7 novembre 2011 @ 15 h 58 min par Matthieu Segret

slide formation Ruby on Rails

Une fois freelance, j’ai rapidement eu de la demande pour des formations. Comme j’aime beaucoup faire partager mes connaissances, j’ai passé une bonne partie de l’été à préparer une formation de quatres jours.

J’ai rédigé une présentation et des exercices pratiques en m’inspirant de nombreux livres (Agile Web Development with Rails), présentations, cours (Code School)… qui correspondent à la façon dont j’ai envie d’enseigner.

Une fois prêt, j’ai donné mes premières formations. Les retours ont été très bons. J’ai fait évoluer la formation pour supprimer les défauts de jeunesse. Maintenant que ma formation a été rodée, j’ai décidé de la packager dans une offre claire.

Vous pouvez voir l’offre sur ma page Formation. N’hésitez pas à me contacter pour que je vous donne plus d’information.

RubyLive | Toute l’actualité Ruby francophone

Posté le 26 octobre 2011 @ 10 h 27 min par Matthieu Segret

RubyLive logoVoilà maintenant 1 mois que je travaille avec Camille Roux sur un moyen de partager l’actualité Ruby dans le monde francophone.

En effet, le langage Ruby est en plein boom en France depuis quelques mois. Les offres d’emplois se multiplient, les initiatives individuelles et collectives ne manquent pas : Apéro Ruby partout en France, évènements (Railscamp, RULU, Rendez-vous freelances, conférences..), futur site RailsFrance, screencasts, nouveaux blogs..

Cependant, ces différents contenus restent difficiles à trouver, souvent peu mis en avant. Il manquait un outil pour tous les rassembler et les rendre visibles à la communauté. RubyLive voit le jour pour pour combler ce manque.

RubyLive est un flux d’actualités collaboratif. Chacun, une fois inscrit, peut soumettre un article. Une fois modéré, l’article devient visible à tous, il apparaît sur le flux RSS du site et est publié sur Facebook et Twitter.

Je suis heureux de vous annoncer que RubyLive est maintenant en ligne !

Vous pouvez dès maintenant lire l’actualité Ruby et proposer vos dernières news sur RubyLive.fr.
Je tiens à remercier nos partenaires pour leur soutient : Entropic Synergies, Novelys, Belighted, RemixJobs et OVH.

Metaprogramming Ruby

Posté le 9 mai 2011 @ 15 h 51 min par Matthieu Segret

Metaprogramming Ruby de Paolo Perrotta

 

Un ami m’a conseillé il y a quelques mois le livre : Metaprogramming Ruby de Paolo Perrotta.

Un livre très intéressant donnant quelques bonnes pratiques pour faire de la métaprogrammation avec Ruby.

 
 

Qu’est-ce que la métaprogrammation ?

Il y a plusieurs définitions, mais celle qui nous intéresse est la suivante :

« Metaprogramming is writing code that writes code »

 
Vous pouvez trouvez ici une définition plus complète : http://en.wikipedia.org/wiki/Metaprogramming.

 

A quoi cela sert-il ?

Redéfinir, ajouter des méthodes et des classes, exécuter du code à la volée, cela permet de créer des frameworks comme Rails et Sinatra, mais aussi des bibliothèques comme devise ou haml.

Tous utilisent la métaprogrammation. Les raisons sont diverses : rendre une bibliothèque plus intuitive à utiliser, éviter la duplication de code, s’interfacer avec un code existant, implémenter un domain specific language

Voici un exemple concret dans Rails : la génération des accesseurs d’un modèle à partir de l’introspection des champs de la base de données. Le développeur qui crée un nouveau modèle n’a ainsi pas besoin de maintenir ces accesseurs dans le monde objet.

Un autre exemple toujours dans Rails : les méthodes find_by de ActiveRecord.

 

Pourquoi donc se priver de faire de la métaprogrammation ?

La métaprogrammation permet de faire des choses fantastiques. Cependant elle requiert de la discipline. Si on ne suit pas certaines bonnes pratiques, on peut aboutir à un code confus et difficile à débogguer.

Si vous souhaitez vous investir de manière plus approfondi dans la métaprogrammation avec Ruby, n’hésitez pas à lire le livre de Paolo Perrotta Metaprogramming Ruby.

Architectures et frameworks Flex / AIR

Posté le 3 juin 2008 @ 20 h 44 min par Matthieu Segret

ITT8 Architecture et frameworks Flex / AIR

Il existe de nombreux tutoriels sur internet présentant les fondamentaux de Flex et AIR : composants customs, Bindings, Styles, HttpServices etc. Cependant peu d’articles donnent de réels conseils pour concevoir des applications Flex et AIR de grande taille, évolutives et faciles à maintenir.

Il est essentiel de baser sa conception sur un framework d’architecture. Seulement comment savoir si un framework est adapté à ses besoins ? Comment aborder un projet complexe ? Quelles sont les solutions pour faire face aux contraintes clients riches ?Ce sont des questions que je me posais il y a 8 mois avant d’aborder un projet de grande taille en Flex. J’ai donc trouvé intéressant d’en faire le sujet d’une conférence.Voici les principaux points abordés dans cette vidéo:

  • Pourquoi utiliser un framework d’architecture ?
  • Comment choisir son framework Flex ?
  • PureMVC et Cairngorm : fonctionnements, avantages et inconvénients ?
  • Module Flex
  • Runtime shared libraries
  • Quelles méthodes pour rester flexible ?

Les slides

Intelligence artificielle : les réseaux de neurones

Posté le 21 mai 2008 @ 10 h 33 min par Matthieu Segret

Certains chercheurs ont décidé de s’inspirer du fonctionnement du cerveau humain pour développer des outils basés sur l’apprentissage, appelés réseaux de neurones. Il m’a paru intéressant de présenter une conférence sur un sujet perçu comme difficile d’accès. Un petit défi sur le chemin du partage de connaissances : faire connaitre ce domaine à un large public.

L’intelligence artificielle est un sujet qui a attiré ma curiosité lorsque j’ai découvert la science-fiction : un genre très créatif qui me tient à cœur. De nombreux auteurs ont su nourrir cette curiosité : Isaac Asimov avec ces trois lois de la robotique, Fritz Lang et son fameux Métropolis précurseur dans son domaine, Tsutomu Nihei avec BLAME! : un OVNI dans une ambiance cyberpunk, Orson Scott Card dont je découvre le talent en ce moment.Il s’agit d’un genre narratif proposant d’immenses possibilités artistiques et philosophiques. Pour moi, la science-fiction projette l’humanité dans un monde aux technologies plus évoluées incitant à une réflexion sur l’avenir de notre société à travers une certaine remise en question de nos valeurs sociologiques et éthiques.

Dans ce contexte, mon intérêt pour l’intelligence artificielle est arrivé naturellement. J’ai étudié les bases des réseaux de neurones pendant mon projet de fin d’année en maths Spé. J’ai réalisé durant ce projet un réseaux de neurones multi-couches permettant de reconnaitre des formes simples (lettres, chiffres, etc.).C’est dans la philosophie des Intellicore Tech Talks qu’il ait venu l’idée de partager mon expérience dans ce domaine.Voici les principaux points qui sont présentés lors de cette conférence:

  • Pourquoi utiliser les réseaux de neurones?
  • Quel est leur fonctionnement?
  • Quelques projets surprenants :
    • 20Q : jeu qui est capable de trouver un objet auquel on pense en 20 questions
    • Simulation motrice.
    • Creatures et Black & White : deux jeux vidéos utilisant les réseaux de neurone

Intellicore Tech Talks

Posté le 20 mai 2008 @ 22 h 19 min par Matthieu Segret

Logo Intellicore tech talks

Je suis actuellement élève ingénieur chez Intellicore, une société de Sophia Antipolis spécialisée dans le conseil informatique et le développement web. C’est dans le cadre de cette société ambitieuse que sont nés les Intellicores Tech Talks créés par Christian Trotobas, Camille Roux et moi même.

L’idée est partie d’un constat simple : Sophia Antipolis est un lieu réunissant une grande variété de compétences et d’expertises : partageons-les !Ainsi est venu cette initiative d’organiser chaque semaine des conférences concernant les nouvelles technologies innovantes du web et de l’internet. Les ITT sont un véritable lieu d’échange et de rencontre pour les professionnels, les chercheurs et les étudiants de Sophia Antipolis.

De nombreux sujets ont déjà été abordés : Search Engine Optimization, WebObject, Human Computation, ingénierie dirigée par les modèles.Je conclurai sur la vidéo d’une conférence très intéressante présentant une méthodes de gestion de projet qui à fait ses preuves : SCRUM

Expérience chez Orange

Posté le 22 janvier 2008 @ 15 h 26 min par Matthieu Segret

orange

Netstat est un système de « graphage » développé en interne France Telecom Portails. Cet outil vise à collecter des données statistiques sur l’ensemble du parc de FT/Portails composé de plus d’un millier d’équipement.

Cet outil propose en moyenne 200 points de mesure par équipement. Cet outil permet à FT/Portails de contrôler le bon fonctionnement des serveurs, prévoir les besoins en ressources, diagnostiquer les pannes et les problèmes.Ce stage a consisté dans l’évolution des fonctionnalitées de l’application web Netstat.

Coopnote

Posté le 22 janvier 2008 @ 15 h 15 min par Matthieu Segret

coopnoteCoopnote est une application de travail collaboratif ouverte, c’est-à-dire permettant un grand nombre d’interactions et de partages. En particulier, autorisant le partage de graphiques, d’images, etc. entre plusieurs utilisateurs en temps réel.

Rapport de projet

Presentation du projet

Cero repository

Posté le 22 janvier 2008 @ 14 h 53 min par Matthieu Segret

Cero-repositoryDans le but de creer une communauté autour du projet Cero ( développeurs, de designers, de rédacteurs, de traducteurs ), nous avons developpé Cero repository afin de administrer les paquets se rattachant au projet Cero.

Rapport de projet

Presentation du projet