rails

Rack::Bug su Rails 3

Uno strumento molto interessante per fare debug delle performance di un sito è Rack-Bug. Una volta abilitato mostrerà una toolbar su qualsiasi pagina dinamica (ruby rack-based) con tantissime informazioni utili: query sul database effettuate, vari tipi di tempi trascorsi e variabili d'ambiente.

Installazione

# Gemfile

..
gem 'rack-bug', :git => 'https://github.com/brynary/rack-bug.git', :branch => 'rails3'
..

# config.ru

..
require 'rack/bug'
use Rack::Bug, :secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
run myapp

Ora andate su http://localhost:3000/__rack_bug__/bookmarklet.html per abilitarlo/disabilitarlo e volendo potete anche passare un parametro :password nell'inizializzazione.
Buon debugging :) 

Finally Rails 3 on Dreamhost ( tips 'n' #fail )

Many Shared Hosting Plans have been upgrated to Rails 3.0.3 on Dreamhost and this “Christmast Gifts” caused pain and frustration to a lot of people even if the dh support deny this #fail (Search “dreamhost rails ” on Twitter).

Anyway this migration killed Rails 2.x (and Rails 3 beta4), but now Passenger (2.2.9) and Rack (1.1) are updated.

Yay, You should test your webapps in a production environment on your local machine before deploy you code in DH, but it isn’t enough because on Dreamhost with Phusion Passenger as Web Server the things could work differently.

So here a collection of the issues you could get.

 

Sqlite3 and the default rails app on Dreamhost

If you try a default test app with rails on DH it is broken, because it requires sqlite3 1.3.0 which doesn’t compile. You can force the downgrade to the gem 1.2.5 or use ‘mysql2’.

# Gemfile
  gem 'sqlite3-ruby', '1.2.5',:require => 'sqlite3'

 

Javascript an other static files are not loaded

This problem occurred also on Heroku, you have to change a config parameter.

SASS e SCSS con Rails 3

Tutti conoscono i file CSS, sono i file che contengono la rappresentazione grafica degli elementi HTML, e con HTML5 / CSS3 si arricchiscono ulteriormente di funzionalità e interattività.

Purtroppo oltre a questa "evoluzione visiva" non c'é stata alcuna evoluzione sintattica, tanto per fare un esempio in CSS3 non è ancora possibile chiamare un colore per nome e poterlo riutilizzare più volte (aka variabile), ma bisogna ancora riscriverlo ogni volta col proprio valore esadecimale.

HAML, SASS e SCSS

A differenza di framework come 960.gs e altri, che propongono delle Best Practices per usare al meglio i CSS, ma aggiungono anche overhead, HAML e SASS sono delle astrazioni che ne semplificano l'utilizzo (al prezzo di imparare un nuovo linguaggio e doverlo compilare lato server).

Deploy di una webapp rails sul piano gratuito dell'hosting Heroku

Ok, avete fatto una webapp con Ruby on Rails, funziona e volete farla vedere al mondo che fare?

Il vostro hosting economico o gratuito supporta solo php, mentre quello che supporta ruby è più costoso oppure pensate che non sia ancora un investimento giustificato.
Niente paura, si può fare ed é gratis. L'hosting che lo permette è Heroku e si tratta di un sistema Iaas (Infrastructure As A Service), cioé a differenza di un hosting classico non vi é accesso al File System o ssh, ma si interagisce solamente tramite gli strumenti di deploy messi a disposizione (Git e Console Heroku). Ad ogni modo l'infrastruttura reale che c'é dietro è un database Posgresql e Thin come webserver.

Configurazione e primo Upload

Si presume che abbiate un progetto Rails 3 nella cartella "myapp" e che facciate uso del db di default SQLite. I passaggi che seguiranno sono in parte simili alla configurazione classica di deploy su hosting shared (es Dreamhost), ma vengono aggiunti dei tool specifici per monitorare l'applicazione su Heroku. In ogni caso questa configurazione non pregiudica la possibilità di portare su un'altro hosting in futuro la nostra webapp.

HTML5Boilerplate Rails 3 Template

Ogni volta che si parte a fare un sito da zero ci sono sempre gli stessi dilemmi, come lo strutturo? dove metto i CSS? Ma questa figata funzionerà su Internet Explorer? Gli alieni esistono? ..forse avrei dovuto usare un CMS.
Ovviamente non esiste una risposta adatta ad ogni caso, ma ci sono dei componenti che ormai sono consolidati quindi tanto vale metterli insieme fin da subito.

Rails 3 rilasciato, ecco le novità

Il più famoso framework web MVC, ispiratore di framework analoghi in altri linguaggi non ruby è stato rilasciato. Rails 3 è internamente molto diverso da Rails 2 perché è frutto di un merge (ex framework Merb) e di altre standardizzazioni che ci sono state in ambito Ruby.

Ecco brevemente le feature più interessanti:

Applicazioni montabili

Ovvero porter montare applicazioni diverse su path diversi del sito. Le applicazioni possono essere anche scritte in altri framework Rack-compatibili

Query componibili

La mappatura query db -> oggetto ruby (ORM) viene fatta da un nuovo componente interno chiamato Arel

Più modulare, più Rack

Rack permette di condividere separatamente funzionalità complesse, con controller e view, come un'autenticazione (es Devise).

Mantenimento dell' ecosistema ruby e dipendenze

Bundler è un altro componente nuovo gestisce le dipendenze gem a livello di progetto, così da poter gestire contemporaneamente versioni diverse della stessa libreria sullo stesso sistema.

Codifica Utf8 di default

Indipendentemente che usiate ruby >=1.8.7 o ruby 1.9/2.0 la codifica di default ora è utf8.

Deploy Rails 3 with Passenger/Apache on Dreamhost

Now DH has Rails 3.04, and this guide should still be valid

20100917: Rails3 is still broken, I think it could be this Bundler 1.0 bug (fix) and the rack bug. latest working version is Rails3 Beta4 with Bundler 0.9.x , happy hacking!

PLEASE RETWEET THIS!!

After many tutorials and hacks I got my Rails 3 working on Dreamhost too!

The whole setup involve many components but it's a good investiment if you are planning to develop a new Rails app. The final aim is editing locally your app and sending the new features or fixes incrementally via ssh/Git. 

 +

How to install Rails 3.0 beta on Ubuntu Linux (step by step)

UPDATE: If you are looking for a way to deploy a Rails 3 app in production on a shared web hosting please look here

Wow, Rails 3.0 beta gem is out but, but the instruction advertised on the blog doesn't work on Ubuntu Linux and the older one too :(
Here is an hacky but working way to install Rails 3 on a clean Ubuntu installation.

 


(replace pre with beta)

UPDATE: ruby 1.9 is any longer supported please use ruby 1.9.1 instead! Or better use ruby 1.8 if u want a stable environment :P

Rails 3.0pre, JQuery, UJS in pratica

Il framework Rails 3.0 raggiungerà presto la versione 3.0pre, ma già ora è possibile apprezzare delle funzionalità interessanti: una su tutte la separazione tra HTML5 e Javascript (Unobstrusive Javascript - UJS). Pensate in un futuro prossimo di poter cambiare dei widget (es. Date picker) all'interno delle pagine web senza farvi venire il mal di testa e allo stesso tempo mantenere una "certa" compatibilità con i web browser sfigati.

Installazione di Rails 3.0 pre e Ruby 1.9 su Linux Ubuntu 10.04a Lucid Lynx

Nonostante Ruby 1.9 sia già presente nei repository, la versione di default è ancora Ruby 1.8.7, quindi bisogna specificare se vogliamo quella nuova.

Rails 3 abbraccia l'approccio modulare alla Drupal

Finalmente Rails 3 permetterà di realizzare applicazioni web veramente modulari. Sì, qualcuno lo faceva con qualche hack, qualcun'altro ha provato a fare sopra un cms, ma alla fine se la modularità non è nel core è difficile fare dei moduli che diventino mainstrean e vengano realmente riutilizzati.


Le slide sul "Russian Dolls Pattern"

Grazie Yehuda Katz