3 de dez. de 2014

Resolvendo o erro com a libudev.so.0 no Ubuntu 14.04 e superiores

Desde o Ubuntu 14.04 que a libudev.so.0 não está disponível para instalação e ela é requirida por alguns programas, entre eles o Google Chrome.
Existem duas formas de resolver isso: instalando a lib de uma versão anterior ou...
sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0

20 de out. de 2014

Botões capacitivos

É implicância minha, talvez, mas EU acho extremamente ruim lidar com botões que "não existem" fora da tela. Qualquer coisa parecida com "controles sensíveis ao toque" já me preocupa. É uma das primeiras coisas que eu observo num smartphone, tablet e até em outros aparelhos.
Por isso nem consegui dar bola pro Asus Zenfone 5, tão falado no seu lançamento (10/2014), apesar das boas especificações, desenho bacana e do ótimo preço.
EU prefiro mil vezes perder 20px de tela (e isso é relativo, pois várias ROMs (stock e alternativas) já suportam tela cheia, escondendo automaticamente barra de navegação e/ou notificações).
Mas não é só com celulares e smartphones, TVs e monitores, caixas de som, notebooks, teclados e mouses e muito mais... não dá! Se é um botão, que seja um botão físico mesmo, o resto joga na tela e pronto.

12 de out. de 2014

Sinclair QL rebirth

Rick Dickinson, designer responsável pelo desenho dos emblemáticos Sinclair pré-Amstrad (ZX80, ZX81, Spectrum Plus, Spectrum 128 e QL) e co-responsável pelo ZX Spectrum, publicou algumas mensagens em sua conta no Twitter, entre elas uma imagem bem interessante:
Não tem maiores informações, mas a exemplo de outros (como os clones de gabinete de C64 da Commodore USA), se sair do "papel" é provável que carregue um PC, Raspberry Pi ou coisa que o valha. Até porque não tem muito software para o QL a ponto de produzir um clone real.

Atualização (23/10/2014): algumas semanas depois, Dickinson soltou imagens completas (em CGI) da reinterpretação e, na minha opinião, não ficou legal. Perdeu quase completamente as características do original. Todas as imagens estão disponíveis no site dele: theproductdesigners.com

E o tal Motorola Droid Turbo...

... me parece um retorno nada triunfal ao desenho dos aparelhos Motorola pré-Google.
Duas coisas que me incomodaram logo de cara:
  • Os botões inferiores que não tenho certeza se são físicos (capacitivos) ou virtuais (espero do fundo do coração que sejam virtuais) e...
  • ... esse "queixo", para quê?!
Eu sei que é questão de gosto, mas acho tão elegante o desenho da série Moto X/G/E. Talvez ele fique parecido com os Razr, daí já não é tão ruim.

Atualização: Vazaram novas fotos, parece bem melhor em relação a foto anterior (supostamente do manual), por outro lado, confirma os botões capacitivos que eu tanto detesto.

8 de out. de 2014

Motorola liberando Android KitKat para os Razr D1, D3 e HD

Muito bom ver a Motorola liberando uma versão mais atual (4.4.2) do Android para os pequenos Razr... em tempos de Sony cancelando o update oficial do muito mais robusto Xperia SP. Pois é, é por isso que eu uso CM desde a semana de lançamento.
Mais informações nesse link.

23 de set. de 2014

Só a Caixa...

... pra enviar uma CARTA, isso mesmo, de papel, pelos correios (minúsculo mesmo, como sua eficiência), para propagandear seu app para smartphones.

22 de set. de 2014

Recursos que eu adoraria ter no meu Android

Faz alguns meses que eu uso um Sony Xperia SP com a ROM CyanogenMod CM11 oficial baseada no Android "KitKat" 4.4.4 e tem alguns recursos que eu adotaria ver implementados, como:
  • Ativar o aparelho tocando duas vezes na tela (algo que já vem embutido no Windows Phone 8.x);
  • Botão do headset ativado como headset mesmo por padrão ao invés de botão de ação (dá pra mudar, eu fiz, mas é chato);
  • Continua...

6 de set. de 2014

Reparando um controle sem fio de PS2

Dei esse controle de presente ao meu sobrinho há uns dois anos.
Apesar de ser um controle genérico, nem marca tem, até que é bem construído e sempre funcionou muito bem.
Hoje meu sobrinho me falou que o controle tinha parado de funcionar. Como todo aparelho que pára de funcionar, a primeira coisa a verificar é a alimentação, nesse caso: pilhas. E essas vazaram.
A primeira atitude foi desmontar e verificar se a solução das pilhas atingiu algum componente interno e limpar tudo.
Por sorte o compartimento de pilhas é bem afastado dos circuitos, então o pequeno estrago ficou restrito à oxidação dos contatos dentro do compartimento.
Após soltar os contatos e limpá-los para retirar toda a contaminação e oxidação, foi só devolve-los ao compartimento e resoldar os fios.
Uma limpeza adicional para retirar umas marcas de fita adesiva e o controle voltou a funcionar perfeitamente.

5 de set. de 2014

O Netflix nos acostuma muito mal...

... com esse negócio de temporadas e até séries inteiras disponíveis. É bem difícil acompanhar um seriado no modelo tradicional, um episódio por semana, uma temporada por ano.

14 de jun. de 2014

Cabo de Cassete para MSX Hotbit

Revirando as caixas de sucata, lá vai uma história meio antiga...
À época, final dos anos 80 e durante os anos 90, tive vários Gradiente Experts, mas só recentemente (em 2010) consegui um Sharp/Epcom Hotbit.
Logicamente parti para o processo usual de limpeza e testes, apesar do micro estar muito conservado, e me deparei com um pequeno problema que eu não lembrava: a porta de cassete não é compatível com a do Expert, pois o Hotbit usa a mesma pinagem dos MSX japoneses, e eu não tinha nenhum cabo adequado ou conector DIN de 8 pinos sobrando. A solução foi essa pequena gambiarra usando um conector DIN de 5 pinos que estava na sucata:
Como dá para perceber pela foto, esse conector não tinha todos os pinos, mas como são necessários apenas dois pinos para fazer a leitura (GND e EAR), deu pro gasto.
Outro ponto interessante é que optei por usar um plug P2 estéreo ao invés de mono, pois o plug estéreo funciona em qualquer aparelho, já o plug mono não é bem aceito principalmente em algumas saídas de som de PC/notebook e alguns celulares. Apesar de usar um plug estéreo, apenas um dos canais está ligado, não são necessários e nem é aconselhável usar os dois.
O esquema é muito simples:
Nota: O conector DIN está de frente, na mesma posição da foto no início do artigo.
Obviamente esse esquema serve também para a maioria dos MSX japoneses.

6 de jun. de 2014

Tetris 30 anos

O Tetris fez 30 anos hoje (06/06/2014), isso mesmo, trinta anos transformando pessoas em zumbis :)
O jogo simples e realmente bom, não apenas viciante, é um dos casos mais conhecidos pela bagunça que são os direitos autorais e de como a burocracia pode melar com a vida de qualquer um.
O Tetris original foi concebido por Alexey Pajitnov em um Electronika 60 (Электроника 60), um minicomputador soviético dos anos 70, como um estudo matemático que ganhou o mundo e explodiu nas mãos da Nintendo com seu GameBoy. Aliás, um dos motivos do sucesso do primeiro GB foi justamente o Tetris.
Alexey Pajitnov jogando o Tetris original em um terminal do Electronika 60
Mas se você já andou lendo as postagens anteriores nesse blog, deve imaginar que o post não é sobre os feitos do jogo em si... apenas observe toda a beleza de um jogo com uma linguagem gráfica única construído apenas com caracteres não-gráficos:
Tela do Tetris original
Existem muitos jogos que usam apenas caracteres semi-gráficos, e são incríveis, mas isso é outro patamar e sempre me impressiona muito.
Em tempo, a BBC tem um excelente documentário sobre o Tetris, você pode assisti-lo no YouTube:

Parabéns Tetris, parabéns Alexey Pajitnov pela sua criação.

14 de mar. de 2014

Programador TOP853

Comprei um programador USB, modelo TOP853, custou $37 já com o frete e chegou ontem após pouco mais de um mês.
É um aparelho bem simples, mas lê e grava as ROMs que eu preciso, além de PIC, Flash, PLD/GAL, etc.
A maior desvantagem dele é só funcionar no Windows XP, mas esse é um problema menor, já que eu mantenho uma máquina com XP para algumas funções (como gerar disquetes para alguns micros antigos).
No pacote veio o programador, cabo USB A-B, miniCD com o programa TOPWin 6, manual em chinês e um bilhete... :)

1 de mar. de 2014

Criando um pendrive de boot Linux

Para a maioria das distribuições:
sudo dd if=<nome_da_imagem.iso> of=/dev/<dispositivo_destino> bs=4M; sync

24 de fev. de 2014

Comparando e igualando diretórios com o rsync

Outro dia mostrei como criar um compartilhamento NFS. Na ocasião eu precisava comparar e igualar uns diretórios e para isso usei o utilitário rsync.

Comparando diretórios

rsync -vrhin <diretório_origem> <diretório_destino>
Onde:
  • v - mostra os arquivos e diretórios que são copiados
  • r - pesquisa os diretórios e subdiretórios abaixo dos diretórios indicados como origem e destino
  • h - mostra as informações de maneira compreensível
  • i - mostra alguns detalhes como a direção, o tipo de arquivo, o processo, as diferenças
  • n - não faz nenhuma alteração nos arquivos
Se o diretório contiver muitos subdiretórios e arquivos, o ideal é mandar a saída padrão para um arquivo para facilitar a conferência:
rsync -vrhin <diretório_origem> <diretório_destino> > resultado

Igualando diretórios

rsync -vazuhi --progress --delete <diretório_origem> <diretório_destino>
... onde:
  • a - mantém atributos e permissões no destino iguais à origem
  • z - compacta os arquivos na origem para reduzir o tráfego, descompactando-os automaticamente no destino
  • u - no caso do arquivo ou diretório já existir no destino, só copia/atualiza se esse for mais antigo que o que está sendo copiado
  • --progress - mostra o progresso individual da cópia de cada arquivo
  • --delete - apaga arquivos presentes no destino que não estão mais presentes na origem
Obviamente é necessária cautela ao usar o recurso, principalmente se existem dados sensíveis no destino.
Se houver dúvida, use a opção n (dry-run) a fim de observar o resultado antes de rodar o processo definitivo, o comando ficaria assim:
rsync -vazuhin --progress --delete <diretório_origem> <diretório_destino>

17 de fev. de 2014

Pós instalação no Ubuntu e variantes

Esses são os passos básicos que eu faço sempre que instalo o Ubuntu, Xubuntu ou Lubuntu em algum micro ou máquina virtual.
Atualizado em 10/04/2017.
Atenção! Eu faço esses passos nos meus micros, se você resolver testar, faça por sua própria conta e risco.

Adiciona o repositório Partners

sudo add-apt-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner"

Adiciona suporte a arquitetura i386, caso não exista

sudo dpkg --add-architecture i386

Atualiza sistema

sudo apt update && sudo apt full-upgrade && sudo apt autoremove && sudo apt purge && sudo apt clean

Desativa mensagens de depuração do APPPORT

sudo sed -i "s/enabled=1/enabled=0/g" /etc/default/apport && sudo service apport restart

Libera a exibição dos aplicativos iniciados automaticamente

sudo sed -i "s/NoDisplay=true/NoDisplay=false/g" /etc/xdg/autostart/*.desktop

Drivers de vídeo open source otimizados

sudo add-apt-repository ppa:oibaf/graphics-drivers && sudo apt update && sudo apt full-upgrade

zRAM

sudo apt install zram-config

PRELINK

sudo apt install prelink
sudo prelink -amR
sudo sed -i "s/PRELINKING=unknown/PRELINKING=yes/g" /etc/default/prelink
sudo /etc/cron.daily/prelink
echo 'DPkg::Post-Invoke {"echo Running prelink, please wait…;/etc/cron.daily/prelink";}' | sudo tee /etc/apt/apt.conf

PRELOAD

sudo apt install preload

Habilita o NUMLOCK na inicialização do Lubuntu

sudo sed -i "s/# numlock=0/numlock=1/g" /etc/xdg/lubuntu/lxdm/lxdm.conf

Utilitários e codecs

sudo apt install ubuntu-restricted-extras rar unrar zip unzip p7zip-full gparted lame baobab fslint

# Instala o Docky e ativa a composição na inicialização do Lubuntu
sudo apt install docky compton && echo compton -b >> .config/lxsession/Lubuntu/autostart

Baixa e instala o Google Chrome para AMD64 ou i386

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && sudo dpkg -i google-chrome-stable_current_amd64.deb

wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb && sudo dpkg -i google-chrome-stable_current_i386.deb || sudo apt-get install -f

Baixa e instala o Discord

wget https://discordapp.com/api/download?platform=linux&format=deb && sudo dpkg -i discord-*.deb || sudo apt install -f

Alguns programas que uso no dia-a-dia

# Imagem e Editoração
sudo apt install scribus gimp gimp-data-extras inkscape

# Mídia
sudo apt install vlc

# Comunicação
sudo apt install telegram

# Android ADB tools
sudo apt install android-tools-adb android-tools-fastboot

# Eletrônica
sudo apt install fritzing kicad sigrok pulseview

Arduino IDE

# Instalar a IDE disponível no repo Ubuntu para baixar as dependências
sudo apt-get install arduino arduino-mk

# Download da última versão da IDE em
https://www.arduino.cc/en/Main/Software

# Descompactar o arquivo
tar -xvf arduino-1.8.?-linux64.tar.xz

# Mover para o diretório /opt
sudo mv arduino-1.8.? /opt/arduino

# Criar a entrada de menu para a IDE nova
cd /opt/arduino
sudo ./install.sh

# Adicionar o usuário aos grupos necessários
sudo usermod -a -G tty,dialout `id -un`

# Reiniciar a seção. Não é necessário reiniciar o computador.

Acertar entradas do menu

# Remove todas as entradas da seção Desenvolvimento
sudo sed -i "s/Development;//g" /usr/share/applications/*.desktop

14 de fev. de 2014

Formatando disquetes menores que 1.44Mb

Vale para qualquer micro que use drives de disquetes baseados no padrão Shugart.

No DOS/Prompt de Comando do Windows (CMD)

format <letra_unidade> /t:<num_trilhas> /n:<num_setores> /u

#5,25" DD 360Kb
format a: /t:40 /n:9 /u

#3,5" DD 720Kb
format a: /t:80 /n:9 /u
Essa postagem será atualizada com mais informações... em algum momento.

12 de fev. de 2014

Compartilhando arquivos via NFS no Xubuntu 13.10

Outro dia precisei compartilhar muitos arquivos entre duas máquinas rodando Xubuntu. Que, até onde eu sei, não tem uma opção tão prática quanto a existente no Ubuntu (compartilhar direto no menu de contexto dos diretórios)... como não tinha tempo, fui direto pro console.
Na máquina 10.0.0.1 onde estavam os arquivos que eu queria:
# instala o servidor nfs
sudo apt-get install nfs-kernel-server -y

# define o diretório a ser compartilhado e as opções
echo "/home/usuario *(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports

# restringe o acesso a todos
echo "portmap: ALL" >> /etc/hosts.deny
echo "lockd: ALL" >> /etc/hosts.deny
echo "mountd: ALL" >> /etc/hosts.deny
echo "rquotad: ALL" >> /etc/hosts.deny

# libera o acesso apenas a um ou uma gama de ips
echo "portmap: 10.0.0.0/2" >> /etc/hosts.allow
echo "lockd: 10.0.0.0/2" >> /etc/hosts.allow
echo "mountd: 10.0.0.0/2" >> /etc/hosts.allow
echo "rquotad: 10.0.0.0/2" >> /etc/hosts.allow
echo "statd: 10.0.0.0/2" >> /etc/hosts.allow

# reinicia o servidor nfs
sudo /etc/init.d/nfs-kernel-server restart
Na máquina 10.0.0.2 onde os arquivos seriam acessados:
# instala o cliente nfs
sudo apt-get install nfs-common

# cria um diretório onde será montado o mapeamento
mkdir ~/pastaqualquer

# monta o mapeamento
sudo mount -t nfs 10.0.0.1:/home/usuario ~/pastaqualquer

# se quiser que monte automaticamente no boot, não era o meu caso, mas...
echo "10.0.0.1:/home/usuario /pastaqualquer nfs rw 0 0" >> /etc/fstab
Funciona :)
PS.: Eu uso a opção sync no compartilhamento para evitar arquivos corrompidos, é mais demorado, mas também é muito mais seguro.
PS. 2: Pode ser necessário dar permissões de leitura/escrita (chmod) no diretório compartilhado. Não foi o meu caso, pois usei o mesmo usuário.