June 18th, 2008Uma treeview funcionando

Vou agora demonstrar uma treeview do Yahoo User Library em funcionamento. Fiz uma página de teste, que contém uma estrutura simples em árvore.

Todo o código necessário pra fazer o treeview funcionar pode ser visto abrindo o código fonte da página no seu navegador, mas o trecho importante é este:

<script type=”text/javascript”>
//<![CDATA[
function mytree_Init() {
var tree = new YAHOO.widget.TreeView("mytree");
var parent_top = new YAHOO.widget.TextNode({ label: "Grupo Empresarial XYZ", href:"#" }, tree.getRoot(), false);
var empresa1 = new YAHOO.widget.TextNode({ label: "Empresa 1", href:"#" }, parent_top, false);

var filialA = new YAHOO.widget.TextNode({ label: "Filial A", href:"#" }, empresa1, false);
new YAHOO.widget.TextNode({ label: "Gerente Geral", href:"#" }, filialA, false);
new YAHOO.widget.TextNode({ label: "Gerente de Operações", href:"#" }, filialA, false);

var filialB = new YAHOO.widget.TextNode({ label: "Filial B", href:"#" }, empresa1, false);
new YAHOO.widget.TextNode({ label: "Gerente Geral", href:"#" }, filialB, false);

var empresa2 = new YAHOO.widget.TextNode({ label: "Empresa 2", href:"#" }, parent_top, false);

tree.draw();
}
YAHOO.util.Event.addListener(window, "load", mytree_Init);
//]]>
</script>

Apesar de um pouco feio, é um código simples que monta a estrutura da lista em árvore. Podemos tornar este código mais bonito? Sim! Usando as facilidades permitidas pelo Ruby on Rails, a mesma lista pode ser montada desta forma:

var test_data =
[0, { label: "Grupo Empresarial XYZ"},
1, { label: "Empresa 1"},
2, { label: "Filial A"},
3, { label: "Gerente Geral"},
3, { label: "Gerente de Operações"},
2, { label: "Filial B"},
3, { label: "Gerente Geral"},
1, { label: "Empresa 2"}];

Muito melhor, não é mesmo? Esta formação é possível quando criamos um método que vai pegar a estrutura acima e escrever o código javascript correspondente. Estas intruções de como criar este método no rails podem ser lidas neste blog.

Recentemente me incumbiram da tarefa de pesquisar sobre CMS em Rails, e algum método eficiente de apresentar conteúdo em formato de árvore (”treeview”) também em Rails. Após um tempo de pesquisa, encontrei boas soluções para ambos os casos.

No caso da exibição em Treeview, a melhor solução é utilizar a biblioteca Yahoo User Interface, ou YUI para os íntimos. Ela fornece todo o mecanismo necessário para a criação deste tipo de lista, e o Rails nos fornece os meios práticos e rápidos de gerar dinamicamente estas listas. Todo o procedimento para usar o treeview da YUI em conjunto com o Rails pode ser visto neste endereço. Os Helpers do Rails nos dão o meio necessário de tornar este processo o mais indolor possível. O resultado visual é como na imagem abaixo abaixo:

YUI Tree view

Quanto aos CMS, o mais usado parece ser o Radiant, usado em sites como na da SurgeWorks, empresa voltada ao desenvolvimento web com Ruby On Rails. Entre suas qualidades, o Radiant apresenta uma interface elegante, possibilidade de organizar páginas hierarquicamente, sistema de caching, gerenciamento de permissões de usuários, e um sistema de plugins de comportamento. Este CMS possui suporte a um sistema de tags especial, chamado Radius, e também suporta Textile, Markdown, e nosso antigo conhecido HTML na hora de desenvolver o conteúdo das páginas. Radiant CMS é distribuído sob a MIT License.

Outros sistemas de CMS podem ser encontrados na Web, mas nenhum deles parece maduro o suficiente pra ser usado em um site de producão de uma empresa. Mas caso haja curiosidade, vale a pena citar o Typo e Mephisto pra quem quer ter um blog, e Streamlined e Rubricks para quem está atrás de um site mais tradicional.

Uma pausa na série de artigos sobre o desenvolvimento web pra dizer uma coisa: eu odeio o Windows Vista. Não, sério… ódio mortal…

Nesta última sexta-feira minha placa de rede morreu-se. Acabou-se do nada, foi para o céu dos hardwares junto dos meus trinta e oito drives de CD e DVD*. Como estava sem internet, e um computador sem internet é como um carro sem pneus, resolvi instalar o Windows no meu PC.

Bad VistaNunca gostei do Windows Vista, mas como possuo duas cópias originais dele e nenhuma cópia original do Windows XP, resolvi instalar o Vista. Eu tinha deixado uma partição de 60GB no meu HD pra instalar o windows algum dia, e essa era a hora. Inseri o DVD do Vista, iniciei a instalação, preenchi o serial e já vi logo a frase dizendo “copiando arquivos”.

Fiquei encucado, porque ele não tinha nem perguntado em que partição eu queria instalar, mas deixei. Estava pensando “ahh, ele não apagaria minhas partições atuais assim do nada, sem nem perguntar ou dar algum aviso”.

Ah, como sou ingênuo.

Leia todo o texto »

A maioria das pessoas que tem um blog usa o FeedBurner pra dar uma incrementada nos seus feeds. A grande maioria também usa o Google Adsense pra obter retorno financeiro com um blog. Agora, ambas as ferramentas se aliaram.

Quem tem conta no feedburner e no google adsense pode agora entrar na opção Monetize do feedburner, e ativar a exibição de anúncios da sua conta do adsense nos feeds. Esta é uma ótima forma de se ganhar dinheiro online através dos feeds do seu blog.

October 13th, 2007Vamos a la playa

Estou saindo de viagem pra aproveitar o feriadão. Como não tive tempo pra deixar nenhum post preparado, o blog vai ficar parado até segunda de noite.

Mas aí prometo que faço algum post legal quando voltar. Enquanto isso, se quiserem, podem deixar aí nos comentários sugestões de assuntos pra eu falar na segunda-feira.

Tenho mantido vários projetos diferentes ao mesmo tempo, e um deles é o site emprestei.com. O propósito dele é fornecer um meio simples de anotar as coisas que você emprestou para as outras pessoas, pra não esquecer com quem está aquele seu livro favorito ou o seu DVD de Heroes.

No pouco tempo que me sobra pra passar em casa eu tenho trabalhado em algumas novidades para o site, e a principal delas se refere ao ato de adicionar um novo empréstimo. A partir deste final de semana, novos empréstimos serão adicionados através de uma interface em ajax, atualizando a lista sem precisar recarregar a tela.

Eu queria já ter colocado isso antes, mas parece que a cada dia que passa o tempo que me sobra é menor. Mas para os poucos que já começaram a usar o Emprestei, novidades virão!

PS: Tenho pensado em fazer um tutorial prático de como montar uma aplicação em Rails, usando o Emprestei como exemplo. Será que daria certo?

Queria aproveitar pra comentar hoje sobre dois artigos interessantes envolvendo Ruby On Rails, um bem diferente do outro. O que ambos tem em comum é que foram escritos por programadores que trabalham com rails há 2 anos.

Dicas de Desenvolvimento Ruby

O site Nuby On Rails publicou um artigo com uma lista massiva de dicas de desenvolvimento com ruby on rails, vindas de um programador experiente.

O artigo nos trás ótimas dicas, como “mantenha seus controllers e views bem magros” e “teste sua aplicação”. Vale a pena dar uma lida nas suas dicas mesmo que você já tenha experiência com ruby on rails. Nunca se sabe o que você pode aprender.

O’Reilly dando um péssimo exemplo

Derek Sivers, no blog oficial de ruby no O’Reilly Net, publicou um artigo polêmico chamado 7 razões porque voltei pro PHP depois de 2 anos de Ruby.

E não concordo com o artigo dele. Não estou dizendo que o ruby serve pra todos e ninguém deveria ficar com o PHP, mas não concordo com os motivos que ele usou para ter feito tal coisa.

O principal e primeiro motivo citado por ele foi de que o PHP faz tudo que o Ruby on Rails faz. Como se isso significasse alguma coisa. Este é um argumento válido pra praticamente qualquer linguagem, e não diz muita coisa. A principal vantagem do ruby não é o que ele faz, e sim como ele faz.

Um outro argumento usado é que ele não quer mais do que precisa, e por isso voltou para o PHP. Agora… qual dos dois oferece mais opções diferentes do que alguém precisa? E não é um dos charmes do ruby o fato de ter reduzido o número de opções em prol da agilidade e praticidade?

Este é um artigo que recomendo que leiam, mas não sigam. Existem bons motivos pra se usar PHP ao invés de Ruby em um site, mas “eu gosto mais de sql” definitivamente não é um deles.

PS: Concordo com apenas uma coisa que ele falou. Programar em ruby acaba te fazendo programar melhor em outras linguagens.

Se interessou? Compre agora mesmo um livro de Ruby on Rails com o menor preço!

September 18th, 2007Eu, eu e eu mesmo.

Algumas vezes canso de programar, mas se tem uma coisa que eu nunca me canso é de escrever. E por isso estou aqui, começando mais um blog. Com este, são quatro blogs que eu mantenho ao mesmo tempo, o que deve estar perto de ser um recorde.

Escrevo posts diversos, voltados pro humor, no meu blog principal: Tomate Cru

Escrevo tutoriais voltados para usuários iniciantes de Linux no blog Dominando Ubuntu Linux

Escrevo sobre o desenvolvimento do meu site emprestei.com no blog Emprestei Blog.

E agora estou aqui, criando o blog Leonardo Bighi (sim, um blog com meu nome) onde vou falar dos outros assuntos que me interessam, como programação web (e programação em geral em menor quantidade), Ruby on Rails, tecnologia, linux, livros diversos, literatura, música, etc.


© 2007 Leonardo Bighi | iKon Wordpress Theme by TextNData | Powered by Wordpress | rakCha web directory