Displaying articles with tag rails
Posted by reggie, Wed Jun 11 08:00:00 UTC 2008
Prima di iniziare
Quando mi sono affacciato a Rails per la prima volta, circa 3 anni fa, seppure il framework promettesse molto bene, era piuttosto semplice e si poteva leggere la documentazione delle API in qualche giorno senza nessun problema. In questi anni Rails è migliorato molto, e le funzionalità offerte hanno continuato ad evolversi giorno dopo giorno, fino alla versione attuale, la 2.1.
Se da una porte possiamo dire che Rails ora è adatto non solo per piccoli e medi progetti (non è più quel giocattolo che alcuni volevano paventare), devo anche ammettere che il suo utilizzo non risulta essere più così immediato come lo era il giorno che l’ho scoperto. Con questo non voglio spaventare i nuovi arrivati, anzi, preparatevi a programmare divertendovi, ma voglio semplicemente far capire che avere delle buone risorce che ci guidino è diventata una necessità.
Sono appena arrivato a Rails, è possibile avere materiale in italiano.
La risposta breve è non prendete un manuale in italiano su Rails, semplicemente eprchè quelli attualmente presenti non sono aggiornati.
La risposta lunga è che seppure la cosa non mi esalti, attualmente le risorse in Italiano da cui partire non sono molte. Per quanto riguarda il web, c’è un ottimo lavoro fatto da Gabriele Renzi su HTML.it, ma purtroppo non risulta essere aggiornato alle ultime versioni di Rails. Lo consiglio come un’utile introduzione, ma non come un riferimento. Altre documentazioni complete sul web non ne conosco (se ci sono mettetele pure nei commenti), ma è bene ricordare che in molti blog si possono trovare ottimi articoli.
A livello cartaceo l’unico lavoro in Italiano dedicato solamente a Rails risulta essere Sviluppare Applicazioni web con Rails, la traduzione del primo libro che sia mai uscito per Rails. Purtroppo, nonostante sia stato a mio avviso un ottimo libro (sottolineo sia stato), ora la sua utilità non è molta. Il testo ci può spiegare molte cose, come la filosofia che sta alla base di Rails, un introduzione ad ActiveRecord e ad Ajax, e altro ancora, ma ha almeno due pecche. La prima sta nel fatto che utilizza funzionalità deprecate (ad esempio lo scaffold generator, ha adesso una sintassi leggermente diversa), mentre la seconda, più importante, è che leggendo quel libro potremmo usare non più del 50% delle funzionalità che Rails oggi ci offre.
Giusto per correttezza, e per dare merito ai lavori scritti o tradotti in Italiano, voglio citare altri due libri, che seppure trattino principalmente Ruby, introducono in alcune sezioni Rails. Per i principianti non sono molto consigliati, ma sono sicuramente una buona lettura per chi vorrà approfondire. Il primo libro Ruby per Applicazioni Web di Marco Ceresa è un puro made in Italy ed è caldamente consigliato, mentre il secondo libro Ruby Cookbook con Elementi di Rails è una traduzione del libro pubblicato dalla O’Really.
Tutto questo per dirvi che se volete restare aggiornati, dovete leggere in inglese. Nessun ma e nessun se. Lo so che per molti questo risulta essere un bel problema (ci sono pure io nella lista), ma vista la velocità con cui i cambiamenti avvengono in Rails, è difficle poter acquistare una traduzione in italiano ed aspettarsi che dopo un paio d’anni sia ancora valida. Dobbiamo metterci in testa che anche la documentazione che abbiamo sottomano deve andare a pari passo con lo sviluppo del framework, o non potremo mai sfruttarlo al massimo!
Mi hai convinto, leggerò testi in inglese. Ma non ho ancora capito da dove iniziare?
Per chiunque voglia una piccola introduzione a Rails, un buon articolo introduttivo è più che sufficiente. Accompagnamolo poi a qualche esempio che ci dimostri quello che possiamo fare, e non torneremo più indietro. Nel proseguo andremo quindi quindi ad elencare due risorse che il web ci offre gratuitamente, e che non possiamo perderci.
Ho sentito parlare di Rails, e vorrei capire che cos’è.
Come introduzione a Rails per chi ci si avvicina la prima volta, la piccola serie creata su A List Apart è un must. Il primo articolo della serie è un ottima introduzione in quanto si mette nei panni di una persona che si avvicina a Rails per la prima volta, magari arrivando da altre tecnologie come PHP o Java, e che è curiosa di capire come mai si parli così tanto di questo framework. Vengono spiegati i principi che ne stanno alla base, i falsi miti, e le linee guida per una installazione base, La serie prosegue poi con il secondo articolo dove l’autore cerca di convincere il lettore elencando alcune delle applicazioni più famose basate su Rails, i vantaggi che si hanno usandolo, e scrivendo qualche riga di codice di esempio.
Interessante, ho voglia di vedere altro in pratica.
Se siete stati stuzzicati da questi due articoli, adesso quello che vorrete fare è sicuramente vedere del codice in azione, vedere che cosa sia possibile fare con Rails, per convincerci sempre più che Rails sarà la scelta giusta per la vostra prossima applicazione. Se è così il sito perfetto è RailsCasts, creato da Ryan Bates, dove potete trovare ogni settimana screencast aggiornati. Senza attendere più di 5 minuti vi troverete a vedere esempi reali che fanno vedere la semplicità nell’uso di Rails, la sua velocità, e la sua bellezza. Non è un caso che per l’annuncio di Rails 2.1 siano stati scelti alcuni screencast per descrivere le nuove funzionalità introdotte.
Un’altra fonte gratuita di screencast meno conosciuta, ma degna di nota, è Ruby Plus, la quale sforna video ad un ritmo impressionante (ben 80 dallo scorso dicembre). A differenza di RailsCast, questo sito tratta argomenti più avanzati, e meno Rails related, ma è comunque da tenere in considerazione per il grande lavoro che ci sta dietro.
Wow… Mi avete convinto. Adesso me lo voglio imparare seriamente.
Se ritenete valido spendere altro tempo per approffondire Rails, è arrivato il momento di prendere un bel libro, in inglese. Fino a qualche settimana fa l’unico libro che mi sarei sentito di consigliare per imparare Rails era The Rails Way di Obie Fernandez. Purtoppo non è quella che si definisce una lettura leggera (sono poco più di 900 pagine), ma è un ottimo libro, è aggiornato a Rails 2.0, e descrive come sia possibile usare lo stile REST nelle nostre applicazioni. Le revisioni che sono state scritte nel web sono tutte ottime e posso confermarle di persona. L’unica pecca è che, per chi si avvicina a Rails per la prima volta, il testo potrebbe essere un pochino difficile da digerirsi, ma assicuro che dopo averlo letto, avrete una piena padronanza del framework.
Fortunatamente ora abbiamo anche un’altra scelta. Infatti un paio di settimane fa i Pragmatic Programmers hanno lanciato in beta la terza edizione di Agile Web Development with rails, il primo libro su Rails che sia mai stato pubblicato. Il suo obiettivo è quello di coprire tutte le nuove features di Rails fino alla versione attuale, mantenendo la lettura semplice, caratterisìtica fondamentale del testo. L’unico problema è che la pubblicazione della versione cartacea è prevista per l’autunno, ma per chi lo volesse (e so che nessuno avrà problemi a farlo ;-) ) si può già prendere il PDF, ed ricevere aggiornamenti man mano che aggiunte o correzzioni saranno effettuate.
Allontanandoci dalla stampa convenzionale, non possiamo non inserire PeepCode che nell’ultimo anno ha prodotto materiale di altissima qualità per tutta la comunità Rails. In questo sito potete trovare i migliori screencast su Rails (e probabilmente del web) della durata media di circa un’ora, al prezzo di 9$ (meno di 6 euro). Questi screencast, oltre a fornire un’ottima introduzione, e a farvi vedere i risultati che si possiìono ottenere con un riscontro visivo, vi permetteranno di andare in profondità in molti temi come REST, RSpec e molto altro. Peepcode non fa solamente video, anche se credo sia conosciuta principalmente per questi. Ultimamente infatti possiamo trovare degli ottimi PDF, che affrontano argomenti caldi come sicurezza e Plugins. PeepCode è la prima scelta nel momento in cui si voglia avere materiale super aggiornato.
Non trattando materiale cartaceo PeepCode ha una dinamicità mai vista prima. Ogni mese si trova qualcosa di nuovo, e quanto trattato è sempre di grande attualità ed interesse. PeepCode ha poi tradotto il Rails 2.0 PDF in Italiano. Nonostante l’iniziativa sia da lodare e ci fa capire quanto siano in gamba i ragazzi che ci stanno dietro, la guida è piuttosto avanzata, poichè tratta le novità presenti in Rails 2.0. Non è quindi una guida che spieghi passo passo come usare Rails, ma piuttosto un’elenco di tips. Ad ogni modo un’occhiata è d’obbligo.
Sempre restando sugli screencast, i Pragmatic Programmers hanno appena lanciato un nuovo servizio che promette essere molto interessante. Nonostante il materiale attualmente presente non sia molto, la qualità sembra esserci e la fama degli autori non può che far sperare in bene. Non resta quindi che vedere nei prossimi mesi come il progetto evolverà.
Un piccolo Riepilogo finale.
Per chi non avesse il tempo di leggersi tutto l’articolo ecco qui un veloce riepilogo.
- Introduzione e screencast su internet (for free)
- La prima parte e la seconda parte per un introduzione semplice e diretta di A List Apart.
- RailsCasts e RubyPlus per dei video semplici e diretti per apprezzare al massimo le potenzialità di Rails
- Testi consigliati
- Agile web Development with Rails aggiornato alla terza edizione (al momento è in beta, qundi potrebbe essere non completo)
- The Rails Way per chi vuole un libro completo ed aggiornato
- PeepCode per screencasts di livello professionale e per PDF sempre aggiornati
Ora non ci resta che prenderci un pochino di tempo e leggere il materiale che abbiamo scelto. Quello che posso dirvi è che non sarà tempo perso e che i risultati arriveranno presto. La comunità è sempre più ricca, la mailing list è sempre più attiva, e stanno nascendo nuove società che basano su Ruby e su Rails il proprio business. Non ci resta che partecipare alla festa.
Licenza
Questo articolo è coperto dalla licenza Creative Commons Attribution-NonCommercial-NoDerivs 2.5 Italy.
Posted by ivan, Thu Aug 09 11:00:00 UTC 2007
- Webrick
- Scaffold
- find_by_…
Webrick e’ stato tremendamente utile in fase di sviluppo. Non abbiamo dovuto installare niente che non fosse gia’ nel framework. Niente Apache, niente Tomcat, niente JDBC. Niente di niente. Al mattino, quando riprendevano i lavori bastava uno
script/server |
e il nostro nascente progetto era raggiungibile ad http://localhost:3000.
Scaffold ci ha fornito una comodissima interfaccia al DB. E’ risultato comodo avere gia’ i form per il popolamento del database. Al di la’ di non dover interagire direttamente con Postgresql o utilizzare un file esterno per le INSERT, tutto il materiale che scaffold ha creato in automatico: viste, controller, metodi di CRUD, e’ stato fondamentale per la comprensione della sintassi base. Dopo un paio di tutorial e dopo lo studio del codice che avevamo, siamo andati avanti semplicemente con l’API.
Piu’ passavano le ore piu’ programmavamo spediti. Le basi accademiche di programmazione ad oggetti hanno contribuito a capire l’approccio da seguire. Poi Ruby ha pensato a sollevarci da inutili fardelli. E’ stata una gioia dimenticare parentesi e “punti e virgola”. Quello che hai scritto non e’ ambiguo? Ottimo, puoi evitarti parentesi e punteggiatura varia. Il disporre di una sintassi cosi’ snella, ma cosi’ potente ha consentito di evitare ingombranti ambienti di sviluppo. Non c’e’ stato il bisgno di usare Eclipse o simili. E’ bastato emacs debitamente corredato di plugin per Ruby.
L’aver progettato il DB secondo la piu’ efficiente prassi ci ha consentito di sfuttare la potenza di Ruby. Qualsiasi query veniva effettuata con un semplice find corredato dall’ID del record da cercare. Abbiamo anche avuto modo di sfruttare find_by_sql, un potente strumento che e’, pero’, visto di cattivo occhio dai programmatori piu’ capaci. Noi eravamo sostanzialmente novizi e pressati della data d’esame sempre piu’ vicina. Eseguire query innestate e vedersi restituire un semplice @films con tutti i film che corrispondevano ai nostri criteri di ricerca e’ stato particolarmente gratificante. La semplicita’ con cui poi sfogliavamo @films nelle viste era incredibile. Per avere la lista dei titoli dei film bastava scrivere nella vista:
1 2 3 |
<% for film in @films %> <%=h film.name %> <% end %> |
Seguire le convenzioni di Ruby e’ stato comodo e poco impegnativo. Per evitarci ulteriori e inutili configurazioni, abbiamo scelto di usare la lingua inglese per attributi e tabelle del DB. Ruby ha gestito la cosa con la sua solita semplicita’. L’oggetto cinema aveva la sua tabella cinemas nel database. Allo stesso modo film, room, address. Persino person aveva la sua tabella people. Questa ci e’ parsa una vera chicca :-)
Morale della favola, il nostro sistema Busca la pelicula, clone di Trovacinema.it, e’ venuto su in una settimana. Abbiamo sviluppato le operazioni richieste dal progetto piu’ una marea di operazioni implicite che venivano fuori man mano che si implementava il tutto. Era cosi’ semplice implementare una funzione in piu’ che ci sembrava un peccato non approfittarne. Con qualche riga di codice riuscivamo a dare all’utente finale la possibilita’ di una operazione magari insolita e non formalmente richiesta, ma pur sempre una funzione in piu’. Alla fine e’ diventato un vero e proprio divertimento. Siamo arrivati al punto di integrare un tema di Mephisto per rendere il progetto simile per grafica e layout al blog di Ivan. Francesca si e’ occupata anche di creare una nuova immagine header da piazzare in homepage.
In seduta d’esame lo stupore dei professori e’ stato piuttosto gratificante. E’ stato sorprendente per loro sapere che il tutto e’ stato progettato e implementato in dieci giorni, partendo sostanzialmente da zero. Hanno chiesto in che modo ci fossimo interfacciati a Postgresql e abbiamo mostrato loro i venti secondi di configurazione necessari. Abbiamo mostrato la leggerezza e l’immediatezza della sintassi e le varie convenzioni. Abbiamo mostrato come tutte le operazioni e le query sql fossero recuperabili semplicemente accedendo ad un file:
tail -f log/development.log |
e’ di una comodita’ disarmante, specialmente ai fini didattici. Fortunatamente tutto questo pro RoR non ha offeso i professori. La nostra iniziale paura era la consolidata ossessione per il mondo Java che regna sovrana ad Unisannio. Siamo invece rimasti sorpresi nel vedere il sincero interesse dei due docenti, contenti soprattuto della boccata d’aria fresca portata in facolta’.
L’esame si e’ concluso nel migliore dei modi. Una bella “lode” e tutti vissero felici e contenti.
Francesca, Ivan e Luca
BIOs
Francesca De Rosa e’ laurenda in Ingegneria Informatica all’Universita’ degli Studi del Sannio. Ha avuto esperienza con Java e RoR. Attualmente utilizzatrice di Kubuntu. Contattabile su unisannio@places.sameplace.cc
Luca Fusco, in arte “el Dobre”, e’ studente di Ingegneria Informatica ad Unisannio. Appassionato di tecnologia e gioco d’azzardo, passa il suo tempo a coniugare le due cose, fin’ora con scarsi successi. Membro “negativo” del gruppo Pierogi, supporta lo sviluppo e la programmazione in ambiente Windows perché, a suo dire: “qualcuno lo deve pur fare”. Lo trovate in giro per i forum di poker o su MSN: funboy82 [at] inwind [dot] it
Ivan Morgillo e’ studente di Ingegneria Informatica ad Unisannio. Appassionato di tecnologia: geek e nerd quanto basta. Attualmente pseudo programmatore Java, RoR e JS. Membro del Sanniolug e Kubuntu user, tester e scriptlet developer per SamePlace. Lo beccate su unisannio@places.sameplace.cc . Ha anche un blog
Posted by michele, Wed Jan 10 01:10:00 UTC 2007
Capistrano è un tool per lanciare comandi parallelamente su più macchine remote; pensato per semplificare le pratiche di deploy delle vostre applicazioni è flessibile abbastanza da adattarsi praticamente a qualsiasi ambiente di sviluppo/produzione.
La nuova versione 1.3.1 introduce alcune importanti novità rispetto alla già rivoluzionaria versione 1.2 e da un chiaro assaggio della direzione in cui si stanno muovendo Jamis & 37 soci. Vediamo nel dettaglio come cambierà il modo di usarlo:
* Le credenziali d’accesso ai server possono essere specificate contestualmente alla definizione dei servers, ma cosa più importante è stata eliminata la limitazione che imponeva di avere lo stesso username su tutte le machine; ora è anche possibile connettersi su porte non standard:1 2 |
role :web, "webuser@web1.seesaw.it" role :db, "db.seesaw.it:1234" |
- L’invocazione di sudo() può essere fatta specificando l’utente con il quale eseguire il prorogramma, evitando mirabolanti giochi di permessi e gruppi all’amministratore di sistema
sudo "reboot", :as => "evil" |
- Viene aggiornata la data d’accesso alle le directory di immagini, fogli di stile e scripts varii per fare in modo che il sistema di timestampinig di rails funzioni correttamente
- ha fatto la sua comparsa il task update che aggiorna il codice dell’applicazione e la rende la corrente (il tutto in una transazione per evitare disservizi)
- I task di setup e checkout ora verificano che le directory abbiano permessi di scrittura ai gruppi, risparmiandoci la realizzazione di noiosi after-task
- L’integrazione con rake è deprecata in favore di cap (invocare rake è tuttavia transitoriamente possibile se vi siete realizzati dei tasks da voi)
- E’ possibile usare un file di properties .caprc nella directory dell’utente per salvare settaggi in pieno stile unix
E per finire con il botto (avanzato da san silvestro) qui potete trovare un breve screencast di che vi illustra come realizzare una macchina con un full-stack rails, indovinate un po’, solo usando capistrano ;-)
Immagini by scr47chy
About the Author: Michele si occupa da anni di sviluppo software in Ruby e Java; irrimediabilmente malato di network security frequenta tutti gli eventi del settore a tenere curiosi seminari. E’ inoltre fondatore di SeeSaw srl. Se lo vedete online nelle primissime ore del mattino è di sicuro davanti ad un terminale.