Freezing the DOM while inspecting elements

Ever wasted a lot of time doing CSS and trying to fish for an element that disappears just when you click something on the browser inspector? Think styling autocompletes.

Well, after years and years and years suffering through that, I finally decided to Google how to freeze the page and be able to click around the inspector as much as I want without changing the DOM.

Stack Overflow shows 2 or 3 easy ways:
http://stackoverflow.com/questions/17931571/freeze-screen-in-chrome-debugger-devtools-panel-for-popover-inspection

Live gut reactions to learning Ember.js

I am starting on a new project that uses Ember.js.

I started learning it from scratch a few days ago. Thought it would be a good opportunity to log my gut reactions while I find out how it works.

My main term of comparison will be React.js, which I started learning in about February 2015. I have spent a decent amount of time working with it. Far less than on jQuery-based projects in the past, but still. I also know a bit of Angular 1, so that may come up too.

I will go for free-associative, bullet-list, initial reactions for this post.

  • Official website is organized and pretty enough.
  • Really easy to download and have a local server running with a blank app.
  • No webpack. I like that.
  • ES6. Great.
  • Official tutorial does tests. Awesome.
  • Tutorial is very clearly written. Can’t compare to what I came across when I started with React.
  • Handlebar templates. I don’t know about that. Better than jsx perhaps? I miss jade, slim, wonder if it can work with something like that.
  • Bower? Not happy to see that.
  • All package names seem to start with ember-cli. Welcome and scary at the same time.
  • What’s the difference between a controller and the other entities, helpers etc? Still pretty foggy at this point.
  • Easy to install Stylus for CSS. Heard about “ember pods”. Will investigate.
  • Extremely easy to deploy something crude to Heroku, even without doing anything about the env.
  • Oh gosh, there’s an ember package to load Google Fonts.

Colemak in iOS Simulator

For many months, the last place in my computer where I wasn’t using Colemak was the iOS Simulator.

Turns out it’s very easy to enable it.

In the simulator:

Settings->General->Keyboard->Hardware Keyboard

Colemak is the very last on the list.

3 Dias como Mentor no Navecamp

Semana passada, de 17 a 19/2 de 2016, participei do Navecamp como mentor, a convite da Lindalia Junqueira e da Renata Salvini, que coordenam o NAVE / Estácio de Sá.

Para quem ainda não conhece, o NAVE é o núcleo de empreendedorismo em tecnologia da Estácio. Em pouco tempo, eles estabeleceram uma das, senão a melhor reputação na área de aceleração de startups no Rio de Janeiro. O espaço, incrível, foi concebido com a participação do meu irmão e de seu escritório. Como amigo da Lindalia e da Renata há vários anos, e tendo considerado seriamente participar do NAVE como empreendedor com o Look in Tens, fiquei honrado e empolgado de participar.

Ao aceitar o convite, já intuí que iria aprender muito mais do que ensinar. Não deu outra.

O Navecamp é um processo análogo a um Startup Weekend, onde os empreendedores vivenciam em pouco tempo os processos de geração de ideias, validação, vendas e apresentação para potenciais stakeholders. Participaram as 20 startups da turma 4 do NAVE, cada uma tendo entre 1 e 5 membros na equipe. Fui um entre 10 ou 12 mentores.

Para mim a experiência foi uma série de aulas maravilhosas que ia recebendo, enquanto ajudava os empreendedores a pensar e articular suas ideias. Em comum, todos transmitiam uma vontade genuína de fazer muito bem o processo. Tivemos algumas startups já com produtos praticamente prontos, enquanto a maioria está na etapa da lapidação da ideia.

Ao mesmo tempo em que busquei, especialmente no primeiro dia, ser uma espécie de espelho das startups, para ajudá-las a entender como estavam articulando suas ideias, acabei naturalmente fazendo esse exercício a respeito de mim mesmo. Como explicar sua ideia em 5 palavras? Como explicar o espírito por trás do produto de modo muito sucinto? E por que isso é tão importante?

No segundo dia, o foco foi na validação da ideia: confirmar ou desconfirmar as hipóteses. Essa parte me impressionou, porque entram em cena vários mecanismos psicológicos. Para começar, quem estava ali havia apresentado e foi aprovado em cima de uma ideia de startup — ou ao menos assim lhes parecia. Talvez o ato de buscar furos nas hipóteses parecesse errado para todos no contexto do Navecamp. É uma parte realmente difícil, em que precisamos de uma auto-crítica implacável e ao mesmo tempo manter a mente positiva quanto ao todo.

Conforme foi ficando mais claro que o importante era uma validação que trouxesse respostas úteis, as pessoas foram aderindo um pouco mais a uma validação bem franca. No final, poucos invalidaram categoricamente suas ideias, e os que fizeram saíram mais, e não menos, entusiasmados com o processo. Às vezes um giro de 1° no timão faz toda a diferença — o superutilizado termo “pivotar” nem sempre ilustra que os ajustes das ideias podem ser muito simples e muito eficazes.

No terceiro dia, os empreendedores montaram e apresentaram um pitch de 3 minutos cada. A evolução em apenas 3 dias foi gigantesca— em enorme parte por mérito dos orientadores do NAVE. Eu mesmo pouco participei de eventos de startups, provavelmente pela minha resistência a um formato mais industrial envolvendo pitches curtos. O Navecamp abriu minha cabeça também quanto a isso. Entrar em contato com 20 equipes em tão pouco tempo foi muito interessante. Quem conseguiu usar bem esses 3 minutos passou uma mensagem forte para quase 100 pessoas do nosso universo, e mais importante, abriu portas para continuar conversas depois.

Os papos com os mentores foram excelentes. Foi bem marcante também ver a atuação da equipe da NAVE conduzindo o Camp: Lindalia com um jeito carinhoso e ao mesmo tempo muito estratégico, esbanjando sensibilidade nas conversas com os empreendedores. Uma mentora consumada. Renata, que de outros carnavais eu já sabia que é muito fera, com uma atuação super executiva, de fazer acontecer, organizando a cabeça das pessoas e fazendo fluir um processo bem desafiador, sem perder a ternura. E o Bernard de Luna, um cara já bem conhecido no meio das startups e que ensinou muita coisa para mim e para todos ali: fundamentos e sacações de pitch, como submeter suas ideias a validações, como estruturar tanta coisa de um jeito bacana e coerente. Nos pitches, Bernard conduziu tudo com grande sagacidade e sabedoria, fazendo perguntas certeiras que conseguiam ajudar a pensar e ao mesmo tempo dar energia para todos seguirem em frente.

Saí de lá bastante grato por ter participado e muito bem impressionado com a iniciativa da Estácio.

Colemak: One Year In

February 15th 2016 marked my first anniversary using the Colemak keyboard layout. Colemak is a different arrangement of the computer’s keys, designed to be far more efficient than the traditional QWERTY layout.

I am glad I made the switch.

What made me try and switch to Colemak cold-turkey was Tim Ferris’s interview with Matt Mullenweg, in which he sings the praises of Dvorak, which he picked up many years ago, and mentions Colemak as being slightly more efficient.

I opened Mac OS’s keyboard settings and found Colemak right there. A Google search got me to Colemak’s website and a website with basic exercises, supposedly to be done in 9 days. I made Colemak my new keyboard, of course without changing the physical keyboard at all, and did the simple exercises for a few hours, maybe 3-4 over two days.

In the beginning I was extremely slow, and made many mistakes. However, I quickly realized my technique for typing numbers and capital letters had always been non-existent. I saw the new beginning as an opportunity to get those together too. I found a typing speed test and got my first performance measurement: 15 words per minute. Two days later I thought it would be a good idea to see how much I was doing with QWERTY, if only to have a term of comparison: even after the few days away from it, I did 74 wpm on the first try, and switched back to Colemak for ever.

I quickly learned that I could keep using qwerty on mobile keyboards — it’s a completely different context, and getting a Colemak keyboard for the iPhone was impossible with SwiftKey at the time.

I also learned that situations where I just have to use qwerty are rare: I don’t remember having to use someone else’s computer, but when using the iOS simulator or Windows/Linux VMs to test things, it’s just been easier to type on qwerty rather than install Colemak. My qwerty chops went down the drain pretty quick, and now I have to look at the keyboard to type. Again, I can go weeks without having to use qwerty, so to me it’s been all right.

Progress on Colemak was, or felt, very slow. One month into it, I was typing 46 wpm. Yes, that’s a 3× improvement, but try spending one month typing at about 40wpm. I didn’t care, I was measuring results every day in the beginning and knew it was a matter of staying the course.

Two months into it, I had improved to 50 wpm.

Six months into it, I did 62 wpm.

By then I was measuring my speed only rarely, and while I knew I had been far better on the qwerty before, the key configuration was clearly more efficient on Colemak and I knew I was bound to catch myself up. This was actually clear just by looking at the layout and envisioning key usage.

Today I measured my speed and it was my record: 73 wpm. Pretty hilarious to realize that, after a year, I still haven’t broken my late, unpracticed measurement on the qwerty, let alone my real speed which must have topped 85 wpm. I have no doubt I will get there and at the same time have a healthier typing setup for the rest of my life.

Another benefit of taking a hard look at my typing was developing tools for programming, which is really where most of my typing goes. I created Colemak Home Row Frenzy, which uses a totally insane set of dependencies but gives me a lot of efficiency typing typical programming symbols on a regular MacBook Pro keyboard. I have a hunch my move to Colemak rules out my ever becoming a Vim user, but I may be wrong.

In conclusion: for those of you who type a lot and see yourselves typing a lot 3 or more years into the future, I suggest you consider switching to Colemak. For terminal patients, luddites or people who are trying to quit computers altogether soon, don’t bother.

 

 

3 dicas para novos empreendedores digitais

Ao longo dos últimos 8 anos, conversei com muitos novos empreendedores digitais que procuram meus serviços, ou mesmo um bate-papo, para ajudá-los a dar o start em suas startups.

Acima de tudo, considero esse movimento muito saudável, e há mais de duas décadas essas pessoas vêm trazendo muitas novidades positivas para o mundo e para nosso país.

Nessas conversas noto 3 erros comuns e fáceis de explicar. Corrigi-los não é tão difícil, e vai dar mais eficiência ao trabalho de começar uma empresa digital.

1. Não revelar a ideia do negócio

É compreensível a relutância em contar para um quase desconhecido a sua ideia de startup. Eu mesmo assino diversos NDA (non-disclosure agreement) todos os anos, para que o empreendedor se sinta confortável em falar sobre seus planos.

Na prática, entretanto, essa proteção é contraproducente: a ameaça de alguém roubar sua ideia é praticamente nula. Todos nós temos diversas ideias, que por nascerem de experiências próprias, quase sempre são as que nos mobilizariam de verdade a começar um negócio. E, seja qual for a ideia, ela vai demandar um esforço enorme para ser implementada, sem contar prováveis mudanças de curso ao longo do processo.

Ao não falar abertamente para um grande número de pessoas sobre sua ideia, o empreendedor perde a chance de receber feedback de quem provavelmente conhece muitas ideias semelhantes, e às vezes idênticas. Já aconteceu comigo, por exemplo, de estar em uma reunião após ter assinado o NDA, ouvir a ideia, e perguntar para a empreendedora se ela conhecia as empresas X e Y, que me pareciam ser bem semelhantes à ideia que ela apresentava. A empreendedora não conhecia, e ao entender o que faziam aquelas empresas que já existiam, acabou encerrando a reunião, entendendo que precisaria aprofundar seu benchmarking.

2. Já tenho designer, marketing, e agora só falta programador

Por diversos motivos, a relação de oferta e demanda para encontrar designers e pessoas de marketing é muito mais favorável do que para encontrar bons programadores.

Todos esses papéis têm importância fundamental numa startup, mas o número de horas necessário para se programar um MVP típico é normalmente muitas vezes maior do que as horas necessárias para se desenhar um bom produto, ou para levar ao público um esforço de divulgação. Mais tarde no ciclo de vida de uma startup, com um produto lançado e funcionando, essa relação pode mudar bastante — no início, entretanto, é assim que tipicamente funciona. É bem mais difícil para um programador entrar apenas pelo equity se ele vai precisar se dedicar integralmente ao produto durante vários meses até que ele seja lançado.

3. Vou pegar um programador melhor, que já tem emprego, mas como freelancer à noite e fins-de-semana

A não ser que sua startup tenha um produto incrivelmente simples, o que nunca é o caso, a pessoa que for programar seu produto precisa estar nas melhores condições para trabalhar. Após passar 8 horas programando em um dia, mesmo o mais extraordinário developer vai ter seu rendimento reduzido a uma fração do normal. No fim-de-semana, após 5 dias trabalhando 8 horas, a mesma coisa acontece. Em termos de incentivo, esse arranjo também não ajuda muito a startup a sair do papel, porque o alinhamento de objetivos é, na melhor das hipóteses, apenas parcial.

Como fazer melhor

Considere a possibilidade de falar sobre sua ideia de startup com o máximo de pessoas interessadas, sem se preocupar tanto com possíveis consequências negativas.

Aceite que a energia dispendida para ter bons programadores, em tempo e dinheiro, vai ser considerável. Procure bastante, busque referências, veja projetos que os programadores já lançaram, pergunte em detalhes sobre o que fizeram nos projetos.

Ao encontrar alguém bom, faça um período de teste (uma semana, por exemplo, mesmo que seja part-time). Dando certo, garanta que ela vai trabalhar nas suas melhores horas e remunere-a para isso.