Timesheet
11/10/06
Há 1 mês atrás vi no The Apple Blog um artigo sobre um aplicativo chamado On The Job. Apesar de achá-lo muito legal, ele é para OSX, além de não ver muita utilidade. Achava isso até o começo desta semana.
Tive que preencher um timesheet e procurar por e-mails de 3 meses atrás para saber o que precisei fazer não foi uma das experiências mais agradáveis. Então, comecei a procurar alternativas para o Linux. No Synaptic, encontrei Worklog e o GnoTime. O primeiro roda em linha de comando e, apesar de gostar de linha de comando, definitivamente não era para mim. O segundo parecia ser interessante, mas não entendi como funciona. Juro que tentei, mas depois de 5 minutos, desisti.
Então, resolvi fazer meu próprio software! Se você adivinhar qual nome eu dei, ganha uma bala! Yep! É Timesheet. A idéia é fazer com que ele sempre fique no tray, para me lembrar que tem uma tarefa em execução. Assim, posso alternar entre elas de maneira muito simples. Quando o Timesheet estiver no tray, você verá algo como:

Se você clicar no tray, a janela do Timesheet aparecerá:

O context menu será parecido com isto:
Uma funcionalidade que é fundamental é detectar se o screensaver está ativo ou não. Dessa maneira, posso definir o que quero fazer com o tempo "ocioso". Entre aspas porque nesse meio tempo posso estar fazer uma outra tarefa relacionada ao projeto e que não necessariamente seja no micro (reuniões, etc). Fiz alguns testes usando o D-BUS e é bem simples de fazer isso usando o Gnome Screensaver, que vem com o Ubuntu Dapper.
Esse fim de semana vou tentar terminar uma versão usável deste aplicativo. Você que usa timesheet: tem alguma funcionalidade que você gostaria que tivesse?
- Permalink
- Trackback
- Comentários (13)
- Ao som de: +44 – Chapter XIII
Python e XML
26/08/06
Estou terminando um aplicativo que faz a compressão de arquivos Javascript com duas engines diferentes: Rhino e JSMin. Faz parte do meu estudo de Python criar ferramentas que me sejam úteis.

Uma das funcionalidades que quis colocar foi a de salvar uma lista de arquivos adicionados. Decidi fazer com XML. Foi uma surpresa quando fui procurar um módulo que fizesse isso e encontrei uma API muito parecida com a do Javascript. Olha só:
from xml.dom import minidom as dom
from xml.dom.ext import PrettyPrint
doc = dom.Document()
div = dom.createElement('div')
text = dom.createTextNode('Python and XML')
div.appendChild(text)
doc.appendChild(div)
PrettyPrint(doc)
Como saída temos:
<?xml version='1.0' encoding='UTF-8'?>
<body>
<div>Python e XML</div>
<p>Wow! Muito parecido com Javascript>/p>
</body>
Legal, né? - Permalink
- Trackback
- Comentários (1)
- Ao som de: Allister – Radio Player
Editor
26/08/06
Finalmente resolvi dedicar um tempo para aprender Python da maneira que eu gostaria. E como sempre tive uma queda por desktop, decidi criar um editor voltado para desenvolvimento web.
Você pode até dizer que já existem tantos por aí, e concordo com você. Mas o ponto é que nunca encontrei nada que me satisfizesse. Para mim, um editor ideal seria um misto de Dreamweaver (sim, ele é um bom editor de códigos) com a agilidade do Scribes. Vou aproveitar também para implementar algumas coisas que vi nos screencasts do Textmate.
Algumas das funcionalidades que pretendo implementar são:
- Suporte a projetos
- Syntax highlight para múltiplas linguagens (PHP, HTML, CSS e Javascript, ao mesmo tempo)
- Integrar com o Subversion (provavelmente será uma das últimas coisas)
- Suporte a FTP
- Suporte a snippets
- Interface limpa
- Suporte a lista to-do
- Exportação de projetos com vínculo de dependências
- Muitos atalhos de teclado
- Autocompletar com hint
- Compressão de CSS
- Compressão de Javascript
- Exportar arquivos escritos em Markdown/Textile
- Possibilidade de definir tabulação independente por linguagem (tab para HTML/Javascript, 4 espaços para PHP)
Tem mais um monte de coisa que eu imagino. Vamos ver como isso vai se desenrolar. Já fiz a tela principal do editor - muito semelhante ao Scribes, por sinal - além de alguns diálogos.
Minha briga no momento é em relação ao syntax highlight. Tem um componente muito simples de usar, que é utilizado no GEdit, Bluefish e Scribes, mas ele não suporta múltiplas linguagens. Outro, é o Scintilla, pode funcionar muito bem como o SciTe, mas é um pouco ruim de fazer funcionar.
Futuramente, pretendo adicionar syntax highlight para Ruby e Python. Tudo por causa do Rails e Webpy.
Como uso Ubuntu, vou integrá-lo de maneira muito forte com o Gnome/GTK2.
Em breve posto mais detalhes.
- Permalink
- Trackback
- Comentários (4)
- Ao som de: Allister – Overrated
