O que é Shadow Filter?
Shadow Filter é (será) uma aplicação que gera filtros em pastas. Você pode criar filtros baseados no tipo dos arquivos contidos em uma pasta, fazendo com que eles sejam automaticamente movidos para o local desejado. O Shadow Filter será licenciado sobre GPL e é uma aplicação feita para o GNOME, usando C e GTK.
História
Eu queria aprender efetivamente a programar e parar de “testezinhos”. Resolvi então começar a desenvolver uma aplicação. Eu simplesmente não tinha nenhuma idéia do que fazer, e também não sabia qual linguagem usar. Inicialmente pensei no Python porém acabei fazendo em C, nenhum motivo especial, simplesmente parei de ficar pensando em qual linguagem fazer, e resolvi que seria C. Pedi a um amigo meu (que apesar de estudar direito e não estar muito afim de aprender computação, usa Fedora, provando que um usuário normal, com um pouquinho de boa vontade pode usar software livre) que me desse alguma idéia, então ele sugeriu que eu criasse um filtro para arquivos em pastas.
Era final do ano (2008) e eu iria viajar pra praia nas próximas semanas. Recolhi então uma grande quantidade de documentação do GTK, C, GLib, GLADE e fui para a viajem. Foi a semana na “praia” que mais rendeu na minha vida, desenvolvi toda a parte gráfica com o Glade e comecei a trabalhar com o GTK (eu já sabia alguma coisa de C), eu estava de férias então com mais ou menos um mês e meio o Shadow Filter chegou no ponto em que está hoje. Depois, com a volta às aulas o desenvolvimento parou, falta de tempo é a desculpa que mais ouvimos por ai, então não gosto de ficar sempre dizendo isso, mas REALMENTE eu não tenho tido muito tempo, trabalho de 8:30 às 17:30 e estudo de 19:00 às 22:40, chegando em casa por volta de 23:50.
Tá, e porque reescrever tudo em Python?
Simples, eu quero aprender Python e orientação a objetos. Até as férias do meio do ano, provavelmente não poderei me dedicar inteiramente a esse aprendizado, porém pretendo ao menos começar.
Eu acho que a única maneira de aprender a programar é programando, a linguagem eu realmente acho que é apenas um detalhe, e a escolha do Python se deve ao fato de ele ser largamente utilizado em projetos de software livre além de ser orientado a objetos. Eu poderia começar outro projeto, mas eu quero continuar desenvolvendo o Shadow Filter, não tenho nenhum motivo especial para isso (afinal, até acho que ele não será tão útil), apenas quero continuar. Então resolvi continuar o mesmo projeto porém em Python.
Vale a pena?
Não sei, eu aprendi muito escrevendo ele em C (apesar de não ter desenvolvido nem metade), aprendi muito sobre o GTK também, enfim, é coisa demais para aprender em pouco tempo. Não há nenhum problema com o C, pelo contrário, apenas quero aprender algo novo (apesar de ainda não saber o suficiente de C).
Agradecimentos
Gostaria de agradecer especialmente ao Allan por ter me dado essa idéia e ao Apu que fez o ícone/logo do projeto, e que inclusive precisa ser colocada de acordo com as especificações do Tango.
Agradecer também ao Gordo e ao Diego que me ajudaram com idéias para o nome e para a logo (apesar de que a idéia da logo acabou sendo do Apu mesmo), bom, agradecer até ao Henrique pela excelente sugestão dada quando eu ainda estava pensando no que fazer:
“Pelo que eu entendi, você tá pedindo idéia de programa pra poder fazer com essa linguagem aí. Apesar de eu nunca ter ouvido falar desse tel de “Python”, eu acho que posso te dar alguma idéia de programa.
Tipo, o engraçado é que eu pensei na hipótese de você desenvolver esse tal programa, com a idéia de alguém aqui, talvez até com a minha, e o trem for bom mesmo, você registrar como seu e ganhar montes de dinheiro. Você vai dividir com quem teve a idéia, né??
Hahahahha, brincadeira. Mas agora, falando sério, o programa que eu queria dar idéia pra você fazer é tipo um programa que me permita teletransportar pelo mundo. Ir de um lugar a outro na velocidade da luz. Como eu disse antes, não sei se essa linguagem permite isso, mas fica aí a dica.”
E obrigado a todos eles novamente, por terem agüentado os meus surtos quando algo funcionava XD.
Idéias para o futuro do Shadow Filter
Eu tenho algumas idéias legais para ele, em futuras versões será possível criar filtros baseados em extensões de arquivos, nome, data de modificação enfim, a intenção é tornar a criação de filtros o mais flexível possível. Ele irá monitorar a pasta e quando um arquivo for adicionado a ela, ele irá automaticamente mover/excluir/copiar o arquivo para a pasta especificada, caso seja um arquivo compactado ele irá detectar o conteúdo e fazer a ação devida. Haverá também um log com todos os filtros aplicados e quero também colocar a opção de automaticamente converter formatos de áudio e vídeo, resolvendo o meu problema de quando eu baixo algum mp3 e tenho que converter para OGG “manualmente”.
Não sei se vou terminar ou não de desenvolve-lo, até porque, os planos divulgados para o GNOME 3.0 (http://live.gnome.org/ThreePointZero/Plan) provam que o Shadow Filter realmente não será muito útil, mas o objetivo é aprender, se for um software útil melhor.
Se alguém tiver curiosidade em ver o código escrito até agora basta entrar em contato comigo, não acho que haja nenhuma necessidade de distribuí-lo ainda porque até agora, a única coisa que ele faz é criar filtros para arquivos de áudio, vídeo e imagem, além disso ele ainda não monitora a pasta, ou seja, ele é inútil (por enquanto).
Segue abaixo algumas screenshots dele:
