Archive for January, 2008

Tirinhas para Geeks

Haha, Adorei esse site

http://www.tirasdoedi.com.br/

Acho que vou criar uma conta no Twitter para mim.

Instalação de programas no Linux

Para quem está começando a usar Linux, a primeira dificuldade encontrada é justamente a instalação de programas.

Quem vem do sistema do mau tem o costume de ir lá no superdownloads escolher algum programinha, faz o download, dá um clique duplo no arquivo baixado e começa a instalação NNF (Next, Next, Finish) e pronto, o aplicativo está pronto para usar.

Quando esse tipo de usuário vem para o mundo linux ele se depara com uma série de nomes estranhos como: pacotes, repositórios, até o nome “Gerenciador de pacotes” assusta, não é? Sem falar que apenas o root que pode instalar programas e ainda tem aquela tela preta (o terminal) que todo mundo usa e ele acaba falando: Linux é sistema para programador!

Permitam-me fazer uma citação:

“[..] o mundo moderno, a despeito de aparentemente confuso, complicado e ostensivamente enganoso, não é impenetrável, não é indecifrável - desde que seja feita as perguntas certas - é ainda mais intrigante do que imaginamos. Basta adotar uma nova maneira de vê-lo.”, Levitt (2005).

Esses usuários novos não sabem a diferença entre difícil e diferente. Não é porque digitar um comando no terminal é diferente que isso passa a ser difícil não é? Como Levitt falou, precisamos adotar uma nova maneira de ver o mundo e ver o que essas ferramentas têm a oferecer a você.

Vamos comparar o processo de instalação entre o sistema do mau e o Linux.

No sistema do mau, você vai caçar na internet (com sorte vai achar) o programa desejado. Vai dar inicio o processo de download e esperar algum tempo (dependendo do tamanho do programa). Vai procurar a pasta onde o seu programa foi salvo após o download e vai dar inicio ao processo de instalação. Sendo bastante generoso você vai passar por no mínimo quatro telas com informações que a maioria dos usuários comuns não vão entender (isso é, se ele tentar ler :P). Com um pouco de sorte, esse programa vai gerar um atalho na área de trabalho ou você vai ter que procurar numa listagem não classificada de programas lá no menu iniciar. E vai ser feliz com seu programa.

No Mandriva Linux, você pode instalar o programa a partir do terminal. (Ah, não!! Lá vem você com o terminal…) Abra o terminal, você vai entrar com o usuário administrador do sistema e digitar: urpmi nome_do_programa. Pronto! O Mandriva linux vai caçar o programa desejado nos repositórios da internet, vai fazer o download, vai instalar e vai jogar num menu organizado em sua área de trabalho.

E ai, o que é mais difícil? Lógico que existe uma série de fatores que inviabilizam a aceitação do usuário final ao sistema Linux como compatibilidade de softwares, jogos, etc… Mas com certeza o maior fator é sim o preconceito do usuário.

Pense nisso ;-)

Atendendo a pedidos: guiavim.pdf

Primeiramente gostaria de agradecer os elogios sobre a série de artigos sobre o VIM. Atendendo a pedidos da galera, peguei todos os comandos que mostrei nos três posts e coloquei em apenas uma página

A propósito, tenho que concordar com o Aurélio, é muito chato arrumar essas tabelinhas :P Clique abaixo e pegue o seu:

Procurando um Ambiente de desenvolvimento completo? Use o VIM! (parte 3)

Beleza! Vamos continuar falando do nosso querido e amado editor: vim.

Quando o assunto é flexibilidade de janelas, abas, o vim oferece mais um recurso interessante: o split. Ele permite a divisão do mesmo arquivo na mesma janela. Assim você pode editar várias partes do mesmo arquivo em pontos diferentes. O comando é :split.

É possível usar a visualização vertical aqui também com o comando :vsplit.

Para alternar de uma janela para outra use o comando Ctrl+ww

Outra dica valiosíssima que vai deixar muito desenvolvedor de queixo caído é a tecla de atalho Ctrl+Shift+p que permite autocompletar código.

O truque dessa tecla de atalho está na hora que você importa as bibliotecas. Além das propriedades e métodos, ele também completa nome de variáveis e nome de funções. Eu testei esses recursos com as linguagens PHP, Python e C.

Interação com terminal

Quem está programando, precisa testar a aplicação. E não é nada legal ficar fechando o vim para usar o gcc ou o interpretador do python no terminal, não é? Com o comando :shell você abre um terminal dentro do vim. Assim você pode testar o que precisar e para sair é só fechar com o comando exit.

Quando o assunto é interação com o shell ainda dá para jogar a saída de um comando do terminal dentro do vim com o comando :r! <comando> . Exemplo: :r! cat /etc/passwd . Vai aparecer algo assim:

Nossa última tabelinha:

Comando: Descrição:
:split Divide o mesmo arquivo na mesma janela (exibição horizontal)
:vsplit Divide o mesmo arquivo na mesma janela (exibição vertical)
Ctrl+ww Alterna entre as janelas
Ctrl+Shift+p Auto-completar o código
:shell Exibe um terminal dentro do VIM;
:r! <comando> Executa um comando e joga a saida dele dentro do editor

Concluindo

O vim é foda um editor de texto muito poderoso. Se você aprender a usá-lo com certeza ele vai deixar muitos editores modo gráfico para trás. Existe a documentação interna do próprio vim, que tem tudo que você precisa saber sobre ele, para acessá-la digite o comando :help.

Foquei esse artigo em recursos que podem ajudar o desenvolvedor. Se vocês conhecem outras funcionalidades ou comandos interessantes, deixem aqui no comentário desse post.

Até a próxima ;-)

Procurando um Ambiente de desenvolvimento completo? Use o VIM! (parte 2)

Hoje vamos brincar com janelinhas e abas.

Imagine a seguinte situação: você tem um arquivo CSS e um arquivo (X)HTML. Você está montando aquele layout em CSS e precisa ficar mexendo com os dois arquivos ao mesmo tempo. O Vim deixa você trabalhar com mais de um arquivo na mesma tela com o comando :new. Veja como fica:

Para alternar as janelas use o comando Ctrl+WW. Para abrir um arquivo na nova janela, use o comando :open.

Você pode não gostar da visualização horizontal das janelas. É possível abrir um novo arquivo numa coluna vertical com o comando :vnew . Para alternar e abrir arquivos, a regra é a mesma:

Dá para trabalhar com várias “novas janelas” mas quanto mais janela, pior fica a visualização delas. Para resolver esse problema, é possível trabalhar com abas. Não, não estamos falando do firefox :P Dá para trabalhar com abas no vim também com o comando :tabnew. Isso mata o problema da visualização. Para navegar entre as abas use o comando :tabnext ou Ctrl+(PageUp | PageDown). Olhe como fica:

Voltando as tabelinhas, abaixo segue uma com os comandos feitos nesse post, com alguns comandos que não citei acima:

Comando: Descrição:
:new Abre outro documento na mesma tela, (exibição horizontal).
:vnew Abre outro documento na mesma tela, (exibição vertical).
:open Abre um documento na (janela | aba) corrente.
:close Fecha um documento na (janela | aba) corrente.
:tabnew Abre uma nova aba
:tabnext ou Ctrl + (PgUp | pgDown) Exibe a próxima aba
:tabclose Fecha a aba corrente
:tabfirst Exibe a primeira aba
:tablast Exibe a ultima aba

Legal né? Ainda tem mais coisa que vou colocar no terceiro (e talvez último) post dessa série.

Procurando um Ambiente de desenvolvimento completo? Use o VIM!

Você está procurando um ambiente de desenvolvimento completo, sem frescura, use o VIM! É sério… O VIM é um editor muito poderoso!

Vou dar algumas dicas aqui que me ajudam bastante no meu dia-a-dia:

Inicialmente vou colocar uma tabelinha dos comandos mais comuns que provavelmente qualquer usuário vai usar:

Comando Descrição
<ESC> Modo de Comando
<i> ou <a> Modo de Edição
:w Salvar
:q Sair
:wq ou : x Sair e Salvar
:q! Sair sem salvar
:w! Salvar, substituindo se já existir!
v Modo Visual, permite selecionar o texto da onde o cursor parou.
y Copiar texto
p Colar texto
c Recortar texto
d Excluir texto

Certo, já sabemos copiar, colar, recortar… (no final desse post quero ver todo falando <ESC> + y, <ESC>+p em vez de ctrl+c e ctrl+v :P)

Agora, mais uma tabelinha que pode facilitar a vida de vocês:

Comando Descrição
dd Apaga a linha onde o cursor está localizado.
dNd Apaga N linhas apartir do cursos, onde N é o número de linhas.

A mesma sintaxe funciona para recortar e copiar, vou colocar as tabelinhas só para constar:

Comando Descrição
yy Copia a linha onde o cursor está localizado.
yNy copia N linhas a partir do cursos, onde N é o número de linhas.
cc Recorta a linha onde o cursor está localizado.
cNc Recorta N linhas a partir do cursos, onde N é o número de linhas.

O vim deixa colorida das palavras reservadas das linguagens de programação. Ele associa a extensão do arquivo para começar a marcação. Caso não apareça a cor use o comando:

Comando Descrição
:syntax (on | off) Deixa as palavras reservadas coloridas para melhor identificação do código.

Mais uma tabelinha recheada de comandos:

Comando Descrição
%s/Ubuntu/Mandriva Substitui no texto todas as ocorrencias da string “Ubuntu” por “Mandriva”
/string perdida Localiza no texto strings, precionando a letra n você achará novas ocorrencias da string.
:set number Coloca o número de linhas do texto.

Essa função de localizar strings é muito útil para localizar funções numa biblioteca. ;-)

Vou separar em dois ou três posts tudo que eu quero escrever sobre o Vim. ;-) Por hoje é só. Qualquer dúvida, poste nos comentários…

Dica: urpmq

A duplinha urpmq + grep pode ser uma mão na roda quando você não sabe o nome de um pacote. As vezes a saida do comando urpmq é muito extensa e não é legal ficar procurando o pacote que você deseja.

Exemplo: Você quer saber o nome do pacote que contem o módulo que permite que o apache converce o PHP?

$ urpmq -y apache | grep php

A saida desse comando vai ser algo assim:

[edgar@localhost ~]$ urpmq -y apache | grep php
apache-mod_php
apache-mod_suphp
apache-mod_suphp4
apache-ssl-mod_php

Olhá lá nosso pacote :-)

Programando em Python…

Como prometi nesse post, uma das metas desse ano é aprender Python.

Quem já acompanha esse blog a algum tempo sabe que eu já estudei um pouco sobre a linguagem.

Voltei aos estudos agora no começo desse ano, e voltei com força total… ainda mais agora que tem um projeto onde a linguagem vai ser muito bem vinda :-)

Bom, para quem não sabe programar e quer começar com python eu NÃO RECOMENDO o Livro Mergulhando no Python.

capa livro mergulhando no python

Porque? Esse livro é muito bom, mas para quem já sabe programar em outra linguagem e quer conhecer o Python. Se você não tem nenhuma idéia do que é programar, tente aprender lógica de programação primeiro. Recomendo também estudar Orientação a Objeto, são pre requisitos para estudar essa linguagem.

Um ótimo material para você começar a estudar a linguagem é o Python na prática, feito pela galera da Async.

Se você já estudou o suficiente as estruturas básicas da linguagem (nessa altura do campeonato você já estará apaixonado, hehe) e quer fazer algumas telas gráficas… Você pode estudar um pouco sobre PyGTK. Experimente o Glade, é fantástico como ele trabalha :-)

Dois textos que eu recomendo são: Mantendo a sanidade com o Glade e tem também o artigo sobre libglade do Wilson Freitas, bem completo.

Dúvidas? Vocês podem tirar com a galera do #python-br (rede Freenode). Tem também o site da comunidade que está recheado de documentação

Espero que esses links ajude alguem…

(Quem sabe eu não continuo com a série “Torturando Python”?)

Gerenciando arquivos em uma janela só

Você é usuário do Mandriva e usa o Gnome como ambiente gráfico? Está cansado de toda vez que clica numa pasta abrir uma janela diferente? Seus problemas acabaram.

Para resolver esse problema, clique em Sistema > Preferenciais > Gerenciamento de Arquivo > Aba “Comportamento” > Marque a opção “Sempre abrir em janela de navegador”. Pronto!

Gnome, simples assim.

;-)

Ufa, 2008!

O ano de 2007 foi muito bom. Fiz um balanço dos erros cometidos em 2007 e a palavra chave do ano de 2008 vai ser: Produtividade. As primeiras medidas já foram tomadas: exclui meu Orkut. :-P

Espero chegar no final de 2008 com essas metas concluidas:

  • Aprender python: Comecei a estudar ano passado. Mas parei!
  • Tirar uma Certificação da Mandriva: Quero me certificar como instrutor dos treinamentos da Mandriva :-)
  • Montar meu negócio: Todo profissional pensa nisso um dia.

Quero ser mais produtivo e menos nerd e para isso pretendo:

  • Ler mais…: Continuo pecando nesse aspécto! Preciso ler sobre outros assuntos que não seja informática :P
  • Praticar algum esporte: É dificil, quem trabalha e faz faculdade sabe o que estou falando. Mas será que isso não é desculpa? :P Se eu quisesse realmente praticar algum esporte eu arrumaria um tempo. Afinal, não faço nada das 00:00 às 06:00. ;-)
  • Cuidar mais da minha saúde: É, estou bastante acima do peso. Não adianta perder peso, tudo que é perdido, existe a possibilidade de ser achado. Preciso eliminar (Hehe!). Quem sabe não começo uma reeducação alimentar depois do dia 5? Porque depois do dia 5? Vocês não fazem idéia quanta coisa gostosa sobrou do ano novo! Haha.

Para meia dúzia de leitores que acompanham esse humilde blog, desejo que todas suas metas sejam alcançadas em 2008.

Muito sucesso a todos!