Usando Dropbox no Linux

Tags: , , — December 18, 2010 @ 6:19 pm

Para quem ainda não conhece, o Dropbox é um aplicativo de compartilhamento de arquivos online, com suporte para Windows, Mac OSX, GNU/Linux e ainda plataformas móveis, como o iPhone OS, Android e Blackberry, além de permitir acesso via qualquer navegador, que permite compartilhar arquivos entre diversos clientes, entre usuários, e ainda publicar galerias de imagens online.

Na minha opinião, a maior vantagem do Dropbox é permitir acesso aos mesmos documentos em casa, no trabalho e no celular.

A maneira mais fácil de utilizar o Dropbox no GNU/Linux é utilizando o plugin oficial para o gerenciador de arquivos Nautilus. Acontece que este método só funciona com o gerenciador de arquivos citado, e ainda tem algumas dependências problemáticas (tive problemas para instalá-lo no Debian).

Como alternativa, existe uma maneira de instalar um cliente de linha de comando como um daemon (programa que roda como um sub-processo, de forma transparente para o usuário), permitindo acesso aos seus arquivos compartilhados com qualquer gerenciador desejado e inclusive por linha de comando. Apesar da desvantagem desta alternativa conter alguns binários de código fechado, ela se torna uma opção bem mais versátil que a anterior.

Para instalar o cliente  de linha comando, você irá precisar previamente dos seguintes requisitos:

  • Versão 2.4 ou superior da biblioteca C
  • wget
  • Python 2.5
  • um navegador web

Com as dependências instaladas, baixe o pacote Dropbox-lnx-x86 (ou a versão x86_64) para sua $HOME (os arquivos serão descompactados no diretório .dropbox-dist).

Versão estável 32-bit:

wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86"

Versão estável 64-bit:

wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"

Após baixar o pacote faça previamente um teste para garantir que os arquivos não serão descompactados diretamente do diretório atual:

tar -tzf dropbox.tar.gz

…E estando tudo certo, descompacte-os:

tar -xvzf dropbox.tar.gz

Após descompactar, inicie o daemon:

~/.dropbox-dist/dropboxd

Após executar o Daemon você deverá receber uma saída como a seguir:

This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=7d44a557aa58f285f2da0x67334d02c1 to link this machine.

Acessando o link fornecido no terminal você deve receber uma mensagem de sucesso no seu navegador (pode ser necessário logar em sua conta do Dropbox), indicando que tudo ocorreu bem. Depois disso, o daemon criará um diretório Dropbox sob sua $HOME, e iniciará a sincronização de arquivos, então você terá acesso aos seus arquivos compartilhados com com qualquer outro computador contendo um cliente Dropbox.

Para não precisar iniciar o daemon manualmente a cada vez que precisar, você pode criar um init script para iniciá-lo junto com o sistema. Para o Debian e Ubuntu, crie um script em /etc/init.d/dropbox, com o conteúdo a seguir e substitua os nomes na variável DROPBOX_USERS com os nomes de usuários que tem o Dropbox instalado:

# dropbox service
DROPBOX_USERS="user1 user2"
 
DAEMON=.dropbox-dist/dropbox  
 
start() {
    echo "Starting dropbox..."
    for dbuser in $DROPBOX_USERS; do
        HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
        if [ -x $HOMEDIR/$DAEMON ]; then
            HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $HOMEDIR/$DAEMON
        fi
    done
}
 
stop() {
    echo "Stopping dropbox..."
    for dbuser in $DROPBOX_USERS; do
        HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
        if [ -x $HOMEDIR/$DAEMON ]; then
            start-stop-daemon -o -c $dbuser -K -u $dbuser -x $HOMEDIR/$DAEMON
        fi
    done
}
 
status() {
    for dbuser in $DROPBOX_USERS; do
        dbpid=`pgrep -u $dbuser dropbox`
        if [ -z $dbpid ] ; then
            echo "dropboxd for USER $dbuser: not running."
        else
            echo "dropboxd for USER $dbuser: running (pid $dbpid)"
        fi
    done
}
 
case "$1" in
 
    start)
        start
        ;;
 
    stop)
        stop
        ;;
 
    restart|reload|force-reload)
        stop
        start
        ;;
 
    status)
        status
        ;;
 
    *)
        echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
        exit 1
 
esac
 
exit 0

…E então execute os comandos a seguir para adicionar o dropbox como um serviço do sistema:

chmod +x /etc/init.d/dropbox
update-rc.d dropbox defaults

Além do script para Debian/Ubuntu, na wiki do Dropbox existem exemplos de versões para Fedora e Gentoo. Na wiki também existe um tutorial para instalar o daemon Dropbox para ser executado para todos usuários (útil para servidores).

Deste modo, sempre que iniciar o sistema e logar com seu usuário você terá acesso aos seus arquivos compartlhados no Dropbox (desde, claro, que possua uma conexão com a internet).

Fonte: http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall

Por que utilizar utf-8?

Tags: , , — December 14, 2010 @ 8:21 pm

Um problema comum que vejo se repetindo constantemente em listas de discussão é devido a codificação de caracteres em páginas web.

Geralmente os desenvolvedores, inexperientes, solicitam ajuda por terem problemas que fazer caracteres acentuados aparecerem corrompidos, como “çã” e acabam adotando soluções pouco robustas, como editar o httpd.conf (no caso de um servidor web Apache) ou usar funções utf8_encode/utf8_decode (no caso de programação PHP).

Acontece que tais problemas ocorrem por causa de divergências na codificação de caracteres e é mais comum em ambientes Windows, que utilizam a codificação defasada ISO-8859-1 (ou latin-1, como também é chamada).

O modo de evitar este tipo de problema, é desenvolver toda a sua aplicação utilizando uma única codificação de caracteres, desde a base de dados até o HTML exibido para o usuário, e também em seu editor de texto ou IDE. Para garantir isto, por exemplo, em uma aplicação web, desenvolvida com PHP + MySQL, rodando em um servidor Apache2 e utilizando utf-8, atente para os seguintes detalhes:

  1. No arquivo de configuração do Apache (geralmente httpd.conf, mas podendo variar de um sistema para outro, no Debian GNU/Linux, o padrão é /etc/apache2/apache2.conf) comente a linha com a diretiva AddDefaultCharset. Como vamos definir a codificação a nível de aplicação, esta diretiva não irá interferir, mas mesmo assim o ideal é deixá-la comentada para evitar surpresas ao colocar a aplicação em produção.
  2. O PHP também tem uma diretiva para definir a codificação padrão, geralmente desabilitada por padrão, no arquivo php.ini (no Debian, em /etc/php5/apache2/php.ini) localize e comente a linha com a diretiva default_charset. Assim como no Apache, tal diretiva não deve interferir, mas ainda assim é ideal deixá-la comentada.
  3. Garanta que seu template HTML contenha a codificação correta definida no cabeçalho, utilizando uma tag meta (<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />). Para documentos XHTML, também é ideal adicionar a codificação no cabeçalho XML (<?xml version=”1.0″ encoding=”UTF-8″ ?>), obviamente esta regra também se aplica para documentos XML.
  4. Seu script principal da aplicação, ou seja, aquele que recebe as requisições, geralmente index.php, deve enviar um cabeçalho http com a codificação para o navegador antes de qualquer conteúdo. Ex: header(“Content-type: text/html; charset=UTF-8″);.
  5. Suas tabelas do MySQL devem ser criadas com a codificação definida explicitamente. Ex: CREATE TABLE foo (…) CHARACTER SET utf8. No MySQL também é possível definir a codificação de caracteres a nível de coluna ou de base de dados, mas a primeira dificilmente será necessária, e eu acho mais usual definir a codificação a nível de tabelas.
  6. Seu editor de texto ou IDE deve estar configurado para salvar arquivos em utf-8. No Eclipse, por exemplo, basta configurar sua Workspace (Window -> Preferences -> General -> Workspace), ou seu projeto (Clique direito -> Properties -> Resource) para utilizar a codificação desejada.

Para ser sincero, em geral apenas os ítens 4 e 6 são suficientes para garantir que sua aplicação exiba textos na codificação correta, mas ainda assim vale a pena configurar cada parte dela.

Alguns desenvolvedores web mais antigos, ou pouco experientes podem acabar sugerindo que se utilize htmlentities para caracteres acentuados, como “&acute” para escrever um “á”. Contudo esta prática é pouco viável para páginas dinâmicas, devido ao tamanho das strings. Por exemplo, nosso simples “á”, utilizando htmlentities, não poderia ocupar um campo char(1), em sua base de dados, precisando de um char(6), além de ser bem mais conteúdo para o navegador carregar ao visitar a página.

Agora a pergunta: Por que utilizar utf-8 ao invés de iso-8859-1?

Bem, existem alguns bons motivos técnicos… Para começar, utf-8 é compatível com caracteres ASCII, então para este não é necessária nenhuma conversão. Também, os caracteres unicode (utf8, utf16 e utf32) foram desenvolvidos inicialmente para substituir ASCII e ISO, então é natural que sejam utilizados no lugar destes. Para finalizar, algumas bibliotecas do PHP, e também de outras linguagens, só funcionam com codificação utf-8, tais como json, simpleXML e Soap, assim, utilizando a aplicação toda em utf-8 você evita converter constantemente caracteres de/para a codificação desejada.

Fontes: http://www.cl.cam.ac.uk/~mgk25/unicode.html, http://wilker-dev.com/porque-usar-utf-8-codificandodecodificando

Flattr – um novo jeito de pagar por conteúdo online

Tags: , — March 15, 2010 @ 1:52 pm

Já pensou como seria poder recompensar os criadores de sites, mídia ou softwares, dos quais você usufrui diariamente, com apenas um clique? Criado pelo co-fundador do piratebay, Peter Sunde, o Flattr é tanto um sistema de micro-pagamentos como uma rede social, que propõe uma maneira fácil e eficiente para isto.

flattr-logo-beta

Usuários da internet, como um todo, podem ser divididos em duas categorias distintas: um é o usuário que usufrui diariamente de serviços, mídia digital e aplicativos distribuidos gratuitamente pela internet e o outro é aquele que cria e publica estes serviços, mídia e aplicativos.

Segundo Sunde, o problema está quando o primeiro usuário deseja, de algum modo, recompensar o segundo. Hoje, não existe uma maneira eficaz de garantir que os esforços de quem publica algo, sejam convertidos em dinheiro a partir daqueles que usufruem deste trabalho. Uma opção seriam os métodos tradicionais de doações (transferências online, PayPal, PagSeguro…), estes, contudo, são pouco práticos ou flexíveis.

O Flattr propõe resolver este problema de uma maneira simples e transparente.

Os interessados, devem pagar, mensalmente, uma quantia fixa, que será distribuída posteriormente. A partir daí, seu funcionamento se assemelha muito ao Digg, ou Tweetmeme. Os criadores de conteúdo incluem um botão do Flattr em seu website, e quando um usuário clica neste botão, uma parte de sua quantia é destinada ao dono daquele site.

As partes são divididas igualmente para cada criador que o usuário decide recompensar. Ou seja, se o usuário clicou em 10 ícones do Flattr em um mês, um décimo de sua quantia mensal é destinada a estes criadores. Assim, o usuário terá certeza de que seu investimento será distribuído para aqueles que ele deseja.

Como o projeto ainda está em fase beta, estão sendo distribuídos alguns convites para usuários dispostos a testar o sistema. Quem tiver interesse, basta cadastrar seu e-mail no website Flattr.com, o qual inclui um vídeo explicativo do mecanismo do sistema.

A pouco tempo o Flattr fez seu primeiro cálculo dos pagamentos. Detalhes podem ser vistos no blog do projeto (em inglês).

[updated] novo logo.

Quando usar e quando não usar um CAPTCHA?

Tags: , , — June 9, 2008 @ 3:26 pm

CAPTCHA é um acrônimo da indagação “Entende?”, em italiano, e significa Completely Automated Public Turing test to tell Computers and Humans Apart, ou Teste de Turing público completamente automatizado para diferenciar entre computadores e humanos.

Amplamente utilizados para validar o envio de dados em formulários web, e para autenticação de usuários, os CAPTCHAs são uma arma importante para defender websites de bots e spammers. Contudo, sua implantação exige atenção para não acabar espantando os usuários.

Os CAPTCHAs mais comumente utilizados consistem em fazer o usuário digitar os caracteres apresentados em uma imagem para validação, porém, devido a existência de programas OCR, que podem facilmente reconhecer caracteres a partir de imagens, estes já não implicam a segurança desejada. Para aumentar a segurança, novos modelos de CAPTCHAs tem sido pesquisados e desenvolvidos a todo momento, como os captchas de matemática, onde o usuário deve resolver uma equação e digitar a resposta, ou aqueles em que se é necessário diferencias cores ou grupos de caracteres, por exemplo. Um CAPTCHA que acho realmente bom o atualmente utilizado pelo serviço whois do registro.br:

registro.br captcha

Descobri alguns experimentos de CAPTCHAs que seriam, supostamente, impossíveis de serem resolvidos por computadores, com o 3d-captcha, que define caracteres para certas partes de objetos 3d, e uma autenticação baseada em imagens, onde o usuário devem primeiro clicar no centro de uma imagem e, posteriormente, selecionar o termo que uma imagem lembra.

Embora sejam extremamente mais seguros, certamente estes CAPTCHAs experimentais manteriam os usuários tão longe das páginas que protegem quanto os bots.

Se você tem um website que exija cadastros de usuários, adicionar um captcha para proteção pode ser indispensável. Então, tenha certeza de utilizar um que seja fácil de ser lido por humanos, com letras grandes e cores vivas em fundo neutro, de preferência que não exija que o usuário digite muitos caracteres. Se precisar de segurança adicional, procure por um que utilize o mais próximo possível de linguagem natural, prefira um que peça determinados caracteres ligeiramente diferentes (cores, parte da string, consoantes, etc), ou então os captchas matemáticos (desde que utilizem equações simples).

Se você tem um blog, ou alguma página na internet que aceite comentários, nem pense em adicionar um captcha. O simples fato de ter que digitar algumas letras para validação pode fazer seus leitores desistirem facilmente de postar qualquer comentário. Neste caso, prefira um serviço anti-spam como o Akismet. O qual, aliás, utilizo aqui no meu blog e funciona maravilhosamente.

Johnm Willis postou em seu blog os 10 piores CAPTCHAs. Vou exibir alguns dos melhores piores aqui.

captcha7.jpg captcha4.jpg captcha2.jpg captcha1.jpg

 Fonte: http://pt.wikipedia.org/wiki/Captcha

Next Page >>>