lunedì 8 marzo 2010

Utility - Q-Dir

Spesso capita di avere a che fare con spostamenti, comparazioni, visualizzazione di files distribuiti su diverse directory ed e' cosi' che si inizia con qualche esplora risorse, aperto e si finisce con 10 e piu' finestre e via di interminabili ALT+Tab alla ricerca della finestra giusta.
Un utile strumento che ovviamente non risolve tutti i problemi, ma senza dubbio agevola l'utilizzo e' "Q-Dir" :

Tramite la visualizzazione contemporanea di piu' folder (fino a 4) e' possibile in modo agevole gestire i propri files.


domenica 7 marzo 2010

Ruby on Rails - Ambiente di sviluppo

Dopo il primo progetto costruito senza alcun ambiente di sviluppo, ma semplicemente da riga di comando e editor (cosa consigliabile per evitare di prendere per scontato in fase di apprendimento, concetti che l'uso di un RAD ti maschera), ho deciso di cercare un RAD che potesse un po' velocizzare lo sviluppo.
Abituato agli IDE per Java che, anche se molto potenti, sono sempre piu' invasivi nel progetto e spesso legati all'ambiente di runtime (vedi cartella nbproject di Netbeans, .settings di WebSphere, i vari xml di configurazione di Jdev per il deploy su OC4J), ho cercato per Ruby uno che potesse piu' possibile essere qualcosa di piu' di un semplice editor ad evitare il trauma nel caso di migrazione da RAD a RAD, dopo un po' di ricerche tra i prodotti, la mia scelta e' caduta su RadRails :

http://www.aptana.com/

anche se cerca di installare un po' di Gems utili al debug e altro, disabilitandole l'ambiente rimane pulito, sempre valido e funzionante da riga di comando o da altro RAD.
La piattaforma e' Eclipse e un solo file extra ".project" e' presente, sono presenti inoltre, in perfetto stile Eclipse, plugin di ulteriori funzionalita' quali l'aggancio a server di versioning, stile Subversion etc...

Errori Subdoli - 1 - warning: multiple values for a block parameter (0 for 1)

Mi sono imbattuto in questo errore o meglio warning visto che non mi creava problemi nell'applicazione :
  • C:/Sviluppo/Ruby/WorkSpace_Ruby/geotaggy/app/views/users/passwordforgotten.html.erb:3: warning: multiple values for a block parameter (0 for 1)
    from C:/Sviluppo/Ruby/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/helpers/capture_helper.rb:36
durante lo sviluppo non si presentava alcun problema, ma non appena fatto un functional test, sulla console si presentava (pur funzionando) questo messaggio.

Il problema era semplicemente dovuto alla presenza del parametro del blocco f sul form_tag sulla view, probabilmente dovuto alla trasformazione da un form_for.
  • form_tag(:controller=>"users" , :action=>"passwordforgotten") do |f|
Siccome si tratta di un form_tag non e' gestito il parametro quindi la sintassi corretta e'
  • form_tag(:controller=>"users" , :action=>"passwordforgotten") do

Della Serie "Errori Subdoli"

La serie riguarda tutti gli errori che per la loro natura "subdola" fanno perdere un sacco di tempo inutilmente.
Quante volte e' capitato di perdere 2 ore e poi accorgersi che il problema era una virgolina fuori posto...

martedì 2 marzo 2010

Rails Api

ci sono diversi siti dove e' possbile trovare le api di ruby e di rails, ma uno dei migliori per la ricerca e per i contenuti e' :

http://apidock.com

Rails I18N Traduzione Modello

Per tradurre il nome del modello e dei suoi attributi, inserire nel file locale ??.yml (es. it.yml), le traduzioni nei seguenti path :

Traduzione del modello :
  • "lingua".activerecord.models."modello"
esempio :
  • it.activerecord.models.user

Traduzione degli attributi :
  • "lingua".activerecord.attributes."modello"."attributo"
esempio :
  • it.activerecord.attributes.user.email

Dove :
"lingua" -> il prefisso della lingua (es. : it)
"modello" -> il nome del modello
"attributo" -> nome dell'attributo

Rails I18N Gestione Errori

Per gestire i messaggi di errore in lingua occorre aggiungere nel file ??.yml (es. it.yml), la traduzione nelle seguenti modalita' :
Traduzione codice di errore per ogni Attributo :
inserire la traduzione in questo path :
  • "lingua".activerecord.errors.models."modello".attributes."attributo"."tipodierrore"
esempio :
  • it.activerecord.errors.models.user.attributes.email.invalid
Traduzione codice di errore a livello generale :
  • "lingua".activerecord.errors.messages."tipodierrore"
esempio :
  • it.activerecord.errors.messages.invalid
Dove :
  • "lingua" -> Il prefisso della lingua (es.: it)
  • "modello" -> il nome della classe del modello.
  • "attributo" -> il nome dell'attributo.
  • "tipodierrore" -> codice di errore secondo lo standard rails (es. blank, too_short etc...)
Per la lista dei tipi di errore e per gli yml utilizzabili per ogni lingua e' possibile visitare il sito su GitHub :