Anotações na nuvem com o Springpad

Com a novela do fim do delicious, muita gente correu para buscar alternativas de migração dos seus favoritos, ao mesmo tempo que muitos serviços correram para implementar e disponibilizar recursos de importação dos dados do delicious. Por isso, tenho passado as últimas semanas utilizando o Springpad para organizar anotações e bookmarks. Por enquanto, o Springpad vem atendendo bem tanto para o gerenciamento de favoritos quanto para uma alternativa bem superior ao Evernote – o qual ainda não consegui entender porque faz tanto sucesso – para tomada de notas.

Disponível na Chrome Web Store, o Springpad conta com uma extensão para o Google Chrome e um bookmarklet para os demais browsers. Por meio da extensão do Chrome, além de “clipar” a página na aba atual do browser, é possível visualizar os itens já registrados. Os tipos de anotações disponíveis são notas, tarefas, livros, filmes, produtos, receitas, lugares e bookmarks. Cada tipo tem um comportamento diferente. Por exemplo, quando você “clipa” um produto, o Springpad passa a ficar “de olho” nele e avisa quando seu preço cai.

O restante, só experimentando para descobrir. O que é mais bacana é que cada pessoa pode descobrir uma utilidade diferente para a ferramenta, a depender dos seus interesses. Para o futuro, a depender de como o negócio for conduzido, pode ser que ainda ouçamos falar bastante dessa ferramenta.

Tomato Timer: aplicação web para Pomodoro Technique

Atingir a verdadeira simplicidade é uma arte. Percebi isso quando vi a repercussão de um tweet meu, com um comentário despretensioso sobre o Tomato Timer, uma aplicação web que nada mais é que um timer regressivo de 25, 15 e 5 minutos. Somente isso, mas perfeito para auxiliar na Pomodoro Technique. Sem complicações e fazendo apenas 1 coisa, mas realmente bem.

Organizando tarefas com o Producteev

Esta semana praticamente tropecei no Producteev, um aplicativo web para gerenciar listas de tarefas. “Mais um”, pensei. Aficcionado pelo tema que sou, fiz o tour, criei uma conta e fiquei muito satisfeito com o que vi. O Google Tasks, uma das minhas ferramentas de produtividade prediletas, corre sério risco de ficar escanteado. Vou dizer o porquê.

O Producteev é intuitivo e fácil de usar, apesar do que pode parecer ao ver tantas funcionalidades descritas no site. Basta digitar a descrição da tarefa e apertar enter. Depois disso, é fácil voltar à lista de tarefas para classificá-las, atribui-las a outras pessoas ou agendar prazos a elas.

A integração com outras ferramentas e plataformas é um dos pontos fortes do aplicativo. É possível sincronizar as tarefas com o Google Calendar (Google Agenda), incluir e alterar tarefas por e-mail, instant messenger, iPhone e outros. Em resumo, é possível usar o serviço sem necessariamente acessar a interface web do Producteev.

Com tantas funcionalidades era de se esperar que o aplicativo fosse um tanto restritivo, mas ele é bem flexível quanto à metodologia de organização. Apesar de ser visivelmente inspirado em GTD, é possível utilizar a ferramenta de maneiras mais simples. Pessoalmente, acho o GTD mais trabalhoso que o necessário, não é para qualquer pessoa. Mas isso é assunto pra um outro post.

A parte do Producteev que mais impressiona é o uso interessante que ele faz de processamento de linguagem natural. Nesse ponto, melhor do que eu contar, é mostrar um vídeo (em inglês, sorry):

Em tempo, vale lembrar que até o blog da producteev.com segue o mesmo padrão de qualidade, com bons artigos sobre produtividade pessoal assuntos correlatos (tem um sobre prendedores de papel simplesmente genial).

Referências

DreamPie: mais um shell com esteróides para Python

O interpretador interativo do Python é considerado por muitos desenvolvedores como um dos recursos mais interessantes da linguagem. De fato, podemos dizer que é ele quem possibilita alta produtividade ao escrever software em Python apenas com um editor de textos simples, sem depender de IDEs pesadas e complexas.

O problema é que a interface padrão (shell) do interpretador às vezes é um pouco limitada quando precisamos experimentar trechos de código ligeiramente mais longos ou intrincados. Editar uma linha submetida ao interpretador por engano pode ser um processo um tanto quanto doloroso. Para resolver esse problema, existem algumas versões alternativas do shell que agregam muito em funcionalidades e usabilidade, tais como o ipython e o bpython. Dessas duas, a que mais me impressionou foi o bpython, mas logo nas primeiras tentativas percebi que o aplicativo é um tanto quanto instável, apresentando muitos problemas ao exibir na tela o código digitado, principalmente ao tentar recuperar alguma linha do histórico. Esses bugs me fizeram deixar o bpython um pouco de lado até que aparecesse algo mais robusto.

Hoje a espera parece ter terminado. O site UbuntuGeek publicou um post divulgando o DreamPie, que promete mais estabilidade e facilidade de uso. Instalei a ferramenta e, após alguns minutos de brincadeira, posso confirmar que ela promete o que cumpre. Criada por um dos colaboradores do IDLE, ela apresenta interface limpa, fácil de configurar e de editar código do histórico de comandos. Alguns dos principais recursos do DreamPie são:

  • Submissão de código por blocos, ao invés de por linhas
  • Auto-complemento de código e de nomes de arquivos
  • Auto-complemento de parênteses
  • Integração com o matplotlib
  • Histórico dos resultados da execução dos trechos de código (output)
  • Saídas muito longas são “dobradas” (results folding), para não atrapalhar a visualização do código
  • Suporte a Python 2.5, 2.6, 2.7, Jython 2.5, IronPython 2.6 e Python 3.1
  • É software livre, licenciado pela GPL 3

dreampie

Referências

Coding Dojo Sergipe

Depois de um longo período afastado do blog — devido a algumas mudanças “tanto no pessoal, como no profissional”, como diria o filósofo moderno Fausto Silva — volto para ajudar a divulgar a ótima iniciativa dos desenvolvedores sergipanos em criar o Dojo Sergipe. Tive a oportunidade de participar de dois dos quatro dojos realizados até agora e a impressão é que o movimento está no caminho certo.

É sempre bom ter a chance de se reunir com outras pessoas motivadas e interessadas em programação, independente da linguagem. Desde que tomei conhecimento da ideia de coding dojo, percebi que se tratava de uma abordagem genial para o aprendizado de programação, uma vez que alia a prática deliberada à diversão. Isso sem falar na oportunidade de conhecer pessoas novas e trocar experiências.

Recomendo muito a todos os desenvolvedores de Aracaju e região que dêem uma passada lá na lista de discussão, se informem sobre as próximas reuniões e compareçam!

Um pouco sobre como fazer a diferença

Para quem acompanha as comunidades de desenvolvimento ágil no Brasil, o trabalho de Vinícius Teles dispensa apresentações, mas dessa vez ele se superou! Muito inspiradores os slides de sua apresentação na última edição do PythonCampus. Aliás, não é de hoje que todo o pessoal da PythOnRio, do Dojo Rio e comunidades afins vem fazendo um trabalho exemplar e digno de admiração. Eu mesmo me tornei fã dos caras. Estão todos de parabéns!

Vale compartilhar:

Começando um user group: a experiência do PUG-PE

Recentemente, surgiu uma thread da lista de discussão da comunidade Python Brasil cujo autor solicitava dicas e sugestões sobre como iniciar e movimentar um grupo de usuários local. Muitas pessoas deram sua opinião, o que me fez notar que nem todo mundo costuma divulgar seu ponto de vista sobre o assunto. Por isso, resolvi compartilhar um pouco da minha experiência com o PUG-PE, o Grupo de Usuários Python de Pernambuco. Antes de mais nada, quero deixar claro que não tenho a intenção de esgotar o assunto, até porque estamos todos em contínuo processo de aprendizado. O relato a seguir é simplesmente fruto da necessidade de documentar a iniciativa. Afinal, small acts make great revolutions!

O início

No início de julho de 2007, comecei a perceber que as pessoas interessadas em Python no Recife estavam muito isoladas, apesar de saber que havia iniciativas importantes envolvendo tanto o uso quanto o ensino da linguagem algumas instituições locais. Entrei em contato com alguns participantes da lista de discussão nacional que já haviam mencionado residir em Pernambuco, para ver se seria uma boa ideia criar uma lista de discussão e tentar reunir os usuários locais de Python em torno dela. Diante do retorno positivo, criei a lista e divulguei na comunidade Python Brasil. Em pouco tempo, começaram a surgir as solicitações de participação e no intervalo de uma semana já eram mais de 15 membros.

A primeira tentativa

A empolgação do início nos motivou a marcar rapidamente a primeira reunião presencial. Se de todos os inscritos na lista uns quatro ou cinco comparecessem, já teríamos o que comemorar. Para quebrar o gelo – afinal quase ninguém se conhecia pessoalmente – optamos por um encontro informal num restaurante do Recife, numa noite de meio de semana. Infelizmente, por uma grande coincidência, todas as outras pessoas que haviam confirmado presença tiveram contratempos de última hora e acabei indo sozinho ao “não-encontro”.

Depois de passado algum tempo, encaramos esse pequeno tropeço como um lição aprendida, que nos prepararia para o que poderia vir pela frente. Pessoalmente, entendi o episódio como uma métrica do quanto ainda precisávamos maturar a ideia do grupo de usuários. Talvez, se tudo tivesse dado certo na naquela primeira tentativa, não teríamos nenhuma experiência para relatar hoje. Decidimos dar tempo ao tempo.

Um breve hiato

Durante algum tempo, a lista de discussão se limitou a funcionar como um mural de anúncios de eventos relacionados a software livre, com um ou outro pedido de ajuda com alguma tarefa de programação em Python. De vez em quando surgiam interessados em realizar o tão sonhado encontro presencial. Sempre incentivei a todos, me colocando à disposição para o que fosse necessário, mas deixando claro que não iria tomar a iniciativa de organizar o encontro sozinho novamente. Não tinha certeza se essa seria a melhor maneira de lidar com a situação, mas na hora me parecia a única saída para evitar um novo eventual “fogo de palha”.

A retomada

O grupo continuou assim até meados de janeiro de 2010, quando o Marcel Caraciolo ingressou na lista após fazer o que eu tinha feito lá em 2007: procurar por algum grupo local de Python antes de tentar iniciar um por conta própria. Era a fagulha de iniciativa que faltava para impulsionar o funcionamento do grupo pra valer. Percebi que o catalisador trazido por Marcel era algo simples, mas extremamente importante para um grupo de usuários de tecnologia: uma rede de contatos no meio acadêmico. A partir daí, aconteceu um crescimento impressionante no número de membros da lista de discussão. A quantidade de participantes praticamente dobrou em menos de um mês, alcançando quase 100 pessoas. Chegava o momento de fazer uma nova tentativa de reunir o pessoal.

Os encontros

Com um massa crítica razoável de pessoas interessadas a atuantes, ficou mais fácil concretizar o objetivo de realizar a primeira reunião presencial. Uma ferramenta importante no processo de organização dos encontros foi o uso de enquetes para auxiliar na tomada de decisões. Com elas foi possível verificar com antecedência qual o dia da semana, horário e local que atenderia a maior parte das pessoas. Desde então, temos conseguido realizar encontros mensais em manhãs de sábado, no Centro de Informática da UFPE.

Tem sido uma experiência gratificante ver a quantidade de participantes e a qualidade dos encontros aumentar a cada mês. Na última edição, em abril de 2010, contamos com a presença de cerca de 40 pessoas, número que eu jamais poderia imaginar que pudesse ser alcançado tão rápido. Muito bom também perceber que o pessoal já começa a não mais esperar ou perguntar o que pode ser feito para ajudar: vai lá e toma a iniciativa de reservar sala para os encontros, avisar aos amigos que ainda não conhecem e assim por diante.

As lições aprendidas

Não existe receita de bolo nem fórmula mágica para iniciar um grupo de usuários. Até mesmo a experiência que tenha servido para um grupo pode não servir para outro. Os motivos para isso são os mais diversos, desde o perfil dos interessados, até as diferenças culturais de cada região. No entanto, nunca é demais registrar e compartilhar as lições aprendidas, pois pode ser o detalhe que esteja faltando para alavancar o funcionamento de um grupo.

  • Não tente promover uma reunião informal demais logo na primeira tentativa. É normal que situações muito descontraídas sejam um pouco intimidantes quando as pessoas ainda não se conhecem pessoalmente, o que é ainda pior se o grupo inicial for composto por muitos principiantes. Geralmente as pessoas com esse perfil são atraídas pela expectativa de que vão ser expostas a algum conhecimento novo, a ser transmitido por pessoas mais experientes.
  • Aproxime-se do ambiente acadêmico. Os universitários, principalmente dos períodos iniciais, costumam ser muito receptivos a novidades ou a algo que os indique um caminho a seguir, tanto na graduação, quanto na vida profissional. Além disso, a parte da logística também fica mais simples, já que o acesso a recursos e espaço físico adequados é mais fácil.
  • Tenha paciência e avance em baby steps. Introduza ideias e novidades gradualmente e aguarde um pouco para observar o feedback. Às vezes uma ideia que parece boba desperta muito mais interesse naquele determinado momento do que algo que você considere genial.
  • Aprenda a conviver com a diversidade. As pessoas têm graus de interesse diferentes por diferentes atividades. Não é porque você está disposto a despender muita energia e tempo no grupo de usuários que todos têm a obrigação de fazer o mesmo.

Ainda temos muito o que aprender e várias coisas a realizar, mas acredito que o mais difícil foi vencer a inércia. Períodos de altos e baixos virão pela frente, mas certamente estamos cada dia mais preparados para manter a cabeça fora da água.

Se você tem alguma experiência parecida ou mesmo alguma dica complementar, seria ótimo vê-la compartilhada nos comentários!