Após
o grito “HHHHHHHHEEEEEEEEEELLLLLLLLLLLPPPPPPPPPPPPP!!!!!!!!!!!!!!!”
fecho o olho e aguardo o tiro de pistola. Contudo, ele não vem.
Continuo seguindo os jovens e em pouco tempo o segurança e sua
parceira desistem de me seguir.
Começo
então a pedir ajuda dos jovens, explicando que meu amigo tinha sido
sequestrado e corria risco de vida. Fala para ligarem para a polícia.
Depois de muita insistência, eles decidem me ajudar.
Um
deles bate na porta de um prédio. Aparece então o que seria o
síndico, com uma cara de sono danada. Ele então chama a polícia.
Cerca
de 10 minutos depois chega a viatura. Os jovens ficam de intérpretes,
umas vez que os policiais só falavam húngaro. Mesmo sem entender a
língua, no final do papo entendi o contexto. Os oficiais pediram aos
jovens para irem na viatura e ajudarem na comunicação. Um deles
responde que não, que já tinham se envolvido até demais.
Entro
então na viatura com dois policiais que não falam inglês e
seguimos em direção ao bar. No caminho, lembro da frase do gangster
“Minha cidade, minha polícia”. Penso que se ele tivesse dito a
verdade, aí sim eu iria vestir terno de madeira...rs.
Mas
na minha cabeça eu tinha que voltar o mais rápido possível. Mesmo
torto de bêbado, eu imaginei que começariam a espancar o Beraba,
então eu tinha que chegar antes que ele ficasse desfigurado...kkkk.
Parênteses:
nesse meio tempo o segurança retornou com a mulher. Disseram para o
Reginaldo: “Your friend is crazy, he almost beat me up. He took the
money and started to run away”. Traduzindo: “Seu amigo é doido,
ele quase me bateu. Pegou o dinheiro e começou a fugir correndo”.
O gangster olha pro Beraba e diz: “Now you are in a serious
trouble”. “Agora você está com um sério problema”. O sotaque
bizarro eu tentei reproduzir nessa gravação:
Enfim,
encham o saco do Beraba para ele contar a versão dele pois existem
partes engraçadíssimas ;)
Mas
continuando a história, eu chego no bar e o gangster está na porta.
Ele late alguma coisa com os policiais e depois me diz: “Vocês
entraram aqui e não quiseram pagar a conta. Seu amigo está no
Hostel. Eu vou colocar um advogado internacional atrás de vcs”.
Eu
respondo “Ok, se meu amigo estiver no hostel a salvo, pode mandar
seu advogado nos procurar em nosso país”.
Embarco
de novo na viatura com o policiais que me levam até o albergue.
Chegando lá toco o interfone e começo a falar em inglês, ainda
sobre efeito do álcool. Era o Beraba que tinha atendido...rs.
Subo
para o albergue e encontro o Reginaldo junto com um uruguaio. Os
policiais queriam que pagássemos a conta.
O
Beraba liga pro dono do hostel que fala que era melhor a gente pagar.
Então
o uruguaio da a ideia de ligarmos para a embaixada. Ligo e me indicam
o telefone de uma advogado da embaixada. Ele atende com voz de sono,
falando português com um sotaque extramente carregado. Ele conversa
ao telefone com os policiais e tenta nos tranquilizar. Eu digo que
queríamos uma escolta para levar a gente até a estação de trem
para irmos embora. Ele diz que não precisa, que a Hungria não era o
Brasil, que estávamos seguros, já que em nenhum momento nos
agrediram. Isso, segundo ele, aconteceu porque a lei lá realmente é
dura e funciona. Então ele diz que poderíamos ficar na cidade e
aproveitar, pagarmos somente se quisermos, e já desligou o telefone
meio sugado.
Enfim,
vamos para nossas camas. Mas quem disse que conseguíamos dormir.
Cada barulhinho no albergue e a gente já ficava alerta, esperando a
máfia entrar metralhando tudo...rs
No
outro dia nossa história ficou famosa. Todo mundo pedia para
contarmos, não só no albergue mas durante todo o resto da viagem.
Teve gringo nos encontrando no Vaticano, em Roma, e perguntando o que
tinha acontecido. Viramos celebridades...kkkk
No
fim, pensamos que se os mal feitores quisessem pegar a gente,
pegariam de qualquer jeito, mesmo que decidíssemos partir de manhã.
Então decidirmos ficar e aproveitar a cidade.
E
foi muito legal. Visitamos os banhos termais, piscinas aquecidas de
22 a 30 graus, a céu aberto, em um inverno de 4 graus. Foi
sensacional!
Além
disso, visitamos os castelos medievais. Lá tirei essa foto do
Beraba:
Startup é um assunto que entrou tanto
na moda que até novela tem abordado o assunto. Eventos pipocam em
todos os lugares. Percebo na comunidade de TI, e até fora dela, a
dicotomia: ser assalariado ou abrir uma startup?
Já experimentei os dois mundos. Fui
funcionário público, militar, e poderia ter seguido carreira
ganhando um salário razoável, com toda segurança e estabilidade.
Mas não estava feliz, pedi demissão.
Sai para iniciativa privada e foi
fantástico. Aprendi muitas coisas e tudo estava perfeito. Mas a
felicidade passou e então então fui picado pela mosca do
empreendedorismo. Cheguei abrir um negócio e depois, por fim, acabei
me tornando CTO em startup.
Mais uma vez tive um período
sensacional. Poder conviver com pessoas incríveis e ter uma
autonomia que até então não tinha experimentado. Mas quem já
passou por isso sabe que a vida glamourosa é coisa de filme de
cinema. Você trabalha ainda mais que assalariado e recebe menos, com
a promessa de ficar rico no futuro. A verdade é que realmente
deve-se estar apaixonado para seguir nessa vida. Mais do que isso, é
necessário fazer as contas para avaliar se realmente a fortuna vai
chegar no caso da empresa bombar.
Nesse turbilhão de trabalho várias
ideias me ocorriam e não podiam ser colocadas em prática por conta
do tempo demandado como CTO. Certo dia toda empresa participou do
“Day1”. Esse é um evento onde empresários relatam sua história
de sucesso, dizendo qual foi o dia em que perceberam que a empresa
iria decolar. Foi um divisor de águas em minha vida.
Na pegada de startup, sempre fomos
instigados a pensar na história que gostaríamos de contar em nosso
futuro. O intuito era querer mudar o mundo com a startup e ver um
propósito maior no que fazíamos no dia a dia. Me lembro de todos
meus amigos saindo do evento extremamente motivados e felizes. Sai
totalmente desmotivado. Não falei nada para não estragar a alegria
alheia.
Mas reparei atento nos palestrantes.
Enxerguei um padrão. A maioria contou a mesma história: “Trabalhei
muito, sacrifiquei feriados e a convivência com a família para
conquistar tudo isso. Agora estou vendendo a empresa para aproveitar,
vou recuperar o tempo perdido e aproveitar”. Passei um bom tempo
pensando nisso. Eles não me pareciam felizes, pelo menos não da
maneira que eu pensaria que estaria no lugar deles. Me perguntei:
“Como é que eles vão correr atrás do tempo perdido? Tem gente
ali que deve ter filho com 18, 20 anos e não deve ter participado da
vida dele. Como se recupera esse tempo?”.
Com um adendo muito importante: ali
estavam aqueles que “venceram”. Os “perdedores”, pelo menos
no Brasil, não costumam contar história. Imagine esses, que nem
sequer com o consolo de uma fortuna contam?!
Nessa mesma época passei a frequentar
comunidades de tecnologia e acabei vendo uma palestra do Henrique Bastos que me mostrou uma terceira opção: lifestyle business. Pesquisei, li blogs interessantes, como o do VinicusTelles.
Devorei livros sobre o assunto: 4 hour week work, The Incredible
Secret of Money Machine.
Durante esse processo de pesquisa e
auto conhecimento, não me lembro onde me deparei com a seguinte
pergunta: “O que você faria se ganhasse num concurso um salário
de R$ 20.000,00 vitalício?”. Por mais simples que essa pergunta
possa parecer, demorei certo tempo a responder. Depois de meditar por
algum tempo, cheguei em algumas respostas: “Daria mais atenção a
minha família, faria exercícios físicos, emagreceria, viajaria,
escreveria um livro, leria mais, faria software por diversão, daria
aulas”.
O ponto importante de chegar nessa
resposta foi a conclusão de que eu não precisava ter uma fortuna. O
que eu precisava era do bem infinitamente mais precioso que grana:
tempo! Mas a “matrix” não nos deixa ver isso.
Foi então que comecei a me preparar
financeiramente para ter tempo livre. Cancelei cartão de crédito,
parei de comprar bugigangas inúteis (ex: trocar de celular só
porque saiu marca nova). Diminui as contas até um patamar onde
apenas com um dia e trabalho por semana eu as honraria. Com
um detalhe importantíssimo: esse dia de trabalho é na faculdade,
dando aula, que já é/era justamente uma das atividades que eu
gostaria de fazer ;). Além disso, para me preparar para o pior caso,
o de não poder trabalhar por alguns meses, fiz uma reserva
financeira.
Falando assim até parece que tudo
é/foi fácil e instantâneo. Confesso que não foi. O cagaço bate, quase desisti.
Mas nesse momento refleti sobre o que
de pior poderia acontecer. É engraçado o que ocorre quando você
descreve seu medo. Ele deixa de ser aquele monstro perverso que você
imagina. Sendo do mercado de TI, sei que ele está extremamente
aquecido. Deixando a modéstia de lado, sempre recebi e recebo
ofertas de trabalho, de CTO de startup a trabalho assalariado. E isso
acontece com todos da área, não é privilégio meu. Logo, o pior
que poderia acontecer seria voltar para o mesmo ponto: trabalhar no
mercado. Nessa conjuntura, não fazia sentido nenhum não tentar uma
nova opção.
Então depois de alguns meses de
preparo, desde julho de 2013 passei a viver o chamado lifestyle
business. Não existe mais aquela frase “quanto eu tiver tempo
faço”. Com tempo livre, bateu a vontade, faço. Como agora que
estou escrevendo esse artigo =P.
E assim surgiram várias oportunidades
e projetos: Meu livro; Python Birds, curso de Orientação a Objetos com Animação,
projetos open source, vídeo aulas gratuitas. Nesse
processo, ainda descobri que não era necessário muito dinheiro para
viajar. Esse ano conheci Santa Rita do Sapucai, Brasília, Aracaju,
Lavras e Goiânia. Em todas elas o custo da viagem foi menor do que
eu gastaria ficando em casa! Mas isso é história para outro post.
Esse ano li mais livros do que toda
minha vida: 4 hour week work; Contrato Social; Revolução dos Bichos
(Animal Farm); A Arte de Estar Sempre Certo: 38 estratagemas; 5
livros Game Of Thrones; Como fazer amigos e influenciar pessoas; O
que é Marketing (Raymar Richers). Esses pelo menos que eu me lembre.
O importante, se você leu até aqui,
não é ficar imaginando se eu sou doido, corajoso, sortudo,
convencido ou qualquer coisa desse gênero. Pelo contrário, não sou
e não quero ser exemplo para ninguém. O principal é você saber
que existem opções diferentes das “40 horas semanais”. Mais
importante ainda é que a opção “startup” pode não ser a mais
recomendada para você. Não existe fórmula fechada, as rédeas de sua vida estão em suas mãos.
Então a pergunta que você deve se
fazer agora é: “Estou feliz com minha opção atual?”. Se a
resposta for sim, viva intensamente a segurança e conforto de seu
trabalho semanal; a adrenalina, agitação e desafios de sua startup;
os projetos a que você se dedica por conta do tempo livre conseguido
com seu lifestyle business.
Agora se a resposta for não, saia da
zona de conforto. Pare de culpar os outros por sua infelicidade. Só
cabe a você mudar a situação!
No fim do terceiro ano do ITA os alunos
se reúnem na chamada Comissão de Viagens (CV). Seu objetivo é
angariar recursos durante o quarto ano para financiar uma viagem
técnico cultural dos participantes pela Europa, vulgo mochilão.
Meu amigo Beraba, agora mas conhecido
como hacker do Facebook,
foi aclamado presidente da comissão. Eu fui diretor da CAPRO,
Comissão de Artigos Promocionais.
Depois de arrecadados os recursos,
embarcamos cerca de 40 pessoas no sucatão, o Boieng que o Lula
desovou para a Força Aérea. Naquele época o voo era fornecido
gratuitamente, já aproveitando a viagem para cumprir missão no
exterior. Então junto com a tripulação foram várias caixas de
peças de avião.
Aterrissamos em Madri e a viagem
começou animadíssima. 40 moleques felizes igual pinto no lixo.
Todos se organizaram em pequenos grupos. No meu havia 3 pessoas, eu,
Jandaia e o Beraba.
Na primeira noite fomos à uma rua de
balada espanholas. Lisos como todo estudante, tentamos dar um “Bob
Nelson” para entrar de graça. Ali escutamos uma frase de um
segurança que devíamos ter levado mais a sério: “No hai nada
gratis”.
A viagem prosseguiu e visitamos
diversas cidades. Na ordem: Madri, Barcelona, Paris, Amsterdam,
Bruxelas, Bruges e Toulouse. Nessa fizemos uma visita muito legal à
Air Bus. Se a memória não me falha, vimos um Beluga. Conclui
que qualquer coisa com asas voa:
Meu cartão de crédito não funcioanva em
nenhum lugar. Assim, o Beraba virou meu pai e passou a pagar tudo que
era de conta de cartão.
Durante toda a viagem seguimos um ritual. Íamos a um supermercado e comprávamos uma
garrafa de Absolut e energético. Essa vodka era mais barata que
Smirnof lá. Então uma era finalizada cada dois dias, durante as
baladas, passeios e albergues da vida.
Em Toulouse pegamos um voo para
Londres. Mas fomos apenas eu o Beraba. Jandaia prosseguiu para a
Russia sozinho.
Chegando na Inglaterra ficamos em um
dos melhores albergues da viagem,
próximo ao Hide Park. Chegamos de noite e tinha somente o dia
seguinte para turistar. Nesse dia caminhamos por toda Londres por
umas 7 horas. Foi desgastante.
Contudo, ao voltar para o Hostel, nos
esperava nosso energético. Resumindo, Beraba bebeu demais e se
passou no Hostel. Cedinho tínhamos que pegar um voo para Budapeste.
Foi muito legal porque fomos andando pelo parque por conta da
ressaca. Nada parava na barriga do “gordim”...kkk. Tenho um vídeo daquela
manhã:
Em toda viagem a gente comia só no Mc
Donaldos por conta da liseira. Mas a fama no Leste Europeu era das
coisas serem mais acessíveis. Isso e as baladas também. Era um
sábado, mas por conta da “enfermidade” do meu amigo, acabamos
não saindo naquele dia.
No domingo ele estava um pouco melhor,
mas não ao ponto de beber. E eu louco para sair. Naquela pilha toda,
acabamos indo em uma balada esquisitíssima. Antes de entrar bebi
toda minha parte da vodka, e também a do
Reginaldo. O lugar parecia uma construção velha da época da
segunda guerra. Na entrada havia umas cortinas de plástico no estilo
daquelas de açougue. Dentro tinha uma galera alternativa. Em algumas
mesas, havia banheiras em vez de banco para sentar. Mas só tinha
cueca lá.
Decidimos voltar para o Hostel. Eu já
estava totalmente embriagado. Heis então que brota um húngaro do nada
e nos convida para conhecer sua balada. Disse que a entrada era
franca e ainda ganhávamos uma cerveja. Deveríamos ter desconfiado.
Esmola demais...
Beraba me pergunta se quero entrar. Eu
muito doido, falei “Bora”. Pegamos nossa cerveja grátis e ao
entrar só tinha um cara no que parecia um porão-bar. Não deu 5
minutos, o Beraba falou para irmos embora porque aquilo estava
esquisto. Falei: “Partiu”.
Na saída o caixa falou que tínhamos
que pagar a conta. Perguntamos: “Que conta? Só pegamos a cerva
grátis e nem ela tomamos inteira!”. Ela então aponta para nossa
mesa. Estava cheia de bebidas. Champagne, whisky e algumas outras que
não estavam ali 5 minutos antes.
Mal começamos a argumentar e já havia
5 seguranças em nosso redor. Pensei: “a gente vai apanhar muito
hoje”. O interlocutar e aparentemente líder do bando era igual o
gangster do seriado Nip Tuck.
Começa então o bate papo “amistoso”.
O gangster passa a conta pra gente:
300.000 Forentis, a moeda húngara. Eu muito doido, começo a fazer a
conta de cabeça e em etapas. 250 Forentis igual a 1 Euro, 2.500 a
10, 25k a 100, 250k a 1000. Parei e disse: “Beraba, faz essa porra
dessa conta que eu to doidasso, na minha cabeça está dando mais de
1000 euros!”. Só ouço a reposta “deu 1.2k euros”. Pensei:
“Não vamos apanhar hoje, vamos morrer”.
Então a gente começa argumentar, e os
caras falando em húngaro entre eles. Pela expressão corporal
parecia que ia “azedar” bastante. Entre as ameaças o gangster
fala “Se vocês sumirem aqui, ninguém vai nem saber”.
Prontamente o Beraba pega meu passaporte, que era de militar, e diz
que estávamos em missão. O cara responde num sotaque bizarro “Do
you like to play games?” (você gosta de brincar?). “guarde isso
agora. Caso contrário, você vai ver o que vai te acontecer”. Acho
que o criador de jogos mortais deve ter ouvido nossa história para
criar o bordão .
Como todo bêbado é macho, eu digo
“Amigo, chama a polícia que a gente paga”. Logo ele responde
“This is my city, my police” (Essa é minha cidade, minha
polícia). Mas bêbado não desiste da macheza: “Então chama aí”.
O cara simplesmente caga pra mim. Cada vez eu tinha mais certeza que
nossas vidas estavam próximas do fim.
Vai ameça, vem ameaça. O álcool me
dá uma brilhante plano de ação: “Amigo, vou fazer o seguinte:
vou te dar toda grana que tenho e a gente fica acertado”. Enfio a
mão no bolso. e pego uma nota de 5 Forents, mais umas moedas. Junto
tudo em uma mão e dou porrada com a grana no balcão. Eu não lembro
da cara do Beraba, mas imagino. O gangster fala: “Are you crazy,
are you drunk?” (Você está doido, está bêbado?). A pronta
resposta “Lógico que tô bêbado, você não está vendo?”. Ele
retruca: “Vou te revistar e se achar alguma coisa você verá o
que vai te acontecer”. Cauteloso, eu digo: “Pera aí então que
eu to muito doido, deixa eu dar mais uma conferida”. Retiro do meu
bolso 50 centavos mais uma manteiga de cacau e dou mais uma
porrada no balcão...kkkkkkkkkkkkkkkkkkkkk. Obviamente o cara ficou
muito, mas muito puto. O Beraba diz que eu até levei um “pedala”
nessa hora, mas não lembro. Se era para morrer, que pelo menos
fosse tirando onda.
Por fim eles surgem com um plano de
pagamento. O Beraba iria até o caixa para retirar o dinheiro e eu
ficaria de refém no bar-porão. Eu pensei: “Beleza, espero que o
Beraba fuja. Com uma testemunha solta, não vão me matar. Como estou
anestesiado por conta da cachaça, nem vou sentir as porradas que vão
me dar até ele voltar para me buscar”. Não sei porque não falei
isso pra ele na hora em português, para ele fugir.
Beraba vai escoltado por um segurança
baixinho mais uma mulher. Eu embriagado fiquei enchendo o saco dos
que ficaram comigo: “Gente, que vida de merda vocês tem, ter que
ficar dando golpe para sobreviver deve ser uma foda”. Bêbado
insuportável, eles se afastaram.
Reginaldo volta com seus amigos em 5
minutos, cartão não funcionou. Então eles falam que é minha vez
de ir. Mandam o mesmo segurança baixinho e mulher. Meu pensamento
foi : “Sou eu então que tenho que fugir”. Morei no Rio de Janeiro e
por conta disso meditei: “Pessoal lerdo, mandar um segurança anão
e uma mulher só comigo”. Mas vi que ele estava com um casaco preto
e com a mão sempre no bolso. Pensei que naquele mato tinha coelho.
Mesmo assim, ao caminhar fui tentando
decorar o caminho para resgatar o Beraba caso eu fugisse. Me levaram
em uma avenida onde tinha o caixa. Insiro o cartão e ao pedir a
senha, olho feio para o segurança. Muito educados, eles viraram de
costas para não verem. Pensei: “Se fosse bandido carioca eu
já tinha levado uma coronhada e já estavam com minha senha e
cartão”.
Mas meu cartão não funcionou em
nenhum lugar da Europa, por que iria aqui? Parceiro, a Lei de Murphy
é implacável. Saquei o máximo, 100.000 Forents, saiu uma montanha
de dinheiro. O segurança diz: “Faltam 200k”. Tento fazer mais um
saque no mesmo valor. Consigo! Cartão “fela da puta”. Meu
racioncínio: “Os caras já vão ter o dinheiro e nós dois lá
naquele porão, não vai ter mais nada pra negociar”.
Então o santo álcool me deu coragem:
“Amigo, acabou a negociação. Tenho aqui 200k, que é mais do que
você merecem. Eu não vou voltar. Você traz meu amigo aqui e te dou
a grana”. O cara fica puto e pega no meu braço para me levar de
volta. Dou um tapa na mão delr, fazendo ele me largar. Repito “Acabou
parceiro, traz meu amigo e te dou a grana”.
Nisso vem uma mulher andando pela rua.
Eu peço: “Me ajuda, esse pessoal sequestrou meu amigo e querem me
matar, chama a polícia!”. A mulher saca o celular. O anão
segurança late algo em húngaro com ela. Pelo que entendi, deve ter
sido algo como “Não se mete ou vai sobrar para você”. Ela me
fala que não confia em mim. Eu digo: “Não confia em mim?
Maravilha, então chama a polícia!”. Ela se afasta rapidamente.
Mais uma vez sou puxado pelo braço.
Mais uma vez repilo com um tapa. Andando na rua aparecem dois
adolescentes. Mais uma vez peço ajuda. Eles tentam andar rápido para
me despistar. Eu sigo e digo “Eu vou seguir vocês. Eles estão com
meu amigo. Se for para eu morrer, vocês irão junto comigo agora”.
Cara, eu rio hoje imaginando se esse caras não cagaram na
calça.
A corrida maluca segue em frente. Eu
atrás dos jovens, o segurança e a mulher atrás de mim. Mas uma vez
sou agarrado. Me desvencilho com o velho tapa e digo num tom mais
alto: “Me larga”. A mulher responde: “Hei, fala baixo”. Penso
comigo: “Falar baixo?”. Junto todo ar nos pulmões e grito o mais
alto que já consegui na vida:
“HHHHHHHHEEEEEEEEEELLLLLLLLLLLPPPPPPPPPPPPP!!!!!!!!!!!!!!!”. O
grito ecoa por toda Budapeste. No finzinho eu fecho olho e aguardo o
tiro da pistola que eu achava estar na jaqueta do segurança.
Bom esse post já está enorme nesse
ponto, então vou deixar o restante para outro.
Só queria deixar um ensinamento dessa
história antes de você ir embora furioso por ter lido até aqui e
ter que esperar pelo final:
“No hai nada gratis”. Se te
disserem que a entrada é grátis, pergunte quanto custa a saída ;)
Além disso, intimo meu amigo Beraba a
escrever a versão dele dos fatos ;)
Ultimamente tenho evangelizado a
Plataforma como Serviço (do inglês PaaS – Plataform as a Service)
Google App Engine (GAE), utilizando a linguagem Python. Uma pergunta
me é feita de forma recorrente: “Renzo, é possível rodar Django
no App Engine? Funciona bem?”. Isso era de se esperar, visto que
Django é o framework web full-stack mais famoso dessa linguagem.
Versão curta:
Sim, é possível utilizar o Django no
GAE com o porte não oficial:
Na prática, você vive no pior dos
dois mundos: não consegue utilizar nem o Django nem o GAE 100%,
ficando com uma solução capenga. Então não use o Django no GAE!
Se você quiser usar o Django, use em
um stack padrão para ele. Seja Heroku, Amazon ou Digital Ocean.
Se quer usar App Engine, use com suas
apis. Apesar do medo do “vendor-lock-in”, em 4 anos nunca sofri
com isso. Se for para portar para outro host, melhor é usar o
Appscale (http://www.appscale.com/)
do que Django. Use um framework full-stack feito exclusivamente para
a plataforma:
https://github.com/renzon/tekton
Versão Longa:
DJango é um framework feito com SQL em
mente. Suas apps, painel de adminstração, ORM e scaffolding
dependem fundalmentalmente desse tipo de banco para funcionar 100%.
Assim, querer portá-lo para NoSQL me lembra a célebre frase “para
quem só conhece martelo, tudo é prego”.
Um dos grandes atrativos para
iniciantes é o painel de adminstração. Aliado ao scaffold,
é possível prototipar rapidamente aplicações web. Contudo, ao
tentar rodar o DJango-Admin no GAE, as limitações do Datastore
(https://developers.google.com/appengine/docs/python/ndb/) não
permitem o uso integral do painel. Além disso, a plataforma em si já
provê um painel de adminstração próprio, mesmo que mais rústico.
Mas as limitações desse banco existem
por uma razão: escalabilidade. Elas estão lá para permitir que sua
aplicação escale sem haver necessidade de alterar o código. E o
fato é que depois de conversar com engenheiro de grandes sites, como Facebook e Globo.com, conclui que mesmo trabalhando com SQL, várias
dessas limitações impostas acabam sendo necessárias nesse tipo de
banco para se atingir uma grande escala. Como exemplo a eliminação de joins para facilitar o cache:
Outra grande vantagem do Django é seu
ecossistemas de apps (módulos). Elas resolvem problemas recorrentes apenas
com a instalação de uma biblioteca. Para exemplifcar, procurei no
Google: “app django voting” e consegui uma para resolver votações
online: https://code.google.com/p/django-voting/.
Contudo, uma vez que se baseiam em Django + SQL, elas também
não funcionarão 100% no GAE. Basta a app precisar de um simples
join e sua funcionalidade não irá funcionar.
Tendo então comprometidas as duas
grande vantagens, sobra ainda uma outra muito interessante: geração
e validação automática de formulários a partir dos modelos. Isso
é extremamente útil, evitando replicação de código e reduzindo sua complexidade. Porém, para utilizar os formulários, pelo menos
o ModelForm, é necessário utilizar os modelos do Django.
Ao utilizar o ORM do Django, e algumas
outras apis, você irá perder uma grande vantagem do ndb: chamadas
assíncronas
(https://developers.google.com/appengine/docs/python/ndb/async). Com
elas é possível paralelizar as diversas buscas que devem ser feitas
em banco de dados durante uma requisição. Assim é otimizado o uso
de seus recursos gerando economia para seu bolso, uma vez que o
modelo de cobrança é proporcional ao tempo de uso. Logo, mais uma
vez um recurso não será utilizado 100%.
Ok, se te convenci nesse ponto de que
usar Django no GAE é “martelar parafuso”, então a pergunta
lógica a ser feita é: “O que uso para desenvolver?”
Quando comecei a usar a plataforma, o
projeto Django-nonrel não existia. Da mesma maneira, o micro
framework Flask também não. Mas o que percebi, acompanhando
discussões Flask versus Django na comunidade Python é que
microframeworks, como o primeiro, são preferidos por devs mais
experientes, pela liberdade de escolha que proporcionam. Mas para
devs iniciantes, um framework full-stack é mais adequado. E a razão
disso é muito simples: para um dev iniciante, é melhor contar com
as decisões feitas por profissionais mais experientes dentro do
framework do que bater cabeça tentando criar suas soluções.
Essa conclusão então me chamou a
atenção para a pergunta recorrente do início do post, que aqui
repito: “Renzo, é possível rodar Django no App Engine? Funciona
bem?”. Acabei meditando melhor, deixando meu preconceito contra
frameworks full-stack de lado, tentando entender o que realmente essa
pergunta queria dizer. Como fruto desse pensamento, acabei traduzindo
a pergunta para “Existe uma forma de automatizar o código no GAE
da mesma forma que faço com o Django?”. E a reposta é sim.
A solução então foi adaptar minha
biblioteca, o Tekton.
Ele foi construído em cima do framework padrão da documentação do
App Engine, o webapp2.
Sua versão inicial tinha a mesma filosofia do Flask.
E por conta do que comentei sobre esse tipo de framework, essa é uma
opção não familiar para devs iniciantes ou àqueles que conhecem as
facilidades do Django.
Passei então a analisar os pontos
fortes do Django e também do Rails. Minhas conclusões:
Seria legal ter scaffold para
prototipação
Seria legal ter validação automática
de formulários a partir de modelos
Seria legal ter a criação de código
html a partir de modelos
Seria legal ter um ecossistema de apps
mínimas para começar, e ir acrescentando outra com o tempo
Seria legal fornecer uma arquitetura
para permitir o uso das API's assíncronas do Google, ao mesmo tempo
em que se construa apps isoladas como as do Django
Seria legal documentar todas
ferramentas
Seria legal criar uma comunidade em
volta desse framewok
Para as primeiras 4 questões, segue o
vídeo:
Para as demais:
Apps:
Até agora escrevi 5 apps:
GAEBusiness. Arquitetura para camada de negócio que permite separar
apps e ainda sim executar código utilizando as vantagens da API
assíncrona;
GAEGraph. Lib que permite modelagem de dados no
banco como um grafo. Prove várias features interessantes, como
recuperação de nós, salvamento entre outras. Isso utilizando
memcache para aumentar performance e reduzir custos;
GAECookie. App de segurança de cookie
para validação de sessão e para evitar ataques CSRF;
GAEPermission. Plataforma de login com
Google, Facebook e Passwordless. Também prove camada de segurança
por lista branca (white-list) para controlar permissões em alto
nível;
GAEPagseguro. Plataforma de integração
com pagseguro.
Todas essas features podem ser
conferidas em https://pt-dot-tekton-fullstack.appspot.com/ e também
em http://adm.python.pro.br/
Quanto a documentação, vou
reescrever todo o livro https://leanpub.com/appengine
para conter essa nova abordagem. Após isso vou documentar todas
apps no Github.
Por fim, fica a criação da
comunidade. É isso que começo fazer agora! Assim, se você quiser
participar desse projeto ou tirar dúvidas, fica o endereço do fórum
para você se filiar:
Ano passado meu amigo Dênis Costa me
enviou um post fantástico sobre
um sistema de login sem senha. A ideia principal é: “Para
que pedir uma senha ao usuário se ele vai esquecê-la?”. Ou seja,
se o “esqueci minha senha” vai ser utilizado com frequência,
porque não simplesmente enviar um link de login por e-mail toda vez
que usuário quiser acessar o sistema? Achei a ideia genial.
Procurei por alguém que oferecesse o
login sem senha como serviço, aos moldes de um “login com
Facebook”. Não encontrei. Decidi então desenvolver o Passwordless.
Além de se poder utilizar como serviço, o projeto é livre:
No processo de desenvolvimento mapiei
os status para logar o usuário:
Usuário pede para fazer login em
um site;
Site envia chamada para
Passwordless;
Passworldless envia e-mail em nome
do site;
Usuário acessa e-mail e clica no
link;
Passworldless envia noticação ao
site.
Site efetua o login
Desenhando o diagrama de sequência:
Além desse fluxo, também são
importantíssimos os requisitos de segurança.
O primeiro deles é evitar o envio de
spam. Isso foi mitigado criando um intervalo de tempo mínimo, atualmente 30
minutos, para que se possa enviar um e-mail de login para o mesmo
usuário. Segue o teste automático:
def test_spam(self):
site = mommy.make_one(Site, domain='www.pswd.com')
user = mommy.make_one(PswdUser)
ndb.put_multi([site, user])
create_login = CreateLogin(user, site, 'hook')
create_login.execute()
# time.sleep(3) # giving time because eventual consistency
validate_cmd = ValidateLoginCall(site.key.id(), site.token, 'http://www.pswd.com/pswdless',
user.key.id())
O segundo requisito seria proteger o
link de login. Para isso foram implementadas as seguintes medidas:
Todo link é único, contendo um
token aleatório e assinado via hash;
Todo link tem validade. Se em 10
minutos o usuário não clicar nele, ele fica inválido;
Todo link é descartável. Depois
de utilizado, não mais é possível fazer login com ele.
Para todas essas medidas foram
construídos testes automáticos:
Interessante notar a análise no
segundo, onde colocaram dados sobre a aceitação dos usuários
a um sistema de login sem senha de um comércio eletrônico.
Mas e você, qual sua opinião sobre
um sistema de login sem senha?
Após a grande batalha de 2003, em
janeiro do ano seguinte seguimos do RJ para o ITA no meu carro eu,
Alan, Papel e Raissan. Dada minha experiência no Naval, cheguei no
CTA de “guarda alta”, pronto para trotes pesados.
O veterano que nos recebeu foi Átila,
da turma 07. Tudo muito tranquilo, falou que deveríamos escolher um
apartamento, mas que não poderíamos ficar todos juntos, 2 no máximo
por ap. A razão disso era enturmar todos os ingressantes, evitando a
formação de panelas.
Perguntei então sobre a rotina, se
tinha revista no apartamento. Ele respondeu que o apartamento era
nosso e que apesar de o ITA estar em uma base militar, ele não tinha
a rotina de milico. Você não é obrigado arrumar sua cama ou até
mesmo ir a aula. Ao saber disso, pensei: “Isso vai ser uma colônia
de férias”.
Ficamos então eu e Raissam no
apartamento 316. Lá já estava o Reginaldo José, vulgo Beraba, que
recentemente ficou famoso por hackear o Facebook. Depois chegaram o
Thiago (Granola) , Joaquim (Mantega) e Marcelo Gomes (Muskito).
Durante o primeiro mês ocorria a
chamada integração. Durante o período os calouros eram reunidos
para “bostejos”, que são bate papos onde veteranos explicam o
funcionamento do ITA e seus valores. Aconteciam algumas brincadeiras,
mas depois dos trotes do Naval, aquilo era muito tranquilo.
Além disso havia instrução militar
no CPOR. No primeiro ano todos alunos são militares, visando cumprir
o serviço obrigatório. Mas sendo a maioria dos alunos compostas por
civis, ou seja, quem não optou por ser militar no vestibular, as
instruções eram bem suaves.
Apesar de eu achar tudo ótimo, a
maioria dos meus amigos de turma não estava acostumados com as
novidades. Morar sozinho era um desafio. Os apartamentos eram velhos
e com vários problemas. Certa vez chouveu e o esgoto inundou minha
vaga e a do Raissan. Muitos reclamavam do trote. Mas enfim, para quem
morava em alojamento, tinha que arrumar a cama todo dia e ir para
aula fardado, o CTA e o alojamento (H8) eram um paraíso.
Terminado o período de integração
começaram as aulas. Nesse período apenas tínhamos que ir no CPOR
às segundas de tarde. E isso recebendo um salário, não sei como
ainda tinha gente que reclamava. Nesse início mais uma vez boa parte
da turma se frustrou. Alguns professores deixavam a desejar. Por
conta da fama do ITA, a maioria pensava que só existiriam
profissionais espetaculares. Em particular ,eu não me frustrei por
já ter passado o mesmo Naval.
Depois de estudar nessas duas
instituições e conhecer muitos amigos de colégios militares,
cheguei na fórmula das boas escolas:
Processo seletivo acirrado
Média de aprovação alta
Provas difíceis, independente da
qualidade do professor
Regras rígidas, com muitas
culminando em desligamento.
A média no ITA é 6,5. São feitas em
geral 3 provas: primeiro e segundo bimestre e mais uma prova final.
Se não atingir a média, o aluno deve fazer segunda época no
próximo semestre e atingir a média. Isso quer dizer que se você
ficou com 6 de média, precisa tirar 7 na segunda época, com 5 é
necessário 8 e assim sucessivamente. Mas mesmo que você atinja a
média na segunda época, há ainda mais uma regra. Se você tirar
menos de 8,5, você fica com o 'I' de insuficiente em seu currículo.
Se durante todo o ITA você acumular mais do 5 Is, você é
desligado. Se você repete maid de suas matérias, você tem que
refazer todos as outras do semestre. Você só pode trancar duas
vezes: uma por nota e uma por saúde. Na prática, em minha época o
pessoal acochambrava para deixar você usar o “continue” da saúde
mesmo que a razão verdadeira fosse nota.
Mas são essas dificuldades e o fato de
morar juntos que faz com que os integrantes da turma sejam muito
unidos. Os mais safos ajudam aqueles com maior dificuldade e assim se
formam amizades para uma vida inteira.
Um valor interessante, herdado das
escolas militares, é muito interessante: a Disciplina Consciente
(DC). Basicamente o conceito pode ser traduzido como honestidade,
praticado através da confiança nesse valor. Como exemplo, é comum
um professor passar provas e não ficar supervisionando a sala. Mais
ainda: dar uma prova para se fazer em casa, com tempo de duração e
sem consulta. Isso cria um ambiente ímpar. Mas como as regras são
rígidas, quebrar esse valor é algo muito sério. Alunos que são
pegos colando são expulsos, apesar de algumas vezes já terem
acochambrado e apenas trancado alunos pegos com a boca na botija. Mas
isso é muito incomum.
Enfim ,o primeiro ano do ITA foi
relativamente tranquilo para mim. A boa base que o Colégio Naval me
deu, mais 1 ano de cursinho Roquette (infelizmente falecido há
poucos dias antes da publicação desse artigo) contribuíram para
isso.
Infelizmente no fim do ano (talvez
tenha sido no segundo ano) o Raissan trancou por conta de notas. Além
disso, estávamos divididos em dois grupos no ap. Granola e Beraba
estudavam e eram regrados. Os outros, eu incluso, tocávamos o
zaralho: vídeo game até tarde, séries de TV, saidões. Por conta
disso, acabamos decidindo por dividir o ap no segundo ano. Mas o
segundo ano fica para um outro post.
Enfim, o ITA é um lugar incrível onde
você encontra pessoas sensacionais, fazendo amizades para a vida
inteira. As regras rígidas, estudo puxado e a DC é fórmula para a
fama da instituição, materializado pelo assédio das empresas para
contratarem os que se graduam na instituição. Além disso, esse
fatores contribuem para a “máfia iteana”. Ela consiste em uma
rede de contatos de ex-aluno que costuma se ajudar, principalmente no
quesito mercado de trabalho.
Enfim, um lugar espetacular que tive o
privilégio de estudar e que aconselho a todos que se interessarem e
estiverem dispostos a pagar o preço exigido pelo foco no estudo.
Nesse ano de 2004 ainda cheguei a ir no
baile da Escola Naval. Foi interessante encontrar os velhos amigos de
Colégio Naval e poder dar a volta por cima. No ano seguinte e também
fui ao baile, com histórias mais interessantes para contar, mas fica
para o próximo post.
Conhece aquele ditado: “Há três coisas que todo ser humano deve fazer na vida para se sentir realizado: escrever um livro, ter um filho e plantar uma árvore”? Pois é, faço parte dessa turma. No início de 2014 achei que era hora de começar a escrever. Avaliei algumas opções para publicação e acabei optando por uma independente (self publishing).
Acabei encontrando o espetacular site de publicação independente LeanPub. O primeiro aspecto que achei fantástico foi poder fazer o lançamento de maneira “lean”. Isso quer dizer que é possível testar o mercado muito antes da conclusão do trabalho. O site provê uma “landing page” na qual você pode perguntar quanto as pessoas estariam dispostas a pagar. Fiz o lançamento depois de terminar o primeiro capítulo do App Engine e Python, você programa e o Google escala! Foi muito motivador fazer a primeira venda. Com certeza dá muito mais energia para escrever mais.
Outra funcionalidade fantástica é a geração do livro. Após o cadastro da conta o site compartilha uma pasta com você através do Dropbox. Dessa forma não há necessidade de se fazer upload e dowload. Ela contém os arquivos para geração do livro. O formato de escrita é o Markdown. Ou seja, para quem está acostumado a editar esse tipo de arquivo no GitHub, a curva de aprendizado é super suave. Com apenas um clique você tem a geração em formato epub, mob e pdf. É muito estimulante poder ver seu trabalho em um leitor eletrônico como o Kindle.
A simplicidade na geração do material é tanta que pensamos em fazer um teste no Python Pro. Começando pelo App Engine Fundamental, vamos ver se funciona fornecer as várias versões como material de apoio ao curso. Dessa maneira o aluno aprende com aulas ao vivo, exercícios e mais o livro para se aprofundar.
Enfim, tem vontade de escrever sobre algum assunto? dificuldade para publicar não é mais desculpa!
Depois que comecei a fazer o curso AppEngine e Python: você programa e o Google escala!,
muita gente me perguntou como eu estava fazendo o screencast no
Linux. Então vou comentar as ferramentas que estou utilizando e
algumas que usei, mas não funcionaram bem.
Qualidade do áudio
A primeira coisa que você deve prestar
atenção quando for gravar screencast é o aúdio. Os microfones dos
laptops atuais servem para você conversar no Skype ou Hangout. Já
para gravação deixam a desejar, por conta dos ruídos e chiados.
Para resolver esse problema, comprei um microfone USB da Microsoft
(Obs: o hardware da M$ costuma ser muito bom, apesar do Windows =P).
Como a entrada de microfone comum (p2) costuma não ser muito boa
para captação, escolhi esse modelo USB.
Captura de vídeo
Inicialmente eu tentei utilizar o
Record my Desktop
mas houve problemas. Ele grava utilizando a extensão ogv e o arquivo
fica enorme. Além disso, na hora de fazer recortes durante a edição,
o aúdio ficava dessincronizado com o vídeo. E quanto maior o
recorte, pior ficava, inviabilizando o seu uso.
Existe também a opção de linha de
comando que meu amigo Tony Lâmpada postou em seu
blog.
Mas ainda sim pode ser problemático se você estiver usando um
monitor adicional.
Por fim o programa que estou usando
hoje é o Kazam .
Ele já possui opção de fazer o encoding em mp4; permite fazer o
setup dos inputs de aúdio e vídeo, em termos harware; quadros por
segundo e também que se faça o screencast de uma porção limitada
da tela. Disparado o melhor que econtrei.
Edição de vídeo
Para edição, estou utilizando o
Kdenlive.
A interface de edição dele é simples e lembra um pouco a interface do
do Camtasia, apesar de não ter tantos recursos. Mas para recortes é
perfeito.
Screenshot
Apesar de não ter relação direta com
vídeo, uso o Shutter
para fazer screeshots. Ele permite fazer a captura de uma janela
específica, economizando o tempo de você ter que recortar a imagem.
Possui também recurso de timer para que você possa fazer a captura
de acesso a menus de contexto de programas, o que é impossível
apenas utilizando o printscreen.
Enfim, se o software era sua desculpa
para não gravar aquele curso bacana que está na sua cabeça, agora
isso não é mais problema.