Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.
cover do http://fernandoike.com

Wordpress to Octopress: Performance comparisions

26 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Continuing to comment a little bit more about the blog change. Previously it was Wordpress and now it’s Octopress. I’ll show you data based little test.

To make the test, I used Webpagetest that is avaliable in many cities around the world to test performance from user perspective. It’s very interesting to test it in many countries, but for this test I used only its Brazilian instance that is in Sao Paulo.

Wordpress

My old blog (wordpress) was hosted in Dallas and its major audience is in Brazil, it isn’t bad. In the test, its time is 6 seconds and 37 requests. Considering that I haven’t done any performance tuning (linux kernel, apache, etc.).

Only one of the test tasks was worse: FBT (First Byte Time). Probably, the numbers would be better if I changed Apache, PHP or MySQL. Bellow, see more data about this test.

Octopress

To migrate to Octopress, my blog lost a little bit of functionalities but nothing essencial. The main functionalities as text posts were preserved.

Octopress is Jekyll based, and it is a powerful framework that generates static pages. To write a post, it’s very simple. You write using Markdown syntax. It is fantastic because the web server doesn’t need to process some languages (Python, PHP, Ruby, etc.). Take a look below and you’ll see that my blog has improved.

If I keep my enthusiasm, I will make more comparisions. My partial conclusion about Octopress and Jekyll: They are fantastic tools to post on blogs. Following there is a comparative summary table.

blog requests time
wordpress 37 6,437s
octpress 32 4,371


PGVM

25 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

O PGVM é um projeto muito interessante, inspirado no RVM (Ruby Version Manager), ele permite gerenciar múltiplas e diferentes versões do PostgreSQL num mesmo computador.

Caso você esteja usando o PGVM e Debian poderá ter problema para compilar algumas versões do PostgreSQL porque estas versões tem um pequeno bug ao executar o ”./configure”. Ele não atribuem alguns parâmetros para variável do LDFLAGS. Se estiver curioso para ler mais sobre, recomendo ler a discussão na lista dos desenvolvedores do PostgreSQL(pgdg-hackers). Exemplo do erro:

Se quiser ver os erros de compilação do PGVM, pode ver no arquivo make_error.log

1
$less ~/.pgvm/src/postgresql-9.2.2/make.error.log

Para contonar este problema de compilação, basta passar os parâmetros para variável LDFLAGS antes e usar o PGVM.

1
LDFLAGS="-Wl,--as-needed" pgvm install 9.2.2

Isso não é necessário para as versões mais recentes da séries 9.2, 9.1 e 9.0 (não testei em outras séries como 8.4) mas para instalar a 9.2.2, 9.1.7, 9.0.11 e (respectivamente as versões das séries) anteriores terá que obrigatoriamente adicionar os parâmetros no LDFLAGS. ;)



Otimização de imagens no blog

24 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Continuando a série sobre optimização de sites…

Meu blog foi migrado para Octopress, um pouco da saga pode ser lida aqui, e na migração houve uma melhora significativa de performance. Porém isso pode ser perdido por uma distração de usar imagens com tamanho (em bytes) relativamente grande.

No teste com Webpagetest, meu site estava levando mais de 10 segundos para ser aberto por usuário e o tamanho da página principal passava de 1 Megabyte.

Pensando em como melhorar o resultado e uma pesquisa no pai dos burros (Google) do século 21, achei do programas que ajudam a otimizar as imagens: pngcrush e o famoso imagemagick.

Alguns testes usando ambos para otimizar as imagens sem perder muita qualidade. Para otimizar imagens com formato png, usa o pngcrush com os parâmetros abaixo:

$pngcrush -rem alla -brute -reduce imagem.png resultado.png

Para arquivos de imagem JPEG, pode utilizar as opções que estão listadas abaixo:

convert -strip -interlace Plane imagem.jpg resultado.jpg

Para não ter que fazer arquivo por aquivo a otimização das imagens, fiz um script bem simples que executo sempre antes de criar um post novo.

Depois de executar o script e fazer o deploy das novas images, já é perceptível a melhora de peformance, veja as notas do Webpagetest e performance:

O tamanho total da página principal do blog diminui por volta de 50% e o tempo de resposta do blog também diminuiu perto dos 40%. Uma significativa diferença se considerar somente a otimização das imagens mas o mais importante é a melhora do tempo de resposta para o internauta. :)

Obs.: Antes que esqueça, este tipo de técnica está sendo considerada FEO. Um pouco de cuidado com mais este buzzword, não se empolgue demais. ;)



Syslinux e múltiplas distribuições no pendrive USB

20 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Depois de alguns meses do Ulisses (thebug) Castro me atormentar para publicar, segue um documento rápido para quem trabalha com muitas instalações de linux em ambiente corporativo.

A instalação de distribuição linux usando CD ou DVD é um processo relativamente rápido hoje. Se estiver fazendo a instalação em poucos computadores é uma tarefa também tranquilo mas se estiver com um volume grande de instalação e sua infra-estrutura de rede não estiver preparada para instalação em massa de algumas centenas de servidores o processo de instalação será manual e tedioso. Para alguns é um bem tedioso fazer esse tipo de operação.

Uma das partes que realmente incomoda (ao menos para mim) é ter que carregar algumas mídias de CD /DVD com alguns sabores de distribuições Linux, então perguntando se era possível ter um pendrive USB (USB flashdrive) que tivesse esses instaladores.

No vasto oceano de informações (internet) tem um excelente documento escrito por David Heller sobre instalação de Red Hat em USB flashdrive. Porém é possível usar esse documento para qualquer outra distribuição, e o programa chave para conseguir realizar a tarefa é o famoso Syslinux.

No caso desta nota, foi preparado para duas distribuições: Debian e Red Hat (provavelmente funcionará no CentOS e Fedora) com seus respectivos instaladores. Presumindo que já tenha instalado o syslinux via pacote iremos e tenha um pendrive disponível para uso . Faça backup de seus dados, sem garantias de integridade de seus dados.

Supondo que o pendrive é reconhecido por seu linux como “/dev/sdb” e a partição dele é reconhecida como “/dev/sdb1”. Segue:

1 - A imagem mbr está localizada em ”/usr/lib/syslinux/” e usaremos o dd para copiar a imagem mbr para o pendrive.

#dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdb

2 - Após copiar o imagem mbr, copie o syslinux para o pendrive na partição do mesmo.

#syslinux /dev/sdb1

3 - Montar o pendrive em ”/mnt/pendrive”.

#mount /dev/sdb1 /mnt/pendrive

4 - Copiar o menu.c32, localizado em ”/usr/lib/syslinux” para o pendrive.

#cp /usr/lib/syslinux/menu.c32 /mnt/pendrive

5 - Criar os diretórios para os instaladores do Debian e Red Hat.

#mkdir /mnt/pendrive/debian64
#mkdir /mnt/pendrive/rh64

6 - Baixe o instalador do Debian para pendrive. Para esta nota, foi usado a versão do Lenny AMD64bits, também foi testado com o Lenny i386, Etch AMD64 e I386.

#wget http://ftp.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/boot.img.gz

7 - Descompactar a imagem do instalador Debian.

#gunzip boot.img.gz

8 - Anexar (falta de nome mais apropriado) num dispositivo loopback para ver o conteúdo da imagem.

#losetup /dev/loop0 boot.img

9 - Mountar o dispositivo loopback com a imagem do instalador Debian.

#mkdir /mnt /temp
#mount -o loop /dev/loop0 /mnt/temp

10 - Copiar o kernel e a imagem initrd do Debian.

#cp /mnt/temp/linux /mnt/pendrive/debian64
#cp /mnt/temp/initrd.gz /mnt/pendrive/debian64

11 - Desmontar o ponto de montagem /mnt/temp.

#umount /mnt/temp

12 - Liberar o dispositivo loopback usado para imagem Debian.

#losetup -d /dev/loop0

No caso do Red Hat, será suposto para essa nota que já tenha a imagem do mesmo. Os procedimentos funcionaram para a série 4.X e 5.X do Red Hat Enterprise.

13 - Mountar a imagem de instalação do Red Hat, no caso aqui , usamos uma imagem de DVD.

#mount -o loop rhel-5.2-server-x86_64-dvd.iso /mnt/temp

14 - Copiar o kernel Red Hat e o initrd para o diretório ”/mnt/pendrive/rh64

#cp /mnt/temp/isolinux/vmlinuz /mnt/pendrive/rh64
#cp /mnt/temp/isolinux/initrd.gz /mnt/pendrive/rh64

15 - Demontar a imagem do DVD Red Hat.

#umount /mnt/temp

16 - Para ter um menu com opções ao iniciar um servidor/computador com o pendrive com syslinux, precisará ter um menu com as opções de boot. O syslinux buscará o arquivo syslinux.cfg, usando o seu editor favorito, seguindo essa nota , ficará como abaixo:

#vi /mnt/pendrive/syslinux.cfg
DEFAULT menu.c32
MENU TITLE Instalação Automatizada por pendrive
LABEL Debian Lenny
MENU LABEL Debian Lenny AMD 64 bits
KERNEL debian64/linux
APPEND linux initrd=debian64/initrd.gz priority=low vga= normal quiet –
LABEL Red Hat 5 Update 2 AMD64
MENU LABEL Red Hat 5 Update 2 AMD 64
KERNEL rh64/vmlinuz
APPEND linux load _ramdisk= 1 initrd=rh64/initrd.img

O “MENU TITLE” pode escrever o que for mais conveniente. O “MENU LABEL” é o descritivo de opção que aparecerá no momento do boot. O APPEND são as opções para iniciar de cada instalação, no caso do Debian está configurado para o debconf fazer todas as perguntas da instalação. Pode mudar para o padrão das imagens de CD/DVD que é o médio alterando de “priority=low” para “priority= medium”. Também é possível automatizar a instalação do Debian e Redhat usando os recursos de Seed (Debian) ou o Kickstart (Red Hat) mas isso ficar para outra nota.

17 - Por fim, copiar as imagens de instalação (Debian e Red Hat) para ”/mnt/pendrive”. Lembre-se que o tamanho do pendrive pode limitar a quantidade de imagens que pode usar ao mesmo tempo, como uso um pendrive de 4GB, foi copiado a instalação do Debian Lenny via Rede (netinstall) e o DVD completo da instalação do Red Hat 5.2.

#cp debian-testing-amd64-netinst.iso /mnt/pendrive
#cp rhel-5.2-server-x86_64-dvd.iso /mnt/pendrive

18 - O fim com uma imagem de um exemplo de um pendrive preparado para múltiplos instaladores Linux. Outras distribuições Linux também permitem este tipo de instalação, teste aí e avise .

dd if=/ sr/lib/syslinux/mbr.bin of= /dev/sdb

syslinux /dev/sdb1
mount /dev/sdb1 /mnt/pendrive

cp /usr/lib/syslinux/menu.c32 /mnt/pendrive
mkdir /mnt/pendrive/debian64
mkdir /mnt/pendrive/rh64

wget http://ftp.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/boot.img.gz

gunzip boot.img.gz
losetup /dev/loop0 boot.img
mkdir /mnt /temp
mount -o loop /dev/loop0 /mnt/temp
cp /mnt/temp/linux /mnt/pendrive/debian64
cp /mnt/temp/initrd.gz /mnt/pendrive/debian64

umount /mnt/temp
losetup -d /dev/loop0

cat /mnt/pendrive/syslinux.cfg
DEFAULT menu.c32
MENU TITLE Instalação Automatizada por pendrive
LABEL Debian Lenny
MENU LABEL Debian Lenny AMD 64 bits
KERNEL debian64/linux
APPEND linux initrd=debian64/initrd.gz priority=low vga= normal quiet –
LABEL Red Hat 5 Update 2 AMD64
MENU LABEL Red Hat 5 Update 2 AMD 64
KERNEL rh64/vmlinuz
APPEND linux load _ramdisk= 1 initrd=rh64/initrd.img

cp debian-testing -amd64- netinst. iso /mnt/pendrive
cp rhel-5 .2- server-x 86_64-dvd .iso /mnt/pendrive
dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdb

syslinux /dev/sdb1
mount /dev/sdb1 /mnt/pendrive

cp /usr/lib/syslinux/menu.c32 /mnt/pendrive
mkdir /mnt/pendrive/debian64
mkdir /mnt/pendrive/rh64

mount -o loop rhel-5.2-server-x86_64-dvd.iso /mnt/temp

gunzip boot.img .gz
losetup /dev/loop0 boot.img
mkdir /mnt /temp
mount -o loop /dev/loop0 /mnt/temp
cp /mnt/temp/isolinux/vmlinuz /mnt/pendrive/rh64
cp /mnt/temp/isolinux/initrd.gz /mnt/pendrive/rh64

umount /mnt/temp
losetup -d /dev/loop0

cat /mnt /pendrive/syslinux.cfg

cp debian-testing -amd64- netinst. iso / mnt/ pendrive
cp rhel-5 .2- server-x 86_64-dvd .iso /mnt /pendrive


Meetup Web Performance: Boas práticas para Front End Optimization

20 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Quando pergunto o que faço atualmente, eu brinco e digo que trabalho com ”Aceleração de bytes”. O que não deixa de ser verdade com a devida licença poética.

Como parte do conhecimento com o meu trabalho atual, escrevi uma apresentação que fala um pouco sobre Web Perfomance. Ela está disponível no Slideshare e pode vê acessando aqui.

O Alex Soares já estava organizando um Meetup sobre Web Performance e já estava preparando a primeira reunião do Meetup para bater um papo e passar um pouco de sua experiência sobre o tema.

Web Performance é muito diversificado, então para este primeiro meetup a proposta é abordar um pouco sobre cache e o novo buzzword Fron End Optimization (FEO).

Na página do Meetup tem mais detalhes sobre a apresentação e local.



Wordpress para Octopress: Comparação de Performance

18 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Continuando a comentar um pouco mais sobre a mudança do blog que anteriormente era Wordpress e agora é Octopress. Vou mostrar alguns dados interessantes numa comparação simples e sem critério científico.

Para fazer o teste, usei o Webpagetest que tem muitas cidades no mundo para fazer o teste de performance na perspectiva do internauta. Ele é muito interessante para testar em diferentes países, mas para este teste usei apenas a instância do Brasil dele que está em São Paulo.

Wordpress

Para um blog que está em hospedado em Dallas e tem seu maior público na região sudeste do Brasil até que o tempo para um internauta ver o site não está mal. Está ali na casa dos 6 segundos para um total de 37 requisições e considerando que o servidor não tem nenhum tipo de ajuste de performance em qualquer parte (kernel, apache, MySQL, etc.).

A única nota sofrível é o FBT (First Byte Time), isso é porque não fiz nenhum ajuste de performance (tuning) no Apache, PHP ou MySQL.

No próximo quadro você verá outras informações como tempo de renderização, total de bytes, etc.

Octopress

Meu blog perdeu algumas funcionalidades ao migrar para o Octopress mas nada muito significativo que impacte fortemente na audiência ou uso básico para postar.

Destacando que o Octopress é baseado no Jekyll que possua vez, gera conteúdo estático (html simples), ou seja, não precisar de nenhuma linguagem de programação embutida no servidor.

É muito provável que esse seja a grande diferença com o Wordpress do ponto de vista de peformance.

O tempo do site caiu para 4 segundo os e número de requisições diminuiu. Se fosse um site com mais imagens, provavelmente a diferença de performance seria muito maior. Veja que melhorou as notas do PageSpeed. Aos menos não tenhum nota em vermelho.

Ah, comentei que diminuiu mas vai aí a imagem com mais informações:

Se eu mantiver o pique, vou fazer mais algumas comparações. Um conclusão que posso arriscar dizer neste pouco tempo usando Octopress é que se você tem um pouco mais de conhecimento de TI e posta com frequência relativamente exparsar , você tem uma excelenta ferramentta pra blogar

Um pequeno sumário com os dados dos dois motores de blogs.

blog requisições tempo
wordpress 37 6,437s
octpress 32 4,371s

Se gostou ou não ou mesmo tem outras considerações, comente aí embaixo. ;)



PGBR 2013: Chamada de Trabalhos

16 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Já comentei do Bueno?(a memória anda caduca…) Bom, o nome dele é Luis Fernando Bueno: Pesquisador, professor, especialista em Geoprocessamento (vulgo GIS), pai de família, nerd, sem contar que ele é uma pessoa intrépida e serelepe! Por que estou falando dele?

Simples!!! Ele mora em Porto Velho, capital de Rondônia e muito próximo do extremo leste do Brasil. Ele é um dos principais incentivadores de Software Livre/Código Aberto e principal do PostgreSQL e PostGis.

Lembro que alguns anos atrás o Bueno convidou-me para falar sobre PostgreSQL em Porto Velho. Foi uma das experiências mais incríveis que tive pois o pessoal lá foi muito hospitaleiro e também que a paisagem é imponente.

Além dessas coisas todas, ele agora é o Big Kahuna da PGBR 2013!

Ah… Nada mais justo para uma das pessoas mais importantes de GIS no país. Ele é timoneiro para que a PGBR 2013 aconteça e o responsável por levá-la para Porto Velho.

Ele postou hoje na lista do PostgreSQL Brasil a chamado de trabalhos. Eu já não tenha mais assuntos interessantes sobre o PostgreSQL mas com certeza você que lê este artigo pode apresentar para este (eu) velho batuta coisas bem legais que esteja fazendo com o PostgreSQL. Não seja tímido e nem se apequene, o evento é muito bacana e com certeza você irá participar de um dos principais eventos de banco de dados na América Latina.

P.S.: Ah, não esqueça de visitar a Ferrovia Mamoré!



Motor novo: Octopress

15 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Eu estava planejando migrar algum tempo do Wordpress para o Octopress. Os principais motivos são:

  • Ruby: Aprender a fuçar um pouco mais no Ruby.

  • PHP: Deixa o PHP de lado, nada contra em especial. Apenas acho que ele e eu já tivemos um bom relacionamento, às vezes turbulento mas posso afirmar que tivemos bons momentos.

  • MySQL: Também tivemos um bom relacionamento mas com a mudança de direção depois que ele foi comprado pela SUN e posteriormente pela Oracle. Ora de desbravar outras tecnologias. Tenha calma, não larguei o PostgreSQL!!!

  • Wordpress: Ele é bem prático de usar mas ter que estar sempre “online” para editar não é algo que me agrade. Ele provavelmente vai continuar sendo um dos principais motores para blog mas a concorrência está cada vez mais acirrada: Twitter, Facebook, Tumblr, etc.

Ah, claro! Sou muito grato à ele, nós nos conhecemos desde a versão 1.5 que tinha uma layout horrível mas atendia bem para o que precisava na época.

Infelizmente eu perdi muito conteúdo que já publiquei, considerando que comecei a escrever num blog em 2002 é muita coisa. Meu blog iniciou com o blosxom que era um script perl rodando em CGI, depois foi para drupal por um breve tempo. Aí entrou o wordpress que foi seu motor por muitos anos…

Agora mais uma mudança de motor:

  • Octopress: Ainda aprendendo como ele funciona e adaptando para mantê-lo próximo das funcionalidade que tinha o blog no wordpress. Entenda funcionalidade na perspectiva de você leitor. =o)

Espero em breve postar aqui para vocês algumas diferenças de performance no ponto de vista do internauta, visto que hoje é o meu principal trabalho.

Ah, claro! Deploy dele pode ser por Rsync ou Git. Fantástico!



Palestra na Campus Party

1 de Fevereiro de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

bannerslcampusparty

Campus Party é um evento interessante, um público bem diversificado e uma “zona organizada”. A minha apresentação poderia ser melhor mas eu não consegui me concentrar muito bem pois as outras apresentações estava com o áudio bem alto. Estava tão alto que não mal conseguia ouvir meus pensamentos. Pelo pouco que vi da Campus Party, essa bagunça faz parte. Quem sabe se na próxima já estaja mais acostumado com a “bagunça”.  ;)

.Para quem quiser ver a apresentação, está no slideshare.