21 de janeiro de 2009

Pytar and targtk (indt test)

Em breve eu faço dois anos no INdT , talvez por estar chegando ao fim do meu estagio aqui (é, vai deixar saudades) estive lembrando do teste prático que eu fiz pra poder entrar no INdT, após uma rápida vasculhada no gmail (eu amo isso) achei a descrição dos requisitos pro teste prático que mostro abaixo:

1) Desenvolver uma aplicação com os seguintes requisitos:

- A aplicação deverá gerar um arquivo .tar.gz dos arquivos selecionados
- A aplicação deverá funcionar em uma máquina Linux Desktop
- A aplicação deve ser dividida em 3 painéis:
  • O esquerdo deverá conter a árvore de diretório da máquina local. O painel direito deverá ser subdividido em 2 outros painéis (na vertical).
  • O de cima deverá conter arquivos e diretórios da pasta selecionada no painel da esquerda e será possível navegar os diretórios também pelo painel de cima.
  • O de baixo representa o conteúdo do arquivo .tar.gz a ser gerado (também deverá ser possível navegar por ele, assim como criar novas pastas).
Para se adicionar arquivos e diretório no painel de baixo, deve-se selecionar os arquivos no painel de cima ou da esquerda e arrastá-los (ou via menu, ou via copy and paste) pro painel de baixo.


- O arquivo .tar.gz deverá ser gerado após algum evento do usuário,
onde a aplicação deverá perguntar onde o arquivo deverá ser gerado.
- A aplicação deverá ser desenvolvida usando-se GTK em C e em python (2.5). (2 versões)

2) Desenvolver um visualizador do arquivo .tar.gz pro Maemo

- Deve rodar no scratchbox
- Deve ser implementado usando GTK
- Pode usar Python 2.5 ou C

Entrega em 15 dias, trivial não é? e lembrar que sabia muito pouco de C, tive que passar duas semanas dormindo sobre o livro "C Completo e Total".

Na época eu fazia iniciação cientifica na UFRPE (8 horas diárias) além das aulas, e foi dureza achar tempo pra isso, então fiz a versão em python +- em uma semana, e a dureza foi fazer a versão em C.

Versão em Python

Tive pesadelos terríveis com ponteiros e um ser com vida própria chamado gtk_tree, depois de mais uma semana consegui uma versão do aplicativo em C, ainda faltando muitos dos requisitos pedidos, vazando memoria por todos os lados, e com uma centena de warnings. :D

A versão pra maemo? Ficou sem ser realizada :(

Estava dando uma olhada nos fontes e é incrível ver um código seu depois de séculos, ver todas as cagadas que você fez etc, mas sempre lembro que afinal esse foi meu programa em C, logos abaixo estou disponibilizando os fontes dos dois aplicativos em C e em python, lembrando q a versão em python funciona em Windows também (testado no XP).

Estou disponibilizando sob a LGPL, fiquem a vontade pra melhorar, tirar ideias ou deixar a versão em C funcional. No final do post links para os fontes e para os repositórios git (no gitorious) dos mesmos.

PyTar
Fonte: arquivo tar.gz
Gitorious: http://gitorious.org/projects/pytar

TarGtk
Fonte: arquivo tar.gz
Gitorious: http://gitorious.org/projects/targtk

Nenhum comentário: