Meu ambiente de desenvolvimento

Æ!!

Fui convidado pelo @jtadeulopes e pelo @qmx para participar do meme sobre ambientes de desenvolvimento, então estou fazendo esse post para falar um pouco mais sobre o meu.

Sistema Operacional

Já usei Windows um bom tempo atrás, e agora tenho um pós-conceito para usar (preconceito é só quando vc não conhece), não vejo nenhuma vantagem para utilizar ele e acho que não vale o preço (tenho um Vista e um Win7 originais que ganhei na compra do notebook e na CampusParty e nem uso).

Já usei Slackware (e ainda tenho ele instalado no meu notebook para brincar de vez em quando) e atualmente estou utilizando só o Ubuntu, que me fornece um ótimo ambiente para desenvolvimento. Acho muito fácil instalar coisas novas para dev com o Ubuntu, e tudo se encaixa muito bem com esse SO.

Controles de Versão

Já utilizei um pouco de SVN, Mercurial e Bazaar, mas não o suficiente para falar bem ou mal de qualquer um deles, por que quando eu utilizei eles supriram a minha necessidade tão bem quanto o Git. Atualmente utilizo muito o Git, que eu acho fantástico, e a cada hora que vou utilizando eu descubro coisas novas que me surpreeendem. Não utilizo nada gráfico para o Git, apenas linha de comando, afinal, do que mais eu preciso!? :D

Linguagens de Programação

Gosto de brincar com várias linguagens e sempre estou mexendo um pouco com Python e Javascript. Já faz um tempo que eu não brinco com C++, mas é outra linguagem que eu gosto bastante também.

Algum tempo atrás brinquei um pouco com desenvolvimento de aplicações para Android e para isso tive que brincar um pouco com Java também :) . Mas como todos sabem, a linguagem de programação que eu mais uso atualmente é Ruby, que uso no trabalho e para alguns projetinhos pessoais.

Editor de texto / IDE

Eu uso o único editor de texto que uma pessoa em plena sanidade poderia usar, ou seja, o VIM! heheheh :D

Saindo da trollagem e voltando as vantagens, eu gosto do Vim por que ele é um editor rápido, customizável, e me faz pensar a todo momento. Para mim é estar resolvendo puzzles a cada minuto, acho divertido ficar pensando em como eu poderia estar editando aquele texto de uma forma mais divertida, e consequentemente, quanto mais eu aprendo a editar textos de uma maneira melhor mais rápido eu vou ficando para editá-los.

Claro que não é viável utilizar o Vim para tudo (apesar de eu estar escrevendo esse post por ele…heheh), e para algumas coisas é mais viável utilizar uma IDE. Para desenvolvimento de apps para o Android por exemplo, é muito mais fácil desenvolver utilizando o Eclipse que já tem plugin que ajuda em algumas tarefas, e é Java…Não preciso dizer mais nada.

Musica

Sempre estou com meu player aberto ouvindo musica, e sempre estou ouvindo coisas diferentes, começo com um random na minha lib inteira e escolho uma banda nesse meio para ouvir. Eu tenho uma playlist das musicas que eu mais curto para ouvir nos dias que não estou afim de ficar ouvindo coisas aleatórias. Já testei diversos players no Linux (banshee, amarok e etc), e atualmente estou utilizando o Rhythmbox, que reconhece meu Ipod e posso ouvir sempre a mesma lib em casa e no trabalho.

Se quiser saber as musicas que eu ouço veja meu last.fm.

IMs

Geralmente fico logado em mais de 6 contas de IM (2 Gtalks pessoais, 1 Jabber da empresa, 2 contas de IRC, 1 conta de Skype e ainda tem o softphone). Parece ser meio bizarro ficar logado em tudo isso todo o tempo, mas eu só consigo essa proeza por que as pessoas que eu tenho nos IMs são inteligentes o suficiente para olhar o meu status e não em encher quando não devem, caso não eu não possa falar apenas aviso e pronto. Em casos que preciso de bastante concentração eu fecho quase todos, deixando apenas uma conta que tem só algumas pessoas adicionadas :)

Só para constar, se você usa MSN isso não funciona, por que se a pessoa usa MSN ela já não tem nenhuma noção.

Terminal

Aqui é onde eu passo 90% do meu tempo de trabalho, utilizando linha de comando, Vim (não uso interface gráfica para ele também…Não faz sentido para mim), Git e scripts em geral. Atualmente eu uso o gnome-terminal do Ubuntu, que não deixa a desejar. :)

Organização

Eu sou meio bizarro quanto a organização, e no meu ambiente tudo tem que ficar em seu devido lugar, assim, cada atalho de teclado me leva onde eu sei que as coisas estão. No trabalho tenho 2 monitores e 4 areas de trabalho, sendo que fica organizado assim:

  1. Um browser em cada monitor
    • Firefox com Vimperator na esquerda com 3 abas com páginas que eu uso no sistema que eu trabalho atualmente
    • Chrome no monitor da esquerda com 2 e-mails, todoist e pivotal tracker
  2. Todos os IMs e um terminal
  3. Dois terminais, um em cada monitor com projetos auxiliares
  4. Dois terminais, os dois abertos com o projeto que estou trabalhando
    • No terminal da direita deixo uma aba com Rails server, uma com Rails console e uma para o Vim
    • No terminal da esquerda rodo testes e outras coisas

Tem várias outras coisas que uso (como o Notecase para tomar notas por exemplo) mas acho que isso ae já é uma visão geral :D

Agora eu passo a bola para o @dlibanori, @crocidb e @sceadugenga

Tags: ,

Wednesday, December 29th, 2010 Development 1 Comment

Semana de eventos (#rubyconfbr, #adl e #gddbr)

Æ!!

Na semana passada (semana do dia 24 ao dia 30 de outubro) foi uma semana de grandes eventos, que eu tive o prazer de participar de todos! :)

Rubyconf Brasil

A Rubyconf Brasil é o Antigo Rails Summit Latin America, que acontecia no centro de convenções do Anhembi, e agora mudou sua localização para o centro de convenções Frei Caneca, para diminuir os custos e prover um local mais acessível para os participantes (próximo ao metrô e a avenida paulista).

O evento foi muito bom, contando com mais de 20 palestras com um número bem equilibrado de palestrantes nacionais e internacionais, que ministraram muitas palestras com ótimo conteúdo técnico. Infelizmente o evento teve problemas com WIFI, e os participantes mal conseguiram acessar a internet utilizando a infra do evento.

Algumas palestras:

  • A palestra do Jim Weiric sobre SOLID Ruby foi fantástica! Além dele ser um ótimo orador, muito divertido, mostrou conceitos bem interessante e algumas comparações com outras linguagens. Uma das melhores palestras do evento.
  • O tenderlove mandou muito bem na sua palestra sobre Fibers e ruby 1.9. Além das corriqueiras brincadeiras com fotos sobre a suposta criação da palestra, ele mostrou um conteúdo muito interessante, com muitos exemplos préviamente contruídos para demonstrar o conceito de Fibers. Uma palestra densa mas muito boa! :)
  • O José Valim palestrou sobre Rails 3 e mostrou algumas das novas funcionalidades e também o que estar por vir, e como sempre deixou a dica para a galera contribuir, “as próximas features depende de vocês” :)
  • O Yehuda Katz fez uma palestra bem interessante sobre como melhorar a performance da sua aplicação movendo muito de sua lógica para o cliente, e apresentou um projeto que ele está trabalhando atualmente. Gostei do conceito, mesmo pensando que não é um conceito para aplicar para qualquer aplicação web, mas para um aplicação com muitos acessos faz muitos sentido e o modelo parece bom. :)
  • O pessoal da Caelum Anderson Leite e Guilherme Silveira apresentaram sobre como utilizar uma Ruby funcionalmente, e a palestra foi muito boa, apesar de ser bem densa e os dois falarem rápido

Tiveram outras ótimas palestras, sobre encoding do Ruby (que é bizarro assim como qualquer outra implementação de encoding), integração de redes sociais, redis e resque e etc. Não vou falar de todas aqui para o post não ficar muito grande, mas aconselho a ficar de olho nas notícias pois a Locaweb filmou o evento e provavelmente vão liberar os vídeos das palestras, e quando isso acontecer, aconselho você a assistir! :)

E é claro que nesse evento também teve um espaço para a desconferência, onde apareceram algumas outras apresentações legais (cômicas ou não), sobre assuntos derivados, como: node.js, deploy continuo, programando algo parecido com Ruby para Java, e etc! Foi bem divertido também!

Além de tudo isso ainda temos que contar o networking com a galera que foi fantástico, rever velhos amigos que quase nunca vemos (a galera da Fande e do Ikwa (@mateuslinhares, @danielaltman, @jorge_silveira, @willian, @_bojak, @rafaeltimbo e @vitormateus) por exemplo), reencontrar o pessoal do Guru-SP que apesar de encontrar sempre é legal reunir toda a galera e foi mais um encontro :) , e ainda tem mais um monte de gente que encontrei por lá, e isso fora as pessoas que conheci! Enfim…Networking #FTW! :) .

Minhas fotos do evento

Android Dev Lab

Eu sinceramente esperava que o Google fosse dar um Nexus One para a galera assim como eles fizeram na OSCon lá fora, mas obviamente me enganei :P . No fim das contas o evento foi razoável, apesar dos problemas com WIFI (que já é corriqueiro…), foi interessante para conhecer um pouco do SDK, principalmente para quem não ia no Google Developers Day no dia seguinte (o que não foi o meu caso), e para ganhar uma camiseta bonitinha do Android :P

Resumo: Foi legal mas eu esperava mais.

Minhas fotos do evento

Google Developers Day

Para compensar o Android Dev Lab o GDD foi um evento fantástico! Muito mais gente (como era de se esperar) poucos lugares nas palestras principais, mas um ótimo conteúdo de palestras (se você souber escolher bem :D ).

Algumas palestras:

  • Para mim foi quase um Tim Bray Developers Day, por que eu assisti 3 palestras do Tim Bray, todas sobre Android, direta ou indiretamente. Gostei de todas, o Tim falou muito bem sobre os temas que escolheu. Deu uma boa visão sobre design de aplicações, sobre o Android em si (algumas coisas eu já tinha visto no dia anterior…), e mostrou por que eles seguem algumas filosofias.
  • Uma frase que ele falou que eu ia mencionar no twitter na hora mas não ia caber, e resolvi deixar para (trollar aqui n)o post:
  • “O Android Market não precisa de moderação por que sabemos que as pessoas são inteligentes e caso uma aplicação não seja boa ou pareça maliciosa, eles simplesmente não instalam e não usam”
  • A palestra sobre Desenvolvimento de extensões para o Chrome foi bem legal e mostrou como é simples desenvolver uma extensão e como ele consegue acesso fácil ao chrome apenas utilizando Javascript. E o mais engraçado é que o desenvolvedor do Chromed Bird fez uma pequena apresentação mostrando a extensão dele e ele tinha uma direct message com um link para um twit meu. Vai saber :P
  • Achei que a palestra sobre HTML5 seria a mesmice de sempre, mas aprendi muita coisa interessante com ela! Não sabia que agora existem buscas no estilo jQuery nativamente no Javascript. Algo como .search(‘#id’) (não é esse método, mas existe), fora as dicas que ele deu e os exemplos que ele mostrou que valeram a pena. Vou procurar a apresentação dele na internet depois para dar uma olhada novamente, e se eu encontrar atualizo o post.

Novamente, teve outras palestras legais, mas essas são as que eu lembro, e aproveitei! :)

Nesse evento também encontrei velhos amigos como o Rubens Altimari da Whitehat empresa que eu já tive o prazer de trabalhar, e meu amigo Bruno Assis que sempre marcamos de conversar e nunca nos encontramos :P .

Minhas fotos do evento

Resumo

Foi uma semana Muito cansativa, fazia tempo que eu não ficava tão cansado assim. Entre um evento e outro teve as minhas seções de fisioterapia (para curar umas dores nas costas devido a uma queda), e também trabalhei bastante para compensar os eventos (e o mais legal é que foi uma parte divertida do trabalho para fazer!).

No fim das contas, tudo isso valeu muito a pena, aprendi bastante, conheci pessoas, revi outras pessoas, consegui manter o fluxo do meu trabalho, e descansei no final da semana! Portanto… Vitória! :D

Há braços

Tags: , , ,

Sunday, October 31st, 2010 Events No Comments

Conto da migração para Rails 3

Æ!!

Pessoal,

Nesse post eu vou falar um pouco de como foi atualizar a aplicação que eu trabalho atualmente para Rails3.

Em uma segunda feira eu tive a brilhante ideia de aproveitar que as tasks que eu estava fazendo estavam dependentes de algumas coisas que ainda não estavam feitas, e resolvi começar a atualizar a aplicação para Rails3 só para saber o trabalho que ia dar, e no final do dia eu já tinha feito todas as alterações necessárias para o boot da aplicação e para rodar a suite de testes (não fazer os testes passar, apenas rodar!). Depois disso foi mais 1 dia para fazer todos os testes passar, e mais alguns outros testando a aplicação e resolvendo pequenos problemas de safe html e derivados.

Dicas para fazer a conversão do código

Tenha testes

Se não tiver testes, esqueça essa idéia e pare de ler o post, a menos que você queira quebrar sua app em produção.

Faça sua aplicação e suite de testes funcionar

Primeiramente, se você ainda não conhece, vale a pena dar uma olhada no plugin chamado Rails Upgrade que te dá um guideline do que você precisa ir alterando para tornar sua aplicação compatível com Rails 3. Esse plugin faz algumas coisas como criar o application.rb baseado no seu environment, te dar alguns guias das configurações que mudaram e tenta converter suas rotas para o novo padrão (vide próximo tópico) O primeiro passo a se tomar é utilizar o plugin (ou não, pode fazer manualmente também) e trocar as coisas principais para que sua aplicação pelo menos passe pela etapa de boot. Quando passar por esse passo vá para seus testes, e se for RSpec prepare-se para ter alguns problemas de conversão, por que algumas coisas mudaram do RSpec 1 para o RSpec 2, e você vai ter que lidar com os problemas de atualização dos seus testes tambem. A maioria das coisas que tive problemas foi com métodos que não existem mais como o have_tag por exemplo.

Não use o Rails Upgrade para a conversão das rotas

Como disse acima, esse plugin é um ótimo guia, mas tome cuidado com ele como solução final. Você pode dizer para ele converter suas rotas, mas tome cuidado, por que dependendo da forma que as suas rotas estão diagramadas o resultado que ele dá não é muito conciso. O que eu fiz foi utilizar a conversão dele apenas como estudo para saber como está a nova syntax e refiz o arquivo de rotas do zero.

Pare de usar remarkable

Eu sempre gostei de usar Remarkable para testar relacionamentos, validações e etc, mas remarkable no Rails 3 é uma grande porcaria. Os desenvolvedores que começaram o projeto ficaram sem tempo para o mesmo e deixaram na mão de outros, que não tem a mesma qualidade ou preocupação com o projeto, portanto, a menos que você queira ser o novo mantenedor do projeto e fazer as alterações necessárias para que funcione bem no Rails 3, fuja dele agora. O que eu fiz foi começar a usar o Shoulda para algumas coisas que me convinham, como por exemplo testes de relacionamento e validações. Para quem estiver interessado em fazer essa migração, eu fiz grande parte das trocas do que eu usava (validações e relacionamentos) facinho com grep e sed! Fiz um Gist disso.

Evite dependencias

Assim como o remarkable acima, cada outra gem/plugin que você está utilizando pode ter problemas com o Rails 3, portanto, antes de fazer a migração procure manter o menor número possível de dependencias no seu projeto, e as que você tiver veja se já possui uma versão funcional para Rails 3, e se não possuir você já pode se voluntariar para fazer ;) .

Use o sufixo _html nos locales necessários

Suponho que as aplicações Rails estão usando os formatos de internacionalização do Rails, portanto suas string não estão perdidas pelas Views, Controllers e Models e sim estão em seus devidos arquivos de locale. Levando esse cenário óbvio em conta lembre-se de que você não precisa dar raw em toda mensagem que possui HTML por que Rails já faz isso para você quando você adiciona o sufixo _html na sua chave de locale. Exemplo:

not_yet: "<strong>Ainda não</strong>"

Ficaria:

not_yet_html: "<strong>Ainda não</strong>"

E assim ele não vai escapar automaticamente o HTML dessa chave.

Vá lidando aos poucos com DEPRECATION WARNING

Quando você rodar sua suite de testes pela primeira vez já vai ser bombardeado por uma quantidade monstra de DEPRECATION WARNINGs, mas não saia atacando eles de uma vez, primeiramente tenha em mente fazer sua aplicação funcionar e você vai corrigir esses probleminhas aos poucos enquanto estiver corrigindo os erros ou desenvolvendo coisas novas. Felizmente a API do ActiveRecord não deixou de funcionar, portanto você ainda não vai precisar fazer grandes modificações para a nova syntax utilizando Arel por enquanto, o que vai tornar a migração menos dolorosa e você pode migrar aos poucos enquanto seu código já estiver rodando.

Dicas de organização para a migração

Crie um branch separado e altere aos poucos

Sim! Todos queríamos que toda a equipe parasse por alguns dias e fosse alterar o projeto para funcionar com Rails 3, mas todos sabemos que isso não é possível na realidade de ninguém. Então uma coisa legal para se fazer (principalmente quando se está trabalhando com controle de versão distribuído, onde branches não são tão penosos) é criar um branch e manter uma pessoa trabalhando nele enquanto os outros vão tocando o projeto, sempre com muita comunicação para evitar que as pessoas criem cada vez mais código legado que precisará ser migrado, até que chegue uma hora que você possa voltar para o master e ficar sem deploy por alguns poucos dias para que a aquipe termine o trabalho e faça alguns testes.

Ataque um problema de cada vez

Acho muito legal a combinação Rails + Ruby1.9, mas acho que as coisas ficam bem mais fáceis quando atacamos no estilo estripador (por partes), assim você tem um caminho a menos para analizar de onde vem o possível erro, e assim que terminar uma migração para Rails 3 já pode começar uma para Ruby 1.9 e ver o que vai quebrar apenas para essa implementação específica.

Use seu ambiente de homologação

Não sei como seu deploy funciona atualmente, mas talvez com a migração você precise alterar ele e é na hora que você for colocar no seu ambiente de homologação que você vai descobrir isso, portanto, use-o bem! :)

Conclusão e Saldo final

Fazer a migração para o Rails 3 foi mais simples do que eu imaginei, mas mesmo assim tomou vários dias para a conclusão. Nos meus calculos levou mais ou menos 2 dias só meus e uns 3 dias meus e de outro desenvolvedor, isso contando os problemas de merge e etc. Portanto acho que em 1 semana é possível migrar uma aplicação bem coberta por testes sem grandes problemas e sem precisar parar a sua equipe inteira por um grande período. Escolha aquela semana com um feriado e atualize sua aplicação. :)

Há braços

Tags: , ,

Thursday, October 21st, 2010 Development 3 Comments

Fluxo de leitura e o Android

Æ!!

Quem me conhece sabe como eu sou meio doido quanto a ler coisas aleatórias (Google reader e artigos interessantes que eu acho perdidos por aí), e como eu tenho um tempo um pouco limitado, devido ao trabalho e a faculdade eu sempre tenho alguns esquemas diferentes para ler. :P

Fluxo de leitura

Depois que eu comprei um Android o meu fluxo de leitura se modificou um pouco. E está da seguinte maneira:

  • Aproveito o café da manhã para dar uma revisada no meu Google Reader pelo celular, colocando estrela nos artigos que me interessam
  • Termino de separar os artigos e colocar estrela nos que me interessam e marcar como lido os que não interessam
  • Leio os artigos pequenos que estão com estrela e os artigos maiores vão para o Android

E com isso eu consigo pegar meus “tempos livres” para ler um pouco desses artigos aos poucos.

Aplicações para Android

Quando comprei o celular já estava pensando em conseguir aplicações legais para leitura justamente para ajudar a resolver esse meu “problema”, portanto fui atrás logo cedo. Minha primeira idéia era simplesmente colocar um .pdf no Android e ler em qualquer leitor de PDF normal, como o quickoffice ou até mesmo o adobereader para Android.

Seguindo o caminho PDF eu descobri que é um pouco desconfortável ficar lendo PDFs em uma tela pequena, e vc precisa ficar fazendo scroll com frequencia, dar zoom e etc, e isso deixa a leitura meio enfadonha (sempre quis usar essa palavra :P ). Então decidi seguir outro rumo não muito comum, vou transformar esses artigos em .epub e ler em um leitor de epubs para Android. Os dois leitores legais que eu encontrei foram:

Primeiramente tentei algo com o Laputa que parecia um iBooks para Android. Todo cheio de frescuras de desenhar quando você está virando a página para parecer um livro e tal, mas eu prefiro as coisas mais simples :) .

Ao mesmo tempo já estava testando o Aldiko tambem e comparando funcionalidades. O Aldiko tinha as mesmas funcionalidades só que com menos frescuras e algumas coisas a mais que realmente fazem a diferença, como o ajuste de brilho tocando o lado esquerdo da tela, por exemplo.

E no fim das contas acabei decidindo usar o Aldiko como meu leitor padrão, por ter boas funcionalidades e não ter frescuras. Mas depois disso ainda tinha um problema para resolver…Tinha que transformar em .epub e colocar no Android toda vez que eu quisesse ler um texto nele, e isso provavelmente ia ser uma tarefa muito chata…Se não fosse o Calibre! :D

Calibre

O Calibre é uma aplicação para organização de ebooks que provê uma maneira fácil para editar metatags e exportar para diversos formatos. A ultima versão (se vc usa Ubuntu, não instale por apt-get que a versão é antiga, instale diretamente do site) reconhece perfeitamente o meu Milestone e envia para a pasta eBooks/import, que é a pasta que o Aldiko usa para importar ebooks! :D

Portanto, utilizando essas ferramentas ficou muito fácil de seguir o meu fluxo de leitura:

  • Ler um artigo com estrela
  • Se for grande imprimir em pdf (geralmente uso um plugin do Chrome chamado iReader, que formata muito bem para leitura/impressão)
  • converter o .pdf para .epub no calibre e já enviar direto para o Android
  • no Aldiko importar os novos livros

E pronto! Agora tenho os artigos que eu quero ler em boa fonte, como se fosse um ebook comum! :)

Espero que seja útil para mais alguem.

Há braços

Tags: , ,

Wednesday, September 8th, 2010 Android 3 Comments

Motorola Milestone e Android

Æ!!

Muita gente tem me perguntado sobre o meu Android atual, um motorola Milestone, e resolvi postar algumas informações e opiniões sobre o aparelho e sobre o Android em si.

Primeiramente, gostaria de dizer que o Android é um sistema muito bom, e estou bastante satisfeito com as features, apps, SDK e etc.

Milestone

É um aparelho bem legal e na minha opinião é o Android mais “custo X benefício” do Brasil. Tem um hardware bom o bastante (processador 600 Mhz e 256 de RAM), que já dá para rodar alguns joguinhos legais e deixar o telefone com uma boa usabilidade. Uma coisa que me agrada muito no telefone é o teclado qwerty físico, por que eu sempre estou conversando com alguém no Gtalk ou escrevendo algumas outras coisas, e eu tenho certeza que iria passar muita raiva com o teclado virtual (apesar de estar gostando do teclado virtual do Milestone quando está no modo horizontal).

A comparação do Milestone com o Nexus One dá uma grande diferença de performance, sendo que o Nexus vence por uma boa diferença (tem processador de 1Gb e memória de 512), mas como eu já disse antes, o Milestone é um ótimo custo X benefício para quem nunca teve um Android e quer uma linha “poderosa” :D

Android

O Milestone em particular vem com o Android 2.1, e a Motorola promete o Froyo (Android 2.2) para o primeiro trimestre de 2011. Uma pequena lista de vantagens legais do Android:

  • Download de aplicações legais facilmente pelo Android Market
  • Muitas aplicações de qualidade no Android Market com Rating e comentários dos próprios usuários
  • Api de desenvolvimento bem legal e multiplataforma
  • Integração fantástica com os serviços do Google, até comecei a usar alguns que eu não usava só por que é MUITO bom.
  • Multitasking de verdadinha
  • Sua liberdade continua intacta

Problemas

Tenho visto pouquíssimos problemas no Milestone. O unico que eu vi até hoje foi um reboot do celular enquanto eu estava jogando, mas acho que eu exagerei um pouco no multitasking (para quem não sabe o Android tem um multitasking real, portanto, você precisa fechar algumas apps de vez em quando, por que elas ficam rodando em background)

Considerações

Eu recomendo muito comprar um Android, e o que eu recomendo atualmente no Brasil é o Milestone, por que você consegue sentir um gostinho do que o Android pode fazer sem gastar tanto assim.

Para quem tem ou está pensando em ter um Android, pode aproveitar para dar uma lida na lista de aplicações legais que eu estou mantendo com uns amigos.

E Aguardem mais posts meus sobre Android ;)

Há braços

Tags: ,

Wednesday, September 8th, 2010 Android 4 Comments

Rework

Æ!!

Hoje terminei de ler o livro da 37signals chamado Rework! E vou falar um pouco sobre a idéia dele aqui.

Atualmente eu fiz uma compra na Amazon em conjunto com uns amigos (@vinibaggio, @hugobarauna, @cantoniodasilva), e cogitei a compra do Rework, mas depois de uma pergunta no Twitter e algumas respostas sobre a idéia do livro eu resolvi não comprar, pois parecia muito gerencial, e acabei optando por outros (Design Patterns In Ruby, Ruby Programming Language, The Pragmatic Programmer), que falarei em outros posts :P .

No fim das contas o @rafaelrosafu viu minha pergunta no Twitter e me emprestou o livro! \o/ Aproveitei que eu tinha acabado de ler o ultimo livro que eu estava lendo (Mestre Gil de Ham do J.R.R Tolkien), e já iniciei a nova leitura.

O livro me surpreendeu bastante, talvez por que eu estava esperando algo mais monótono, e ele é bem o contrário disso, dá várias dicas interessantes (que ajudaram eles quando estavam contruindo seus produtos, e ajudam até hoje) para quem pretende começar um novo negócio, e ainda dá algumas análises interessantes sobre como pensar como uma pequena empresa.

Alguns tópicos interessantes do livro:

Reuniões são tóxicas – O tempo que você perde em uma reunião e o retorno que ela te traz

Não contratar Rockstars – Criar um ambiente ótimo para extrair o Rockstar das pessoas

Planejar é chutar – Não levar tão a sério o planejamento pois todo planejamento é um chute grande ou pequeno

Tempo não é desculpa – Sabe aquele seu projeto que você está postergando há meses? Pois é…Você pode dedicar uma hora por dia para ele, e não esperar que aquele tempo sobrando venha, por que dificilmente virá. (esse bateu de frente comigo :P )

Comece no epicentro e ignore os detalhes – Mantenha o foco no centro do que o seu produto pretende fazer e evite detalhes no começo, para ter uma idéia mais geral e deixe o foco nos detalhes para uma segunda fase.

Durma – Não adianta trabalhar várias noites e perder toda a sua concentração e idéias por estar com uma mente cansada. Trabalhe e durma o suficiente para se manter criativo.

Diga não por padrão – Vejo muita gente que não sabe fazer isso, e realmente, o não muitas vezes é mais importante que o sim.

Faça pequenas decisões – É sempre mais fácil do que as grandes.

Aprenda a contratar – Contrate quando precisar, não examine apenas currículo por que ele não diz nada, não se preocupe muito com anos de experiência por que isso não é uma boa medida e não se preocupe com a localidade dos seus funcionários.

De liberdade aos seus funcionários – Eles não são crianças, e o seu custo de ficar monitorando eles para ver se eles estão realmente trabalhando é pior do que deixar eles por conta própria, e algum divertimento controlado no horário de trabalho não vai lhe trazer grandes prejuízos.

Enfim, esses são apenas alguns comentários sobre tópicos que eu achei interessante de ler no livro. É claro que eles estão falando de como é a realidade deles na 37signals, e você não vai conseguir aplicar essa idéia em qualquer empresa de qualquer área, mas para a minha realidade (e de muitos outros desenvolvedores) veio bem a calhar.

O livro contém muitos outros tópicos interessantes, e tem uma leitura bem agradável (é pequeno, tem uns desenhos por capítulo, demorei cerca de 5 horas para ler ele completo). Recomendo! ;)

Há braços

Tags:

Thursday, August 5th, 2010 Books 2 Comments

My last Tweet

Search