Entries Tagged 'Dicas' ↓
janeiro 21st, 2011 — Dicas
No natal passado dei para minha namorada, Samara, um netbook: o Asus EeePC 2G Surf. Ele foi o primeiro netbook lançado, com processador de 800 MHz, 512 MB de RAM e 2 GB de SSD. Infelizmente, para diferenciá-lo de modelos mais caros, alguém na Asus teve a ideia imbecil genial de soldar a memória RAM e o SSD. Ou seja, é impossível fazer um upgrade nele.
Passei meus dias antes do natal de 2009 pesquisando como instalar um Sistema Operacional usável com essa limitação de espaço. A instalação do Ubuntu, pelada, gastava mais de 4 GB. Depois de algumas noites mal dormidas, consegui instalar o Xubuntu 9.04 capado, com um browser minimalista (Midori) e algumas coisas mais. Ficou usável, mas longe de bom. Mais de um ano depois, finalmente tomei vergonha na cara de fazer direito.
Comprei um cartão MicroSD de 8 GB e fui instalar o Ubuntu 10.10 nele. Consegui sem muito esforço, simplesmente colocando o / no SSD de 2 GB e o /usr e o /home em duas partições no cartão de memória. Ficou legal, gostei da interface Unity, e tava tudo funcionando. Quando mostrei para ela, depois de brincar por uns 30 segundos, ela disse: “Tá muito lento!”.

Ubuntu Unity - Lindo, mas 'muito lento'
Ok, segunda tentativa. Levei o netbook para casa e fui falar com Deus. Descobri que a Unity é realmente mais pesada, e era melhor usar o Ubuntu 10.04 Netbook Edition. Mas, se o problema dela era velocidade, pesquisei mais um pouco sobre como otimizar. Foi aí que encontrei o ótimo blog do Steve Hanov, onde ele dá 4 dicas para otimizar o Ubuntu quando ele for usado em de um drive USB. Neste post só vou falar da terceira dica (a mais importante para mim): comprimindo os arquivos.
O diretório /usr é normalmente o maior diretório de uma instalação do Linux. Nele ficam todos os binários dos programas instalados, bibliotecas, códigos-fonte, etc.. Para se ter uma ideia, quando instalei o Ubuntu 10.10 no netbook da Samara, o /usr tinha cerca de 1.8 GB, enquanto todas as outras pastas juntas não chegavam a 700 MB. Então, se queremos diminuir o tamanho de uma instalação, nada mais lógico que começar com o maior culpado.
A ideia é comprimir a /usr. Para isso usamos o squashfs. Com ele, criaremos um sistema de arquivos comprimido, virtual, somente leitura. Conseguimos diminuir a pasta para cerca de 700 MB. Mas, para não ficarmos com a /usr somente leitura, usamos também o aufs2. O que ele faz é simular uma partição de leitura e escrita em cima da criada pelo squashfs. Ele faz isso criando uma “camada” em cima da partição /usr. Quando tentarmos ler um arquivo de lá, o aufs2 vai nos mostrar o que foi comprimido com o squashfs. Se tentarmos criar um arquivo, ele o cria em uma outra pasta (que vamos definir), mas nos mostra como se tivesse criado na /usr, nos dando a ilusão que essa partição é de leitura e escrita, quando não é. Não se preocupe com esses detalhes técnicos. Tudo vai ficar mais claro conforme fomos fazendo (espero).
Antes de tudo, instale o pacote squashfs-tools:
sudo apt-get install squashfs-tools
Depois adicione as seguintes linhas ao arquivo /etc/modules:
squashfs
loop
Crie as pastas onde irão ficar as partições virtuais squashfs e aufs2:
sudo mkdir -p /squashed/usr /squashed/usr/ro /squashed/usr/rw
Comprima a pasta /usr em uma imagem dentro de /squashed/usr:
sudo mksquashfs /usr /squashed/usr/usr.sqfs
Adicione as seguintes linhas ao arquivo /etc/fstab:
/squashed/usr/usr.sfs /squashed/usr/ro squashfs loop,ro 0 0
usr /usr aufs udba=reval,br:/squashed/usr/rw:/squashed/usr/ro 0 0
Reinicie o computador. Tudo deve funcionar normalmente, então você pode apagar o diretório /usr, fazendo:
sudo umount /usr
sudo rm -rf /usr
Se houve algum problema, tente voltar para os passos anteriores e descobrir o que deu errado. Qualquer coisa mande um comentário que tentarei ajudar.
Um bônus de comprimir seu /usr é que, além de ocupar bem menos espaço, o computador ficará mais rápido. As máquinas de hoje em dia têm processadores muito mais velozes que os discos, então um tempo maior é gasto lendo um programa no HD do que executando-o. Como os programas estão comprimidos, precisa-se ler menos dados, tornando o computador mais rápido.

Ubuntu 10.04 Netbook Edition - Lindo e muito rápido
No final, o Ubuntu 10.04 está ocupando menos de 1.5 GB do SSD do netbook, que ganhou mais uns anos de vida útil com a Samara. Eu não fiz benchmarks, mas a diferença é visível. Ele está levando 1m30s para iniciar, mais 10s para abrir o Chrome e 30s para abrir o OpenOffice.org. Nada mal para um netbook de 2007
Este post foi baseado no Optimizing Ubuntu to run from a USB key or SD card e [TRICKS] Speed up system with aufs + squashfs.
setembro 28th, 2010 — Dicas
Há algumas semanas fiz um sistema para detectar a operadora de um telefone (motivo de um próximo post). Fiquei empolgado por finalmente começar a brincar com JavaScript e registrei um domínio pra ele: http://qualeaoperadora.de. Então, hoje vi uma propaganda no meu Gmail:
English Speaking – EffortlessEnglishClub.com?learn – 7 Rules You Must Know To Speak English Fast
Hum. 7 regras? OK, vamos ver. Quando entrei no site, encontrei um monte de propagandas e 5 caixas do tipo “Coloque seu e-mail aqui para que possamos te mandar SPAM o eBook”.

Já recebo e-mails o suficiente me dizendo que sou broxa e/ou tenho pinto pequeno. Então fui tentar usar o Mailinator.
* FAIL! *
Eles bloqueiam e-mails @mailinator.com. Tentei um outro domínio do pessoal do Mailinator, @safetymail.info, e mesma coisa. Provavelmente há em algum lugar pela web uma lista dos domínios deles.
A solução? Usar meu próprio domínio!
O Mailinator tem uma funcionalidade muito engenhosa: ele aceita e-mails vindos de qualquer domínio. Assim, basta mudar o do seu domínio pra mail.mailinator.com e pronto.
Fazer isto depende da onde você hospeda seu domínio. Eu hospedo na Dreamhost. Lá, basta:

Vá em Mail -> Custom MX / Gmail

Clique em Edit no seu domínio

Preencha com o servidor MX do Mailinator e clique em Update
Pronto, agora você pode usar o Mailinator normalmente, usando, por exemplo, vitor@mailinator.com.
Ah, e você também pode usar os e-mails @qualeaoperadora.de. Espero que, por este post estar em português, os spammers não consigam adicionar meu domínio à blacklist do Mailinator
janeiro 27th, 2010 — Dicas

Descobri uma ótima promoção da Azul aqui na Campus Party. Você precisa entrar no Viajamos, se cadastrar e fazer algumas coisas que eles pedem. Como postar no blog sobre a promoção
. Se cadastrar em grupos, postar sobre uma viagem, convidar amigos, etc.
Se você for um dos 200 primeiros a fazer isso, ganha uma passagem pra qualquer lugar do Brasil. Bom, não é?
Aproveitando, uma das tarefas é criar um grupo e 10 pessoas entrarem. Quando vocês se cadastrarem, entrem no meu, de Camping.
julho 9th, 2009 — Dicas
Sempre li que os SSDs são infinitamente mais velozes que os atuais HDs. Usar um computador com um drive desses dá um belo ganho de performance. Por curiosidade, fui testar a velocidade do meu HD.
Usando:
$ udevadm info –query=all –path /sys/block/sda
achei o serial do meu HD. Com uma rápida busca, descobri que ele é o Seagate Momentus 7200.3, com 320gb, 7200rpm e 16mb de cache. Nada mal. Ok, vamos ao benchmark.
Para gerá-lo, usei o bonnie++ v1.03c. No Ubuntu, basta:
$ sudo aptitude install bonnie
$ bonnie++
Por curiosidade, rodei ele em uma partição ext3 e em uma ext4. Sempre com um arquivo de 6 GB.
|
——Sequential Output—— |
–Sequential Input- |
|
-Per Chr- |
–Block– |
-Rewrite- |
-Per Chr- |
–Block– |
| FS |
K/sec |
%CP |
K/sec |
%CP |
K/sec |
%CP |
K/sec |
%CP |
K/sec |
%CP |
| ext3 |
40421 |
89 |
48745 |
25 |
28304 |
16 |
47321 |
90 |
66517 |
22 |
| ext4 |
46671 |
96 |
72506 |
24 |
32927 |
15 |
49627 |
91 |
78888 |
23 |
!!!
Impressionante. Não tinha procurado nenhum benchmark ext3 VS ext4. Sabia que este era mais rápido, mas não tanto. Agora entendo o porquê das versões novas das distros (ao menos Ubuntu e Fedora) terem acelerado tanto o boot. Chegaram a incríveis 20 segundos.
Mesmo assim, reza a lenda que os SSDs chegam a 150 MB/s de leitura, o que é mais que o dobro do ext4. Talvez valha a pena comprar um SSD de 16gb para deixar só o SO e aplicativos.
Daqui a alguns anos, quando fizer um upgrade no notebook, certamente será esse.
maio 21st, 2009 — Artigos, Dicas
Hoje tive um problema com uma imagem. Estou organizando junto com alguns amigos o III ENSOL, e a UEPB nos apoiou pagando 75 inscrições para seus alunos. Então, precisei encontrar o logo deles para colocar no site do evento. A melhor que encontrei foi esta:

Como dá pra ver, ela não tem o fundo branco. O do site do ENSOL é laranja. E agora?
Tentei usar o GIMP para resolver, usando a Magic Wand, mas ele não consegue pegar tudo, pois parte do fundo não é 100% branco. Colocando sobre um fundo preto, ficou assim:

Como resolver? Sei que, se eu diminuísse a precisão da Magic Wand, fazendo ela pegar não só 100% branco, mas entre 90% e 100%, por exemplo, melhoraria. Quiçá, resolvesse. Mas, como? Não encontrei essa configuração. Sei que poderia criar um plugin em Python pro GIMP que resolveria, mas como nunca fiz isso, iria demorar.
Então eu vi a luz.
Relembrando as aulas de PDI – Processamento Digital de Imagens -, que paguei semestre passado. Uma das cadeiras mais interessantes até agora, uma pena que, por uma razão qualquer, não aproveitei tanto. Mas aprendi a programar usando o Octave.
O GNU Octave é uma linguagem para fazer cálculos matemáticos, muito parecida com o MatLab. Nela a gente consegue trabalhar com matrizes sem problema algum. Por exemplo, se você tiver uma matriz 3×3 e quer somar com uma outra de mesmo tamanho o que faz? Um for por cada elemento da matriz somando um com o outro? Não! Simplesmente matrizA + matrizB. E o que são imagens que não grandes matrizes de pixels?
A idéia é: passar por cada pixel da imagem e, se ele for mais claro que um determinado valor, transformo ele em magenta. Daí nasceu o Magentinizator!
Fazer isto em Octave é trivial. O código comentado é:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| # Magentinizator v 0.42 - 2009
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revisão 42):
# <vitor@vitorbaptista.com> escreveu este arquivo. Contanto que mantenha este
# texto, você pode fazer o que quiser com esse software. Se nos conhecermos
# algum dia, e você achar que esse programa vale, você pode me pagar uma cerveja
# em troca.
# Vitor Baptista
# ----------------------------------------------------------------------------
path = "uepb.png"; # Caminho para a imagem
threshold = 0xB4; # Pixels com cor maior que 0xB4B4B4
# se tornarão 0xFF00FF
im = imread(path); # Lê a imagem. im agora tem uma matriz
# Largura x Altura x 3 (RGB)
tam = size(im); # Pega o tamanho da imagem
for i = 1:tam(1) # De 1 até a largura
for j = 1:tam(2) # De 1 até a altura
if (im(i, j, 1) > threshold # Se o R for maior que o threshold, e
&& im(i,j,2) > threshold # se o G for maior, e
&& im(i,j,3) > threshold) # se o B for maior.
im(i,j,1) = 255; # Torna aquele pixel
im(i,j,2) = 0; # em
im(i,j,3) = 255; # magenta!
end
end
end
imwrite([path, ".magentinized"], # Concatena strings
im(:,:,1), # R
im(:,:,2), # G
im(:,:,3)); # B |
O resultado ficou ótimo. Não perfeito, mas bem melhor que usando o GIMP e mais que o suficiente pro site do ENSOL.

Se precisar tirar mais o branco, só diminuir o threshold. Lembrando que vai chegar um momento que vai tornar outras partes da imagem também magenta.
Você pode baixar o Magentinizator aqui.
abril 28th, 2009 — Dicas
No FLISOL deste ano fui configurar as máquinas do laboratório onde seria meu minicurso junto com os organizadores. Chegando lá descobrimos que só era permitido acesso via HTTP, ou seja, não dava pra usar o apt-get. Procurando uma solução, encontrei uma dica super simples no fórum do Ubuntu. É só rodar:
# apt-get build-dep -d
E os pacotes serão baixados e salvos em /var/cache/apt/archives. Depois só copiar os .deb de lá, levar para a máquina onde quer instalar e copiar de volta para /var/cache/apt/archives. Aí é só instalar normalmente com apt-get
Vivendo e aprendendo.
abril 14th, 2009 — Dicas
Cansado de pagar R$ 259,00 pelo Oi Conta Total 2, resolvi buscar uma alternativa. Por ter ouvido tanto da 3G ultimamente, fui dar uma olhada. Busquei os planos de 1mb e resumi as informações das três únicas empresas que oferecem o serviço em João Pessoa em:
|
Oi |
Vivo |
Claro |
| Tráfego |
10 GB |
2 GB |
1 GB |
| Valor promocional |
R$ 83,93 (10 primeiros meses) |
R$ 59,95 (3 primeiros meses) |
— |
| Valor real |
R$ 119,90 (cartel?) |
| Modem |
R$ 199,00 |
Gratuito |
R$ 99,00 |
| Valor médio (12 primeiros meses) |
R$ 106,50 |
R$ 114,90 |
R$ 128,15 |
| Comentários |
Ultrapassado o limite de tráfego, R$ 0,10 por mega adicional. |
Ultrapassado o limite de tráfego, velocidade cai para 128 kbps (teoricamente). |
Eles dizem que o plano é ilimitado, mas nas entrelinhas, “O cliente que exceder a franquia de 1GB poderá ter, a exclusivo critério da Claro, sua velocidade reduzida para 128 Kbps até o faturamento de sua próxima franquia”. Ilimitado, né? Então tá… |
Por estes dados, a Oi ganha. Só que estou considerando que a qualidade do serviço em todas é constante, o que não sei se é o caso. Na casa de minha namorada colocaram Vivo há pouco e, apesar da conexão ficar muito lenta as vezes (talvez por terem ultrapassado o limite? horário de pico?), não tiveram problemas. Quando (e se) mudar, faço meu relato.
dezembro 16th, 2008 — Dicas
Há alguns dias conheci o Miro, que é tipo um agregador RSS mas, ao invés de notícias textuais, ele agrega vídeos. O funcionamento é simples: i) você assina a um feed RSS especial com os links e descrições dos vídeos; ii) o Miro lê o feed e fica esperando por novas entradas; iii) quando aparece um novo, ele automaticamente começa a baixar por BitTorrent; iv) quando termina, te avisa e você pode assistir os vídeos no próprio programa e, caso hajam vários, um seguido do outro, numa playlist, como a programação de um canal de TV.
Existem milhares de canais para ele. Neste momento, 5.707, e qualquer um pode criar outros. National Geographic, Discovery Channel e Terra são apenas algumas das empresas que já estão participando. No Miro Guide dá para ter uma idéia da quantidade de material disponível.
Nesse vídeo dá para ver melhor como funciona o programa.
Para instalar no Ubuntu basta digitar em um shell:
sudo aptitude install miro
Infelizmente encontrei alguns bugs usando o Miro nesses dias. O pior foi que, caso você tente assistir a algum vídeo com o Miro deste pacote, ele vai fechar (o famigerado Segmentation Fault). Para resolver este problema, basta abrir como root os arquivos /usr/share/applications/miro.desktop e /usr/share/app-install/desktop/miro.desktop e modificar onde há:
Exec=miro %F
para:
Exec=miro –xine-driver=opengl %F
Depois de instalado, só escolher algums canais que te interessem no Miro Guide e assistir os vídeos. Recomendo assinar a todos os feeds do TED Talks, que são palestras excepcionais sobre vários assuntos.
dezembro 14th, 2008 — Dicas
Há algumas semanas que sempre que instalo/removo/atualizo algum pacote usando o aptitude dá o erro:
Erros foram encontrados durante o processamento de:
system-tools-backends
E: Sub-process /usr/bin/dpkg returned an error code (1)
A instalação de um pacote falhou. Tentando recuperar:
Configurando system-tools-backends (2.6.0-1ubuntu1.1) …
* Starting System Tools Backends system-tools-backends invoke-rc.d: initscript system-tools-backends, action “start” failed.
dpkg: erro processando system-tools-backends (–configure):
sub-processo post-installation script retornou estado de saída de erro 1
Erros foram encontrados durante o processamento de:
system-tools-backends
Como não encontrei nenhum problema além dessa chateação, não tentei resolver. Mas hoje abusei e fui atrás da solução, que é muito simples. Na verdade é só um workaround(leia gambiarra), mas funciona. Simplesmente vá no shell e digite:
sudo invoke-rc.d system-tools-backends stop
sudo dpkg –configure -a
Resolvido.
dezembro 13th, 2008 — Dicas
Há algumas semanas, no IV Natal Java Day, assisti a excelente palestra “Java e a próxima geração de smart cards” do Igor Medeiros e me impressionei. Já tinha ouvido falar que os smartcards eram computadores completos mas nem dei muita bola, até que, com ele falando isso, me toquei do quão impressionante era. Sabe aquela parte metálica dourada de um chip GSM, ou no cartão do banco? Pois é, AQUILO é um computador, com CPU, memória e tudo mais.
Fiquei encucado e resolvi comprar um leitor para brincar um pouco. Procurando pelo São Google, encontrei um na loja da Brando que me interessou:

iMONO 43 in 1 + Sim + Smart Card Reader
43 cartões, além de ler SIM e Smart Card (que eu saiba, a única diferença é no formato (um SIM acho que todo mundo conhece (o chip de celular), e o Smart Card é um cartão como de banco)) por US$ 19 com frete grátis. O dólar subiu bastante nos últimos meses mas, mesmo assim, é tentador. Comprei. Umas 3 semanas depois, chega o pacote vindo de Hong Kong, sem imposto, custando pouco mais de R$ 42, ótimo!
Conectei ele no notebook e coloquei o chip do meu celular para testar (esqueci do pequeno detalhe que teria que comprar um smart card), nada… procurando no Google, encontrei diversos sites ensinando mas nenhum falando do meu leitor. Então entrei na lista do MUSCLE (Movement for the Use of Smart Cards in a Linux Environment) e enviei um e-mail perguntando. Poucas horas depois, o próprio cara que fez a maioria dos softwares/drivers de smart cards pra linux, Ludovic Rousseau, me respondeu.
A solução foi extremamente simples. Pelos logs que passei, ele chutou (e acertou) que meu leitor era compatível com o USB CCID (Chip/Smart Card Interface Devices) e me pediu que fosse nesse site e seguisse as instruções para pegar mais informações dele. Fui e, no final, eu só precisaria compilar o driver libccid que baixei neste site e modificar o arquivo ccid/readers/supported_readers.txt adicionando a linha 0x0BDA:0×0169:iMONO no final. Resolvido.
Para testar, segui as instruções desta página para instalar o MonoSIM, um leitor simples da agenda de SIM cards, e tudo ocorreu sem problemas. No final, o Ludovic adicionou o meu leitor na página dele como “Should work but untested by me”, uma pequena contribuição para quem comprar o mesmo leitor
Agora, comprar um smart card em branco e ver o que consigo fazer.