Category Archives: Uncategorized

Biohacking

A culpa é da genética

tl;dr

No final de 2013 eu estava com síndrome metabólica ao extremo, depois de várias tentativas de emagrecer eu descobri a fórmula pra não continuar o nerd sedentário com saúde frágil.

Vida de atleta

Durante a época escolar eu sempre fui atleta, jogava basquete, futebol, depois na adolescência fui treinar Jiujitsu. Muito magro, com 1.8m eu pesava cerca de 72kg.

Casei, entrei na faculdade de computação, não necessariamente nessa ordem, vida de adulto e anos treinando o “engordamento”.


Durante aproximadamente uma década eu tentei de tempos em tempos estancar a gordura e seguia sempre a regra de restrição alimentar e exercícios extremos além da capacidade que minha vida permitiria quando eu me frustrasse e isso era comum. Tentei todo tipo de coisa, visitei centenas de nutricionistas, literalmente.


A última tentativa real foi um projeto para um jornal local aonde eu deveria correr 10km — começou com 5km o desafio.

Venci, desci de 116kg pra 92kg.

Meses depois já estava com os lindos 120kg novamente.

Nos tempos áureos eu cheguei a 130kg, uma criança inglesa com bochechas rosadas.

Correi uma meia maratona.

#fim R.I.P.

Renascimento

No finalzinho de 2013 já com a saúde cambaleando, rinite & refluxo sem trégua e remédios sem funcionar. Corta a cena para eu trocando receitas de remédios com a última médica que fui tratar rinite, a dela estava mais forte que a minha.

Contraí uma bactéria super resistente que levou 5 antibióticos diferentes pra matar, já sem esperança de qualquer coisa, a medicina tradicional já estava mandando eu rezar ou procurar uma “benzadeira” (nordestinismo para uma xamã local).

O último suspiro foi quando entrei na sala do último nutricionista que tentei e o cara parecia que ia morrer na minha frente, obesidade mórbida, na hora travei e respondi: “desculpe, aqui não é a sala do cardiologista?”. Corri dali pra nunca mais.

Um dia pesquisando na internet por “Reflux and rhinitis” no google eu caí num fórum aonde um irmão de fé falava sobre a #paleo, de cara não levei muito a sério, já tinha ouvido falar e lido um pouco sobre essa brand, mas ligado a esportes e coisas do tipo.

Mas o testemunho de que tinha se livrado dessas moléstias me chamou a atenção, até então eu nunca havia questionado as diretrizes oficiais que fui levado a crer. Não custa nada tentar, já pisei no cocô mesmo, só resta abrir os dedinhos pra não sapatear.

Whole30

Bom, como qualquer pessoas religiosa e com fé inabalável eu resolvi fazer o mais óbvio, procurar o que a ciência dizia sobre isso.

Minha surpresa pesquisando nos fóruns médicos e o que se dizia era o contrário do que eu imaginava, daí resolvi procurar algum método que fosse o estado da arte da coisa, cheguei no Whole30.

Sofrer comendo porco

Preço alto a se pagar

Todas as dietas que eu fui receitado anteriormente se limitava a coisas integrais sem graça — integral no sentido de farinha integral — e sucos idiotas, eu odeio suco, odeio fruta.

O Whole 30 me mandava ficar longe delas, humm… tem algo de válido aí, e dizia pra eu parar com qualquer farinaceos, pra um amante de massas isso era triste e doloroso, mas…

Voce pode sofrer com uma dieta extremamente restritiva comendo costela de porco, bacon, carré, filet, galinha, quaisquer animais. Peixe e frutos do mar também, sim, não são animais ora pombas, são frutos do mar.

Com 15 dias, EU DISSE: apenas motherfuck 15 dias eu já tinha me livrado da Rinite e do refluxo. QUERO OUVIR BEM ALTO: APLAUDE DE PE’ IGREJA!

Vida de atleta: O retorno

Com duas semanas eu estava com os sentidos tão apurados quanto um Wolverine, conseguia sentir cheiros que eu nem sabia que existiam, concentração como de um felino, não dá nem pra explicar. Falei pra mim: tem coisa aí que a mídia capitalista a serviço do vil metal não quer que saibamos.

E pra esporte, o que posso aproveitar?


Meu esporte são artes marciais, especialmente o Jiujitsu e a Luta Livre, vamos ver o que conseguimos aprender pra aplicar nisso, então durante 2014 foi de estudo e experimentação, em 2015 eu resolvi competir pela primeira vez na vida no esporte que mais gosto. Na verdade foi em dezembro de 2014.

Agora com 84kg em média e sem engordar mesmo voltando a comer massa e beber cerveja, já falei dessa paixão antiga? 😦

Esse vício tenho desde que me lembro da vida, lá no começo da década de 90. Sim, sou redneck que cresci no interior da Caatinga, aprendi a beber cedo.

O que aprendi

Bom, no começo eu procurei um endocrinologista que me recomendou uma bateria completa, alguns exames que fiz:

https://gist.github.com/cmilfont/06c6570bd16d84caf4dd

Desde então fui acompanhando a evolução dos números, devo dizer que parei ano passado ainda quando cheguei por volta de 600 de testosterona (tenho quase 40 anos). Mas voltarei em 2017 a acompanhar novamente, esse ano foi de muito pecado.

Os exames de sangue e deficiências logo no início de 2014 me mostraram que eu precisava suplementar com:

https://gist.github.com/cmilfont/b1a1968f0357debfb1c3

Notei depois conversando com muitos amigos que tinham um perfil parecido com o meu que é meio padrão ter deficiência em D e E se voce é um gordinho nerd. Mas isso não quer dizer que pega essa lista e saia comprando, faça os exames antes.

Jejum intermitente

Como de tudo, essa semana mesmo foi num rodízio de massas, bebo constantemente, mais constante do que gostaria, mas enfim.

Uma prática que me mantive fiel foi do Jejum, mas não considero 16h um jejum, isso é já o mainstream pra mim que como apenas duas vezes por dia, as vezes uma. Jejum é quando faço 32h, pelo menos uma vez por mês.

Não gosto de comer pela manhã, nunca curti, foi libertador saber que o café da manhã não é a refeição mais importante do dia, porque você nem precisa ter refeição no dia.

Acha jejum uma loucura?

Bem, pesquisa sobre o prêmio Nobel de medicina sobre a autofagia. Não vai ser comendo de 3 em 3 horas que você vai ter uma boa saúde.

Carbohidratos

Cada indivíduo tem uma resposta muito particular a essa substância maligna de lucifé. Deliciosa, mas maligna. O problema com carbs e açucares em geral é que eles interferem na insulina, o hormoneo que manda em você.

O que notei pra mim, carbs a noite são menos letais em todos os sentidos alinhado com o quê John Kiefer fala no Carb Nite. Então se vou errar, que seja a noite, isso funciona comigo.

Não sou mais #lowcarb há muito tempo, não no sentido clássico, apesar de que as refeições durante o dia quando ocorrem eu tento evitar, mas pastel é meu fraco e sou fraco.

Estou aqui fazendo um post auto-crítica pra alguém que precisa voltar a viver numa vida abençoada longe dessas coisas, mas agora sem a cobrança anterior de achar que é determinístico e que o problema é comigo.

Vamos aprender juntos

Apesar de ter lido uma centena de papers no PubMed, uns 15 livros, mal decorei o ciclo de krebs — ninguém aprende isso de verdade na escola — vamos aprender juntos como hackear nossa biologia, venha discutir e questionar numa comunidade que criamos no Facebook.

Terminei um post sobre lowcarb e práticas de qualidade de vida sem mencionar o Dr Souto, um record.

Enfim, só queria fazer um textão pra resumir que temos jeito, não é assistindo o programa Mal Estar da Rede Tupi, é procurando a sciencia.

Os músculos do Javascript

Existem várias reclamações sobre a Fadiga do Javascript, que seria um excesso de bibliotecas pra aprender.

O choro é livre principalmente para quem detesta estudar e aprender coisas novas, mas Javascript ainda está longe de atingir o grau de maturidade de outras plataformas e necessita de muito mais.

Resolvi postar sobre isso depois de ouvir caras que respeito muito falando sobre algo que discordo vorazmente no Hipsters.tech #16 sobre essa linha de raciocínio de excesso de bibliotecas e sobre SPA no geral, “ouva” lá antes e volte aqui.

MVC não é o que voce pensa

Alguém citou e isso tem sido recorrente que o MVC acabou ou que o React é outra abordagem.

Vamos ao básico, o padrão de 3 camadas se confunde muitas vezes com o MVC no conhecimento de muitos desenvolvedores, mas as camadas são: Apresentação, negócio e persistência.

Na camada de apresentação você tem o padrão MVC que tem a ver com responsabilidades, não artefatos. JSF era MVC, não é porque é Component-based que não faz MVC.


Esse padrão que foi criado por Trygve Reenskaug em 1979, sim, em mil-novecentos-e-setenta-e-nove, já demonstrava que fazer MVC não é criar classes/objetos pra cada uma das responsabilidades, pode inclusive ter tudo em um componente só ou não.

Talvez o que alguns garotos queiram dizer se refere ao Model 2 popularizado pela finada Sun (seus espólios são da Oracle) no final do milênio passado, mas nem isso é o fim porque no lado Frontend nunca foi realmente igual.

2M de Javascript só incomoda quem faz blog ou site de notícias

Existem necessidades que são bem distintas, um blog ou site de notícias de um jornal são bem claros. Você pode até usar um React no server-side pra renderizar aquele conteúdo, mas no lado do cliente, no navegador dele há bem pouca utilidade de um SPA. Talvez na área administrativa, por isso o próprio WordPress tem dado uma guinada ao mundo do SPA no seu wp-admin.

Para webapps como E-commerce o campo já fica meio nublado, parte é apresentação de conteúdo como um site de notícias, mas parte é de gerenciamento das vendas, é um híbrido entre o admin e a landscape. Esse tipo de segmento é mais difícil de avaliação.

Mas o mundão Enterprise, o da gravata com planilha, o coporativo raiz, IDE toquinho de lado, form-grid-report arte, esse é tão claro pra definir quanto notícias. Aqui não tem rapapé de otimização de kb pra abrir a landscape mais rápida e não perder 1% de vendas.

Essa área é justamente tornar a vida do desenvolvedor mais fácil pra não criar features que devem durar meses, senão anos, intocáveis e cheias de bugs. Se voce vive a realidade de agências, aqui é a outra extremidade.

Faltam bibliotecas

Hoje temos tradutores de especificações novas que ainda não foram implementadas nos navegadores, além de traduzir extensões bacanas como decorators. Grite a plenos pulmões um G’d Save the Babel.js.

Uma plataforma no terminal do seu computador pra rodar tudo isso, alô Nodejs. Um gerenciador dessa plataforma, seja bem vindo nvm.

Um gerenciador das dependencias acoplado, o npm que mata nossa inveja do Maven, sim, pra ver como a vida era dura, tínhamos inveja do Maven. Não satisfeito com a performance, o Facebook até criou um melhor em cima, o yarn, mas que na altura desse post ainda tem alguns probleminhas.

Você tem um validador moderno, eslint, que o Airbnb preparou excelentes configurações.

Vários pré-processadores pra tornar o lixo que é o CSS em algo produtivo. Postcss funciona bem com Stylus se você for conservador e detestar ser Early Adopter. Se você quiser explorar mais pode entrar no mundinho do inline entrando cada vez mais a fundo.

Usar especificações do Material Design do Google já prontas em alguma implementação como o Material-UI.

Ecossistema completo com React, react-router, redux (estado dos dados), redux-saga, etc.

Ecossistema de testes com Enzyme, sinon, chai, mocha, nyc e istanbul que formam o ambiente mais produtivo que já trabalhei pra Unit tests.

Nem falei sobre o Webpack, grunt, gulp…

Poderíamos passar o dia falando sobre libs aqui que tornam nossa vida mais fácil. Se não conhece nada disso e quer começar, só precisa instalar o create-react-app que tem tudo embutido magicamente pra você enquanto se familiariza, se é que um dia pode precisar abrir o capô e olhar o motor.

O que falta?

Ainda temos um longo caminho, apesar de specs como Service Workers estarem fora do radar do Edge, temos um grande ganho nos últimos anos pra trabalhar offline, thread no processamento sem bloquear a página e navegação sem precisar usar o cerquilha (#).

Agora que chegamos no nível de produtividade que uma comunidade Java, por exemplo, chegou em 2006. Agora vamos resolver problema sérios de como particionar Apps, gerenciamento de dependências em microservices no Frontend que ninguém ainda consegue ter uma idéia que seja padronizada.

Web Socket é algo inviável também num mundo com Mindset stateless e async, long poling é ainda a técnica mais usada infelizmente.

Mas falei sobre JSX?

Espero que a próxima spec de Web Components reconheça que o React é superior a todas as outras abordagens e faça como o pessoal do JCP lá no Java fez, assuma que Hibernate + Spring eram superiores e refaçam as specs copiando o que eles ditaram mesmo que mudando os nomes dos métodos e classes só pra não dar o braço a torcer.

Antes de reclamar, principalmente se entrou no ônibus agora e já quer sentar na janela, estude, só isso.

Lições aprendidas no mundo React

Boas práticas pra eu nunca esquecer

Depois de longos meses ensinando, fazendo algumas consultorias, analisando e escrevendo código em React, cheguei nesse conjunto de boas práticas que escrevi num papel e fico me lembrando pra não errar:

Tudo é componente

Pára de pensar em página, em template, em DOM e ter medo de acionar o render, isso não está manipulando DOM.

Até a manipulação de rotas é apenas o comportamento de um componente que está mais próximo da raiz e utiliza o ciclo de vida dos componentes para reorganizar a árvore.

Cada galho é uma árvore independente

Cada componente é responsável por orquestrar seus filhos, mas não conhece o pai e nem seus irmãos, apenas troca mensagens por funções recebidas no props que magicamente ele sabe que existe e deve acionar, mas não sabe o que faz.

Universos imutáveis

Não ter medo de acionar o render é manter o universo sempre num estado válido e imutável, recomponha sempre sua árvore e pense nela apenas.

A sua interface gráfica é o que está no return do render, ela é imutável, sem código (sem scriptlet, apenas marcação) e deve sempre representar o estado do universo, não dados isolados.

Só existe const

Pára de escrever let (bem, var voce já deve ou deveria ter parado). Quando você trabalha com universos imutáveis, a interface representa o estado dele e você não precisa de variáveis, apenas de constantes.

Dessa forma se mantém o mais fiel possível à imutabilidade. Pensa comigo, se tem necessidade de mudar um valor, não vai ser atribuindo diretamente na propriedade, é reconstruindo o universo.

Dê preferência a Props

Tem casos que é impossível (do tipo ainda não consegui Mindset necessário) deixar de usar o state, mas usar como regra sempre expor os dados em uma fonte read-only te mantém na imutabilidade.

Centralize a fonte dos dados

Flux é o padrão, mas o único razoável pra manter o código saudável dentro dessa abordagem é o redux, foquemos nele.

Só vai existir uma única fonte de dados que parte da raiz da sua árvore que representa a aplicação inteira (dentro do possível).

Crie Buracos Negros

Eu por exemplo que já enfrentei e enfrento integrações, tento minimizar isso criando pequenos universos que trocam informações por meio do store. Caso tenha essa necessidade, acione uma outra árvore apenas por meio do Provider dela.

Evite dados repetidos

Não podem existir estados diferentes para um mesmo modelo em um universo imutável.

Concentre as mudanças nas Sagas

Existe apenas um D’us que pode interceder por vós, não sei como ele é, mas deixou um local pra você concentrar sua orações, realize as mudanças de estado desse universo para criação de um outro válido apenas no redux-saga.

Na hora que estiver fazendo seus testes unitários se lembrará desse sermão.

Dê preferência a funções puras

Vai agradecer também quando estiver testando, é mais fácil manter imutabilidade em uma função que apenas representa uma interface que aciona outras functions conforme a interação do usuário.

Um detalhe especial pra decorators, eu aboli o uso por causa dos testes, é muito trabalhoso mockar.

Finalizando

São boas práticas mais abstratas, cada ferramenta tem também seu conjunto interno de boas práticas, mais pesquisas se mostram necessárias.

Pra quem já trabalha/estuda o mundo React esse texto fará algum sentido, se mora em Fortaleza eu posso ajudar num curso presencial 😀