sábado, 27 de fevereiro de 2016

Ajustar a velocidade de rolagem do mouse no Linux

Pelo menos desde 2007 existe reclamação quanto à impossibilidade de ajustar ou configurar a velocidade de rolagem no Ubuntu e derivados. O bug reportado até hoje permanece sem solução.

Pelo visto, essa funcionalidade não será implementada tão cedo.

Então então vai a dica para você conseguir alterar a velocidade de rolagem (scroll) do seu mouse.

Instale o imwheel:

sudo apt-get install imwheel

Agora crie um arquivo chamado ".imwheelrc" na sua pasta pessoal.

gedit ~/.imwheelrc

Copie e cole o seguinte conteúdo no arquivo:

".*"
None,      Up,   Button4, 3
None,      Down, Button5, 3
Control_L, Up,   Control_L|Button4
Control_L, Down, Control_L|Button5
Shift_L,   Up,   Shift_L|Button4
Shift_L,   Down, Shift_L|Button5

Observe que o número 3 ao final da segunda e terceira linhas será exatamente o que controlará a velocidade da rolagem do mouse (na verdade, esse número representa a quantidade de linhas a serem movidas para cima ou para baixo quando você girar a rodinha do mouse).

Altere esse número na segunda e terceira linha para algo como 5 ou 6 e depois de iniciar o imwheel veja se a nova velocidade o agrada.

A primeira linha (".*") representa o nome da aplicação à qual serão aplicadas essas configurações. O ".*" indica que as configurações serão aplicadas em todo lugar.

As duas últimas linhas garantem que a funcionalidade de clicar com o ctrl / shift apertados (por exemplo, para zoom) funcione normalmente.

Caso queira definir a rolagem por aplicação, primeiro descubra a string referente ao programa:

xprop WM_CLASS | grep -o '"[^"]*"' | head -n 1

A execução irá parar após você clicar na janela desejada para identificar a string.

Agora você pode definir as velocidades por janelas, por exemplo:

"^google-chrome$"
  None,      Up,   Button4, 6
  None,      Down, Button5, 6

"^Navigator$"
  None,      Up,   Button4, 6
  None,      Down, Button5, 6

".*"
  None,      Up,   Button4, 3
  None,      Down, Button5, 3
  Control_L, Up,   Control_L|Button4
  Control_L, Down, Control_L|Button5
  Shift_L,   Up,   Shift_L|Button4
  Shift_L,   Down, Shift_L|Button5

Agora execute o imwheel:

imwheel

OBS: Se você tiver botões de navegação "voltar / avançar" no mouse, inicie o imwheel com o seguinte comando, caso contrário essa funcionalidade não estará presente:

imwheel -b "4 5"

Caso queira mudar as configurações, edite o arquivo de configurações (~/.imwheelrc) e depois execute:

imwheel --kill

Para continuar com a funcionalidade após reiniciar o computador, adicione o comando imwheel à aplicações que são iniciadas automaticamente com a sua sessão (por exemplo, no Unity, Startup Applications > Add).

segunda-feira, 15 de fevereiro de 2016

Apt-get travando em 0%. Como resolver?

O gerenciador de pacotes do Ubuntu (e derivados como Linux Mint, Elementary OS etc.) anda travando em 0% ao tentar baixar e instalar algum pacote. Somente depois de muito tempo ele "destrava" e continua a instalação.

apt-get install travado em 0%
O problema é que alguns ISPs (Internet Service Providers), como a NET, por exemplo, provavelmente estão configurando uma rede IPv6 interna, como forma de preparação para permitir conexões IPv6 no futuro. Como resultado, os servidores agora tentam conectar em br.archive.ubuntu.com, como no exemplo acima, por meio do endereço IPv6. Daí a demora, até que ele tente o próximo método de requisição, que é o IPv4.

A solução então é habilitar a linha precedence ::ffff:0:0/96 100 no arquivo de configuração do getaddrinfo (/etc/gai.conf), de modo que as requisições prefiram primeiro o protocolo IPv4.

$ sudo nano /etc/gai.conf

Agora remove a hashtag (#) da linha 54. Vai ficar assim:

#
#    For sites which prefer IPv4 connections change the last line to
#
precedence ::ffff:0:0/96  100

Grave o arquivo e pronto. Agora você poderá voltar a usar o apt-get sem passar nervoso com a demora.

segunda-feira, 12 de outubro de 2015

Adaptação do tema One Dark para NetBeans

Logo que baixei o editor Atom fiquei bem impressionado com o tema de cores padrão, chamado "One Dark".

Ele parece uma espécie de variação do tema Wombat.

O tema padrão do Atom tem um aspecto azulado bem suave, que torna a leitura bastante fácil. Os olhos agradecem.


Editor de texto Atom com o tema One Dark

Achei o tema One Dark tão bacana que resolvi fazer uma adaptação para o NetBeans, que é meu IDE favorito.

Nem tudo foi possível fazer exatamente igual, mas no geral o NetBeans, que é sofrível no aspecto "temas", ficou bem mais agradável depois dessa adaptação.

Chamei o tema de DuliDark.


Tema DuliDark no NetBeans


Download


Faça o download do tema DuliDark para NetBeans aqui.

Instalação do tema


Para importar o tema no NetBeans, vá em Ferramentas -> Opções -> Importar... -> Procurar... e selecione o arquivo ZIP baixado.

Se gostar, compartilhe!

terça-feira, 31 de março de 2015

Obtendo informações sobre seu hardware no Linux

Nem sempre é tão fácil verificar o fabricante ou o tipo e especificações do hardware que você tem no seu computador com Linux.

Aqui vão algumas dicas de excelentes programas que executam a tarefa muito bem, de fora bem simples pela linha de comando:

1 - inxi


Embora pouco conhecido, o INXI é excelente script para exibir, com formatação muito bem organizada e legível, as informações sobre o seu hardware.

Aqui estão as instruções para instalar na sua distro.



Alguns comandos do Inxi:

Informações resumidas:

inxi

Informações básicas:

inxi -b

Obtendo as partições do HD:

inxi -p

Informações sobre o tamanho e modelo do HD:

inxi -D

Informações sobre a placa de som e placa de vídeo:

inxi -AG

Para obter o relatório completo (Full):

inxi -F

Outros programas simples e interessantes


2 - lscpu


Fornece informações sobre sua CPU e unidades de processamento.

3 - lshw


Fornece informações detalhadas ou resumidas sobre diversos itens de hardware, como cpu, memória, disco, interfaces de rede etc.

4 - lspci


Esse talvez seja o mais conhecido e comum. Lista todas as interfaces PCI e detalhes sobre os dispositivos que estão conectadas a elas.

5 - lsscsi


Lista os dispositivos (discos rígidos / drives óticos) do tipo scsi/sata.

6 - lsblk


Lista todos os dispositivos de blocos (HDs) e suas partições.



7 - df


Dá informações sobre as particões, pontos de montagem e espaço disponível/usado.

É muito comum o uso com as opções df -Th (tipo da partição e tamanho em bytes/megabytes/gigabytes/etc e não em blocos).

8 - mount


Sem nenhum parâmetro, o comando irá exibir os pontos atualmente montados.

9 - free


Exibe o total de memória RAM usada e livre.

É comum usar o comando com o parâmetro -m, para exibir as quantidades em megabytes.

sábado, 28 de fevereiro de 2015

Zoneminder no CentOS 6 - método fácil com zmrepo

Sobre o ZoneMinder


Nesse post foi demonstrado como instalar o ZoneMinder no Ubuntu Server. Se quiser informações sobre a instalação das câmeras IP e sobre o que é o ZoneMinder, abra o link já referido.

Instalando no CentOS


Segue agora o passo a passo para instalar o poderoso sistema de vigilância no CentOS 6 (Versão 6.6, arquitetura x86_64).

Ainda não há método estável para instalar no CentOS 7 por meio de repositório. Portanto, use o CentOS 6 por enquanto.

OBS: Todos os comandos aqui descritos foram executados como root.


Instale o CentOS.

Após o primeiro boot, habilite a interface de rede e defina o IP da máquina.
nano /etc/sysconfig/network-scripts/ifcfg-eth0
Para IP dinâmico, simplesmente altere a opção ONBOOT conforme abaixo e reinicie o sistema:
ONBOOT="yes"
Para IP estático, faça as alterações necessárias para ficar assim:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=208.67.222.222
Para evitar lentidão ao conectar via ssh:
nano /etc/ssh/sshd_config
E deixe as seguintes opções conforme abaixo:
UseDNS no
GSSAPIAuthentication no
Reinicie os serviços de rede e do servidor ssh:
service network restart
service sshd restart
Atualize o sistema
yum update -y
Desabilite o SELINUX
setenforce 0

nano /etc/selinux/config

SELINUX=disabled

Instale o repositório Zmrepo:
yum install wget


wget http://zmrepo.connortechnology.com/el/6/i386/zmrepo-6-4.el6.noarch.rpm


yum install --nogpgcheck zmrepo-6-4.el6.noarch.rpm -y
Certifique-se de que o repositório foi corretamente instalado:
yum repolist
Instale o zoneminder:
yum install zoneminder -y
Agora você deve completar os passos descritos no aquivo abaixo para concluir a instalção:
less /usr/share/doc/zoneminder-*/README.CentOS
Em suma, você deverá fazer o seguinte. Inicie o serviço mysqld:
chkconfig mysqld on

service mysqld start
Agora conclua a instalação segura do mysqld. Quando for perguntada a senha atual do usuário "root", aperte a tecla Enter, pois ainda não há uma senha configurada (por se tratar de uma nova instalação). Quanto às outras opções, pode responder sempre o padrão:
/usr/bin/mysql_secure_installation
Agora você deverá criar o banco de dados para o ZoneMinder usar. Ao ser perguntado, digite a senha de root que você definiu no passo anterior:
mysql -uroot -p  

create database zm;

grant select,insert,update,delete,lock tables,alter on zm.* to 'zmuser'@localhost identified by 'zmpass';

quit;

mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql

mysqladmin -uroot -p reload
(OBS: Se você escolheu outros usuário e senha para o bando de dados zm no item anterior, então edite o arquivo /etc/zm.conf e faça os ajustes em ZM_DB_USER e ZM_DB_PASS)

Ajuste o timezone da sua localidade nas configurações do php, exemplo:
nano /etc/php.ini
date.timezone = America/Sao_Paulo
Habilite a interface web do ZoneMinder (ela vem desabilitada por padrão):
nano /etc/httpd/conf.d/zoneminder.conf
Apague ou comente (com um #) a linha "Deny from all # DELETE THIS LINE".

Alguns ajustes para evitar mensagens de erro do apache (altere conforme suas configurações):
echo "ServerName localhost" > /etc/httpd/conf.d/fqdn.conf
Inicie o servidor web (apache) e configure-o para iniciar automaticamente a cada boot:
service httpd start
chkconfig httpd on
Abra as portas necessárias no firewall (iptables) do CentOS:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

service iptables save

iptables -L -v
Ou, se quiser fazer por interface gráfica:
yum install system-config-firewall
system-config-firewall
# Personalizar
# Marque as opções
WWW (HTTP)
WWW Seguro (HTTPS) (caso você queira habilitar acesso criptografado)
Fechar
Ok

Reinicie o sistema
reboot
ou
init 6
No seu navegador, aponte para http://<ip da máquina>/zm

Se quiser habilitar SSL (navagação segura):
yum install mod_ssl openssl
Gere a nova chave (auto-assinada) e novo certificado:
openssl genrsa -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 730 -in ca.csr -signkey ca.key -out ca.crt
Mova para os lugares corretos
mv -f ca.crt /etc/pki/tls/certs/localhost.crt
mv -f ca.key /etc/pki/tls/private/localhost.key
Reinicie o servidor apache (web)
service httpd restart
No seu navegador, aponte para https://<ip da máquina>/zm

ALGUMAS DICAS DE PERFORMANCE


O servidor ZoneMinder não pode ficar com um "load" muito alto. Se isso ocorrer, você terá instabilidade e perderá alguns "frames" de imagens.

A seguir algumas dicas para tentar melhorar a performance.

1. Para sistemas de arquivos Ext4, adicione as seguintes opções no /etc/fstab:
noatime,nodiratime,commit=120,data=writeback

Exemplo
UUID=ba4acd10-ae6d-465c-82fe-9752017480ee /var/lib/zoneminder     ext4    defaults,noatime,nodiratime,commit=120,data=writeback        0 2
2. Habilite nas opções do ZoneMinder o CPU_EXTENSIONS, para obter vantagem das extensões SSE2/SSE3 do processador.

3. Habilite FAST_IMAGE_BLENDS. Esse tipo de blend é extremamente rápido e não envolve multiplicação ou divisão, o que pode impactar a performance.

4. Desabilite COLOUR_JPEG_FILES a não ser que realmente precise disso. Essa opção converte imagens em grayscale para cor antes de armazená-las como jpegs. Isso impacta a performance e usa mais espaço no seu disco, então o melhor é deixar desabilitado.

5. Desabilite CREATE_ANALYSIS_IMAGES se você usa motion detection com Blob, mas não precisa das imagens de análise.

6. Tenha certeza que desabilitou RECORD_DIAG_IMAGES.

7. Para câmeras locais (não IP): Habilite ZM_V4L_MULTI_BUFFER se puder. Tente fazer correspondência entre a paleta de caputra (Capture Palette) e o colorspace alvo (Target Colorspace), para evitar a necessidade de conversão de formato.

8. Se estiver usando Motion Detection (Modect) para as câmeras, quanto menos zonas, mais rápido será o sistema. Antes de ficar criando zonas, pense se realmente você tem necessidade de mais de uma zona.

9. Experimente usar a opção 8 bit grayscale nas câmeras (Target Colorspace), em vez de cores 24 ou 32 bits. Além de as imagens ficarem menores, o processamento e análise delas será mais rápido. Você realmente precisa registrar imagens coloridas? Faça opção consciente.

10. Quantos quadros por segundo (frames per second - FPS) você realmente precisa nas câmeras? Pense nisso. Não há qualquer razão para caputar o vídeo a 20 fps se você não tem qualquer necessidade específica para isso. 5 fps são suficientes para a maioria dos casos e produz bons vídeos.

11. Use a libjpeg-turbo. A instalação pelo método descrito neste post se encarregará disso.

12. Ajuste as opções "Reference Image Blend %ge" e "Alarm Reference Image Blend %ge" de cada monitor apropriadamente. Quanto à primeira, use 6.25% para câmeras internas e 12.5% para externas. Quando à segunda, experimente deixar todas as câmeras em 6.25%. Trata-se de nova funcionalidade da versão do ZoneMinder 1.26.5. Antes de ajustar essa opção alguns eventos estavam ficando quase infinitos (disparava o alarme do modect e não parava mais de gravar).

ATENÇÃO


As opções Maximum FPS e Alarm Maximum FPS são apenas para câmeras analógicas. Não use essas opções para câmeras remotas IP, caso contrário você terá falhas na visualização "ao vivo" e durante as gravações dos eventos. A implementação para câmeras remotas ainda não foi realizada.

quarta-feira, 6 de agosto de 2014

Como realmente desligar o Windows 8

Windows é Windows. Sempre com comportamentos estranhos e pouco transparentes para os usuários. Com o desligamento do seu computador não é diferente.

Toda vez que você clica em desligar, na verdade o Windows 8 não é realmente finalizado. Ele apenas entra em hibernação. É a forma que o Windows encontrou para iniciar mais "rápido", haja vista que em tese é mais rápido o sistema operacional retornar da hibernação do que ser iniciado totalmente do zero novamente.

No entanto, há ocasiões em que você quer realmente desligar o sistema operacional, seja para tirar o HD da sua máquina, seja para fazer um backup integral do seu HD, seja porque você quer realmente desligar e pronto. Ultimamente, aliás, com a nova sistemática da venda de computadores com o Windows 8 previamente instalado - sem que venha com o computador qualquer mídia para reinstalação do sistema -, é totalmente recomendável realizar um clone do seu HD (por exemplo com o Clonezilla ou qualquer outro programa do tipo), para eventual restauração do Windows 8 quando ele der problema (algo não muito difícil de ocorrer...).

Ocorre que se você não desligar realmente a máquina você não conseguirá efetuar a clonagem do HD, pois esses programas não conseguirão clonar um HD com o sistema operacional hibernado nele.


Para desligar realmente o Windows 8, a forma mais rápida e menos traumática que encontrei é a seguinte: abra o terminal do Windows (digite cmd na busca de aplicativos - você poder apertar a tecla 'windows' e começar a digitar) e execute o seguinte comando no terminal:

shutdown /s /t 0

O parâmetro /s significa shutdown (desligar) em contraposição a reboot (reiniciar - /r) e o parâmetro /t 0 significa para executar imediatamente (ou seja, em zero segundo).

Se você quiser desligar em definitivo a hibernação (ou 'Fast Startup', como eles chamam), digite 'energia' (sem as aspas) na pesquisa do Windows 8 (basta apertar a tecla "windows" do seu teclado e começar a digitar).

Clique na linha que irá aparecer com o escrito 'Configurações' no painel direito. Aparecerá a entrada 'Opções de Energia'. Clique nessa opção.

O painel de configurações de energia aparecerá. Clique em "Escolher a função dos botões de energia". Clique em "Alterar configurações não disponíveis no momento". Agora é só desabilitar a opção "Ligar inicialização rápida (recomendado)" e depois "Salvar alterações".

Pronto, agora o Windows 8 fará um desligamento genuíno sempre que você clicar normalmente em desligar.

Mais informações, clique aqui.

terça-feira, 1 de julho de 2014

Como encontrar arquivos modificados ou acessados em determinada data

Já se viu em situação em que editou um arquivo ou armazenou alguma informação e não lembra de nenhum jeito o nome do arquivo ou onde ele foi gravado, mas lembra que foi "ontem" ou "nessa semana"?



O comando find possui forma bastante eficiente de localizar os arquivos modificados, acessados ou que tiveram permissões alteradas a partir de certa data.

O segredo é usar testes do find com os parâmetros -newerXY and ! -newerXY.

Vamos aos exemplos.

Para localizar todos os arquivos modificados em 29/06/2014:

find . -type f -newermt 2014-06-29 ! -newermt 2014-06-30

Nesse caso o 'm' corresponde a "modification  time of the file reference" e o 't' corresponde a "reference is interpreted directly as a time".

O ponto '.' refere-se à pasta atual. O comando procurará arquivos na pasta atual e subpastas.

Para encontrar todos os arquivos acessados em 29/09/2008:

find . -type f -newerat 2008-09-29 ! -newerat 2008-09-30

Aqui o 'a' significa "the access time of the file reference".

Para encontrar os arquivos que tiveram permissões alteradas na mesma data acima:

find . -type f -newerct 2008-09-29 ! -newerct 2008-09-30

Aqui o 'c' corresponde a "inode status change time of reference".

Para maiores informações, consulte o manual do find (man find).