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 »

Esta é a continuação de outro artigo. Se não leu o primeiro, leia Que caminho seguir no desenvolvimento web? (parte 1).

Deixando de lado o desenvolvimento para desktop que abordei no capítulo anterior, vamos para o tema principal do artigo, desenvolver para a web. Provavelmente você já viu alguém falar que a web é o futuro, e todo este blá blá blá que não vou repetir aqui, apesar de achar que é verdade. Vale ressaltar todos os pontos fortes, que é a facilidade de escrever um aplicativo que vai rodar em todo tipo de Sistema Operacional, e até em celulares, sem muito esforço.

Dentro da área do desenvolvimento web existem tantas opções que é fácil ficar perdido. Você pode desenvolver programando em Java, ASP, .NET, PHP, Python, Ruby, pra citar as principais. Pode também ser o cara que programa scripts que rodarão no lado do cliente, que é o caso do javascript. Pode desenvolver aplicações irritantes em flash ou silverlight. Ou pode ser o gay o cara que desenvolve “a cara” do site, que é o gay designer. Caraca, quantas opções.

Leia todo o texto »

Sei que andei um pouco relaxado em relação a esse blog, mas um monte de coisa aconteceu. Entre elas o fato de eu ter ficado mais de 2 meses sem computador, porque meu notebook deu o segundo defeito em menos de 3 meses e acabei me livrando dele. Mas voltando ao assunto do post…

Recebi uma sugestão do cara que é provavelmente meu mais antigo leitor aqui no blog, o Victor Mendes. E a sugestão dele é mesmo muito boa. Tão boa que resolvi criar uma série só com isso. O Victor, assim como muitas outras pessoas, está na faculdade, aprendendo essa coisa complicada que é a programação, e não sabe muito bem o caminho que vai escolher. O principal motivo disso, claro, é que as opções existentes simplesmente são mal explicadas, cheias de boatos e meias informações.

Leia todo o texto »

Recentemente Jakob Nielsen escreveu um artigo sobre os maiores erros no design de aplicações. O texto original dele se referia a aplicações standalone (os programas que você roda no seu computador), mas seus erros podem muito bem ser transportados para o mundo das aplicações na web. Baseado na sua lista, compilei os 7 maiores erros no design de aplicações web.

1 – Interface fora do padrão

Os elementos padrão de interface – links, botões e radio buttons – são as unidades lexicais que formam o vocabulário do design. Mudar a aparência ou comportamento destes elementos é como introduzir num texto palavras numa língua estranha. Alguém pode até entender, mas det vil gøre læserne forvirrede (ou, em português, “fazer isso vai confundir seus usuários”).

Mesmo que você seja capaz de mudar a interface padrão e torná-la ainda melhor que a original, muitos usuários se sentirão confusos com ela, justamente por ser diferente das interfaces que já viram até agora, e diferente do que esperam.

2 – Inconsistência

A confusão acontece quando uma aplicação usa diferentes palavras para se referir à mesma coisa, ou quando usa uma palavra para se referir a várias coisas diferentes. Quando você se refere a algo com um nome numa página e com outro nome em outra página do mesmo site, seu usuário fica confuso.

Usar a mesma palavra para a mesma coisa no mesmo lugar torna as coisas mais fáceis.

Lembre-se: diferente = difícil.


Leia todo o texto »

Eu sempre achei curioso como, na faculdade, eles têm todo um cuidado especial de nos ensinar de uma forma que estejamos despreparados para o mercado de trabalho ao terminar o curso. O pouco que eles realmente nos ensinam, fazem de uma forma muito extensa, demorada, desajeitada.

Tenho prestado atenção há tempos num vício que a faculdade cria em nós de sempre responder a uma avaliação da forma mais extensa possível, pra não dizer que é de forma “enrolativa” (sim, eu gosto de neologismos). Não basta apenas responder o que foi perguntado, para ganharmos a nota máxima precisamos dar três voltas em torno do assunto a passos arrastados, nos aproximar com cautela e só então dar a resposta.

No mundo de verdade lá fora, no mundo real das empresas onde os profissionais estão sempre correndo contra o relógio, os problemas devem ser solucionados de forma rápida, direta. As pessoas precisam ir direto ao ponto. Nas universidades, por algum motivo completamente desconhecido, parece que todos os professores decidiram em uníssono seguir o caminho completamente oposto. Uma solução direta para um problema é punida com uma nota apenas parcial. Você não consegue a nota máxima sem enrolar e resolver o problema de um jeito extenso e demorado.

Até reparei isso recentemente ao fazer uma entrevista de emprego. Sorte minha que foi com algo simples. Ao ter que escrever uma query em SQL, eu precisava unir duas tabelas. Eu poderia ter colocado uma simples vírgula entre os nomes da tabela, e eu tinha noção disso, mas viciado pelas avaliações de faculdade eu tive todo o trabalho extre de escrever por extenso “INNER JOIN” para uni-las. Pior ainda que o entrevistador citou este fato, me lembrando que teria sido melhor ter apenas colocado a vírgula.

Ao sair da faculdade, todos os vícios que eles levam 4 (ou 5) anos pra enfiar na nossa cabeça precisam ser eliminados. É preciso botar muita coisa pra fora e reaprender a fazer muita coisa do jeito certo, sem enrolar. E depois acham estranho quando as empresas reclamam que muita gente da área de TI sai da faculdade sem estar apto pra trabalhar…

PS: Este post saiu muito mais fraco do que eu esperava. Provavelmente é por estar há tanto sem escrever. Acreditem que os próximos textos vão ser melhores. Eu juro pelo Bill Gates mortinho.

Sei que muitos de vocês provavelmente sentiram falta dos meus posts. Muita coisa pra fazer, coisa pra estudar, coisa pra pensar. Tentei um concurso público, não fiquei entre os 3 primeiros (sim, 3 vagas) e cá estou eu novamente. E já volto falando de duas ótimas ferramentas que descobri recentemente no linux: diff e patch. Sinto muito, usuários de Windows, mas vocês ficarão chupando o dedo.

Com arquivos muito grandes, se você quiser atualizá-los você normalmente precisa criar uma nova versão deste arquivo, com as mudanças. Acontece que nesta nova versão, muita informação é repetida. Tudo que não foi mudado acaba sendo repetido. Imagine um arquivo de 2Mb, onde vc mudou apenas o equivalente a 5Kb de informação nele. Normalmente você teria que enviar um novo arquivo completo com os 2Mb pra todo mundo que precisa ter a nova versão. Com as ferramentas diff e patch, você pode fazer diferente.


Leia todo o texto »


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