Recherche projet pour consolider mon ruby

72 views
Skip to first unread message

hugo.fabr...@gmail.com

unread,
Oct 10, 2013, 9:49:18 AM10/10/13
to rubyfr...@googlegroups.com
Bonjour,

Dans le cadre de mon stage en entreprise, j'ai découvert la technologie ruby on rails. Aujourd'hui j'aimerai en apprendre plus sur le ruby (pur).
Je me suis donc lancer à la recherche d'un projet afin de consolider mes compétences dans ce langage. Malheuresement, je suis un peu à cours d'idées.

Voici ce que j'ai déjà realiser (en ruby):

- Chat via socket (serveur + client)
- Shell distant (serveur + client)
- Morpion
- Un programme qui dessine des rectangles selon les paramètres passés (hauteur, largeur)

Aujourd'hui je cherche un projet qui répond à mes demandes qui sont:

- Un projet assez long (au moins plusieurs jours, si possible entre 1 et 3 semaines)
- Un projet sur lequel je pourrais rajouter une interface graphique (j'attends que shoes sorte en tant que gem si possible)
- Un projet qui utilise la notion d'objet
- Si il y a un peu de difficultées technique c'est bien aussi (mais pas trop quand même je suis loin d'être un expert.)
(Pourquoi pas un projets sur lequel je puisse utiliser les sockets)
Autre détail, si ça peut vous aider, a disposition le livre "Programing ruby: The pragmatic programmers guide".

Je sais que je peu vous sembler un peu compliqué, mais je souhaiterai rejoindre la communauté des rubyistes compétents, et pour cela rien de mieux que la pratique !
Eh oui les projets qui durent 2h c'est bien pour se familiariser avec la techno mais après il faut quelque chose de plus consistant.

Je vous remercie donc de laisser parler vos talents d'imaginations pour moi.

Rubyistement, Hugo (Et encore un énorme merci)

Sunny

unread,
Oct 13, 2013, 5:05:05 AM10/13/13
to rubyfr...@googlegroups.com
Bonjour Hugo !

Si ça peut aider je maintiens une liste d'idées-de-dev. Ce n'est pas forcément du Ruby dans cette liste mais tu peux peut-être y trouver ton bonheur :

Rubyistement,
Sunny

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes RubyFR public.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse rubyfr-publi...@googlegroups.com.
Pour envoyer un message à ce groupe, adressez un e-mail à rubyfr...@googlegroups.com.
Visitez ce groupe à l'adresse http://groups.google.com/group/rubyfr-public .
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .



--
Sunny Ripert
http://sunfox.org/

Guillaume Desrat

unread,
Oct 13, 2013, 5:33:48 AM10/13/13
to rubyfr...@googlegroups.com
Bonjour Hugo,

je pense que le mieux à faire est de trouver un projet qui te tient à cœur et qui te soit utile. Comme ça tu pourras t'y investir sans compter ton temps et sans entamer ta bonne humeur. Tu pourras le laisser de côté temporairement et y replonger ensuite avec plaisir.

Je suis venu à Ruby après Perl, et dans les deux cas j'ai découvert le langage en développant ce qui m'intéressait le plus à l'époque : un bot IRC (c'était en 2001 - 2002, c'était une autre époque).
Ça m'a permis, en Ruby, de m'exercer à la communication réseau, au multi-tâches, aux expressions rationnelles, à l'héritage, à la composition, etc...
Tu peux choisir un projet que tu as déjà réalisé et le porter en Ruby, ou un outil qui te plaît et le reproduire en Ruby.

Pour rencontrer des Rubyistes compétents, je te conseille de rejoindre un groupe local ou de te rendre à une conférence dédiée.
Ton adresse email contient "epitech", j'en déduis donc que tu fréquentes cette école, et donc que tu es en Île-de-France. Renseigne-toi quant aux prochaines réunions du groupe ParisRB (http://www.meetup.com/parisrb/).
Les conférences dédiées à Ruby sont généralement relayées sur Twitter ; il y a dotRB (http://dotrb.eu/) prochainement.

N'hésite pas à revenir nous dire ce que tu as entrepris.


PS : je t'invite à t'inscrire au groupe RubyFR-public afin que tes messages soient publiés directement, sans avoir besoin d'être validés au préalable ; l'association Ruby France vient de changer de bureau et les tâches sont encore partagées par les précédents membres



--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes RubyFR public.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse rubyfr-publi...@googlegroups.com.
Pour envoyer un message à ce groupe, adressez un e-mail à rubyfr...@googlegroups.com.
Visitez ce groupe à l'adresse http://groups.google.com/group/rubyfr-public .
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .



--
Guillaume Desrat
Membre de l'association Ruby France
http://www.rubyfrance.org/

hugo fabre

unread,
Oct 13, 2013, 4:49:26 PM10/13/13
to rubyfr...@googlegroups.com
Bonjour,

Merci beaucoup pour vos conseils, Sunny, je vais regarder ce que tu proposes, merci encore !
Guillaume, Je vais m'inscrire de ce pas. Effectivement, je suis étudiant à epitech, mais en région (Marseille) donc les ParisRB ce n'est pas pour tout de suite, mais merci de la proposition !

Je reviendrais régulièrement, vous présenter ce que j'ai entrepris, ça me permettra d'avoir des conseils de rubyistes compétents sur le fond et la forme de mon code et ça c'est vraiment positif !!

Merci encore et à bientôt pour des news.

yannick....@free.fr

unread,
Oct 14, 2013, 4:06:21 AM10/14/13
to rubyfr...@googlegroups.com
> ----- Mail original -----
> De: "hugo fabre" <hugo.fabr...@gmail.com>
> À: rubyfr...@googlegroups.com
> Envoyé: Dimanche 13 Octobre 2013 22:49:26
> Objet: Re: Recherche projet pour consolider mon ruby
>
>
> Bonjour,
>
> Merci beaucoup pour vos conseils, Sunny, je vais regarder ce que tu proposes, merci encore !
> Guillaume, Je vais m'inscrire de ce pas. Effectivement, je suis étudiant à epitech, mais en région (Marseille) donc les ParisRB ce n'est pas pour tout de suite, mais merci de la proposition !


Bonjour Hugo, dans ce cas, tu as un PastisRB: http://www.pastisrb.org/ :-)

-- Yannick.

Sylvain Abélard

unread,
Oct 14, 2013, 4:43:54 AM10/14/13
to rubyfr...@googlegroups.com
Bonjour Hugo,

comme dit plus bas, je ne saurais que te recommander les meetups et Twitter.
Vu ta région, je te propose @pastisrb, @jlecour @davidawea
et un peu plus loin @sgruhier et @camilleroux ;)

Je crois qu'Epitech propose des projets libres, n'hésite pas à en faire ou tanner l'équipe pédagogique en proposant du Ruby.

Aujourd'hui je cherche un projet qui répond à mes demandes qui sont:
- Un projet assez long (au moins plusieurs jours, si possible entre 1 et 3 semaines)

Trouve un projet sur GitHub, tu pourras à la fois participer, te faire un CV et trouver des mentors sur des projets non triviaux :)

Nous avons parfois des lightnings talks à ParisRB sur des gems ou projets open source intéressants.
Heureusement tout est en vidéo : http://vimeo.com/parisrb

Ça fait un petit moment que j'entends parler de BioRuby aussi, si ça te plaît : http://bioruby.org/
 
- Un projet sur lequel je pourrais rajouter une interface graphique (j'attends que shoes sorte en tant que gem si possible)

À l'époque j'avais fait du QtRuby, du GTKRuby, et même du FoxRuby, mais aujourd'hui le biais vers le Web est plus que prononcé ;)

- Un projet qui utilise la notion d'objet
- Si il y a un peu de difficultées technique c'est bien aussi (mais pas trop quand même je suis loin d'être un expert.)
(Pourquoi pas un projets sur lequel je puisse utiliser les sockets)

Là-dessus il y a http://rubyquiz.com/ et tant d'autres pour t'échauffer les neurones.
(et c'est tellement bien que nos amis Haskell l'ont repris : http://www.haskell.org/haskellwiki/Haskell_Quiz )

J'espère que tu trouveras ton bonheur :)

-- 
Sylvain

hugo fabre

unread,
Oct 14, 2013, 6:11:39 AM10/14/13
to rubyfr...@googlegroups.com
Je vais jeter un coup d'oeil à tout vos liens, et c'est vrai que j'aimerais bien participer à un projet open source, mais avec mon anglais et mon niveau de ruby approximatif je ne sais pas si c'est pour tout de suite.
Oui, pour les projets libres je compte bien opter pour du ruby ou du ruby on rails (côté serveur) pour un application client/serveur.

Encore une fois, merci pour vos participations !


Le jeudi 10 octobre 2013 15:49:18 UTC+2, hugo fabre a écrit :

François Vaux

unread,
Oct 14, 2013, 6:29:36 AM10/14/13
to rubyfr...@googlegroups.com
Salut Hugo,

Je ne peux que te conseiller de venir à PastisRB, le prochain meetup
est dans ~1 mois normalement et on est toujours très content de voir
de nouvelles têtes !

Pour les contacts, je crois que Sylvain a tout dit :)
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> RubyFR public.
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> rubyfr-publi...@googlegroups.com.
> Pour envoyer un message à ce groupe, adressez un e-mail à
> rubyfr...@googlegroups.com.
> Visitez ce groupe à l'adresse http://groups.google.com/group/rubyfr-public .
> Pour plus d'options, visitez le site
> https://groups.google.com/groups/opt_out .



--
François Vaux
http://madx.me/

hugo fabre

unread,
Oct 14, 2013, 8:22:09 AM10/14/13
to rubyfr...@googlegroups.com
Je viendrais avec plaisir, si ça tombe un jour ou je suis dispo, encore une fois merci de l'invitation :)


Le jeudi 10 octobre 2013 15:49:18 UTC+2, hugo fabre a écrit :

hugo fabre

unread,
Nov 14, 2013, 10:30:40 AM11/14/13
to rubyfr...@googlegroups.com


Bonjour, comme promis je viens vous donner des nouvelles.

Je me suis lancé dans un genre de space invader avec la lib gosu.
Je me suis donc basé sur l'exemple (un vaisseau qui tourne sur lui même qui doit ramasser des étoiles) pour faire mon jeu.
Le code source est dispo ici: https://github.com/hfabre/projects/tree/master/space. Je ferais bientôt un repo à part.
Si vous avez des conseils à me donner sur ma manière de faire les choses n'hésitez, toute critique est la bienvenue.
Dans le futur, je pense rajouter un systeme de boss qui pop avec l'obtention d'uncertain nombre de points, et un systeme de ladder online hosté sur heroku en rails.

Pour installer, sur une debian-based distrib il suffira de faire un sh start.sh pour les autres... Je pense que vous trouverez la solution tout seul :p et pour le lancer un simple ruby start.rb [easy || medium || hard](optionnel)

Voilà voilà, merci de votre attention et de vos propositions !]

thi...@milesrock.com

unread,
Nov 15, 2013, 3:35:19 AM11/15/13
to rubyfr...@googlegroups.com
We got a NEW CHALLENGER !!!

Excellent !
Est-ce qu'il y a du texte un peu ? Parce que c'est un des points clés du concours !!

Petit récap sur le concours :

hugo fabre

unread,
Nov 15, 2013, 7:29:30 AM11/15/13
to rubyfr...@googlegroups.com

Euh, je n'étais pas du tout au courant du concours, si j'ai fais ça c'est avant tout pour moi. Malheuresement, non il n'y a que peu de texte (juste le niveau de difficulté à passer en paramètre :p)

hugo fabre

unread,
Dec 18, 2013, 6:02:43 AM12/18/13
to rubyfr...@googlegroups.com

Bonjour à tous, me voilà de retour.

J'ai avancé sur mon jeu, mais aujourd'hui je suis confronté à une problèmatique. J'aimerais partagé mon jeu, sous windows, mac et linux.

J'ai d'abord essayer via releasy de faire un executable ne necessitant pas d'installation de ruby et des gems utilisées au préalable, ce fut un ehec.
Je me suis donc dirigé vers rubypackager qui lui ne permettait pas de build un executable, mais une gem. Malheuresement ce fut un echec.

J'ai donc finis par builder moi même mon jeu en gem, mais dans l'état actuel des choses, l'utilisateur devra installer ruby, rubygem et bundle pour faire fonctionner le jeu, et un gem unpack pour le recupérer, puis un bundle pour installer les dépendances, donc autant faire une archive.

Je voulais donc savoir si vous avez un moyen de build une application ruby qui utilise des gems sur toutes les plateformes. Ou si en le buildant comme une gem si il était possible via un gem install d'installer le jeu et ses dépendances et de n'avoir plus qu'à le lancer via une simple commande (sans alias genre '> space' plutôt que '> ruby ./path/to/my/bin'

Merci d'avance, Hugo !

Jean-Hadrien Chabran

unread,
Dec 18, 2013, 6:11:45 AM12/18/13
to rubyfr...@googlegroups.com
En faire une gem est la meilleure approche, que tu la publies ou pas. Ca te fournit un squelette d'app / lib tout simple et standard :)

De ce que je vois, Releasy a l'air de faire le job et est maintenu. Ruby-Packager a été viré de rubygems apparemment (https://rubygems.org/gems/ruby-packager

Peut-être pourrais tu décrire ce qu'il se passe avec Releasy ? 




2013/12/18 hugo fabre <hugo.fabr...@gmail.com>

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes RubyFR public.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse rubyfr-publi...@googlegroups.com.
Pour envoyer un message à ce groupe, adressez un e-mail à rubyfr...@googlegroups.com.
Visitez ce groupe à l'adresse http://groups.google.com/group/rubyfr-public .
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .



--
Jean-Hadrien Chabran

hugo fabre

unread,
Dec 18, 2013, 8:39:40 AM12/18/13
to rubyfr...@googlegroups.com
En gros, lorsque j'avais build mon appli, et que je la lancais, j'avais une console qui s'ouvrais et se fermais directement, et même que je la lancais via la console (sous windows) aucun message d'erreur, juste ça quittais.
Pourtant si je lancais via le start.rb je n'avais aucun problème.

PS: J'ai mis mon jeu sur un repo à part, si tu veux voir les source ou mon rakefile (pour releasy) c'est par là: https://github.com/hfabre/space

Merci

Jean-Hadrien Chabran

unread,
Dec 18, 2013, 8:42:08 AM12/18/13
to rubyfr...@googlegroups.com
Oui, j'ai trouvé ça ce matin après avoir lu ton email. 

Ok, je présume que si tu le lançais avec le start.rb, c'était ton ruby pour le coup qui était employé donc que ça marche ainsi ne m'étonne pas. 

Si j'arrive à débloquer un peu de temps, je jetterais un oeil :)


2013/12/18 hugo fabre <hugo.fabr...@gmail.com>

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes RubyFR public.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse rubyfr-publi...@googlegroups.com.
Pour envoyer un message à ce groupe, adressez un e-mail à rubyfr...@googlegroups.com.
Visitez ce groupe à l'adresse http://groups.google.com/group/rubyfr-public .
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .



--
Jean-Hadrien Chabran

Hugo Fabre

unread,
Dec 18, 2013, 9:43:11 AM12/18/13
to rubyfr...@googlegroups.com

Merci beaucoup
--
Vous recevez ce message car vous êtes abonné à un sujet dans le groupe Google Groupes "RubyFR public".
Pour vous désabonner de ce sujet, visitez le site https://groups.google.com/d/topic/rubyfr-public/nufoH_taMJs/unsubscribe.
Pour vous désabonner de ce groupe et de tous ses sujets, envoyez un e-mail à l'adresse rubyfr-publi...@googlegroups.com.

Thibault Jouan

unread,
Dec 18, 2013, 11:07:29 AM12/18/13
to hugo fabre, rubyfr...@googlegroups.com
On 2013-12-18 03:02:43 -0800, hugo fabre wrote:
> J'ai avancé sur mon jeu, mais aujourd'hui je suis confronté à une
> problèmatique. J'aimerais partagé mon jeu, sous windows, mac et linux.
[…]
> J'ai donc finis par builder moi même mon jeu en gem, mais dans l'état
> actuel des choses, l'utilisateur devra installer ruby, rubygem et bundle
> pour faire fonctionner le jeu, et un gem unpack pour le recupérer, puis un
> bundle pour installer les dépendances, donc autant faire une archive.

Je ne connais pas releasy ou rubypackager, mais dans le cas d'une
gem tu n'as pas besoin de faire installer bundler à tes utilisateurs,
juste pour les développeurs. L'utilisateur aura juste à faire `gem
install space`, la gem ne dépendant pas de bundler (préférable).

> Je voulais donc savoir si vous avez un moyen de build une application ruby
> qui utilise des gems sur toutes les plateformes. Ou si en le buildant comme
> une gem si il était possible via un gem install d'installer le jeu et ses
> dépendances et de n'avoir plus qu'à le lancer via une simple commande (sans
> alias genre '> space' plutôt que '> ruby ./path/to/my/bin'

Le cas des différentes plateformes sera surtout en fonction des
dépendances de ton jeu, mais en principe oui si rubygems marche sur
une plateforme tu pourras y distribuer ta gem de la même manière.
Pour l'exécution oui tout est prévu pour pouvoir utiliser de la
manière que tu souhaites, voir plus bas les choses possible pour aider
à coller aux conventions d'une gem.

> PS: J'ai mis mon jeu sur un repo à part, si tu veux voir les source ou mon
> rakefile (pour releasy) c'est par là: https://github.com/hfabre/space

Quelques commentaires rapides qui peuvent aider pour le
fonctionnement en tant que gem, et si ça se trouve aider également
pour les outils de distributions que tu as évoqué, mais que je ne
connais pas.

https://github.com/hfabre/space/blob/master/bin/start.rb

Ajoute un shebang au début :

#!/usr/bin/env ruby

pas besoin de require_relative, rubygems patch require (de souvenir)
pour pouvoir charger tout ce qui est dans le répertoire `lib' de ta
gem, même pas besoin de lister dans le gemspec. Du coup juste :

require 'space/window' # voir juste require 'space' avec un
# lib/space.rb (require multiples ou
# autoload)

Idéalement renommer `start.rb' en `space'.

https://github.com/hfabre/space/blob/master/space.gemspec

Je ne sais plus si c'est obligatoire mais peut aider :

s.executables = s.files.grep(/\Abin\//) { |f| File.basename(f) }

Lister tes dépendances (bundler peut lire le gemspec) :

s.add_dependency 'gosu'

s.add_development_dependency 'bundler' # perso je ne liste pas même
# quand j'utilise, pour ne
# pas l'imposer aux devs
s.add_development_dependency 'rake'
s.add_development_dependency 'releasy'

https://github.com/hfabre/space/blob/master/Gemfile

source 'https://rubygems.org'

gemspec

Devrait suffire, je vois que tu listes une version de ruby, ça doit
pouvoir se faire aussi dans le gemspec, voir la doc. En bonus, avec
Gemfile-custom.rb dans le .gitignore :

eval File.read('Gemfile-custom.rb') if File.exist?('Gemfile-custom.rb')

(Pour s'ajouter des gem perso pour le dev/test).


lib/space.rb

Pas obligatoire mais peut aider d'avoir un fichier unique qui
require tout dans la lib, utilise de l'autoload, ou toute autre
stratégie.

https://github.com/hfabre/space/blob/master/lib/space/window.rb

Avec remarque précédente, plus besoin de tout require ici, pas
besoin non plus de require_relative normalement, juste :

require 'space/player'
[…]


Ensuite supprimer tout require de 'rubygems' ou 'bundler/*',
partout. ruby, rubygems ou bundler le feront eux même comme il faut et
quand il faut, en tout cas pour une gem.

En dev on peut continuer à utiliser bundler, sans l'imposer à
l'utilisateur (penser à virer le Gemfile.lock du dépôt aussi +
ignore). rubygems installera toutes les dépendances pour
l'utilisateur.

Pour l'install, rubygems suivant comment il est configuré soit
copiera le script `space' soit fera son propre wrapper. L'utilisateur
n'aura plus qu'à exécuter la commande `space` qui sera dans son PATH
comme toutes les autres gems.


--
Thibault Jouan

hugo fabre

unread,
Dec 19, 2013, 8:45:35 AM12/19/13
to rubyfr...@googlegroups.com
Bonjour,

Après test j'ai build la gemme comme tu me l'a conseillé, ça marche très bien sous linux (j'essaye sous windows ce soir), en revanche sous mac, j'ai un soucis au moment il build les dépendance de gosu il me semble (une histoire avec l'objective-c j'ai pas trop compris), si tu as une idée c'est super sympa, merci bien :)

hugo fabre

unread,
Dec 19, 2013, 12:36:17 PM12/19/13
to rubyfr...@googlegroups.com
Après test sous windows xp, il n'arrive pas à charger les images, cela viendrais t'il du path de type unix ? Je test sous W7 dès que je rentre chez moi.

Merci encore
Reply all
Reply to author
Forward
0 new messages