Neil Carvalho

Desenvolvimento, lifehacks e outras coisas


Um mês sem redes sociais: saldo parcial

25 Jun 2012

Hoje completo 1 mês sem acessar redes sociais. Nada de Facebook, Twitter, Reddit e até mesmo Quora e LinkedIn (apesar dessas últimas estarem liberadas). Depois de alguns dias que se arrastaram, as coisas já parecem estar melhores e o desafio mais fácil.

Os primeiros dias foram bem difíceis. A cada hora eu tentava abrir o Facebook automaticamente umas 3 vezes, sem nem pensar. Era só surgir um breve momento de tédio ou perda de foco que já estava eu abrindo uma aba nova e digitando “facebook.com”. Mas tudo bem, é justamente isso que eu quero lutar. Das outras redes sociais só senti um pouco mais falta do Reddit, mas foi bem pouco. Já estava um pouco afastado do Twitter, embora tenha certeza que voltaria a tuitar com bem mais frequência se o desafio fosse passar 30 dias sem Facebook. O pacote tem que ser completo, ou a tendência é vir algo pra anular o esforço. Ah, e ontem, num domingo, não tentei entrar no Facebook nenhuma vez!

Na vida, já sinto um pouco mais de foco, apesar de isso ser uma coisa um pouco complicada de medir. Procrastinei menos, li mais, aproveitei melhor o final de semana. Ontem andei pela primeira vez de bicicleta com minha esposa, ao invés de ficarmos deitados na cama, cada um no seu computador. Sexta à noite e ontem à noite, em um tempo absurdamente curto de cada dia, programei um bot para rastrear apartamentos no ZAP Imóveis e me enviar um e-mail quando aparecer alguma com os critérios que programei. Talvez isso levasse um dia inteiro ou nem sairia do papel, não fosse esse desafio.

Comentários

Um mês sem redes sociais

20 Jun 2012

Quero passar um mês sem acessar redes sociais. Facebook, twitter, reddit, nada. É só um tempo, um desafio, inspirado pelo CEO do twitpic, que fez o mesmo (!).

Já tem algum tempo que o simples fato de abrir uma nova aba no navegador já me faz começar a digitar facebook.com. No trabalho, quando julgo que já extrapolei o limite, abro o SelfControl, que basicamente bloqueia alguns domínios via /etc/hosts pra me impedir de abrir sem pensar. Um bom lembrete, mas agora quero atacar a origem disso tudo.

Redes sociais são ótimas pra muitas coisas úteis, mas em geral elas são abusadas pelos usuários. Um tempo fora deve me fazer bem, e mal não fará.

Quero escrever mais, pensar mais, meditar mais, ler mais, me exercitar mais. Há tantas coisas boas pra ocupar nosso tempo livre, mas as redes sociais quase que o roubam completamente. Esse consumo desenfreado de informações sobre coisas que muitas vezes não me importo não é saudável. 19 de julho estarei de volta.

Já era hora.

Comentários

Jasmine: Javascript com BDD

29 May 2012

Esse é mais um post da série não faço a mínima ideia, onde na verdade faço alguma ideia (ao menos do que se trata) mas nunca parei pra estudar a fundo. Até o final do primeiro parágrafo, não fiz nenhuma espécie de pesquisa ou digitei uma linha de code example com Jasmine. E é assim que é pra ser mesmo.

Jasmine é uma ferramenta de BDD para Javascript. Essa é uma linguagem bem filha da puta e chata quando tudo parece bem, mas absolutamente necessária para qualquer coisa internética mais interativa. Não, não conto com coisas pré-históricas como applets Java ou Flash.

Pra quem é familiar com RSpec, Jasmine é moleza. it, describe, beforeEach, spies, tá tudo lá. Só que com a sintaxe do Javascript, mas beleza, tá perdoado.

Partindo daquele exemplo babaquinha da calculadora ultra simples que soma dois números, começaríamos com o seguinte spec:

describe('Calculator', function(){
  it('sums 1+1', function(){
    var calculator = new Calculator();
    expect(calculator.sum(1,1)).toBe(2);
  });
});

Que retorna o seguinte erro:

ReferenceError: Can't find variable: Calculator

Para resolver esse erro, definimos Calculator:

function Calculator() {
}

Que faz o erro alterar para

TypeError: 'undefined' is not a function (evaluating 'calculator.sum(1,1)')

Oops, faltou definir sum (com o código mais simples que dá pra fazer):

Calculator.prototype.sum = function(num1, num2) {
  return 2;
}

Yey!

Passing 1 spec

Uma cheat sheet bem mais detalhada pode ser vista aqui.

Comentários

Investir no Tesouro Direto

24 May 2012

Merda, digitei esse post inteiro e o Tumblr não salva automaticamente. Mas enfim, serei mais conciso dessa vez.

Comecei a investir no Tesouro Direto há 4 meses, aproveitando um aumento no salário pra evitar a conhecida inflação de estilo de vida. É sempre mais fácil começar a investir/economizar com um dinheiro que ainda não faz parte de seu orçamento, pois você não vai sentir falta do que não estava lá.

Então, abri uma conta na Rico, que apesar do nome tosco tem boas referências. É a divisão pra pessoas físicas da Octo Investimentos (Linktrade), que trocou de nome pra ficar mais amigável ao público geral. Isso por si já foi uma grande vitória, pois estava para mandar os documentos para outra corretora, a Ativa, há mais de um ano. Consegui até cansá-los de ligar pra mim.

Entrando no home broker, onde faço as ordens de compra e venda inclusive do Tesouro Direto, olhei a mais barata (uma LTN com vencimento para 01/01/2016) e mandei ver. Comprei 0,2 título, o mínimo que dá pra comprar e só depois fui ver o que se trata. Por mais que fosse furada, já me tiraria do zero, trazendo um efeito psicológico mais que necessário. E fez, pois essa foi a primeira coisa que fiz nos meses seguintes, antes de pagar até luz e água. O bom e velho pague-se primeiro.

Essa primeira compra, o LTN01012016, é um título com rendimento pré-fixado. No momento da compra já se sabe o quanto ele vai valer no vencimento independente de qualquer coisa que aconteça no mercado. Se a inflação subir demais, tô fodido. Se os juros subirem, fiz um negócio pior do que faria se tivesse comprado um título pós-fixado, mas ainda ganhei alguma grana. Mas acredito que fiz um bom negócio, já que o Governo tá se articulando para baixar ainda mais os juros.

Minha segunda compra também foi com pouca pesquisa e muita atitude. Comprei um título que só vence daqui a 24 anos, dessa vez pós-fixado e com base no IPCA, o que significa que a inflação não vai minar meus rendimentos. A outra parte dos rendimentos é com juros fixos, de 6% ao ano. É importante notar que com 6% + IPCA, temos 6% de rendimento líquido por ano, que é muito acima da poupança.

As compras seguintes já foram mais embasadas, mas já tá na hora de corrigir a estratégia de investimento. Tenho 25 anos, não deveria ter os investimentos tão conservadores, já que o tempo está ao meu favor. Nos próximos meses pretendo começar a investir em ações, mas só quando puder investir todos os meses para não gastar com taxas de custódia. Mas isso é tema pra outro post.

Comentários

Lei de Parkinson

22 May 2012

Work expands so as to fill the time available for its completion.

Cyril Northcote Parkinson

Parkinson (um economista, não o da doença) trabalhava no British Civil Service, um órgão público (ou melhor, real), que por definição é dominado pela burocracia. O termo Parkinson’s law deriva de um ensaio de humor escrito na revista The Economist, posteriormente transformado em livro com uma série de outros ensaios relacionados.

Apesar da origem humorística, o trabalho realmente parece se expandir para preencher o tempo disponível. Dado um longo tempo para completar uma tarefa, esta tende a se transformar num monstro mental que vai terminar menos bem acabada que a mesma tarefa em 20% desse tempo. Perde-se o foco, gasta-se tempo em coisas triviais e a parte mais importante fica pro final.

É importante estimar um tempo curto para cada tarefa, menos do que realmente dá pra usar. Já perdi as contas das vezes que minha turma da faculdade tinha um mês para fazer um trabalho nem tão complexo, como responder 20 perguntas ou desenvolver um aplicativo simples, e todos só terminavam (e às vezes não chegavam nem a terminar) no último dia, muitas vezes pedindo um prazo um pouco maior para a tarefa. Não é nem confundindo com a Síndrome do Estudante, que é deixar tudo para a última hora, mas às vezes o mês inteiro era utilizado em coisas menos importantes.

Já o professor que tinha conseguia melhores resultados dos alunos dava prazos aparentemente absurdos. E eram cumpridos.

Comentários

Usamos o e-mail da maneira errada

19 May 2012

Nossas caixas de e-mail são ferramentas de comunicação assíncrona, assim como os correios convencionais, mas muito mais rápidos (ainda mais comparando com nossos Correios brasileiros). Por assíncrono, deve-se assumir que em algum momento o destinatário vai receber e ler aquela mensagem, o que significa que, por definição, não se deve mandar um e-mail se você espera uma resposta imediata.

Mas, com o advento da conexão permanente à Internet, queremos respostas cada vez mais rápidas. Queremos respostas quase instantâneas. Já se assume que o destinatário vai estar com o aplicativo de e-mail aberto, com notificação de e-mails recebidos no momento que são recebidos, e que vão interromper qualquer tarefa que estejam fazendo para ler aquele e-mail.

Isso está errado, muito errado, mesmo. Existem outras ferramentas para este fim, como o bom e velho telefone e serviços de mensagem instantânea. O último não deixa de ser assíncrono, mas do próprio nome instantâneo já dá pra ver que não recebemos uma mensagem pela manhã para responder à tarde (o que acontece na vida real, mas não é o tema desse post).

Boa parte da culpa disso é nossa, porque realmente ficamos com os e-mails abertos o tempo todo, com notificações ligadas o tempo todo. Até mesmo quando estamos fora do computador, nossos celulares apitam ao chegar um e-mail. Acostumamos mal, ficamos mal acostumados e transformamos uma boa ferramenta de comunicação em algo que ferra com nossa produtividade e senso de urgência.

Fazendo minha parte, passarei a ter e-mail breaks, cortando minha contribuição ao mimo do mundo. Às 10 da manhã e às 4 da tarde, vou ver o que recebi e tomar as ações necessárias em cada um deles. Para as urgências, o celular continua ligado e o IM conectado.

Comentários

Sobre MongoDB

17 May 2012

Esse é o início da série não faço a mínima ideia, onde vou escrever sobre - surprise surprise - algo que não sei bem o que é.

MongoDB é uma dessas palavrinhas que vejo muita gente falar, penso “vou pesquisar sobre isso” e o tempo passa e não volta mais. Mas enfim, é mais um dos vários bancos não-relacionais que andam dando as caras há algum tempo.

As consultas no MongoBD seguem o padrão JSON (que o Ruby se aproximou nas hashes do 1.9), o que é legal por manter uma similaridade em diferentes representações de dados.

O armazenamento dos dados se dá por pares de chave-valor que ficam dentro de coleções (como “clientes”). Tudo se dá em pares de chave-valor, até as consultas. Para buscar na coleção bares os que têm capacidade entre 100 e 300 pessoas, por exemplo, a busca seria db.bares.find({ capacidade: { $gte: 100, $lte: 300 } }), onde $gte é greater than or equal to e $let é, por sua vez, less than or equal to.

Outros exemplos de consulta:

db.clientes.find( { nome: /^fulano/i } ) //adeus montar queries com upper e like
db.alunos.count({ ano: 5, turma: 'B'}) //quantos diabos o inferno tem
db.contas.find().skip(20).limit(10) //3ª página, fácil assim

Por enquanto é só isso. O MongoDB te dá o poder de definir funções em Javascript (pois é), fazer MapReduce com uma facilidade absurda e mais uma porrada de coisas. Mas fica pra próxima, porque não faço a mínima ideia de como fazer essas coisas.

Comentários

Go the fuck to bed

16 May 2012

A inércia é um dos maiores princípios do universo. Você não quer sair do sofá pra ir dormir, não quer sair da cama ir pra tomar banho e depois não quer sair do banho quentinho pra ir trabalhar. E ainda é provável que muitos vão ficar mais um pouquinho no trabalho.

Entre esses, um dos que mais afetam nossa qualidade de vida é não ir dormir na hora certa. Por mais que o sono esteja bem regulado, basta uma oportunidade pra ficar acordado até mais tarde sem pensar nas consequência pro dia seguinte (ou dias seguintes). A sensação é de completo lixo, você pensa que nunca mais vai fazer isso e faz de novo no mesmo dia, novamente sem pensar.

Tá programado no nosso cérebro - hardwired, como dizem em inglês - e não é nada fácil consertar por vias normais. Fácil é continuar o que você estava fazendo, no piloto automático, mesmo que não seja nada útil ou que não esteja produtivo. Sair do piloto automático gasta muita energia mental.

É nessas horas que um bom lifehack mostra sua utilidade. Se você não desliga, o mundo ao seu redor pode desligar.

Luzes

O ideal mesmo é usar um temporizador, mas um lembrete pra desligar as luzes pouco antes da hora de dormir já serve muito bem.

Enquanto não é difícil continuar o que estávamos fazendo no escuro, é um bom lembrete de que já está tarde pro nosso cérebro. Foram milhões de anos vendo o sol nascendo e se pondo e apenas um século com luz elétrica. Ele ainda não percebe que não é mais dia.

Além disso, ir apagar a luz tira nosso foco do que estávamos fazendo. Ao voltar, a atividade não ficará mais tão interessante assim, sendo mais fácil largar e ir dormir.

Banho morno

Aproveitando que você já se levantou pra apagar as luzes, pode ser uma boa oportunidade pra tomar um bom banho morno. Isso relaxa o corpo e ajuda a pegar no sono mais rapidamente. Só não pode ser quente demais, ou a temperatura corporal vai subir e dificultar o sono ainda mais.

Desligar o computador automaticamente

Acabei de configurar meu computador pra dormir automaticamente às 11 da noite todos os dias. No Mac OS X isso é ridiculamente fácil, nas Preferências de Sistema > Economizador de Energia > Programar… (ou System Preferences > Energy Saver > Schedule…). No Windows sei que tem como configurar pra desligar em X segundos pelo cmd, mas certamente tem programas aos montes se pesquisar no Google. Tá aí um guia pro Windows pra ajudar. No Linux, uma mistura de cron com shutdown deve resolver facilmente, ou uma breve busca no Google.

Comentários

Go The Fuck Home

15 May 2012

Trabalhar mais que 40 horas por semana é, em 98% dos casos, idiotice. Flexibilidade de horário também é ótimo, mas chegar 11 da manhã e sair 8 da noite sem ter feito nada útil ou proveitoso durante essas horas extras em casa pela manhã também é idiotice que eu fazia até duas semanas atrás.

Adoro o que faço, onde faço e com quem faço, mesmo. Se eu não estiver programando no trabalho, há uma boa chance de que estarei programando em casa. Mas é importante separar um pouco as esferas e equilibrar a vida profissional com a vida pessoal, independente do quanto você gosta do que faz. Se você não consegue lembrar de duas coisas que faz além de trabalhar e dormir, a situação não está nada boa.

Quanto estiver no horário de trabalho, trabalhe. Se o que você está fazendo não agrega valor ao produto/serviço final ou não aumenta sua capacidade de agregar valor, pare e comece a fazer algo útil. Se a força de vontade é menor que o necessário, use aplicativos como SelfControl ou extensões como StayFocusd (para Chrome) ou LeechBlock (para Firefox). Pessoalmente prefiro o SelfControl, por bloquear o acesso em qualquer navegador e só bloquear durante o tempo que eu configuro a cada sessão. Também não uso 100% do tempo, só quando vejo que tô abrindo novas abas automaticamente pra abrir sites que sugariam meu tempo.

Depois que o horário terminar, vá embora. Caminhe na rua, pratique um esporte, vá à academia, saia com os amigos ou qualquer outra coisa. A vida é muito curta pra ser tomada por uma única atividade.

Go the Fuck Home: Engineering Work/Life Balance

Comentários

A arte de fugir da publicidade

15 May 2012

Como dito no post anterior, os departamentos de marketing hoje em dia andam bem agressivos. É impossível viver sem ser atingido por publicidade por todos os lados sem se isolar de todo o mundo. Até ao fazer um whois você é atingido por spam. Tá foda.

Mas a vida é como filtros anti-spam: enquanto não dá pra se livrar 100% desses males, é possível descartar a maior parte, preservando sua alma e seu bolso do que vejo como zumbis do consumismo.

E-mail

Para começar, o mais fácil. Um bom primeiro passo é cancelar todas essas 25 inscrições em anúncios de promoções de sites de compra. Incluindo compra coletiva, que ninguém precisa assinar pra fazer proveito. Muita gente assina esses e-mails pra não perder uma promoção do que precisa, mas a verdade é que até encontrar o que precisa você vai comprar muita coisa que não precisa. E, quando for precisar, procure no Buscapé e depois procure por cupons de desconto das lojas mais baratas no Google. Quase sempre vale a pena.

Supermercado

Os supermercados usam vários truques pra fazer você comprar mais do que realmente precisa. Quem nunca foi comprar 3 coisas e saiu de carrinho cheio? Antes de ir ao mercado, é importante preparar uma lista de compras e também não ir pro mercado com fome. Com isso em mãos (e na barriga), o que resta a fazer é ir direto pra sessão que tem o que você precisa, evitando passar pelas sessões das tentações.

Depois de matar a lista de compras, passe pela fila do caixa com os olhos fechados, ou você vai sair do mercado com as mãos cheias de Halls, Cheetos e revistas que têm a atriz do momento na capa. Difícil ver uma fila de caixa-rápido sem ser formada por coisas que você supostamente esqueceu de pegar, então é uma hora de fazer parte da resistência e ignorar tudo aquilo.

Shopping

Esse é o lugar mais agressivo de todos, onde tudo é sutilmente planejado pra você comprar. Desde a música ambiente até a falta de relógios e de luz solar (embora isso esteja mudando), o importante é que você não veja o tempo passar e não saia com as mãos abanando. Lembro de uma loja que sempre estava com uma faixa de liquidação na porta e sempre estava tão lotada de mulheres quanto nossos metrôs em horário de pico.

No final, creio que uma maneira de se salvar dos zumbis com pelo menos um braço inteiro é só ir com um objetivo definido, concluir e ir embora. Se achar alguma coisa legal lá e ficou com muita vontade de comprar, segura a onda, pesquisa na Internet e volta depois pra comprar se o preço valer a pena.

Outros sites da web

O Google sabe tudo sobre você. O Facebook, talvez, mais ainda. As lojas já abrem com anúncios direcionados pra você, e você começa a realmente se sentir mal quando pesquisa por um medicamento e o Google já assume que você tem tal doença.

Para ganhar um pouco mais de privacidade, o Do Not Track é bem interessante e é seguido pela maioria das empresas de publicidade na web. Já pro Facebook, gosto de marcar publicidade inútil como útil e vice-versa, até o ponto onde o Facebook me oferece bonecas da Barbie ou algo assim. Ou, mais prático, use Adblock e fim de conversa.

Telemarketing

Mais eficiente que mandar a moça da Editora Abril tomar no cu é dizer “não estou interessado, obrigado….. Não, realmente não estou interessado”, que provavelmente ela vai desligar e passar pra próxima vítima. Também há vários estados com listas Não Perturbe, onde basta cadastrar seu telefone e celular que as empresas de telemarketing estarão legalmente impedidas de te encher o saco.

Comentários