FLISOL/ES 212 e Pomodoros!

abril 21st, 2012 by Léo Hackin 10 comments »

Salve,

Rolará no dia 28/04, em Vitória, o evento FLISOL/ES (http://flisol-es.heroku.com/), um evento de âmbito nacional que acontece em várias partes do Brasil. Parafraseando o site:

O FLISOL (Festival Latinoamericano de Instalação de Software Livre) é o maior evento de divulgação de Software Livre da América Latina. Ele acontece desde 2005 e seu principal objetivo é promover o uso de software livre, apresentando sua filosofia, seu alcance, avanços e desenvolvimento ao público em geral.

Com esta finalidade, diversas comunidades locais de software livre (em cada país, em cada cidade/localidade), organizam simultaneamente eventos em que se instala gratuitamente e totalmente legal, software livre nos computadores levados pelos participantes. Também, paralelamente, são oferecidas apresentações, palestras e oficinas, sobre temas locais, nacionais e latinoamericanos sobre Software Livre, com toda sua variedade de expressões: artística, acadêmica, empresarial e social.

O FLISOL 2012 acontece no dia 28 de Abril em diversas cidades.

Será um dia de muitas instalações de Linux, muita nerdisse, bate papo, networking e muita troca de experiência.

Entre algumas coisas legais que daria para submeter afim de palestrar no meio da galera, arrisquei e felizmente o pessoal aceitou a submissão de uma palestra falando sobre Pomodoros. :) Dentro do âmbito de “software livre na sua variedade de expressões, inclusive empresarial e social” enxerguei o Pomodoro como uma coisa que pode melhorar a vida das pessoas e que muita gente que trampa com desevolvimento ou software diretamente pode tirar algum proveito.

A palestra “A arte de Pomodorar” será um tutorial e também um exemplo de uso real disso no dia-a-dia para mostrar como funciona na prática.

Haverá palestras também de Ruby, WordPress, ShellScript e PfSense … e claro, muita gente pra trocar idéia. Confira a grade completa aqui.

Aliás, meus parabéns ao Almir M3nd3s e o João Víctor pelo afinco à frente do evento e de tantas outras coisas. Sem pessoas como vocês, as coisas não seriam a mesma coisa no ES. :)

Simbora.


Share

Pomodorando na prática

abril 11th, 2012 by Léo Hackin 23 comments »

Aloha pessoal,

Disclaimer: Sempre fui um cara que defende o bordão “gentileza gera gentileza” e extremamente fissurado em estudar coisas que melhorem não apenas a minha qualidade de vida mas também das pessoas à minha volta (perto ou longe), no melhor estilo altruísta que posso ser. Desde eventos à palestras e posts, a idéia é sempre ajudar todo mundo com um pouco das experiências que me ajudaram e quem sabe pode ajudar outras pessoas.

Todo mundo me pergunta bastante sobre GTD/ZTD e o uso de Pomodoros mas nunca falei como os uso na prática num exemplo real do meu dia-a-dia. Como isso me ajudou, como me ferrei no inicio, como me virei com as interrupções … vou tentar resumir tudo num post (ou dois) e quem sabe ajudar alguém que tem interesse em começar a suar pomodoros mas não exatamente como. :D

» Read more: Pomodorando na prática


Share

Bug de ordenação de hashs no Chrome

fevereiro 21st, 2012 by Léo Hackin 3 comments »

Aloha,

A algumas semanas venho trabalhando bastante com JavaScript (tanto para projetos pessoais como profissionais) e esbarrei em um problema intrigante … que depois de alguma pesquisa vi que é algo polêmico.

Trabalhando em algumas melhorias para o Sooner, uma extensão para Chrome para trabalhar com o ReadItLater, uma das issues requeridas pelo pessoal era que ao inserir uma nova página ao serviço, a listagem mantivesse a ordenação colocando o último item adicionado sempre no topo. O ReadItLater, que vou abreviar para RIL,  trabalha com uma API que trafega dados de duas formas: JSON ou XML.

Obviamente que a escolha foi o JSON devido à enorme facilidade de manipulação. Depois de adicionar uma nova página e chamar o serviço de recuperação das páginas, o RIL me retorna as páginas como no exemplo (extremamente simplificado) abaixo:

{
   "list":{
      "2":{
         "url":"http://url.com",
         "time_updated": "20120220180000",  
      },
      "1":{
         "url":"http://google.com",
         "time_updated": "20120219180000",
      }
   }
}

Neste exemplo, a coleção list contém um hash com dois objetos cujos índices são números com uma ordenação definida pelo RIL de acordo com o campo time_update: ele sempre retorna os registros ordenados pela data de atualização em ordem decrescente.

Ok! Nada de interessante até aí. Vou fazer uma iteração na lista com um for … in e renderiza-los normalmente. Usei o seguinte código:

1
2
3
4
for (var pageIndex in ril.list) {
var page = ril.list[pageIndex];
document.write(page.url);
}

Para minha surpresa o resultado foi:

  • http://google.com
  • http://url.com

Ou seja, o Chrome ao executar a iteração nos objetos converteu os indices para numéricos e re-ordenou a lista, ignorando a ordem em que eles estavam. Para fazer o teste de São Tomé, abra o Javascript Console do seu Chrome (no Mac é Command + Option + J ou pelo menu View > Developer > JavaScript Console), copie e cole o seguinte código:

1
2
var lista = {"2": "2", "1":"1", "a":"a"};
for (var index in lista) { console.log(index) };

O resultado esperado seria esse:

  • 2
  • 1
  • a

Mas o resultado será esse:

  • 1
  • 2
  • a

Agora, abra o console do Safari ou do Firefox, coloque o mesmo código e faça o teste. A iteração dá certo! :D

Seria esse um mole do Chrome ou eu que estava fazendo algo errado?

O problema polêmico

Depois de pesquisar um pouco me defrontei com duas issues (#164 do  V8 JavaScript Engine que roda dentro do Chrome e #37404 do projeto Chromium) que discorrem bastante sobre o problema, com pessoas defendendo e argumentando de forma fervorosa vários pontos das RFCs e padrões do ECMA Script 262 (usado como base  das engines JavaScript na maioria dos browsers modernos) fazendo contrapontos com a questão da necessidade de manter uma compatibilidade pelo bem da web como um todo. Basicamente, o que é discutido numa cronologia mais didática é:

  • A (especificação) ECMA-262 não especifica uma ordem de enumeração. O Chrome respeita a ordem de um hash exceto se existirem indices numéricos, onde ele tenta tenta transformar o indice num integer e ordena as iterações de acordo com esse resultado.
  • De acordo com a especificação do Javascript, “A for…in loop iterates over the properties of an object in an arbitrary order” (https://developer.mozilla.org/en/JavaScript/Reference/Statements/For…in).
  • De acordo com a RFC do JSON (lembrado bem pelo @jeffersongirao), ”An object is an unordered collection of zero or more name/value pairs” (http://www.ietf.org/rfc/rfc4627.txt)
  • Ao mesmo tempo, de acordo com o ECMA-262 (12.6.4) sobre for…in ”The mechanics and order of enumerating the properties (step 6.a in the first  algorithm, step 7.a in the second) is not specified.“ Ou seja, a implementação da enumeração não é especificada e por isso dependente de quem o implementa. O pessoal do Chrome então resolveu implementar ao pé da letra (de modo evasivo ou não) enquanto o pessoal dos outros navegadores decidiu fazer de outra forma.
  • Há de fato uma interpretação que cada navegador decidiu fazer de um jeito que acha bacana e certo, mas todos concordam que manter a compatibilidade seria uma boa idéia.
  • No caso do Chrome, todos enxergam isso como um “bug” pois a maioria dos outros browser modernos tem ido na direção de ditar o que seria o modo standard de iterar num hash mantendo sua ordem
  • Esse “bug” tem trazido muita dor de cabeça para o pessoal pois força a manter implementações alternativas ou corrigir comportamentos que devem utilizar essa forma de iterações em hashs ordenados
  • Até a presente data, o “problema” não foi resolvido nem existe posicionamento do pessoal do Chrome para corrigi-lo. Talvez numa revisão do ECMA ou versão nova.

Recomendo a quem quiser ler e tirar sua própria opinião, ler esses dois tópicos (issue #164 e issue #37404): é uma discussão muito bacana e velha (desde 2008). Inclusive o John Resig, criador do jQuery, fala sobre esse e outros bugs num post de 2008.

Importante notar que num recente post do pessoal do Chromium sobre o Harmony, uma versão nova/revisada do ECMA Script que está sendo feita em conjunto com o comitê do ECMA desde 2008, várias novas features foram apresentadas mas uma em especial ainda está indefinida. Advinha qual é? :P

Como resolver

Bom, com um pepino desses para descarcar, existem algumas alternativas para contornar o problema:

  1. Quando trabalhar com hashs com indices numéricos, adicione um _ (underline) às chaves para manter a ordenação, como abaixo:

     var lista = {"_2": "2", "_1":"1", "a":"a"};

    Isso evitará que o Chrome faça a conversão para inteiro e assim manterá a ordenação no melhor estilo gambi design patterns.

  2. Trabalhe com arrays de objetos ao invés de hashs com indices numéricos. Se você conseguir ter controle na geração do dicionário de dados e precise iterar mantendo a ordem dos itens, transforme seu hash com indices num array de objetos  como abaixo:

    var lista = [{"2": "2"},{"1":"1"},{"a":"a"}];

  3.  Se não puder alterar a forma de trabalho de sua array, como por exemplo um resultado que vem de um webservice de terceiros, tente trabalhar de uma forma alternativa como trabalhar os dados em XML. :P
  4. Se não puder fazer nenhum das alternativas acima, senta e chora.

Resumo da ópera

Infelizmente, não existe outra forma se não burlar o bug ou refatorar seu programa para que evite trabalhar com hashs com indices numéricos caso você precise trabalhar com eles numa ordem pré-definida.

Vale a pena acompanhar essa nova proposta do ECMA e torcer para que eles definam de uma vez a forma padrão e mais ainda para que seja mantida essa forma que foi de certa forma colocada como standard pelos browsers.

Assim como o W3C vem dando cabeçada atrás de cabeçada para liberar de uma vez novas especificações da HTML e CSS, acho importantíssimo e crítico que o próprio mercado possa “dar a real” e consiga colocar o que interessa para os desenvolvedores como base de aprovação para o novo ECMA.

Simbora. :)


Share

Sooner 0.8 lançado

fevereiro 5th, 2012 by Léo Hackin 3 comments »

Aloha pessoal,

Depois de um hiato bem grande, voltemos à programação normal. :)

A algum tempo lancei uma extensão pro Google Chrome chamada Sooner para ver e adicionar páginas à minha conta do ReadItLater. O ReadItLater é um serviço bem conhecido e antigo para guardar urls de todo o tipo e “ler depois”, como o próprio nome diz, e oferece uma API para criação de aplicativos que usem o serviço. O grande problema era que não havia uma forma rápida e direta de adicionar, ler e remover páginas em nenhum navegador. No Chrome existiam opções que eram bacanas mas não agradavam ou na usabilidade ou no funcionamento.

Com isso, e a curiosidade de fazer uma extensão pro Chrome pra aprender e brincar um pouco, nasceu o Sooner sem muita pretensão até que algum tempo atrás vi que várias pessoas eram feedbacks legais e tinha sido incluído na páginas e extensions do serviço. :)

Para baixar, basta acessar o link https://chrome.google.com/webstore/detail/mifafnghbieophofjinbniahjpiodpnm e pedir para instalar. Depois é só logar com sua conta do RIL (se não tiver ainda uma conta cadastre em http://readitlaterlist.com/signup) e pronto. :)

As novidades

Em relação à versão 0.7, foram adicionadas features que o pessoal havia pedido.

  • link para recarregar a lista, pois o RIL pode ser usado através de vários aplicativos e recarregar a lista pode ser necessário em algum momento
  • campo de busca, para buscar páginas da lista através de uma palavra ou termo. A busca está bem simples e buscando pelo titulo mas possivelmente no futuro procure na URL também
  • correção de um bug na listagem, pois o Chrome (isso vai render até um post) sempre re-ordenava os itens que vinham do RIL.
  • um novo design do tipo, para deixar os itens de adicionar, busca e recarregar lista em lugares de uso mais simplificado e direto.
Uma lista de novas features vem por aí, mas algumas já foram escolhidas como:
  • lista ordenável por título, link, páginas mais novas ou velhas
  • criação automática de conta através da página de opções
  • versão “text only” dos links, que é um serviço do RIL bem bacana.
Se curtir, dá uma instalada lá e experimenta! Se não, dá um macaquinho para trás. hehehe
Simbora.

Share

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

setembro 18th, 2011 by Léo Hackin 12 comments »

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)

setembro 5th, 2011 by Léo Hackin 24 comments »

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!

maio 1st, 2011 by Léo Hackin 17 comments »

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]

abril 5th, 2011 by Léo Hackin 7 comments »

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

março 5th, 2011 by Léo Hackin 10 comments »

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

fevereiro 17th, 2011 by Léo Hackin 1 comment »

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
Get Adobe Flash playerPlugin by wpburn.com wordpress themes