sábado, 16 de fevereiro de 2008

Uma plataforma web para desenvolver Ruby on Rails

Heroku é uma plataforma de desenvolvimento de aplicações ruby on rails que funciona totalmente num browser. Toda a plataforma foi construída em torno de um IDE web que permite o desenvolvimento de aplicações rails e o seu deployment. Esta última acção é feita no Amazon's Elastic Cloud apenas com um simples click.

De momento os registos estão bloqueados, neste momento apenas por convite.

No entanto fiquei com curiosidade em experimentar:
  1. O Deploy é imediato, ou seja quando criamos a estrutura da aplicação esta é automaticamente colocada online. ver vídeo
  2. Criar e Editar código online, é possível editar o código directamente no browser. ver vídeo
  3. Partilhar e Colaborar, como não podia deixar de ser os chavões da chamada web2.0. É possível tornar a aplicação pública ou privada apenas a determinados utilizador. É possível assim ter um ambiente de desenvolvimento colaborativo. No entanto estou curioso em saber se possuem controlo de versões... ver vídeo
  4. Importar e Exportar, aparentemente é muito fácil de exportar o código da aplicação desenvolvida, o schema e os dados.
  5. A instalação de Gem & Plugins também me parece muito interessante, permitindo seleccionar gems e/ou plugins já standards ou enviar outros.
  6. Consola Rails, executar o código e manipular dados através de uma consola a partir do browser. ver vídeo
  7. Gerar Código Automaticamente, obviamente que a "magia" do rails teria de estar disponível... ver vídeo

Se alguém tiver um convite disponível comente ou envie directamente para bmcarlos [at] gmail [dot] com

domingo, 4 de novembro de 2007

É fácil programar em ruby!

Um psicólogo de 53 anos sem qualquer experiência em programação deixou um comentário no forum Rubyonbr.org, no mínimo original:

Bom dia aos participantes do RubyOnBr. Assiti ontem a palestra do Shairon em um evento. Na verdade não fui lá para aprender Rubi, sou psicólogo, servidor públic em uma instituição federal. Fui para prestigiar um amigo meu em outra palestra. Cheguei mais cedo, então e vi um rapaz falando de linguagem humana e de programação,o ato de pensar, lingüística, gramática, “semiótica”, sistema cognitivo, e outras ciência que eu nem imaginava que a computação estudava. Ele disse “você aprende ruby sem querer”, fiquei sem entender e complementou com uma analogia meio parodia de Descartes “você pensa no programa ele logo existe”.

Então pedi meu filho que instala-se o programa que entende ruby o “irb”, peguei um manual na internet e comecei a ler, pensar e “programar”. Eu fiquei muito feliz por não saber programar e “brincar” de ser programador, eu com 53 anos me sentindo capaz, e como o palestrante disse “expressar o pensamento em um programa”.

Eu só estou falando isso aqui porque fiquei muito empolgado e lendo o forum vi que programadores podem “ser humanos e legais”.

Um abraço a todos e obrigado por essa experiência.

Alberto.


As palavras que realmente marcam este comentário são sem dúvida "ser humanos e legais". A programação não está só reservada a geeks, existem linguagens de programação que permitem passar de simples ideias à prática de forma fácil e intuitiva. O Ruby é sem dúvida uma destas linguagens...

domingo, 30 de setembro de 2007

Primeira oferta de emprego em Ruby on Rails em Portugal

Até ao momento foi a primeira oferta de emprego que tenho conhecimento para a posição Programador Ruby / Ruby on Rails.

A empresa é PrimeIT consulting.

Será esta a primeira oferta de muitas? Só o tempo o dirá...

domingo, 23 de setembro de 2007

Paginar utilizando AJAX

Perguntaram-me recentemente como paginar sem ter a necessidade de "carregar" novamente todo o layout da página. A resposta é bem simples, utilizar AJAX.

O exemplo que vou utilizar é o que está implementado na página http://complethotel.publituris.pt/entidades/alfa?letter=A

Como podem ver existe uma listagem de empresas que está paginada, 15 empresas por página.

Colocar a seguinte função no application_helper.rb:

def pagination_links_remote(paginator)
page_options = {:window_size => 2}
pagination_links_each(paginator, page_options) do |n|
options = {
:url => {:action => 'list', :params => @params.merge({:page => n})},
:update => 'table',
:before => "Element.show('spinner')",
:success => "Element.hide('spinner')"
}
html_options = {:href => url_for(:action => 'list', :params => @params.merge({:page => n}))}
link_to_remote(n.to_s, options, html_options)
end
end

Fonte do Código : http://wiki.rubyonrails.org/rails/pages/How+to+Paginate+With+Ajax


No controlador defino um método "list_alfa":

def list_alfa

@entidades_pages, @entidades= (paginate :entidades, :per_page => 15,
:order => 'entidades.nome ASC',
:conditions=> "entidades.nome LIKE '#{params[:letter]}%'")

render :partial => "list_alfa", :layout => false

end



Este método não faz mais do que uma query à base de dados, recebendo como parâmetro a letra pela qual queremos filtrar. Em seguida faz um render a um partial "list_alfa" e como queremos que o layout não seja carregado novamente para este partial colocamos layout=> false.

O Ruby on Rails tem algo fantástico que se chamam "partials" que não são mais que zonas da nossa página, ou seja uma parte de um todo. Todos os "partials" são identificados facilmente nas Views pois os ficheiros começam com "_", neste caso utilizo um partial chamado "_list_alfa.rhtml":

<% if @entidades_pages.page_count > 1%>
Pagina
<%= pagination_links_remote @entidades_pages %>
<%= image_tag("spinner.gif", :align => 'absmiddle',
:border => 0,
:id => 'spinner',
:style=> "display:none;")%>
<% end%>

( ... )

<% end %>


O "if" vai confirmar a necessidade de paginar, se o "page_count" for menor que 1 significa que existiram 15 ou menos resultados para apresentar não existindo necessidade de paginar. Em seguida é chamado o método "paginate_links_remote", que é responsável por apresentar os números de página com os respectivos links.

Muito simples!!


NOTA: Apenas coloquei o código que me pareceu mais importante. Portanto se tiverem problemas na implementação coloquem as vossas dúvidas.

quinta-feira, 30 de agosto de 2007

Ruby on Rails Cheat Sheet

Numa única folha A4 o essencial de Ruby on Rails!!

Dave Child, com a ajuda de Amy Hoy (Slash7) e David Heinemeier Hansson (criador do Ruby on Rails), conseguiu juntar a descrição da estrutura de directórios, as variáveis pré-definidas, as palavras reservadas, a sintaxe das expressões regulares e os métodos.

Ideal para ter na nossa secretária de trabalho.

quarta-feira, 29 de agosto de 2007

Noobkit Docs - API user friendly

O Noobkit é uma excelente forma de navegar na documentação da API da framework RubyonRails.

A documentação está dividida em três áreas: Gems, Rails e Ruby. As grandes vantagens que encontro são mesmo a organização e acima de tudo a pesquisa.

Existe a possibilidade de fazermos bookmarks e deixar comentários, no entanto para isso é necessário autenticação com OpenID.

Talvez a única parte menos boa é a grande dimensão dos anúncios Google que ocupam o topo de uma página de documentação, mas acaba por ser um pormenor que nada afecta a excelente qualidade deste projecto.

Emprego - Consultor Suporte Aplicacional

No ITJobs surgiu recentemente uma proposta de emprego para Consultor Suporte Aplicacional da empresa Indra - Sistemas, SA. RubyonRails não faz parte da lista de conhecimentos fundamentais, no entanto são valorizados.