News: Faz alguns dias que este blog está rodando em um VPS que aluguei na slicehost. Em um primeiro momento fiz a instalação Lamp padrão, contudo isso resultou em um pequeno inconveniente, consumo excessivo de memória ram:

# Consumo de memória com apache
mysql + apache2 rodando wordpress = 165 mb ram

Considerando que meu VPS tem apenas 256 mb de ram resolvi trocar o apache pelo nginx, o resultado foi bem agradável:

# Consumo de memória com nginx
mysql + fcgi + nginx rodando wordpress = 65 mb ram

O processo de instalação foi extremamente simples, e as configurações custaram alguns poucos momentos no google.

# Pacotes necessários:
apt-get install nginx mysql-server php5 php5-cgi php5-mysql spawn-fcgi

Arquivo de configuração do domínio no nginx
cat /etc/nginx/sites-enabled/tarzxvf.com

server {
    listen   80;
    server_name  tarzxvf.com www.tarzxvf.com;
    access_log  /var/log/nginx/tarzxvf.com.access.log;

    location / {
        root   /var/www/tarzxvf.com;
        index  index.html index.htm index.php;

        # this move feed requests to feedburner
        if ($http_user_agent !~ FeedBurner) {
            rewrite ^/feed/ http://feeds.feedburner.com/tarzxvf last;
        }

        # this serves static files that exist without running other rewrite tests
        if (-f $request_filename) {
            expires 30d;
            break;
        }

        # this sends all non-existing file or directory requests to index.php
        if (!-e $request_filename) {
            rewrite ^(.+)$ /index.php?q=$1 last;
        }
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/tarzxvf.com/$fastcgi_script_name;
        include fastcgi_params;
    }
}

Arquivo de inicialização do fcgi
cat /etc/init.d/spawn-fcgi

#! /bin/sh

### BEGIN INIT INFO
# Provides:          spawn-fcgi-php
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts FastCGI for PHP
# Description:       starts FastCGI for PHP using start-stop-daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=spawn-fcgi-php
PID=/var/run/spawn-fcgi-php.pid
DAEMON=/usr/bin/spawn-fcgi
DAEMON_OPTS="-f /usr/bin/php-cgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -P $PID"

test -x $DAEMON || exit 0

set -e

case "$1" in
  start)
        echo "Starting $NAME: "
        start-stop-daemon --start --pidfile $PID --exec $DAEMON -- $DAEMON_OPTS
        echo "done."
        ;;
  stop)
        echo "Stopping $NAME: "
        start-stop-daemon --stop  --pidfile $PID --retry 5
        rm -f $PID
        echo "done."
        ;;
  restart)
        echo "Stopping $NAME: "
        start-stop-daemon --stop  --pidfile $PID --retry 5
        rm -f $PID
        echo "done..."
        sleep 1
        echo "Starting $NAME: "
        start-stop-daemon --start --pidfile $PID --exec $DAEMON -- $DAEMON_OPTS
        echo "done."
        ;;
  *)
        echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2
        exit 1
        ;;
esac
exit 0

Recebi o convite essa tarde e já estou com o UbuntuOne rodando no meu laptop. O processo de instalação foi extremamente simples, não levou 5 min. No pouco uso que fiz ainda não encontrei nenhum problema, o próximo passo é instalar no dekstop lá onde eu trabalho.

Até agora só não me agradou o fato de o programa criar a pasta Ubuntu One no meu $HOME. Eu sou meio nervoso em se tratando da organização do meu $HOME, mas acho que posso me acostumar, ou achar onde mudar essa configuração e acrescentar um . (ponto) no início da pasta, afinal o que os olhos não vêem o cérebro não processa =)

E aqui quem quiser pode ver uma screenshot do UO rodando.

Não sei quando foi, mas aconteceu. Era algo que eu imaginava a algum tempo: um dropbox da vida mantido pela canonical e integrado ao Ubuntu. O projeto em Beta se chama UbuntuOne, e infelizmente depende de um “invitation” para participar ( eu já solicitei o meu ).

Na versão gratuita são oferecidos 2gb de espaço para o usuário, um ícone na área de notificação permite o acesso as funcionalidades do produto, que no momento são: integração com o Nautilus, capacidade de compartilhar arquivos com outros usuários, sincronização e uma interface Web que permite o acesso aos dados.

Alem da versão gratuita,existe também a versão paga, que por enquanto tem como único diferencial o espaço, são 10gb por 10 doletas mensais.

Antes que alguém pergunte, o protocolo em que está sendo desenvolvido o UO é livre e o cliente é open source. Contudo o servidor é da Canonical e não existem planos de disponibilizar o código fonte! Mas nada impede que alguém desenvolva um servidor próprio baseado nas especificações públicas.

Em um futuro próximo vai ser liberado uma API(fato) em cima do CouchDB(meio-fato) para que desenvolvedores possam projetar suas apps e trabalhar diretamente com o UO. Isso vai servir para facilitar a sincronização de dados dos diversos aplicativos do Ubuntu entre máquinas diferentes.

Update:
Leia também: http://tarzxvf.com/ubuntu-one-primeiras-impressoes

Ontem a noite fiz a instalação do Ubuntu 9.04, e até agora só tive 4 problemas. São eles:

- O driver Open Source para placa de Vídeo ATI as vezes “pisca” a tela.
- O driver proprietário fglrx causa um crash no sistema.
- O Liferea trava logo depois de abrir.
- O ctrl+alt+backspace não funciona.

Os 3 primeiros são bugs, e só me resta esperar uma atualização. Já o lance do backspace dizem que é feature! Tá bom…
Enfim, para desabilitar essa “feature” basta adicionar no fim do seu xorg.conf:

Section "ServerFlags"
        Option     "DontZap"         "False"
EndSection

Outra alternativa válida é rodar:

pascal@workaholic:~$ sudo apt-get install dontzap

seguido de:

pascal@workaholic:~$ dontzap – -disable

Não é de hoje que o uso de repositórios versionados como o git, bazaar, subversion e outros, se tornou comum. E com a popularização dessas ferramentas, muitas implementações interessantes tem sido feitas para outras áreas, alem do desenvolvimento de software. Uma delas – e que eu já procurava a algum tempo – é o etckeeper, que como o próprio nome sugere mantem o /etc do seu sistema em um repositório versionado.

Depois de instalado, o etckeeper se integra ao gerenciador de pacotes e comita cada alteração após a instalação de softwares ou atualização do sistema. É realmente muito prático. Alem disso você pode realizar commits manuais após alterações nos seus arquivos, mas se você esqueceu de comitar não tem problema, o etckeeper comita para você na próxima vez que o seu gerenciador de pacotes for acionado.

Como instalar e usar o etckeeper ( procedimento executado em um Ubuntu 8.10 )

* Instale os pacotes

root@saltador:~# apt-get install git-core gitk etckeeper

* Crie o repositório

root@saltador:~# etckeeper init

* Realize o primeiro commit ( fundamental para iniciar o rastreamento dos arquivos )

root@saltador:~# etckeeper commit “primeiro commit”

A partir daqui seu /etc já está sendo versionado, você pode testar modificando algum arquivo de configuração, ou utilizando o apt-get para atualizar, remover ou instalar programas.

* Você pode conferir as alterações através do aplicativo gráfico gitk

root@saltador:~# cd /etc
root@saltador:/etc# gitk

Meu interesse real é manter centralizado e versionado as configurações dos servidores que administro, vou estudar a ferramenta e confirmar essa possibilidade.

nota: Nos comentários do artigo onde descobri o etckeeper, existe algumas sugestões alternativas. Assim que encontrar o método ideal eu posto os resultados e um guia prático.

Ultimamente tem se falado muito sobre as modificações no processo de boot do linux feitas por dois desenvolvedores da Intel. As estimativas são de que em breve teremos máquinas com o boot de 10 segundos. Legal não?


Para medir o tempo do boot foi usado o Bootchart um simpático pacote que vem nos repositórios do ubuntu! A instalação é da forma tradicional:

apt-get install bootchart

E pronto! Apenas isso, prático não? O resultado você pode conferir em um pós-boot no diretório /var/log/bootchart/

Eis aqui o bootchart gerado no meu Notebook.