Simbora – no ar
Você costuma viajar?
Se você estuda fora, trabalha em outra cidade, namora, gosta de passear, enfim, independentemente do motivo prefere dividir uma carona com seus amigos do que viajar sozinho, isto pode te interessar…
A internet hoje nos oferece algumas alternativas para nos aproximar de grupos de pessoas com os mesmos interesses. No caso de dividir carona, existem comunidades no orkut, grupos de e-mails, ou mesmo alguns sites onde podemos postar nosso interesse em oferecer (ou procurar por) carona.
Procurar carona através de comunidades no orkut é rápido e fácil, no entanto existe o revés da segurança e confiabilidade nas pessoas que as oferecem, pois são abertas (públicas) demais.
Grupos de e-mail, oferecem segurança ao reunir pessoas com um certo vínculo entre si, mas trazem o revés do tempo inicial de estabelecimento no grupo e rigidez em seu itinerário. O usuário precisa ter o conhecimento prévio do grupo, pedir sua inclusão ao moderador e, após tudo estabelecido, limita-se a um certo itinerário específico, geralmente carona entre duas cidades.
Sobre sites para carona, apresento-lhes o Simbora.
Simbora
O Simbora reúne:
- A segurança e a confiabilidade dos grupos de e-mail, pois ele é baseado no modelo de redes sociais. Assim, apenas pessoas próximas visualizam caronas entre si.

- Facilidade, pois basta digitar De e Para e, zap, as caronas de seus amigos aparecem. Se você, amanhã, for pra uma outra cidade, basta digitar o nome desta na busca ao invés de ter que descobrir um novo grupo de e-mails.

- A riqueza de um website próprio pra este fim. O Simbora é um mashup e utiliza alguns serviços como o Google Maps para enriquecer os resultados. Portanto, visualize o itinerário, distância, tempo. Veja quem está mais próximo de você. Uma pessoa saindo de São Paulo é algo um tanto genérico!
- Cobertura. O Simbora tem plug-ins que o alimentam automaticamente, por exemplo há o leitor automático (parser) de e-mails trocados entre os grupos de carona. Desta forma, o Simbora se mantém atualizado (sincronizado com as demais fontes).
Experimente
A primeira versão disponibilizada ainda é um rascunho (versão alpha), mas já funciona. Basta acessar:
Quick script to fetch diff history [of a file] using svn
If you wanna see the whole history differences of some file in svn repository, you could use this:
$ svndiffhist file
Retrieving releases...
OK (found 17 steps)
## 908:895
diffs...
## 895:890
diffs...
## 890:880
... etc
Where svndiffhist is the following script:
function svndiffhist {
FILE=$1
echo -n "Retrieving releases..." >&2
releases=$( svn log $FILE | grep '^r[^a-z]' | cut -d " " -f1 |
cut -dr -f2- )
num_steps=$( echo $releases | wc -w )
echo -e "tOK (found "$num_steps" steps)" >&2
# Sort them in ascrending order
#releases=$( echo $releases | tr " " "n" | sort -n )
# Group them as A:B B:C C:D
releases=$( echo $releases | sed 's/ ([0-9]+)/:1 1/g' )
for EACH_STEP in $releases; do
#svn diff -r $EACH_STEP $FILE | gvim -
echo "## $EACH_STEP" >&2
svn diff -r $EACH_STEP $FILE
done
}
A REST client interface for Python
The py-restlib: [http://code.google.com/p/py-restlib] is a GNU GPL library that implements a REST client interface for Python.
Here it goes its Getting Started section:
Introduction
Py-restlib is supposed to be a simple REST client interface for python. But, it also claims that writing a python client to communicate with RESTful applications on the Web should be an easy task.
Getting Started
Download
Check out the latest release using svn:
svn checkout http://py-restlib.googlecode.com/svn/trunk/ py-restlib
svn checkout http://py-restlib.googlecode.com/svn/trunk/ py-restlib
If you want support for translating JSON format into python structures, download json-py package, and unzip it to json-py subdir.
Examples
The REST client
from restlib import *
users = Resource("http://hostname/api/users")
# List all users (GET /api/users)
users.get()
# List user where id==1 (GET /api/users/1)
users.get(1)
# List user where id==1 && foo=='bar' (GET /api/users/1?foo=bar)
users.get(1, foo='bar', ...)
# Create a new user (POST /api/users)
users.create(foo='bar', ...)
etc...
# You are also able to use it that way:
api = BaseResource("http://hostname/api")
api.users.get()
api.users.create(foo='bar')
etc...
The REST server (in this case a Ruby on Rails application)
class Api::UsersController < ApplicationController
protect_from_forgery :except => :create
# GET /api/users
def index
@users = User.find(:all) # FIXME: if param[id] - under construction
request.format=:json if request.format=:html
respond_to do |format|
format.xml {render
ml => @users.to_xml}
format.json {render :json => @users.to_json}
end
end
# POST /api/users
def create # FIXME: under construction
request.format=:json if request.format=:html
respond_to do |format|
format.xml {render
ml => params.to_xml}
format.json {render :json => params.to_json}
end
end
end
Python POST request
If you’re trying to send a python POST request with httplib, but it’s not working like example tells. Try this minor fix:
Here is an example session that shows how to “POST” requests:
>>> import httplib, urllib
>>> params = urllib.urlencode({’spam’: 1, ‘eggs’: 2, ‘bacon’: 0})
>>> headers = {”Content-Type”: “application/x-www-form-urlencoded”,
… “Accept”: “text/plain”}
>>> conn = httplib.HTTPConnection(”musi-cal.mojam.com:80″)
>>> conn.request(”POST”, “/cgi-bin/query”, params, headers)
>>> response = conn.getresponse()
>>> print response.status, response.reason
200 OK
>>> data = response.read()
>>> conn.close()
Thanks to wireshark and the working command below, so example above could be compared.
curl -d foo=bar http://localhost
Xavier na Info Exame (maio/08)
A revista Info Exame, maio de 2008, lançou uma matéria sobre carreiras em linux, entitulada “O pingüim assina a carteira”, e um dos seus exemplos foi o LTC (Linux Technology Center) da IBM.
Tive a oportunidade de ser entrevistado e abaixo seguem alguns trechos da matéria.
Links:
Casamento do Lucas Martorano
Abaixo, seguem as fotos do casamento do briga.
vim – highlight search
Para setar seu vim (vi) para destacar o que procura (to highlight the searched text), use:
:set hlsearch
keywords: highlight destaque destacar search procurar procurado searched text string
vim – smart command completion
Para completar os comandos (:) com TAB (^I):
:set wildchar=<Tab>
:set wildmode=full
Compiz Fusion – linux ao estilo Mac OSX parte2
Em 2006, surgiram as primeiras aparições de um desktop 3D tangível no linux, com o XGL. http://www.dicas-l.com.br/dicas-l/20060606.php
Algum tempo se passou e muito se evoluiu…
O projeto Compiz juntou-se com seu fork Beryl e, agora, chama-se:
http://www.compiz-fusion.org
Criptografia em Linux, utilizando EncFS
Introdução (o que?)
Este tópico descreve o procedimento para criptografia de dados no GNU/Linux, utilizando o sistema de arquivos EncFS.
Público Alvo (pra quem?)
Este tópico deve ser útil para usuários de laptop.
Vantagens e Desvantagens de utilizar o EncFS
Modos de criptografia
TODO
Como utilizar
Instalação
Instalar os pacotes: (utilizar o gerenciador de pacotes de sua distribuição)
- FUSE (Filesystem in Userspace)
- EncFS
Criação do diretório criptografado
Na 1a tentativa de montar seu volume criptografado, ele é criado.
Existem várias opções de criptografia. Caso opte-se pela praticidade, siga os valores default.
$ mkdir ~/.pessoal.enc # dados criptografados (raw data)
$ mkdir ~/pessoal # ponto de montagem (dados legíveis)
$ encfs ~/.pessoal.enc ~/pessoal # na 1a tentativa de montagem, o volume criptografado é criado
Volume key not found, creating new encrypted volume.
Password: [password entered here]
Verify: [password entered here]
O diretório ~/pessoal, agora, é um ponto de montagem de ~/.pessoal.enc e todo o conteúdo que estiver dentro dele (~/pessoal) estará seguro quando offline.
Montando/Desmontando
Montando.
$ encfs ~/.pessoal.enc ~/pessoal
Password: [password entered here]
Diretório legível: (montado)
$ cd ~/pessoal
$ echo "hello foo" > foo
$ echo "hello bar" > bar
$ ln -s foo foo2
$ ls -l
total 8
-rw-r--r-- 1 vgough users 10 2003-11-03 21:44 bar
-rw-r--r-- 1 vgough users 6 2003-11-03 21:44 foo
lrwxrwxrwx 1 vgough users 7 2003-11-03 21:44 foo2 -> foo
Diretório criptografado: (de fato, armazenado)
$ cd ~/.pessoal.enc
$ ls -l
total 8
-rw-r--r-- 1 vgough users 6 2003-11-03 21:44 eEM4YfA
-rw-r--r-- 1 vgough users 10 2003-11-03 21:44 gKP4xn8
lrwxrwxrwx 1 vgough users 7 2003-11-03 21:44 i7t9-m,I -> eEM4YfA
Desmontando.
$ fusermount -u ~/pessoal
Criptografando os dados de seus aplicativos: Firefox, Thunderbird, etc.
Deseja ter criptografados seus emails, informações de calendário, conversas do instant messenger e informações de seu browser? Mova o diretório de configuração de cada aplicativo para dentro do volume criptografado e crie um link de volta. Como no exemplo abaixo:
Antes de iniciar os aplicativos (óbvio), mova seu diretório de configuração para dentro do volume criptografado e link-o de volta. Por exemplo:
cd ~
mv .mozilla ~/pessoal
ln -s ~/pessoal/.mozilla .
Faça o mesmo para mozilla-thunderbird, gaim, evolution, entre outros.
Ambiente Gráfico
Em ambiente gráfico, pode ser mais prático criar starers de aplicativos que, antes de inicializar o aplicativo em si, cheque se a unidade criptografada está montada. Caso não esteja, o próprio starter poderá montá-la, utilizando gtk2-ssh-askpass, x11-ssh-askpass ou zenity. Exemplo:
encfs --extpass=/usr/bin/zenity-encfs $ENC $MNT
http://gentoo-wiki.com/TIP_EncFS
Backup!
Uma vez que todos os dados estão concentrados no diretório criptografado ~/.pessoal.enc, torna-se fácil a realização de backup. Basta copiá-lo para uma mídia removível e, sim, o backup também estará criptografado.
Exemplos de como realizar o backup:
- Compactar o diretório
tar -czf ~/pessoal.enc.tgz ~/.pessoal.ence copiá-lo para um DVD (sugestão: k3b). - Utilizar alguma forma de backup diferencial/incremental (é copiado apenas o que alterou), sem sugestões…
Links externos
Segue:
