Designix


Linux não é Windows – parte 5 de 7

Enviado em filosofia open source por Fabiane no Fevereiro 16, 2007

Depois de dias traduzindo o artigo “Linux is NOT Windows”, um amigo na comunidade diz que já existe uma versão em português dele. Como esta versão está sob uma licença Creative Commons, vou dar prosseguimento à série com a tradução desta versão, que está muito melhor que a minha.

Problema número 5: O mito do “amigável”

Esse é um grande mito. É um termo muito usado no mundo da informática “amigável”. Mas não é um bom termo.

O conceito básico é bom: Que o software seja feito com as necessidades do usuário em mente. Mas é sempre citado como um conceito único, o que não é.

Se você gasta sua vida toda processando arquivos texto, o software ideal para você será rápido e poderoso, permitindo que você produza muito trabalho com o mínimo de esforço. Atalhos simples de teclado e operação não dependente do mouse será de importância vital.

Mas se você muito raramente editar arquivos texto, e somente desejar escrever uma carta ocasional, a última coisa que você vai querer é se esforçar para aprender atalhos de teclado. Menus bem organizados e ícones claros nas Barras de Ferramentas serão seu ideal.

Claramente, o software projetado para as necessidades do primeiro usuário não será adequado para o segundo e vice-versa. Então, como pode algum software ser chamado de “amigável“, se todos nós temos diferentes necessidades?

A resposta simples é: Amigável é um nome equivocado, e que faz uma situação complexa parecer simples.

O que “amigável” realmente significa? Bem, no contexto no qual é usado software amigável significa “Software que pode ser usado com um nível razoável de competência por um usuário sem prévia experiência no software.” Isso tem o efeito indesejado de fazer com que aquela interface ‘ruim mas familiar’ cair na categoria de “amigável“.

Sub-problema número 5a: Familiar é amigável

Então é isto que temos no Editor de Textos mais amigável, você pode cortar e colar pelo uso de Ctrl-X e Ctrl-V. Totalmente não intuitivo, mas todos estão acostumados com essas combinações, então eles contam como uma combinação “amigável“.

Quando alguém usa o vi e descobre que se usa o “d” para cortar e o “p” para colar não considera “amigável“: Não é o que estamos acostumados.

Isto é superior? Na verdade é.

Com o método Ctrl-X, como você corta uma palavra do documento em uso? (Sem usar o mouse!)

Do início da palavra, Ctrl-Shift-Seta Direita para selecionar a palavra.
Então Ctrl-X para cortar.

O método vi? dw apaga a palavra.

E se quisermos cortar cinco palavras em uma aplicação Ctrl-X?
Do início das palavras, Ctrl-Shift-Seta Direita
Ctrl-Shift-Seta Direita
Ctrl-Shift-Seta Direita
Ctrl-Shift-Seta Direita
Ctrl-Shift-Seta Direita
Ctrl-X

E com o vi?

d5w

O método vi é muito mais versátil e na verdade mais intuitivo: “X” e “V” não são óbvios ou memorizáveis para os comandos “Cortar” e “Colar“, enquanto “dw” para “delete a word” (apague uma palavra), e “p” para “put it back” (ponha-a de volta) é perfeitamente direto. Mas “X” e “V” é o que todos conhecem, então embora o vi seja claramente superior, não é familiar. Logo, é considerado não amigável. Ou, em outras bases, familiaridade puramente faz com que uma interface parecida com o Windows seja amigável. E como nós aprendemos no problema número 1, o Linux é necessariamente diferente do Windows. O Linux sempre parecerá ser menos “amigável” que o Windows.

Para evitar o problema número 5a, tudo que realmente você tem que fazer é tentar se lembrar que “amigável” não significa “O que eu estou acostumado“: Tente fazer as coisas do seu jeito habitual, se não funcionar, tente trabalhar como um novato faria.

Sub-problema número 5b: Ineficiente é amigável

Isto é triste mas é um fato sem escapatória. Paradoxalmente, quanto mais afinco você tiver para usar uma funcionalidade de uma aplicação, mais amigável ela parecerá ser.

Isto é assim porque amigabilidade é adicionada a uma interface pelo uso de ‘chaves‘ simples e visíveis – quanto mais, melhor. Afinal de contas, se um novato for colocado em frente de um Processador de Textos WYSIWYG e lhe for pedido para tornar uma parte do texto em negrito, O que é mais provável:

* Ele pensará que “Ctrl-B” é o padrão usual;

* Ele procurará por dicas, e tentará clicar no menu “Editar” menu. Sem sucesso, ele tentará o próximo na coluna de menus: “Formatar“. O novo menu tem uma opção “Fonte“, o que parece ser promissor. E então a nossa opção “Negrito“. Sucesso!

Da próxima vez que você usar qualquer Processador de Textos, tente fazer todo o trabalho pelos menus: Sem usar teclas de atalho nem ícones das Barras de Ferramentas. Você se verá rastejando, pois todas as tarefas exigem uma quantidade de toques ou cliques do mouse.

Fazer software “amigável” desta forma é como colocar rodinhas na bicicleta: Ela não te deixa cair e te permite andar imediatamente, sem exigir nenhuma habilidade ou experiência. É perfeito para um iniciante. Mas ninguém pensa que todas as bicicletas devam ser equipadas com rodinhas: se você tiver uma bicicleta destas atualmente, posso apostar que a primeira coisa que você fará será removê-las por serem um estorvo desnecessário: Uma vez que você aprendeu a andar de bicicleta, as rodinhas são desnecessárias.

E da mesma forma, uma grande parte do Software para Linux é feita sem “rodinhas” – é feita para usuários que já tenham algumas habilidades. Além do mais, ninguém é um novato permanente: a ignorância tem vida curta e o conhecimento é para sempre. Então, o software é feito tendo em mente a maioria.

Isso pode parecer uma desculpa: Além do mais, o MS Word tem todos os menus amigáveis e todos os botões nas Barras de Ferramentas e tem teclas de atalho… O melhor de todos os mundos, certo? Amigável e eficiente.

Entretanto, isso precisa ser posto em perspectiva: Primeiro, as praticidades: tendo menus e Barras de Ferramentas e atalhos e tudo mais significa uma grande quantidade de código e não são como os desenvolvedores de Linux são pagos pelo tempo dispendido. Segundo, ainda assim não leva realmente em conta os usuários habilidosos: Pouquíssimos profissionais usam o MS Word. Encontre um programador que use MS Word? Compare com aqueles que usam emacs & vi.

Porque é assim? Primeiro, porque algumas condutas “amigáveis” excluem conduta eficiente: Veja o exemplo do “Cortar & Colar” acima. E segundo, porque muito da funcionalidade do Word está amarrada em menus que você tem que usar: Somente as funcionalidades mais comuns tem aqueles botões acessíveis na Barra de Ferramentas no topo. As funções menos usadas que também são vitais para usuários sérios não tem um acesso tão facilitado.

Algo a se ter em mente, entretanto, é que as “rodinhas” estão com freqüência disponíveis para o Linux: Elas podem não ser óbvias, mas freqüentemente estão disponíveis.

Pegue o mplayer. Você o usa para exibir um arquivo de vídeo digitando mplayer nome_do_arquivo em um terminal. Você avança e retrocede usando as teclas de setas e as teclas “PageUp” e “PageDown“. Isto não é excessivamente “amigável“. Entretanto, se ao invés você digitar gmplayer nome_do_arquivo você obterá uma interface gráfica com todos os botões amigáveis e familiares.

Para converter um CD para MP3 (ou Ogg): Usando a linha de comando, você precisa usar o cdparanoia para converter os arquivos para o disco. Então você precisa de um codificador… É uma luta, mesmo que você saiba exatamente como usar os pacotes. Então, instale algo como o Grip. É um “front-end” gráfico fácil de usar que usa o cdparanoia e os codificadores atrás dos bastidores para tornar realmente fácil “ripar” CDs, e tem ainda suporte CDDB para nomear os arquivos automaticamente para você.

O mesmo acontece para “ripar” DVDs: O número de opções para passar para o transcode é um pequeno pesadelo. Mas usando o dvd::rip para conversar com o transcode por você faz tudo ficar muito simples, processos baseados em interface gráfica que qualquer um pode fazer.

Então, para evitar o problema número 5b: Lembre que as “rodinhas” tendem a ser um extra no Linux, ao invés de serem automaticamente fornecidas com o produto principal. E algumas vezes as “rodinhas” simplesmente não podem ser partes do projeto.

Introdução ao screen

Enviado em software por Caio César no Fevereiro 3, 2007

O screen é uma espécie de “gerenciador de janelas” para o modo texto. Não… ele não manipula janelas, mas sim diversos programas rodando em diferentes quadros em um só terminal. Parece confuso? Nem tanto. Imagine algo como vários terminais em um, e que cada um seja uma janela, ou melhor, que cada um seja um quadro. O screen também permite dividir a tela em dois quadros (algo que o utilitário splitvt também) ou mais de dois.

Mas o que torna o screen especial são os recursos valiosos para quem trabalha com redes ou troca muito de terminal ou estação, quando eu digo redes, leia-se principalmente ssh; rodar mais de um programa quando em uma sessão ssh não é tão fácil, e nem sempre você quer abrir mais uma conexão, pois seria legal se você tivesse os aplicativos naquele mesmo terminal.

Abaixo, é possível observar o screen rodando dentro de um terminal no IceWM (gerenciador de janelas leve, mas com diversas comodidades), no meu Pentium 100, velhinho mas fiél :-) .

Tela inicial do screen

Ao abrir o screen é possível que você veja uma tela de copyright/boas-vindas, como é possível observar nela, basta teclar ENTER ou SPACEBAR para começar a “brincar” com o screen.

O screen, assim como os editores EMACS e JED, utiliza uma combinação de teclas seguida de mais outra combinação ou outra tecla sozinha para executar algum comando. A tecla que lhe permite passar comandos para o screen é, por default, Control+A (mostrada como ^A na ajuda do programa, em suas páginas de manual e daqui em diante nesse artigo também).

Após abrir o screen, você terá um shell, o mesmo tipo de shell que você usou-se para se logar. No meu caso é tcsh, mas no seu, deve ser o bash. Até o momento, nada parece diferente. Mas isso é só impressão ;-) .

Para chamar a ajuda, tecle ^A ? (tecle Control+A e depois de soltar as duas teclas tecle ponto de interrogação – ?). Observe a imagem abaixo, para mudar de página, você usará SPACEBAR e para sair da ajuda, você usará a tecla ENTER.

Ajuda do screen

Para rodar um programa em outra janela, digite no shell aberto pelo screen:

[caio@porta-copos /]> screen nome-do-programa

Por exemplo:

[caio@porta-copos /]> screen lynx

Outra janela deve se abrir com o navegador web modo texto Lynx (mas nada impede você de usar outra aplicação, especialmente uma que você julgue mais fácil de usar). Agora, vejamos os comandos para alternar entre as duas janelas:

  • Alternar rápidamente para a próxima janela: ^A
    SPACEBAR
  • Alternar para a próxima janela: ^A n ou ^A^N
    ou ^A^@
  • Alternar para a janela anterior: ^A p ou ^A^P
    ou ^A^?
  • Visualizar a lista das janelas abertas: ^A “ (depois
    selecione a janela desejada com as teclas de seta e confirme com ENTER)
  • Vizualizar as janelas abertas na barra de status: ^A^W ou ^A w
  • Alternar rapidamente para alguma janela cujo o número você viu no comando anterior: ^A número-da-janela
  • Ir e voltar entre uma janela e outra (entre duas janelas, a de agora e a de antes): ^A^A

Se desejar abrir um novo shell, você não vai precisar digitar “screen nome-do-shell”, em algum shell que já esteja aberto, simplemente tecle: ^A^C ou ^A c.

Se você quiser ver data e a hora no meio de alguma tarefa que esteja realizando, tecle: ^A^T ou ^A t.

Se você quiser destruir uma janela (matar), utilize ^A K.

Agora, vamos fazer algo que eu descrevi lá no início do arquivo. Dividir o quadro em mais de um. Para dividir a tela em duas, tecle: ^A S

Exemplo do uso do comando “split”

Agora, lhe ensinarei a trabalhar com a tela dividida, veja as combinações de tecla:

Alternar entre os quadros: ^A TAB

Ainda no assunto anterior, é inevitável que uma hora ou outra você queira alterar o tamanho de um dos quadros, para isso use: ^A : depois, digite o comando resize seguido de um dos parâmetros abaixo e tecle ENTER.

  • +N (onde N é o número de linhas em que o quadro ativo deve aumentar)
  • -N (onde N é o número de linhas em que o quadro ativo deve diminuir)
  • = (para deixar todos os quadros com o mesmo tamanho

E por último, vou ensinar você a bloquear o terminal em uso, para isso, use ^A^X ou ^A x e forneça uma senha (confirmando-a duas vezes). Quando quiser desbloquear, digite a senha e confirme com ENTER. Lembrando que essa senha não precisa ser a mesma da sua conta de usuário.

O screen sairá automaticamente quando não houver mais nenhum quadro aberto.

Espero que tenham gostado desse artigo, quem sabe numa próxima eu não ensino sobre as funções de attach/detach do screen e sobre copiar e colar?

Até a próxima!