Como foi meu ano com Python?

http://ark4n.deviantart.com/art/The-Womb-172943868
http://ark4n.deviantart.com/art/The-Womb-172943868

Juntei uma galera no Facebook e conhecidos para falarem qual foi o impacto e o aprendizado que tiveram esse ano de 2014 com Python. Vejamos:

Ericson Willians

Minha compreensão de Python definitivamente aumentou astronomicamente este ano (Ao menos, em comparação ao ano passado). Compreensões de Lista e Labda-Expressions, por exemplo, que antes não entravam em minha mente. Investi meu tempo com o Pygame, criei um primeiro snake game chamado PyclassicS com ele (Que postei aqui, por sinal), e depois decidi fazer a minha engine. Desenvolvi o Espace (Que postei aqui), e agora lancei uma versão 1.0 da engine junto com o meu jogo atual, Esnake. Continuarei estudando para entender melhor como o Python foi implementado, entender a biblioteca interna mais profundamente, me dedicar mais à Web (Tanto nos módulos da biblioteca interna como Frameworks externas, Django, Web2Py, e afins), e como integrar Python com outras linguagens (Usando Ctypes pra integrar com C e fazer hooks pro Haskell), usar Jython, etc etc etc. Há muito o que aprender.


Guilherme Kingma

Aprendi passando 90% da minha monografia de Java para Python, para facilitar a leitura e implementação de novos métodos.

Coincidentemente, pouco tempo depois, arrumei um estágio na área de automação residencial, usando Python, Linux e MySQL.

Nesse tempo, aprendi muito Python, usei conexão com MySQL e um monte de funções da biblioteca OS.

Não expandi muito, não sei nada de Django ou PyGame, mas sei bastante das boas regras de programação da linguagem. Pretendo aprender esses itens ano que vem.

No momento estou trabalhando em um projeto livre envolvendo Python, WhatsApp, Raspberry Pi e Crawlers (quem quiser contribuir será muito bem vindo).


Jotagê Sales

Esse ano eu aprendi muito de Python, onde a comunidade me ajudou demais e eu pude contribuir também. Devido a essa troca de ideias hoje me sinto seguro pra usar Python em qualquer projeto, me sinto seguro de enfrentar situações que antes eu temia.


Candido Bugarin

Descobri o Python esse ano por causa de um projeto no meu colégio e de verdade, Python mudou minha vida. Aprendi a criar bastante coisa no Python e toda a parte de processamento de dados para o site que eu criei é feita em Python. Agora estou investindo em outros projetos e continuo usando o Python.


Magnun Leno

Esse ano aprendi que dá pra montra um site estático de boa qualidade e com bom desempenho utilizando o Pelican (gerador de site estático escrito em Python), aprendi que mesmo projetos pequenos (Pelican) podem ser bem restritivos quanto a receber novas funcionalidades da comunidade, aprendi que por mais que digam que você precisa do WordPress pra criar um podcast, com Python e muita curiosidade você pode provar o contrário, aprendi que flask quebra um belo de um galho pra fazer integração entre sistemas e aprendi que mesmo uma pequena colaboração em um projeto grande (nesse caso o Web2py) pode ajudar muitas pessoas. Acho que foi só.


Renzo Nuccitelli

Nesse ano eu aprendi que dava para fazer a animação do Python Birds (https://www.youtube.com/watch?v=b899h0lNd7U) com TK. Não me aprofundei, mas fiquei surpreso com o poder da biblioteca. Mexi com Metaprogramação pesada para copiar a idéia do ModelForm do Django para o GAE (https://github.com/renzon/gaeforms).

Depois de ouvir tanto o pessoal perguntar como rodar Django no GAE, mudei todo o rumo do meu livro, reescrevendo os primeiros 8 capítulos (https://leanpub.com/appengine) e montei um framework full stack para o App Engine: Tekton (github.com/renzon/tekton). Agora estou lapidando melhor para chegar em um vesão 1.0 estável e estou tentando montar uma comunidade em torno dele e do App Engine. Para o próximo ano o plano é fazer isso, terminar o livro, traduzir pro inglês e documentar todos os pequenos projetos micro que juntei para fazer o Tekton full stack.

Também estudei bastante esse ano sobre o Data Model do Python, seus métodos mágicos e iteradores. Em particular, aprendi melhor como funcionam os generators e passei a utilizá-los no meu dia-a-dia. Enfim, meus dois centavos sem conferir o português


Marcos Castro de Souza

Esse ano aprendi bastante sobre Django e Bioinformática utilizando Python. Python realmente é uma linguagem fantástica e tem otimizado bastante o meu tempo principalmente na área de Bioinformática. Ah, e meu TCC foi feito utilizando Python como linguagem principal.


Daniel Bastos

Esse ano aprendi bastante de django, mostrei minha cara à comunidade, organizei primeiro evento só de python em Santa Maria/RS, dei minha primeira palestra (no total do ano foram 3) e tive minha primeira experiência com home-office


Humberto Rocha

Neste ano o Python me trouxe muito crescimento, me tornei membro da Associação, passei a realizar dojos na faculdade com mais frequência, apresentei o meu TCC em Autenticação com QRCode com ajuda do Django.

Fui para a Python Brasil onde pude conhecer pessoas fantásticas da comunidade além de fazer contato com pessoas da minha cidade (Brasília) que não conhecia e estavam lá também.
Também na Python Brasil tive a oportunidade de conhecer o projeto Pingo do Luciano Ramalho e contribuir participando de um sprint pela primeira vez.

Agora, de volta a Brasília estou com meus amigos agitando a comunidade da região e, para finalizar, comecei a contribuir para a versão Python do framework de desenvolvimento de games cocos2d.


Adriano Praia & Vinícius Oliveia

Nesse ano conheci a linguagem Python através de um amigo Vinícius Oliveira, e comecei a procurar sobre a mesma, isso há uns 7 meses atrás e de lá pra cá fiz de Python um hobby e me apaixonei verdadeiramente por essa linguagem, além do mais neste decorrer tive oportunidade de levar a outros amigos uma mini palestra sobre e “evangelizei” na faculdade onde despertou interesse de diversos colegas sobre a linguagem, agora estou na caminhada de Django e do momento que conheci e me apaixonei por Python, criou um loop infinito entre nós e prendendo no decorrer sempre estudar Python e afins.


Marcel Caraciolo

Pude usar python em várias outras áreas que eu não conhecia, como bioinformática. Hoje tenho conseguido automatizar nossos sistemas do laboratório com muitos scripts, sistemas web e hooks com Python. é um canivete suíço!


Fernando Masanori

Python me ensinou que é possível dar 40 palestras e minicursos num só ano e que tem uns malucos que fazem muito mais que isso pelo mundo. Haha.

Brinks, achei massa que no RuPy Natal um terço dos participantes era mulher, primeira vez que isso ocorre num evento para desenvolvedores, no Brasil.


Raphael Passini

Python me ensinou que a comunidade é uma força motriz impressionante para atualização profissional, networking e principalmente uma fonte de novas amizades.

Tive a oportunidade de organizar alguns encontros aqui em MG e participar de tantos outros, inclusive a Python Brasil que foi de longe a melhor experiência desse ano e aguardo ansiosamente a #pythonbrasil11

Enfim, fico muito feliz de estar envolvido com Python e principalmente com essa comunidade de pessoas tão legais!


Rafael Francischini

Esse ano Python me ajudou a criar o meu maior projeto pessoal, Pompem.

Pompem é um buscador de exploits, que se tornou mundialmente conhecido e esta presente em algumas distribuições Linux voltadas para pentest.

Basta digitar Pompem exploit no google que você encontra inúmeros resultados.

Acredito que por ser desenvolvida em Python, Pompem foi muito bem aceito por profissionais de segurança por causa da simplicidade de entender o seu código fonte.

Outra realização profissional que obtive esse ano com Python, foi integrar todo sistema desenvolvido em COBOL da empresa onde trabalho, em um único banco de dados utilizando Python/ODBC e também automatizar rotinas como envio de emails,relatório e etc.

Enfim, Python tornou meu ano muito melhor. Haha


Danilo Bellini

Há zilhões de coisas que podem ser ditas…o que está mais difícil é identificar o que tem a ver com o ano de 2014.

Neste ano eu comecei a mexer com a C API do CPython…agora posso dizer que sei misturar Python com C e com Assembly. Isso permitiu eu ter uma ideia melhor de como é o desempenho do Python para diversas tarefas e da importância de módulos externos. Em particular, fiz um plugin LV2 (áudio) em C que internamente usa a AudioLazy para processar o áudio.

Precisei fazer uma coisa simplérrima em C, e que tinha de ser em C por ser uma parte de um benchmark…acho que essa vale citar, era simplesmente abrir um arquivo e rodar um código para cada linha em algo com o comportamento similar a:

with open("inputs.txt") as f:
... for line in f.readlines():
... ... perform_something(*map(float, line.split()))

Isso sem contar a verificação mais apropriada (com stat) se o arquivo existe (algo que o Python já tem pronto, além de ser multiplataforma). Foi até legal descobrir como fazer isso em C, com um número variável de parâmetros por linha do “inputs.txt” separados por espaços sem o tamanho dado a priori, mas acho que não é preciso dizer que o equivalente a essas 3 linhas de código em Python ficou gigantesco em C. O mais relevante é dizer que, quando posso fazer o código em Python ao invés de outra linguagem, eu economizo muito tempo de vida.

Acho que o vídeo do Kenneth Reitz falando para que os programadores “antigos” utilizassem o Python 3 e os “novos” utilizassem o 2 seja uma coisa a se destacar: as pessoas precisam usar tanto do Python 2 como do Python 3, para somente depois opinar. Reconheço em ambos qualidades e defeitos, alguns técnicos/objetivos (e.g. desempenho, recursos disponíveis em um e ausentes no outro) outros nem tanto (e.g. dificuldade para fazer um código único compatível com ambos), mas na existência de flames envolvendo quem de fato utiliza a linguagem (em que até o Armin Ronacher chegou a ser alvo), seja por questões técnicas como de opinião pessoal, não tenho esperanças de que os defeitos desapareçam no curto prazo. E o resultado que vejo é gente migrando para outras linguagens, como Go e Julia (aliás, eu mesmo já fui explicitamente “convidado” a fazer isso mais de uma vez…). Vejo pelo repositório dream-python que muita gente também sonha com um mundo sem “guerras” entre Python 2 e 3 (acho que esse é o item que mais aparece por lá).

“There should be one– and preferably only one –obvious way to do it.” -> Em muitos casos, isto é uma mentira, todos sabemos, e o próprio K. Reitz já foi bastante explícito nisso no “Python for humans”. Mas o que eu queria dizer é que a interpretação apressada dessa parte do PEP20 traz consigo um perigo gigantesco. A sentença fala sobre buscar as maneiras óbvias, o que indica uma ênfase na API. Não se trata de uma desculpa para impor unicidade, e nem para um “jamais usarás o pattern façade”. Há casos (que, por questões éticas, não citarei) nos quais pude observar uma forte insistência no “only one” esquecendo do “obvious”, do “preferably” e das pessoas envolvidas. Seja como for, IMHO, o PEP20 precisa ser interpretado mais poeticamente do que literalmente. Pessoas diferentes têm vontades/ambições/interesses/conhecimentos diferentes, é importante sermos tolerantes às divergências de opinião, aos erros, etc., nem tudo é código.

Python deixou de ser a única linguagem ensinada na Poli-USP em MAC2166 (Introdução à computação para a engenharia), disciplina do primeiro semestre do curso. Agora os dois primeiros 2/3 do semestre são dados em Python, e o último em C. Ainda existe a barreira dos cursos tradicionais que querem ensinar “programação imperativa/estruturada” de maneira minimalista, i.e., sem usar recursos disponíveis na linguagem. Eu não sei bem o que dizer para convencê-los do contrário, aparentemente o significado que dou para “programar” está mais ligado à automação e ao design da interface (ABI/API/GUI/WebUI/…) a partir de recursos disponíveis, o que é bastante diferente da ênfase em “repetir mecanizadamente pequenos comandos” dada pelo curso. Pior que isso são os falsos testemunhos de certos professores do IME-USP que ministram a citada disciplina, criando imagens negativas da linguagem aos alunos (sei disso pelo fato de eu ter mentorado alunos pela IEEE neste ano). Este parágrafo é mais um relato, não sei ao certo como isso pode ser melhorado.

Ah, claro, conheci Salvador (BA), Lavras (MG), Recife (PE), Porto de Galinhas (PE) e Praia dos Carneiros (PE) neste ano graças ao Python!

Neste ano eu implementei várias coisas na AudioLazy como o modelo ISO/FDIS 226:2003, provas dos equacionamentos usando o Sympy, leitura de arquivos .wav, etc.. Acho que das novidades vale destacar a STFT (Short Time Fourier Transform) agora implementada na AudioLazy de maneira completamente personalizável. Esse é um processo com 9 etapas, até meio chato de descrever (divisão em blocos, janelamento da DFT/FFT, zero-phasing, DFT, função específica de processamento, inversa da DFT, zero-phasing, janelamento de overlap-add, overlap-add). Isso significa que dá para implementar facilmente algoritmos baseados no domínio da frequência. Agora a função de robotização de voz é uma simples linha stft(abs, size=1024, hop=441), embora eu normalmente mostre com outros parâmetros e.g. wnd=window.hann (para fazer a FFT com a janela de Hann), ola_wnd=window.hann (para fazer o Overlap-Add com a janela de Hann) e before=None (mera otimização para chamar uma função a menos, já que a função “abs” remove a “fase” do bloco e o before era apenas uma correção de fase). Isso significa que agora a AudioLazy está mais íntima com o Numpy (dado que é o Numpy que tem a FFT usada pela AudioLazy). Uma pena o Numpy ainda estar incompleto no PyPy…

Neste ano, em fevereiro, nasceu o projeto Pingo, projeto de API unificada para “plaquinhas” com pinos de I/O utilizáveis (Raspberry Pi, Intel Galileo, Arduino controlado via Firmata, etc.)!


Gabriel Almir

Aprendi de como a comunidade é ainda mais incrível a cada ano, nunca pensei em desenvolvimento web full-stack com uma curva de aprendizado como a do Web2Py, nunca pensei ao menos que algum dia encontra-se algo tão bacana de manipular, mesmo que com coisas simples, como o AudioLazy.
Difícil lembrar tudo que aprendi, mas principalmente para mim, que sou extremamente esquecido, é que python não me deixa esquecer de minhas ideias antes de realmente fazer algo legal.


Carlos Glória

O Reconhecimento é uma grande virtude!

A importância do feedback, a todos que se prestam a ensinar, e principalmente aqueles que ensinam voluntariamente com o simples intuito de ajudar penso ser fundamental pra renovação de energias e incentivo desses grandes mestres, muitas vezes anônimos.

Eu confesso ser um burro ignorante a procura de conhecimento e desenvolvimento, detesto jogar minhas horas vagas em coisas banais.

Após minha aposentadoria me deparei com muitos desses “mestres anônimos”, perdidos em algum canto da internet da vida.

Muitos se prontificaram a me ajudar no meu desenvolvimento, mas depararam com um desafio imensurável, “arrancar um cérebro automatizado pelos anos de trabalho automatizado, de sua inércia, trabalho árduo para qualquer mestre.

Mas…Tem aqueles que não se entregam e nem abandonam seu mau aluno e fazem de tudo pra inseri-los no entendimento.

Graças a Deus encontrei um amigo assim, muitas vezes, eu atormentava tanto que sentia que ele fingia algum problema pra descansar um pouco de mim, mas graças a Deus também no outro dia lá estava ele pronto pra enfrentar minha burrices…Haha

E foi, comecei querendo aprender Linux, muito bem, ele se declarou um Slackware user’s e me adiantou se você quer aprender Linux, pra conhecer Linux tem que usar um Linux puro…Nó…nem imaginava onde eu estava me metendo…Mas ele não desistiu de mim não, começou sua jornada em meu socorro, partimos pra instalação e foram várias… Instalava-mos eu ia usá-lo e corrompia muitas vezes sem condições de recuperação, os problemas foram muitos…. Haha.

Mas eu tinha grande sorte de ter um grande mestre, instalamos ferramentas de controle remoto que muito nos favoreceram e facilitaram meu aprendizado, e toda folga que meu mestre tinha lá estava ele.

Um belo dia começou a se afastar e a cada dia ficar mais distante, logo pensei comigo, também quem pode arrastar um burro empacado que nem eu? Mas eu estava redondamente enganado, depois por dedução entendi que meu amigo-mestre esta observando meu desenvolvimento e pra minha sorte me acompanhando à distancia, pois todas a vezes que eu postava uma dúvida por menor que ela seja em meu face lá estava um post de meu amigo-mestre em meu auxílio.

Mas sou um apaixonado por tecnologia, e fui fuçando e procurando até chegar em Python, por diversas fontes e com excelentes professores que dispõem seus conhecimentos na net…Que também já agradeci e dia um feedback a cada um deles postando em seus sites sua importância no meu desenvolvimento.

Voltemos ao meu amigo-mestre… Num desses encontros pelo face conversamos sobre python, e ele me falou, nada não tenho paciência pra aprender isso não, tudo bem mas eu sonhava em ter meu amigo estudando junto comigo e quiça um dia resolvendo alguns exercícios do curso juntos.

Hahaha…Ele se inscreveu no Curso do Python para Zumbis do professor Fernando Masanori , curso que eu jaá vinha acompanhando há mais de seis meses, ele terminou em bem pouco tempo…

E não ficou por ai foi adiante até que um dia depois de nós dois meio que afastados ele estudando de ĺá e eu de cá, nos falamos e eu procurei incentiva-lo a virar programador…–Ha não gosto de cabresto não quero partir pra um negocio próprio, falei pois é com sua habilidade de aprender torne-se um programmer freela…

Talvez eu tenha falado a palavra mágica…O maluco fez seu primeiro protótipo bem simplesinho, mas funcionou e cumpriu seu objetivo com seu cliente…Nesse caso um amigo que tinha uma máquina que precisa calcular o custo dos minutos de sua maquina automatia…

Depois um produto pra uma pequena comerciante, local de controle de estoque, fluxo de caixa, cadastro de clientes já melhor elaborado com banco de dados…

Eu não consegui acompanhá-lo e acabei me estressando pela falta de capacidade, mas reconhecidamente meu amigo-mestre bem que merece esse sucesso todo… só consegui colaborar na parte gráfica com melhoria na apresentação do layout…

Decepcionado me distanciei…E sempre ele me perguntava e ai como vai o python…. E eu la capengando no meu aprendizado, então ele me falou, você já fez o curso já refez e fez de novo e envolva num projeto que só assim você vai aprender.

Veja isso, me mandou o programinha que começamos juntos, meu queixo caiu…me vi pasmo sem acreditar na maravilha que meu amigo tinha criado por ser seu primeiro programa…

Hahaha, resolvi tirar meu cabeção de avestruz do buraco de novo e ir à luta…Fui pra rua com seu programa instalado em meu laptop e de porta em porta estou oferencendo aos pequenos comerciantes locais, e estamos apresentando nossa proposta que esta sendo muito bem aceita e temos até pedidos de projetos em andamento…Que são 3 de 10 clientes visitados, achei uma porcentagem de aceitação de implementação de software muito boa, estou na rua desenvolvendo atividade de Merchandising e co-autor auxiliando no que posso meu amigo Volney Casas, que aqui aproveito pra agradecer-lhe pela sua bondade…e deseja-lhe muito sucesso…Isso é um feedback!


Diógenes Lima

Eu me chamo Diógenes, tenho 24 anos e estou entrando no último ano do curso de Farmácia-Bioquímica. Pelo idos de 2005 a 2009 tive certo interesse por aprender mais sobre computação e me tornei um entusiasta linux com o extinto Kurumin. Entretanto, desde que entrei na faculdade, não tive mais tempo ou disposição para me aventurar além do que era oferecido pelo windows e as facilidades de programas com interfaces gráficas.

Isso até recentemente, quando uma linha de pesquisa denominada “Bioinformática e Biologia de Sistemas” me despertou o interesse. Este campo de estudos consiste muito basicamente no tratamento de um volume gigantesco de conhecimento científico biológico gerado diariamente que se acumula em bancos de dados de acesso público.

A utilização de ferramentas de informática possibilita a formulação de hipóteses de difícil verificação com técnicas tradicionais reducionistas. Contatei um professor da área em minha faculdade para receber orientação, e ele, ao saber que eu não tinha conhecimento de programação, me passou alguns exercícios para aprender a lidar com listas.

Já tinha usado o Code Academy no começo do ano, mas acredito que possa ter faltado motivação para continuar a aprender. Hoje, com a perspectiva de entrar em uma área da ciência com importância crescente e que vem se tornando essencial, tenho a motivação de usar a programação para aumentar o meu conhecimento, e se possível, gerar mais conhecimento. Para fazer os exercícios assisti algumas aulas do curso “Python para zumbis” do Masanori, procurei os comandos que precisaria usar no codeacademy e principalmente pesquisei no google. A minha abordagem foi eficiente, e posso dizer, depois de quebrar a cabeça tentando lidar com os exercícios, que sabendo as palavras certas para colocar no buscador, e pensando um pouco, qualquer um consegue escrever programas simples.

Espero poder aprender o suficiente para escrever novamente aqui e contar qual o desfecho dessa minha empreita. Quem sabe daqui há algum tempo eu não escrevo algo mais completo para o blog?


Lindoln de Macêdo

Deixando o meu depoimento: no início do ano eu estudava Java (na realidade eu sabia programar em python, mas coisas simples como scripts para automatizar algumas coisas no computador, tive de aprender Java em apenas 3 meses para contribuir num projeto. comecei a cursar licenciatura em computação na UFRPE, antes de completar 1 mês de curso eu consegui uma bolsa de IC por causa do projeto em que era voluntário, mas o mais importante neste período foi conhecer o PUG-PE, fui me integrando com a comunidade e durante a python Brasil saí da bolsa de IC para me dedicar a pesquisa sobre o PSO (um algoritmo inteligente baseado no comportamento de bandos de pássaros) na área de IA, onde quando tenho de programar, programo em python .

A Python Brasil foi algo a ser destacado neste ano, apesar de ser recifense foi a 1ª vez que fui a Porto de Galinhas, conheci pessoalmente pessoas que só conhecia pela internet, conheci outros que tinha grande admiração pelos seus trabalhos com python e nem sonhava em conhece-los um dia, acho que nunca tinha participado de evento algum onde o sentimento geral que existia era praticamente de todos formarem uma grande família como ocorreu na Python Brasil, e o ano está acabando comigo já tendo um projeto de pesquisa bem definido, passando o natal lendo um monte de artigos e ajudando a coordenar a semana acadẽmica de computação da UFRPE, que certamente tera encontros de comunidades durante o evento pois não conheço nada mais motivador para aprender uma linguagem do que sua comunidade



Hoje, dia 23 de Dezembro, tentei buscar uma forma de sintetizar o que aprendi com Python. Não consegui. Foram tantas coisas, seja conhecer diversas pessoas, conhecer diversas outras comunidades, ir em diversos eventos.

Realmente acredito que só o que pelas pessoas falaram sintetiza de certa forma boa parte também do que passei.

Bom final de ano!

E não deixe de colocar nos comentários suas impressões sobre o que Python te impactou esse ano. É fundamental sua participação.

Anúncios

#6 Renzo Nuccitelli | Pythonistas que você devia conhecer

Hoje converso com o Renzo. A história curta que tenho de amizade com o Renzo é algo engraçado. O conheci sem querer no Intercon 2013 e trocamos umas ideias. Logo depois através de uns contatos em comum me encontro novamente em um e-mail com o Renzo para poder me ajudar a ir ao Rupy 2013.

E nesse meio tempo fomos nos encontrando em eventos, e há um bom tempo já queria que ele pudesse falar um pouco de sua experiência, como é a experiência com o Google App Engine sendo evangelista, dar aulas, e converter “Javeiros” em “Pythonistas”

Renzo, fale um pouco de você.

Escrever sobre si mesmo é difícil, mas vamos lá. Basicamente sai de Santos para estudar e por conta de condições financeiras adversas, tive que frequentar escolas que me pagassem para estudar. Nesse sentido, fica a dica para aqueles que se encontram nessa condição(http://blog.renzo.pro.br/2013/10/quando-voce-quer-o-universo-conspira-em.html). Sim, existem escolas de ensino médio e universidade que pagam para você estudar.

Nessa caminhada acabei passando no ITA e decidi que gostava de programar, escolhendo o curdo de Engenharia de Computação. Então desde de 2006 estou nesse mundo.

A caminhada sempre foi cheia de transformações. Ao me formar era militar e fui trabalhar na gestão do Sistema de Controle do Espaço Aéreo. Mas 6 meses depois resolvi sair dessa carreira estável, pois realmente eu queria desenvolver em vez de fazer apenas serviços burocráticos.

Meu TG foi um projeto de código aberto em Java (http://jcoltrane.sourceforge.net/) e depois que ganhei um prêmio internacional com ele, acabei me motivando a largar a Força Aérea Brasileiro (FAB).

Hoje minhas paixões são minha família, futebol e participar dos eventos de tecnologia que a comunidade organiza. Por falar nisso, nesse ano de 2014 acabamos, eu e a comunidade de Python da cidade onde moro, Trazendo a conferência Python Brasil para São José dos Campos – SP.

Adoro natureza e tranquilidade, mas sem abrir mão de confortos da cidade. Por isso vivo em uma cidade média, que concilia as duas coisas.

Vi que no começo você trabalhou com FLEX e Java. E em 2010 já usa ava o GAE(Google App Engine). Qual é a história por trás dessa transformação de Java para Python. E fale um pouco da experiência de dar um curso de Python para quem sabe Java no Python Pro.

Quando sai da FAB fui trabalhar em uma startup na área de saúde. Eu já sabia Java, o backend que usavam. O front era uma aplicação feita em Adober Air, a versão desktop do Flex. Apesar de a tecnologia estar em extinção, a linguagem ActionScrip possuia vários aspectos interessantes que não existiam no Java. Comecei a ficar curioso para conhecer outras linguagens de backend.

Então meu amigo Reginaldo, mais conhecido como o hacker do Facebook (http://g1.globo.com/sp/vale-do-paraiba-regiao/noticia/2014/01/sou-hacker-do-bem-diz-engenheiro-que-descobriu-falha-no-facebook.html) me indicou o livro Programming in Lua (Programando com Lua). Achei fantástica a linguagem.

Nesse meio tempo eu comecei a namorar com a Priscila, que hoje é minha noiva. Eu estava com vontade de fazer um projeto do início ao fim para aprender todo o processo de desenvolvimento. Decidi fazer um projeto de transmissão de fotos para o pai dela. Assim nascia o Revelação Virtual, precursor do Pic Pro.

Só que então passei um mês para entender todo as ferramentas utilizadas na empresa: Java, Tomcat, Maven, Nexus, Adobe Flex, Spring, entre outras. Foi então que no almoço meu guru Reginaldo me mostrou o App Engine em 5 minutos durante o almoço na empresa. Foi amor à primeira vista.

Ambiente simples, não precisa instalar um milhão de plugins, não preciso ser babá de servidor. Só codar e colocar na nuvem! Estava escolhido então a plataforma. Então o projeto evoluiu para o Pic Pro, que explico melhor na próxima pergunta.

Depois dessa experiência, e por ser apaixonado por dar aulas, acabei montando o site adm.python.pro.br, em parceria com o grande mestre Luciano Ramalho. Justamente pensamos no curso “Python para quem sabe Java” para aproveitar toda a experiência pela qual passei. É sempre gratificante ver os alunos dizendo “Mas o código é só isso? Isso é magia, não programação.”

Vejo que você tem um projeto, o Pic Pro, do que ele se trata?

Captura de tela de 2014-12-18 17:58:47

Eu comecei a usar Java no Google App Engine (GAE). Devido à natureza da plataforma, você acaba tendo o problema de “Cold Start”. Basicamente se chega em um ponto onde você tem que abrir mão de frameworks Java famosos em prol de performance. Mas aí programar virou um pesadelo.

Então pensei em fazer o back em Lua. Mas a linguagem não era suportada e eu teria que rodar na JVM. Na prática, isso me traria os mesmos problemas.

Então a escolha óbvia foi o Python outra linguagem que era suportada na época. De certa forma, lembra um pouco de Lua. De novo foi paixão a primeira vista. Só de comparar o ORM do GAE, que é análogo ao do Django, ao Hibernate do Java, já me fez enxergar potencial na linguagem.

Como o GAE permite ter diferentes versões do site rodando simultâneamente, inclusive com diferentes runtimes, decidi aprender Python rescrevendo a aplicação completamente. Entre devorar o livro “Dive into Python” e reescrever a aplicação, gastei uma semana. O código ficou 60% menor, mesmo com todo meu sotaque de javeiro.

Assim eu passei a utilizar a linguagem em meus projetos. O Pic Pro continua do ar até hoje, olha aí o jabá pro sogrão agora: www.digitaldovale.com.br. Já trafegou mais de 3 milhões de fotos nesse tempo.

E posso dizer que realmente a plataforma aguenta o tranco. Meu sogro e outro cliente fizeram promoções em site de compras coletivas, quando eram febre. Não tive trabalho algum, mesmo sendo newbie em Python e no GAE.

Definitivamente nunca teria conseguido desenvolver uma aplicação sozinho, sendo iniciante, que aguentasse todos os picos de tráfego.

Enfim, para finalizar, só queria dizer que não acho Java ruim. Continuo dando aulas com a linguagem. Contudo, Java e GAE simplesmente não combinam. Se você que usar Java, prefira usar uma stack padrão.

E de onde surgiu a ideia de criar vídeo aulas gratuitas de AngularJS e GAE?

Comecei a frequentar a comunidade e fui na PythonBrasil[8] no RJ. Percebi então que eu era nicho dentro de uma comunidade que é um nicho! Em termos de programação web, Django domina, seguido de longe por algumas outras opções, como Flask e Web2py. Só que quando comecei, o Django não rodava, e na minha opinião (http://blog.renzo.pro.br/2014/07/django-google-app-engine-e-tekton.html) ainda não roda, no App Engine.

Mas como muitas ideias dele foram utilizadas no GAE, passei a conversar com o pessoal, como o Nando e Cadu da ZNC, para fazer paralelos e também para não ficar sozinho. Até cheguei a brincar um pouco com Django. Mas sinceramente, ter que aprender Linux, NGINX e mais toda a stack para se fazer um deploy é uma barreira grande para mim. Fiquei muito “mal acostumado” a codar e colocar no ar, deixando essa parte para minha equipe de infra do Google ;).

Então peguei umas dicas com o mestre Masanori e decidi fazer os vídeos para eu ter com quem conversar nas conferências. Ter uma comunidade que trabalhe com a plataforma. Então tenho gravado os vídeos e tenho vários projetos de código aberto nesse sentido. Agora começo já a ver algumas pessoas se aventurando nesse mundo =D

Outra razão forte é que eu considero ter sido salvo pela educação e esse é único caminho para termos uma sociedade melhor. Então era o caminho óbvio a ser seguido retribuir a educação que consegui obter nas instituições do país.

Temos hoje uma startup em São José dos Campos, o Qmágico, no qual focam em criar plataformas de ensino e estudo para escolas e faculdades. E usam GAE, como foi essa aplicação?

Depois de cerca de um ano tocando uma escola de programação, decidi parar porque financeiramente estava não estava compensando.

Continuava codando no Pic Pro, mas queria codar em equipe. Eis então que o universo conspirou. Recebi um e-mail do Masanori falando do Feijão, um iteano que eu já conhecia, procurando devs. E justamente estava sendo utilizado Google App Engine. Realmente era um sinal.

Fui pra lá e acabei influenciando a troca do Java pelo Python. Depois também virei o Diretor de Tecnologia, e foi uma experiência espetacular.

Montamos uma equipe do zero. Chamei bons alunos, como o Denis Costa e Giovane Liberato, para trabalhar com gente. Conhecer e me envolver com todos foi fantástico. Nessa pegada acabamos desenvolvendo um processo de entrega contínua que eu sempre tinha sonhado. Inclusive eu e Denis falamos sobre a experiência em tutorial de 8 horas na PythonBrasil[9] em Brasília.

Como foi a experiência de documentar seu aprendizado em seu blog, e principalmente a sua história(Recomendo a todos). 

Cara, o Henrique Bastos recomenda sessões de terapia para todo mundo. Segui o conselho, mas preferi usar o blog.

Além disso, foi um experimento social. Eu via que pouca gente lia meus posts técnicos, nem os melhores amigos. Então passei a escrever coisas pessoais, até mudei o título para deixar isso claro.

O resultado foi engraçado. O primeiro que escrevi, que repito o link aqui por comodidade( http://blog.renzo.pro.br/2013/10/quando-voce-quer-o-universo-conspira-em.html), era para ser único. Mas teve gente que eu não conversava há 12 anos que leu e pediu para escrever mais. Chegou ao ponto de o Denis me dizer que os posts estavam sendo a novela das nove pro pessoal da Fatec, onde sou professor…rs.

Enfim, hoje em dia misturo posts técnicos com pessoais. São coisas que não sossego enquanto não saem da cabeça. O último (http://blog.renzo.pro.br/2014/10/qual-historia-voce-quer-contar-daqui-30-anos.html) foi justamente falando de como passei de militar a um apreciador do lifestyle business.

E pelo jeito esse é o caminho certo. Até você acabou lendo! Enfim, estou pensando em me aposentar de TI e aplicar para vaga de roteirista de novela 😉

Você já escreveu um livro sobre GAE, e atualmente dá aulas tanto para iniciantes com o Python Birds, Pyprático e App Engine. Como está sendo a vida de empreendedor.

Cara, nesse último 1,5 ano de lifestyle business eu estou no Nirvana. Estou feliz e tenho plena consciência disso. Todos esse projetos eram coisas que eu tinha vontade de fazer já há muito tempo. Mas com rotina diária de trabalho, eu dava sempre aquela desculpa “quando der tempo eu faço”.

Agora é diferente. Programei minha vida para ter tempo livre e poder tirar esses projetos da cabeça. Realmente está sendo um período fantástico. Aliás, já me pediram para escrever mais sobre isso.

Com certeza vou lançar mais coisas lá no blog para compartilhar com a galera.
Então desse ócio produtivo surgiu App Engine e Python (https://leanpub.com/appengine) e todo o conteúdo que tenho postado.

Acho que todos sabem como é ter tempo, quando tira férias. Mas poder ter tempo livro o ano inteiro, não tem preço 😉

Deixe suas considerações para a galera e seus contatos.

Bom, queria convidar a todos para a PythonBrasil[11] que será realizada em São José dos Campos. E convido a todos mesmo, programadores de outras linguagens e até não programadores. A tecnologia é só pretexto para uma galera sensacional se reunir e trocar ideias sobre os mais variados assuntos.

Sempre fui dono de meu destino e mudo sempre minha forma de pensar de acordo com minha visão de mundo. Essa comunidade fantástica me ajudou a catalisar esse processo. Deixe que ela faça isso por você também.

Ficam meus contatos para quem quiser trocar uma ideia:
GitHub: renzon
Twitter: @renzoprobr

#3 Aprenda Python | Blogs que me inspiram

rdAQ_hJ6

Vinicius Assef é um cara que admiro. Admiro porque uma das palestras que mudaram completamente minha visão sobre o mercado de trabalho foi a dele. E com o tempo percebi gradativamente que é realidade o que falou. E por mais que goste de Python, gosto mais ainda de ouvir histórias. E por isso que convido o Vinicius para falar um pouco da sua experiência e falar do seu blog, Aprenda Python, um dos blogs de Python mais acessados do Brasil.

 

Vinicius, fale um pouco de você e sua história.

É difícil falar da gente mesmo, né? Vou começar do princípio.

Comecei a programar em BASIC aos 13 anos, num CP-500. Na biblioteca da empresa que minha mãe trabalhava havia uma moça que nem era programadora, mas se dedicava a ensinar a quem quisesse aprender alguma coisa sobre BASIC. Foi aí que minha história começou. Vi que gostava daquilo e 2 anos depois eu comprei um PC-XT.

Naquela época era muito difícil conseguir computadores porque o Brasil vivia a reserva de mercado (anos 1980) e quase nada chegava aqui. Internet… bem, isso é coisa muito nova! O que funcionava mesmo era o Paraguai. hehehehe

Depois, aos 15 anos (quase com 16), já no final do segundo ano do segundo grau (atual ensino médio), comecei a estagiar e conheci os mainframes IBM. Com eles eu trabalhei cerca de 20 anos em Cobol,Natural, Adabas e JCL. Foi durante esse período que eu também conheci o mundo de desenvolvimento para Windows (Delphi e Visual FoxPro), Client/server (PowerBuilder e Sybase), um pouco de Unix e web (PHP, MySQL e Python).

Uma das coisas mais legais da sua palestra(link), é a transformação do mundo enterprise para o mundo open source. E tem lições fantásticas sobre qualidade de vida. Como foi essa trajetória?

Vou tentar resumir, mas foi (e ainda é) longa. Eu tive filhos muito cedo e por isso precisei trabalhar duro.

Depois de muitos anos, comecei a questionar várias coisas que eu via nos lugares onde trabalhei e desanimei com a minha profissão. A essa altura do campeonato eu tinha quase 20 anos de trabalho, já tinha morado em 3 capitais e trabalhado em algumas empresas multinacionais.

Eu já tinha sido empregado, terceirizado, quarteirizado, já tinha coordenado fábrica de software, feito outsourcing, migração de sistema, já tinha sido demitido e já tinha demitido gente. Passei, também, alguns anos em cargo de coordenação, fora do desenvolvimento. Mas sempre ligado à atividade de desenvolvimento.

Em 2007, nem lembro como, eu conheci a linguagem Python. Como eu estava num período de trabalho em São Paulo, fiquei sabendo de uma reunião onde seria organizado um grupo de usuários de Python. Tomei coragem e resolvi ir.

Ali eu conheci o Luciano Ramalho e conversamos bastante. Àquela altura eu achava simplesmente impossível conseguir pagar minhas contas com outra tecnologia que não fosse mainframe, mas saí desse encontro com uma sensação completamente diferente. Dentre várias coisas importantes, Luciano me disse: “Você não vai ver uma pessoa estudando Python só porque o professor mandou. Quem programa em Python já programa em outras linguagens e escolhe ficar com Python”. Outra frase dele que me fez pensar muito (mesmo!) na vida foi: “As tecnologias que uma empresa escolhe usar falam muito a respeito de como essa empresa funciona.”

Essas foram duas sacadas impactantes que me motivaram a dar uma guinada na vida. Nesse mesmo período eu estava conhecendo um pouco sobre Agile e ajudei na tradução voluntária do livro Scrum & XP direto das trincheiras que algumas pessoas da SEA Tecnologia estavam organizando.

Tudo isso era novo para mim e nos lugares onde eu trabalhava ninguém falava nisso; ninguém conhecia. Comecei a ver que havia uma rota alternativa profissional e resolvi investir nela.

Eu já participava ativamente da lista nacional de PHP, porém nunca havia ventilado a possibilidade de viver de open source. Quando conheci o manifesto ágil, Python e o Luciano Ramalho, as coisas fizeram mais sentido pra mim.

Daí, só em 2009 eu consegui realmente sobreviver com open source. Foram 2 anos para conseguir a primeira oportunidade. Inicialmente em Brasília, com Python. Foi quando eu fui trabalhar com a turma da SEA Tecnologia. Posso dizer sem a menor sombra de dúvida que ali eu senti na pele uma nova realidade. Eu estava em processo de mudança, perdido pessoalmente e profissionalmente e eles me ajudaram muito. Eu morava a 1300km da família e recebi apoio além da medida. Alexandre Gomes, Renato Willi e Bruno Pedroso são nomes que nunca vou esquecer. Eles me deram oportunidade e me mostraram um mundo completamente novo. A turma toda lá era muito legal, mas com esses 3 eu tive contato mais
estreito.

Depois disso, em Vitória, minha cidade natal, trabalhei um período com PHP. As coisas não andaram muito bem e tive que voltar a trabalhar com mainframe lá, em 2010. Foi, outra vez, um ano de muito sofrimento profissional trabalhando novamente em fábrica de software.

Em 2011 encontrei mais pessoas que ajudaram a pavimentar um pouco mais minha estrada e a quem também sou eternamente grato: a turma da Agência X4. Foi nessa época que vim trabalhar no Rio de Janeiro, novamente longe da família. Conheci o Vinny (meu xará), Carlinhos, Gustavo, Diego, Dani e Val. Uma turma bem diferente do que eu estava acostumado. Foi uma experiência incrível, muito enriquecedora.

Porque eu já mexi com muitas ferramentas de programação na vida e ele é muito produtivo. Simples assim. 😉

Essas experiências de 2007, 2009 e 2011 mudaram meu jeito de encarar a vida. Consegui trocar muita experiência com essas pessoas. Aprendi e continuo aprendendo bastante. Eu sempre fui um inconformado. Não sou tão idealista a ponto de achar que devamos fazer tudo por amor; acho que já passei dessa fase. Mas tenho a certeza que você deve se sentir feliz durante a caminhada. A vida te obriga a fazer coisas que nem sempre são gostosas, mas são necessárias. Em outras situações a gente precisa tentar consertar erros e a estrada fica remendada. Em outras, os buracos ficam mesmo na estrada. O importante (mas muito difícil) é ter consciência do que você está fazendo, para não errar igual, no futuro.

E porque criar mais um blog de Python? Qual o sentido de compartilhar o que sabe?

Eu nunca entendi direito esse lance de open source. Como é possível eu usar um sistema operacional (Linux) gratuito, um editor de programas (Vim) gratuito, um SGBD (MySQL) gratuito, uma linguagem (Python) gratuita e um sistema de versionamento de código (git) gratuito, sem ter que pagar nada a ninguém e ainda assim estar dentro da lei e poder ganhar dinheiro com isso?!

Quando eu refleti sobre isso, vi que a única forma de eu retribuir um pouco para a comunidade era divulgar o pouquíssimo conhecimento que eu tinha. Foi quando eu resolvi criar o Aprenda Python.

Então, o sentido de compartilhar é de devolver o que eu recebi de graça.

Captura de tela de 2014-12-18 12:25:51

Qual a importância de comunidade?

A comunidade é importante porque traz segurança para nossas escolhas. Atualmente, um dos critérios mais importantes que uso ao escolher um software para ser usado, é a comunidade. Se a comunidade em torno desse software não é receptiva, provavelmente eu terei dificuldade para solucionar algum problema que possa surgir. E sempre surgem!

Outra importância da comunidade é o senso de pertencimento. Foi na comunidade que eu enxerguei a possibilidade de mudança na minha vida. Ali eu via outras pessoas também lutando para viver de Python e se ajudando mutuamente, sem cobrar nada. Vi que eu não estava sozinho na luta.

Tem um artigo muito bacana falando sobre as diferenças de Django e Web2py mostrando suas ideias. E porque Web2py?

E por que não? Eu conversei com alguns colegas que respeito muito, na Python Brasil de 2013, e nenhum deles conseguiu me dar um motivo prático para não escolhê-lo. Dei um mini-curso lá e as pessoas gostaram da abordagem do framework.

Mas minha resposta é bem simples: Porque ele é muito produtivo.

Eu já mexi com muitas ferramentas de programação na vida. Gostei muito de Python, mas ainda não vi outro framework, no ecosistema Python, que fosse tão simples de aprender e tão prático quanto Web2py.

Assim como com qualquer ferramenta, é possível construir monstros. O manual e a comunidade mundial de Web2py estão aí pra isso. É uma das melhores comunidades que já frequentei (e ainda frequento).

Nesse artigo que você citou, eu falo um pouco das mágicas que muita gente não gosta. Eu sou mais pragmático, gosto de ver código funcionando. Com Web2py eu consigo ter software rodando rapidamente com pouco código meu. Framework web serve pra isso, não serve?

Claro que para qualquer escolha na vida, suas preferências e convicções pessoais pesam. No assunto framework, isso não seria diferente.

Como é viver de freelancer? Quais as dificuldades e vantagens, e como encontrar trabalhos?

É muito gostoso, mas, ao mesmo tempo, é muito ruim. Precisa de muita disciplina e estou aprendendo bastante sobre isso.

Hoje eu estou com trabalho fixo, num lugar que oferece muitas oportunidades de aprendizado, que precisa melhorar a interação entre as pessoas e tirar mais proveito da tecnologia. Estou gostando muito!

Sobre conseguir trabalho, a comunidade ajuda bastante. Eu consegui alguns trabalhos por conta da minha participação nela. Fiquei esperando algumas promessas, também. Uns foram bons; outros, nem tanto. Deixei alguns furinhos; também deixei alguns furões que nunca conseguirei consertar. Fiz coisa legal e fiz coisa chata. Por alguns, recebi uma remuneração justa. Por outros, nem recebi.

Enfim, o mundo fica mais real quando você deixa de se relacionar com seu computador e passa a negociar preço, prazo e escopo. É um constante desafio. Não tem glamour. É luta pela sobrevivência.

Para conseguir trabalho, parece paradoxal, mas ofereça seu tempo para ajudar. Eu consegui a vaga onde trabalho hoje e mantenho uma parceria muito promissora, em parte, por conta disso. Esteja disponível para as pessoas.

E antes que alguém pergunte, a resposta é “não. O github não é o seu currículo!”. Pessoas vivem fora do computador também e isso traz sanidade a elas. 😉

Deixe suas considerações para a galera e deixe os contatos.

Rapaz, eu não sou bom pra dar conselhos… Mas como já tenho filhos adultos, aqui vão três dicas:

1) Não tenha vergonha de dizer que é um programador. No Brasil, as pessoas fazem questão de dizer que são analistas de sistemas, que são engenheiros de software, que são gerentes de projeto, que são isso e aquilo… mas têm vergonha de dizer que são programadores. Precisamos de programadores, não de fazedores de programas.

2) Para ser um bom programador, não precisa ser um gênio da matemática.

3) Desligue seu computador e vá arrumar seu quarto ou lavar sua louça.

Para falar comigo, a melhor forma é email para viniciusban@gmail.com (a reposta pode demorar a retornar, tá?). Também uso o twitter @viniciusban com frequência.

#1 Fábio Vedovelli | Pessoas que me inspiram

ved_oficial_2015_squared

Uma coisa que percebi esses dias é que eu já participava de comunidade antes mesmo de entender o que ela é e seu significado. Ajudei pessoas em Visual Basic, Flash, Actionscript 3.0, Adobe Fireworks, e hoje, Python. E mesmo sem saber muito, conseguia de forma simples ajudar algumas pessoas. Mas antes de ajudar, eu era ajudado por pessoas que graciosamente criavam conteúdo gratuitamente.

Em 2009 a 2010 com o interesse em aprender a programar, e devido ao fato de já conhecer um pouco sobre Actionscript 3, me interessei pro Flex. E nisso acabei encontrando e acompanhando os materiais do Fábio Vedovelli, um dos profisionais referência no assunto. Mas o que me inspira não é a questão dele ser especialista em sua área, é pela sua história. E por isso abro essa seção convidando o Fábio para dar uma palavra sobre isso.

Vedovelli, você já está na área de desenvolvimento web há um bom tempo, conte um pouco de sua história.

Numa noite no meio dos anos 80 tive – por algumas horas – contato com uma BBS. Aquela experiência me marcou muito e aguçou minha curiosidade. Demorei a aceitar que do outro lado da linha existia uma pessoa digitando. Até mesmo a idéia de um computador conectado à uma linha telefônica me parecia muito maluca.

No meio dos anos 90, acho que foi 1996, fiquei sabendo de algo que estava rapidamente se popularizando. Este “algo” se chamava Internet e era como a BBS de 10 anos antes, mas muito mais complexa e completa. Não precisei de nenhum empurrão adicional para ir atrás de alguém que me ensinasse a acessar, navegar e não muito depois, desenvolver websites.

Em maio de 1998 meu primeiro website foi ao ar, desenvolvido no Netscape Composer. Falava sobre minhas duas viagens de mochila pela Europa, feitas anos antes. Em fevereiro de 2000 eu já tinha certa experiência e larguei meu emprego para viver do desenvolvimento web. Naquela época sequer se falava em web apps. Tudo era website, “portal”. Grande era quem desenvolvia “portal”.

Em 2000 aprendi javascript, em 2001 ASP, em 2003 PHP, em 2006 Flex e desde o Flex jamais deixei de aprender e experimentar. O ano de 2004 em especial foi um divisor de águas para o desenvolvimento web (lançamento do Gmail) e entre 2006 e 2008 assistimos a uma verdadeira explosão de ferramentas. E eu sempre estive presente, se não utilizando de forma profissional, pelo menos testando e avaliando.

Uma das coisas mais legais é seu autodidatismo, tanto para aprender Flex como se repaginar com a ‘morte’ do Flash e partir para outras áreas. Como foi esse processo?

A morte do Flex (2010) doeu muito na comunidade. Até hoje visito sites que encerraram suas atividades no dia do desastroso anúncio da Adobe sobre o repasse da tecnologia para a Apache Foundation. Eram sites importantes, muito ativos na comunidade Flex. Todos nós fomos pegos de surpresa. Passamos por todas as 5 fases do luto! rs

Felizmente eu continuei estudando mesmo enquanto o Flex era a tecnologia do momento. Quando Steve Jobs se recusou a incluir o Flash Player no iOS, empurrando assim a comunidade para o HTML5, eu fui lá conferir se era bom mesmo. Naquela época jQuery já era bastante importante e preenchia sozinha boa parte da lacuna deixada pelo Flex: obter referência a componentes visuais e se comunicar através de eventos. Tudo isso já existia com Javascript puro, mas jQuery facilitou a vida ao tornar o desenvolvimento “crossbrowser first”.

Acredito que a morte do Flex doeu menos em mim do que em muitos dos meus colegas desenvolvedores.

Mas demorou bastante até que um candidato à altura se destacasse no mercado e o nome só foi surgir no final de 2011: Angular. É claro que mergulhei no aprendizado e até gravei um screencast em Julho de 2012 apresentando o Framework.

Resumindo: fazer o switch do Flex para outras tecnologias não foi tão complicado, principalmente pelo momento da época: muitas novidades, uma melhor do que a outra. Foi muito divertido!

E qual é a sua relação e importância de criar screencasts gratuitos para a galera?

No início eu fiz para conseguir ajuda. Eu precisava muito aprender uma tecnologia que me permitisse criar apps para meus clientes, de forma rápida e confiável. Comecei com EXTJS mas me foi muito difícil. Eu sabia o básico de Javascript, o que não era (e ainda não é) suficiente para aprender EXT. Então meu primo Marcos Jr. me apresentou o Flex e aquilo resolvia 100% dos meus problemas. Acontece que minhas perguntas eram básicas e eu não conseguia que me respondessem nos fóruns. Decidi gravar meu progresso para me ajudar a estudar e a comunidade acabou gostando das minhas aulas. Coincidentemente passaram a responder minhas básicas perguntas. rs

Até hoje o maior benefício das aulas é aprender! É muito mais fácil aprender sem a obrigação de acertar na primeira vez. Meu processo de criação das aulas me exige que eu desenvolva pelo menos 2 vezes para fazer uma aula concisa e isso fixa bem o aprendizado na minha cabeça.

Mas existem outros…

Ter um nome conhecido na comunidade abre muitas portas. Já fui muito beneficiado pelas aulas gratuitas e, por incrível que pareça, ganhei mais dinheiro com elas do que com os cursos pagos. rs

Mas nada (vou repetir: NADA!) é mais gratificante do que receber mensagens do tipo: “- Graças às suas aulas eu consegui meu primeiro emprego” ou “- Graças às suas aulas fui promovido”. Em 7 anos desde que publiquei a primeira aula já recebi mensagens assim pelo menos 10 vezes. Isso, por si só, já me é motivador!

Atualmente vive através de uma vida ‘euempreendedor’, como foi esse processo?

Eu me considero um freelancer. Já tive 3 empresas, todas já fechadas! rs

Em qualquer relacionamento eu preciso admirar algum aspecto da outra pessoa. Caso eu não admire nada, a pessoa simplesmente deixa de existir. E mercado corporativo é meio loteria, né?! =D Depois de ser subordinado a umas pessoas que não sabiam o que estavam fazendo, decidi passar a contar comigo e tão somente comigo.

Entre empregos de curta duração, estou nesta vida de freelancer desde 2002. Já vivi muita coisa boa, muita coisa ruim e atualmente me considero feliz. Sinto muita falta da CLT e vivo pensando em conseguir um emprego. Mas o home office sempre fala mais alto! Será que em 2015 eu mudo esta condição?!

O que acha dessas novas tecnologias JavaScript, o EmberJS, Node.js e Bower?

Javascript não é novo, né?! O que é novidade é sua aceitação! rs Acredito que ainda não há maturidade no desenvolvimento de web apps. Basta ver a velocidade com que aparecem novas tecnologias. Mas com o que temos se pode fazer um belo dum trabalho!

O node.js foi um marco no desenvolvimento. Atualmente eu credito sua importância mais ao que ele provê de ferramenta na máquina do desenvolvedor (npm, Bower, Grunt, Gulp.js) do que sua capacidade de rodar no servidor, servindo de substituto para linguagens tradicionais e consolidadas como PHP e Ruby. Veja: sou grande fã do Node.js já tendo inclusive o utilizado em projetos de grande porte. Apenas acho que é difícil concorrer com quem tem o suporte de programadores tão apaixonados (PHP e Ruby). Mas para um programador com a mente aberta todas as ferramentas possuem espaço!

O desenvolvimento web está muito parecido com o desenvolvimento Desktop, sendo que as modernas web apps possuem o melhor de ambos os mundos: a riqueza e confiabilidade das apps desktop com a alta disponibilidade da web. Acontece que isso veio com um preço: a grande complexidade no desenvolvimento para a Web, que teve que se adaptar para um paradigma diferente. Desenvolver web apps sem o suporte de um framework completo como Ember.js ou Angular é uma tarefa das mais difíceis. Até mesmo com eles se exige muito do programador.

Fico feliz que eles existam!

Deixe suas considerações para a galera e seus contatos.

Posso deixar um conselho? Não dê ouvidos. Quando simpatizar com uma tecnologia, use-a. Aprenda, aplique, construa. Sempre haverá quem queira denegrir de forma gratuita. Desconsidere. Aprenda a separar quem tem uma opinião honesta e bem embasada daqueles que só querem fazer bagunça.

E se se decidir que a tecnologia não lhe serve, siga adiante!

E assista aos meus screencasts!

Captura de tela de 2014-12-17 17:58:45
www.vedovelli.com.br/screencasts

 

Bottle framework: Fontes de estudos

bottle-framework-dicas-tutoriais

Bottle é um micro-framework Python rápido, simples e leve, baseado apenas em um arquivo, tornando o desenvolvimento de simples aplicações. Mas só porque ele é simples não quer dizer que ele não seja poderoso.

Uma das grandes perguntas é: Qual seria a diferença entre Bottle e Flask? O Armin Ronacher respondeu de forma bem interessante:

The big difference is that Flask is based on other technologies such as Werkzeug and Jinja2 that exist for a longer time and it does not try to reinvent things. Bottle on the other hand tries to stick to the one-file approach. I want to merge them but the Bottle developer does not seem to be very happy about the idea of stepping away from the “one file” requirement.

Regarding flexibility: there are no reasons you shouldn’t be able to use flask with other template engines if that’s what you’re after. In fact, things like Flask-Genshi exist: Flask-Genshi and it’s incredible easy to use mako with it, even without extension if you want to.

Bias warning: I am the developer of Flask, Werkzeug and Jinja2.

Mas não é só isso, como ele mesmo disse, os desenvolvedores do Bottle tem a ideia de que seja o mais simples possível e ‘cru’, para que assim aos poucos vá crescendo de acordo com a real necessidade do projeto/ideia. E realmente é muito simples entender os conceitos.

Comparemos os 2 exemplos que são mostrados em suas documentações:

Flask

from flask import Flask
app = Flask(__name__)

@app.route(“/”)
def hello():
….return “Hello World!”

if __name__ == “__main__”:
….app.run()

E como rodar:

$ pip install Flask
$ python hello.py
* Running on http://localhost:5000/


 

Bottle

from bottle import route, run, template

@route('/hello/')
def index(name):
return template('Hello {{name}}!', name=name)

run(host='localhost', port=8080)

E como rodar:

$ pip install bottle
$ python hello.py
* Bottle v0.12.7 server starting up (using WSGIRefServer())...
Listening on http://localhost:8080/hello/world

*O ponto[.] representa um espaço[tab]

Só nessa pequena comparação já vemos alguns detalhes diferentes. Levemente o Bottle é mais explícito que o Flask, mas aí é questão de gosto.

 

Vamos as fontes 🙂

Developing With Bottle – Part 1

Developing With Bottle – Part 2

Tutorial: Getting started with Bottle – a Python web framework

Bottle Web Framwork For Python

Creating a RESTful Python API With Bottle

How to Build Websites Using the Bottle.py Web Framework

BAM! A Web Framework “Short Stack”

How To Use the Bottle Micro Framework to Develop Python Web Apps

Bottle, Full stack without Django

Bottle.py Web Framework: Introduction from Aniruddha Adhikary on Vimeo.

Thiago Avelino, um dos Core-Commiters do Bottle comenta sobre as novidades do Bottle:

Estamos empenhados a evoluir mais o projeto, focando em criar nosso próprio ecossistema de plugins e mais outras novidades.

Sabe de mais links? Considerações? Comente aí embaixo!