quarta-feira, 18 de junho de 2008

Conferência RailsConf Europe 2008 em Berlim

A Conferência Europeia de Ruby on Rails (RailsConf Europe) irá realizar-se novamente em Berlim, ou seja na mesma cidade que em 2007, lembro que a primeira (2006) teve lugar em Londres, de 2 a 4 de Setembro de 2008.

Talvez por ser a única grande conferência de Ruby on Rails na Europa a afluência é muita, esgotando rapidamente os lugares disponíveis para assistir a este importante evento para a comunidade Ruby on Rails Europeia.

Os oradores seleccionados são mais uma vez de grande nível, respeitados por toda a comunidade Ruby on Rails. Destaco obviamente David Heinemeier Hansson, o criador da framework e considerado em 2005 pelo Google e O'Reilly como Hacker do ano, obviamente devido à sua criação.

O evento tem a duração de três dias sendo que o primeiro é constituido por sessões de Tutoriais. Sessões como "Accessible Ajax on Rails", "Meta-programming Ruby of Fun & Profit" e "Deploying and Monitoring Ruby on Rails" parecem realmente tentadoras. Os restantes dois dias são preenchidos com diferentes apresentações, destaco a "Design on Rails for Usability" por Christina Lupp, "Rails Powered by GlassFish & JMaki" por Arun Gupta, "Taming the Beast: Managing Complexity in Ajax Applications" por Dan Webb, "The One-Two Punch: JQuery with Rails" por Yehuda Katz, entre outras.

Relativamente a preços, parecem-me cada vez mais inflacionados devido à grande procura, no entanto a qualidade também se paga.
Registos até 15 de Julho têm um desconto considerável, o preço para todos os dias da conferência é de 795€, apenas para os dias das apresentações são 695€ e apenas para o dia dos tutoriais são 245€. Depois desta data o preço aumenta para 945€, 845€ e 345€ respectivamente, para mais informações consultar a página de registo.

Para "aguçar" o apetite vejam as apresentações da conferência de 2007.

sexta-feira, 2 de maio de 2008

Twitter abandona Ruby on Rails


Depois de dois anos com problemas ao nível de escalabilidade, o Twitter está a planear abandonar a framework Ruby on Rails, as alternativas passam pelo PHP ou Java, no entanto ainda existe a possibilidade de manterem o Ruby mas sem a plataforma Rails.

Será que esta é a melhor solução para a resolução dos problemas do Twitter? Acredito que não, já possuem uma infraestrutura construída, iria causa muitos constrangimentos mudarem a framework ou construirem uma de raiz. O que é curioso é o facto de outras empresas estarem a fazer exactamente o oposto, como a Yellowpages.com que mudou de Java para Rails.

O rápido crescimento da plataforma Rails tem causado sempre bastante controvérsia, os programadores queixam-se que existem muitas falhas que impossibilitam a construção de uma infraestrutura robusta, mas existem muitos outros que dizem exactamente o contrário.

Update: Segundo Evan Williams o Twitter não está a planear abandonar o Ruby on Rails, Evan ainda refere no seu twit que grande parte do código não se encontra em Ruby on Rails.

quinta-feira, 24 de abril de 2008

Lançada a 3ª Edição do Livro "Agile Development With Rails"

Já se encontra disponível a versão Beta da 3ª Edição do famoso livro Agile Web Development with Rails.

A grande novidade do livro reside no facto já abordar o Rails 2 assim como outras evoluções que a framework tem vindo constantemente a sofrer desde o seu, ainda recente, nascimento.

Uma boa notícia é a inclusão de um novo autor, Sam Ruby, famoso pelo livro RESTful Web Services da O'REILLY.

Neste momento é possível comprar o pack da terceira edição inclui a última versão do PDF (e as restantes actualizações que forem feitas até à versão final) e o livro em papel quando estiver pronto. No entanto se quisermos um livro em papel agora, podemos adquirir o da segunda edição por metade do preço.

A compra da edição em papel, ou PDF, da segunda edição permite adquirir posteriormente um update para a terceira edição do livro sem custos.

Prémios Ruby Hero

Os Prémios Ruby Hero são uma excelente forma de reconhecer o bom trabalho de pessoas/projectos da comunidade Ruby on Rails. São pessoas que escrevem tutoriais e blogs, criam gems e plugins, contribuem para projectos open source, mas que muitas vezes não recebem o reconhecimento que lhes é devido, muitas vezes sem retorno monetário.

É possível através do site Ruby Hero nomear um determinado URL, em seguida é apresentado um formulário mais detalhado onde é permitido inserir o nome do nomeado e o título do seu site, é ainda pedido o nosso nome e e-mail, para além disso encontra-se disponibilizada uma área de texto para que seja possível introduzir um testemunho que justifique a escolha.

Com base nestas nomeações o júri selecciona 6 pessoas que irão receber o prémio Ruby Hero este ano na Railsconf.

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.

RailsForge

Será que um RailsForge é necessário?

Existe um curto questionário no site http://railsforge.com/ acerca da necessidade de uma centralizar a informação e ideias da comunidade Rails.

Os 56 melhores Sites em RubyonRails

Podemos encontrar no softwaredeveloper.com uma lista dos 56 melhores sites desenvolvidos em RubyonRails. Estão organizados por diferentes categorias tais como Business, Travel, Local, Multimedia, Social Networks, Web Developers, Miscellaneous e como não podia deixar de ser fazem uma referência às 4 aplicações desenvolvidas pela empresa 37Signals, responsável pela génese e rápido desenvolvido do RubyonRails.

Alguns já conhecia, como o Shopify e os da 37Signals, mas de facto existem muito boas aplicações web por esse mundo fora, todas desenvolvidas com RubyonRails.

Vale a pena dar uma vista de olhos.

Emprego - Programador Web

No ITJobs surgiu recentemente uma proposta de emprego para Programador Web da empresa Enterweb - Serviços de Internet e Marketing, Lda. RubyonRails não é um dos requisitos principais mas é feita referência como sendo “conhecimentos opcionais (também valorizados)”.

Onde alojar Aplicações Rails

No mês de Maio o Pedro Sousa escreveu no site da comunidade portuguesa de Ruby, um artigo interessante acerca dos serviços existentes no mercado para alojar aplicações Rails.

Basicamente o artigo do Pedro Sousa apresenta outros 2 artigos que fazem uma análise a algumas das soluções disponíveis (que na minha opinião são as principais).

Apenas acrescentava a ClusterCube que disponibiliza um serviço a preços bastante competitivos, por exemplo um particular que pretenda alojar o seu site ou blog, poderá adquirir o serviço desembolsando entre 15€ a 38€, dependendo das suas necessidades. No artigo do Pedro Sousa, o Alcides Fonseca colocou um post de resposta em que refere igualmente o serviço da ClusterCube, segundo ele a empresa disponibiliza óptimo suporte técnico. Quem conhece que comente. Sinceramente sinto-me tentado a experimentar.

Primeiro site lançado utilizando RubyonRails

Lancei recentemente o meu primeiro site desenvolvido totalmente em RubyonRails. Até ao momento apenas tinha feito aplicações para a intranet da empresa onde trabalho.

O endereço do site é http://www.complethotel.publituris.pt, é um directório de empresas da área de hotelaria. Quando foi lançado era HTML 4.01 Strict Valid, no entanto houve a necessidade de colocar publicidade online e o script gerado pelo phpAdsNew (agora designado Openads) acabou por estragar. Tem igualmente um excelente resultado na validação da acessibilidade (WatchFire).

Fica como exercício descobrir onde utilizei AJAX!!

O desenvolvimento foi muito rápido, pouco mais de 3 ou 4 dias. Não existe nada de extremamente complexo. Deixo aqui uma descrição de algumas das funcionalidade implementadas com recurso ao RubyonRails:

  1. Na página inicial surge uma imagem aleatória de uma das empresas em destaque no site.
  2. A alteração do highlight das secções no menú tem como base a alteração do controlador utilizado.
  3. É feita pesquisa apenas no campo "nome de empresa". Brevemente será disponibilizada a pesquisa avançada.
  4. Listagem de empresas por separadores e sub-separadores.
  5. Listagem de empresas por ordem alfabética.
  6. Diferenciação entre empresas anunciantes e não anunciantes na listagem

Brevemente espero colocar alguns exemplos de algum código.

Ruby on Rails - Instalação

Todo o processo de instalação é muito simples, precisamos do seguinte:

1. Interpretador de Ruby (sim, o Ruby é interpretado e não compilado).

2. RubyonRails

3. Base de Dados. Aconselho Mysql.

No caso de utilizarem Windows, existe já uma solução integrada, o InstantRails, que contém Ruby, Rails, Apache e Mysql. Não é necessária instalação, basta colocar num directório à escolha e iniciar o executável.

No caso do Linux costumo instalar em primeiro lugar o interpretador de Ruby e depois tudo o resto. Em plataformas como o Debian ou Ubuntu um simples apt-get é a solução ideal para instalar o Ruby:

% sudo apt-get install ruby irb rdoc

Quando já temos o Ruby instalado existe algo fantástico, o RubyGems, muito semelhante ao apt-get, que nos permite instalar e gerir vários pacotes. Basta fazer o download, descompactar e correr "ruby setup.rb". Depois tudo se torna mais simples, a partir da linha de comandos podemos instalar o Rails e todas as suas depedências:

gem install rails --include-dependencies

Para OS X recomendo a utilização do Locomotive.

Em qualquer dos casos podemos recorrer à linha de comandos para criar uma aplicação Rails:

rails path/to/your/new/application
cd path/to/your/new/application
ruby script/server

Basta aceder a http://localhost:3000 para verificarmos se tudo correu bem.

Recomendo a instalação do Eclipse e em seguida o RadRails, de modo a poderem desfrutar de um ambiente de desenvolvimento gráfico. No qual podem criar facilmente projectos, fazer a gestão de diferentes aplicações e servidores.

Para instalação do RadRails recomendo este tutorial passo a passo do Carlos Eduardo.

Primeiro Post

Olá a todos!

Este blog tem como principal objectivo dar a conhecer a plataforma RubyonRails.

O título "Web development that doesn´t hurt" tem o seu sentido quando pensamos na facilidade em colocarmos "qualquer coisa a mexer" rapidamente, para além disso é open-source.

Quando visitamos a página desta web framework encontramos alguns vídeos e apresentações que nos deixam rapidamente com vontade de experimentar, dou algum ênfase ao vídeo creating a weblog in 15 minutes (apesar da quantidade enorme de "OOps") que mostra a facilidade em criar uma aplicação web, neste caso como o próprio nome indica criar um simples weblog.

Mas como nasceu esta framework? Costumo interligar o crescimento das designadas aplicações web2.0 com aumento de popularidade do RubyonRails associado ao AJAX. A facilidade do Rails é realmente impressionante e acima de tudo é extremamente intuitivo.

As aplicações Rails são implementadas utilizando a arquitectura MVC (Model-View-Controller), muitas outras plataformas utilizam esta arquitectura (Struts, Zend, Catalyst, Django), ou seja existe uma zona para diferentes partes do código, e todas estas partes interagem de uma forma standart, iniciamos o desenvolvimento com todo a estrutura da aplicação já criada. Para além disso todas as aplicações Rails também vão criando automaticamente rotinas de testes sempre que adicionamos novas funcionalidades.

Mas a grande vantagem desta framework, e que para mim faz a diferença, é a linguagem de programação Orientada a Objectos Ruby. É muito fácil de escrever código e acima de tudo é muito fácil de ler código nesta linguagem pois evitam-se muitos parêntesis, chavetas, declaração de variáveis que complicam o desenvolvimento e a leitura do código.

Com isto não quero dizer que esta plataforma é melhor do que qualquer outra, tem as suas vantagens perante outras, tendo igualmente as suas desvantagens. No entanto não custa experimentar e o conhecimento não magoa...