Tag: linux

Configurações do OS: prosa, verso e taquigrafia.

18 de fevereiro de 2010 às 14:15 | Lucas Petes | , , , , ,

Uma das grandes máximas do design de interfaces é aquela de que quanto mais invisível, mais eficaz ela é. Dispensar manuais e treinamentos também é um outro bom indício de uma interface bem construída. No caso de um sistema operacional, onde você tem usuários com diferentes graus de familiariadade com computadores e o utilizam também para finalidades tão distintas, parece muito complicado construir uma interface tão abrangente. Vou tentar comentar neste post as diferenças no projeto de interface entre os principais sistemas operacionais e gerenciadores de janelas.

Wizards

Wizard - Windows XP

O Windows carrega no colo o usuário iniciante na maioria das situações. A cada novo ajuste, uma sequência de passos dentro de um wizard vão explicando o que o usuário deve fazer. São parágrafos e mais parágrafos, com orientações e possíveis caminhos. Parece ótimo: deixa o usuário mais seguro, facilita o tratamento de erros, não desfavorece o usuário médio – que ignora os textos – etc. Por outro lado, dificulta a tradução de textos e mais textos em todas as línguas a cada versão. Para o usuário avançado, que talvez precise executar a mesma tarefa num dia, é mais que desconfortavel. Tentar explicar em prosa ou limitar configurações que podem ser usadas para inúmeros fins também não é uma saída das mais inteligentes. Qual a diferença entre a rede doméstica e a rede de pequena empresa? Qual a diferença entre a instalação rápida, completa ou personalizada? Qual a necessidade de um texto enorme sobre o que está sendo feito seguido de um campo “Máscara de Sub-Rede” logo abaixo? Isto realmente é familiar ao usuário? Caberia um wizard em um caso como esse?

Painel de Controle

Usei o Windows desde a versão 3.1. Desde aquele tempo, havia um painel de controle para definições gerais do sistema. Fontes, dispositivos, tela, etc. Alguns poucos ícones. De lá pra cá, o sistema foi se tornando mais complexo. O número funcionalidades do sistema operacional cresceu, surgiram diversos tipos de dispositivos e possibilidades de trabalho. Com o sistema, o número de ícones no Painel de Controle se multiplicou: o que não é exatamente muito bom. Janelas de configuração já existentes em outras versões do Windows foram mantidas e funções afins foram sendo postas em itens separados. Chegamos hoje ao cúmulo de ter meia dúzia de itens relacionados a rede, além de uma barra mutante do lado esquerdo. Para onde ir?

Tentando simplificar e reduzir o caos, desde o Windows XP (ou seria o 2000?) há uma versão resumida (com os itens mais comuns) e uma ‘avançada’ do Painel de Controle. Esta é realmente a melhor saída?

Em verso

A Apple é uma empresa conhecida por tomar decisões pelos seus usuários, muitas vezes radicais. Provavelmente “Macintosh sem possibilidade de upgrade”, “retirada do drive de disquete”, “somente porta USB”, “retirada do drive de dvd”, “sem 3G” e “monotarefa” façam algum sentido pra você. A verdade é que o Mac OS, principalmente a partir da versão 10, também é um sistema extremamente opinativo, objetivo, direto.

Windows 3.1

Windows 3.1

Windows 7

Windows 7

Mac OS X

Mac OS X


Dentro do mesmo ambiente há telas e configurações comuns a usuários iniciantes e avançados. Seu uso é confortável para ambas as personas. Isto se dá por conta das telas enxutas e organizadas, suficientemente didáticas e bem suportadas por tópicos de ajuda. Manter uma tela única e mutante para todos os itens do painel de controle também reduz consideravelmente a frustração caso o usuário se engane e abra um item que não contém o que ele procura (por exemplo, abrir ‘teclado’ ao invés de ‘idiomas/texto’ para trocar o layout de teclado). É simples voltar e usar outro item. Exceto em algumas poucas situações, não há ‘modo Avançado’ nas configurações normais. Itens mais específicos e que são procurados somente por usuários avançados estão fora das preferências do sistema, na forma de aplicativos da pasta Utilitários.

O Terminal

Taquigrafia ou estenografia (do grego taqui = rápido e grafia = escrita) é um termo geral que define todo método abreviado ou simbólico de escrita, com o objetivo de melhorar a velocidade da escrita ou a brevidade, em comparação a um método padrão de escrita. Fonte: Wikipedia

A comparação com a taquigrafia ou mesmo com LIBRAS é apenas uma brincadeira, mas não há nada mais eficiente, preciso e rápido para um usuário avançado do que o terminal: nenhuma interface ultra revolucionária ou esquema de janelas existente. Difícil competir com um ifconfig na hora de configurar uma rede, meia dúzia de arquivos de texto para configurar usuários, grupos e permissões e alguns scripts para algumas tarefas rotineiras. A distância entre pensamento e a execução é mínima. A linguagem e a dispersão são reduzidas ao máximo, enquanto o foco é total. A vantagem ainda é maior quando a necessidade é de executar tarefas repetidas ou estar no controle de várias máquinas ao mesmo tempo.

E então? Para tarefas muito especificas e avançadas uma interface não serve pra nada? Ela é apenas uma muleta for the rest of us? É quase uma pegadinha: O esquema WIMP talvez não seja a melhor maneira de se resolver a interface de determinados tipos de tarefa. Na verdade, talvez não seja a melhor maneira de resolver interface nenhuma – só não teriam inventado nada melhor ou nada que tivesse adoção por parte dos grandes players. Um exemplo semelhante é o teclado QWERTY vs. DVORAK. O terminal, por sua vez, é um tipo de interface, com todos os seus méritos, defeitos e especificidades.

$ love
-sh: love: not found
$ happiness
-sh: happiness: not found
$ peace
-sh: peace: not found
$ kill
-sh: you need to specify whom to kill
Comentários desativados

Histórico da linha de comando

21 de abril de 2008 às 15:27 | Carlos Júnior | ,

Seguindo o post do Luke Franci:

$ history 1000 | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
110 vi
65 rake
43 gcc
40 ls
40 cd
24 rm
24 ./mc
18 thin
18 svn
15 su

Faça o teste e poste nos comentários ou em seu blog!

Livres das plataformas

26 de novembro de 2007 às 14:54 | Lucas Petes | , , , , , , , , , , ,

Não, o título não se refere às sandálias femininas. Estamos falando de uma inclinação do mercado para o fim das aplicações desenvolvidas para uma única plataforma, seja ela Windows, Linux ou o PS3 que você vai comprar no (próximo) Natal. Estamos falando do desprendimento dos softwares e dos seus produtores de certas parcerias um dia lucrativas, mas que hoje só fazem reduzir o mercado de atuação da empresa – inutilmente.

Se um dia foi ‘vantajoso’ desenvolver sites e sistemas que rodassem somente no IE, está claro que hoje não é mais. O Firefox engoliu parte do seu share no Windows, o Safari no Mac cresceu e apareceu e o Opera é lider pra mobiles (cada vez mais usados para navegação na web convencional. esqueça WAP. Ainda não vi também muito sentindo no .mobi*) e não-PCs – e diga-se de passagem que ele é o browser principal do Michel. Não era uma questão de ‘adivinhar’ que o mercado se comportaria dessa maneira. Esse sempre foi um fator que deveria ter sido considerado: não produzir material somente para o grande player do momento, ainda mais na existência de bons padrões.

Se a utilização do Linux vem crescendo tanto e os Macs têm vendido como nunca, por que fazer um software por exemplo, de ‘edição de imagens’, só para Windows (pior ainda se for utilizando uma ferramenta proprietária só para Windows)? Talvez o produto tenha mais chances de sucesso em outro OS pela falta de bons concorrentes, pelo perfil do usuário ou qualquer que seja o motivo, e você nunca descobrirá. É muito mais fácil ter o reconhecimento dos usuários do Linux que é carente de softwares gráficos por um bom software produzido, do que dos usuários Windows. As ferramentas estão aí. Basta usar.

Já nos consoles, a história é um pouco diferente. Cada plataforma tem suas peculiaridades e especificidades. Poder diferente de hardware, outros controles, outras interações. A EA produz hoje jogos para 14 plataformas diferentes e sinaliza que o ideal seria algo como uma set-top box, onde os jogos seriam baixados pela internet, em uma plataforma única. O resultado? Jogos mais baratos, aumento no número de títulos, maior concorrência entre as produtoras, menos dinheiro gasto somente para portar um mesmo jogo entre várias plataformas, etc. Todos ganham.(1)

A briga das plataformas para o mercado de dispositivos móveis é cada vez mais acirrada, principalmente entre os smartphones. Vale citar aqui o prêmio oferecido pelo Google como incentivo ao desenvolvimento de aplicativos para o Android, que é livre e fruto da Open Handset Alliance, que têm como membros empresas como a LG, Motorola, Intel, nVidia, HTC, Qualcomm e várias grandes operadoras.

* O .mobi foi bem usado recentemente para a venda de “automobile” :)

(1)Fonte: MeioBit

update: o KDE4 deve rodar em Linux, MacOS e Windows.

Comentários desativados

Solucionando problemas no CD/DVD-ROM

13 de novembro de 2007 às 12:20 | Michel Filipe | , , , ,

Hoje eu vou falar sobre dois problemas que aconteceram comigo e que poucos lugares mostrarão as soluções: lentidão na hora de ver um DVD e Acesso Negado ao CD/DVD-ROM no Konqueror. As soluções são extramentes simples – apesar da solução do “Acesso Negado” ser bem obscura – e fáceis de executar. Essas soluções foram executadas no Gentoo, mas isso não quer dizer que não possam ser executadas em outras distribuições.

Lentidão na hora de ver um DVD

Eu não sei se algumas distros vem com isso já configurado, mas o meu querido Gentoo não. A lentidão na hora de ver um DVD ocorre porque a CPU tem que pegar os dados da fonte (CD/DVD-ROM) e transferir para o destino. Durante essa cópia de dados, a CPU fica indisponível para outras tarefas gerando a lentidão ou “lag” (para os mais entendidos :) ).

Para solucionar o problema é preciso ter o programa hdparm por perto. Para instalar ele no seu Gentoo, basta executar:

emerge -av sys-apps/hdparm

Agora vem o principal, onde iremos ativar o DMA do CD/DVD-ROM. Ativar o DMA? O que é isso? Bem, vou explicar de forma simples usando um trecho retirado da Wikipedia:

O DMA é uma característica essencial dos computadores modernos. Permite que os dispositivos transfiram dados sem sobrecarregar a CPU. De outra maneira, a CPU teria que copiar todos os dados da fonte até o destino. Isto é tipicamente mais lento do que copiar blocos de dados dentro da memória, já que o acesso a dispositivo de I/O através de barramentos periféricos é mais lento que a RAM. Durante a cópia dos dados a CPU ficaria indisponível para outras tarefas.

Uma transferência por DMA essencialmente copia um bloco de memória de um dispositivo para outro. A CPU inicia a transferência, mas não executa a transferência. Para os chamados third party DMA, como é utilizado normalmente nos barramentos ISA, a transferência é realizada pelos controladores DMA que são tipicamente parte do chipset da placa mãe. Projetos mais avançados de barramento, como o PCI, tipicamente utilizam bus-mastering DMA, onde o dispositivo toma o controle do barramento e realiza a transferência de forma independente.

O interessante é que para ativar essa tecnologia ultra-high-tech-low-level, no Linux, basta executar um simples comando:

hdparm -d1 /dev/cdrom

Para facilitar a vida de vocês, recomendo que adicionem o comando acima no /etc/conf.d/local.start. Para os que usam Slackware, adicionem o comando no /etc/rc.d/rc.local.

Agora você pode ver todos os seus filmes sem problemas.

Acesso Negado ao CD/DVD-ROM no Konqueror

O engraçado desse problema é que achei a sua solução no Encontro Mineiro de Software Livre, apesar que eu já sabia da sua existência há muito tempo. No evento eu recebi um CD do Guilherme Gonçalves – que, diga-se de passagem, o mini-curso dele é muito bom – com vários brushes, texturas e imagens para o GIMP. Quando inseri o CD no driver o HAL, como sempre, montou tudo sozinho, mas o Konqueror mostrou uma mensagem de Acesso Negado. Fiquei tão nervoso que revirei todo o Bugs Gentoo atrás de alguma coisa referente a isso. Por sorte, achei esse ticket que explica de forma muito detalhada o motivo do problema.

Vou explicar de forma bem superficial, mas quem quiser saber mais detalhes basta acessar o link do ticket. O HAL tem uma regra de negócio que se recusa a montar qualquer dispositivo que estiver no /etc/fstab. Para solucionar esse problema, basta comentar a linha (colocando # na frente) abaixo no /etc/fstab:

/dev/cdrom /mnt/cdrom auto noauto 0 0

Apesar desse problema ser um bug para o usuário final, o HAL faz isso de propósito. Por esse motivo não considerei como um bug. Agora, por que isso ? Não tenho a mínima idéia, mas aqui está o commit que David Zeuthen da Red Hat fez para adicionar essa regra de negócio.

Se você tem mais dicas interessantes para solucionar problemas ou melhorar o desempenho do CD/DVD-ROM, mande para o michel [at] milk-it [dot] net ou coloque nos comentários.

Ajude o mundo com Linux :-)

29 de outubro de 2007 às 02:27 | Michel Filipe | , ,

Com esse título fica parecendo que sou um vendedor de bíblia, mas a intenção do post é mostrar como o Linux pode economizar energia. A idéia de economizar energia na indústria da computação está a cada dia mais em evidência, ainda mais com o aquecimento global afetando as nossas vidas. Com a economia de energia é possível reduzir custos nos data centers, aumentar a vida útil das baterias e diminuir os desgastes do hardware.

Diminuir os desgastes do hardware, como assim? Agora seu hardware não vai operar em capacidade máxima. Pode começar a operar em standby automaticamente e evitar aquecimento.

Eu comecei a me interessar pelo assunto quando conheci o projeto LessWatts.org, que é mantido pela Intel. Esse projeto tem uma excelente documentação, excelentes ferramentas (vide PowerTOP) para download e até patches que podem ser incorporados ao kernel para ajudar a economizar energia. O que eu achei legal foi a posição da Intel de lançar todo o projeto como código-aberto e não ficar fazendo jabá só para o seu hardware. Não é atoa que existem dicas que funcionam em todos os tipos de hardware.

Para facilitar o início de vocês a esse assunto compilei algumas dicas que gosto e que são fáceis de configurar – exceto a economia de energia do som, que envolve algumas informações avançadas. Para informações mais detalhadas, veja no final do post.

Wireless [1]

O Wi-Fi tem um protocolo chamado Power Save Poll protocol (PS-Poll), que foi desenvolvido para reduzir o tempo que o rádio precisa ficar ligado. O PS-Poll funciona de maneira simples: a placa wi-fi comunica com o access point informando que o rádio está desligado e assim o access point começa a segurar os pacotes que tem que enviar a placa wi-fi, que logo em seguida volta a colocar o seu rádio em funcionamento e o access point começa a enviar os pacotes que foram segurados. Isso tudo acontece em milésimos de segundos. Não consegui perceber perda de desempenho na comunicação entre os dispositivos.

Para ativar o PS-Poll, basta executar o comando abaixo:

iwpriv eth1 set_power 5

Onde o eth1 é a placa wireless (pode ser wlan0, eth0, etc) e o 5 define nível de economia de energia.

Processador [2]

A dica que eu vou dar agora é provavelmente a mais famosa e, na minha opinião, a mais interessante. Com Processor performance states (P-states) é possível alterar a freqüência da CPU para trabalhar com performance máxima ou sob demanda. Eu, atualmente, só conheço dois reguladores:

  • O ondemand que faz a freqüência da CPU trabalhar no mínimo e só aumentando de acordo com a demanda de processamento. Na minha opinião esse é o melhor regulador, porque faz com que ocorra menos aquecimento e economize mais energia :-) .
  • O performance mantém a freqüência da CPU trabalhando no máximo. Faz o processador trabalhar mais rápido? Sim, mas consome bem mais energia e aquece mais o laptop.

Para alterar o regulador de freqüência da CPU para ondemand, basta executar o comando abaixo:

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Para quem compila o próprio kernel, verifique se as configs abaixo estão setadas no .config:

CONFIG_CPU_FREQ
CONFIG_CPU_FREQ_GOV_ONDEMAND
CONFIG_X86_ACPI_CPUFREQ

Existem projetos como o Powersave, KPowersave e o GNOME Power Management, que fazem isso de forma automática e com algumas facilidades (hibernar, desligar o monitor, etc). Eu uso o KPowersave e afirmo que é muito bom.

Som [3]

Que impressionante! Até com a placa de som é possível economizar energia no Linux. Antes, eu quero deixar claro que essa dica só funciona em placas de som HDA-Intel.

As placas de som HDA-Intel vem com uma funcionalidade de economia de energia no hardware que funciona de maneira bem simples: quando a placa não está sendo usada ela se desliga sozinha e quando algum processo requisita o seu funcionamento ela volta ao normal. Simples não? :-)

Só que tem um problema, somente os drivers do kernel 2.6.24 vão vir com suporte a essa funcionalidade. Que pena, não? Mas eu criei um patch para resolver esse problema! Entrei no repositório do kernel, vi que o pessoal já havia implementado o suporte e então fiz um patch com todas as alterações que foram feitas no ALSA da revisão do kernel 2.6.23 até o dia 22/10/2007. Agora o driver da minha HDA-Intel está dando suporte a essa funcionalidade. :)

Eu não posso e nem quero me responsabilizar pela aplicação desse patch, mas no meu kernel 2.6.23 está funcionando perfeitamente. Aplicar o patch é muito simples, basta entrar na pasta que está o código-fonte do seu kernel, mover o patch para lá e executar o comando abaixo:

patch -p1 <update_alsa_2-6-23_20071022.patch

Pronto! Agora é só ativar o powersave no driver (make oldconfig) e compilar o kernel (make && make modules_install).

Se você tem alguma dica que considera legal não hesite em me mandar um e-mail (michel[sem-spam]milk-it.net) e/ou entrar em contato com o pessoal da LessWatts.org. Tenho bastante interesse em saber dicas de economia de energia da plataforma AMD, então, se você tem alguma me informe. Sei que a AMD se preocupa tanto quanto a Intel sobre esse assunto.

[1] Dicas detalhadas para Wireless
[2] Dicas detalhadas para processador
[3] Dicas detalhadas para placas de som