Desenvolvimento
Case: Omicron Fine Art
Enviado por rafael em 05/10/2011
Essa semana entreguei mais um site feito com Drupal. Mesmo trabalhando há 8 com Drupal esse foi o meu primeiro site com algum tipo de E-commerce.
O site é o Omicron Fine Art. A proposta do site é comercializar fotografias de alto padrão de fotógrafos renomados.

O projeto
O cliente me procurou querendo um site para poder divulgar e comercializar fotografias de alguns dos mais renomados fotógrafos do Brasil. Esse site é uma galeria virtual e também uma loja onde as pessoas podem comprar, em edições limitadas, fotos dos artistas.
A execução
Como de costume, fiz o site inteiramente com Drupal. A versão escolhida foi a 6, pois é a que eu tenho mais familiaridade e também a com maior número de módulos em versão estável para as funcionalidades necessárias.
O trabalho mais pesado do site foi adaptar o padrão visual desenvolvido pela agência CS Revue ao Drupal. O trabalho foi facilitado pois o diálogo com os designers sempre foi muito aberto e simplificado.
O restante do site é constituído de portfólio dos artistas e seus produtos à venda.
Para fazer o site usei, ao todo, 42 módulos (veja o make file). Tive que fazer uma adaptação do módulo UC Boleto para usar uma biblioteca mais simples do que a BoletoPHP, o que gerou o que, no momento que escrevo, é a versão de desenvolvimento do UC Boleto integrada à biblioteca Boleto escrita pelo Francisco Luz.
Resultado
O resultado já está no ar e pode ser visto em www.omicronfineart.com.br. Ainda são necessários alguns pequenos ajustes de layout que vão aparecendo à medida que o site vai recebendo conteúdo real, mas está praticamente pronto.
Nova iniciativa
Enviado por rafael em 20/10/2009
No meu último post falei um pouco dos meus anseios e expectativas para o futuro. Falei também que iria desvirtuar um pouco o conteúdo desse site, mas as coisas mudaram um pouco.
Durante a primeira aula o Fábio Binder, professor e coordenador do curso salientou a importância de se ter um site dedicado ao seus projetos de jogos para que ele já vá servido de portfólio para a pessoa. Assim decidi não mais fazer os relatos nesse blog que você lê agora. Para isso criei o meu blog de GameDev.
O nome não é muito criativo mas é para servir de repositório dos meus projetos então ele leva um nome simples mas focado.
Convido você, se tiver interesse na área, a assinar os feeds desse blog e me acompanhar nessa nova empreitada.
Cinco anos com Drupal
Enviado por rafael em 06/05/2009
Lendo esse post do Károly Négyesi (não me peça para pronunciar isso pois não faço idéia de como seria) me toquei que também estou fazendo 5 anos de uso e desenvolvimento com Drupal!
Comecei a mexer com o Drupal em 2003/2004 quando ainda trabalhava na Intertexto como programador. Naquela época o Orzenil apresentou o Drupal como uma possível ferramenta para a construção de sites (meu trabalho então) na empresa.
O Drupal estava na sua versão 4.4 (ou 4.2, não lembro direito) e estava deixando a desejar em vários pontos, e acabamos não o usando plenamente. Naquela época ele fazia uso da Xtemplate uma engine nojenta para construção de temas o que tomou muito tempo e tornou as coisas cansativas.
Depois disso, em 2005, criei o Drupal Brasil. Um site que começou pequenino e acabou virando a maior referência de Drupal em língua portuguesa (nada oficial, mas não achei nada que mostre o contrário). Hoje o Drupal Brasil tem mais de 4800 usuários e é uma comunidade ativa e vibrante que faz muito pelo Drupal no Brasil. Estão programadas algumas mudanças que virão, se Deus quiser, ainda esse mês!
Esse ano, como já disse algumas vezes no Twitter, é o ano do Drupal na minha vida. Já ministrei dois treinamentos Mão na Massa, tenho mais um agendado para junhoe, e, também em junho, uma palestra no CMS Brasil. Isso sem contar nos módulos que estou desenvolvendo e nos projetos que fui convidado a participar.
Infelizmente não consegui introduzir o Drupal na empresa (governamental) na qual trabalho por questões políticas (o que, no governo, não é política não é mesmo?). Isso é um ponto que me deixa um pouco chateado mas consigo viver com isso ainda por um tempo.
No fim, como disse o Károly o Drupal me deu muitas coisas e eu espero ter respondido à altura.
Os benefícios do Internet Explorer 8
Enviado por rafael em 14/04/2009
Não é (ou não deveria ser) nenhuma novidade que há alguns dias atrás saiu a versão 8 do Internet Explorer.
Não gosto dos produtos da Microsoft, muito menos o Internet Explorer pois, esse último, afeta diretamente o meu trabalho de forma negativa (na maioria daz vezes).
Todo desenvolvedor web que se preze deve saber que o Internet Explorer, especialmente a versão 6, não segue os padrões da web e exige varios hacks para funcionar corretamente.
Não testei ainda a versão 8, mas duvido muito que ela seja muito melhor que a versão 7. Penso assim porque a Microsoft tem o péssimo hábito de demorar demais para melhorar seus produtos. No entanto uma coisa posso afirmar a respeito dessa versão, mesmo sem ter testado: ela é, com certeza, melhor que a versão 6.
Agora temos duas versões à frente do IE 6 o que me desobriga a suportar tal versão. Digo isso sem medo, pois em todo lugar (vide um post que fiz alguns dias atrás e também a página principal do Yahoo! Brasil) há anúncios da nova versão. Isso sem contar o Windows Update.
Assim, entendo eu (ainda que alguns me considerem radical) que, quem está usando ainda o IE 6 escolheu, deliberadamente, usar esse "navegador" ou é obrigado (seja lá pelo que for, não cabe discutir isso aqui).
Assim, não esperem que esse site, ou qualquer outro que eu venha a fazer daqui para a frente, funcione no Internet Explorer 6. Esse navegador está morto, e enterrado! Aleluia!
Por isso que tá nessa vida desgraçada
Enviado por rafael em 20/03/2009
Desenvolver para Web não é uma das coisas mais triviais do mundo. Existem algumas tarefas que precisamos realizar e que, em algumas circunstâncias, torna o desenvolvimento mais penoso.
Lidar com diferentes navegadores é um desses fatores complicadores. Lidar, especialmente, com o Internet Explorer é pior ainda. Esse navegador (se é que podemos classificá-lo assim) tem vários problemas para se adequar aos padrões da Web (ou Webstandars, como preferir).
Hoje um amigo me mostrou uma imagem, que, a princípio, achei que fosse falsa, mas descobri que não é. A imagem é essa aí abaixo e eu conferi, pouco antes de escrever esse post, que a tal notícia está lá na página do UOL. Veja (se ainda estiver lá)

O que mais me deixa revoltado nisso tudo é se fomentar o uso de um software com falhas de segurança e com problemas de desempenho. Além disso um software que não adere com precisão aos padrões mundiais de desenvolvimento.
É por isso que estamos nessa vida desgraçada de desenvolvedor sofredor!
Fugindo do tédio
Enviado por rafael em 10/03/2009
Desenvolvimento web é muito prazeroso, mas às vezes se torna entediante. Não é a primeira vez que eu escrevo isso, mas é que esse é um sentimento recorrente para mim nos últimos tempos.
Na verdade eu acho que não é só o desenvolvimento web que se torna entediante, mas todo o desenvolvimento. Tudo que você fez repetidas vezes tende a se tornar entediante, e com o desenvolvimento web não poderia ser diferente.
Obviamente que nem sempre temos as mesmas situações. No entanto, algumas tarefas se tornam tão triviais que faz com que não as queiramos fazê-las. Isso torna toda a coisa entediante.
Numa tentativa de fugir um pouco desse tédio cíclico é que estou me aventurando em outras áreas de desenvolvimento, como desenvolvimento de aplicações para desktop e jogos.
Desktop foi o meu primeiro contato com programação, nos idos de 1998 quando comecei a aprender Object Pascal (Delphi). Já o desenvolvimento de jogos é uma coisa que venho querendo aprender desde essa mesma época, mas nunca dediquei muito tempo.
Hoje em dia tenho brincado com Python e PyGTK para fazer aplicações desktop (ainda não tenho nada que posso mostrar, mas está em progresso). Já para jogos, ainda não encontrei nenhum framework/biblioteca que me faça gastar muito tempo estudando-as.
Cheguei a fazer a pré-matrícula numa pós de gradução em desenvolvimento de jogos, mas, por falta de quórum, o curso foi adiado para o próximo semestre.
Acho que procurar outras áreas de desenvolvimento é uma forma de quebrar esse tédio natural além de ativar áreas criativas que nem sempre estimulamos. Quebrar o tédio é bom porque você também ganha em produtividade.
É claro que existem muitas outras formas de quebrar o tédio, mas para mim, novos desafios são, quase sempre, a melhor forma de fugir desse mal que atrapalha tanto.
Módulo Blogroll para o Drupal 6
Enviado por rafael em 16/02/2009
Depois de algum tempo usando o Drupal 6 no meu site pessoal, resolvi migrar o módulo de Blogroll que eu havia feito para o Drupal 5.
A funcionalidade é exatamente a mesma do anterior, a única coisa que fiz foi otimizar o funcionamento para ficar mais "Drupal Way".
Quem quiser baixar o módulo, está anexado a esse post.
Vida de programador
Enviado por rafael em 27/03/2008
Trabalhar com a Web é uma das minhas paixões, programar é outra. Atualmente trabalho com desenvolvimento Web, o que, dada a primeira afirmação, deveria me fazer muito feliz, mas não é 100% assim.
Trabalhar com desenvolvimento para Web é muito legal e muitas vezes desafiador, mas nos últimos meses venho me sentindo cada vez mais desmotivado e desinteressado. Explico. Não é que eu tenha deixado de gostar de programar, mas é que cada vez mais tenho feito um trabalho que considero básico e trivial. Isso é desestimulante.
A empresa onde trabalho tem alguns poucos projetos legais mas na sua maioria são coisas banais do ponto de vista de um desenvolvimento desafiador. Não estou dizendo que o trabalho feito aqui seja inútil ou que não tenha relevância para a sociedade, pois não seria verdade afirmar isso. Mas do ponto de vista do desenvolvedor é tudo "mais do mesmo".
Estou em um ponto de saturação. Já não tem mais a mínima graça fazer aplicações CRUD básicas e sem nenhuma problemática realmente inteligente.
O que tem me dado algum prazer é trabalhar com o Drupal, mas como já disse outro tempo atrás, não tenho mais interesse em implementar vários sites. Meu interesse com o Drupal é criar módulos novos, e deixar para que outras pessoas possam criar seus próprios sites.
Como não posso simplismente sair da empresa (tenho família para sustentar) o jeito é intercalar com o desenvolvimento e documentação do Drupal para ver se a frustração é menor.
Guia de melhores práticas do Drupal - Parte II
Enviado por rafael em 15/02/2008
Esse artigo é a continuação de um outro, escrito há alguns dias atrás.
Recomendo que você leia também o primeiro artigo, uma vez que eles se complementam.
Então vamos lá!
Não modifique o core do Drupal
Essa é uma recomendação muito comum mas geralmente não é ouvida pelos novatos.
Como o Drupal é um projeto mantido por uma comunidade muito ativa, sempre há alterações e correções no seu código base. Ao alterar o core do Drupal você pode acabar tornando sua instalação insegura. Além disso você irá tornar, automaticamente, seu código incopatível com os novos releases do Drupal, o que, automaticamente irá fazer com que você fique sem poder atualizar quando sair uma correção.
Suponhamos que você criou um projeto, alterou o core do Drupal mas agora outra pessoa vai dar manutenção nesse projeto. Se você, por acaso, esqueceu de avisar das alterações, isso pode tornar a manutenção muito penosa.
Uma excessão é quando você está corrigindo um bug, ou fazendo uma melhoria, e espera devolver isso para a comunidade. Obviamente você terá que rastrear e ver se o patch que você enviou será incorporado ao próximo release do Drupal. Se isso não acontecer você terá que manter isso de qualquer forma. Por isso nunca é recomendável se fazer esse tipo de alteração em sites que irão para produção.
Segurança
Segurança é importante. Quando você vai manter um site no ar, é importantíssimo se manter atualizado. O Drupal dispõe de uma newsletter onde todo aviso de correções de segurança são enviados. Quem mantém um site com Drupal deve estar atento a essa lista, de preferência assinando a newsletter ou sempre atento à divulgação na página de avisos de segurança.
Testes
Antes de colocar um projeto online, é de suma importância fazer testes. Os testes ajudam a encontrar problemas e evitam colocar um site com falhas críticas online.
Existem várias ferramentas que podem ser usadas para criar um ambiente local para testes. O XAMMP e o MAMP são as ferramentas mais comuns.
Toda vez que você for instalar um módulo novo, fazer atualizações e/ou correções no seu site, procure fazê-lo localmente. Baixe uma versão igual a que está no seu servidor de produção, e faça os testes. Se tudo correr sem problemas é sinal de que você pode por no ar.
Alguns pontos importantes a serem observados:
- Nunca desenvolva ou teste no ambiente de produção. O Drupal é fácil de instalar localmente, não compensa o risco;
- Teste os seus backups com regularidade em um ambiente diferente. Isso assegura que seus backups estão funcionando e você não é pego de surpresa sem saber como restaurar um backup.
- Teste toda atualização localmente. Evite por seu site em risco.
Gestão de arquivos e pastas
O Drupal contém vários arquivos e pastas sob uma determinada estrutura. Essa estrutura existe para facilitar o nosso entendimento e trabalho.
Ao criar um site simples (não-multisite) você deve criar uma estrutura dentro da pasta sites/all para os seus módulos e temas. Essa estrutura visa facilitar a atualização futura do seu site, uma vez que você só precisará fazer backup do que estiver dentro da pasta sites (e, obviamente, do banco de dados). Essa estrutura é composta de duas pastas: modules e themes. Asssim, a estrutura final ficaria: sites/all/modules e sites/all/themes.
Em sites múltiplos (multisites) você deve posicionar os módulos e temas específicos dentro da pasta de cada site. Assim, se você tem um site chamado www.example.com você irá criar: sites/www.example.com/modules e sites/www.example.com/themes
Se você desejar pode renomear o arquivo update.php no entanto, ele já contém proteções para evitar abuso. Também, se você quiser, poderá remover o arquivo install.php uma vez que ele só é necessário na instalação do site.
É uma boa prática deixar o arquivo CHANGELOG.txt (ainda que com outro nome), para que você se lembre qual versão está aquele site (ou conjunto de sites). Quem administra muitos sites pode acabar se esquecendo e não fazendo a atualização.
Por último, ao construir um tema ou módulo, evite espaços nos nomes. Isso pode causar problemas em sistemas opreracionais não-windows.
Conclusão
Com esses dois pequenos artigos espero ter mostrado os benefícios de se trabalhar de acordo com as melhores práticas.
Essas melhores práticas vêm de testes e experiências de usuários, e existem para fazer sua vida mais fácil. Tente se guiar por elas, e certamente seu trabalho, e dor de cabeça, será menor.
Abraço
Guia de melhores práticas do Drupal - Parte I
Enviado por rafael em 06/02/2008
Já faz algum tempo que quero escrever alguma coisa sobre o Drupal mas faltava um assunto específico. Resolvi então que vou começar do básico para quem quer desenvolver com o Drupal: As melhores práticas.
Esse é o primeiro de uma série sobre melhores práticas do Drupal
Início
Geralmente quando vamos desenvolver com base em algum framework ou CMS já existente, existe algum manual ou recomendações de melhores práticas para esse desenvolvimento. Com o Drupal não é diferente. Existe um guia de melhores práticas no site do Drupal, e ele vai servir de base para esse texto.
Planeje antes de começar!
Quando vamos desenvolver algum projeto, seja um site, seja a construção de uma casa, antes, precisamos planejar. Sem planejamento, muitas vezes, acabamos deixando passar algo e na hora de implementar, dá aquela dor de cabeça.
É na hora do planejamento que vemos se aquela funcionalidade vai conflitar com outra, ou se aquele item que consideramos visualmente bonito vai caber dentro do contexto. Gaste um bom tempo (mas não todo o tempo) planejando o que você vai fazer.
O Drupal possui uma gama enorme de módulos que podem ser combinados para fazer o seu trabalho mais fácil, então veja se você não está reinventando a roda, e pense em usar alguns desses módulos também.
Esteja pronto para mudanças
O Drupal, bem como boa parte dos projetos Open Source, é muito dinâmico e de tempos em tempos há novas atualizações. Algumas são atualizações de segurança, outras nova versões com várias novas funcionalidades.
Temos sempre a mania de querer o mais novo e com os mais lindos recursos na hora que eles saem. Esteja pronto para mudanças, mas seja moderado ao fazê-las. Como o Drupal tem muitos módulos de terceiros que, eventualmente, você vai acabar usando esteja certo de que eles já são compativeis com a versão mais nova do Drupal, antes de decidir atualizar o Drupal do seu site.
Um site que esteja maduro e bem construído, não precisará de novas atualizações quando elas saem. Mas esteja pronto para a evolução. Um prazo que se recomenda para fazer essa atualização é de 12 a 24 meses.
Um ponto importante são as atualizações de segurança. Essas devem ser aplicadas sempre que saírem(desde que sejam indicadas para o seu caso, é bom lembrar), pois não impactam (geralmente) no funcionamento, mas na segurança.
Se envolva com a comunidade
O Drupal é um software Open Source e que trabalha com o modelo de comunidade. Quando você usa o Drupal você se torna parte da comunidade. Você pode ser um membro atuante ou não, isso vai depender do seu perfil e interesse. No entanto, a recomendação é que você esteja sempre em contato com a comunidade.
Um dos princípios do Software Livre é a possibilidade de retornar algo que você melhorou. Isso é importante para o projeto, uma vez que você pode ajudá-lo a se tornar mais forte e pode ser importante pra você, dependendo do seu interesse na comunidade. Se você fez algo que pode ser devolvido à comunidade, devolva! O Drupal e os módulos de terceiros que você está usando, foram devolvidos para a comunidade em algum tempo, então que tal fazer o mesmo?
Ser um membro ativo também nos possibilita estar à par do estado do projeto e como ele irá evoluir. Isso também nos ajuda a nos planejar para as atualizações que virão. Em alguns casos você inclusive pode participar dessa decisão.
Faça backups
Uma coisa que muita gente esquece, mas que é fundamental: backup! Vez ou outra enfrentamos problemas que podem acabar afetando o nosso site e/ou sistema. Pode ser um problema físico em um dos servidores, uma empresa que deixa de prestar serviços e vários outros problemas. Ter um backup é de suma importância.
Ter um backup não significa, no entanto, que o mesmo esteja funcionando. Teste, de tempos em tempos, os seus backups. Veja se tudo está sendo feito da forma correta. Se em um momento você precisar restaurar um backup e ele não estiver funcionando, será o mesmo que nunca ter feito um.
Teste seu código
O Drupal é uma ferramenta extremamente flexivel, e assim você pode fazer muitas coisas com ela. Mas, no calor do desenvolvimento, às vezes deixamos passar alguma coisa, que pode estragar o nosso trabalho.
Teste exaustivamente o seu código. Seja um módulo, um bloco, um tema. Teste tudo muito bem antes de aplicar a mudança. Testes são muito importantes.
Um ponto que merece maior destaque são os blocos do Drupal. Se um bloco estiver com erro, o site inteiro pode parar de funcionar. Uma forma simples de testar o código antes de colá-lo para funcionar dentro de um bloco, é criar uma página, definir o "Formato de entrada" como sendo PHP e alí testar o seu código. Se tudo der certo, então você poderá usá-lo no seu bloco.
Fim da parte I
Chegamos ao fim dessa primeira parte. Em breve vou postar aqui uma nova parte desse artigo, falando mais sobre outras boas práticas para o desenvolvimento com o Drupal.
Se você quiser ir se adiantando, basta dar uma olhada na página do manual que estou me baseando.
Até breve!