segunda-feira, 14 de outubro de 2013

Quando você Quer, o Universo conspira em seu favor - Parte 2

escrever... Olá pessoal,

Primeiramente eu queria agradecer as mensagens que recebi depois que escrevi o post anterior. Em particular, recebi várias dos amigos de tempo de Colégio Naval (CN): Serafim, Vinícius, Élcio, Sobreira, Dihego Antônio, Renato Barros e Leonardo Gomes (desculpem se esqueci alguém). Não esperava que fosse ter essa repercussão, mas fiquei motivado para escrever. Mais do que isso, me fizeram alterar o rumo que pretendia abordar, falando do período do CN com mais detalhes. Digo isso porque acho que por muito tempo bloqueei as lembranças daquele período, mesmo as felizes. Enfim, vamos à continuação.

No ano de 2000, após a batalha para passar no concurso, embarquei em uma viagem que marcou minha vida para sempre: entrar no Colégio Naval (CN). A Marinha organizou a viagem de todos não residentes no Rio de Janeiro, concentrando todos na Escola Naval (EN), instituição de ensino superior que forma oficiais de carreira. Foi um dia muito feliz. Começamos novas amizades, jogamos bola e tomamos banho de piscina.

Meu amigo Carlos da Rocha, com o qual estudei por certo tempo no curso do Major Romão, havia me alertado que o período de adaptação do CN era muito difícil. Tinha me passado alguns bizus, alguns hinos que deveríamos aprender para a adaptação, mas acabei não seguindo seus conselhos e simplesmente aproveitei a estrutura da EN para me divertir.

No dia seguinte nos encaminhamos ao CIAGA onde, junto aos demais adaptandos residentes no Rio de Janeiro, embarcaríamos rumo à Enseada Batista das Neves. Entramos nos ônibus, todos felizes, se despedindo de suas famílias. Na saída, quando viramos na Avenida Brasil, ouvimos o dizer que eu repetiria quando chegasse ao terceiro ano: “Acabou a brincadeira pessoal, a partir de agora é sim senhor, não senhor e quero ir de baixa”. Essas eram as boas vindas para o início do período de adaptação do CN.

No caminho formos aprendendo o hino do Colégio. Ao chegarmos, desembarcamos correndo, tropeçando uns nos outros, atirando bagagens para cima e para baixo em meio aos gritos dos adaptadores, que eram alunos do terceiro ano. Pela primeira vez entramos em forma. Parecíamos um bando de ovelhas sendo conduzidos por cães raivosos.

Durante os 15 dias que se seguiram, recebemos instruções de Ordem Unida, fardamento, aprendemos hinos importantes. Além disso, aprendemos a famosa Hierarquia e Disciplina, pilares das 3 forças armadas. Porém, havia toda a pressão psicológica dos veteranos e os famosos e temidos trotes. Os piores deles eram oficiais.

 Era interessante notar como o corpo humano é frágil: ficar 40 minutos parado é algo extremamente doloroso. Em posição de descansar, com as mãoes espalmadas, com os 10 dedos encostados nas costas e quando alguém fraquejava, sempre tinha o veterano amigo para relembrar, gritando, que a mão deveria ficar espalmada. Grito esse sempre acompanhado com um bom tapa pra reforçar a importância da postura. Impressionante como ficar em posição de cobrir, com o braço estirado na posição horizontal, acarretava em uma dor enorme depois de apenas 5 minutos. Enfim, uma grande aula que você acabava tendo na batalha com seu próprio corpo para que ele fizesse o que era esperado.

Mas como sempre falaram, éramos voluntários ali, podíamos desistir a qualquer momento. E assim alguns amigos, provalvemente os mais sãos de nós, desistiram. Me lembro em uma das paradas quando o irmão do Mario Gomes desmaiou ao meu lado e foi levado à enfermaria, indo de baixa logo em seguida. Me lembro de, devido ao cansaço, eu respirar rápido para ver se faltava oxigênio no cérebro e eu desmaiava também, para poder descansar um pouco. Infelizmente ou não, não funcionou...rs

Mas aquele era meu sonho. Mais do que isso, era minha passagem para uma vida melhor e eu estava disposto a pagar o preço. Em nenhum momento pensei em desistir. E em meio a esses momentos difíceis, ia nascendo um grande espírito de corpo, de equipe. Um fato que me lembro muito bem foi quando eu estava de noite, todo moído, e calcularam mal a ceia, de forma que fiquei sem comer. Estava com uma fome desgraçada e lembro do Fábio Nogueira, que eu não conhecia, me dar um pacote de passatempo para matar a fome. Sei que parece um gesto simples, mas lembro que quase ninguém tinha conseguido passar com alimentos até o alojamento.

Após duas semanas de muito sofrimento, chegamos ao fim da adaptação. Finalmente estávamos vestidos com nosso uniforme branco, 5.5, orgulhosos de termos sobrevevivido, prontos para a cerimônia em que deixariámos de ser adaptandos para nos tornarmos alunos. Eu sempre fui um cara durão, meio insensível até. Mas quando estava em forma e vi minha mãe em meio aos demais familiares presentes, simplesmente não aguentei. Comecei a chorar em forma, seguido de alguns outros amigos, como o Feijó.

Apesar de ser um período difícil, lembro de um discurso dos veteranos Gomez Muniz e Shalon ao fim da adaptação: “Pessoal, estamos chegando ao fim da adaptação e eu tenho uma notícia não muito agradável. Esse período de adaptação foi a parte fácil. Na equipe de adaptores estão as pessoas mais responsáveis do terceiro ano. Quando o ano começar, chegará todo o resto babando pra interagir com vocẽs. E aí vcs terão saudades do período de adaptação”.

Pensei: “Está querendo só colocar medo na gente”. Mas realmente estava falando a verdade. Quando chegou todo o terceiro ano, a coisa ficou tensa. Era gente obrigada a enfiar laranja inteira na boca sem descascar, queimando a boca inteira. Primeiro-anista obrigado a jogar suco na comida, misturar e comer. Gente obrigada a tomar um litro de água até quase vomitar. Gente obrigada o ouvir veterano babaca gritando na sua cara, fazendo você pagar infinitas flexões, vestir todas suas fardas, uma por cima da outra, e ser obrigado o correr pelo alojamento. Enfim, todo o tipo de brincadeira sadia que se possa imaginar.

Era engraçado quando íamos subir as escadas dos alojamentos. Era necessário passar pelo primeiro andar, onde ficava a tolda cheia de veteramos. Nos reuníamos em bando, como cardumes de peixes, para nos proteger. Sempre alguém era carteado para alguma sessão de gritaria ou trote físico, sendo sacrificado para que os demais chegassem ilesos ao alojamento do primeiro ano.

Apesar de tudo isso, eu sempre consegui que não me marcassem. Eu sempre me negava a fazer coisas como xingar um veterano a mando de outro, o que chamavam de “piranhar”. Lembro que quando sentei na mesa do Farol e me recusei a piranhar, ele ficou muito, muito puto. Começou a gritar que nem um maluco e me fez beber a jacuba inteira de água. Mas a teimosia é uma característica marcante minha. Eu bebi tudo e não piranhei...rs. Acho que por conta disso os veteranos não gostavam muito de me dar trote, eu não devia ser "brinquedo" muito engraçado...rs.

Enfim os primeiros meses passaram e as coisas se acalmaram, até porque a turma tinha que focar no estudo, que era muito puxado. Inclusive era possível fazer amizade com alguns veteranos. Até mesmo com o Farol eu consegui conversar numa boa, mas isso já mais pro fim do ano.

Acabei entrando para a equipe de futebol e isso foi muito bom. Ajudou a fazer grandes amizades e funcionava como lazer e válvula de escape. A rotina diária era massacrante. A alvorada ocorria às 6 da manhã. Eu acordava 5:40 porque gostava de tomar banho e me arrumar com tranquilidade. 6:30 era o café e 7:30 começavam as aulas. Meio dia iniciava o almoço. 13 horas terminava o almoço e 13:30 começava a parada escolar. Às vezes a parada demorava uma hora, naquele sol, e então terminava com desfile dos alunos. Às 14:35 começava o período de treinamento. Em geral, deixávamos o campo de futebol às 17 horas, algumas vezes mais tarde. 18 horas iniciava a janta e terminava às 19. 19:30 iníciava o período de estudo obrigatório, quando tínhamos que ficar em sala de aula até 21 horas. Iniciava então a ceia e ás 21:30 éramos liberados. Ás 22 ocorria o toque de silêncio e aí podíamos descansar. Mas, na prática, arrumávamos as coisas para o dia seguinte, engraxando sapato, passando farda ou estudando. Mas também jogávamos muito papo fora nesse período, afinal, ninguém é de ferro.

Durante todo esse primeiro ano eu fui um aluno muito aplicado. No Naval vc era classificado pela sua nota e mais um conceito, que era atribuido pelos oficiais. Eu almejava me tornar um oficial aluno. Assim eram chamados os 22 primeiros colocados do terceiro ano, que eram responsáveis por comandar as companhias e pelotões. Eles também faziam parte do período de adaptação.

A fórmula para o ensino de excelência era muito simples e a mesma que eu encontraria no ITA 4 anos mais tarde: processo seletivo acirrado, selecionando excelentes alunos. Provas muito difíceis, mesmo que a qualidade da aula de alguns professores fosse sofrível. Regras rígidas de aproveitamento escolar: média 7; se ficasse de recuperação em mais de duas matérias, repetia; só podia repetir uma vez por nota e outra por saúde. A terceira repetências acarretava em expulsão.

Apesar de tudo, muitas coisas boas também aconteciam. Foram várias amizades e oportunidades únicas. Eu lembro claramente de 4 delas. A primeira foi uma viagem que fiz na fragata Rademaker, com duração de 2 dias indo até o porto de Santos. Ver a minha cidade de alto mar, na proa de uma fragata, foi uma sensação incrível. Minha única preocupação foi que fiquei mareado na viagem e isso seria um problema no futuro, se eu tivesse seguido como oficial.

O segundo grande acontecimento que lembro foi o baile da integração. Se tem uma coisa que compensava todo o sofrimento, era aquele baile. Juntávamos dinheiro de todos os alunos e fazíamos festa no clube Charitas em Niterói. Íamos fardados, de 5.5, e só entravam mulheres. Nós alugavamos ônibus para levarem e trazerem as meninas da festa. Era uma alegria, 5 mulheres para cada homem! E estando fardado, até quem não era bom de papo conseguia se safar. Apesar que lembro de gente “cocando” (não pegar ninguém), mas prefiro não comentar para não causar constrangimentos.

O terceiro evento bacana foi desfilar no aniversário de Monteiro Lobato. Viagem toda paga e desfile na cidade pequena. Fomos a atração. Quem diria que alguns anos depois minha mãe abriria uma loja de móveis na cidade (www.antigonovo.com.br). Esse mundo é muito pequeno. Me lembro de sairmos pra uma festa e eu ter comido um milho muito esquisito junto com o Canthé. Comentei com ele “Isso aqui vai dar um revertério danado amanhã”. Não deu outra. Acordei com a barriga doendo um pouco, mas mesmo assim fui desfilar. Após o desfile, passeamos pela cidade e depois embarcarmos no ônibus para retoranar para casa. Aproveitei a carona, desci em São José dos Campos e peguei condução para Santos.

A dor na minha barriga piorou e quando cheguei em casa fui direto dormir. De manhã acordo com uma dor pior ainda. Ligo pro CN pra saber se tinha hospital em Santos. Me dirigi ao Hospital Ana Costa. Ao chegar, me encaminharam logo para cirurgia de apêndice. Ele havia supurado (acho que é esse o termo) e tiveram que fazer um corte maior que o de costume para fazer assepcia interna. Queriam evitar uma infecção. Ainda bem que estava na Marinha. Se fosse em um hospital público, talvez eu não estivesse escrevendo esse relato hoje.

 Uma semana depois voltei ao CN. Eu fiquei na enfermaria e ia pra aula de abrigo olímpico, não precisa vausar farda. Pelo menos alguma coisa a apendicite trouxe de bom...rs

 Depois de apenas 20 dias, voltei aos treinos de futebol. Eu estava de olho no jogo que teríamos no RJ, contra o Colégio Militar (CMRJ). O fato é que eu era muito sem noção e simplesmente voltei a treinar sem falar com os médicos. Não sabia que alguém tinha que me liberar para os exercícios, afinal, eu me sentia bem. Foi então que 3 dias antes da viagem o treinador falou que eu não poderia ir na competição porque eu nem tinha sido liberado na efermaria. Mas eu já tinha feito certa amizade com a turma da saúde, bati um papo com o Doutor Oscar Passos e ele me liberou.

Embarcamos então para o o CMRJ e iniciamos o jogo no domingo. Foi uma partida dura e o tempo regular terminou em 0 a 0. Inciado o primeiro tempo de prorrogação, ganhamos um escanteio. Lembro do Ricardo, então do segundo ano, me falando “Renzo, vai pra área”. Eu respondi “Cara, sou pequeno e não vou conseguir fazer nada lá. Vou ficar aqui de fora da área pra ver se sobre rebote”. Cobraram o escanteio, a zaga desviou para a linha de fundo. De novo o Ricardo falou: “Vai pra área”. Mas fiquei onde estava. Cobraram o escanteio, a zaga desviou novamente. Mas dessa vez, foi justamente na minha direção. A bola quicou uma vez, mandei um pombo sem asa, de trivela, bem no ângulo esquerdo do goleiro. Me lembro de sair correndo pro meio para comemorar, pensando em segurar o resultado obtido durante o restante da prorrogação. Foi então que eu vi todo mundo invandindo o campo, inclusive o Oscar Passos e demais oficiais. Pensei: “Caramba, chutaram o balde pra postura militar, o jogo nem acabou estão invandindo o campo? Isso vai dar merda”. Mas foi aí que descobri que estava valendo gol de ouro na prorrogação. Depois disso virei peixe do oficialato. O comandante do Corpo De Alunos, Capitão de Fragata Cardoso Gomes se não me engano, e também o da minha companhia, Capitão-Tenente Alexandre, eram boleiros. O Universo não poderia ter me ajudado mais que isso...rs

Recebemos as medalhas e aconteceu uma das coisas mais bizarras. Um senhor me chamou, falou que era agente de futebol, que tinha filmado o jogo e tinha contatos no Flamengo e PSG. Fiquei sem saber o que falar. Se fosse hoje em dia, eu teria largado o CN na hora pra tentar viver um sonho desse. Mas o Renzo daquela época já tinha desistido do sonho de jogar bola pra viver outro: era um militar vibrão, um aluno exemplar que já definira seu futuro: seria Oficial da Marinha do Brasil. Por conta disso, não cheguei nem a entrar em contato com aquele senhor novamente. Mas de fato, aquilo serviu para meu ego subir até o espaço =D.

 O ano terminou, fomos para as merecidas férias de fim de ano. Como minha mãe estava em Porto Seguro e havia alguns amigos querendo viajar, pedi que ela conseguisse um casa para mim e para meus amigos alugarmos. Até onde lembro, viajamos eu, Orrico, Rafael Leão, Spranger e um amigo deles da Epcar, o Bruno. Mal sabia eu que esse negócio de viagem para Porto Seguro acabaria virando um pequeno negócio no futuro. Sabia ainda menos que alguns anos depois a tia do Bruno seria minha advogada em um processo contra a Marinha.

 Mas a viagem foi muito boa e no meio dela fiquei sabendo minha classificação para o segundo ano: 26º  colocado. Assim, eu seria o aluno 2026, onde o primeiro digíto indica o ano, e os 3 seguintes a classificação. Estava bem próximo do meu objetivo de estar entre os 22  primeiro e ser um oficial aluno. E assim se daria o início do meu segundo ano de CN, em 2001.

 Enfim, esse post já está maior que o anterior e vou encerrá-lo por aqui. Foi interessante parar para refletir sobre o Colégio Naval e resgatar lembranças nas quais eu não pensava há muito tempo. Para encerrar, fica uma foto do projeto de jogador tirada pelo de Vito, no campo do Colégio, com a enseada Batista das Neves ao fundo:



Abraços e até o próximo post.

PS: Depois que escrevi o Canthé adicionou algumas fotos do fds em Monteiro:





quinta-feira, 10 de outubro de 2013

Quando você Quer, o Universo conspira em seu favor - Parte 1

Fala Galera,

 Mais uma vez eu começo um post dizendo que há muito tempo não escrevo. Realmente esse blog está largado às traças. Mas isso vai mudar a partir de hoje.

 A primeira mudança é que alterei o perfil do blog: "Tecnologia na Prática e Outras Viagens". Isso porque agora ele será pessoal e quero usá-lo para escrever não só sobre tecnologia, que é uma das minhas paixões, como também sobre outras viagens, como empreendedorismo, lifestyle company ou até mesmo  alguma idéia maluca que passe pela cabeça. Escrever é bom para organizar os pensamentos e vou fazer isso pelo menos uma vez por semana.

 Começando com essa filosofia, gostaria de expor uma pseudo teoria que sempre ouvi falar mas que constatei há dois meses, ao fazer uma retrospectiva da minha vida. É o título desse post "Quando você Quer, o Universo conspira em seu favor". Sempre tive vontade de escrever sobre isso e agora vou fazê-lo. Acho que ainda sou novo para servir de exemplo para qualquer pessoa, mas as vezes minha história pode servir como um empurrãozinho para quem está correndo atrás de seus sonhos. Na pior das hipóteses, faço do post meu divã =D

 Primeiramente queria explicar a razão do "Quer" estar escrito em maiúsculo. Sempre gostei muito de futebol e, como muitos brasileiros, sonhava em ser jogador. Jogava bola todo dia na escola e na praia de Santos, onde morava. Fiz escolinha e queria participar das peneiras da categoria de base. Contudo, nunca fui em uma seletiva, por medo de não passar. Sabia que havia candidatos muito melhores que eu. Essa atitude é o que eu chamo de "querer" com "q" minúsculo. É o querer que se sonha, mas que não se arrisca, não dá a cara a tapa, seja por medo, timidez ou qualquer outra razão desculpa que você quiser inventar para se convencer de que não atingiu seus objetivos e a culpa não foi sua.

Ainda nessa época eu morava em um bairro de Santos chamado Divisa, por ficar na fronteira entre essa cidade e São Vicente. Minha turma de bairro era humilde, tinha gente que morava no morro e não tinha muitas condições financeiras. Um caminho comum eram as drogas e/ou tráfico e muitos enverederam por ele. A maioria, infelizmente, não está mais entre nós hoje para confirmar essa história.

Por conta desse ambiente, por volta de 95 ou 96,  minha mãe comentou comigo sobre o Colégio Naval, um dos melhores colégios de segundo grau do Brasil, que prepara jovens para serem Oficiais da Marinha Brasileira. Além do ensino de excelência, ele paga para você estudar! Eu ainda não tinha desistido de jogar futebol, mas como comentei, eu não "Queria" de verdade. Sendo sempre o primeiro de todos as turmas dos fracos colégios públicos em que estudei, isso me dava a ilusão de que eu era bom em estudar e achei uma boa ter o Naval como plano B.

Foi então que prestei o concurso em 97. Aquela foi a primeira vez na vida que eu olhei uma prova de matemática e não sabia fazer nenhuma das 20 questões. Me recordo de chegar em casa e dizer: "Mãe, se essa prova estivesse escrita em grego, não faria a menor diferença para mim". O que acontece é que a prova de matemática do Colégio Naval é mais difícil do Brasil, em nível fundamental. Fiquei com uma mistura de sentimentos, indo da raiva até o descredito em mim mesmo. Afinal de contas, eu era o "picão" de todas as turmas que tinha passado, sem fazer grande esforço.

 Os sentimentos logo passaram e deram lugar a vontade de enfrentar o desafio de passar no concurso. Virou questão de honra. Em 98 passei a trabalhar de office boy e estudar por conta própria. Peguei a ementa e comecei pela matemática. Chegada a data do concurso, pimba, acertei 2 das 20 questões. Já sai da prova sabendo que tinha levado bomba. Na saída peguei 2 panfletos sobre cursos preparatórios.

No fim do mesmo ano fui ao Rio de Janeiro na casa de minha tia Solange para conhecer os cursos preparatórios da cidade. Todos aprovavam muito e, consequentemente, cobravam uma mensalidade significativa. A intenção da minha mãe era vender a loja de roupa de bebê que ela tinha para arcar com os custos. Para não perder viagem, prestei concurso para o Colégio Pedro II. Poderia estudar em um bom colégio e fazer o curso de tarde. Pelo menos dessa vez eu passei no concurso.

Mas como todo mundo sabe, sorte de pobre dura pouco...rs. A loja não ia bem das pernas e acabou falindo em agosto daquele ano. Peguei um dos panfletos que tinha recebido após o concurso: curso Major Romão. Entrei em contato. Na época custava R$100, acho que equivaleria hoje a uns R$ 400. Estava então formalizado o plano: minha mãe daria a loja falida com seu estoque para meu padrasto, que eu considerava meu pai e ,em troca, pagaria meu curso e  moraria com ele. Uma amiga tinha convidado minha mãe para cozinhar em um restaurante em Porto Seguro e assim ela seguiu viagem.

 Iniciado 99, passei a estudar no curso do Major Romão. Segunda a sexta, das 19 às 22:30. Tive que correr atrás do tempo perdido no ensino público e me alfabetizar de verdade em apenas um ano. Me lembro dos amigos dizendo que eu tinha sumido. Mas... o fato é que meu pai era enrolado (me perdôe, pai, por dizer isso após você ter falecido mas, esteja onde estiver, você sabe que é verdade...rs). Devia Deus e o mundo e, como já tinha acontecido em outras situações, pagou somente o primeiro mês de curso.

 No terceiro mês eu estava constrangido com a situação da inadimplência e fui conversar com o Major Romão. Falei que conhecia meu pai, sabia que ele ia enrolar e não ia pagar. E pela primeira vez eu conheci o primeiro teorema da conspiração do Universo: "Quando vc Quer e não tem condições, alguém, geralmente alguém não muito próximo, vai te ajudar". Até hoje me emociono quando lembro o que ele disse, com o jeito militar sério dele: "Renzo, assista às aulas, não saia do curso. Depois a gente dá um jeito nisso". O Romão era um cara de muito caráter e honestidade. Tinha o sonho de construir um curso na baixada santista e passar a mulecada nos colégios militares. "Sorte" a minha. Depois de minha mãe, acho que ele é a pessoa com a qual eu tenho umas das maiores dívidas de gratidão da minha vida. Aliás, pensando bem, tem tanta gente que me estendeu a mão nessa caminhada que não dá nem pra dizer quem foi mais importante.

 Para resumir essa primeira parte da história, eu passei no concurso do Colégio Naval em 1999. Acertei 17 das 20 questões da temida prova de matemática, me classificando em 54º lugar em meio a 15 mil candidatos. Lá percebi que não era o gênio que o ensino público santista me fazia pensar que era e passei um período muito feliz da minha vida, fazendo grandes amigos e estudando. Para não deixar totalmente o sonho futebolístico de lado, fui titular durante os 3 anos da equipe do Colégio Naval. Fiz um golaço na prorrogação por morte súbita contra o Colégio Militar do Rio de Janeiro em 2000, de trivela, de fora da área, no ângulo. Fui campeão da NAE, competição de ensino médio entre as 3 forças militares em 2001 =D

 Pela primeira vez na vida "Quis" com "Q" maiúsculo e o universo conspirou em meu favor.

 Essa história é grande e esse post já está imenso. Então aguardem os próximos capítulos...


sábado, 14 de janeiro de 2012

Apresentação sobre Google App Engine

 Olá Pessoal,

 Mais uma vez começo um post dizendo que há muito tempo não posto...rs. O trabalho está bem corrido com o novo site www.picpro.com.br, o filho mais novo do www.revelacaovirtual.com.br.

 Mas como esse blog é de tecnologia, gostaria apenas de deixar uma apresentação de slides como dica: Apresentação Google App Engine.

 Esse foram os slides que utilizei em palestra realizada na Unifesp. Sempre coloco apenas tópicos em meus slides, que detalho oralmente durante a apresentação, seguindo as boas dicas do Guy Kawasaki do livro A Arte do Começo. Contudo, para quem se interessa pelo assunto cloud do Google, os pontos abordados podem ser um bom ponto de partida.

 Feliz Ano Novo atrasado a todos,
 Renzo Nuccitelli

sábado, 19 de novembro de 2011

Decorators em Python: o que a Annotation gostaria de ser quando crescer

 Olá Pessoal,

 Devido à correria, faz muito tempo que não atualizo o blog. Atualmente tenho aprendido bastante sobre a linguagem Python e tenho gostado muito.

 Durante o desenvolvimento do Revelação Virtual,  desenvolvi um framework para facilitar a minha vida na infra do Google App Engine. Logo no início, comecei a pensar como seria um bom modelo de segurança. Já tive contato com Spring Security em minha época de Javeiro.

 Contudo, buscava uma solução sucinta, sem depender de frameworks e suas documentações. Por  não ter  paciência de ler, fico muito ansioso por ver as coisas funcionar. Se houver mais que uma página de documentação para ler antes de ver a um exemplo concreto funcionando, fico frustrado. Justo nessa época um amigo me falou sobre os decorators de Python (não confundir com o padrão Decorator, veja esse artigo sobre o assunto).

Programação Funcional


 Para utilizar os decorators, você precisa conhecer um conceito simples de programação funcional: função é uma variável. Para quem conhece o conceito, isso pode parecer simples, mas para quem não está acostumado, como era meu caso quando só conhecia Java, função ser uma variável pode soar bem estranho.

 Para clarificar:

def funcao(arg):
  print "Sou uma funcao e meu argumento eh: %s"%arg
 
variavel=funcao

variavel("argumento")

print type(variavel)

Na primeira linha é criada uma função em Python. Contudo, o que realmente acontece é a criação de um Objeto do tipo função cujo identificador é "funcao". Tanto isso é verdade que após a implementação do corpo, o objeto função é é atribuído à "variavel".

 Depois dessa atribuição, a função é executada através da referência "variavel". Para finalizar, o programa imprime o tipo de "variavel": function. Esse é apenas um exemplo simples, mas suficiente, para entender as próximas explicações. Se quiser saber mais, leia a documentação do próprio Python.

Segurança


Depois de entender que função é variável, é possível expandir os horizontes e utilizar funções de uma nova maneira. Com esse "novo" conceito, agora você pode passar funções como argumento e retornar funções como resultado de uma função. Suponha então que você queira executar uma função somente se for passado um valor positivo como argumento único, sem saber qual é essa funcao a princípio. O código poderia ser algo como:

def permitir_valor_positivo(regra_negocio):
  def f(valor):
    if valor>0:
      return regra_negocio(valor)
    return "Somente valor positivo permitido"
  f.__name__=regra_negocio.__name__
  return f


Vamos entender o código:
  1. É criada uma função permitir_valor_positivo que ira receber uma outra como argumento
  2. É criada uma função f que executa a função regra_de_negocio, passada como argumento, somente se o valor passado para f como argumento for positivo. Caso contrário, imprime uma mensagem de erro.
  3. O nome da função é alterado de "f" para o nome da função "regra_de_negocio"
  4. f é retornada como resultado  de permitir_valor_positivo

 Construida nossa funcao , podemos agora apenas ter a preocupação de escrever a "regra de negócio", e depois aplicar a "segurança":


def deposito(valor):
  return "Deposito no valor de: %s"%valor
 
deposito=permitir_valor_positivo(deposito)

print deposito(1)
print deposito(0)


 Nossa regra de negócio é realizar um depósito em conta. Depois de implementado o negócio, podemos fazer sua segurança utilizando nossa função permitir_valor_positivo. Depois de aplicada a segurança, tentamos fazer depósitos com valores 1 e 0 recebendo como resposta, respectivamente, "Deposito no valor de: 1" e "Somente valor positivo permitido".

Decorator


Depois de entendido o conceito acima, poderia-se utilizar a programação funcional para fazer nosso lógica de segurança em pseudo-código:

seguranca(negócio):
     se (cumpre requisitos de segurança):
            execute negocio
     se não:
            Exiba mensagem de erro

Com a função de segurança escrita, bastaria utilizar o esquema da seção anterior para "segurar" os métodos de negócio. Contudo, o Python apresenta uma açúcar sintático bem interessante chamado Decorator. Talvez inspirado pela notação de Annotation em de Java, podemos substituir as linhas abaixo:


def deposito(valor):
  return "Deposito no valor de: %s"%valor

deposito=permitir_valor_positivo(deposito)


por apenas:


@permitir_valor_positivo
def deposito(valor):
  return "Deposito no valor de: %s"%valor


Dessa maneira, o código fica menor e muito mais elegante atingindo alguns objetivos que busco em frameworks:

  1. Documentação curta e simples (esse blog apenas)
  2. Sem necessidade de configuração, apenas conhecimento da própria linguagem
  3. Lógica de Segurança separada da Lógica de Negócio
  4. Granular ao nível de função


Conclusões


Para fazer algo análogo em Java, seria necessário criar uma Annotation personalizada, configurar algum tipo de processamento (como o Spring no Bean Processor) e aplicar a API de Reflection. Como trabalhei justamente com Annotation e Reflection no projeto de meu TCC (JColtrane) sei que esse processo seria muito mais trabalhoso e bem menos elegante que a solução Python, além de obrigar o usuário a ter mais uma dependência em seu projeto. Como já ouvi inúmeras vezes: "para quem só conhece martelo, tudo é prego" ;)

 Se você gostou do exemplo e quer saber mais sobre Python, confira o  curso Python Pro.

 Abs e até o próximo post,
 Renzo Nuccitelli

PS:Gostaria de explicar o título do post. Não gostos de flames, cada um tem o direito de preferir trabalhar com a linguagem que quiser. Contudo, um ponto positivo do flame é gerar discussão e consequente tráfego no blog ;)

sexta-feira, 4 de março de 2011

Upload e Download de dados no Google App Engine - GAE

Olá para todos,

 Dando continuidade aos meus estudos de Python (Webapp-CE), visando um melhor uso do GAE, estudei uma funcionalidade muito bacana nessa semana: o Bulk Loader, que pelo tradutor do Google significa Carregador de Alto Volume.

 Ele serve para fazer upload de dados para o Banco de Dados (BD) no GAE e para fazer download de dados do mesmo. Então algumas tarefas interessantes podem ser feitas com ele:

  •  Backup de dados
  • Carregamento de cargas estáticas no servidor
  • Update de dados no servidor
  • Migrar dados de uma app para outra
Os dados podem ser baixados e carregados em dois formatos básicas: CSV e XML.

 Depois dessa introdução vou mostrar um exemplo na prática.

 Digamos que queremos fazer uma aplicação estados brasileiros. Vamos aos passos:

 1) Criar o modelo para a entidade de Estado (State) :


class State(db.Model):
    name = db.StringProperty(required = True)
    acronym = db.StringProperty(required = True)
    country = db.ReferenceProperty(reference_class = Country, required = True)


2) Configurar o arquvo bulkloader.yaml:

Esse arquivo configura as maneira como será feito o upload/dowload. Na documentação existe uma maneira de criar o formato básico do arquivo, mas já que vc está lendo esse post, pode copiar daqui mesmo = ). A parte inicial do arquivo contém os imports necessários para as transferências. Na documentação é ensinado como organizar imports de módulos de terceiros, caso vc deseja fazer algo mais rebuscado. Mas na maioria dos casos, o início não será alterado.

 Observe a parte final do arquivo, a partir do item "-transformers". Nessa seção que a configuração dos dados referentes ao State é feita. Primeiramente se indica o tipo do dado (kind=State). Em seguida, é configurado o tipo de arquivo (connector=csv). Portanto escolhi o formato de valores separados por vírgula, mas poderia ser XML, bastando colocar o valor simplexml.

 Depois são configuradas as propriedades do modelo. No caso, configurei 3 propriedades: a chave (key), o nome (name) e a referência para um país (country). Cada propriedade possui algumas opções de configurações.

 O item property contém o nome da propriedade em seu modelo.

 O item external_name indica o nome da propriedade no CSV. Esses nomes constarão como cabeçalhos na primeira linha do CSV

 O item external_transform indica uma transformaçao que deve ser feita no dado quando for feito o download. No caso, utilizei apenas o transform.key_id_or_name_as_string que transforma a chave (key) do modelo em String.

 O item internal_transform indica uma transformação que deve ser feita no dado quando for feito o upload. No exemplo, utilizei apenas o transform.create_foreign_key('Country',True) que serve para que seja criada uma referência para o tipo País (Country) e que se use o valor número para a chave (parâmetro com valor True.


python_preamble:
- import: base64
- import: re
- import: google.appengine.ext.bulkload.transform
- import: google.appengine.ext.bulkload.bulkloader_wizard
- import: google.appengine.ext.db
- import: google.appengine.api.datastore
- import: google.appengine.api.users

transformers:
- kind: State
  connector: csv
  connector_options:
    # TODO: Add connector options here--these are specific to each connector.
  property_map:
    - property: __key__
      external_name: key
      export_transform: transform.key_id_or_name_as_string
   
    - property: name
      external_name: name
     
    - property: country
      external_name: country
      export_transform: transform.key_id_or_name_as_string
      import_transform: transform.create_foreign_key('Country',True)



3) Montando dados a serem carregados:

 Para nosso exemplo, digamos que vc já tenha salvado o País Brasil em seu BD no GAE e que ele possua um id=1. Então construi um CSV (state.csv) com alguns estados brasileiros:


country,name
1,Acre
1,Piauí
1,Santa Catarina


4) Carregando os dados:

 Importante: o Big Table, BD do GAE, não possui esquema. Por essa razão, ele só conhece o "esquema" de seus modelos após vc ter salvado ao menos um item nele. Portanto, antes de carregar dados, certifique-se de salvar um dado do tipo desejado antes de tentar fazer o upload de dados.

Acresente em seu app.yaml a seguinte configuração:


builtins:
- remote_api: on

 Faça o deploy da app. Feito isso, execute o comando, onde "sua-app": é o id da sua aplicação:

appcfg.py upload_data --config_file=bulkloader.yaml --filename=state.csv --kind=State --url=http://sua-app.appspot.com/_ah/remote_api

Vc verá mensagens dos dados sendo carregados. Após o termino do carregamento, entre no console de administração de sua app para conferir os novos dados em sua aplicação.

5) Dowload dos dados:

 Experiemente salvar novos estados em sua aplicação repetindo os passos anteriores. Depois disso, vamos fazer o dowload de todos esses dados. Execute o comando:


appcfg.py dowload_data --config_file=bulkloader.yaml --filename=state_dump.csv --kind=State --url=http://sua-app.appspot.com/_ah/remote_api

 Esse comando irá baixar seus dados para o arquivo state_dump.csv. No meu caso, eu salvei todos os estados brasileiros em minha app, e o conteúdo baixado foi:

country,name,key
1,Acre,1001
1,Piauí,1002
1,Santa Catarina,1003
1,Alagoas,2001
1,Bahia,2002
1,Amapá,3001
1,Ceará,3002
1,Maranhão,3003
1,Rio de Janeiro,3004
1,São Paulo,3005
1,Amazonas,4001
1,Espírito Santo,4002
1,Rio Grande do Norte,4003
1,Sergipe,4004
1,Distrito Federal,5001
1,Paraíba,5002
1,Pernambuco,5003
1,Roraima,5004
1,Goiás,6001
1,Minas Gerais,6002
1,Rondônia,6003
1,Mato Grosso,7001
1,Rio Grande do Sul,7002
1,Tocantins,7003
1,Mato Grosso do Sul,8001
1,Pará,8002
1,Paraná,8003


Dessa maneira, espero ter conseguido exemplificar como fazer transferências de dados de seu computador para o GAE e vice-versa. Para conferir a documentação completa da funcionalidade, confira na Documentação.

 Deixe um comentário ou crítica se achou esse post util.

 Abs
 Renzo Nuccitelli

quinta-feira, 24 de fevereiro de 2011

Desrespeito do Ponto Frio com o consumidor

 Apesar de o blog ser voltado para a área de tecnologia, empreendedorismo também é uma característica marcante. Para que um negócio de certo, respeito ao consumidor/cliente é fundamental.

 Então darei um contra exemplo, citando o mau atendimento do Ponto Frio:

Infelizmente cai na besteira de efetuar uma compra no Ponto Frio e só depois vi esse site: http://www.guiadosac.com.br/guia-do-sac/ponto-frio/base_view#1298558355

 Irei ao Procon para fazer valer meus direitos, mas segue a história.

Atendimento online realizado no Ponto Frio em 24/02/2011 às 11:25

Atendente Ponto Frio: Olá Renzo ! Bem-vindo ao atendimento online Pontofrio. Em que posso ajudar?

Renzo: Estou ligando no telefone do SAC de vcs, e apesar de estarmos no horário de atendimento, ninguém atende
Renzo: Esse atendimento possui protocolo?

Atendente Ponto Frio: Somente se for consultado algum pedido.

Renzo: Entendi
Renzo: Bom
Renzo: Antes de ontem compareci na loja do Ponto Frio no Shopping Center Vale, de São José dos Campos/SP
Renzo: e efetuei a compra de uma geladeira no valor de R$ 2.000,00
Renzo: alias, R$ 2.700,00
Renzo: mandei buscar a geladeira ontem. A mesma se encontrava totalmente embalada. Ao abrir a embalagem, justamente por baixo do isopor, ela se encontrava danificada, com um aranhão profundo

Atendente Ponto Frio: Sim .

Renzo: Compareci a loja ontem mesmo, dado o prazo de 72 horas para efetuar a troca do produto, mas o gerente se recusou a fazer a troca

Atendente Ponto Frio: Sim porque se trata de uma avaria e a empresa não efetua a troca de produtos avariados.

Renzo: então estou entrando em contato com o SAC, para pedir uma solução. Caso não haja, vou procurar meus direitos junto ao Procon e Tribunal de Pequenas causas, além da propaganda ruim que farei da loja nos meios de imprensa e internet

Atendente Ponto Frio: Só trocamos por defeito técnico.

Renzo: Então a empresa vende produtos avariados e não efetua troca?

Atendente Ponto Frio: O produto e para ser verificado no ato da entrega.

Renzo:
Isso não foi avisado, além dela ter vindo embalada
Renzo: Engraçado que em qualquer outra loja, eles realizam a troca, principalmente se mandaram a peça avariada.

Atendente Ponto Frio: E na nota fiscal consta termo de conformidade informando que o produto foi entregue em perfeito estado.

Renzo: pois é, o gerente não entregou a nota do produto

Atendente Ponto Frio: Se for assinado não temos mais como troca.

Renzo: e se recusou a entregar a mesma depois que compareci a loja
Renzo: esta bem, poderia me fornecer um protocolo de atendimento, de forma que possa comparecer ao procon?
Renzo: Em minha nota fiscal consta um termo de vistoria, com um carimbo, com as opções sim e não

Atendente Ponto Frio: Só e gerado um protocolo se for aberto alguma reclamação mais como se trata de uma avaria não geramos reclamação.

Renzo: e o mesmo não está com nenhuma opção assinalada, e muito menos assinado
Renzo: mas eu estou reclamando de um produto que nem a vistoria foi assinada, quer dizer que nem um protocolo eu posso receber? Em qualquer empresa que ligo ao sac, a primeira coisa que me informam é o protocolo
Renzo: Se trata de uma avaria em cuja nota não consta a assinatura do produto ter sido vistoriado pelo cliente

Atendente Ponto Frio: .

Renzo: Existe uma Ouvidoria no Ponto Frio?

Atendente Ponto Frio: Sim mais só trata casos de imprensa.

Renzo: Poderia me passar o telefone?

Atendente Ponto Frio: A ouvidoria que efetua contato com o cliente mais e como eu informei antes eles só tratam casos de imprensa.

Renzo: Não existe um telefone para contato com o Cliente? Então vai ser a primeira empresa que vejo com esse procedimento, totalmente em desacordo com o Código do Consumidor. Não fornecem protocolo de atendimento no SAC e não possui telefone de contato com uma Ouvidoria. Desse jeito não vai ser difícil conseguir colocar isso na imprensa e eles entrarem em contato comigo

Atendente Ponto Frio: E como informado até após não trocamos por avaria se o cliente retira o produto da loja a responsabilidade passa a ser do
mesmo.

Renzo: Estou com a nota que consta o campo de vistoria do produto que não está assinado. Basicamente vc não tem protocolo para me dar desse atendimento, não tem o telefone da Ouvidoria para me informar e está dizendo que o problema é meu, correto?

Houve um erro de conexão.
Por favor, reconecte-se para efetuar um novo atendimento. 

 Enfim, fica a dica para evitaram entrar numa fria comprando no Ponto Frio.

quarta-feira, 2 de fevereiro de 2011

Webapp-CE: Mais um framework saindo do forno

 Bom dia!

 Estava meio sumido do Blog, mas a Nuccitec tem consumido praticamente todo meu tempo :).
 O fato é que agora estou me aprofundando para aprender Python, influenciado pelo Google App Engine(GAE), infra da qual gosto muito. E para aprender, nada melhor que logo fazer framework...rs.
 Quando você lê os primeiro passos no GAE voltado para o Python, acaba se decepcionando com o webapp, pequeno framework web que o Google fez. A necessidade de ficar mapeando URL´s para handlers é um saco. Inclusive na própria documentação se comenta pra usar outros frameworks.
 Conversando sobre isso com meu amigo Reginaldo, ele me deu a idéia de fazer um REST seguindo uma convenção para executar os handlers, eliminando a tarefa braçal, chata, e suscetível a erros de ficar mapeando URL´s para Handlers. Assim nasceu o Webapp-CE, ou Webapp Convetion Engine.
 A idéia básica da convenção é parecida com existente no VRaptor, framework Java para WEB, que também é brasileiro. Suponha que você tem um handler br.com.SeuHandler que possua o método executar. A convenção consiste em mapear automaticamente esse método para a URL /br/com/SeuHandler/executar. E o que vir depois desse padrão é passado como parâmetro para o método executar.
 O framework também faz o inverso, ou seja, você passa o método e ele te devolve a URL. Isso torna o processo de mapeamento automático e se você mudar o nome do Handler ou até mesmo movê-lo para outro diretório, a URL muda de forma automática.
 O legal de tudo isso foi ter feito o framework em duas madrugadas. Ele possui apenas dois scripts. Mas no fonte do projeto existem também os testes unitários.
 A experiência serviu para me indicar que efetivamente o Python te da uma liberdade imensa e é uma tremenda ferramenta. A introspecção dele é excelente, bem como a parte de testes unitários. Cada vez mais tenho menos saudades do Java...rs. Em breve devo lançar o curso Python Básico e Python para GAE na Nuccitec.

 Espero que curtam o projeto.
 Renzo Nuccitelli