Uma das coisas que me irrita no Chromium é a falta de um gerenciador de certificados SSL, como o que existe no Firefox. Isso leva a uma coisa muito chata, que é ter que aceitar o certificado sempre uma nova sessão do navegador é aberta. Como recentemente ativei SSL para o meu blog, usei o CAcert para criar o meu certificado e por isso resolvi encontrar um meio de adicioná-lo como seguro no meu Gentoo. O fato curioso é que o Gentoo também usa o CAcert, logo, isso resolveria dois problemas de uma só vez, já que é bem irritante abrir o https://bugs.gentoo.org/ no Chromium.
Bom, achei a solução aqui. No Gentoo, precisamos ter o pacote dev-libs/nss compilado com a USE flag utils ativada:
# echo "dev-libs/nss utils" >> /etc/portage/package.use
# emerge -av1 nss
Depois basta executar como usuário comum:
$ wget http://www.cacert.org/certs/root.crt
$ wget http://www.cacert.org/certs/class3.crt
$ certutil -d sql:$HOME/.pki/nssdb -A -t "TCu,Cu,Tuw" -n "CACert Class 1 Root Certificate" -i root.crt
$ certutil -d sql:$HOME/.pki/nssdb -A -t "TCu,Cu,Tuw" -n "CACert Class 3 Root Certificate" -i class3.crt
$ rm root.crt class3.crt index.html?url=wget*
O procedimento é o mesmo para qualquer outra entidade de certificação. :~)
A primeira e talvez mais óbvia é que mudei o tema do blog, ainda mais minimalista e limpo em termos de código, já que foi criado do zero. Outra novidade é a largura variável, que se ajusta de acordo com a resolução do usuário, permitindo um melhor uso da área da tela. O código foi atualizado para o (X)HTML5 e claro, validados pelo W3C.
A segunda novidade e não tão aparente é que mudei de hospedagem, desta vez para um VPS (Virtual Private Server) rodando Gentoo, administrado por mim e pelo Rafael Martins. Neste VPS também estão hospedados o GentooBR.org e os blogs dos membros do projeto. As vantagens foram inúmeras, além de rodar numa plataforma que dominamos, acabou me permitindo resolver alguns problemas chatos que eu tinha com XMLRPC, além de acrescentar suporte a SSL e Gzip ativado por padrão (o que tornou o site visivelmente mais rápido pra quem tem conexões mais lentas).
Voltei a usar o KDE, desta vez o 4.5, após um tempo usando o GNOME notei que realmente é um ambiente um tanto ultrapassado e, o que é pior, as mudanças que virão não parecem ser das melhores, espero abordar isso em breve de forma detalhada.
O blog tem estado um tanto abandonado nos últimos tempos, com poucos artigos sendo publicados, mas não posso afirmar que isto irá mudar em breve. Minhas férias estão acabando e ao que tudo indica meu tempo disponível só tende a diminuir, ou seja, ou me torno mais eficiente ou o blog morre. Ou começo a postar vídeos.
Utilizando Nbench, resolvi fazer uma pequena série para avaliar o desempenho do GCC 4.5 em relação ao 4.4 e acabei extendendo os testes para avaliar também o efeito de algumas CFLAGS que utilizo, como ftree-vectorize, fvect-cost-model e o Graphite (-floop-strip-mine -floop-interchange -floop-block). Os testes foram realizados no Gentoo ~amd64, com resultados bem interessantes.
GCC 4.4.5 – snapshot 20100615
-O2 -march=native -ftree-vectorize -fvect-cost-model -floop-strip-mine -floop-interchange -floop-block -pipe
BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)
TEST : Iterations/sec. : Old Index : New Index
: : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 981.4 : 25.17 : 8.27
STRING SORT : 208.72 : 93.26 : 14.44
BITFIELD : 3.9217e+08 : 67.27 : 14.05
FP EMULATION : 137.96 : 66.20 : 15.28
FOURIER : 23004 : 26.16 : 14.69
ASSIGNMENT : 28.349 : 107.87 : 27.98
IDEA : 6063.1 : 92.73 : 27.53
HUFFMAN : 2019.2 : 55.99 : 17.88
NEURAL NET : 45.324 : 72.81 : 30.63
LU DECOMPOSITION : 1422.7 : 73.70 : 53.22
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX : 66.670
FLOATING-POINT INDEX: 51.972
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU : Dual GenuineIntel Intel(R) Pentium(R) Dual CPU T3400 @ 2.16GHz 2166MHz
L2 Cache : 1024 KB
OS : Linux 2.6.34-blackbird-r1
C compiler : x86_64-pc-linux-gnu-gcc
libc :
MEMORY INDEX : 17.837
INTEGER INDEX : 15.790
FLOATING-POINT INDEX: 28.826
Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.
Notei que algumas CFLAGS se comportam melhor no ambiente 64 bits e podem proporcionar, de forma geral, um desempenho maior aos pacotes compilados. As flags são -ftree-vectorize e -ftracer.
A primeira permite fazer a vetorização de loops e a segunda torna as otimizações mais eficientes. Estas flags, em especial a -ftree-vectorize, possuem uma reputação ruim, devido a problemas em sua implementação e seu comportamento em ambientes 32 bits, onde ainda hoje causam problemas isolados.
Entretanto, tudo indica que o cenário no ambiente 64 bits é mais animador, permitindo inclusive o uso delas globalmente, definindo-as no make.conf. O meu atual Gentoo (~amd64) utiliza estas flags mesmo em pacotes problemáticos (ex: Mozilla Firefox) e não apresentou nenhum problema até o momento, sendo que se fosse 32 bits, normalmente eu receberia um Segmentation Fault bem bonito
.
Com relação ao desempenho, geralmente leva a ganhos consideráveis, tendo observado algo em torno de 2% em compactadores. Possui efeito negativo em algumas aplicações, como o ffmpeg, mas no Gentoo não é problema, uma vez que nestes casos flags mais agressivas são filtradas.
Concluindo, se você utiliza o Gentoo 64 bits como desktop, seria bastante vantajoso ativar as flags -ftree-vectorize e -ftracer no seu make.conf, mesmo com um risco um pouco maior de encontrar bugs. Lembrando que não recomendo usá-las em ambientes 32 bits ou em arquiteturas diferentes da x86, por ter um histórico considerável de problemas.
Mais antigos