Forum: Rails France Applications hors-ligne / en-ligne

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Thomas (Guest)
on 2009-04-30 13:49
(Received via mailing list)
Bonjour,

Afin de réaliser une application rails disponible hors-ligne et
synchronisable avec le mode en-ligne, j'ai repéré les technologies
suivantes:
 * Joyent Slingshot (documentation très pauvre, projet laissé à
l'abandon, pas réussi à tester sous windows)
 * Google Gears
 * Adobe Flex/AIR

Quelqu'un a-t-il déjà expérimenté l'une d'entre elles ou a un quelconque
commentaire à faire dessus?

Merci!

Thomas
Zaphod B. (Guest)
on 2009-04-30 14:01
(Received via mailing list)
C'est un choix tout à fait personnel, mais je me dirigerais vers
Google Gears sans trop d'hésitation.
Thomas (Guest)
on 2009-04-30 14:09
(Received via mailing list)
Google Gears a l'air prometteur mais je ne sais pas s'il est
production-ready:
 * sur Google C. on ne peut que lire ses données hors-ligne, pas
les synchroniser
 * un plugin Rails existe (http://code.google.com/p/gearsonrails/) mais
ça n'a pas l'air très mature

En fait Joyent Slingshot correspond exactement à mon besoin, mais comme
je disais la documentation est très pauvre, le projet paraît laissé à
l'abandon, et je n'ai pas réussi à le faire marcher sous windows.


Zaphod B. a écrit :
Yannick F. (Guest)
on 2009-04-30 14:22
(Received via mailing list)
Le 30 avril 2009 11:49, Thomas <removed_email_address@domain.invalid> a écrit :
>
> Afin de réaliser une application rails disponible hors-ligne et
> synchronisable avec le mode en-ligne, j'ai repéré les technologies
> suivantes:
>  * Joyent Slingshot (documentation très pauvre, projet laissé à
> l'abandon, pas réussi à tester sous windows)
>  * Google Gears
>  * Adobe Flex/AIR
>

Désolé je n'ai expérimenté aucune d'entre elles, mais ne peut-on pas
ajouter aussi
- RCP (eclipse)
- Xul (mozilla)
- Silverlight (microsoft)

?

Ceci dit, ça ne fait qu'ajouter du choix sans te donner les arguments
permettant de le faire (le choix)... Désolé

--
Yannick F.
Secrétaire RubyFrance
<http://rubyfrance.org>
Thomas (Guest)
on 2009-04-30 15:39
(Received via mailing list)
Yannick F. a écrit :
> permettant de le faire (le choix)... Désolé
>
Oui, ces vrai, j'ai aussi regardé ces technos, mais je ne les aurais pas
indiquées sur ce forum car pour le coup, elles n'ont à ma connaissance
aucun rapport avec Rails. Et puis dans mon cas j'aurais un problème de
compétence à combler en plus.
Arthur Pétry (Guest)
on 2009-04-30 16:00
(Received via mailing list)
Le 30 avr. 09 à 11:49, Thomas a écrit :

>
Il y a aussi la base de donnée HTML 5 :
  http://webkit.org/misc/DatabaseExample.html

Par contre je ne crois pas que ça gère la synchronisation.
Thomas (Guest)
on 2009-04-30 16:39
(Received via mailing list)
Arthur Pétry a écrit :
>
> Il y a aussi la base de donnée HTML 5 :
>   http://webkit.org/misc/DatabaseExample.html
>
> Par contre je ne crois pas que ça gère la synchronisation.
Sympa, faudra voir ce que donne ce projet dans le futur, mais pour
l'instant
ça ne va pas faire l'affaire pour mon problème.

Merci quand même!

Thomas
Yann KLIS (Guest)
on 2009-04-30 16:59
(Received via mailing list)
Nous avons développé la première version d'une application "offline"
avec Google Gears (et Rails) il y a plus d'un an et nous avons lancé
une "version 2" de cette application web il y a 2 mois.

Mes conclusions : on avait choisi Google Gears parce que c'était bien
dans l'esprit web (qui est un monde "plastique") et on ne s'est pas
trompé. De plus, en 1 an, la technologie a continué d'évoluer dans le
bon sens.

Par contre, Rails ne fait pas grand chose dans l'histoire, puisque
dèslors que l'application est Offline, c'est du pur HTML/CSS/Javascript.
Dans ce cadre là, ce n'est plus vraiment une appli Rails, mais
plutôtune appli Javascript. Et donc, vaut mieux savoir coder (proprement) en
Javascript avec un framework qui va bien.

++

yk

PS : malheureusement, je n'ai ni screenshot, ni screencast de l'appli,
mais ça devrait venir prochainement...

Le 30 avril 2009 11:49, Thomas <removed_email_address@domain.invalid> a écrit :
Yannick F. (Guest)
on 2009-04-30 17:14
(Received via mailing list)
Le 30 avril 2009 14:58, Yann KLIS <removed_email_address@domain.invalid> a écrit 
:
>
> Par contre, Rails ne fait pas grand chose dans l'histoire, puisque dès
> lors que l'application est Offline, c'est du pur HTML/CSS/Javascript.
> Dans ce cadre là, ce n'est plus vraiment une appli Rails, mais plutôt
> une appli Javascript. Et donc, vaut mieux savoir coder (proprement) en
> Javascript avec un framework qui va bien.
>

Et j'ajoute, même si cela va de soit, avec des Test Unitaire (comme
http://www.jsunit.net/ par exemple).

Finalement GoogleGear c'est du Xul non ? Il faudrait que je regarde
tiens...

--
Yannick F.
Secretaire RubyFrance
<http://rubyfrance.org>
Thomas (Guest)
on 2009-04-30 17:21
(Received via mailing list)
Intéressant.

C'est ce que j'avais cru comprendre en lisant la doc de Google Gears.

Visiblement il garde des les pages de l'appli en cache et on doit coder
les appels à la base de données en javascript avec leur API. Donc ça
reviendrait à coder deux fois l'appli, une fois en Rails pur pour le
mode on-line et une fois en javascript pour le mode off-line. Et l'outil
WorkerPool permet de synchroniser les données en tâche de fond. C'est
bien ça?

Pour le javascript, je me débrouille avec la librairie prototype.
J'espère que ce sera suffisant. Et j'ai ma bible à côté de moi "Bien
développer pour le Web 2.0" de Christophe P..

Ce qui est dommage, est que la solution Joyent Slingshot paraît parfaite
pour ce type de besoin: ça sert à embarquer l'appli Rails dans une appli
Windows ou Mac, en mode offline on bascule en local en sauvant les
données dans sqlite3 et en on-line on part sur le web. Un système de
synchro entre models Rails (basé sur les champs created_at et
updated_at) est embarqué dans l'appli afin de synchroniser les données.

Si quelqu'un a deux minutes et veut bien essayer le tuto de l'appli de
base avec Slingshot sur Windows, ça pourrait être sympa ;-) . Ca me
permettrait de voir si je ne suis pas un idiot de base qui n'arrive pas
à comprendre une (pseudo) doc...
https://dev.joyent.com/projects/slingshot/wiki/BasicApp

En tous cas merci pour ce retour d'expérience avec Google Gears, je
crois que je vais me plonger un peu plus dedans ces prochains jours.

Thomas

Yann KLIS a écrit :
Tony C. (Guest)
on 2009-04-30 17:42
Et celà ne serait pas possible avec Shoes?
Une base de donnée locale sqlite et synchronisation avec un serveur en
mode connecté
Thomas (Guest)
on 2009-04-30 17:52
(Received via mailing list)
Ben le truc c'est qu'il faut intégrer un navigateur web dans
l'application bureau. Je pensais même recoder Slingshot en Java pour
faire ça ... (je n'ai toujours pas abandonné l'idée en fait)

Avec Shoes il faudrait coder deux fois l'appli, une fois en Shoes (pour
le local), une fois en Rails (pour le web), plus l'algo de
synchronisation.

Avec un système tout simple en Java sur le Desktop, qui contient:
 * une fenêtre navigateur web par défaut du système
 * une barre des tâches avec 4 boutons: on-line / off-line / sync / exit
 * on embarque une VM Ruby+gems+sqlite3 spécifiques au système pour
faire tourner l'appli Rails en local
Le plus lourd serait de coder l'algorithme de synchronisation.

Tony C. a écrit :
Nicolas Mérouze (Guest)
on 2009-04-30 19:27
(Received via mailing list)
2009/4/30 Thomas <removed_email_address@domain.invalid>

>
> Ben le truc c'est qu'il faut intégrer un navigateur web dans
> l'application bureau. Je pensais même recoder Slingshot en Java pour
> faire ça ... (je n'ai toujours pas abandonné l'idée en fait)
>

C'est plutôt facile à faire puisqu'en fait je l'ai déjà fait pour un
client.
J'ai créé une app JRuby+Qt Jambi avec un Webkit. Pour l'app web elle est
sur
un serveur (avec une db mysql) et packagé (avec une db sqlite3) avec
l'app
comme avec slingshot.

C'est multiplateforme et ce n'est qu'une grosse dizaine de ligne (le
code de
l'appli, pas le code pour la sync qui est un plus long). Et c'est aussi
possible de le faire avec SWT (qui a un widget Browser).



> Le plus lourd serait de coder l'algorithme de synchronisation.
>

C'est pas si lourd que ça. Tu fais une API JSON ou XML qui envoie et
reçoit
les données puis en fonction ajoute/modifie/supprime les données. Un peu
comme un diff en fait.

--
Nicolas Mérouze
http://www.yeastymobs.com
Tony C. (Guest)
on 2009-04-30 20:50
Tu peux peut-être regarder de ce côté là :

http://www.oreillynet.com/pub/a/ruby/2008/01/14/sh...

C'est avec Merb mais ça doit s'adapter à Rails ;)
Jean-Baptiste B. (Guest)
on 2009-04-30 20:56
(Received via mailing list)
Le 30 avril 2009 15:13, Yannick F. <removed_email_address@domain.invalid> a 
écrit :

> Finalement GoogleGear c'est du Xul non ? Il faudrait que je regarde
> tiens...


Si l'on parle bien du XUL de Mozilla, non : XUL est un langage de
description d'interface, c'est un langage de balises, comparable à HTML.
Par
contre si on parle de la plateforme des outils Mozilla globalement,
anciennement XPFE (maintenant ça doit s'appeler "mozilla toolkit" ou un
truc
de ce genre), il y a peut-être dans le tas quelque chose qui s'en
rapproche
(?). Voir ici pour un diagramme daté de courant 2007:
http://people.mozilla.com/~schrep/theMozillaPlatform.png

--
Jean-Baptiste
Thomas (Guest)
on 2009-04-30 21:30
(Received via mailing list)
Nicolas Mérouze a écrit :
> C'est plutôt facile à faire puisqu'en fait je l'ai déjà fait pour un
> client. J'ai créé une app JRuby+Qt Jambi avec un Webkit. Pour l'app
> web elle est sur un serveur (avec une db mysql) et packagé (avec une
> db sqlite3) avec l'app comme avec slingshot.
>
> C'est multiplateforme et ce n'est qu'une grosse dizaine de ligne (le
> code de l'appli, pas le code pour la sync qui est un plus long). Et
> c'est aussi possible de le faire avec SWT (qui a un widget Browser).
Oui ben tu vois c'est ce sur quoi je me dirigeais, c'est super d'avoir
un retour d'expérience là-dessus. Finalement Google Gears, bien que
prévu pour ce genre de cas, semble s'avérer plus lourd à mettre en place.
>
>     Le plus lourd serait de coder l'algorithme de synchronisation.
>
>
> C'est pas si lourd que ça. Tu fais une API JSON ou XML qui envoie et
> reçoit les données puis en fonction ajoute/modifie/supprime les
> données. Un peu comme un diff en fait.
Ok donc une synchro basée sur une API REST.

Comment tu gère le système de clés primaires (par défaut) de Rails?
Exemple: un enregistrement sera stocké en local avec l'ID 5 alors que
lorsqu'il sera envoyé au serveur, il aura l'ID 8 car d'autres
utilisateurs auront stocké des enregistrement entre temps. Comment ça
gère les associations?

Et dans ton cas, est-ce que tu synchronisait toute la base ou seulement
une partie?

En tous cas merci de ton retour, et si tu as des snippets je suis
preneur ;)

Thomas
Thomas (Guest)
on 2009-04-30 21:42
(Received via mailing list)
Tony C. a écrit :
> Tu peux peut-être regarder de ce côté là :
>
> 
http://www.oreillynet.com/pub/a/ruby/2008/01/14/sh...
>
> C'est avec Merb mais ça doit s'adapter à Rails ;)
>
Cool! Ca a l'air sympa. Quand j'aurais le temps je ferai ce tuto.
Nicolas Mérouze (Guest)
on 2009-04-30 21:56
(Received via mailing list)
2009/4/30 Thomas <removed_email_address@domain.invalid>

>
> Comment tu gère le système de clés primaires (par défaut) de Rails?
> Exemple: un enregistrement sera stocké en local avec l'ID 5 alors que
> lorsqu'il sera envoyé au serveur, il aura l'ID 8 car d'autres
> utilisateurs auront stocké des enregistrement entre temps. Comment ça
> gère les associations?


J'utilise des uuid comme clés primaires, comme ça pas de conflits. C'est
plus le système par défaut mais il n'y a pas vraiment d'autres
solutions.


>
> Et dans ton cas, est-ce que tu synchronisait toute la base ou seulement
> une partie?
>

Il y a bien trop de données pour synchroniser toute la base, je récupère
les
données qui ont une date updated_at plus récente que la date de la
dernière
synchro.


>
> En tous cas merci de ton retour, et si tu as des snippets je suis preneur
> ;)


Je ne peux rien te montrer et si je le pouvais ce n'est pas réellement
intéressant.

Pour l'application vu que nokia a arrêté le dev de Qt Jambi et que je ne
sais pas s'il va y avoir qq1 qui le reprendra, je te conseillerais
d'aller
plutôt du côté de SWT, il y a plein d'exemples Java sur le site qui sont
très facilement adaptable pour JRuby. Ensuite tu peux packagé ton app
SWT et
ton app Rails avec jruby-complete et toutes les gems nécessaires (voir
le
blog de nick sieger pour jruby-complete + gems).

--
Nicolas Mérouze
http://www.yeastymobs.com
Thomas (Guest)
on 2009-04-30 22:01
(Received via mailing list)
Nicolas Mérouze a écrit :
>
>
> J'utilise des uuid comme clés primaires, comme ça pas de conflits.
> C'est plus le système par défaut mais il n'y a pas vraiment d'autres
> solutions.
>
Ah oui effectivement.
> date de la dernière synchro.
>
En fait je parlais des données les plus récentes de l'ensemble des
modèles (le schéma entier, quoi). Ce qui fait qu'en local on a une copie
conforme de la base du serveur, même si on ne réécrase pas tout à chaque
fois. C'est bien ça?
> ne sais pas s'il va y avoir qq1 qui le reprendra, je te conseillerais
> d'aller plutôt du côté de SWT, il y a plein d'exemples Java sur le
> site qui sont très facilement adaptable pour JRuby. Ensuite tu peux
> packagé ton app SWT et ton app Rails avec jruby-complete et toutes les
> gems nécessaires (voir le blog de nick sieger pour jruby-complete + gems).
Super conseil! Thanks a lot man!

Thomas
Nicolas Mérouze (Guest)
on 2009-05-01 05:09
(Received via mailing list)
2009/4/30 Thomas <removed_email_address@domain.invalid>


> En fait je parlais des données les plus récentes de l'ensemble des
> modèles (le schéma entier, quoi). Ce qui fait qu'en local on a une copie
> conforme de la base du serveur, même si on ne réécrase pas tout à chaque
> fois. C'est bien ça?


Oui c'est bien ça.

--
Nicolas Mérouze
http://www.yeastymobs.com
Sebastien (Guest)
on 2009-05-06 13:12
(Received via mailing list)
2009/4/30 Tony C. <removed_email_address@domain.invalid>

>
> Tu peux peut-être regarder de ce côté là :
>
>
> 
http://www.oreillynet.com/pub/a/ruby/2008/01/14/sh...
>
> C'est avec Merb mais ça doit s'adapter à Rails ;)


Bonjour à tous,

Je me pose les mêmes questions que vous, mis à part la synchronisation..
pour le moment!!!

D'après ce que j'ai pu comprendre, l'utilisation de Shoes en font-end
obligerai à re-coder tous les controllers de l'application Rails dans
Shoes... pas terrible...

L'idée d'utiliser un kit permettant d'ouvrir une fenêtre avec le
navigateur
par défaut du système paraît beaucoup plus simple et rapide à mettre en
place.
Ne connaissant pas SWT, QT Jambi ou autre webkit, j'ai fait un truc très
simple: j'utilise Firefox Portable avec l'extension Prism + VM ruby +
gems +
sqlite3 + App Rails + script ruby qui lance le serveur et la fenêtre.

Au final, j'ai une app qui fonctionne off line et même sur clé usb, mais
gros bémol: que sous windows!!! :(

Je serais fort intéressé par l'utilisation SWT ou QT Jambi.
@Nicolas Mérouze : Nicolas, aurais-tu sous la 'souris' quelques docs web
où
je pourrais trouver mon bonheur ?? Sinon je 'googlerai' un maximum .

Merci à tous
--
Seb the Monster
super-x86 (Guest)
on 2009-05-29 14:44
(Received via mailing list)
bonjour, je viens de rejoindre votre groupe, je me suis vraiment
bloqué au niveau de la synchronisation d'une application offline
surtout que je me suis dans la phase finale de mon application,j'ai pu
realisé pas mal de chose(j'ai utilisé google gears):
-installation et activation de google gears,stockage des fichiers
sattiques sur le poste client...............(tout ca developpé par
javascript et aussi comme tout le monde sait parmit les composant de
google gears la base de donnée sqllite....)
-mettre en place mon application dynamique version offline
sincerement je me suis bloqué au niveau de la synchronisation et j'ai
une idée mais ca marche pas(la synchronisation
bidirectionnelle),j'espere avoir une reponse favorable le plus proche
possible merci d'avance
     (voici mon email removed_email_address@domain.invalid)
super-x86 (Guest)
on 2009-05-29 15:20
(Received via mailing list)
au secour hhhhhhhh,je me suis bloqué au niveau de la synchronisation
(documentation tré tré tré tré pauvre)
ook? ook! (Guest)
on 2009-05-29 15:49
(Received via mailing list)
2009/5/29 super-x86 <removed_email_address@domain.invalid>

>
> au secour hhhhhhhh,je me suis bloqué au niveau de la synchronisation
> (documentation tré tré tré tré pauvre)
>

Et toi c'est niveaux de maitrise :

* rails : faible
* netiquette : faible
* netiquette forum : extrêment faible
* français : très faible

Je te propose de combler tes lacunes du bas vers le haut…
mhamed bounafaa (Guest)
on 2009-05-30 17:41
(Received via mailing list)
j´´ai pa b1 saisi ce qe tu vx dire
Fabien J. (Guest)
on 2009-05-30 18:29
(Received via mailing list)
2009/5/30 mhamed bounafaa <removed_email_address@domain.invalid>

>
> j´´ai pa b1 saisi ce qe tu vx dire
>
>
Rails France => france => langue française.

Exprime toi donc en français et pas en pseudo francais sms.

--
http://fabien.jakimowicz.com
Gregoire LEJEUNE (Guest)
on 2009-05-30 18:44
(Received via mailing list)
Je pense que ce que ne dit pas ton mail, c'est quel est le problème ?

Tu dis que tu es bloqué... Oui, mais ou ? Et que tu as une idée...
Oui, mais laquelle ?

Bref, on est super content de savoir que tu utilises ci ou ça, mais
c'est QUOI ton problème. Parce que des problèmes de synchronisation,
je veux bien, mais entre quoi et quoi ? Si tu cherches à mettre à jour
des fichiers VESAM à partir de fichiers texte en EBCDIC sur lecteur de
cartouche IBM 7300 VX3, je peux t'aider... Sinon, il faudra en dire un
peu plus.

Greg

Le 29 mai 2009 12:43, super-x86 <removed_email_address@domain.invalid> a écrit :
mhamed bounafaa (Guest)
on 2009-05-31 12:24
(Received via mailing list)
merci,et je suis desolé pour ma facon d´ecriture,jái realisé un site web
ou
il y a un ensemble de formulaire a remplir, ce que je veux faire cést de
travailler en mode deconnecté avec l´utilisation de google
gears,bien,jái pu
atteindre presque plus que  la moitier de mon projet,jái utiliser des
script
comme ca si par exemple google gears n´est installer il va demander a
l´utilisateur de mon site d´installer google gears et il va lui donner
aussi
les liens de telechargement,puis je peux maintenant stocké les donné que
j´ai utilisé en mode deconnecté en local et effectué les mises a
jour(toujours en local),mon probleme cést lorsque la connexion revient
comment actualiser les donné au niveau de la serveur web(les nouveau
modification,suppression............ sur la page) sans avoir un blockage
sur
mon site
je crois que cést bon jusqu´a ici,et merci
This topic is locked and can not be replied to.