Prime impressioni su zooppa

Posted by Dibi Store Tue, 30 Oct 2007 20:38:00 GMT

Da qualche giorno, ho iniziato ad offrire consulenza per zooppa come programmatore back end in ruby on rails.

Le prime impressioni sono ottime, il team è preparato e si lavora in un buon clima, inoltre vedo buone probabilità di crescita e di apprendimento (che è la cosa più importante per me).

Se non ne avete mai sentito parlare, zooppa vi permette di partecipare a dei contest, sponsorizzati da aziende famose, farvi votare dagli altri utenti, e vincere soldi veri. Certo non è facile, ci vuole molta creatività, ma l'impegno viene premiato, e la community è molto seguita.

Spero di scrivervi ancora riguardo a questa esperienza, magari con qualche info in più per chi vuole partecipare!

Posted in  | Tags  | no comments

Settare un semplice progetto con Capistrano

Posted by Dibi Store Fri, 26 Oct 2007 08:02:00 GMT

Capistrano è uno dei migliori (se non il migliore) strumenti per il deployment delle vostre applicazioni web (non solo rails). In questo articolo descriverò le procedure base per attivare un semplice progetto usando Capistrano

E' essenziale seguire le semplice istruzioni per l'installazione nel sito ufficiale in modo da poter essere subito operativi.

Read more...

Posted in  | Tags ,  | no comments

Helper: button_to_remote

Posted by Dibi Store Fri, 19 Oct 2007 11:58:00 GMT

Siccome può tornare utile a molti, ho creato questo piccolo helper, in sostanza è un alias di button_to, solo che questo effettua una richiesta in remoto tramite AJAX.

Per usarlo è necessario solamente inserire il codice che trovate alla fine di questo articolo nel file application_helper.rb che si trova in app/helpers.
Usarlo è semplicissimo, infatti funziona esattamente come button_to, nell'esempio seguente simulo una richiesta ajax per eliminare un utente (utilizzando il formato rspec).

Read more...

Posted in  | Tags ,  | no comments

DRY: come NON ripetersi con il file database.yml

Posted by Dibi Store Thu, 18 Oct 2007 07:43:00 GMT

Alla base di rails, come tutti sappiamo, c'è la filosofia DRY. Tuttavia mi meraviglio che non venga applicata di default ad esempio al file database.yml, quello che contiene tutte le info di connessione al database. Ecco come potete sintetizzarlo:

login: &login
  adapter: mysql
  encoding: utf8
  username: root
  password:
  host: localhost


development:
  <<: *login
  database: ecommerce_development
  
test:
  <<: *login
  database: ecommerce_test
  
production:
  <<: *login
  database: ecommerce_production

Gia meglio no?

Posted in  | Tags  | no comments

Ruby: salvare un oggetto senza validazione

Posted by Dibi Store Mon, 15 Oct 2007 06:01:00 GMT

Premetto che questa tecnica funziona sia con ruby, sia con rails.

Talvolta capita che abbiamo bisogno di salvare un oggetto senza passare le validazioni. n questo caso ci basterà passare false come parametro di save, e il gioco è fatto!

@user.save(false)

Posted in  | Tags ,  | no comments

Capire l'ordine di caricamento dei metodi nei moduli in Ruby

Posted by Dibi Store Fri, 05 Oct 2007 09:59:00 GMT

Per evitare errori di difficile individuazione, è bene capire come avvengono i principali meccanismi di caricamento. Oggi illustrerò in che ordine avviene il caricamento dei metodi nei moduli in Ruby, in particolare quando vengono definiti più di una volta.

Come primo esempio un semplice listato, per capire soprattutto di cosa sto parlando:

module Modulo
  def test
    puts "Primo metodo del modulo Modulo"
  end

  def test
    puts "Secondo metodo del modulo Modulo"
  end  
end

class Classe
  include Modulo
  a = Classe.new
  a.test
end

Cosa vi aspettate di ricevere come output? Bhe ovviamente possiamo solo provarlo, vi anticipo però che i moduli vengono caricati nell'ordine First in - last Out, ossia il primo ad essere caricato è l'ultimo ad essere eseguito. In sostanza avremo un output come il seguente:

  Secondo metodo del modulo Modulo

In pratica questo è vero anche se i metodi si trovano in moduli diversi:

module Modulo
  def test
    puts "Primo metodo del modulo Modulo"
  end

  def test
    puts "Secondo metodo del modulo Modulo"
  end  
end

module Modulo2
  def test
    puts "Primo metodo del modulo Modulo2"
  end

  def test
    puts "Secondo metodo del modulo Modulo2"
  end  
end

class Classe
  include Modulo
  include Modulo2
  a = Classe.new
  a.test
end

Che in questo caso ritorna l'ultima stringa. Consiglio se non è chiaro di effettuare numerosi esempi, ma non abusate di questa tecnica, perchè eventuali errori saranno di difficile individuazione, oltre che a rendere il codice poco leggibile

Posted in  | no comments

Ricaricare completamente una pagina con javascript

Posted by Dibi Store Fri, 05 Oct 2007 08:34:00 GMT

Talvolta per necessità abbiamo bisogno di ricaricare completamente una pagina, e magari ricaricando completamente la cache... La soluzione ovviamente c'è ed è semplicissima, ecco il codice:

window.location.reload(true);

Semplice no?

Posted in  | no comments

Sitepoint vi regala un intero libro su Ruby On Rails

Posted by Dibi Store Tue, 02 Oct 2007 16:36:00 GMT

Si è proprio vero, Sitepoint vi regala per un tempo limitato (60 giorni) la versione in pdf del suo libro di Ruby on Rails. qui trovate la pagina di download.

Sembra strano, ma secondo me lo fanno perchè con la nuova versione di rails 2.0, il libro diventerà obsoleto, e probabilmente lo rimpiazzeranno con un altro! Comunque se gia non lo avevate, scaricatelo perchè è fatto molto bene!

Posted in  | no comments