And… so is this

Bem, assim como anunciado no último post, esse que vos fala estava de mudança para a cidade de São Paulo, e, depois de algumas peripécias que aconteceram nesse processo de migração interior-capital (assim como eu vou contar daqui a pouco). Terminei por ficar totalmente sem tempo com internet disponível para atualizar alguma coisa por aqui (principalmente pela falta de notebook próprio). Sendo assim, fui que fui deixando de lado as atualizações do blog, e quando menos percebi, já se foram alguns meses que estou aqui em São Paulo sem voltar pra minha boa e velha cidadezinha do interior com tempo hábil de conseguir me dedicar a postar alguma coisa descente.

Quando eu vim para a capital, ainda não fazia menor idéia de onde realmente iria ficar, mas tinha alguns lugares indicados e endereços de pensões caso tudo desse errado… Porém, justamente por trabalhar perto de uma das estações da linha azul do metrô, eu estava feliz de morar perto de alguma outra estação da mesma linha, como no final terminou acontecendo. Porém o processo de adaptação, ainda mais pra quem pouco saia de casa pra tentar passar uma semana que fosse totalmente sozinho, não foi, e ainda não está sendo, fácil e acredito que, ainda, muitas coisas vão acontecer.

Voltando… Pouco antes de sair de casa eu havia combinado de ficar na casa de um conhecido, e lá estava eu, tranquilo porque já havia arrumado um lugar para ficar com as malas semi-prontas, mas… como Murphy é Murphy, depois de ter as passagens já compradas e até então ter acertado tudo com o futuro patrão e o emprego já garantido. Um dia antes da partida, fui informado de que teria que arrumar algum outro lugar para morar.

Minha sorte foi que eu tinha outros contatos de amigos que moravam em uma república, e, apesar de não haver vaga na mesma, eu consegui um sofá, por algum tempo, mas mesmo assim, não era nada com que eu poderia contar por muito tempo.

Foi quando, depois de me decepicionar pelo estado das pensões que eu achei, terminei voltando a entrar ao computador da república que eu estava hospedado no sofá para procurar mais alguns lugares e vi que um amigo meu da faculdade, havia me postado um recado onde ele falava que havia vaga na república dele, porém era um quarto pequeno… e foi o que me passou pela cabeça na hora… porra, pra quem não tem nada um quarto super pequeno é tudo o que eu preciso, afinal só vou durmir lá mesmo.

Pronto, estava lá eu, hospedado e com um serviço legal… (continua…)

Add comment Outubro 11, 2009

Procura-se Vaga em República na cidade de São Paulo (SP)

Bom pessoal, depois de descobrir o github e com a reta final da monografia e apresentação da mesma, o blog andou meio jogado as traças, mas no fim, falta só algumas correções finais e já estou formado.

Porém estou com um grande problema :D não tão grande assim, arrumei um emprego na cidade de São Paulo – SP porém, ainda não achei nenhuma república pra morar, acho que foi porque ainda não apelei pra orkut e coisas do gênero, mas se alguém ainda assina o feed do Blog, e conhece alguém que mora em São Paulo que tenha vaga em república, pra quarto inteiro ou meio quarto, por favor entre em contato pelos comentários do blog ou me mandando email direto pelo leandropincini (arroba) gmail (ponto) com .

A preferência de localidade é na linha azul do metrô, da Vila Mariana pra baixo (sentido Jabaquara) até a estação da Conceição.

De antemão já agradeço a todos que puderem ajudar.

2 comments Junho 6, 2009

Hospedando repositórios git com gitosis em um servidor Arch Linux

Ontem resolvi me propor novos desafios e criar um repositório git dentro do meu servidor para projetos pessoais. Antes, eu somente era um usuário da ferramenta, e para montar tal repositório, fui buscar informações com quem havia me dado algumas dicas no início: visitem a wiki do nofxx. Além de algumas explicações e configurações rápidas para o aprendizado da linguagem, também há um screencast muito interessante.

Depois de procurar sobre informações na internet, ele me indicou a gitosis. Uma ferramenta para hospedar repositórios git. Sendo assim, achei alguns artigos que me fizeram ter uma ou outra dor de cabeça, e eis que resolvi escrever o meu.

Instalando a gitosis

Antes de mais nada, faz-se necessária a instalação do git (obviamente) e da python (para instalar a gitosis). Para os dois há pacotes prontos no repositório oficial extra. Utilizando o pacman:

# pacman -S git python

Já com os programas instalados, é preciso criar um novo usuário onde vão residir os arquivos hospedados em disco. Para tal criei um usuário denominado git:

# adduser

Obs: Atenção na hora de criar o usuário, o mesmo pode ter qualquer nome, porém não será possível realizar acesso ao mesmo através do ssh mais tarde, somente acesso físico. Ou seja, uma vez os repositórios criados, o gitosis bloqueia o ssh do usuário para somente acesso via git.

Com o novo usuário já logado, baixe a gitosis através do repositório:

$ cd
$ git clone git://eagain.net/gitosis.git

Para instalá-la, execute o seguinte procedimento:

$ cd gitosis
# python setup.py install

A instalação da gitosis irá criar um repositório inicial na pasta ~/repositories/gitosis-admin.git.

Volte ao seu computador. Caso não haja uma chave de ssh pública ainda, crie uma através do comando:

$ ssh-keygen -t rsa

A chave pública criada geralmente fica em ~/.ssh/id_rsa.pub, utilize o scp para copiar o arquivo para o servidor:

$ scp ~/.ssh/id_rsa.pub git@ENDERECO_DO_SEU_SERVIDOR:/tmp

Obs: Note que git é o nome do usuário criado no servidor anteriormente.

Voltando para o servidor, inicie o servidor da gitosis com a chave copiada e altere a permissão do arquivo post-update:

$ gitosis-init < /tmp/id_rsa.pub
$ chmod 755 ~/repositories/gitosis-admin.git/hooks/post-update

Agora, no seu computador, clone o repositório da gitosis para manipulação do servidor criado:

$ mkdir ~/projects
$ cd ~/projects
$ git clone git@ENDERECO_DO_SEU_SERVIDOR:gitosis-admin.git

Adicionando um novo repositório

Toda manipulação dos repositórios controlados pela gitosis se faz através do arquivo gitosis.conf, encontrado dentro do repositório clonado. Para criar um novo repositório, adicione o seguinte conteúdo ao arquivo gitosis.conf:

$ emacs ~/projects/gitosis-admin/gitosis.conf

[group nome_do_projeto]
writable = nome_do_projeto
members = usuario_do_seu_computador

Obs: não esqueça de apertar <ENTER> ao terminar a linha members.

Obs2: para encontrar encontrar qual conteúdo correto para utilizar na variável usuario_do_seu_computador procure no final da chave pública gerada anteriormente. Por exemplo, usuario@archlinux.

Com o arquivo editado, crie um commit para o mesmo:

$ git commit -a -m "Adicionando permissão ao usuário usuoario_do_seu_computador para o projeto nome_do_projeto."

E logo após de um push para o repositório no seu servidor:

$ git push

Logo em seguida, crie um repositório local para o novo projeto:

$ mkdir ~/projects/new_project
$ cd ~/projects/new_project
$ git init
$ git remote add origin git@ENDERECO_DO_SEU_COMPUTADOR:new_project.git

Então crie algum conteúdo, um commit e faça o push inicial.

$ touch README.txt
$ git add README.txt
$ git commit -m "Criando o repositório"
$ git push origin master:refs/heads/master

Obs: caso ocorra algum erro, preste atenção nas chaves públicas utilizadas e nos dados no arquvio gitosis.conf.

Adicionando novos usuários

O processo pra adicionar novos usuários aos repositórios controlados pela gitosis é bem fácil. Basta copiar os arquivos de chaves públicas dos mesmos para a pasta keydir do repositório renomeando para o nome de usuário e host aos quais os arquivos pertencerem. Segue um exemplo:

Usuário lhe manda o arquivo id_rsa.pub como usuario_pog@computer_do_pog, para achar esses detalhes basta ler o final do arquivo com o cat:

$ cat id_rsa.pub

Sendo assim, faz-se necessário copiar o arquivo para a pasta com o nome alterado:

$ cp id_rsa.pub ~/projects/gitosis/keys/usuario_pog@computer_do_pog

Depois é só adicionar o arquivo a um novo commit e realizar o push do mesmo:

$ cd ~/projects/gitosis/
$ git add keys/usuario_pog@computer_do_pog
$ git push

Pronto, o novo usuário já poderá acessar o repositório permitido no arquivo gitosis.conf.

DICA

Caso você tenha trocado sua porta do ssh, edite o arquivo ~/.ssh/config:

$ emacs ~/.ssh/config

host nome_do_computador
HostName 127.0.0.1
port numero_da_porta

Com essas modificações basta acessar usuario_do_computador@nome_do_computador, não precisando digitar o endereço IP do mesmo.

DICA 2

Adicione o branch master ao arquivo .git/config do repositório do novo projeto:

$ emacs ~/projects/new_project/.git/config

[branch "master"]
        remote = origin
        merge = refs/heads/master

Realizando esta operação para os branchs não é necessário indicar qual você gostaria de atualizar ao executar o comando git pull.

Add comment Março 4, 2009

Configurando o Emacs 23 / Emacs cvs no Arch Linux – Parte 1

O Emacs é tratado, principalmente pelos “vim users”, como um ótimo sistema operacional porém um péssimo editor de textos. Na realidade, aprender a configurá-lo não é uma tarefa fácil, sua curva de aprendizado exige bastante dedicação e é complicado de sair da chamada, estaca zero.

Nesta série vou demonstrar como configurar o Emacs 23, atual cvs, para trabalhar com algumas linguagens de programação que eu utilizo, além de demonstrar algumas configurações pessoais. Para tal, serão usados alguns pacotes encontrados nos repositórios oficiais, alguns pacotes do AUR e outros de downloads diretos, sendo os links destes, disponibilizados durante a série.

Neste primeiro artigo, será demonstrado apenas configurações pessoais.

Para iniciar, instale o pacote emacs-cvs do repositório community:

# pacman -S emacs-cvs

Logo após vá até o arquivo ~/.Xresources e adicione:

$ emacs ~/.Xresources

! Emacs
Emacs.FontBackend: xft
Emacs.Font:Monaco-8

Para que o conteúdo acima funcione é necessário carregar o arquivo .Xresoucres na inicialização de sua interface gráfica, aqui eu utilizo a pekwm, sendo assim, basta editar o arquivo ~/.pekwm/start:

$ emacs ~/.pekwm/start

xrdb -merge ~/.Xresources &

Obs: Você pode escolher a fonte e o tamanho da mesma de acordo com sua preferência. Há algum tempo atrás, publiquei um artigo explicando como instalar a fonte Monaco no Archlinux.

Realizei algumas outras configurações pelo próprio menu gráfico do Emacs. Porém, para facilitar, basta editar o arquivo ~/.emacs e adicionar as seguintes linhas na sessão custom-set-variables.

$ emacs ~/.emacs

 '(blink-cursor-mode nil)
 '(column-number-mode t)
 '(cua-mode t nil (cua-base))
 '(current-language-environment "UTF-8")
 '(indent-tabs-mode t)
 '(indicate-buffer-boundaries (quote left))
 '(js2-indent-on-enter-key t)
 '(make-backup-files nil)
 '(py-python-command "ipython")
 '(python-python-command "ipython")
 '(python-use-skeletons t)
 '(show-paren-mode t)
 '(standard-indent 4)
 '(tab-always-ident t)
 '(tab-width 4)
 '(tooltip-mode nil))

Obs: tais cofigurações são extritamente pessoais. Caso você não deseje utilizá-las, pode cofigurar o Emacs a vontade acessando o menu Options > Customize Emacs > Top-level Customization Group.

A seguir, estão mais algumas configurações pessoais, caso não queira utilizar alguma(s) dela(s), basta pular a sessão.

Desligando o Alarm Bell
Para desligar o alarm bell, adicione ao final arquivo ~.emacs:

$ emacs ~/.emacs

;; alarmbell off
(setq visible-bell 1)
(setq ring-bell-function 'ignore)

Ativando o Syntax Hilighting
Para ativar o syntax hilighting e ter seu texto colorido de acordo com a linguagem de programação, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; turning on syntax hilighting
(global-font-lock-mode 1)

Adicionando uma nova linha no final do arquivo ao salvá-lo
Para adicionar uma nova linha ao final do arquivo quando for salvá-lo, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; autoadd new eof line
(setq require-final-newline t)

Ativando identação com tabs
Para ativar a identação com tabs em seu Emacs, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; tab ident
(setq-default indent-tabs-mode t)
(setq tabify t)
(setq c-basic-offset 4)

Ativando identação com espaços
Para ativar identação com espaços em seu Emacs, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; space ident
(setq-default ident-tabs-mode nil)
(setq tabify nil)

Obs: O Emacs realizará identação somente através de um dos dois métodos. Caso adicione os dois, ele irá utilizar o adicionado por último, para comentar uma linha utilize o caracter ponto e vírgula “;”.

Desligando a Toolbar
Para desabilitar a Toolbar (barra com ícones no topo do Emacs), adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; turn off toolbar
(tool-bar-mode -1)

Desligando a Menubar
Para desabilitar a Menubar (barra de menus), adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; turn off menubar
(menu-bar-mode -1)

Obs: meu Emacs apresentou alguns problemas de renderização ao utilizar tal configuração. Ele escondia visualmente a barra porém não removia o espaço ocupado por ela.

Limpando o lixo criado automaticamente pelo Emacs
Para apagar os arquivos salvos automaticamente e fazer com que o Emacs não salve arquivos de backup, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; clear the trash
(setq delete-auto-save-files t)
(setq make-backup-files nil)

Exibindo o número da linha em que o cursor se encontra
Para exibir o número da linha que o cursor se encontra na status bar do Emacs, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; showing line numbers
(setq line-number-mode t)

Limpando espaços em branco nos finais das linhas
Para limpar os espaços em branco nos finais das linhas, adicione no final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; clear trailing spaces
(global-set-key "C-cw" 'delete-trailing-whitespace)
(add-hook 'before-save-hook 'delete-trailing-whitespace)

Obs: Para apagar os espaços nos finais das linhas sem salvar o arquivo, utilize a combinação de teclas Ctrl+c w.

Extendendo linhas compridas
Por padrão, o Emacs quebra visualmente uma linha com mais de 80 caracteres, para desligar esta função, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; truncation of long lines
(setq truncate-lines nil)
(global-set-key "C-ct" 'toogle-truncate-lines)

Obs: Esta configuração não funcionou automaticamente no meu Emacs, porém eu utilizo a combinação de teclas Ctrl+c t para realizar tal função.

Ativando o color-theme
Para ativar os temas de cores em seu Emacs, é preciso instalar o pacote emacs-color-theme do repositório community:

# pacman -S emacs-color-theme

Logo após, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

(require 'color-theme)
(color-theme-initialize)

Agora, basta escolher qualquer tema de sua preferência. Para tal, execute dada função através da combinação de teclas Alt+x, digite color-theme- e tecle tab, será exibida uma lista com temas disponíveis. O que eu mais prefiro dentro dos padrões é o charcoal-black, porém resolvi fazer meu próprio tema extendendo o tema deep-blue.

Instalando o emacs-redpill-theme.el
Na realidade, como citado anteriormente, este tema nada mais é do que o color-theme-deep-blue extendido, porém caso queiram utilizar, criem o arquivo ~/.emacs-files/emacs-redpill-theme.el com o seguinte conteúdo:

$ emacs ~/.emacs-files/emacs-redpill-theme.el

(eval-when-compile
  (require 'color-theme))

(defun color-theme-redpill ()
  "Deep Blue theme with #242424 background."
  (interactive)
  (color-theme-deep-blue)
  (let ((color-theme-is-cumulative t))
  (color-theme-install
   '(color-theme-redpill
     ;; General
      ((background-color . "#242424"))
    ))
  )
)

;;-- Test
(color-theme-redpill)

E então para ativar o tema, adicione ao final do arquivo ~/.emacs:

$ emacs ~/.emacs

;; redpill-color-theme activation
(load-library "~/.emacs-files/emacs-redpill-theme.el")

Obs: caso não queira editar o arquvio na mão, por qualquer motivo que seje, faça o download através deste link

Nos próximos artigos, ensinarei como configurar as linguagens de programação que utilizo no meu dia-a-dia.

Add comment Fevereiro 23, 2009

Corrigindo bug do hal 0.5.11 no Arch Linux

Algum tempo depois de atualizar o pacote hal do Archlinux para a versão 0.5.11 notei que os meus pendrives não estavam mais montando automaticamente, sem nem pestanejar eu comecei a utilizar o autofs novamente enquanto precisava acessar os drivers. Porém, ontem anoite, um amigo meu que utiliza o XFCE veio me perguntando se eu já havia me deparado com tal problema, e, em seguida, já me deu a solução, eu a apliquei aqui e então estou postando para não esquecer.

Na realidade você precisará editar o arquivo:

# emacs /etc/PolicyKit/PolicyKit.conf

E adicione o seguinte conteúdo:

<config version="0.1">
  <match action="org.freedesktop.hal.storage.mount-removable">
	<return result="yes"/>
  </match>
  <match action="org.freedesktop.hal.power-management.shutdown">
	<return result="yes"/>
  </match>
  <match action="org.freedesktop.hal.power-management.reboot">
	<return result="yes"/>
  </match>
</config>

Note que as tags </config> já existirão no seu arquivo PolicyKit.conf.

Logo após, faz-se necessário reiniciar as daemons:

# /etc/rc.d/fam stop
# /etc/rc.d/hal stop
# /etc/rc.d/dbus restart
# /etc/rc.d/hal start
# /etc/rc.d/fam start

E agora tudo estará funcionando perfeitamente.

5 comments Fevereiro 14, 2009

Previous Posts


Tópicos recentes

Categorias