Forum: Italian Ruby user group [Newbie] Presentazione e domanda

Posted by Jonathan Lecchi (zzjona)
on 2012-07-30 14:54
Buongiorno a tutti,
mi chiamo Jonathan e da pochi mesi mi sono affacciato al mondo di Ruby
on Rails. Armato di documentazione di cui ho letto ottime recensioni in
rete (Programming Ruby 1.9 - Agile Web Development with Rails) ho deciso
di approfondire questo linguaggio che trovo molto, molto potente
(provengo da PHP e da un lontano trascorso in Perl).

Arrivo al dunque chiedendovi info e/o consigli:
ho "ereditato" un progetto web costituito da due applicativi scritti in
RoR, rispettivamente in:

Ruby 1.8.6-p111
- gem list -
actionmailer (2.3.4)
actionpack (2.3.4)
activerecord (2.3.4)
activeresource (2.3.4)
authlogic (2.1.2)
builder (2.1.2)
cgi_multipart_eof_fix (2.5.0)
fxri (0.3.6)
fxruby (1.6.12)
gem_plugin (0.2.3)
hoe (2.3.3)
hoe-seattlerb (1.2.1)
hpricot (0.6)
json_pure (1.1.9)
log4r (1.0.5)
minitest (1.4.2)
mongrel (1.1.5)
mysql (2.8.1)
rack (1.0.0)
rails (2.3.4)
rake (0.8.7, 0.7.3)
rubyforge (2.0.2)
rubygems-update (1.3.5)
session (2.4.0)
sources (0.0.1)
win32-api (1.0.4)
win32-clipboard (0.4.3)
win32-dir (0.3.2)
win32-eventlog (0.4.6)
win32-file (0.5.4)
win32-fie-stat (1.2.7)
win32-process (0.5.3)
win32-sapi (0.1.4)
win32-shortcut (0.2.3)
windows-api (0.2.0)
windows-pr (0.7.2)

Ruby 1.9.2-p136
- gem list -
abstract (1.0.0)
actionmailer (3.0.3)
actionpack (3.0.3)
activemodel (3.0.3)
activerecord (3.0.3)
activeresource (3.0.3)
activesupport (3.0.3)
arel (2.0.7, 2.0.6)
builder (2.1.2)
bundler (1.0.9)
cgi_multipart_eof_fix (2.5.0)
erubis (2.6.6)
gem_plugin (0.2.3)
i18n (0.5.0)
mail (2.2.15, 2.2.12)
mime-types (1.16)
minitest (1.6.0)
mongrel (1.1.5 x86-mingw32)
mysql2 (0.2.6 x86-mingw32)
polyglot (0.3.1)
rack (1.2.1)
rack-mount (0.6.13)
rack-test (0.5.7, 0.5.6)
rails (3.0.3)
railties (3.0.3)
rake (0.8.7)
rdoc (2.5.8)
rubygems-update (1.4.2)
sqlite3-ruby (1.3.2 x86-mingw32)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.24, 0.3.23)


La mia esigenza attuale sarebbe quella di aggiornare i precedenti due
applicativi web all'ultima versione di Ruby on Rails.
Su Windows 7, seguendo le indicazioni del libro "Agile Web
Development..." ho scaricato l'installer da railsintaller.org ed
installato l'ultima versione di RoR (Ruby 1.9.3-p125
Rails 3.2). Ho a disposizione il database MySQL con il restore di
tabelle e dati aggiornati.

Penso, forse erroneamente, che il porting del progetto in 1.9.2 sia più
facile, mentre quello in 1.8.6 presenti diverse difficoltà, tali da
considerare forse il caso di riscrivere il codice da zero.

Potreste gentilmente indirizzarmi o consigliarmi, tenendo conto della
mia poca esperienza e quindi non dando nulla per scontato, sui passi da
effettuare per poter aggiornare i due progetti in modo da avere un'unica
installazione di RoR da manutenere ed aggiornare?

Ringrazio tutti in anticipo!

Jonathan
Posted by Sante Rotondi (Guest)
on 2012-07-30 15:01
(Received via mailing list)
Ciao Jonathan,

ti faccio una domanda per capire meglio la situazione. Ci sono dei test
scritti per le applicazioni?

Sante
Posted by Jonathan Lecchi (zzjona)
on 2012-07-30 15:11
Ciao Sandro,
si, nelle cartelle test delle due rispettive app sono presenti files per 
test. Decisamente più nutrita la sezione di test dell'app scritta in 
1.8.6
Grazie per la prontissima risposta

Jonathan
Posted by Sante Rotondi (Guest)
on 2012-07-30 15:16
(Received via mailing list)
2012/7/30 Jonathan Lecchi <jonathan@zzjona.it>

> Ciao Sandro,
>

Sante! :P


> si, nelle cartelle test delle due rispettive app sono presenti files per
> test. Decisamente pi nutrita la sezione di test dell'app scritta in
> 1.8.6
>

Per l'app 3.0.3 potresti iniziare seguendo una guida nel passaggio da 
rails
3.0.x a rails 3.1.0 perch c' la variazione della cosiddetta Asset
Pipeline. Sul resto non dovresti avere grosse difficolt. Naturalmente ti
conviene creare un branch git (immagino il tutto usi gi git) di appoggio
in cui fare la prova di upgrade. Fai continuamente girare i test finch 
non
passano tutti, quello dovrebbe essere un punto di arrivo intermedio.

Per l'altra app ti consiglio di cominciare a guardare se la test suite
attuale  effettivamente funzionante o  l perch generata in automatico
(consiglio valido in generale). Poi guarda se le gemme che utilizza sono
tutte supportate (eventualmente in una nuova versione) con ruby 1.9 e 
rails
3.2.7. Molto probabilmente la risposta sar no, ma sperare  gratis :)

Sante
Posted by Jonathan Lecchi (zzjona)
on 2012-07-30 15:32
Sante Rotondi wrote in post #1070680:
> 2012/7/30 Jonathan Lecchi <jonathan@zzjona.it>
>
>> Ciao Sandro,
>>
>
> Sante! :P

Ops! Perdono Sante :p

>
>
>> si, nelle cartelle test delle due rispettive app sono presenti files per
>> test. Decisamente pi nutrita la sezione di test dell'app scritta in
>> 1.8.6
>>
>
> Per l'app 3.0.3 potresti iniziare seguendo una guida nel passaggio da
> rails
> 3.0.x a rails 3.1.0 perch c' la variazione della cosiddetta Asset
> Pipeline. Sul resto non dovresti avere grosse difficolt. Naturalmente ti
> conviene creare un branch git (immagino il tutto usi gi git) di appoggio
> in cui fare la prova di upgrade. Fai continuamente girare i test finch
> non
> passano tutti, quello dovrebbe essere un punto di arrivo intermedio.

Ok, mi puoi consigliare qualche link in particolare?

>
> Per l'altra app ti consiglio di cominciare a guardare se la test suite
> attuale  effettivamente funzionante o  l perch generata in automatico
> (consiglio valido in generale). Poi guarda se le gemme che utilizza sono
> tutte supportate (eventualmente in una nuova versione) con ruby 1.9 e
> rails
> 3.2.7. Molto probabilmente la risposta sar no, ma sperare  gratis :)
>
> Sante

Immaginavo presentasse complicazioni, vista anche la versione di RoR 
utilizzata... in ogni caso seguirò il tuo consiglio!

Grazie ancora Sante : )
Posted by Paolo Montrasio (pmontrasio)
on 2012-07-30 15:40
Non dovresti avere troppi problemi a passare da 1.8.6 a 1.9.3. Non
preoccuparti, non dovrai riscrivere il codice da zero. Nel passaggio da
1.9.2 a 1.9.3 probabilmente non dovrai fare nulla e forse non dovrai far
nulla neppure nel passaggio dalla 1.8, ma buon per te che ti hanno
lasciato un progetto con i test. A me non capita mai...

Dove invece potrai avere dei problemi sarà con l'aggiornamento delle
gemme a versioni più moderne, perché in alcuni casi si è obbligati ad
usare versioni vecchie in quanto quelle nuove non sono compatibili con
la 1.8.

E non per essere snob, ma se il tuo server non è Windows programmando
con Ruby e con Rails conviene lavorare con OS derivati da Unix, Linux o
Mac. Non solo sono gli OS di riferimento per gli sviluppatori di Rails
ma di solito i server sono Linux e ho visto sviluppatori penare su
Windows cercando di tenersi compatibili. Non è tanto l'interprete ad
essere problematico quanto tutto quello che ci sta attorno, soprattutto
se hai script o servizi accessori in background. Tante volte ci sono
delle dipendenze dall'OS. Una virtual machine risolve il problema e
prima di andare in produzione ti serve comunque un server su cui provare
che le installazioni funzionino.

Dovresti trovare molto utile RVM o il suo equivalente Windows, PIK
http://watirmelon.com/2011/01/17/easily-manage-you...

In pratica ti permettono di avere più interpreti sulla stessa macchina e
di passare dall'uno all'altro molto rapidamente. Sono l'ideale per te
che dovrai lavorare con due versioni. Dovrai anche tener separate le
gemme e a questo pensano bundler e/o i gemset di rvm. Pik non li ha ma
ci sono dei workaround https://github.com/vertiginous/pik/issues/16

Paolo
Posted by Jonathan Lecchi (zzjona)
on 2012-07-30 16:00
Paolo Montrasio wrote in post #1070683:
> Non dovresti avere troppi problemi a passare da 1.8.6 a 1.9.3. Non
> preoccuparti, non dovrai riscrivere il codice da zero. Nel passaggio da
> 1.9.2 a 1.9.3 probabilmente non dovrai fare nulla e forse non dovrai far
> nulla neppure nel passaggio dalla 1.8, ma buon per te che ti hanno
> lasciato un progetto con i test. A me non capita mai...
>
> Dove invece potrai avere dei problemi sarà con l'aggiornamento delle
> gemme a versioni più moderne, perché in alcuni casi si è obbligati ad
> usare versioni vecchie in quanto quelle nuove non sono compatibili con
> la 1.8.
>
> E non per essere snob, ma se il tuo server non è Windows programmando
> con Ruby e con Rails conviene lavorare con OS derivati da Unix, Linux o
> Mac. Non solo sono gli OS di riferimento per gli sviluppatori di Rails
> ma di solito i server sono Linux e ho visto sviluppatori penare su
> Windows cercando di tenersi compatibili. Non è tanto l'interprete ad
> essere problematico quanto tutto quello che ci sta attorno, soprattutto
> se hai script o servizi accessori in background. Tante volte ci sono
> delle dipendenze dall'OS. Una virtual machine risolve il problema e
> prima di andare in produzione ti serve comunque un server su cui provare
> che le installazioni funzionino.
>
> Dovresti trovare molto utile RVM o il suo equivalente Windows, PIK
>
http://watirmelon.com/2011/01/17/easily-manage-you...
>
> In pratica ti permettono di avere più interpreti sulla stessa macchina e
> di passare dall'uno all'altro molto rapidamente. Sono l'ideale per te
> che dovrai lavorare con due versioni. Dovrai anche tener separate le
> gemme e a questo pensano bundler e/o i gemset di rvm. Pik non li ha ma
> ci sono dei workaround https://github.com/vertiginous/pik/issues/16
>
> Paolo

Ciao Paolo,
ringrazio anche te per le preziose indicazioni di cui farò tesoro.
Purtroppo il server finale è effettivamente Windows 7, per cui ho dovuto
virtualizzarne un'installazione sul mio portatile e creare una 
situazione di sviluppo/test ex novo. RVM l'ho provato, sempre sul mio 
portatile, ed è
una bomba! PIK non credo di poterlo installare se non sulla mia macchina
di sviluppo... (purtroppo)

Grazie ancora :)

Jonathan
Posted by Jonathan Lecchi (zzjona)
on 2012-08-22 13:12
A distanza di qualche tempo (complici anche le ferie sopraggiunte) 
volevo informarvi che sono riuscito ad effettuare il porting delle due 
app con successo e senza nemmeno tanti problemi come invece avevo temuto 
in un primo momento :)

Ringrazio ancora Sante e Paolo per il prezioso aiuto e per 
l'interessamento!

Avrei ancora diverse domande da fare, ma aprirò relativo post

Buona giornata a tutti

Jonathan
Posted by Riccardo Tacconi (rtacconi)
on 2012-08-23 09:30
Server Windows 7? Ma e` un SO per desktop, cos'e` una app che viene
utilizzata da pochi utenti? Se hai problemi con Windows puoi anche
Utilizzare JRuby


>
> Ciao Paolo,
> ringrazio anche te per le preziose indicazioni di cui farò tesoro.
> Purtroppo il server finale è effettivamente Windows 7, per cui ho dovuto
> virtualizzarne un'installazione sul mio portatile e creare una
> situazione di sviluppo/test ex novo. RVM l'ho provato, sempre sul mio
> portatile, ed è
> una bomba! PIK non credo di poterlo installare se non sulla mia macchina
> di sviluppo... (purtroppo)
>
> Grazie ancora :)
>
> Jonathan
Posted by francesco agati (francescoagati)
on 2012-08-23 21:04
Ciao,
per curiosità l'applicazione rails 2.3.4 su che versione di ruby l'hai 
portata? La 1.9.2 o la 1.9.3.

Ho visto che le versioni di rails 2.3 hanno dei problemi con il require 
della 1.9.3, perchè è cambiato la modalità di caricamento dei file.
Posted by Marco Mastrodonato (marcomd)
on 2012-08-24 10:04
Penso abbia fatto il porting anche di rails alla 3.2

@Jonathan
Per quanto riguarda la 1.8.6 probabilmente sei stato fortunato o
l'applicazione era scritta in modalità lungimirante, quella versione di
ruby ha un differente scope delle variabili (ora non ricordo bene, non
esistevano solo nello scope dove erano create ma persistevano) e
potevano essere beghe anche solo passare alla 1.8.7

Con la 1.8.7 siamo agli sgoccioli, fin'ora ha funzionato tutto ma ho
trovato una gemma che non lo supportava più, teoricamente sarebbe
opportuno aspettare rails 4 prima di abbandonarlo.

Ruby 1.9.3 su windows, fino pochi mesi fa, non era rose e fiori e c'era
sempre qualche gemma che dava noie tipo linecache, gemma indispensabile
per il debug con gli ide.

Come app server thin od il più recente puma che ho trovato meno
prestazionale ma più stabile

Per utilizzare differenti versioni di ruby in produzione io me lo
gestisco a mano con le variabili di amb.iente e non mi trovo male, basta
poi usarla prima degli script:
set path=%RUBY_193%;%path%

Avevo creato una guida tempo fa, appena riesco ad aggiornarla la metterò
a disposizione
Posted by Jonathan Lecchi (zzjona)
on 2012-08-24 10:24
francesco agati wrote in post #1073018:
> Ciao,
> per curiosità l'applicazione rails 2.3.4 su che versione di ruby l'hai
> portata? La 1.9.2 o la 1.9.3.
>
> Ho visto che le versioni di rails 2.3 hanno dei problemi con il require
> della 1.9.3, perchè è cambiato la modalità di caricamento dei file.

Ciao Francesco, Marco mi ha preceduto nella risposta!
Ho fatto il porting anche alla versione 3.2 di Rails

Su Windows anche io come Marco ho utilizzato il set path per il lancio 
di eventuali script

@Riccardo
Si server con Windows 7 Professional.
La scelta del SO è stata una decisione aziendale a cui mi sono dovuto 
adeguare, mentre le app in questione costituiscono la intranet 
aziendale: il carico di lavoro/chiamate è piuttosto ridotto.

Grazie ancora a tutti e rimango in attesa della guida di Marco,
qualsiasi info mi è molto d'aiuto

Buona giornata

Jonathan
Posted by Marco Mastrodonato (marcomd)
on 2012-08-24 11:07
Ti posso inviare quella che ho: è un documento pdf che ho scritto ad 
inizio 2011 e descrive come installare ruby 1.9.2, configurarlo per 
un'architettura a 3 livelli, rails 3 su un server windows 2008 e 
sqlserver. L'avevo fatto per documentare il lavoro di installazione 
nella nostra intranet ma in maniera generica per cui credo possa 
seguirla chiunque. E' un pò che devo aggiornarla ma purtroppo non trovo 
mai il tempo.
Posted by Marco Mastrodonato (marcomd)
on 2012-08-24 11:27
Ho aggiornato il link per poterla scaricare e la trovi sul mio blog, 
cerca sqlserver. Naturalmente sono ben accetti consigli.
http://marcomastrodonato.blogspot.it
Posted by Jonathan Lecchi (zzjona)
on 2012-08-24 12:39
Grazie Marco per la guida,
l'ho già scaricata e la leggerò con attenzione

Jonathan
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.