Rock and Rails: Ruby e Rails no ES! :)

18 de setembro de 2011 by Léo Hackin 12 comentários

Aloha amigos,

Passando rapidamente para informar com grande prazer mais um evento organizado pela Giran (@giran_br) em solos capixabas. :)

No dia 01/10/11 (011011 em binário é 27 woooow!) o Rock and Rails, o primeiro evento de Ruby e Rails do ES. Estamos muito orgulhos e anciosos com o evento pois não conhecemos muitos devs Ruby/Rails no ES e esse é uma oportunidade muito bacana de conhecer não apenas quem já conhece um pouco da linguagem mas também falar da linguagem pra quem apenas houve falar dela por aí.

Entre os palestrantes estão algumas pessoas da Giran e de outras empresas. Irei palestrar um pouco sobre testes usando RSpec e espero que dê tudo certo. (risos).

O Rock and Rails será um evento dedicado ao desenvolvimento em Ruby e a framework Ruby on Rails, cuja aceitação e adoção nas empresas está em franco crescimento.   Este evento é inédito no estado e tem como objetivos principais disseminar o conhecimento da linguagem/framework e dar uma ideia da quantidade de interessados/profissionais/entusiastas não apenas da linguagem mas do desenvolvimento para internet.

O evento está sendo organizado pela equipe da Giran Ecommerce Solutions e não terá fins lucrativos: todos os recursos obtidos junto aos parceiros, patrocinadores e incrições será revertido para cobertura do evento e compra de brindes para sorteio ao final do evento.

Formato do evento

O evento contará com 2 tipos de palestras: além das regulares (em torno de 45 min) teremos algumas Lightning Talks, que são micro-palestras muito rápidas de 5 minutos onde as pessoas falam sobre assuntos muito específicos de modo a mostrar por exemplo uma técnica, uma ferramenta e coisas do gênero.

A inscrição do evento é de R$ 20,00, simbólicos apenas para pagar os custos do evento e comprar brindes e coisas do tipo. :D

Irado né? Então não perca tempo, pois as inscrições já estão acabando.Faça já sua inscrição e, porque não, ajude a divulgar o evento.

Siga-nos no twitter (@rockandrails ) e mande o seu “Eu vou ao @rockandrails !”. Ou mesmo pelo Facebook, qualquer ajuda na divulgação será muito bem vinda!

Visite a página do evento e conheça todos os detalhes: www.rockandrails.com.br.

1
2
<a href="http://rockandrails.com.br" target="_blank">
<img src="http://www.rockandrails.com.br/wp-content/uploads/2011/08/banner-divulgacao.jpg" alt="" /></a>

Share

ZTD e Pomodoros (2 anos depois)

5 de setembro de 2011 by Léo Hackin 23 comentários

Aloha!

A exatos dois anos eu estava num turbilhão de coisas acontecendo simultaneamente e todas elas eram “urgentes”. Comecei a utilizar algumas ferramentas para me organizar na minha então então vida de programador-gestor-empresário-cara-do-cafézinho a então recente aberta Giran.

Alguns meses depois estava usando durante o dia a combinação Mapas Mentais + GTD + Pomodoros. Praticamente dois anos depois, muitas das coisas foram adaptadas, melhoradas e repensadas e geraram até uma palestra que fiz na Giran e para outras empresas. Conversando com as pessoas, vi que muita gente ainda fica surpreendida ou mesmo não conhece formas legais de se manter atualizado.

Você é organizado ? Já tentou se organizar pra trabalhar melhor ?
Sua forma de organização lhe permite trabalhar de forma efetiva e com qualidade de vida ?

Este artigo é uma versão atualizada, otimizada e re-organizada de um antigo post meu sobre como organizar o dia-a-dia com uma diferença legal que é mostrar um pouco de como tento me organizar “na prática”. Muito do que vou escrever é um resumo transformado em práticas do que li e aprendi com o GTD (do grande David Allen), ZTD (uma versão simplificada e mais prática do GTD que eu sigo bastante hoje em dia criada pelo Leo Babauta do Zen Habits), a técnica do Pomodoro (para realização de tarefas no dia-a-dia) e XP - Extreme Programming (método de desenvolvimento de software que para mim vai muito além do software).

Hoje estou usando efetivamente ZTD + Pomodoros.

A leitura é longa … espero que ao final ela sirva de algo para você. :)

1) antes de tudo, organize o macro sua vida num mapa mental

O primeiro grande problema que sempre tive foram as dezenas de coisas que queria fazer e realizar ao mesmo tempo. Se você é uma pessoa focada e que não tem muitos hobbies ou interesses, provavelmente isso não fará sentido para você. Mas agora coloque todas as coisas que você quer fazer (TUDO MESMO): quero voltar a tocar guitarra, tocar bateria, brincar com meu Arduino, voltar a escrever, escrever mais no blog, aprender ao menos 3 linguagens de programação, trocar meu carro e … e … e … ufa! São tantas coisas.

Uma das partes que mais gera stress é aquela sensação que o cérebro tem de que coisas inacabas estão por fazer. Ele fica te lembrando a todo momento de que algo tem que ser acabado e isso surge nas horas mais inoportunas possíveis: com sua família, antes de dormir, ao ver algo para comprar relacionado com algo inacabado. Talvez você já tenha se pegado pesquisando por dias algo relacionado a uma vontade reprimida ou inacabada para deixar isso por Terra logo após alguns dias.

Você quer caminhar, compra um tênis super bacana, caminha por uma semana e deixa isso pra lá, porque tem outras coisas a sempre feitas. Tudo isso oprime e stressa todo um sistema que, já desorganizado, tende ao colapso em ocasiões como essa.

A descontinuidade não é apenas culpa do comprometimento por si só, mas culpa de um sistema já sobrecarregado de N prioridades que ficam indo e vindo em sua cabeça e tirando seu foco principal naquele momento da sua vida. “Muito do stress que as pessoas sentem não vêm de ter muito a se fazer. Ele vêm de não terminar o que elas começaram” [David Allen].

A solução para mim foi utilizar um mapa mental. Uma mapa mental é basicamente um diagrama com várias ramificações que te dá oportunidade de ver de forma macro e segmentada um conjunto grande de informações relacionadas. Esta forma de organização pode ser usada de várias formas e é largamente usada para passar idéias de projetos, organizações e tudo mais. O grande barato disto é a forma como nosso cérebro consegue visualizar as relações entre nossas necessidades de uma forma muito mais efetiva que várias listas.

Organizando um pouco do dia

A idéia principal do mapa mental nesse momento é você organizar e separar da forma mais visual possível a sua vida. Em média, com menos de uma hora você conseguirá colocar no mapa tudo o que você acha que tem que ser feito para que você seja “feliz e organizado”. Vale botar tudo nesse mapa e que lhe atormenta em algum momento: sua vida profissional, pessoal, sonhos a curto e médio prazo. Isso significa desde as coisas que você tem que realizar nas próximas semanas até colocar o carro que você quer comprar em algum tempo ou as coisas que você quer comprar para seu homeoffice ou sua sala nova. :)

Evite detalhar as coisas nesse momento: escreva elas da forma mais direta possível. Isso vai funcionar a partir da idéia que seu objetivo é listar tudo o que você acha que tem ou que quer concluir agora, amanhã, semana que vem ou em alguns meses.

A ferramenta que venho usando desde sempre é o MindMeister (http://www.mindmeister.com/). Ele é online, gratuito (até 6 mapas) e tem versão pro iPad. :) . Existem outras opções para trabalhar direto em seu computador como o FreeMind (gratuito e mais simples) e o MindManager (pago mas bem completo).

Independente da ferramenta, a meta é esvaziar a cabeça.

2) depois de organizar, planeje e decomponha

Agora que você “deu nome aos bois“, tome um bom café/refri/cerveja, contemple seu mapa e eleja o que deve ser feito nas próximas semanas. Algumas coisas que você pode ter colocado no mapa mental e que não tinham data para realizar provavelmente, como num passe de “mágica”, agora poderão parecer mais “realizáveis”. Agora você consegue ver com mais clareza tudo o que é importante (ou não) para você.

Neste ponto, é importante que você priorize o que lhe trará mais do retorno que você busca em seu momento pessoal.

  • se o seu momento pessoal for de retorno financeiro, priorize as idéias que lhe trarão dinheiro
  • se o seu momento pessoal for de conhecimento, priorize as idéias que lhe farão estudar mais o que você deseja conhecer

Antes de partir, você deve fazer algumas decisões que as vezes passam desapercebidas em nosso dia. Muita gente simplesmente deixou de fazer seus planejamentos sinceros de vida se deixando levar pelo cotidiano e imediatismo de um dia-a-dia cada vez mais dinâmico. Pare, olhe e escute … o que você tem que fazer agora para satisfazer seu momento pessoal de vida? Dinheiro, conhecimento, fama ou algo totalmente pessoal? Faça isso com a cabeça fria, tranquilo e num lugar calmo e zen. Abra seu coração, faça uma reflexão: esse momento provavelmente irá te trazer muito mais respostas do que você pensa. Talvez sua vida mude … talvez não … pra bem ou pra ruim … mas de forma mais realista. :)

Como a idéia aqui é mostrar isso na prática, vou pegar meu exemplo: meu momento é procurar um apartamento, implementar um projeto irado na empresa, entregar um projeto de iPad. Se eu conseguisse voltar a tocar guitarra e compor/gravar música eu ficaria muito feliz… mas isso é realmente importante pro que eu acho que é prioridade pra mim? Tome cuidado com o excesso de coisas neste momento. As vezes acabamos querendo fazer tantas coisas ao mesmo tempo que arriscamos duas coisas muito importantes em nossa vida: nossas vidas em si e nosso convívio social/familiar. Mantenha o curso e o foco! |o|

Uma prática que poderá ajudar é tranformar essas coisas que escolhemos em histórias, o que na verdade elas são. “Procurar um apartamento” é uma história grande: um verdadeiro épico. Dentro dela terei várias histórias como “procurar um apartamento”, “procurar um financiamento”, “juntar fiadores”, “juntar documentos” e por ai vai. Essa forma de criar histórias vai te ajudar bastante ter uma pré-decomposição das coisas que você deseja fazer e principalmente será sempre “entendível” quando voltar voltar à sua lista.

Tente definir inicialmente dois ou três grandes objetivos da semana. Isso vai lhe dar uma ótima oportunidade de comprometimento e motivação para matar aquilo. É batata: após um ou dois meses você vai sentir o quanto fazer as coisas “pouco a pouco”  vai representar uma grande diferença na sua lista. :) Não aumente o número de objetivos semanais sem ter certeza de que isso lhe trará mais prazer que sacríficio, a não ser que isso valha a pena. Não esqueça de ter uma vida.

Meus objetivos da semana seriam conseguir ligar para algumas imobiliárias, fazer o planejamento inicial do novo projeto interno da empresa e fazer os testes finais de meu projeto para iPad. Pense sempre na certeza que é de “grão em grão que a galinha enche o papo”. Com esses objetivos você vai conseguir fazer algo que inicialmente pode parecer gigante e trabalhoso. :)

Bom, com isso eu planejei trabalho pra bastante tempo. Agora é hora de decompor as coisas para conseguir transforma-las em tarefas. Porque isso é importante? Porque é com isso que você vai lidar no dia-a-dia.

O princípio básico é que você consiga dividar algumas de suas “histórias” em “tarefas”. Por exemplo: quero comprar um apartamento. Duas das coisas que listei em meu mapa mental é “Procurar um apartamento entre até um milhão de reais” (hahah, se é pra fictício, vamos aproveitar) e “procurar financiamentos“. Se você fazer uma reflexão rápida do que é “procurar um apartamento“, vai pensar “posso procurar em várias imobiliárias“. Então, sua ação não é apenas procurar mas ligar pra várias delas. Bem como procurar o apartamento, procurar o financiamento envolve procurar vários financiamentos. Temos no final das contas uma lista de tarefas para serem feitas. :)

Histórias viram tarefas :)

Histórias viram tarefas :)

Agora sim: temos coisas mais tangíveis e “realizáveis” do que algo abstrato como “Procurar apartamento até 1 milhão“.

Apesar de ter feito essa separação neste mapa mental, você também pode fazer isso num sistema de listas, como explicarei a seguir.

3) cadastre histórias e tarefas em um sistema de listas simples e confiável

Muita gente é atendida plenamente apenas por mapas mentais. Todavia, e esse é meu caso, muita gente tem uma lista de histórias e tarefas e serem realizadas muito dinâmica e que vive sempre mudando. Por exemplo, escolhi além de comprar um apartamento, implementar um projeto interno e entregar outro projeto desenvolvimento pra iPad. São dois objetivos que tem muitas tarefas distintas e que gerenciar num mapa mental poderia ser não apenas trabalhoso mas muito confuso.

Seu sistema de listas, onde você cadastrará suas tarefas, deve ser simples e confiável. Entra em cena as ferramentas de gerenciamento e organização de listas e tarefas. A que utilizo a bastante tempo é o Things, da Cultured Code. Por ser feito para pessoas que utilizam GTD, ele serve como uma luva para nossa necessidade que é ter uma forma de criar nossas listas de tarefas, separadas por histórias ou projetos. Em muitos casos um caderno ou mesmo uma caixa com as tarefas em cartões já bastante. Eu utilizo BASTANTE durante o dia um caderno para anotar as coisas e passo pro Things apenas as coisas que preciso agendar e coisas do gênero.

Moleskine

Moleskine

O importante é que você tenha um sistema de fácil acesso e confiável para colocar suas tarefas, seja um caderno, um software ou cartões: você deve ter acesso rápido e principalmente organizado às tarefas que você deve fazer.

Ao cadastrar em seu sistema, pense: “Essa tarefa eu devo realizar por telefone, por e-mail ou ir à rua pra resolver. Essa tarefa depende de alguma outra ação? Eu preciso acompanhar ou delegar essa tarefa para alguém?“. Essas necessidades podem ser transformadas em listas de contexto de ação. Vamos dar “categorias de ação” às nossas tarefas. Atualmente eu categorizo as coisas da seguinte maneira:

  • @resolver, para coisas que eu tenho que resolver e ver se preciso delegar, resolver eu mesmo ou esperar
  • @fone, para coisas que eu tenho que ligar para finalizar
  • @rua, para coisas que tenho que resolver fora de casa
  • @email, para e-mails que eu tenho que enviar para alguém
  • @trabalho, para coisas que trabalho
  • @acompanhar, para coisas que eu vou ter que esperar telefone, e-mail ou algo de alguém (geralmente com uma data limite)

Para ajudar um pouco mais, eu uso três categorias adicionais que são as de prioridade: alta, média e baixa.

A idéia de separar suas tarefas em listas é simples: você conseguirá delimitar bem as coisas que devem ser feitas a seguir. Por exemplo, ao visualizar minha lista @rua (com coisas que eu tenho que resolver na rua) eu posso agrupar algumas para resolve-las junto. Por exemplo, tenho que ir ver o financiamento no BB direto com meu gerente (eu coloquei essa tarefa como @rua). Vejo que dá tempo ainda de passar numa das imobiliárias que eu tinha que ligar. Dois coelhos com uma cajadada: uma das coisas legais de listas é você pode agrupar as coisas e resolver coisas que geralmente você esqueceria.

Quanto mais simples for seu sistema, melhor. Não se preocupe em criar listas complicadas pois a lógica é simples: quanto mais listas, mais dificil será você “eleger” o que deverá ser feito no seu dia-a-dia. Crie uma lista pra cada aspecto de ação que você tem em sua vida. Se por exemplo, você precisa em seu dia-a-dia delegar várias tarefas, faz sentido você ter uma lista chamada @delegar.

E tarefas que você precisa fazer numa data específica ou todo mês? Use o bom e velho calendário! :)

No final das contas, usando o Things terei algo assim:

Tarefas a serem feitas no Things

Tarefas a serem feitas no Things

Repare que tenho meus projetos listados a esquerda e todas as tarefas que ainda devo “executar”. O Things tem essa capacidade legal de mostrar os projetos e as coisas que eu devo fazer que estão em aberto. Temos ao lado de cada tarefa a qual lista ela pertence. Num caderno, você teria essas listas separadas em páginas distintas, com marcadores. No caso de pastas, você teria uma pasta para cada lista. Isso vai depender de como você quer organizar. Essas formas pode ser encontradas na literativa GTD/ZTD de uma forma melhor.

4) Faça! :)

Agora que você tem tudo o que você deve fazer, com seus grandes objetivos do semana escolhidos, é hora de arregaçar as mangas e se colocar ao trabalho.

No início do dia, tire alguns minutos para separar o que você fará durante o dia. Abra suas listas e escolhe o que você fará, de preferência por prioridade. Antes de começar:

  • algumas tarefas precisam de “cuca fresca” pra serem feitas e outras são mais “mecânicas”. É uma estratégia boa deixar as tarefas que requerem mais atenção e decisão para a parte da manhã, pois durante o dia a tendência de coisas inteferirem em seu foco e seu humor é grande. Deixe o que for mais mecânico para depois das coisas que precisam ser feitas com calma e análise.
  • as tarefas rotineiras podem ficar fixas em sua lista. Coisas como “ver e-mail” e “ver andamento projetos” não precisam ser nem processados. :)

Para realizar tarefas, principalmente para quem tem N coisas para fazer, você precisa de foco. Muitas pessoas, principalmente com o advento do computador ou um ambiente propício a interrupções contínuas e incessantes, simplesmente não conseguem manter o verdadeiro “foco” numa tarefa por vez. Temos MSNs, Twitters, Facebooks, pessoas, toques de telefone e tudo o que pode contribuir para você perder o foco.

Um segundo impeditivo é a questão do trabalho contínuo. Manter o foco por horas a fio é um grande impedimento para muitas pessoas: é uma tarefa cansativa e que precisa de muita disciplina para se alcançar o verdadeiro espírito zen para se manter assim por tanto tempo.

Depois de muita pesquisa, tentativas frutsradas e tudo mais, conheci na época com meu sócio-amigo-irmão Jeveaux a técnica do Pomodoro. Esta técnica consiste num método de se manter focado por 25 minutos em uma tarefa: dá-se a este intervalo de tempo o nome de Pomodoro (embora o nome mesmo seja em homenagem àquele relógio de cozinha). Mas o mais interessante não é apenas o foco, mas o sistema de auto-recompensa dada pela técnica. A cada pomodoro feito você ganha 5 minutos pra fazer o que quiser. Abrir seu e-mail, ver seu twitter, falar com alguem no MSN. Isso pode parecer contra-producente mas na verdade é totalmente o contrário. Sua produção focada corresponde (e até excede) sua produção normal onde você não tem tempo de parar, respirar, tomar um café ou algo do tipo. Você “institucionaliza” seu descanso e isso não vira mais um sentimento ruim de procrastinação.

“Pomodorar”, basicamente, segue estes passos:

  • escolha uma tarefa
  • ligue o timer para contar 25 min
  • esqueça o planeta e feche tudo o que tira sua atenção
  • quando acabar o tempo, risque um pomodoro pra tarefa
  • descanse por 5 min
  • volte pra tarefa e execute os passos anteriores até concluí-la

Para ajudar nesse dia-a-dia, você pode (e deve) usar uma folha simples para anotar suas tarefas e colocar quantos pomodoros você acha que gastará para realizar sua tarefa. Aqui existe um detalhe muito interessante: quantos pomodoros você consegue fazer por dia. Um dia de trabalho de 8 horas dão lugar então à uma média 14 a 16 pomodoros. Uma hora é em média dois pomodoros e duas pausas de 5 min. Isso é uma ótima oportunidade de você ver o que você realmente consegue produzir com o passar dos dias e prever, sem sobras, sua capacidade de produção. :)

Porém, no começo pegue leve com você: que tal começar fazendo 5 pomodoros num dia e depois ir aumentando conforme você perceber que consegue se focar?

Para pomodorar, atlém do timer, você precisará de um papel de uma caneta para escrever suas tarefas e os pomodoros que você vai executar. No site oficial da técnica Pomodoro, eles tem uma folha modelo que você pode usar suas tarefas, com essa abaixo:

Folha com pomodoros

Folha com pomodoros

O que fazer:

  • escolha suas tarefas
  • transcreva-as para sua folha de pomodoros e coloque um número estimado, se houver, de pomodoros para realização da tarefa
  • execute o pomodoro

Outra coisa super interessante nos pomodoros é como você marca as interrupções. Para cada interrupcão que você ter, dê um risco na folha. Isso vai tornar claro o quanto elas estão te atrapalhando e lhe dará argumentos reais para cortar algumas coisas. Se por exemplo, o telefone te atrapalha muito nos pomodoros matinais, desloque as coisas que precisa de mais atenção para a tarde ou parede atender as ligações. :)

Marcando interrupções

Marcando interrupções

5) Revise suas listas frequentemente

Você agrupou suas demandas, separou elas em histórias, depois em tarefas. Depois, separou elas todas e agora sabe como executa-las toda semana de forma ordenada e organizada. :)

Depois de tudo isso, o que importa é manter o ciclo de coleta e principalmente revisar. Várias coisas podem fazer sentido em algum momento da sua vida de forma mais pontual e que depois de uma semana ou mesmo dias podem não fazer mais sentido. Por exemplo, se eu estava pesquisando por financiamentos e acho um eu não preciso ficar com um monte de tarefas relacionadas a isso em minhas listas.

Para poder sempre estar se focando no que realmente importa é muito bacana revisar sua lista sempre a cada semana ou quinzena.

Menos que uma semana vai acabar tornando isso uma experiência cansativa e mais que isso pode manter alguns itens que podem estar tirando sua atenção na sua cara.

Não deixe de revisar suas listas para não acabar se frustrando. :)

6) Evite se frustrar a qualquer custo

E finalmente: evite tentar dar o passo maior que a perna. Isso pode trazer exatamente o que um sistema de organização e mudança de hábitos quer evitar: frustração.

Se você quer correr uma maratona, você tem que primeiro dar umas caminhadas, depois algumas pequenas corridas de 1 minuto e depois ir evoluindo isso até estar preparado. Você vai melhorando vários aspectos seu para alcançar isso: velocidade,  resistência, alimentação, disciplina e por ai vai. Mas se você um dia fica com preguiça ou come besteira, não se martirize ao ponto de achar que nada mais vai dar certo.

A mudança de hábitos para se organizar também conta com a adoção e treinamento pouco a pouco de várias coisas. Não tente tentar mudar da noite pro dia tudo o que você deve mudar pra ser uma pessoa minimamente organizada. O que deveria ser uma tarefa prazerosa e com aquele sentimento de superação vai acabar se tornando uma torrente de frustração. =/

Esse post em si é a condensação de muita coisa que tento seguir todos os dias e que algumas vezes, por mais que queira, sai do script e tenho que retomar no outro dia.

Se tornar uma pessoa organizada é uma batalha diária e temos que aceitar que vamos falhar em alguns aspectos e é ai que nosso treinamento em cada coisa de cada vez vai fazer sentido e ajudar a superar as coisas. :)

E é isso …

Provavelmente esse é um dos maiores posts que já escrevi mas não encontrei outro jeito de falar sobre o assunto. Como disse, leio várias coisas e aprendo muito não apenas com eles mas com as pessoas que me rodeiam e os erros que cometo e vejo os outros cometerem. Analise sempre o meio em que está e tente adaptar-se da melhor maneira para que essas técnicas possam fazer sentido pra você. Se você não consegue fazer 12 pomodoros por dia, comece com 3 ao menos. :)

Como diz um grande amigo … “O que importa é começar …”. Comece nem que seja com uma lista simples feita de manhã, organizando seu Gmail ou fazendo 2 ou 3 pomodoros por dia. Quebra a inércia. :)

A idéia desse post é só dar uma idéia de como começar e se estruturar: provavelmente ele pode ter lacunas de linha de pensamento ou mesmo explicações que não foram dadas da maneira mais clara possível. Se por um lado é ruim, por outro é legal pelo fato de ter causado não apenas interesse mas também indagações sobre como poder melhorar um processo. :D Sintam-se a vontade para perguntar. :)

Recomendo que se quiser se aprofundar (principalmente em XP e ZTD) no assunto, leia os links abaixo:

No mais, sucesso a todos e bons pomodoros. :)

Share

Review sobre #devincachu: interior do ES bombando!

1 de maio de 2011 by Léo Hackin 17 comentários

Aloha!

Aconteceu ontem em Cachoeiro de Itapemirim, de onte estou blogando nesse momento, a primeira edição do Dev In Cachu: um evento que tinha o seguinte objetivo:

reunir desenvolvedores para compartilhar conhecimentos, experiências e novidades, visando assim fomentar a área de desenvolvimento de sotware no sul do Espírito Santo.

Tinha, nesse tempo verbal, porque o evento foi MUITO mais que simplesmente um evento para compartilhar conhecimentos, experiências e coisas do tipo. O Dev In Cachu foi um divisor de águas no que podemos considerar a consolidação de Cachoeiro do Itapemirim como um novo lugar onde as pessoas realmente gostam e correm atrás de tecnologia.

Embora o foco de qualquer evento seja simplesmente o aprendizado e fundamentalmente o networking, alguns eventos tem algumas manifestações além-evento que o tornam de certa forma especial. O que encontramos neste evento foi um ambiente muito bacana que propiciava não apenas iteração e conteúdo relevante, como idéias e discussões e tudo mais.

Ahhh sim, isso é um review. :)

O lugar onde foi realizado o evento foi a Faculdade São Camilo, muito bem escolhido. Além de um auditório com estrutura invejável, que dava uma visão muito boa de qualquer lugar onde você estivesse, ele fica do lado de um Shopping! Nunca foi tão fácil fazer o translado evento -> almoço -> evento. A disposição das coisas, como mesa de cafézinho e o coffee break, ficaram muito bacanas também. Acho que na próxima seria legal fazer ilhas de coffee break para evitar o efeito “bloqueante” de um monte de gente querendo pegar algo.

As palestras foram um deleite a parte. Apresentei com o meu brother Jeveaux (@jeveaux) uma palestra que tinhamos feito no ano passado, mas com um conteúdo atualizado, sobre nossa experiência de 2 anos de Giran. Falamos sobre o início de tudo e como estamos trabalhando desde então, errando e acertando. Fiquei surpreendido como as pessoas tinham perguntas relevantes e contextuais sobre a palestra.

A parte da manhã foi praticamente voltada para empreendedorismo e condução de projetos. O Denis Ferrari mandou bem na palestra “Como errar em desenvolvimento de software”, falando sobre as dificuldades em desenvolver um projeto de software. Depois rolou a palestra, que na minha opinião foi a mais enérgica e bacana do evento, do Henrique Bastos (@henriquebastos). Com o título de “Quer aprender a programar? pergunte-me como”, tivemos uma verdadeira aula motivacional e de coisas que rodeiam a gente. Palestras do tipo são sempre muito bacanas, mas essa foi especial.

Depois do almoço tivemos coisas mais técnicas. :)

O Fabrício Barros, da São Camilo, “viajou” falando de urban sensing, onde falou sobre a questão de uso de sensores em dispositivos para coleta e processamento para diversos fins afim de criar uma experiência de rede social relevante. Foi uma palestra bacana que condensou muito das teorias que são aplicadas hoje em softwares como Foursquare, social bike e afins. Escrevi feito um louco várias idéias. Muahuhauhauha.

Logo após, tivemos a palestra da dupla de figuras “global” da Globo.com, Andrews Medina e Francisco Souza, ex-padawan da Giran. :) Eles fizeram uma brincadeira com os 12 trabalhos de Hercules, fazendo 4 (para começar) trabalhos com Pythons, cada um dentro de um expectro de solução diferente. Tivemos aplicações web, para Android, um mapeador de pontos de acesso e um jogo. Um verdadeiro overview de que o Python é capaz.

Depois de um coffee break rolou uma introdução ao TDD pelo Erich Egert, da nossa estimada parceira Caelum. Depois de um dia inteiro falando sobre TDD, BDD, finalmente quem não sabia do assunto teve oportunidade de ver na prática como é desenvolver usando TDD. Salvo o número de tweets reclamando que TDD em Java era dificil de entender, a palestra foi bem bacana e acho que quem conseguiu abstrair o conceito levou uma boa bagagem de um profissional altamente indicado para falar de algo assim.

Estava morto e cansado já no final e depois dessa palestra parti para hotel para descansar e me preparar par ao #horaextra. O pessoal se juntou após o evento pra tomar algumas cervejas e comer algo. É um momento de iteração raro que gostaria muito de ver em Vitória após os eventos. Acredito que a proximidade como Shopping ajudou bastante.

Aliás, o twitter BOMBOU com a hashtag #devincachu. A quantidade de twittadas foi impressionante assim como as brincadeiras contextuais com o pessoal que ficava dormindo durante o evento. hahahaha massa.

Pra fechar, duas coisas muito importantes que contribuiram muito para um evento memorável.

A organização foi impecável. Ver as pessoas se matando pra fazer o melhor evento da melhor forma possível com paixão pelo que se gosta de fazer nos olhos foi iradasso. Meus sinceros parabéns à trupe:

Vocês colocaram a faca nos dentes, foram pra luta e venceram. À vocês, as batatas. :)

Outro ponto foi a posição estratégica e empolgação do pessoal de fora. Gente de vários municípios vizinhos e até um pouco mais longe, como Campos, marcaram presença em peso no evento. Cachoeiro se mostrou, dessa forma, o lugar ideal e propício para muito mais eventos como esse. :)

Enfim …

O Dev in Cachu foi f*da. Como pessoa fico orgulhoso por ver o pessoal mandando tão bem, e como empresa, falando pela Giran, foi um prazer ser patrocinador desse grande evento que teve presença até o Prefeito da Cidade. :)

E que venha o próximo.


Share

AppleScripts para Pomodoro (for Mac) [UPDATE]

5 de abril de 2011 by Léo Hackin 7 comentários

Aloha!

Utilizo ZTD e Pomodoros a algum tempo (escrevi um pouco até na época falando um pouco disso) para tornar meu dia-a-dia profissional e pessoal mais organizado e menos estressante. Experimentei vários softwares relativos à isso e tratando-se de pomodoros o melhor que achei para Mac foi o Pomodoro, feito pelo Ugo Landini.

A técnica pomodoro basicamente é bem simples: escolha uma tarefa, coloque um timer para contar 25 min e foque na conclusão da tarefa. Após 25 min você tem 5 min para fazer o que quiser (sim, o que quiser!). Se quiser ler mais ou não conhecer a técnica, dê uma sacada aqui (em inglês) ou aqui (mais resumido e em português).

Pomodoro: light e não obstrusivo

O programa em si é extremamente leve e não é obstrusivo: ele fica na barra de tarefas, sendo acionado com um simples clique.  Ele tem duas versões: a 0.31 que já esta pronta para download em http://pomodoro.ugolandini.com/pages/downloads.html e a 1.2.2 que está disponível na Mac AppStore por U$ 4,99. A diferença básica são correções de bugs e que na nova versão existem várias integrações novas com softwares como Things e o OmniFocus, ambos de GTD (o ZTD mais “puxado” e de onde ele se originou).

Ah sim: o Pomodoro é OpenSource. Você pode baixar o source em http://pomodoro.ugolandini.com/pages/source.html (está num repositório publico no Github) e buida-lo via XCode. Iradissimo! :)

O grande problema porém era bem específico e sem culpa do aplicativo: sempre que eu começava um pomodoro eu tinha vários programas que tiravam minhas atenção. Adium, Twitter, Echofon … tudo isso são coisas que podem causar impedimentos e interferências para concluir uma tarefa. É ai que entramos.

Hackeando o Pomodoro com AppleScripts

O Pomodoro permite que você acione alguns comandos via AppleScript. Explicando, o Mac OS X vem com uma linguagem de script chamado AppleScript que permite manipular programas e enviar comandos para eles. Conheça um pouco mais de AppleScript nesse link.

Para inserir um AppleScript em seu programa Pomodoro, abra-o e clique em Preferences. Em seguida, clique em Scripts. Você verá todas as ações do Pomodoro e um campo onde poderá escrever ou inserir seus scripts.

Tela de Scripts do Pomodoro

Tela de Scripts do Pomodoro (ver. 1.2.2)

Cheque a ação que deseja que execute scripts e pronto. ;)

Abaixo, seguem  os links de dois scripts bem funcionais e que são facilmente extendidos.

  • Script para fechar o Twitter e colocam o Adium (messenger mais famoso pra MacOSX) como Away quando um pomodoro é iniciado (START) – https://gist.github.com/904053
  • Script para abrir o Twitter e colocam o Adium como Available quando o Pomodoro é resetado (RESET) e finalizado (END) – https://gist.github.com/904057

Lembrando que ao copiar o script, você deve checar a ação para executa-la.

Extendendo os scripts

Nos scripts, existe um pequeno manual para extende-los, para que você possa abrir e fechar as aplicações que geralmente usa em seu Mac. A customização é MUITO simples e para vê-las funcionando basta startar e finalizar um pomodoro após alterar o script. ;)

E é isso! Bons pomodoros! :)

[UPDATE]

Criei um repositório no git com os scripts melhorados para quem quiser copiar, contribuir e tudo mais. :) O endereço é https://github.com/leohackin/pomodoro-applescripts. Enjoy!

[/UPDATE]


Share

Ruby on Rails: referências de leitura

5 de março de 2011 by Léo Hackin 10 comentários

Aloha,

Antes de tudo gostaria de deixar aqui a surpresa (e alegria) em ver meu post sobre a migração de PHP para o Ruby on Rails depois de 5 meses na capa do iMasters. Muito bacana ver as pessoas discutindo com argumentos e tudo mais sobre Python/Django e PHP. Valew aê a todos.

Chegaram alguns e-mails do pessoal me pedindo referências de leitura, links, livros e algumas perguntando qual linguagem estudar: tentei ajudar com base no que vejo hoje como desenvolvedor e também como empresário no mercado de desenvolvimento de software. :)

Então, vai uma lista de coisas que li/leio sobre Ruby (linguagem) e Ruby on Rails (framework) e todo seu entorno. Só pra lembrar: estes foram livros que li e não um compendium de todas as leituras bacanas sobre Rails que existem: existem tanto livros bons que ainda não li quando disposição pra encher meu Kindle com eles. AHEuAe uHA E :)

Livros

Praticamente todos os livros que li são da série The Pragmatic Programmers: é uma editora muito bacana e com vários nomes de peso. O bacana é que os livros em versão digital tem valores bem atrativos e quando sai qualquer update, eles mandam um aviso para que você baixe as versões mais novas. :)

  • Agile Web Development with Rails (4rd Edition) é um ótimo livro para se começar com Rails. A linguagem é bem prática e ele explora a construção de uma aplicação de loja virtual de cabo a rabo, com testes e tudo. :) Existe a versão traduzida dele no Brasil chamada “Desenvolvimento Web Ágil com Rails“. A diferença é que essa quarta edição é com o Rails 3 já. ;)
  • Programming Ruby 1.9: The Pragmatic Programmer’s Guide é um livro muito muito bom sobre a linguagem Ruby. Não o li todo mas serve como uma ótima referencia à programação Ruby que tem várias particularidades não apenas interessantes mas essenciais para quem quer extrair o máximo da linguagem e extensibilidade do Rails.
  • Repensando a Web com Rails, do Fábio Akita, foi meu primeiro livro de Rails. Recomendo a todos não apenas porque é de um brazuca mas provavelmente um dos caras que correram atrás pela comunidade. Ele está numa versão antiga do Rails mas vale pela didática.
  • The RSpec Book, um livro obrigatório para quem quer (ou já trabalha) usando BDD como framework de testes e design de aplicações. Decidimos usar o RSpec ao invés da framework de testes que vem no Rails devido à melhor abordagem didática do BDD (precisavamos treinar um time em testes) e poder de descrição de problemas e design que ela traz para gente. Como o próprio autor diz, este é um livro para TODOS os programadores. Vale demais a pena.
  • Learn to Program é um livro extramamente introdutório sobre programação usando Ruby: isto ajuda e muito quem quer dar uma passada de olho no básico da linguagem. O livro da Pragmatic Programmers está em sua segunda edição (e mais completa) mas a primeira (e ainda muito boa) está em português neste link. :)
  • Ruby: Investigando a Linguagem, de Ivan Mecenas, é um livro bem introdutório mas ao mesmo tempo elucidativo. É um livro bem rapido de ler e que dá uma boa visão do que a linguagem pode fazer.

Sites

Muitos dos sites que leio são de referência da linguagem mas também com uma gama de coisas que ajudam e muito no dia-a-dia.

  • Rails Guides (http://guides.rubyonrails.org/) são os guias oficiais do Rails 3 (e também da 2.3). Leitura diária e obrigatória para conhecer o funcionamento da framework. Peca um pouco em detalhar mais algumas coisas e mostrar coisas que saem das conversões do Rails. :P
  • http://rubyonrails.org/ que é o site oficial do Rails: instalação, tutoriais, documentação e um monte de coisa. A versão brazuca dele está em http://www.rubyonrails.pro.br/.
  • http://www.ruby-doc.org/ documentação do Ruby :)
  • http://www.rubyonrails.pro.br/planeta/ é um agregador de blogs de vários figuras conhecidas do mundo Ruby on Rails. Vale adicionar o rss. :D
  • http://railscasts.com/ é site com toneladas de screencasts sobre Rails. Melhor do que quebrar a cabeça lendo é ver o cara quebrando a cabeça por você as vezes. Enjoy!
  • http://asciicasts.com/ tem o mesmo conteúdo que o railscasts mas … EM TEXTO!  Perfeito para quem quer ler e pesquisar por alguns termos, ver se existe um cast relativo a isso e ler código.
  • http://railsforzombies.org/ pode parecer brincadeira, mas é uma forma interessante de iniciar os estudos em Rails. Veja os vídeos, faça os exercícios … isso tudo com zumbis. :)
  • http://rubygems.org/ é o diretório oficial de gems do Ruby. As gems são como pacotes para o Ruby. Existe solução para quase tudo lá. se não existir o que você procura, contribua: faça a a sua gem e submeta ela. A comunidade agradece.

Listas de discussão, blogs, empresas e outras coisas mais

Pra fechar, alguns blogs que acompanho que falam não apenas de Rails mas de várias coisas que considero importantes para quem quer saber sobre agilidade, desenvolvimento e afins.

Enfim … tem MUITO mais coisas além disso, mas acho que já é um bocado de informação pra dar uma sacada. :)

Espero que ajude em algo. Bons estudos.


Share

[offtopic] Penne da Mama à la Hackinatelli

17 de fevereiro de 2011 by Léo Hackin 1 comentário

Aloha amigos,

Começando com a sessão offtopics … bom, não vivemos só de tecnologia, programação, nerdisses e coisas do tipo. Temos um pouco de humanidade e o que dizem por ai que as “pessoas normais” tem. A gente sai, vê filme, toma sorvete, passeia e por ai vai.

Como no Spolleto a tempos mas hoje consegui fazer uma combinação de toppings (os ingredientes que você pode pedir) muito boa: para quem nunca comeu, o prato tem um custo bacana (R$ 14,90 em média) e você pode escolher a massa, o molho e os ingredientes. Então lá vai:

Penne da Mama à la Hackinatelli

  • Molho: Rose
  • Manteiga para preparar os toppings
  • 2 bacons (peça ele alternado porque eles costumam botar menos quando é seguido hahaha)
  • Alcaparras
  • Calabresa
  • Peito de peru
  • Azeitona Preta
  • Alho
  • Gorgonzola
  • Mussarela de Bufala
  • Ovo de Codorna

E …. voilà! Bon Appetit! :)


Share

From PHP to Rails (5 meses depois)

13 de fevereiro de 2011 by Léo Hackin 13 comentários

Salve pessoal,

A algum tempo decidi migrar do PHP para o Rails e desde então não tenho feito nada relacionado à PHP e me dedicado exclusivamente ao estudo e trabalho com Ruby on Rails. Os motivos eu expliquei bem e quase 6 meses depois eu acho que já posso dar uma explanada boa do que vem sendo meu cotidiano de projetos e experiências com a ferramenta.

Linguagem Ruby

O Ruby é uma linguagem fantástica: o Rails se aproveita muito bem de todas as capacidades e liberdades (as vezes até libertinagens) dela para fazer magia com algumas coisas. É muito impressionante você sair de uma linguagem estritamente movida basicamente à funções e classes para uma linguagem mutiparadigma que te deixa programar de várias formas diferentes.

A adaptação é bem custosa para quem está acostumado com o PHP mas vale muito a pena. Existem coisas como essa abaixo que realmente te deixam feliz.

1
2
3
10.times {
|i| puts i
}

A principalmente dificuldade que acredito que se encontra é realmente essa cara da maioria das coisas do Ruby que se tem que se acostumar a ler e interpretar. Mas depois que se começa a aprender é ótimo.

Gerenciador de pacotes Ruby Gems

Hoje em dia, a maioria das linguagens legais tem seus repositórios de bibliotecas. No PHP usei bastante o PEAR e algumas coisas do PHPClasses. No Ruby extendemos seu poder com o uso de gems e estas tem uma maneira muito legal de rastrear dependências e tudo mais através de um comando muito simplista:

gem install pacote_magico_ou_arquivo_da_gem

Ao contrário do PEAR que exige configurações e alguma coisas que um mortal as vezes não consegue se virar, o comando gem é muito simples e efetivo. Ele com certeza é a coisa mais legal desde o APT-GET. :) Vale avisar que se você seguiu a instalação padrão do rails, ele buscará sempre as coisas do rubygems.org que é o repositório padrão de gems.

O rubygems.org hoje tem trocentas bilhões de gems que ajudam um monte a desenvolver e não re-inventar a roda. :)

A framework Rails

Apesar das trocentas framerworks que temos para o PHP, poucas são realmente maduras como o CodeIgniter (de todas a melhor hoje em dia na minha opinião), CakePHP, Zend, Prado, Symfony e por ai vai. A comunidade Ruby se concentra MUITO em usar e divulgar o Rails, framework que transformou o Ruby num hipe louco de uma hora pra outra.

Todavia, o merecimento é mais que merecido: o Rails desde a versão 2 é uma framework que vai direto ao ponto e permite uma produtividade incrível e se aproveita muito da questão do uso de convenções para ficar ainda mais rápido.

Já trabalhei com frameworks em várias linguagens e posso afirmar que sentir-se à vontade no Rails é uma questão de dias e o vislumbre vem em semanas. Existe CLARO suas “limitações”: entre aspas pois na verdade dentro do escopo de propósito do Rails você as vezes tem que sair das convenções e isso tem seu preço.

A maturidade da framework é outro ponto muito bom: muito conceito e forma de fazer as coisas estão muito bem resolvidas. Ela utiliza uma conjunto muito legal de gems para deixar a framework pronta para subir e meter fogo sem necessitar de bibliotecas adicionais. É instalar, criar o projeto e sair codando e pendurando as gems adicionais SE precisar.

A parte chata (que não é um problema exclusivo dela) é a documentação: existe muita informação pulverizada e espalhada que as vezes você tem que garimpar e testar muito. Ao menos fica o aprendizado no final.

Testes, RSpec e Capybara

O próprio PHP tem uma mania de escrever rápido e ir debugando: conheço pouquíssimas pessoas que trabalham com testes no PHP e a ida para o Rails me deixou ainda mais confiante que sem teste não dá de jeito nenhum. Talvez isso seja mais uma coisa de cultura da comunidade, mas as ferramentas também não ajudam muito.

Um dos pontos que mais me deu desgosto no PHP era a forma precária como as frameworks trabalhavam com testes. Na Giran, tentamos no CakePHP, tentamos no CodeIgniter e já estavamos até fazendo nossos próprios forks e remendos pra conseguir rodar bem os testes unitários, funcionais e de aceitação. Tudo isso com aquela pergunta “Putz cara, será que isso é realmente necessário?”.

O Rails se integra de uma forma perfeita ao RSpec, uma ferramenta brutal de testes, nos permitindo escrever nossos testes de uma forma muito mais legível. A integração feita entre os dois é poderosa o bastante pra tornar a prática de escrever testes uma coisa muito mais natural e legal de ser feita. Isso no PHP estava se tornando algo MUITO dolorido e custoso, coisa que não é nem de longe nosso objetivo ao programar.

Outro lance legal é o Capybara, que permite escrever os testes funcionais bem rápido também. Estamos fazendo coisas nele e gostando dos resultados. É simplesmente impressionante como a cobertura de testes da aplicação está melhor.

Um programador melhor

O mais legal desse tempo é que sem dúvida me tornei um programador melhor. Você começa a ver as coisas com um pouco mais de calma, consegue estudar melhor as aplicações, se preocupa mais com a arquitetura e vem nisso um monte de novas coisas legais para estudar que acabam te levando de volta àquele sentido gostoso de querer saber mais e mais.

Fazia um tempo bom desde que não sentia isso e pensei que que seria algo só no inicio dos estudos do Rails: 5 meses depois cá estou eu lendo mais e mais pra descobrir as sutilezas do Ruby e coisas legais de se fazer no Rails. :)

Então tá tudo perfeito?

Foram 5 meses de muito aprendizado e coisa bacana, mas nesses 5 meses nem tudo foram flores.

  • a adaptação pro Ruby para quem vem de outras linguagens não é muito fácil, embora muito excitante
  • a documentação do Rails não é tão vasta: se rala muito para saber os N jeitos de se resolver as coisas
  • inexiste comunidade Ruby no ES (estamos pensando muito em juntar quem sabe aqui no ES e começar uma)
  • sair da “convenção” do Rails as vezes é bem complexo

E é isso: tem muita coisa nesse meio que vou escrevendo daqui pra frente nas descobertas que for fazendo na Giran com os brothers do time … novos railers que estão devorando livros e livros comigo. :)

Simbora.


Share

Meu ambiente de trabalho em 7 itens

21 de janeiro de 2011 by Léo Hackin 7 comentários

Aloha pessoal gente boa,

Este post é para continuar o MEME que começou com um cara que teve uma idéia bacana e repassou para “um lugar onde as pessoas eram loucas … e super taradas … um lugar do car*lho”. :) Fui convidado/convocado pelos amigo-sócio-futuro-papai-babão Paulo Jeveaux (@jeveaux) e amigo-recurso-pato-no-SFIV-novo-railer Almir M3nd3s (@m3nd3s).

1) Macbook Pro + Mac OS

O único notebook que tive na vida antes dos meus Macs foi um HP Pavillion ZV6000 que me deu uma dosalgia sinistra. Sempre fui um entusiasta de gravação caseira (gravei algumas demos para bandas de metal de alguns amigos) e sempre tinha optador por PCs desktop com placas de som, bastante RAM e HD. Meu contato com o Mac surgiu quando comecei a trabalhar mais frenéticamente em home office e trampava com o @jeveaux para uma empresa paulista. Utilizávamos o Net-argh-beans e havia um processo que ele disparava de indexação do projeto que demorava até horas pra concluir. Precisava desesperadamente de processamento e mobilidade: comprei um Macbook branco. :)

O Macbook durou bastante, mas precisava de mais memória e processamento. Abrimos a Giran e decidimos comprar pra gente dois Macbooks Pro. :) Daí pra frente, foi só alegria.

O Macbook Pro é um puta computador em todos os sentidos, com um ótimo processamento, uma tela com imagem perfeita e um trackpad que posso afirmar ser o melhor trackpad do mercado para quem trabalha o dia inteiro no computador. Quando falam que o valor de um Mac é proibitivo, eu penso: é sua ferramenta de trabalho e daí que vai sair seu ganha-pão. Imagine aquele loading de 2 segundos inúmeras vezes durante sua vida? Hoje eu não tenho ele mais. :D

2) Giran (minha empresa, meu lar)

“Como o @jeveaux” falou, a Giran hoje é a minha razão de ser/estar, inicio-meio-fim do tesão que tenho para trabalhar e é sim um item de trabalho indispensável de ser comentado. Como item de trabalho, a Giran é como uma caixa de ferramentas com vários subitens que fazem meu trabalho render (e as vezes procrastinar um pouco, é verdade):

  • um time de pessoas insanas e taradas no que fazem
  • café, refri, cerveja, xbox e um monte de coisas legais
  • um ambiente confortável pra trabalhar
  • as piadas sem graça e tiradas nerds (em especial do @franciscosouza e @makotovh)

Não tem como hoje eu dissociar meu ambiente de trabalho disso. Também acho que se sua empresa não é um item de trabalho que te dá diferencial ou se torna algo indispensável pra você, você deve estar triste e incompleto e poderia numa certo momento procurar um lugar mais legal pra ser feliz. (risos)

3) GTD + Pomodoros + caderninho

Esse item hoje é um dos responsáveis por muita coisa no meu trabalho (e na minha vida) terem melhorado em qualidade e efetividade. Quando se fala pras pessoas sobre a caixa de tempo e controle do seu dia com Pomodoros e controle de tarefas (e hábitos de vida para se organizar melhor) com o GTD muita gente acha que é papo de auto-ajuda ou mesmo mais um daqueles métodos que consideram que você já deve ter nascido assim para as coisas darem certo.

Rapidamente, o GTD (Get Things Done) é um método para ajudar você a organizar suas tarefas num todo e a Pomodoro Technique é uma técnica que basicamente lhe diz pra dividir seu tempo em ciclos de 25 min, onde entre eles você DEVE descansar ou algo do tipo por 5 min.

Hoje, todo dia pela manhã marco os pomodoros que vou concluir para as tarefas da Giran e tarefas do meu Things (programa pra Mac fantástico para quem segue o GTD) para ligações, e-mails e coisas do tipo que antes eu deixava passar batido: deixei de pagar muita multa de conta e esquecer de mandar e-mails com 15 min toda manhã pra me organizar.

Tudo isso eu faço no caderninho, que já teve várias encarnações: bloco da empresa-que-o-email-só-funciona-quando-quer-e-vive-em-expansão-de-estrutura, bloco de folhas avulsas, folhas A4 e agora agenda. :) O que importa é você ter um meio onde rabiscar, apagar, desenhar ou o que for pra sentar onde quiser com um lápis e um café. :)

Vale a pena tentar conhecer. ;)

4) Textmate

Sempre usei IDEs pesadas e cheias de putarias na época que desenvolvia em PHP. Isso me deixou um pouco “burro e preguiçoso”, porque as IDEs não promoviam uma concentração e prazer em simplesmente codar, mas de aprender a usar a IDE, conviver com aquele monte de botões espalhados pela tela e coisas do tipo.

O Textmate no início foi tenso mas com alguns dias se nota o quanto de produtividade ele te dá. Os bundles (comandos, code-completion, snippets e padrões de cor) para várias linguagens que ele te dá são uma mão na roda e ainda são customizáveis. Tudo isso se junta à uma interface que vai direto ao ponto e um ambiente muito leve de ser rodado.

Fico sacaneando os caras que usam o (Mac|G)Vim por ter que digitar 50 comandos pra inserir uma linha, mas a verdade é que IDE é um lance muito pessoal: e com certeza hoje o Textmate é o melhor pra trabalhar.

5) Git + Github

É certo afirmar que o Git mudou minha vida como desenvolvedor. Trabalhei por muito tempo com backups normais, SVNs e coisas do tipo, mas nada chegou perto do Git. Utilizar o Git, para quem não conhece, é muito mais que usar apenas uma ferramenta de versionamento.

Trabalhar com o GIT é uma imersão de como codar simples, comitar aos poucos, trabalhar em time, dar atenção à cada pequeno código, aos comentários sobre o que você fez e muito mais. Desde que comecei a trabalhar com o Git, meus códigos melhoraram exatamente quando comecei a commitar mais, pouco a pouco. :)

O que turbina a experiência é utilizar o Github, um serviço online assustadoramente bom que permite visualizar seus repositórios, gerenciar usuários e permissões de acesso à eles, gráficos e facilidade de toda qualidade para gregos e troianos. Acho que foi um dos serviços online do gênero que hoje não tem como viver sem. :)

6) Google

É impossível hoje trabalhar sem o Google. São buscas para resolver problemas de programação, de gestão, de depressão e chatice (para dar umas boas risadas). Como gestores de empresas e projetos, eu e o @jeveaux nunca respondemos tantos e-mails e enviamos tantas propostas quanto nesses últimos-quase dois anos: o Gmail tem sido nosso companheiro de todos e dias e quase todas as horas.

Nosso domínio hoje está no Google Apps: qual melhor lugar pra botar nosso dominio e e-mails que no próprio Google? Se ele cair, não vou me preocupar porque provavelmente a internet do planeta inteiro vai estar reclamando. Ahe uhaEUAE AE :)

Migramos o site da Giran para o GoogleAppEngine: não gostamos muito da estabilidade do serviço, mas tenho certeza que isso vai melhorar muito em breve. :)

7) Agilidade = XP + SCRUM + Rails (com um pouco de PHP, Java e Python)

Para finalizar, desde que abrimos a Giran temos trabalhado extensivamente com tudo o que achávamos ser legal e que não deixavam a gente fazer. Começar a trabalhar com Scrum foi uma dessas coisas e estamos usamos sempre em todos os projetos, de nossa maneira e aparando arestas: afinal, o Scrum tem que ser flexivel o bastante pra ajudar e não atrapalhar. Mesmo com o hype/buzz que se fez em cima, continuamos usando e sendo felizes utilizando Scrum e boa parte das práticas XP, principalmente o pair-programming que vem tendo resultados surpreendentes a cada dia.

Junto disso, migramos para o Rails todos os novos projetos. Junto disso veio uma carga de aprendizado e produtividade que nem em nossos melhores prospectos esperávamos ser tão bom. Foi um #win que estamos trabalho para virar possivelmente um dos maiores #epicwin.

Quando se muda, não se muda apenas com o que se trabalha mas como se trabalha: o Rails compele você a trabalhar da forma correta com testes e trás consigo toda uma consciência e forma de se trabalhar que com poucas semanas já mostra resultados bacanas e sustentáveis.

Mas ainda gosto de PHP, Java e ficando cada mais empolgado com as possibilidade do Python. :)

That’s all folks …

Algumas coisas que poderia citar também como itens indispensáveis de trabalho é o iPhone (que me deu mobilidade e agilidade para responder e-mails de onde estiver fácil), meu monitor gigante/magic-mouse/teclado-wireless (que me trouxe mais produtividade) e o Redmine (que ajudou a gente a controlar bem os projetos e o que os recursos meninos andam fazendo) e outras coisas … mas tá valendo.

Como o @m3nd3s e como o @jeveaux ja colocaram a galera do time toda, vou estender o convite à outras três pessoas:

Simbora! :)


Share

Vem nimim 2011 – desafios, metas e tudo mais

16 de janeiro de 2011 by Léo Hackin 17 comentários

Aloha povo, hackers, curiosos e afins.

Fazia tanto tempo que não escrevia que fiquei assustado com a quantidade de drafts que estão travados no WordPress esperando ganhar o mundo: alguns deles vão rodar mas outros “com certeza” vão sair. Não, isso não é diálogo para acalentar bovinos nem nada do gênero.

2010 foi um ano muito foda:

  • a Giran foi muito bem: entregamos projetos maneiros e melhoramos como nunca como um time +
  • migrei do PHP para o Ruby on Rails (um post sobre isso sai esse mês sem falta) +
  • desenvolvi alguns lances maneiros pra iPhone com Titanium e Objective-C
  • descobri no final do ano que meu refluxo não me castigou tanto quanto pensava +
  • conheci minha namorada, uma mulher bonita e rara que se amarra em mato mas não gosta de insetos e de escuro, que gosta de me ver nerdando, me acompanha nas psicoses geeks e me dá uns pedala quando to fazendo merda … <3 Karolaine +++++
  • comprei um Arduino Mega e bugingangas: tô numa vibe frenetica pra fazer coisas com ele. :) +
  • as bobeiras tecnológicas foram bem também: comprei um iPhone 4, guitarras pro Guitar Hero, o Kinect … +
  • aprendi um monte de coisas de Python, Linux, GIT, Scrum, integração contínua, TDD/BDD e todo tipo de coisa +
  • fiquei sem teto e estou procurando um lugar ainda para morar em definitivo -
  • quase não toquei guitarra e a meu lado musical ficou jogado às traças =/ -
  • comprei um tênis e um sensor da Nike pra correr usando o iPhone pra ver meu desempenho: não corri muito. :( -
  • vendi algumas coisas que não usava mais e pratiquei meu desapego :) +
  • animei de malhar, mas não saiu da animação -
  • fui pra vários eventos geeks/nerds fodarásticos ++
  • fui ver meus avós laaaaaaaaaaaaaaaaaaaaah na Paraíba +

Num resumo, pode-se dizer em verdade que 2010 foi um ano em que melhorei em muitos aspectos pessoais mas realmente deixei a desejar em coisas mais simples da vida que realmente fazem valer a pena o cotidiano. Passei a dormir mais por noite é verdade, mas por outro lado não consegui dar foco como gostaria em vários fatores pra alcançar algo que não tinha dado muita a atenção nunca: saúde.

Relaxei bastante na parte de leituras não-técnicas: não fosse o Absolute Sandman vol.1 teria lido muita coisa técnica. O fator “você agora deve ser um gestor além de programador” também caleja bastante o cidadão. Mas até que levamos bem, eu acho.

Como diria um amigo meu: 2010 foi adequado. :)

E 2011 tio?

O ano começou bem chato com essas tragédias naturais todas e com alguns pequenos revezes mas a tendência é aquela manos®: estudar feito louco, ter várias “sortes”, estar preparado para as mudanças, torcer para que tudo dê certo e tentar ser feliz como nunca.

Como nada na vida se faz direito sem planejamento e sem ter um horizonte para onde se olhar e dizer “Eu quero chegar ali“, um planejamento pé-no-chão tem que ser feito. On the last year aprendi que não adianta se encher de responsabilidades, sonhos impossíveis e principalmente tentar fazer N coisas ao mesmo tempo: você acaba gastando energia que você poderia gastar se bem focado ou com menos coisas definidas.

Enfim, o que importante não é tanto o que se deve, mas o que se pode fazer. O que vier de resto é lucro. :)

  • comprar um cafofo pra eu morar e economizar bastante
  • masterizar o Ruby/Rails/Rspec/…
  • desenvolver um projeto comercial com Django e começar …
  • desenvolver mais pra iPhone
  • hackear bastante o Arduino junto com o Kinect :)
  • correr 3 vezes por semana e entrar na academia
  • comprar apenas dois gadgets: 1 e-book reader (Kindle ou iPad) e <não-sei-o-que-vai-acontecer-esse-ano>
  • praticar o ZTD e tentar o desafio das 100 coisas
  • viver … :D
  • pensando seriamente em fazer eletrotécnica ou algo voltado pra eletrônica
  • continuar praticando o desapego
  • vender e doar minhas coisas de musica para quem precisa
  • E ………

Outra das  coisas mais importantes que aprendi é que os planos quase nunca respeito o “Plano A” e a vida/existência/universo sempre conspira pra lados bem obscuros as vezes. O que mais temos que fazer é se adaptar à essas novas realidades na melhor e menos destrutiva forma possível.

Vem nimim 2011 … e vamo simbora.


Share

Sooner – extension para ReadItLater no Chrome

2 de novembro de 2010 by Léo Hackin 5 comentários

Salve pessoal,

Já venho brincando e pesquisando sobre desenvolvimento de extensões para Chrome e Safari. Do que era apenas playground, resolvi fazer uma extension bacana para Chrome para utilizar o ReadItLaterList.com.

O ReadItLaterList.com é um site que serve como um repositório de páginas para serem lidas depois. O site hoje conta com inúmeros softwares e extensões em vários softwares para utilização, mas resolvi fazer um para Chrome pois os existentes ou tinham bugs ou não agradavam de imediato.

Desenvolvi então o Sooner, uma extension para Chrome para trabalhar diretamente com o ReadItLaterList.com de forma fácil e que utilizasse as principais funcionalidades do RIL: ver páginas, adicionar e marcar com lidas.

A instalação é simples: basta baixar o arquivo CRX em http://github.com/leohackin/sooner/downloads e dar um duplo clique nele. O Chrome cuida do resto.

A configuração é bem simples também: basta informar os dados de login de sua conta ReadItLaterList na página de opções da extension (clique o botão direto no ícone da extensão) e se o login for feito com sucesso clicar novamente na extension para carregar suas páginas.

O utilização restante de leitura e adição de páginas segue essa simplicidade.

Para adicionar uma página, clique apenas em  ”Add this Page”. Para ler, clique sobre o link da página desejada na lista e para marcar como lida, clique no check verde. Tudo simples e direto.

A extension ainda está em fase de testes e na versão 0.6 e pode apresentar alguns problemas na hora de fazer o primeiro carregamento das páginas se houver muitas páginas. Estou trabalhando para melhorar isso e outras coisas para próxima versão. Para saber de novidades, siga as novidades pelo Github (http://github.com/leohackin/sooner) do projeto ou aqui no blog mesmo no link Sooner. :)

O agradecimento fica à namorada pela paciência, pelo Paulo @Jeveaux pelo incentivo e “cobaia-tester” e aos meninos da @giran_br por simplesmente existirem e proporcionarem tantas risadas e aprendizado contínuo. ;)


Share
Get Adobe Flash playerPlugin by wpburn.com wordpress themes