Tag Archive: code

mpp.py v1.2

O mpp.py é um pequeno utilitário que criei pra manter em sync minha página de fotos (estática) com meus álbuns gerenciados localmente no Picasa.

A última versão (v1.1) foi lançada em julho de 2008, então resolvi que era hora de lançar uma atualização. Não há grandes mudanças na versão 1.2, apenas a evolução do script conforme bugs e necessidades foram surgindo ao longo desses últimos 2 anos.

Se você é um dos 2 ou 3 usuários do mpp.py, a atualização é fortemente recomendada. ;-)

Mais detalhes na página do projeto.

make-photo-pages (mpp.py) 1.1

O mpp.py surgiu da necessidade que tenho de manter em sync minha página de fotos com meus álbuns gerenciados no Picasa (mais detalhes no post do primeiro anúncio público).

Hoje lancei a versão 1.1 do mpp.py. As grandes mudanças são a implementação de um cache do EXIF das imagens e muitas, mas muitas melhorias no código em geral.

Mais detalhes na página oficial:

download | documentation | examples

make-photo-pages (mpp.py) 1.0

Cerca de quatro meses depois do primeiro anúncio público, estou lançando oficialmente o mpp.py 1.0.

Não há grandes novidades (“features”), mas o programa agora está bem mais usável e estável, com cara de v1.0. Não tenho planos de fazer grandes mudanças no mpp.py. Melhorias devem aparecer de maneira orgânica, através de necessidades vindas de ademar.org/fotos ou contribuições. A principal possibilidade de melhorias é a adição de novos modelos, mas como sou um péssimo webdesigner, não me atrevo a ir além do basicão.

Mais detalhes na página oficial:

download | documentation | examples

make-photo-pages (mpp.py)

Depois de anos gerenciando minhas fotos utilizando uma versão ultra-hackeada do makethumbs.sh, finalmente tirei um tempo pra implementar meu próprio programa pra gerenciar os álbuns de fotos que disponibilizo em minha página (não, eu não gosto de usar o flickr). :-)

Creio que o principal diferencial do mpp.py é o suporte à geração de álbums a partir do XML exportado pelo Picasa(TM) do Google, mas segue uma lista de suas principais características:

  • Páginas 100% estáticas (sem sql, php ou cgi)
  • Baseado em modelos (templates)
  • Importa fotos via XML do Google Picasa(TM)
  • Importa fotos de um diretório local
  • Suporte a múltiplos idiomas (i18n)
  • Suporte a captions (texto sob cada imagem)
  • Suporte a texto/html arbitrário nos albums
  • Suporte a EXIF
  • Open Source
  • Simples, rápido, html limpo, CSS, etc…

Se você já tem o layout de sua página pronta e quer simplesmente adicionar as fotos nesse layout, o suporte a templates vem bem a calhar. E se você utiliza o Picasa(TM), a importação do XML é uma mão na roda. Se você não usa nada disso, deve gostar mesmo assim, pois de tantos milhões de programas pra gerar álbums na web, esse é sem dúvida o melhor de todos. ;-)

Testes em cenários diferentes são muito bem vindos.

Ah, a propósito, eu gerencio minhas fotos no Picasa(TM) e meu site é mantido num repositório SVN, então o que faço é exportar (XML) o álbum no picasa, rodar o mpp.py e subir os arquivos com o svn (svn commit, up, etc). Ficou bem prático, agora não tenho mais desculpas pra demorar tanto pra disponibilizar as fotos no site. :-)

Modelo de build-system usando autotools

Além do previamente mencionado CODING, a equipe da Mandriva Conectiva em Manaus também desenvolveu um modelo de build-system baseado em autotools (autoconf, automake, libtool) que acredito ser muito útil. Ele também estava destinado ao esquecimento, mas resolvi ressuscitá-lo e disponibilizá-lo sob a GNU-GPL.

Pra quem o conhece, a parte principal continua a mesma. Eu adicionei algumas funcionalidades (como a geração de bibliotecas, plugins, suporte a pthread) e um pouco de documentação.

Algumas características desse modelo:

  • Recursos modernos do autoconf, automake e libtool;
  • Modular, limpo e facilmente extensível;
  • Suporte a unit-tests em C usando o check;
  • Suporte a code-coverage dos unit-tests com lcov;
  • Suporte a pkgconfig;
  • Modo debug, flags de warnings do gcc, electric-fence, pthreads;
  • make distcheck limpo e funcional;
  • Integrado com doxygen;

Escrevi um pequeno README sobre o uso do modelo que deve ser suficiente para quem já tem os conhecimentos básicos e encontrei um extenso tutorial que deve ser útil até para quem já é experiente. De qualquer modo, vale o bom e velho conselho: “Use the source, Luke”, ele é relativamente intuitivo.

O código está disponível em meu repositório SVN git: http://git.ademar.org/, e deve ser atualizado conforme as necessidades ou contribuições sejam feitas.

BTW, o grosso do trabalho inicial foi feito ainda em 2005 e paradoxalmente, o autor original é o Leonardo Boiko (paradoxalmente porque quem conhece autotools e o leoboiko sabe que o primeiro é conhecido pelo número de gambiarras/xunxos e o segundo pelo às vezes absurdo perfeccionismo). Acho que quando ele ver esse modelo vai querer me matar pelas novas “gambiarras” que adicionei… :-)

Correções e contribuições, como sempre, são muito bem vindas.

CODING: guia simples de boas práticas de programação

Durante o desenvolvimento do projeto XMPM pela Mandriva aqui em Manaus (2004-2006), criamos um documento de boas práticas que era conhecido como “CODING”. O documento é voltado para desenvolvedores C, mas contém um conjunto de práticas que creio serem úteis a qualquer time, independentemente da linguagem ou tecnologia.

Da equipe original só sobrou esse que vos escreve (entenda o porquê), então antes que o CODING se perdesse, achei que valeria a pena disponibilizá-lo para uma audiência maior, sob a GNU/FDL. Espero que ele seja útil para outras equipes e em particular, a projetos open-source.

O documento (que sempre foi em ascii, mantido com o nome de CODING na raiz do repositório) está disponível em minha página. Sugestões, correções e discussões são muito bem vindas.

Aproveitando a deixa, o CODING anda lado a lado com o bom e velho “The Joel Test: 12 Steps to Better Code” e com práticas de desenvolvimento ágil, mas isso é assunto pra outra hora…

update 2006-11-27: removed the verbatim copy from this post. From now on it’s available only at its official page: https://www.ademar.org/texts/coding.html