sábado, 28 de fevereiro de 2015

Linux - Transformando informação estática em dinâmica com o Conky

Já escrevi postagens anteriores sobre o Conky, um dos aplicativos mais versáteis que existe, e saiba que podemos adicionar qualquer informação advinda do sistema operacional, como por exemplo: Temperatura.

Primeiro precisamos adicionar um sensor para colher as informações, acesse a Loja de Aplicativos do Ubuntu, procure e instale o aplicativo lm-sensors ou então digite o seguinte comando no terminal:
$ sudo apt-get instal lm-sensors
Após sua instalação, abra uma janela de terminal e digite o seguinte comando:
$ sensors
E como resposta teremos as seguintes informações conforme a janela abaixo:


No meu caso, possuo dois núcleos que, no momento, estão com a temperatura de 49ºC. Ou seja, estou de posse de uma informação estática, pois se daqui a 2 minutos quiser saber qual a temperatura do meu computador terei que digitar novamente o comando.

Usaremos o Conky para deixar a informação dinamicamente. Devemos saber que existem dois comandos no terminal que permitem “recortar” a saída obtida da informação, o primeiro deles é o grep que localiza determinada informação, então se digitarmos:
$ sensors | grep “Core 0”
Somente a linha que contém o valor “Core 0” será mostrada. E o segundo comando é o cut que funciona obtendo um pedaço dessa linha através de dois valores, posição inicial e posição final (sabendo que a primeira posição possui o valor 0), então o comando:
$ sensors | grep “Core 0” | cut -c16-22
Mostra como resultado apenas 49.0ºC e nada mais. Para utilizar esse comando no Conky basta colocá-lo com o seguinte formato: ${exec [comando]}. Assim, adicionamos as seguintes linhas ao arquivo conkyrc:
$alignr Temp. Núcleo 01: ${exec sensors | grep "Core 0" | cut -c16-22}
$alignr Temp. Núcleo 02: ${exec sensors | grep "Core 1" | cut -c16-22}
E assim podemos adicionar qualquer informação que antes era obtida de forma estática através do terminal para a janela dinâmica do conky. E sinceramente espero que depois dessa explicação muita gente pare de dizer que é impossível administrar o Linux sem a janela de terminal.

Obrigado e até a próxima
Fernando Anselmo

quarta-feira, 11 de fevereiro de 2015

Linux - Adeus a Janela de Terminal - Parte 2

Os defensores da janela de terminal possuem uma frase que adoro: “... é muito mais prático fazer as coisas pelo terminal”. Nunca poderia negar isso, como também acho muito mais prático trabalhar com modelos e macros para o LibreOffice/MS-Office, assim como acho muito mais prático usar a linguagem Bash/ScriptDos para resolver muitos problemas de processamento de muitas ações bem como adoro as vezes programar em Assembly. O problema é o seguinte quantas pessoas conhecemos que usam essas três ações práticas que citei?

Uma historinha que ainda não contei foi o drama que passei ao instalar o Ubuntu no meu Notebook Dell (isso porque dizia “Ubuntu Compatible” – acho que desconheço a tradução correta dessa frase). Tinha acabado de receber meu Dell Inspirion 15R e obviamente dei uma percorrida no Windows 8 pré-instalado só para sentir o que era, dois minutos depois estava formatando o computador e colocando o Ubuntu 14.04 (estou exagerando pois pensando bem acho que não chegou a dois minutos completos). Assim que terminei a instalação e reiniciei o computador para entrar lá foi minha surpresa que nem amarrado ele entrava no modo gráfico, mas pelo menos conseguia entrar em modo não gráfico e no meu desktop navegava na Internet para encontrar a solução.

Após tentar de tudo o que os sites tinha falado sobre esse problema (que era mais comum do que pensava) consegui a solução* – que no meu caso era instalar os drivers do Ubuntu 13.10. Foram os seguintes comandos que tive que digitar:

1. Verificar a compatibilidade com VGA:
$ lspci | grep VGA
2. Baixar o driver compatível com o Ubuntu 13.10.
$ cd ~/

$ wget https://download.01.org/gfx/ubuntu/13.10/main/pool/main/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.0.4-0intel1_amd64.deb

$ apt-get install ttf-ancient-fonts

$ dpkg -i intel-linux-graphics-installer_1.0.4-0intel1_amd64.deb
E pronto, após dois dias tudo tinha se resolvido. Agora vamos parar para pensar um pouco, apenas descobri a solução porque queria instalar o Ubuntu, já estava convencido que não queria mais usar o Windows. Só que me restou uma pergunta: E se tivesse apenas testando o Linux para me decidir qual sistema colocar? Acredita realmente que ficaria tentando todas as formas possíveis até ter a solução ou será que não abandonaria tudo isso e usaria o Windows (que a meu ver era bem mais fácil).

Não estou dizendo que a janela de terminal não é prática, mas acho que não devemos confundir o termo praticidade com facilidade. O Clipper era uma linguagem muito prática de se usar, fácil de aprender mas morreu porque o mundo mudou e as pessoas começaram a usar o modo gráfico. Então surgiu o Delphi que também era um ambiente muito prático para se criar janelas gráficas, mas morreu porque o mundo mudou e a programação passou a ser Web. Coisas práticas morrem, simples assim. Não quero ver o Linux morrer, ao contrário quero que ele cresça cada vez mais e ganhe novos adeptos, só que para isso devemos deixar de lado certos hábitos (assim como abandonei o Clipper e o Delphi) e nos dedicarmos ao que realmente importa para o usuário leigo.

Obrigado e até a próxima
Fernando Anselmo

* PS. Como forma de ajudar outras pessoas publiquei essa dica no mesmo dia que consegui a solução. Confira aqui.

segunda-feira, 9 de fevereiro de 2015

Linux - Adeus a Janela de Terminal

Quando resolvi escrever meu livro aberto sobre o Linux (Instalei o Ubuntu e agora?) apenas desejei um único detalhe:

Ficar completamente longe do terminal

A primeira vez que tentei utilizar o Linux na minha vida foi quando comprei um livro, não me lembro do título mas lembro que era bem grosso e vinha com um disquete com o Sistema Operacional Slackware. Para aqueles que chegaram a conhecer essas primeiras versões vão lembrar muito bem dessa figura:


Quando um colega que entendia muito do Linux conseguiu instalar o disquete no meu PC 386 juro que me senti como se tivesse adquirido um desses computadores bem antigos, cadê a janela gráfica que o Windows 3.11 possuía é que facilitava muito meu trabalho? Como iria instalar meus aplicativos? O que ia fazer com um sistema operacional que tinha uma bela tela preta e a linguagem C como pano de fundo (era um programador Pascal).

Minha segunda tentativa foi quando estava escrevendo meu primeiro livro de PHP, tinha uma pilha de CDs do Linux que vinham naquelas revista que se encontrava aos quilos nas bancas (outra metade dos meus CDs eram Demos de jogos – Sim, para os novinhos nos divertíamos com uma ou duas fases de um jogo e isso durava horas). Pensei que o PHP, Apache e o MySQL por serem totalmente livres nada mais justo que usasse um sistema também livre para o livro, só que queria que a instalação fosse fácil para meu leitor (afinal não estaria do lado dele instalando o ambiente). Era assim, pegava um CD, instalava o SO, tentava colocar o Apache e um editor de modo simples (em muitas distros o MySQL já vinha instalado), não dava muito certo (ou era muito complicado) e então mudava de distro (e de CD), resultado que meus dois livros de PHP são escritos com o Windows.

Vou ser bem franco, achava o Linux é um belo Sistema Operacional para os outros e ainda tentei usar sem muito sucesso o Kurumin (um LiveCD brasileiro), mas em momento nenhum o via como substituto do Windows apenas um sistema para pessoas que adoravam perder muito tempo para fazer algo que com alguns cliques resolvia. Durante muito tempo achei que nunca mais usaria esse sistema, até um dia que meu filho meu deu seu Netbook e não sei porque resolvi instalar o Linux Educacional e vi que finalmente tinham domesticado o Pinguim e poderia ser usado para alguma coisa boa, o comecei a usar na faculdade e já estava com desejo de formatar meu Desktop e Note.

Minha mudança definitiva aconteceu com todos os problemas que ja citei no meu blog de literatura (leia aqui) e resolvi tentar usar mais uma vez. Infelizmente as recomendações que recebi foi: “Instale o sistema sem a parte gráfica que você aprenderá muito mais” e devo confessar que foi a coisa mais IDIOTA que ouvi nos meus 25 anos de informática. Isso soou como alguém dizendo: “Jogue fora seu computador e use novamente seu TK-83C ou que tal trocar o LibreOffice pelo WordStar ou RedatorPC”. Quero meu computador para editorar esse livro, fazer meu trabalho da faculdade, programar com um belo editor colorido, baixar a interface do Arduíno, usar programas que comumente uso no meu trabalho, assistir a um vídeo, ouvir uma boa música e por aí vai e isso não tem nada a ver com ps aux | grep [nome] e boa sorte para quem sabe o que isso faz.

No que puder evitar de usar o terminal no livro, evitarei. Não espere encontrar referências aos comandos tail ou cd, o que é a pasta \etc ou \opt e qualquer outra coisa dessas. Tentarei e irei simplificar tudo ao máximo. Infelizmente alguns capítulos não me permitiram deixar tudo de modo gráfico ainda teremos que botar um pouco a mão no terminal mas nada que consiga assustá-lo muito.

Para aqueles que não gostam de fazer as coisas no modo gráfico minha recomendação é que nem comece a ler este livro e procure pelo Guia FOCA que está disponível livremente na Internet. Aqui pretendo deixar as coisas mais fáceis possíveis e isso significa:
  1. Mostrar sempre a facilidade gráfica do Ubuntu; 
  2. Dizer que sim, usar o Ubuntu é tão fácil de usar quanto o Windows; 
  3. Dizer que sim, minha avó (se estivesse viva) podia usar o Ubuntu sem problemas; 
  4. Dizer que sim, acredito que minha avó usa o Ubuntu no “Nosso Lar”. 
E pense bem meu amigo que adora o terminal pois passou um bom tempo nessa tela para aprender a usar o sistema: “Meus Parabéns” pois você será absolutamente necessário e terá emprego garantido (ou poderá ganhar muito dinheiro prestando consultoria) quando 90% do mundo usar o Linux, só que esses 90% usam o Windows. Desse modo, vamos parar de besteira e começar a ensinar ao usuário novato que o Linux mudou e está amigável, mais gráfico e fácil de usar e quem sabe assim consigamos difundir a ideia de um sistema operacional totalmente livre.

Meu compromisso com o leitor é que ao final de ler este livro ele consiga montar uma tela tão prática, usual e principalmente GRÁFICA quanto a minha.


Obrigado e até a próxima
Fernando Anselmo

PS. Recomendo como forma de complemento a leitura desse artigo http://hipertextual.com/2015/02/lo-mejor-de-linux. Espero que possa ser muito útil como forma de reflexão para muitos que amam realmente o sistema Linux. E já que estão no embalo do espanhol vejam esse outro também http://hipertextual.com/archivo/2014/07/mitos-sobre-linux/.

sábado, 7 de fevereiro de 2015

Linux - Ambiente de Desenvolvimento - Parte 4

Sempre me perguntei o que é um ambiente de desenvolvimento perfeito, junto com os aplicativos de desenvolvimento porque não possuir um Blog para criar artigos com dicas interessantes dos projetos (que no final pode se transformar em parte da documentação do mesmo), uma Wiki para que os desenvolvedores possam colaborar construindo uma base de conhecimento ativo ou quem sabe um ambiente completo de ensino a distância para os novatos. Ainda bem que para tudo isso já existem softwares consagrados no mercado como WordPress, MediaWiki ou Moodle e muitos outros que nem cheguei a citar e seria um grande desperdício não se aproveitar dessa fantástica base de conhecimento.

A maneira mais prática para se instalar esses aplicativos é através do XAMPP que possui uma base de módulos que podem ser instalados, porém deixar o Jenkis e Nexus fora desse conjunto seria um tanto estranho pois o que desejamos é criar um ambiente único.

Instalação do XAMPP


Proceda os seguintes passos para sua instalação:

1. Baixar a última versão do arquivo do seguinte site:
http://sourceforge.net/projects/xampp/files/XAMPP%20Linux/
2. Através do Nautillus (ou Nemo), clicar com o botão direito do mouse sobre o arquivo, acessar a aba Permissões e marcar a opção “Permitir a execução deste arquivo como um programa” e pressionar o botão fechar.

3. Abrir um terminal e digitar o seguinte comando:
$ sudo ./xampp-linux-x64-[versão]-installer.run
Para criar um lançador e executar o Aplicativo de Administração do XAMPP, abrir o gEdit e criar um arquivo na pasta “Área de Trabalho” (se desejar executá-lo através do dash, criar o arquivo na pasta /usr/share/applications) com o nome XAMPP.desktop e inserir o seguinte conteúdo (cuidado com a observação para sistemas de 32 ou 64 bits):
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=manager
// USE A LINHA ABAIXO PARA SISTEMAS DE 32 BITS
Exec=gksudo /opt/lampp/./manager-linux.run
// OU USE A LINHA ABAIXO PARA SISTEMAS DE 64 BITS
Exec=gksudo /opt/lampp/./manager-linux-x64.run
Icon=/opt/lampp/icons/world1.png
Categories=Application
Executar o atalho criado, acessar a aba Manage Servers e com um duplo clique iniciar o serviço do Apache:

Se der algum erro, provavelmente já existe outro Apache rodando na porta 80, pressione o botão Configure e mude a porta, ou pare o serviço desse outro Apache, ou remova-o. Abra o terminal e digite os seguintes comandos:
$ sudo service apache2 stop      // PARAR O SERVIÇO
$ sudo apt-get remove apache2    // REMOVER O APACHE
Abra seu navegador e digite o seguinte endereço:
http://localhost
Se tudo está correto, aparecerá a seguinte página:

Selecione a linguagem e seremos levado para a página principal. Agora, além de poder desenvolver para PHP ou Perl, também é possível baixar o WordPress para criação de Blogs, o MediaWiki para um Ambiente de Colaboração tipo Wiki, o Moodle para um ambiente de ensino a distância, entre muitos outros aplicativos acessando a área da BitNami.


Agregando o Jenkis e o Nexus


A configuração atual se encontra da seguinte maneira, o Jenkins está executando na porta 8080 enquanto que o Nexus na porta 8081. O Apache fará o papel de um proxy desviando os serviços e para realizarmos esse trabalho sigamos os seguintes passos:
1. Uma vez instalado o XAMPP acessar o gerenciador e clicar na aba “Manage Servers”.
2. Pressionar o botão Configure.
3. Na janela de configuração do servidor Apache, pressionar o botão Open Conf File e confirmar esta ação. Uma vez aberto a edição do arquivo, no final deste adicionar as seguinte linhas:
# CHAMADA DO JENKINS
<ifmodule mod_proxy.c="">
   ProxyRequests     Off
   <proxy http:="" jenkins="" localhost:8080="">
     Order deny,allow
     Allow from all
   </proxy>
   ProxyPass         /jenkins  http://localhost:8080/jenkins
   ProxyPassReverse  /jenkins  http://localhost:8080/jenkins
</ifmodule>

# CHAMADA DO NEXUS
<ifmodule mod_proxy.c="">
   ProxyRequests     Off
   <proxy http:="" localhost:8081="" nexus="">
     Order deny,allow
     Allow from all
   </proxy>
   ProxyPass         /nexus  http://localhost:8081/nexus
   ProxyPassReverse  /nexus  http://localhost:8081/nexus
</ifmodule>
Para que tudo funcione corretamente no início do arquivo são lidos (seção LoadModule) três módulos, são eles: mod_rewrite.so, mod_proxy.so e mod_proxy_http.so. Verifique se estão realmente presentes. Salvar o arquivo, iniciar o Apache e verificar se o Jenkins e o Nexus estão respondendo corretamente na porta 80 nos seguintes endereços:
  • http://localhost/jenkins → chama o Jenkins na porta 8080
  • http://localhost/nexus → chama o Nexus na porta 8081

Obrigado e até a próxima
Fernando Anselmo