Showing posts with label lean. Show all posts
Showing posts with label lean. Show all posts

Thursday, August 9, 2012

Fazendo um app no Heroku

Fazendo um app no Heroku



Fala pessoal?


Fiquei de colocar aqui no blog os passos os quais utilizei para fazer um currículo digital, pois bem... chegou a hora!


Como eu havia mencionado em uma postagem passada eu utilizei de algumas tecnologias, citarei todas com respectivos links:

  • python
  • virtualenv
    • Permite você criar ambientes separados em python, você pode escolher quais libs instalar, sem tê-las por todo o sistema. Funciona como um container para seu projeto.
  • flask
    • Um micro framework em python, bem simples e rápido, com baterias não inclusas. Mas com muitas baterias a disposição.
  • flask-assets
    • Extensão do flask (uma dessas baterias não inclusas), que permite você agrupar e minificar arquivos estáticos do seu app.
  • mongoengine
    • "The object-document mapper to connect Python and MongoDB". Vai lhe ajudar a melhorar a sua interface de conexão entre o mongohq e seu app!
  • jQuery
    • Se você ainda não usa esta perdendo muito!
  • twitter bootstrap
    • Conjunto de classes css e plugins jquery que vão lhe ajudar a deixar seu app mais bonito e funcional. É esse micro framework jquery é do pessoal do twitter.
  • font awesome
    • Fontes com ícones dos mais diversos, se você olhar não vai mais largar! ahhahahhahaha :D
  • git
    • Ferramenta de versionamento.
  • heroku
    • Nosso fornecedor de IaaS.
  • mongohq
    • Rodar o mongodb nas nuvens! Uhu!


Você pode estar se perguntando, "poxa vida, tenho de aprender tudo isso para colocar algo no ar la no heroku?".
Claro que não, o negócio é que eu quis experimentar um pouco mais, resolvi que iria colocar algumas coisas em um banco de dados noSQL, o que não é necessário.
Enfim, primeiro passo, foi criar localmente um ambiente (ok, não precisa ser apache pra isso, mas eu usei mesmo assim). O legal do flask e outros frameworks em python é que você pode subir um "web server" na linha de comando sem precisar configurar um apache da vida. Isso é um ponto positivo!

Pra colocar um site la no heroku é bem simples, só seguir esse tuto na página deles: Getting Started with Python on Heroku.

Depois de seguir estes passos bem simples do heroku e claro ter feito sua aplicação/site/whatever você pode ativar o mongohq. Para isso é só entrar na interface do heroku e solicitar a ativação do mongohq para sua nova app.
O heroku vai lhe retornar as informações de conexão com o banco, então você os coloca na aplicação. Como eu estou usando flask e o mongoengine, para cadastrar o banco de dados foi simples:




app = Flask(__name__)
app.config["MONGODB_DB"] = "app5632158"
app.config["MONGODB_USERNAME"] = "rdenadai@gmail.com"
app.config["MONGODB_PASSWORD"] = "yhgb2398"
app.config["MONGODB_HOST"] = "staff.mongohq.com"
app.config["MONGODB_PORT"] = "10050"
db = MongoEngine(app)



Bem fácil não? Ainda estou usando o flask-assets que é uma extensão bem bacana que permite você juntar os arquivos css/js em um único só, melhorando assim a performance da sua app na hora de baixar os arquivos estáticos do servidor!

assets = Environment(app)
js = Bundle('jquery.js', 'default.js', 'twitter-bootstrap.js', filters='jsmin', output='gen/packed.js')
css = Bundle('default.css', 'normalize.css', 'font-awesome.css', 'twitter-bootstrap.css', filters='cssmin', output='gen/packed.css')
assets.register('js_all', js)
assets.register('css_all', css)

Feito isso no app.py do seu app, pra utilizar é só ir nos templates e colocar:



{% assets "css_all" %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" />
{% endassets %}



{% assets "js_all" %}
<script type="text/javascript" language="javascript" src="{{ ASSET_URL }}"></script>
{% endassets %}

Fazendo estes passos, que achei bem simples (depois que você aprende são bem simples mesmo!), coloquei no ar um app no heroku!


Só não vá correndo contar isso pro seu chefe...

Falowaer


Thursday, July 26, 2012

Tradicional x Ágil

Tradicional x Ágil


Bom, hoje vou falar de um tema muito recorrente em minha vida e minhas pesquisas na internet. A velha discussão sobre tradicional x ágil!

Não vou falar especificamente de CMMI/MPSBr contra SCRUM/XP nada disso, mas principalmente sobre modelos de pensamento tradicional contra o ágil!

Acho engraçado o modismo exacerbado com relação a tecnologias e métodos, engraçado porque as pessoas não procuram se aprofundar nas questão desses modismos (seria um problema causado pela Síndrome da Pressa?) e simplesmente ignoram as premissas básicas ditadas por estes.
Nesse momento o pensamento ágil impera nessas pessoas!

"Precisamos aprender isto pois irá aumentar nossa produtividade!"

O imediatismo toma conta, assim verdadeira mentalização e aprendizado se perde, para dar lugar a "rápida escalada" da produtividade. Mas será que isso é mesmo o importante?
Na verdade o que fazemos é pegar todo nosso aprendizado, crenças e achismos tradicionais e colocar mais tradicionalismo em cima, achando que estamos melhorando, agilizando ou qualquer que seja a palavra. Mas a verdade é que não estamos. Estamos apenas colocando mais cobertura sobre um bolo de  1 metro de altura.


O problema é não conseguirmos sair de nossa zona de conforto, nosso Ok Plateau e outros mais nomes dados ao nosso verdadeiro medo (Aprendizado Contínuo). Então surgem aquela amálgama de soluções lindas e perfeitas, misturando o pensamento Tradicional com o Ágil, fazendo não só aumentar a produtividade como manter os lindos e complexos processos do modo como estão.
As pessoas se enganam, o poder é o que conta mais, por isso os métodos tradicionais são tão fortes ainda nas empresas e essa amálgama de soluções surge. Manter o pensamento tradicional, mas tentando agiliza-los o máximo possível.

Tudo isso só mostra que enquanto uns são extremistas demais (e corretos), outros ficam em cima do muro, destruindo e denegrindo a real imagem da agilidade. Escolha seu lado, ou você é tradicionalista ou agilista, esse meio termo, na verdade só serve para manter e postergar ainda mais o modelo mental tradicional e impedir o novo. Pare de querer ficar criando métricas e processos que impedem o real trabalho de ser feito! Não se esconda por trás dos processos, faça acontecer, crie e inove o quanto é necessário, não viaje na maionese, LEAN é a palavra para sua agilidade. Nada de ficar criando projetos monstros, meses de planejamento. MVP nisso! simples, rápido, responsável e parceria.
Ensine seu cliente ou mande-o embora! Parceria, nada de você compra e eu forneço, se até as empresas estão tentando criar um ambiente social para seus produtos, porque a sua empresa quer ir na contra mão?
Será que não é hora da sua empresa (você) refletir os rumos que esta indo e verificar se o que se esta fazendo é correto? Lembra da nossa conversa sobre Missão, Visão e Valor? Hora de parar de se esconder atrás das portas, tirar os esqueletos do armário e corrigir o que esta de errado.

Nunca é tarde para recomeçar...

Falowaer!