Recently in Produtividade Category

bloqueado.jpgAté hoje eu era assinante fiel do Speedy da Telefônica. Porém, o serviço de atendimento somado ao alto custo do Speedy Business de 2Mb me fizeram migrar para o Virtua 6Mb mega-flash.

O único problema da migração se deu quando eu descobri que a porta 80 estava bloqueada. Eu usava a minha conexão apra hospedar sites de demonstração e para outras finalidades, como para oferecer builds diários do meu projeto open-source: o JFileHelpers.

Depois de buscar muito uma solução, inclusive em fóruns e sites como o Stackoverflow, nenhuma solução foi satisfatória. Todas elas envolviam um redirecionamento para outras portas, como 8080, o que eu não queria.

Enfim, acredito ter achado a solução ideal: eu já havia usado o Apache anteriormente para servir de um proxy transparente. Ou seja, você faz a requisição para um servidor, ele internamente redireciona este request para outro servidor web, e retorna o conteúdo ao usuário. Tudo isso de forma transparente. É uma espécie de façade ou plugging server. Para isso, precisava ter um servidor Apache em um local cuja porta 80 fosse acessível.

Veja o que eu fiz...
em-pe.jpgOs adeptos da metodologia XP já devem estar familiarizados com o termo Stand-up Meeting, que é aquela reunião rápida onde todos trocam suas experiências sobre tarefas, problemas encontrados e etc.

Eu trabalho em regime de Home Office e uma coisa que eu notei recentemente e que está fazendo toda a diferença prá mim é fazer reuniões via telefone em pé. 

Parece coisa de maluco (e se tiver alguém vendo é esta a impressão que eles vão ter mesmo), mas eu explico. 

Quando uma reunião é feita por telefone e você está na frente do computador, o assunto as vezes começa a ficar entediante e você acaba lendo seu e-mail ou um blog qualquer. Agora, quando você está de pé, você acaba obrigado a ouvir o que todos estão falando e digerir toda aquela informação. Além disso, parece que você fica mais entrosado com os outros.

Isso se aplica também a hora que você tem que falar. Devo confessar que falando de pé, andando de lá prá cá e podendo mexer as mãos (não, eu não sou descendente de italiano!) consigo ficar mais articulado. Como meu time todo é americano, tem horas que o inglês dá aquela enroscada. Notei que isso diminui bastante quando você está de pé.

Fora todos estes motivos, ainda tem a grande vantagem de você sair da posição que você fica o dia inteiro e mexer um pouco o corpo. Pode parecer besteira, mas não é.

Fica então a dica. Se algum de vocês experimentar esta idéia, compartilhem a experiência nos comentários.

Até a próxima!

agile1.gifSemana passada tive a sorte de participar de um curso de Agile Development, patrocinado pela IBM - que é meu empregador. O curso ministrado por um dos papas do assunto na IBM, Jim Brisson.

Devo confessar que, tendo algum background em XP, era um pouco cético sobre o assunto. Hoje meu time usa uma pequena parte da gama oferecida pela metodologia Agile: apenas usamos as ferramentas de Sprints (ou Iterations) e Scrums. Devo confessar que fui surpreendido: o Agile, além de ser conceitualmente bem mais light que o XP, tem outros apelos bem interessantes. Se tiver mais interesse sobre o assunto me mande comentários que eu escrevo sobre a metodologia, mas em outra hora :-)

Retomando o assunto principal deste post, neste curso, uma das grandes dúvidas dos PMs presentes era a respeito do controverso Pair Programming. Uma destas dúvidas era da possibilidade de utilizar esta técnica em times distribuídos.

Descobri um screencast que mostra uma ferramenta exatamente com este propósito. Trata-se de um plugin para o Eclipse chamado Cola. Então, chega de papo e segue o screencast abaixo:



Cola: Real-Time Shared Editing from Mustafa K. Isik on Vimeo.


Via DZone
jfilehelpers.png
Depois de um bom tempo só promovendo o uso da biblioteca JFileHelpers através de um post neste blog, decidi fazer o website do projeto.

Embora ainda esteja no seu começo, pelo menos é um lugar comum para os usuários poderem ter uma referência de como usar a biblioteca. A outra grande vantagem é ter um versão em inglês. Assim, os gringos também podem conferir e quem sabe consigo algum novo colaborador.

jfilehelpers-website.png

Se você tem vontade de participar de um projeto Open Source em Java, que faz uso de tecnologias interessantes como Refactoring, Annotations e muito mais, visite a página de contatos do projeto e me mande seus dados!

Mesmo se você acredita que não pode ajudar com o código, você pode fazer testes, ajudar no website ou mesmo sugerindo novas funcionalidades. Não deixe de deixar seu comentário se você testar a biblioteca! Este é aquele tipo de projeto "movido a comentários" :-).





Links:
criatividade.jpgNo mundo de hoje, a palavra concorrência ganhou um novo sentido.

Em uma realidade onde seu principal concorrente não está mais necessariamente na mesma cidade, estado ou sequer no mesmo país, ela se tornou um fator decisivo entre o sucesso e o fracasso: a criatividade.

A sua presença hoje pode resolver disputas difíceis. Imagine competir, por exemplo, com a mão de obra chinesa, fruto de um país que por muitos não é considerado nem uma economia de mercado.

Uma das nossas maiores armas, que nos permite competir mesmo em condições adversas é uma das características mais marcantes do nosso povo, que desenvolveu a criatividade como uma forma de subsistir.

Já se tornou um jargão aquela frase que diz que sucesso é 10% inspiração e 90% transpiração.

Então, aplicando esta frase ao nosso caso, a parte da inspiração diz que você deve ter fé que você é sim uma pessoa criativa. Mas só isso não basta: você tem que exercitar constantemente sua criatividade. E esta, você adivinhou, é a parte da transpiração.

Baseado em um artigo de John Hoff, para o blog americano Cultive Greatness, enumero abaixo oito dicas de como ser mais criativo.


Escute

É muito importante saber ser um bom ouvinte. E por ser um bom ouvinte eu quero dizer ouvir sem julgar, sem tirar nenhuma conclusão precipitada. Esta característica é vital se você vai criar um produto para encher os olhos dos clientes e de seu empregador. Lembre-se: escutar não é a mesma coisa que apenas ouvir.

Uma dica: tente ouvir uma rádio ou um canal novo. Tente descobrir qual é a audiência alvo. Quem seriam fiéis ouvintes e quem ouviria esta rádio ocasionalmente? Que pessoas influentes poderiam ouvir esta rádio? Qual é o seu mercado potencial?


Faça Brainstorm

Brainstorm é uma maneira clássica de gerar idéias criativas. Mas antes, tente aquecer sua criatividade.

Aquecendo a criatividade

Pegue um lápis e um pedaço de papel em branco e comece a escrever. Se nada vier a sua mente, escreva isso, e depois escreva o que vier a sua mente, independente do que for. Então, a partir disso, elabore.

Um outro exemplo, pegue seu papel e lápis, tente criar algo novo e descreva o que você está pensando, mesmo se parecer absurdo. Tente criar uma nova forma de vida. De onde ela vem? Quais são seus objetivos? Ou então, tente criar uma pessoa. Quem é ela? Elabore a idéia.

Estes são bons exemplos de como deixar sua mente em um estado favorável a "pensar fora da caixa".


Complemente os pontos negativos com pontos positivos

Este talvez seja um dos pontos mais importantes.

As vezes, quando você quer fazer algo, sua cabeça continua dizendo que é impossível, que você não consegue. Escreva este pensamento e, logo ao seu lado, escreva também 2 ou 3 motivos que provam que você pode fazer.

Faça isso de forma rápida e de forma rotineira. Você logo vai perceber que você treinou sua mente para reagir de forma automática a um ponto negativo, apresentando um pensamento positivo, que pode até viabilizar sua idéia.


Esteja preparado

Se você estiver procurando idéias criativas, mantenha sempre um bloco e uma caneta ao seu alcance. Nunca se sabe quando um pensamento crítico pode aparecer. As vezes um pensamento ou uma idéia alheia, ou algo que você ouve de alguém pode ser a faísca para uma nova idéia.


Aprenda

É claro que quanto mais você conhecimento você adquire, mais o ambiente fica propício para novas idéias criativas.

Você não saberia como física e paisagismo podem interagir, a não ser que você saiba ao menos um pouco de cada uma. A idéia aqui é simples: quanto mais você sabe, mais você pode criar.

Idéias para expandir os horizontes:

  • leia blogs;
  • faça cursos;
  • leia livros;
  • tente uma coisa nova, que você nunca fez;
  • ensine algo a alguém;
  • participe de um grupo de discussão ou uma comunidade onlline;
  • fale com pessoas que você não falaria normalmente;
Continue esta lista com suas próprias idéias.


Faça críticas

Quando você estiver sem idéias criativas, pare e faça uma crítica.

Revistas

Se você está estagnado, tente folhear uma revista e criticar as propagandas. Quais prendem sua atenção e porque? Qual é o público alvo? O que você faria diferente se você tivesse feito a propaganda? Naqueles que chamaram sua atenção, como você os mudaria?

Seus concorrentes

Visite páginas de seus concorrentes. Veja se o que eles fazem servem como inspiração de idéias a seu favor. Existe algo que eles não fizeram, mas que você poderia fazer? Ou fazer melhor, de forma diferenciada?

Auto-análise

Pegue novamente um papel e desenhe uma linha no centro. No lado esquerdo escreva "Meus pontos fracos" e, do lado direito "Meus pontos fortes". Tente listar todas suas fraquezas, sempre compensando com pontos fortes do lado direito.

Agora você tem um mapa do que você precisa fazer.

Pergunte, pergunte, pergunte

Quando você estiver empacado em uma tentativa de ser criativo, faça uma série de perguntas para tentar obter uma nova perspectiva de um produto ou idéia.

  • O que eu posso substituir?
  • O que eu posso adicionar para fazer isto um pouco melhor?
  • O que é desnecessário?
  • O que é o oposto disso?
  • De onde isso veio?
  • Como isso vem sendo usado?
  • Para o que mais isso pode ser usado?

... e por aí vai. Continue as perguntas e faça sua própria lista.


Exercite o seu processo criativo

Tente uma dessas atividades de tempos em tempos:

  • Todo dia, escolha um tópico e anote; então crie um diagrama para ver aonde esta idéia te leva.
  • Pense em um produto. Como ele poderia ter sido inventado de uma forma diferente, produzindo o mesmo resultado?
  • Depois de ler metade de um livro, feche e pense como você terminaria a história
  • Leia livros verídicos, e tente resolver os problemas antes que eles sejam resolvidos na história.
  • Faça palavras-cruzadas, porque elas te fazem pensar amplamente, em todo tipo de assunto.

Viaje

Uma das melhores formas de gerar idéias criativas é indo a lugares novos ou simplesmente sair e andar. Não tem dinheiro para viajar? Não tem problema. Vá aonde você tem que ir, mas faça um caminho diferente.

Novas experiências e novos destinos são uma ótima forma de gerar novas perspectivas e gerar criatividade.


E estas são as 8 idéias para ajudá-lo a ser mais criativo.

E você, se considera uma pessoa criativa? Quais são suas técnicas?
mouse-alttab.jpgA única frase que me vem à cabeça é: Como não pensei nisso antes?.

Um pequeno executável automatiza o Alt+Tab, tornando possível que você mude de janela apenas com o mouse. Sem instalação, sem um monte de arquivos, sem raízes brancas (exagerei!).

Para utilizar, você simplesmente segura o botão da esquerda e, sem soltar, pressiona o da direita. Cada vez que você aperta o da direita, é um Alt+Tab. Fantástico!

alttab-mouse.jpg

Ele vem em dois "sabores": AltTab e CtrlAltTab que no Windows Vista mantém a janela aberta se você soltar o botão. Eu prefiro a primeira versão, mas gosto é gosto.

via Lifehacker [via CyberNet]



Links:

log5j

| | Comentários(0) | TrackBacks (1)
log5j-picture.jpgNuma das minhas andanças atrás de novidades, me deparei com o log5j. Primeiramente, pensei que fosse uma atualização do famoso framework para logging ou algum novo framework que trouxesse novidades em relação ao já famigerado log4j.

Na verdade, não é nada disso. Trata-se apenas de um face-lift para o log4j, trazendo uma implementação mais atual. Esta biblioteca - que, diga-se de passagem, só tem uma classe - tem dois principais objetivos:

Permitir logs no estilo do comando printf:

Antes:
log.error(
   "Houve um erro: " + foo + 
   " por causa disso: " + bar + 
   " nisso: " + car );
Depois:
log.error(
   "Houve um erro: %s por causa disso: %s nisso: %s", 
   foo, bar, car);
Além de prováveis ganhos de performance, acredito que o código fique bem mais limpo.

Acabar com o inconveniente Logger.getLogger(NomeDaClasse.class):

Antes:
private static final Logger log = 
   Logger.getLogger(NomeDaClasse.class);
Depois:
private static final Logger log = new Logger();
E é isso, simples assim... Eu gostei bastante porque é extremamente simples e despretensioso, mas agrega duas funcionalidades que há tempos eu gostaria de ver no Log4J.

Vocês acham que vale a pena usar essa lib? Porque? Mandem comentários!



Links:
Você acha que seu mouse é ergonômico? Pense novamente:lite-on-technology-mouldable-mouse.jpg Este mouse foi o vencedor do Red Dot Design Award. O Moudable Mouse (ou Mouse Moudável) é feito de massa de modelar, coberto com um tecido de nylon e poliuretano. Em sua base, feita de PC/ABS recicláveis contendo o Circuito Impresso, o laser ótico e as pilhas.


powernap-option2.jpg

Soneca poderosa parece coisa de português, não é? Mas não é nada disso, leia o artigo abaixo para algumas dicas para recarregar as baterias durante o dia.

Muito já foi falado dos benefícios de dormir por um curto intervalo de tempo após o almoço para recuperar a energia e estimular o cérebro. Se você lê blogs de produtividade em geral, existem muitos conselhos para recuperar a energia durante um dia de trabalho.

Não estamos falando das siestas, que duram horas. Esta "dormidinha" é conhecida como power naps, cochiladas poderosas ou - muito melhor - só soneca.

Segundo seus defensores, estas sonecas reduzem o stress, aumentam a produtividade, melhoram a memória e a concentração, entre outras maravilhas. 

Para os que ainda não ouviram falar desta técnica, ela consiste em dormir de 20 a 30 minutos, acordando antes que comece a fase de sono profundo.

Eu confesso que já usei esta técnica algumas vezes, favorecido pelo fato de trabalhar em regime Home Office. Os resultados foram diferentes, sendo que os melhores foram obtidos quando usei uma variação da Power Nap, que fiquei conhecendo através de um artigo no blog lifehacker.com chamado de caffeine nap.

Segue uma descrição, traduzida direto to artigo:

"A Caffeine Nap é bem simples.  Você deve tomar uma xícara de café e tirar uma soneca de 15 minutos imediatamente.  Pesquisadores descobriram que o café ajuda a liberar seu corpo da adenosina, uma substância que te faz ficar sonolento.  Em alguns testes, uma combinação de uma xícara de café com uma tentativa imediata de adormecer deixou um maior estado de alerta por um maior período de tempo.  A recomendação é de dormir apenas 15 minutos, não mais nem menos.  E você deve deitar e tentar dormir imediatamente após tomar o café."
Eu aconselho que você experimente primeiro a cochilada tradicional, de 20 a 30 minutos, ainda mas se você não bebe café costumeiramente. Se achar que não está sendo o ideal, parta para a versão cafeinada.

E você, qual a sua técnica para agüentar o dia-a-dia e recarregar as baterias? Deixe seu comentário!



Alguns artigos relacionados:



text.jpgUma coisa que eu sempre gostei de trabalhar é com conversão de dados. Sempre achei desafiador pegar dados em um formato proprietário de uma aplicação e tranformá-lo em algo interessante para outra aplicação.

Durante minha carreira como Analista Desenvolvedor, já participei de diversas migrações de dados, já criei softwares para automação de conversão de interfaces, já utilizei toolkits prontos, como o Data Transformation Services do MS SQL.

Foi esta experiência que me levou a conhecer um excepcional toolkit para importar, exportar e trabalhar com arquivos texto, mais conhecidos como flat files. Trata-se do FileHelpers, escrito pelo argentino Marcos Meli. O toolkit se aproveita de annotations para descrever o arquivo e transformá-lo de texto para um objeto ou vice-versa. O grande problema, para mim, deste toolkit é que ele está escrito em C# e eu utilizo Java no meu dia-a-dia. Então veio a idéia de fazer um port desta biblioteca. Nasceu então o JFileHelpers. A idéia inicial é ter as mesmas funcionalidades do FileHelpers, em Java.

Mas chega de lero-lero, vamos às funcionalidades. Veja que interessante como fica um bean anotado pelo JFileHelpers:
@FixedLengthRecord()
public class Customer {
	@FieldFixedLength(4)
	public Integer custId;

	@FieldAlign(alignMode=AlignMode.Right)
	@FieldFixedLength(20)
	public String name;

	@FieldFixedLength(3)
	public Integer rating;

	@FieldTrim(trimMode=TrimMode.Right)
	@FieldFixedLength(10)
	@FieldConverter(converter = ConverterKind.Date, 
		format = "dd-MM-yyyy")
	public Date addedDate;
	
	@FieldFixedLength(3)
	@FieldOptional
	public String stockSimbol;	
}

Neste exemplo, estamos trabalhando com um arquivo de texto com delimitação, por exemplo:

1   Antonio Pereira     10012-12-1978ABC
2   Felipe Coury          201-01-2007
3   Anderson Polga       4212-11-2007DEF

Tudo o que é necessário fazer, para ler este arquivo seria:
FileHelperEngine<Customer> engine = 
	new FileHelperEngine<Customer>(Customer.class);	
List<Customer> customers = 
	new ArrayList<Customer>();

customers = engine.readResource(
	"/samples/customers-fixed.txt");

E voilá: você tem um um ArrayList devidamente preenchido com objetos do tipo Customers, com todas as regras que você definiu. Note que a conversão do campo addedDate foi feita de forma transparente, usando as anotações de formatação:
@FieldTrim(trimMode=TrimMode.Right)
@FieldFixedLength(10)
@FieldConverter(converter = ConverterKind.Date, 
	format = "dd-MM-yyyy")
public Date addedDate;

Além destas funcionalidades, o JFileHelpers permite que você faça o caminho inverso, ou seja, se você tem objetos anotados, ele pode fazer a persistência de forma extremamente fácil, veja no nosso exemplo:
O arquivo para este exemplo ficaria:

   2        Felipe Coury  201-01-2007   
   3      Anderson Polga 8212-11-2007APR

Isto é apenas o começo. Existem muito mais funcionalidades fantásticas no JFileHelpers (como por exemplo, trabalhar com arquivos delimitados, entre outros). Porém, sou suspeito para falar porque sou o pai da criança. Então sugiro que, se você quiser fazer alguns testes e conhecer melhor esta biblioteca, faça o download dos binários dos arquivos fontes.

Agora, se você se empolgar e quiser contribuir para o projeto, entre na página do SourceForge e cadastre-se como desenvolvedor, você será muito bem vindo. Em caso de dúvidas, entre em contato comigo, que eu terei prazer em ajudar.



Links:

Sobre este Arquivo

Esta página é contém os artigos arquivoados da categoria Produtividade.

Java é a categoria anterior.

Tecnologia é a próxima categoria.

O conteúdo atual está no índice principal o procure nos arquivos, onde você encontra todo o conteúdo.

Clicky Web Analytics