Posts de ‘Tarsis Azevedo’

[Tarsis Azevedo] Programming Highlight - 2

Sunday, February 12th, 2012


compilação dos melhores links da semana

Leitura

  • Zen Coder or Distraction-Junkie

http://www.componentowl.com/blog/2012/02/zen-coder-vs-distraction-junkie/

  • Jeff Atwood anunciou sua saida da equipe do Stack Overflow.

http://www.codinghorror.com/blog/2012/02/farewell-stack-exchange.html

http://www.dirtymonkey.co.uk/blog/zen-of-python-poster

  • Lembra do Hacker way do Facebook nos Highlights da semana passada? Então, posters sobre o ele em creative commons pra voce baixar

http://www.designforfun.com/facebookposters/

  • Uma otima apresentação sobre como e porque customizar os admin do django. Indica varios pros e contras de cada abordagem

http://www.slideshare.net/lincolnloop/customizing-the-django-admin/

  • Se voce usa vim, veja se está fazendo isso certo!

http://blog.sanctum.geek.nz/vim-anti-patterns/

  • Patterns de ORM

http://techspot.zzzeek.org/2012/02/07/patterns-implemented-by-sqlalchemy/

  • Css Box Model

http://css-tricks.com/the-css-box-model/

  • Podcasts for Hackers

http://designpepper.com/podcasts-for-hackers

Projetos

  • Django-Facebook - o principal destaque desse projeto é a integracao com o Open Graph beta.

[Tarsis Azevedo] [Review] Nao me faça pensar! Uma Abordagem de Bom Senso À Usabilidade na Web

Wednesday, February 8th, 2012


Eu recentemente acabei de ler este livro sensacional sobre usabilidade na web.

Ele trata sobre a arquitetura de informação de uma pagina web, mostrando elementos básicos que toda pagina deve ter, o que fazer e o que não fazer, como montar sua pagina principal e como executar testes de usabilidade. Te abre os olhos pra questões básicas muitas vezes esquecidas por nós em nossos projetos web.

Mas eu sou desenvolvedor!

Por isso mesmo! Você deve ser plural, conhecer um pouco de tudo. Design, infraestrutura, usabilidade, CSS, HTML, semantica, protocolo http e todo o ecosistema que engloba a web.

Neste otimo post o Henrique Bastos fala mais sobre pluralidade para programadores web. Vale a leitura!

Se você quiser ler somente um livro sobre usabilidade na sua vida, LEIA ESTE!

Ok, legal. Onde eu compro?

Voce pode escolher o melhor preço no buscapé, por esse link.

Ou se preferir, pode comprar a versao em ingles, na amazon.

Pode ter certeza, este livro é um otimo investimento para melhorar seus projetos web, e deixar seus usuarios mais felizes! Aproveite e boa leitura.

Até a proxima!

[Tarsis Azevedo] Programming Highlight - 1

Monday, February 6th, 2012


uma compilação dos melhores links que li na semana.

https://www.destroyallsoftware.com/talks/wat

  • O twitter lançou a versao 2.0 do seu bootstrap. Aqui tem uma palestra explicando as principais mudanças.

http://speakerdeck.com/u/mdo/p/bootstrap-2

  • O “Hacker Way” do Facebook, segundo o Mark Zuckerberg. Vale a leitura! Documento original

http://www.startuplessonslearned.com/2012/02/hacker-way.html

  • Tem duvida do que é REST, RESTful e tudo isso? Leia essa thread do stackoverflow.

http://stackoverflow.com/questions/671118/what-exactly-is-restful-programming

  • Teste quais features de css3 seu browser suporta.

http://css3test.com/

[Tarsis Azevedo] Testes em Javascript - Jasmine

Wednesday, February 1st, 2012


Testes automatizados emergiram como uma das boas praticas da engenharia de software, e seus resultados sao comprovadamente eficazes.

Eu utilizo bastante essas tecnicas quando programo em python/django com ferramentas como o splinter, unittest entre outras. Porem quando programava em javacript, eu sempre senti falta desses testes automatizados.

E o Jasmine?

tl;dr - Jasmine is a behavior-driven development framework for testing your JavaScript code.
It does not depend on any other JavaScript frameworks.
It does not require a DOM.
And it has a clean, obvious syntax so that you can easily write tests.

Em setembro do ano passado (2011), comecei a trabalhar no projeto de cobertura de eventos na globo.com. E tinhamos como desafio principal, atualizar uma pagina em tempo real via streaming com fotos, videos e textos. Pra isso os componentes da pagina teriam que interagir muito, recebendo e tratando os dados enviados do streaming. Usamos muito js com o framework mootools, e pra testar usamos o jasmine, o que nos proporcionou uma segurança e qualidade de codigo excelentes!

Agora chega de falar!

Show me the code

Pra começar, vc descreve um cenario que vai testar.

Como exemplo, vamos fazer um fizzbuzz

describe("Fizz Buzz", function(){
    it("numero igual a tres deve retornar fizz", function(){
        expect(fizzbuzz(3)).toEqual("fizz");
    });
});

Depois de escrever o teste, a gente escreve um codigo pra passar:

var fizzbuzz = function(numero) {
    return "fizz";
}

Agora mais um cenario:

it("numero igual a cinco, deve retornar buzz",function() {
    expect(fizzbuzz(5)).toEqual("buzz");
});

mais um pouco de codigo:

var fizzbuzz = function(numero) {
    if (numero === 3) {
        return "fizz";
    }
    return "buzz";
};

Bom ai vcs podem continuar a brincar e terminar o codigo.

E pra rodar?

Bom vc pode carregar os scripts(download aqui) do jasmine numa pagina html estatica e por ultimo carregar o seu teste.
Um exemplo:



        

        

            jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
            jasmine.getEnv().execute();

Se vc tem um projeto em ruby com rails, vc pode usar uma gem pra rodar os testes.

Se vc tem um projeto em python, pode usar o jasmine-test-runner, feito pelo cobrateam.

Se vc tem um projeto em outra linguagem, veja aqui como rodar o jasmine.

Entao é isso!

Até a proxima, []’s

[Tarsis Azevedo] Palestra ministrada no FISL 12 em 2011 sobre TDD,…

Thursday, January 26th, 2012

Palestra ministrada no FISL 12 em 2011 sobre TDD, Refactoring e boas praticas de programação!

Feedbacks sao bem vindos!

Até mais!


[Tarsis Azevedo] Aprenda Vim Progressivamente

Thursday, January 26th, 2012

Sou usuario do vim a algum tempo e sempre estou procurando aprender mais e mais sobre esse excelente editor.

Recentemente encontrei um otimo post no blog do Yann Esposito para iniciantes aprenderem vim rapidamente e tambem para veteranos querendo aprender algumas magicas desse otimo edito de texto.

Gostei tanto do post que resolvi traduzi-lo para divulgar o vim e mostrar como voar com ele.

Então vamos ao post!

Pride-and-prejudice

TL;DR: Quer aprender vim (o melhor editor conhecido pela humanidade) da forma mais rapida possivel. Eu sugiro um caminho. Comece aprendendo o basico pra sobreviver, entao integre todos os truques devagar

Vim, o editor de texto de seis bilhões de dólares

Melhor, mais rapido, mais forte

Aprenda vim e ele será seu ultimo editor de texto. Ele não é o melhor editor de texto, eu sei. É dificil de aprender, mas incrivel de usar.

Eu sugiro aprende-lo em 4 passos:

  1. Sobreviva
  2. Sinta-se confortavel
  3. Sinta-se melhor, mais rapido, mais forte
  4. Use os superpoderes do vim

    No final dessa jornada você se tornará um superstar do vim!

    Mas antes de começar, um aviso. Aprender vim será doloroso no começo. Isso leva tempo. É muito parecido com aprender a tocar um instrumento musical. Não espere ser eficiente com vim do que com outro editor em 3 dias. Na verdade vai levar 2 semanas ao inves de 3 dias. (more…)

    [Tarsis Azevedo] FISL 12 - A segunda vez é ainda melhor

    Thursday, January 26th, 2012

    Na ultima semana rolou em Porto Alegre mais um FISL na PUC. Foram 4 dias conhecendo e conversando com muita gente, revendo amigos, comendo muito churrasco e sentindo muito frio!

    Esse foi meu segundo FISL, e como dizem: a segunda vez é ainda melhor!

    Fiquei grande parte do tempo no stand da globo.com, conversando com pessoas da comunidade python, conhecendo gente de todo brasil e fazendo novas amizades. Tive contato com muitos alunos e futuros programadores, uns mais interessados e outros só querendo brindes xD

    No stand da globo.com apresentei uma lightning talk sobre Coding Dojo e convidei a galera para participar de um dojo no sabado a tarde!

    Dojo_globocom

    E apareceram mais pessoas que eu esperava.

    Junto com o Israel Teixeira, do dojorio, guiamos um dojo em python colocando em pratica os conceitos de TDD aprensentados por ele na sua palestra. O codigo e o feeback estao no github.

    Tambem nesse FISL tive a oportunidade de apresentar minha primeira palestra em um grande evento, e o resultado nao poderia ser melhor!

    Sala cheia, muitas perguntas e elogios.

    Palestra

    Esse FISL foi inesquecivel, agora que venha a QCON Br e a Python Brasil! Nos vemos lá!

    ps: veja o que o Henrique Bastos tem a dizer sobre o FISL 12!


    [Tarsis Azevedo] Vagrant - Maquinas virtuais leves e rapidas

    Thursday, January 26th, 2012

    Se voce é programador e precisa subir maquinas virtuais pra testar sites no IE 6/7/8/9, ou quer fazer deploy para ambientes iguais os de produção, e pra mais varias coisas que precisam ser rapidas e são mega chatas e demoradas, e voce usa VirtualBox – Voce esta fazendo isso errado.

    Ok, entao eu uso o que?

    O vagrant é uma ferramenta para a construção e distribuição de ambientes dedesenvolvimento virtualizados, escrita em ruby que usa o VirtualBox da Oracle como base, e prove funcionalidades que permitem criar, distribuir, reproduzir e configurar Maquinas Virtuais(VM) de forma rapida (fonte: github do projeto).

    ComoFas


    Como eu disse anterior mente é muito facil, basta ter o ruby, e a virtualbox instalada, uma internet boa ajuda tambem.

    Tendo isso instalado vamos começar:

    Execute esse comando:

    $ gem install vagrant

    Certifique-se que tudo está instalado corretamente.

    Antes de criar sua maquina, crie uma pasta para abrigar os arquivos de configuraçao:

    $ mkdir vagrant-machine

    Agora vamos criar uma VM com ubuntu 10.04

    $ cd vagrant-machine $ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box $ vagrant init lucid32 $ vagrant up

    Feito isso sua VM ja está pronta para ser acessada!

    Mas é só isso mesmo?!

    Claro que nao!!! Agora vamos configurar seu ambiente! Primeiro, abra o arquivo Vagrantfile na pasta vagrant-machine e deixe ele assim:

    Vagrant::Config.run do |config| # Setup the box config.vm.box = "lucid32" end

    Execute o comando de reload para carregar suas modificações

    $ vagrant reload

    Teste o acesso a sua VM para ver se está funcionando corretamente

    $ vagrant ssh

    OBS: Tudo que voce colocar na pasta onde está seu Vagrantfile, aparecerá na VM na pasta /vagrant. Para ter certeza, execute este comando na VM:

    $ ls /vagrant

    Agora acabou?

    Bom agora voce tem que instalar os pacotes que voce precisa no seu ambiente. Para isso eu escolhi usar o chef para gerenciar a instalação. Esse processo depende muito do seu ambiente, entao deixarei referencias para montagem de ambientes usando o chef.

    Para estudar o vagrant e o chef eu fiz uma VM configurada para ser um servidor de CI

    Nela estao instalados os seguintes pacotes: * Django 1.3 * Apache * git * MySql * Jenkins (servidor de CI)

    Download aqui

    OBS: Execute a VM e acesse o servidor de CI pela url http://localhost:8080/

    Referencias:

    Bom, é isso, divirtam-se com suas novas VMs rapidas e praticas.

    Duvidas e criticas, deixem nos comentarios.

    Até a proxima


    [Tarsis Azevedo] Vagrant - Maquinas virtuais leves e rapidas

    Thursday, January 26th, 2012

    Se voce é programador e precisa subir maquinas virtuais pra testar sites no IE 6/7/8/9, ou quer fazer deploy para ambientes iguais os de produção, e pra mais varias coisas que precisam ser rapidas e são mega chatas e demoradas, e voce usa VirtualBox – Voce esta fazendo isso errado.

    Ok, entao eu uso o que?

    O vagrant é uma ferramenta para a construção e distribuição de ambientes dedesenvolvimento virtualizados, escrita em ruby que usa o VirtualBox da Oracle como base, e prove funcionalidades que permitem criar, distribuir, reproduzir e configurar Maquinas Virtuais(VM) de forma rapida (fonte: github do projeto).

    ComoFas


    Como eu disse anterior mente é muito facil, basta ter o ruby, e a virtualbox instalada, uma internet boa ajuda tambem.

    Tendo isso instalado vamos começar:

    Execute esse comando:

    $ gem install vagrant

    Certifique-se que tudo está instalado corretamente.

    Antes de criar sua maquina, crie uma pasta para abrigar os arquivos de configuraçao:

    $ mkdir vagrant-machine

    Agora vamos criar uma VM com ubuntu 10.04

    $ cd vagrant-machine $ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box $ vagrant init lucid32 $ vagrant up

    Feito isso sua VM ja está pronta para ser acessada!

    Mas é só isso mesmo?!

    Claro que nao!!! Agora vamos configurar seu ambiente! Primeiro, abra o arquivo Vagrantfile na pasta vagrant-machine e deixe ele assim:

    Vagrant::Config.run do |config| # Setup the box config.vm.box = "lucid32" end

    Execute o comando de reload para carregar suas modificações

    $ vagrant reload

    Teste o acesso a sua VM para ver se está funcionando corretamente

    $ vagrant ssh

    OBS: Tudo que voce colocar na pasta onde está seu Vagrantfile, aparecerá na VM na pasta /vagrant. Para ter certeza, execute este comando na VM:

    $ ls /vagrant

    Agora acabou?

    Bom agora voce tem que instalar os pacotes que voce precisa no seu ambiente. Para isso eu escolhi usar o chef para gerenciar a instalação. Esse processo depende muito do seu ambiente, entao deixarei referencias para montagem de ambientes usando o chef.

    Para estudar o vagrant e o chef eu fiz uma VM configurada para ser um servidor de CI

    Nela estao instalados os seguintes pacotes: * Django 1.3 * Apache * git * MySql * Jenkins (servidor de CI)

    Download aqui

    OBS: Execute a VM e acesse o servidor de CI pela url http://localhost:8080/

    Referencias:

    Bom, é isso, divirtam-se com suas novas VMs rapidas e praticas.

    Duvidas e criticas, deixem nos comentarios.

    Até a proxima


    [Tarsis Azevedo] Scaling Rails - Dicas simples que podem salvar sua vida!

    Thursday, January 26th, 2012

    Todo dia, toda hora alguém levanta a mesma questão: Rails escala? Djángo escala? escala?Se você ainda faz essas perguntas, fique sabendo que se sua aplicação não escala, a culpa é toda sua provavelmente você esta fazendo merda algo de errado.

    Ok, já que você disse, o que posso fazer pra melhorar?!O Gregg Pollack, criou uma seria de vídeocasts dando dicas super rápidas e simples para escalar uma aplicação rails.

     => VEJA OS VIDEOCAST AQUI <=São dicas como, page cache, expiration, load tests e mais outras coisas legais que podem ser aplicadas facilmente e rapidamente em qualquer projeto rails.

    Para django, existe essa thread no StackOverflow que explica varias formas de escalar uma aplicação djangoLegal, mas eu trabalho com outro framework

    Essas dicas podem ser aplicadas em quase todas as linguagens e frameworks. Basta fazer o paralelo entre a ferramenta mostrada no vídeo|thread e uma similar que pode ser usada com seu framework.Uma simpless pesquisa no google já traz sua resposta!

     

    Se tiver outra indicaçao de material, ou dica, deixa ai nos comentarios,

    Thanks.