Diário eletrônico

Tema do Django para GNOME

Por semente em 01 Ago, 2008 17h22

Eu utilizo no meu GNOME o tema Clearlooks acho que desde que ele foi lançado. Tentei utilizar outros, mas nunca me acostumei.

Depois que o grande pixel-artista Jader Rubini, fez um lindo fundo de tela para a comunidade Django Brasil, eu dei uma uma pequena personalizada no Clearlooks e o chamei de Django. E por que não? Tem as mesmas cores comumente utilizadas pelo Projeto Django.

Eu achei que o conjunto (fundo de tela, clearlooks e cores) ficou bonito e agradável. Dê uma olhada:

Foto da área de trabalho do semente

Minha área de trabalho.

Se gostou também, você pode obtê-los nos links abaixo:

Lista de discussão Django Apps

Por semente em 31 Jul, 2008 11h01

O Michael Elsdörfer criou a lista de discussão Django Apps. A idéia é utilizar a lista para suas próprias aplicações Django e isso possui, no mínimo, duas grandes vantagens:

  1. Se faz desnecessário a criação de uma lista de discussão para cada nova aplicação;
  2. Existe uma potencial possibilidade de outras pessoas, não necessariamente usuárias de suas aplicações, participarem das discussões com ótimas opiniões.

Eu não iria criar listas de discussões para minhas aplicações, uma vez que o número de discussões tenderia à zero e seria uma tarefa chata, mas, com isso, as aplicações Diário, Fleshin e Tube ganharam um local para discussão!

Então, quando precisar, já sabe onde pode discutir algo a respeito das aplicações citadas acima. Já adicionei o grupo de discussão nas páginas dos meus projetos no Google Code. Utilize o prefixo [diario], [fleshin] e [tube] no assunto das mensagens, como descrito na página inicial do grupo:

All messages should be prefixed with the application name in brackets. If the application name itself has the popular django prefix, it should be left off. E.g. use [tables] for django-tables.

Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!

Por semente em 21 Jul, 2008 15h05

…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!

Legibilidade e reaproveitamento de código na "URLConf"

Por semente em 08 Jul, 2008 6h00

É comum nas configurações de URL (URLconf) [1] do Django, patterns como este abaixo:

urlpatterns = patterns(
    'django.views.generic.date_based',
    (r'^(?P<year>\d{4})/(?P<month>[0-9]{2})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$',
        'object_detail', dict(info_dict, slug_field='slug', month_format='%m')),
    (r'^(?P<year>\d{4})/(?P<month>[0-9]{2})/(?P<day>\d{1,2})/$',
        'archive_day', dict(info_dict, month_format='%m')),
    (r'^(?P<year>\d{4})/(?P<month>[0-9]{2})/$',
        'archive_month', dict(info_dict, month_format='%m')),
    (r'^(?P<year>\d{4})/$', 'archive_year', info_dict),
    (r'^/?$', 'archive_index', dict(info_dict, num_latest=5)),
)

Apesar da modificação nas URLs serem raras, a legibilidade da forma acima, queira ou não, prejudica numa eventual manutenção e a probabilidade de ocorrer um erro aumenta.

Uma solução que ao meu ver facilita muito a leitura seria utilizando a função url(), como no código abaixo, retirado do django-fleshin:

photo_detail = url(
    regex  = '^(?P<album>[-\w]+)/(?P<slug>[-\w]+)/$',
    view   = 'fleshin.views.photo_detail',
    kwargs = dict(photo_info_dict, slug_field='slug'),
    name   = 'fleshin-photo'
)
photo_list = url(                       # all photos + album list
    regex  = '^$',
    view   = 'django.views.generic.list_detail.object_list',
    kwargs = dict(photo_info_dict, paginate_by=FLESHIN_NUM_LATEST,
                  extra_context={'album_list': Album.objects.all}),
    name   = 'fleshin-photo-list'
)
photo_album_list = url(                 # only photos in ``album``
    regex  = '^(?P<album>[-\w]+)/$',
    view   = 'fleshin.views.photo_list',
    kwargs = dict(photo_info_dict, paginate_by=FLESHIN_NUM_LATEST),
    name   = 'fleshin-photo-album-list'
)

urlpatterns = patterns('', photo_detail, photo_list, photo_album_list)

Perceba também que a forma acima facilita a reutilização dos patterns pelo seu projeto, não ficando preso ao que foi definido no django-fleshin, reaproveitando, por exemplo, o mesmo padrão de URL para o detalhamento de uma Photo (photo_detail) e alterando o padrão para a listagem das mesmas (photo_list e photo_album_list).

[1]Geralmente encontrado em um arquivo de nome urls.py.

Sergio Amadeu no FISL e a Internet sob Ataque

Por semente em 07 Jul, 2008 12h28

Nas palavras de Jean Ferri:

No último FISL eu assisti a uma palestra do Sérgio Amadeu, entitulada "Internet sob ataque: as tentativas de controle da rede e o combate a cultura hacker", que foi, como já era esperado, excelente e perturbadora. Procurando ontem, encontrei o podcast desta palestra no Portal do Software Público:

http://www.softwarepublico.gov.br/fisl9/file/Palestra_Sergio_Amadeu?m=download

Ahh, cuidado com os "downloads de segurança" do Windows... ;-)

http://www.softwarepublico.gov.br/fisl9/file/Sergio_Amadeu?m=download

A palestra, disponível acima no primeiro link, tem duração de 34 minutos. Recomendo àqueles que, como eu, não tiveram a oportunidade de ir ao FISL, à escutarem.

O segundo link é apenas um trecho de um assunto sério que atinge bastante gente, e, diga-se de passagem, bom para dar umas risadas.

Embutindo trechos não interpretados em reStructuredText

Por semente em 01 Jul, 2008 13h38

No artigo anterior precisei inserir um vídeo do YouTube e, como utilizo a linguagem de marcação reStructuredText, é necessário que o código em HTML para o vídeo não seja interpretado pelo reST.

Se você, como eu, precisa passar um código não-interpretado pelo reST, é necessário o uso da diretiva raw, como no exemplo abaixo:

.. raw:: html

   <object>
     <param name="movie"
            value="http://www.youtube.com/v/1IfGjXibDQs&hl=en&rel=0"></param>
     <embed src="http://www.youtube.com/v/1IfGjXibDQs&hl=en&rel=0"
            type="application/x-shockwave-flash"></embed>
   </object>

Fica a dica! Na documentação possui outros exemplos de uso.

O degolador (de fotos) continua nas ruas!

Por semente em 29 Jun, 2008 22h46

Um artista conhecido como The East London Decapitator continua degolando pessoas em outdoors e em outros anúncios publicitários londrinos.

Foto de uma de suas façanhas recentes

T.O.D: 24/05/08 @ Mare street, Hackney

Ele utiliza métodos de culture jamming em suas performances (veja no vídeo), substituindo cabeças por outras imagens como se a pessoa tivesse sido decapitada.

londonpaper hijack @ old street tube 30/01/2008

Quem quiser conhecer outros hacks do artista, recomendo que visite o seu set no Flickr.

Código do site disponível para baixar

Por semente em 18 Jun, 2008 10h15

Como prometido anteriormente, o acesso à leitura no sistema de controle de versões deste website foi liberado. Isso quer dizer que agora é possível baixá-lo. Para tal, você precisará do Bazaar instalado (provavelmente existe um pacote para seu sistema, verifique na página de download do mesmo).

O site foi escrito em Python utilizando o framework de desenvolvimento web Django, portando será necessário tê-lo instalado também para caso queira testá-lo em seu computador. Siga as instruções no Guia de Instalação. Caso ainda não conheça o Django, talvez seja interessante o estudo de sua documentação para entendimento do código.

Baixando

Para obter o código do site, utilize a ferramenta de linha de comando bzr:

bzr branch http://code.taurinus.org/sementeproject/mainline/ sementeproject

O código em http://code.taurinus.org/ está sendo disponibilizado em um "dumb server", então não espere por uma boa performance.

Executando

Antes de mais nada, você precisará também dos seguintes pacotes instalados em seu PYTHONPATH:

Será necessário também o uso da biblioteca CSS libcss-taurinus, seus arquivos deverão estar em media/css/lib/. Experimente fazer assim:

bzr export http://code.taurinus.org/libcss-taurinus/mainline/ sementeproject/media/css/lib/

Enfim, para rodar o projeto localmente, execute o seguinte comando:

sementeproject/sementeproject/manage.py runserver

Mais informações no site do projeto.

Olá mundo!

Por semente em 16 Jun, 2008 12h48

É com muita satisfação que, enfim, coloco meu website pessoal no ar! Quem me conhece sabe que há vários anos estou pelejando por isso e, felizmente, hoje foi o dia. Devagar e sempre! Assim as coisas vão acontecendo(?).

Como podem perceber, o formato do site é um weblog. Procurarei escrever sobre as coisas que estou envolvido no dia-a-dia, mais especificamente com Software Livre, GNU/Linux, Administração de Sistemas, Desenvolvimento de Software e, eventualmente, assuntos relacionados à música, vegetarianismo e movimentos sociais.

O site foi desenvolvido apenas com ferramentas livres (Emacs, Gimp...) e com o auxílio do framework web Django. Algumas aplicações para Django também foram fundamentais para a conclusão do site:

O código do site também está disponível como software livre (GPLv3) e você pode visualizá-lo através do site do projeto. Em breve liberarei o acesso ao controle de versões para que seja possível baixá-lo. A idéia é que o código sirva de referência àqueles que estão estudando Django e para quem possui interesse em um site pessoal utilizando este framework.

Toda crítica é muito bem-vinda! Minha pretensão é deixar público o conhecimento que adquirir ao longo do tempo e também aprender com os outros.

Seguimos!