Archive for category Linux
Tutorial: nginx + Lua
Publicado por Lucas Hermann Negri em Linux, Lua, OpenSource em 6, novembro 2009
Objetivo: configurar um servidor web que sirva conteúdo dinâmico utilizando a linguagem de programação Lua.
Pilha: Arch Linux, nginx, wsapi, fastcgi e Lua.
1º Passo: instalação dos pacotes
# pacman -Sy nginx fcgi
$ yaourt -S wsapi spawn-fcgi
2º Passo: configuração do nginx (web server)
Adicionar o seguinte conteúdo na seção http->server do arquivo /etc/nginx/conf/nginx.conf :
location ~ \.lua$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.lua;
fastcgi_param SCRIPT_FILENAME /srv/http/nginx$fastcgi_script_name;
include fastcgi_params;
}
3º Passo: Hello World
Criar o arquivo /srv/http/nginx/index.lua com o seguinte conteúdo:
require('wsapi.response')
require('wsapi.request')
return function(env)
local resp = wsapi.response.new()
resp:write('Hello world!')
return resp:finish()
end
A cada requisição, a função retornada pelo script é executada (o script só é carregado uma vez por instância).
4º Passo: ativar instâncias do FastCGI
$ sudo spawn-fcgi -F 4 -p 9000 -f /usr/bin/wsapi.fcgi
F (fork) é o número de filhos, p é a porta a ser utilizada e f o lançador.
5º Passo: teste:
$ sudo /etc/rc.d/nginx start
URL de acesso: localhost
Pronto.
Intel GM965 vs performance 2D
Publicado por Lucas Hermann Negri em Benchmarks, GTK, Linux em 6, março 2009
Com o novo Xorg 1.6, meus antigos problemas com a performance 3D da minha Intel GM965 (aka X3100) acabaram, mas a performance 2D continuava horrível.
Testando outras configurações pro Xorg, cheguei nesta:
Section “Device”
Identifier “Card0″
Driver “intel”
VendorName “All”
BoardName “All”
Option “AccelMethod” “exa”
Option “MigrationHeuristic” “greedy”
Option “ExaNoComposite” “true”
EndSection
OK. Os métodos de aceleração suportados são: XAA (antigo, substituido pelo EXA), o EXA (perofrmance 3D melhorada, mas por padrão gera artefatos em algumas aplicações que usam Qt 4) e o UXA (suporte ao dri2, mas ainda está um pouco instável).
Se não me engano o EXA é usado por padrção, então até ai nenhuma mudança. O que realmente melhorou a performance 2D (e corrigiu alguns bugs) foi o “Option “MigrationHeuristic” “greedy”.
Para testes, usei o programa gtkperf. Antes, uma rodada com 100 repetições demorava 16 segundos. Com a nova configuração, passou para 5 segundos. A performance 3D aparentemente não foi alterada, mas também não testei muito.
lgui 0.6 e ldraw 0.3
Publicado por Lucas Hermann Negri em GTK, Linux, Lua, OpenSource em 7, março 2008
Obs.: Um pouco atrazado, pois já publiquei estas versões a um bom tempo, mas:
Uma nova versão dos bindings do GTK+2.0 para Lua (lgui) e do cairo (ldraw) estão disponíveis para download.
Alguns screenshoots:
lua-gtk e suas dependências – Arch Linux
Publicado por Lucas Hermann Negri em Linux, Lua, OpenSource em 30, outubro 2007
Terminei de montar os pacotes do lua-gtk (bindings do gtk para Lua) e suas dependências. Deu um trabalho danado, pois muita coisa teve que ser mudada para se tornar compilável com os pacotes do Arch.
Os 4 já estão no AUR (as outras dependências já foram empacotadas por outros):
- bitlib (manipulação de bits em Lua)
- cmph (biblioteca de hashing escrita em C) *
- lua-expat (bindings do expat para Lua)
- lua-gtk (enfim!)
* Nota.: Apesar de estar empacotado, não configurei o lua-gtk para utilizá-lo. Quando eu tiver mais tempo eu tento novamente!
Lembrando que o lua-gtk ainda está em estado alfa, e possui alguns bugs (a versão atual, a 0.6, é considerada pelo desenvolvedor como uma versão de desenvolvimento, equanto que a versão 0.5 já se encontra compilada para Linux e Windows no site do projeto no luaforge.org )
Compiz Fusion 0.6.0 – Arch Linux
Publicado por Lucas Hermann Negri em Linux, OpenSource em 23, outubro 2007
Edit.: Agora existem pacotes no repositório “community”, um pacman -Ss compiz mostra os nomes dos pacotes relacionados.
A versão 0.6.0 do Compiz Fusion saiu a pouco tempo, e está mais “polida” do que o release público anterior (0.5.2).
Disponibilizei os pacotes compilados para Athlons (k8) no seguinte link.:
http://download.tuxfamily.org/oproj/compizfusion
Lembrando que o Compiz 0.6.0 se encontra no repositório oficial (# pacman -S compiz-fusion instala três pacotes.: compiz-core, e decoradores de janela para gtk e kde).
AstroMenace
Publicado por Lucas Hermann Negri em Jogos, Linux, OpenSource em 1, outubro 2007
Semana passada me deparei com um blog que recomendava o jogo AstroMenace, jogo estilo space shooter com ótimos gráficos e portável, que até então era de código fechado, mas possuía uma versão gratuita para GNU / Linux. Decidi testar, e para minha surpresa, o jogo estava licenciado pela GPL 3 (para MS-Windows ele é comercializado).
Resultado.: Estou viciado neste jogo.Ótimos gráficos e jogabilidade, com etapas desafiadoras e bem elaboradas. Recomendo!
Site do desenvolvedor: http://www.viewizard.com .
Algumas screenshoots dentro do jogo:
Compiz Fusion no Arch Linux!
Publicado por Lucas Hermann Negri em Linux, OpenSource em 17, agosto 2007
Estou utilizando o Arch a uma semana, e estou impressionado com a qualidade da distribuição.
Ela é muito rápida, e tem um sistema de pacotes muito bem elaborado, para mais informações: http://www.archlinux.org.
Acabei de compilar o release público do compiz-fusion com muita facilidade, graças ao sistema de pacotes do Arch, e estou disponibilizando os arquivos já compilados (somente para quem usa GNOME, pois o compiz não foi compilado com suporte ao KDE), como pacotes para o arch.
Instalação no GNOME (para athlons):
1) Baixe todos os pacotes do endereço: Oproj
2) Instale todos pelo pacman (#pacman -U pacotes)
3) Configure o seu Xorg. Sse você possui uma placa de vídeo nvidia como eu, o caminho mais fácil é:
# nvidia-xconfig --composite --allow-glx-with-composite --render-accel --add-argb-glx-visuals
4) Rode o programa fusion-icon e configure ao seu gosto =)
Tutorial: Como compilar o Torcs (versão do CVS)
Publicado por Lucas Hermann Negri em Jogos, Linux, OpenSource em 26, julho 2007
Introdução =)
Torcs é um jogo de corrido, com os seguintes destaques:
- Boa jogabilidade;
- Apesar de já estar bem “maduro”, ainda está sendo trabalhado (a versão 2.0 promete ter um bom multiplayer);
- Portável ;
A versão presente no CVS é um “pacotão” com carros, pistas e etc, além de conter as última mudanças (e os últimos bugs!).
Passo 1 – Baixar do CVS
Atenção: vão ser baixados por volta de 300mb de arquivos, pode demorar.
cvs -d:pserver:anonymous@torcs.cvs.sourceforge.net:/cvsroot/torcs login
cvs -z3 -d:pserver:anonymous@torcs.cvs.sourceforge.net:/cvsroot/torcs co -P torcs
Passo 2 – Dependências
O jogo depende das seguintes bibliotecas:
- plib, disponível na maioria dos repositórios com o nome de plib1.8.4-dev;
- freeglut , disponível como freeglut-dev;
- openal, versão modificada pelos desenvolvedores do torcs, com o código fonte disponível aqui;
Compile e instale o openal ($ /.configure, $ make, # make install)
Passo 3 – Compilando e instalando o Torcs
Vá para a pasta prefixo/torcs/torcs e ./configure
No Ubuntu, precisei passar para o script o caminho da biblioteca X11 (pré-requisito para o freeglut, então já deve estar instalada), com o comando:
$ ./configure –x-libraries=/usr/lib
Se tudo deu certo, compile e instale:
$ make
# make install
# make datainstall
Para rodar: torcs
Obs.: Apesar do jogo ocupar um bom espaço, a sua compilação é bem rápida.
Medição do tempo e recursos utilizados no boot com o bootchart
Publicado por Lucas Hermann Negri em Linux, OpenSource, Softwares em 21, julho 2007
Se você está afim de descobrir que processos estão consumindo o maior tempo na hora do boot (muito útil para quem quer reduzir o tempo de boot e não sabe onde mexer) ou só quer saber detalhadamente o tempo do boot, existe um programa chamado bootchart, que gera gráficos detalhados do processo de inicialização do sistema, até a inicialização do servidor gráfico.
Instalação:
O método mais fácil é instalar pelo gerenciador de pacotes da sua distribuição. Exemplo no Debian e seus derivados (Ubuntu, Kurumin, etc):
sudo apt-get install bootchart (se você não utiliza o sudo, logue como root).
Alternativamente, você pode baixar os fontes / pacotes no próprio site: http://www.bootchart.org/download.html .
Utilização
Ao reiniciar o seu sistema operacional, o bootchart vai coletar os dados necessários, e depois do boot ser concluído, ele vai renderizar os dados em forma de gráficos, salvas em um arquivo na pasta /var/log/bootchart (você pode configurá-lo para renderizar em outros formato, ou até desabilitar a renderização e renderizar no proóprio site do bootchart).
O que eu pude perceber:
- O programa não prejudica o processo de boot, pois a tarefa mais pesada, que é a geração dos gráficos, é realizada após o boot (com um programa separado, bootchart-render);
- O programa me tirou as dúvidas sobre a diferença de performance de ter o apache + mysql inicializados junto com o sistema. No final das contas, a inicialização deles se dá paralelamente a outros processos, não prejudicando muito.
Configuração + plugins do Vim
Publicado por Lucas Hermann Negri em Linux, Softwares em 22, maio 2007
Após passar algumas horas montando a minha configuração e juntando os melhores plugins, e modificando para o meu gosto, consegui fazer um ambiente relativamente bom para programação (principalmente para C / C++).
* Instalação: Descompacte no seu “home” (Linux) ou equivalente em outros sistemas operacionais.
-> Características:
* Navegação por tags (F8);
* Complementação de código para C e C++; (Requer o icomplete instalado e configurado, google it =) )
* Fechamento de pares e outras frescurinhas;
* Trechos de códigos (semelhante ao do TextMate) (tab expande);
* Dobramento de código; (Atalho: espaço);
Endereço para download: http://www.fileden.com/files/2006/12/22/544068/Vimcfg.tar.bz2


