Merb e Rails si uniscono in Rails 3.0

Queste sono di quelle notizie che a noi programmatori ci rendo più felici e contenti, soprattutto a Natale.
Infatti da poche ore ed in contemporanea i rispettivi blog di rails e di merb hanno riportato una notizia importantissima:
Rails e Merb si uniscono in Rails 3.0.
Ma questo cosa comporterà? Grandi e ottimi cambiamenti già discussi da parecchio tempo dal sottoscritto con David Heinemeier Hansson
- Rails Core (simile a merb-core)
- Framework Agnostic
- Ottimizzazione delle performance
- Api ben documentate
Ma questo cosa significa realmente?
Rails Core
Rails, un pò come per merb sarà molto più modulabile ovvero ci sarà il Core, in termini pratici significa che se vogliamo avere tutto avremmo tutto (helper, orm etc..) ma se invece necessiteremo di una small app come ad esempio un webservice potremmo farlo senza problema alcuno ex:rails-gen --flat rails-gen --very-flat Framework Agnostic
Con David ci saremmo scritti decine e decine di mail al riguardo, odio con tutto il mio cuore il fatto che Rails involontariamente ti obbliga ad usare diversi framework:- Test Unit (per i test)
- Prototype/Scriptaculous (per i javascripts)
- ActiveRecord (come orm)
- Erb (come template engine)
Lo so che anche ora si possono cambiare, ma richiede tempo e plugin di terze parti il che non è bello.
Pensate al poter generare una rails app così:
rails-gen myapp --template-engine haml --orm none --test rspec Ottimizzazione delle performance
Questa è stata una lunga diatriba, David ha sempre sostenuto che Rails è lento e dispendioso (in termini di ram) perché è Ruby stesso ad esserlo, ma dapprima Sinatra e poi appunto Merb hanno dimostrato che è Rails a non sfruttare appieno le potenzialità di Ruby.Personalmente noi come società per gestire 130/150 siti abbiamo bisogno di un Server con processore Xeon e ben dico ben 16GB di Ram!
Api ben documentate
Troppo spesso ormai quando viene aggiornato Rails i nostri "plugin" smettono di funzionare, questo perché non sempre ci è chiaro quale cambiamento ha bloccato il nostro plugin e così iniziamo a fare pach su patch... il che non è bello.Ma quando potremmo avere Rails 3.0 tra le mani? Presto, dapprima avremmo Rails 2.3 nel mese di gennaio (che porta diverse fatures interssanti come il templating) mentre Rails 3.0 è atteso in Beta per marzo/aprile.
Ottima notizia no?
Rails 2.2, Internazionalizzazione, Thread Safe, ETag, Ruby 1.9, JRuby ...
E' da poco uscito Rails 2.2. e le novità sono davvero davvero interessanti.
Per la prima cosa veramente importante è che Rails ora è Thread Safe, questa nuova fatures come saprete ci da grossi vantaggi ma non sempre è utile usarla. Per maggiori informazioni guardate qui.
E' stata aggiunta l'internazionalizzazione, e a questo proposito è stato creato un sito apposito che trovate qui
Con l'aggiunta del thread safety è stato fatto un gran lavoro per rendere rails compatibile con JRuby e il prossimo (speriamo arrivi presto) Ruby 1.9.
Documentazione, ora (in realtà già da un bel pò) è disponibile un nuovo sito con delle belle guide.
Migliore integrazione con il protocollo HTTP grazie al supporto ETag. Qui e qui.
Transactional Migration! Uno dei problemi storici di Rails è dovuto al processo con cui si facevano le migrazioni, infatti se prima c'era un errore in una migrazione, tutte le modifiche venivano apportate e in alcuni casi anche la migrazione stessa seppur non andata a buon fine risultava applicata con la conseguenza che non era possibile fare un se rake db:migrate:redo.
Connection Pooling. Con l'avvento del Thread Safe è necessario gestire e distribuire le richieste sql su un gruppo di connessioni. Maggiori informazioni qui.
Tabelle di Join per le nostre query. Ora è possibile fare query su più tabelle specificando la join!
Per maggiori informazioni a questo punto vi rimando al ben fatto change log!
Gem MySql 2.7 Symbol not found: _mysql_init
Dalla versione 2.2 di Rails la libreria di ruby di MySql inclusa in rails non verrà più supportata.
DEPRECATION WARNING: You're using the Ruby-based MySQL library that ships with Rails. This library will be REMOVED FROM RAILS 2.2. Please switch to the offical mysql gem: `gem install mysql`
Per coloro che hanno installato mysql tramite port eseguire:
sudo gem install mysql -- --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config >> Account.all
dyld: lazy symbol binding failed: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Expected in: dynamic lookup
dyld: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Expected in: dynamic lookup /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
/Library/Ruby/Gems/1.8/gems/mysql-2.7/mysql.bundle rm -rf /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle Rails 2.1 e Ruby 1.8.7

L'altro ieri è stato rilasciato il magior update di Rails 2, e le novità sono davvero interessanti, prendo esempio da Rayan's Scraps e vi scrivo un piccolo elenco:
- UTC Migration Versioning
- Specifying Gem Dependencies
- Partial Updates
- Dirty Objects
- Has One :through
- Has Finder Functionality
- Easier Timezones
- Pluggable Controller Caching
Da notare che è anche stato rilasciato Ruby 1.8.7 . Ruby in questa versione stabile e dovrebbe essere pronto per gli ambienti di produzione.
Da notare che oltre alla correzione di numerosi bug e miglioramento delle performance è stato introdotto il back-port di Ruby 1.9 (le enumerazioni in particolare).
Maggiori informazioni sono disponibili qui
A tutto Ajax

Google, ha da poco annunciato le Ajax Library. Questo nuovo servizio permette di includere nei propri siti i file .js di blasonati framework quali:
Tutto ciò offre grossi vantaggi quali:
- Compressione del javascript lato server (google)
- Alta velocità di accesso
- Supporto a vita (nell'hosting)
- Molteplici versioni dello stesso framework
- Versioni snellite del framework
Da notare anche che se molti sviluppatori iniziano ad utilizzarla, diventa più probabile che il "navigatore" ha già scaricato il framework da un'altro sito, quindi quando visiterà il vostro non il suo browser non avrà bisogno di riscaricarlo... ottimo no?
Bene, ora se volete inziare a divertirvi dovete
Includere nel vostro sito:
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script> <script src="http://www.google.com/jsapi"></script>
google.load("prototype", "1.6.0.2"); Ovviamente, come avrete notato google mette a disposizione varie versioni dello stesso framework in modo da non generare conflitti, per vedere l'elenco andate qui
Rubinius on Rails

Sono lieto di scrivervi che pochi giorni fa Evan Phoenix ha annunciato la possibilità di eseguire Rails su Rubinius.
Rubinius è una virtual machine / compilatore di nuova concezione per Ruby. In sostanza persegue l'obiettivo di fornire elevate performance nell'esecuzione di codice Ruby.
Evan, però avverte che al momento l'esecuzione di Rails su Rubinius è ancora poco performante.
Sono contento perché come sapete ad oggi il problema delle performance di ruby iniziano a farsi sentire e pesantemente.
Le future alternative potrebbero quindi essere oltre a Rubinius:
Ruby 1.9 molto veloce, ma allo stato attuale è impossibile far girare Rails.
JRuby ottimo, in grado di eseguire rails ma poco compatibile con le svariate librerie scritte in c.
IronRuby una implementazione .net
MacRuby una implementazione bastata su Objective-C
Su MacRuby, mi riprometto di far un bel articolo!
Akelos, Rails su PHP... forse

Akelos, si aggiunge alla sfilza di framework nati per "imitare" Rails.
Ho dato un occhio al sito e ho notato che in perfetto stile Rails c'e' anche uno screencast
Da quel che ho potuto vedere penso che questo a differenza di Symfony , CakePHP che hanno preso strade "loro" rimane molto fedele a Rails.
Credo sia ottimo per chi viene dal PHP, e non vuole apprendere altri linguaggi di programmazione e ammira l'agilita' di sviluppo di Rails.
Pero' tengo a sottolineare che la velocita' di sviluppo in questo caso non e' tanto dovuta al framework che si usa ma principalmente dal linguaggio di programmazione, e si sa che Ruby e' tutt'altra vita rispetto a php.
Offriamo Lavoro per programmatori Ruby on Rails
Ciao a Tutti,
come sapete siamo una giovane webagency di Varese, stiamo cercando 1 o 2 programmatori Ruby On Rails, lavoriamo su progetti interessanti e vari con grosse aziende. Ci occupiamo della realizzazione che va dal semplice sito, all'ecommerce, al gestionale, interfacce eBay etc...
Il lavoro è estremamente dinamico (come del resto la socità) e quando abbiamo disponiblità ci dedichiamo a progetti opensource alcuni qui: http://rails.lipsiasoft.com/wiki/lipsiadmin e qui sul blog.
Apprezziamo molto le inziative...
Offriamo un buon contratto e un buon stipendio e se necessario vi forniamo un MacBook.
I requisiti sono:
- Conoscenza Ruby on Rails (almeno di base)
- CSS/HTLM (w3c e tableless)
- MySql
Non esitate a mandarci il vostro cv qui: info@lipsiasoft.com
Ciao e a presto
Lipsiadmin! L'Admin per Ruby on Rails tuttofare

Finalmente il primo dei miei progetti (di quest'anno) si e' realizzato.
Di cosa si tratta?
Uno degli annosi problemi di noi sviluppatori Ruby On Rails e' da sempre la gestione del backend del sito sul quale lavoriamo.
Pensate alla gestione degli utenti... permessi layout grafica html etc etc... non vi stufa dover ripetere sempre gli stessi passi?
Anche a me, cosi' mi sono creato una sorta di scaffold, che utilizziamo come societa' da circa un anno.
Ma cosa ha di speciale? Bhe' soluzioni simili ce ne sono tantissime ma penso che la mia sia la versione piu' leggera, veloce ed espandibile.
Partiamo con le premesse ovvero, il nostro admin e' bastato su un framework molto famoso EXTJS nella sua versione piu' recente.
Abbiamo deciso di utilizzare EXTJS per la sua semplicita' e la sua potenza, principalmente per quanto concerne la realizzazione di ottime griglie e del layout della pagina.

script/plugin install git://github.com/Lipsiasoft/lipsiadmin.git
script/generate lipsiadmin http://demoadmin.lipsiasoft.org/admin
DemoAdmin.zip
Login: info@lipsiasoft.com
Password: admin Javascripts dinamici in Rails 2.0.
Rieccomi, ieri mi sono visto uno screencast carino, qui e volevo segnalarvi anche a voi questa utile funzione.
Partiamo dal fatto che probabilmente è utile nei backend di un sito. Vi faccio un esempio, mettiamo che usate javascript per la gestione del login...
E' spesso molto utile poter intervenire con codice Ruby nei nostri JS ma fino alla precedente versione di Rails io intervenivo con un mio plugin Embedded Javascript che mi permetteva di usare i file ejs con codice ruby + javascript.
Ora tutto ciò come vi ho anticipato sopra è molto più semplice e non abbiamo bisogno di utilizzare plugin di terze parti.
Nella pagina seguente vi mostro un piccolo esempio.
Per prima cosa dobbiamo generare un controller, io lo chiamo javascripts in modo che quando lo includerò nella mia vista non dovrò inserire la path.
Quindi scriviamo nella nostra console:
$ script/generate controller javascripts Ora apriamo javascripts_controller.rb e inseriamo un metodo come segue:
# javascripts_controller.rb
@user = current_user
end
A questo punto nulla di più semplice creiamo un file admin.js.erb in /views/javascript/ e scriviamo:
//admin.js.erb
<% if @useradmin? %>
alert'Benvenuto Amministratore'
<% end %>
Infine dobbiamo creare una rotta in modo tale che quando scriveremo nel nostro browser una rotta che permetta l'interpretazione del nostro nuovo JavaScript
map.connect 'javascripts/:action.:format', :controller => 'javascripts'
Bene, se punterete il vostro browser in http://localhost:3000/admin.js dovreste vedere il codice se siete "amministratori".
Ovviamente questo è un codice d'esempio che spiega a grandi linee uno scenario di utilizzo... il resto spetta a voi e ricordate che come per le pagine html se ci sono 2 file con lo stesso nome nelle viste e nella directory public hanno precedenza i file che si trovano in public, ciò significa che se avete già un file in /public/javascripts/admin.js ha precedenza su quello che avete in /views/javascripts/admin.js.erb
Buon divertimento e se avete qualche consiglio da darmi non esitate!
Categories
- Altro (17)
- Comunicati Stampa (2)
- Fedora (1)
- Linux (17)
- Mac (45)
- Ruby (26)
- Ruby on Rails (45)
- Tutorials (20)
- Windows (13)
Archivi
- March 2009 (1)
- December 2008 (1)
- November 2008 (1)
- October 2008 (1)
- June 2008 (1)
- May 2008 (5)
- April 2008 (2)
- March 2008 (1)
- January 2008 (3)
- December 2007 (5)