Posts de ‘Tarsis Azevedo’

[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.


[Tarsis Azevedo] development |should| be_funny - Python e TDD

Thursday, January 26th, 2012

Should o que?!

O should-dsl é uma ferramenta de teste que tem como principal objetivo tornar o codigo mais legivel e limpo. (http://www.should-dsl.info/)

Ok, mas #comofas?

Depois de instalado (o site ensina como fazer) é bem simples começar a escrever os testes. Tá duvidando, então olha só:

Esse exemplo eh a implementacao das specs da musica Só para Loucos – Ventania

So Para Loucos Spec Spec


class Pessoa:
		louco = False
		careta = True

		def colher_cogumelos(self):
		    self.cogumelos = ['cogumelo1', 'cogumelo2', 'cogumelo3', 'cogumelo4', 'cogumelo5']
		    return self.cogumelos

		def fazer_cha(self, *ingredientes):
		    cha = ingredientes
		    return cha

		def beber(self, oque):
		    self.louco = True
		    self.careta = False
		    self.versos = ['espinho', 'espinho']

		    return self

		def guardar_cogumelos(self, cogumelos):
		    self.recanto_espiritual = cogumelos
		    return self.recanto_espiritual

	class TestSoParaLoucos(unittest.TestCase):
	    def setUp(self):
	    	self.pessoa = Pessoa()

	    def test_deve_ser_careta_sem_tomar_nada(self):
	    	self.pessoa |should| be_careta

	    def test_deve_estar_louco_depois_de_tomar_um_cha_de_cogumelo(self):
	    	cogumelos = self.pessoa.colher_cogumelos()

	    	cha_de_cogumelo = self.pessoa.fazer_cha(cogumelos)
	    	cha_de_cogumelo |should| contain(cogumelos)

	    	self.pessoa.beber(cha_de_cogumelo) |should| be_louco
	    	self.pessoa.versos |should| have(2).espinhos

	    def test_deve_guardar_cogumelos_escondidos(self):
	        cogumelos = self.pessoa.colher_cogumelos()
	    	self.pessoa.guardar_cogumelos(cogumelos)
	    	self.pessoa.recanto_espiritual |should| have(5).cogumelos

	if __name__ == '__main__':
	    unittest.main()

Só isso?

Isso foi só um exemplo ludico, pra mostrar as possibilidades da ferramneta! Hoje ela contem varios matchers(as funções de teste) para os mais variados objetivos. Voce pode ver a lista completa aqui

Voce tambem pode fazer seus proprios matchers

Acabou?

Se voce gostou do projeto e quer ajudar, aqui vc encontra varias formas de contribuir!

Entao eh isso, Até a proxima xD


[Tarsis Azevedo] Django Trick: Hospedagem grátis no Alwaysdata

Thursday, January 26th, 2012

Quem programa em django, sente falta de um Heroku[1], como no rails para fazer deploy e colocar a aplicaçao online mais rapido e de graça.

Obervação: Existe um serviço que tem essa proposta, ser um Heroku pra Django, é o Djangy (https://www.djangy.com/), Porem ele esta em teste! Voce pode entrar e pedir um convite. Eu ja pedi mas nao foi aceito ainda! =/

 

Uma Solução…

… pra esse problema é o alwaysdata.com . Eles tem varios planos de hospedagem, e um deles é totalmente free!!! xD

Assim, voce pode desenvolver sua aplicação e ja colocar no ar! 

Facil assim?

Sim, fácil assim!! A interface deles é muito simples. Você configura seu servidor com a versão do python/django que usa com 1 clique.

Depois é só enviar a aplicação via ssh para o server, seguir os passos deles pra deploy[2] e pronto, sua aplicação django estará no ar!!!

Que massa! Isso é perfeito!

Não!

Ele tem alguns pequenos problemas:

  1. Algumas partes importantes do site estao em frances
    • pagina da wiki que ensina o deploy e o acesso via ssh
  2. Não tem um script ou deploy automatizado como o Heroku
    • Isso pode ser feito com um shell script simples(No proximo artigo deste blog)
    • Pra agilizar, voce pode habilitar o acesso ao ssh sem senha[3]
  3. O plano é fraco
    1. Mas, se seu objetivo é só “testar” em produção ele te atende!
    2. É uma forma de aprender fazendo 
    3. E é de graça!!!

Até a proxima pessoal,

Abraços.

[1]http://heroku.com/

[2]http://wiki.alwaysdata.com/wiki/D%C3%A9ployer_une_application_Django

[3]http://tarsisazevedo.posterous.com/truque-ssh-sem-senha

 

 


[Tarsis Azevedo] Truque Ssh: Sem Senha

Thursday, January 26th, 2012

Voce tem que acessar um servidor muitas vezes ao dia, e esta cansado de digitar senha toda hora? Voce nao aguenta mais gravar mil senhas? Tem que digitar todas as mil senhas para tentar acessar sua maquina remota?

Seus problemas acabaram!!!

Voce só vai precisar de:

  • Um terminal linux
  • Senha da maquina que vc acessa (E só mais uma vez, eu garanto)
  • Alguns comandos linux.
    • Atenção: se voce nao é muito experiente em linux, peça ajuda de um adulto xD,

Tudo pronto? Entao…

Abra o terminal e digite:

ssh-keygen -t rsa

Bom agora voce vai ver as seguintes mensagens:

Enter file in which to save the key (/home/user1/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

 

APENAS TECLE ENTER PARA TODAS!!!!


Agora faça o seguinte:

scp ~/.ssh/id_rsa.pub root@sua_maquina_remota:~

Se isso deu certo, agora acesse sua maquina:

ssh root@sua_maquina_remota

Estando na maquina faça o seguinte:

cat id_rsa.pub » .ssh/authorized_keys

Se o diretorio .ssh nao existir, crie-o assim: mkdir .ssh

Feito isso, apenas saia da maquina remota e tente acessar novamente.

Agora voce nao precisa mais de senhas!!!

Porem

Existe uma lei do universo que diz o seguinte: se algo pode dar errado, vai dar errado, entao…

Se depois de seguir todos esses passos, voce encontrar com esse erro:

 

“agent admitted failure to sign using the key”

Basta fazer o seguinte na maquina local, nao na maquina remota:

 

sudo apt-get install ssh-add

Por fim..

deixe seu feedback(problemas, sugestoes, etc) nos comentarios.

Obrigado, e até a proxima pessoal!

Referencias:

http://polishlinux.org/apps/ssh-tricks/

http://www.pedropereira.net/ssh-sem-senha-autenticacao-atraves-de-certificados-rsa/

http://www.baptiste-wicht.com/2010/07/tip-how-to-solve-agent-admitted-failure-to-sign-using-the-key-error/


[Tarsis Azevedo] [wallpaper] Programadores, eis o seu mantra

Thursday, September 29th, 2011

382348655

feito pelo stefano zibell - postado aqui

Permalink

| Leave a comment  »

[Tarsis Azevedo] Aprenda Vim Progressivamente

Saturday, September 17th, 2011

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.

Nivel 1 - Sobreviva

  1. insta-le o vim
  2. abra o vim
  3. NÃO FAÇA NADA! Leia

Em um editor de texto normal, escrever no teclado é o suficiente para escrever alguma coisa e ve-la na tela. Não dessa vez. Vim está no modo Normal. Vamos entrar no modo de Inserção. Digite a letra i.

Agora voce se sente um pouco melhor. Voce pode digitar textos como um editor de texto normal. Para voltar para o modo normal, tecle ESC.

Voce sabe trocar entre o modo Normal e de Inserção. E agora a lista de comandos que voce pode usar no modo Normal para sobreviver:

  • i - modo de Inserção. Tecle ESC para voltar ao modo Normal.
  • x - para deletar o caracter em baixo do cursor.
  • :wq - Salvar e Sair (:w para salvar, :q para sair).
  • dd - deletar e copiar a linha atual.
  • p - colar.

Recomendado:

  • hjkl (altamente recomendado, mas nao obrigatorio) - movimentos basicos do cursor (←↓↑→). Dica: j é a seta para baixo.
  • :help <comando> - mostra o help do <comando>, voce pode começar a usar o :help sem nada mais.

Somenten 5 comandos. Isso é muito pouco para começar. Uma vez que esses comandos começarem a sair naturalmente (pode ser no final do dia), voce pode ir para o nivel 2.

Mas antes apenas uma observação no modo Normal. Em editores normais, para copiar voce deve usar a tecla Ctrl (Ctrl + c geralmente). Na verdade, quando voce pressiona o Ctrl, é como se todas as funcionalidades das teclas mudassem. Com vim no modo Normal, é como se seu Ctrl sempre estivesse pressionado.

Uma ultima observação sobre notações:

  • ao invés de escrever Ctrl-V, vamos escrever <C-V>
  • comandos começam com : e terminam com <enter>. Por exemplo, quando eu escrever :q isso significa :q<enter>

Nivel 2 - Sinta-se confortavel

Voce sabe os comandos para sobreviver. Agora é hora de aprender mais alguns comandos. Eu sugiro:

  1. Variações do modo de Inserção:
  • a - insere depois do cursor
  • o - insere uma nova linha depois da linha corrente
  • O - insere uma nova linha antes da linha corrente
  • cw - substitui do cursor até o final da palavra
  1. Movimentos Basicos:
  • 0 - vai para o inicio da linha
  • ^ - vai para o primeiro caracter nao-branco da linha
  • $ - vai para o final da linha
  • g_ - vai para o ultimo caracater nao-branco da linha
  • /padrao - procura por padrao
  1. Copiar/Colar
  • P - cola antes do cursor, relembre que p é para colar depois da posição corrente.
  • yy - copia a linha corrente, mais facil que o ddP
  1. Desfazer/Refazer:
  • u - desfazer
  • <C-r> (**Ctrl-r**) - refazer
  1. Carregar/Salvar/Sair/Mudar Arquivo (buffer):
  • :e <caminho/para/arquivo> - abrir
  • :w - salvar
  • :saveas <caminho/para/arquivo> - salvar em <caminho/para/arquivo/>
  • :x, ZZ ou :wq - salvar e sair ( :x  somente salva se necessario)
  • :q! - sair sem salvar, tambem :qa! até mesmo se houver algum buffer modificado escondido
  • :bn (resp. :bp) - mostra o proximo (resp. anterior) arquivo (buffer)

Separe algum tempo para aprender esses comandos. Uma vez aprendido, voce deve estar apto para fazer tudo que voce faz em qualquer outro editor. Mas até agora, isso é um pouco estranho. Mas siga-me até o proximo nivel e voce verá porque.

Nivel 3 - Melhor. Mais Forte. Mais Rapido.

Parabens por chegar tao longe! Nós podemos começar a parte interessante. No nivel 3, nós iremos falar somente sobre comandos que são compativeis com o vi antigo.

Melhor

Vamos ver como o vim faz para te ajudar a repetir um comando:

  1. . (ponto) - irá repetir o ultimo comando
  2. N<comando> - irá repetir o comando N vezes.

Alguns exemplos, abre um arquivo e digite:

  • 2dd - irá deletar 2 linhas
  • 3p - irá colar o texto 3 vezes
  • 100idesu ESC - irá escrever “desu” 100 vezes
  • . (ponto) - irá repetir o ultimo comando, escrevendo mais 100 vezes “desu”
  • 3. - irá escrever 3 “desu” (e não 300, muito inteligente)

Mais forte

Saber como se mover de modo eficiente no vim é muito importante. Não pule esta seção.

  1. NG - vai para a linha N
  2. gg - atalho para 1G, vai para o começo do arquivo
  3. G - vai para a ultima linha
  4. Andando em palavras:
  • w - vai para o começo da palavra seguinte
  • e - vai para o final da palavra seguinte

Por padrao, uma palavra é composta de letras e caracteres underscore ( _ ). Vamos chamar de uma PALAVRA um grupo de letras separadas por caracteres em branco. Se voce quiser considerar PALAVRA, entao use letras maiusculas:

  • W - vai para o inicio da PALAVRA seguinte
  • E - vai para o final da PALAVRA seguinte 
  • Word_moves

 

Agora vamos falar sobre movimentos mais eficientes:

  • % - Vai para o correspondente (, [, {
  • * (resp #) - vai para a proxima (resp anterior) ocorrencia da palavra sob o cursor.

Acredite em mim, esses tres comandos são ouro.

Mais rapido

Lembra sobre a importancia dos movimentos no vim? Aqui está a razão. Muitos comandos podem ser usados seguindo um formato geral:

<posição de inicio><comando><posição final>

Por exemplo: 0y$ significa:

  • 0 - vai para o começo dessa linha
  • y - copie daqui
  • $ - até o final desta linha

Nós tambem podemos fazer coisas como ye, copie daqui até o final da palavra. Tambem podemos fazer y2/foo copie até a segunda ocorrencia de "foo".

Mas se foi possivel com y (copiar), é tambem possivel com d (deletar), v (seleção visual), gU (maiuscula), gu (minuscula), etc...

Nivel 4 - Super poderes com vim

Com todos os comandos anteriores voce ja deve se sentir confortavel com o vim. Mas agora, aqui estao as features realmente maneiras. Algumas dessas features foram a razão pra eu começar a usar o vim.

mover-se na linha corrente: 0^$g_fFtT,(virgula), ;

  • 0 - Vai para a coluna 0
  • ^ - Vai para o primeiro caracter da linha
  • $ - vai para a ultima coluna
  • g_ - Vai para o ultimo caracter da linha
  • fa - Vai para a proxima ocorrencia da letra a na linha. , (resp ;) irá para a ocorrencia anterior da busca (resp proxima).
  • t, - Vai para o caracter anterior a primeira ocorrencia de ,
  • 3fa - Vai procurar a terceira ocorrencia da letra a
  • F e T - Parecido com f e t, porem procura pra tras
  • Line_moves

Uma dica muito util é :dt" que irá remover tudo antes de ".

Seleção por zona <ação>a<objeto> ou <ação>i<objeto>

Esses comandos só podem ser usados depois de uma operação no modo Visual. Mas eles são muito poderosos.

<ação>a<objeto> ou <ação>i<objeto>

Onde ação pode ser qualquer ação, por exemplo, d (delete), y (copiar), v (selecionar no modo Visual). E um objeto pode ser: w uma palavra, Wuma PALAVRA(palavra extendida), s uma sentença e p um paragrafo. Mas tambem pode ser um caracter natural como "')}].

Digamos que o cursor esteja no primeiro o de (map (+) ("foo")).

  • vi" - irá selecionar foo.
  • va" - irá selecionar "foo".
  • vi) - irá selecionar "foo".
  • va) - irá selecionar ("foo").
  • v2i) - irá selecionar map (+) ("foo").
  • v2a) - irá selecionar (map (+) ("foo")).

Selecionas blocos retangulares <C-v>.

Blocos retangularss são muito uteis para comentar muitas linhas de código. Tipicamente: ^<C-v><C-d>I-- [ESC]

  • ^ - vai para o inicio da linha
  • <C-v> - inicia a seleção por blocos
  • <C-d> - move para baixo (como jjj or %, etc… )
  • I-- [ESC] - escreve — para comentar cada linha

Rectangular-blocks

Note que no Windows voce poderá ter que usar <C-q> ao inves de <C-v> se seu clipboard nao estiver vazio.

Completar: <C-n> e <C-p>.

No modo de Inserção, digite no inicio de uma palavra, e entao digite <C-p>, magicamente…

Completion

Macros: qa faça alguma coisa q@a@@

qa vai gravar suas açoes num registrador a. Entao @a irá refazer a macro salva no registrador a como se voce tivesse feito isso na mão. @@ é um atalho para refazer a ultima macro executada.

Exemplo

Numa linha que contem o numero 1, digite isso:

  • qaYp<C-a>q
    • qa - começa a gravar
    • Yp - duplica esta linha
    • <C-a> - incrementa um numero
    • q - para a gravaçao
  • @a - escreverá 2 abaixo do 1
  • @@ - escreverá 3 abaixo do 2

Agora faça 100@@ e criará uma lista de numeros até 103.

Macros

Seleção Visual: vV<C-v>

Vimos um exemplo com <C-v>. Há tambem v e V. Uma vez que a seleçao foi feita, voce pode:

  • J - juntar todas as linhas.
  • < (resp. >) - indentar para a esquerda (resp. para a direita).
  • = - auto indentação

Autoindent

Adicione alguma coisa no fim das linhas selecionadas:

  • <C-v>
  • vá para a linha desejada (jjj ou <C-d> ou /padrao ou % etc…)
  • $ vá para o fina da linha
  • A, escreva alguma coisa, [ESC]

Append-to-many-lines

Splits: :split e :vsplit.

Aqui estao os comandos principais, mas voce pode olhar mais em :help split.

  • :split - irá criar um split (:vsplit criará um split vertical).
  • <C-w><dir> - onde dir é qualquer um de hjkl para mudar de split.
  • <C-w>_ (resp. <C-w>|) - maximiza o tamanho do split (resp. split vertical).
  • <C-w>+ (resp. <C-w>-) - Aumenta (resp. diminui) o split.

Split

Conclusao

Aqui estao 90% dos comandos que eu uso todos os dias. Eu sugiro que voce aprenda nao mais que 1 ou 2 comandos por dia. Depois de duas ou tres semanas voce começará a sentir o poder do vim nas suas mãos.

Aprender Vim é mais uma questao de treinamento que de memorização. Felizmente vim vem com otimas ferramentas e uma execelente documentação. Rodevimtutor para voce se familiarizar com os comandos basicos. Alem disso voce deve ler atentamente está pagina: :help usr_02.txt.

Entao, voce aprenderá sobre !, folds
, registradores, os plugins e muitas outras features. Aprender vim é como se estivesse aprendendo piano e tudo ficará bem.

Fim do post

Agora que voce ja sabe vim, use-o da maneira correta. Esqueça seu mouse, Ctrl-c + Ctrl+v, use as features do vim, se forçe a usa-las, eu garanto que depois que voce se sentir confortavel, vai voar.

Qualquer duvida e/ou critica podem deixar nos comentarios.

Até a proxima

OBS: Post totalmente editado no VIM, usando markdown.

 

 

Permalink

| Leave a comment  »

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

Monday, July 4th, 2011

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!

 

Permalink

| Leave a comment  »

[Tarsis Azevedo] @andrewsmedina e sua mala de viagem pro #FISL

Tuesday, June 28th, 2011

Upload

via twitterrific

Permalink

| Leave a comment  »