Blog do Rodrigo Carvalho

Tecnologia, música e liberdade

Um dos grandes poderes do Firefox são suas quase infinitas extensões. Para quem não conhece, extensões são espécies de plugins para o navegador que adicionam funcionalidades que não vem nele “de fábrica”. Ou seja, quando você baixa o Firefox ele é como um carro básico apenas com itens essenciais de série, mas você pode ir adicionando os itens opcionais para deixá-lo do jeito que você quer. Este artigo descreve uma extensão que conheci há algum tempo (no, infelizmente, falecido GDHCast) e a qual não consigo mais navegar sem: Read It Later.

O que é?

Basicamente, a extensão Read It Later é uma lista de links que você quer guardar para ler depois. Você tem opção de configurá-lo para salvamento offline ou online (que é o mais interessante para mim). Na segunda opção, ele salvará seus links numa conta que deverá criar no site Real It Later e, com isso, poderá visualizar a lista de links de qualquer computador que utilizar. Como eu sou um viciado em RSS (utilizo o Google Reader para ler meus feeds), existem diversos artigos que gostaria de deixar para ler em casa, então adiciono no RIL e pronto! Em casa é só sincronizar (que ele faz automaticamente), consultar a lista de links salvos, começar a ler e marcá-los como lidos.

read-it-later

A ideia é bastante simples e você pode até pensar “eu posso fazer isso de diversas maneiras”, mas com certeza não será de uma forma tão simples. Com uma interface limpa, ele adiciona um botão não intrusivo na barra de endereços, que serve para salvar o link na lista, ele e também facilita muito na hora da leitura. Com ele você poderá pesquisar por um link, ordená-los por diversas formas (mais novos, mais antigos, por nome, por site e até por pagerank) e conta com paginação. Além disso, você pode enviar um link que gostou para o Delicious, Digg, Reddit, StumbleUpon, favoritos do navegador, dentre muitos outros.

Funcionalidades extras

A extensão não fica só no feijão-com-arroz de salvar links e cincronizar a lista entra vários computadores. Existem duas funcionalidades que vão acabar com qualquer argumento contra:

Integração com o Google Reader – Não há dúvidas que o Google Reader seja o leitor de RSS (dentre os online e os offline) mais utilizado. Sendo assim, o RIL adiciona um link acima da estrela, que facilita muito o salvamento de links, já que o leitor de RSS é, potencialmente, o maior gerador de links para leitura futura.

read-it-later-greader

Leitura offline – Com se tudo o que foi dito não bastasse, que tal salvar os links para lê-los mesmo quando você não tiver acesso à Internet?

Espero que a dica ajude a todos os RSS-maníacos (como eu) a ter uma leitura mais produtiva!

Este mês teremos no Rio de Janeiro dois grandes eventos de software livre: Software Freedom Day e Fórum de Tecnologia em Software Livre do SERPRO RJ. Uma oportunidade única para quem quer aprender um pouco mais sobre tecnologias de ponta e software livres que estão mudando a realidade da tecnologia no mundo todo. E tudo de graça!

Software Freedom Day

O Software Freedom Day é um evento anual e mundial, organizado localmente por equipes voluntárias no mesmo dia. Com o patrocínio de Canonical (Ubuntu), Google e Red Hat (Fedora) e parceria com Linux Magazine e Free Software Foundation (FSF), é um dos evento que tem se tornado mais importante a cada ano. A edição do Rio de Janeiro será em Niterói (não é no Rio, mas é do lado :P ), na UFF e está contando com apoio da Sun Microsystems.

Dentre as atrações, você contará com palestras e mini-cursos de diversos assuntos como linguagens de programação, computação gráfica, TV Digital e até programação para Playstation 3!!! Entre no site, veja a programação completa e faça sua inscrição. O evento será no sábado dia 19 de setembro.

Fórum de Tecnologia em Software Livre do SERPRO RJ

O Fórum de Tecnologia em Software Livre do SERPRO é um evento itinerante, que já ocorreu e irá acontecer em outras capitais do país. Esta é a primeira vez que a capital fluminense sedia o evento e a programação está imperdível!

Serão 3 dias de palestras com variados temas, como: Ruby On Rails, Cloud Computing, Scrum, Web2Py, Blender 3D e ODF, além da realização de 9 mini-cursos, com capacidade para 40 pessoas em cada um, dentre os quais: AndroMDA, Shell, InkScape, Python, Zend Framework e PyS60. Veja a programação detalhada no site do evento e faça sua inscrição. As inscrições nos mini-cursos já estão se esgotando. O evento será nos dias 15 ao 17 (terça a quinta) de setembro.

Esta é a segunda e última parte do artigo. Então, primeiro leia a primeira parte.

No fim da primeira parte, eu disse que o software livre resolve o problema do não compartilhamento de conhecimento que acontece com diversos softwares, mas vamos entender isto melhor.

O que é Software Livre?

Na definição da Free Software Foundation (Fundação Software Livre), um software é livre quando garante 4 liberdades:

  1. Liberdade de rodar o programa para qualquer propósito;
  2. Liberdade de estudar como o programa funciona e modificá-lo para que faça o que quiser (acesso ao código-fonte é uma precondição para esta liberdade);
  3. Liberdade de redistribuir cópias de modo que você possa ajudar o seu próximo;
  4. Liberdade de melhorar o programa e publicar sua versão modificada ao público, para que todo a comunidade possa se beneficiar (acesso ao código-fonte também é uma precondição para esta liberdade).

Todo o software (livre ou não) possui uma licença de uso – um software é livre quando sua licença de uso garante todas essas liberdades. E mais, um software livre não necessariamente foi criado desta forma. Existem diversos softwares que nasceram proprietários e tiveram sua licença alterada – é uma questão de escolha de seus donos. Veja alguns exemplos:

  • Linux: somente em 1992 Linus Torvalds mudou sua licença, abandonando a cláusula que proibia seu uso comercial e adotando a GPL (Licença Pública GNU);
  • Mozilla: criado a partir do Netscape e hoje evoluiu para o Firefox;
  • OpenOffice.org: criado a partir do StarOffice da Sun;
  • Blender: seu código-fonte foi comprado em 2002 diante da falência da companhia NaN.

História resumida do software livre

  • 1983 - Richard (Matthew) Stallman lança o Projeto GNU;
  • 1984 - Stallman abandona seu emprego no MIT para dedicação integral ao Projeto GNU;
  • 1985 - Fundação da Free Software Foundation, por Stallman;
  • 1991 - Linus Torvalds, desenvolve a peça que faltava para o sistema operacional GNU: o kernel (Linux), que, favorecido pelo ambiente colaborativo propiciado pela Internet, se desenvolveu muito rapidamente.

Podemos ver que num software livre (com as 4 liberdades garantidas), seu conhecimento não ficará restrito a um grupo pequeno de pessoas e poderá ser compartilhado com qualquer pessoa! Poderá ser melhorado ao gosto de cada um, como a receita de bolo compartilhada entre amigos. No entanto, se aplicarmos a regra do software proprietário às receitas de bolo, seria inaceitável um comportamento como pedir uma receita – você poderia ser preso por isso! Parece um absurdo completo, mas várias formas de conhecimento são tratadas desta forma. Alguns exemplos são: música, livros, filmes e software. Existem os direitos de cópia (copyright) e os direitos autorais, mas isso é assunto para outro artigo (teremos uma palestra sobre este assunto no GNUGRAF também).

Desta forma você pode pensar: “além das coisas cotidianas (como receitas de bolo) e do software livre, existe alguma forma de conhecimento nos dias de hoje que não seja restritivo?”A resposta é sim! A pesquisa científica vêm trabalhando há séculos com um modelo baseado em livre exposição de pensamentos, onde os autores são reconhecidos por mérito. Onde o trabalho de um acaba, começa o de outro e, assim, a humanidade foi evoluindo. Como disse Isaac Newton no século XVII:

Se vi mais longe foi por estar sobre ombros de gigantes.

Com tudo isso mostrado, podemos chegar à nossa segunda conclusão: Se software é conhecimento, …

“Software livre é conhecimento livre!”

Vantagens do software livre

Podemos entender os impactos positivos da produção e uso de software livre em quatro perspectivas: social, técnica, política e estratégica.

Do ponto de vista social (algumas vezes chamado de “filosófico” ou “ideológico”):

  1. Reaproveitamento de ideias;
  2. Conhecimento acessível a qualquer pessoa;
  3. Geração de trabalhos baseados;
  4. Colaboração entre pessoas;
  5. Ferramenta de estudo e pesquisa.

Do ponto de vista técnico:

  1. Permite evolução competitiva, rápida e sólida (correção de erros ou bugs);
  2. Maior segurança, por se saber o que está sendo executado;
  3. Software é evoluído por necessidades técnicas e não financeiras;
  4. Garante permanente compatibilidade entre os produtos das diversas versões, caso contrário, a continuação da versão anterior;
  5. Aderência a padrões abertos (como ODF, usado no OpenOffice.org, e HTML, usado para se fazer sites web).

Do ponto de vista político:

  1. Inclusão digital;
  2. Vantagens pedagógicas (transformando os alunos em produtores e não só consumidores, não obriga o aluno utilizar softwares pelos quais não poderá comprar e prega aos jovens uma visão de colaboração do mundo);
  3. Modelo economicamente sustentável;
  4. Desenvolvimento distribuído gera ganhos financeiros e tecnológicos localmente;
  5. Soberania nacional.

Do ponto de vista estratégico (empresas e governos):

  1. Independência de fornecedores;
  2. Economia (não necessidade de compra de licença de uso);
  3. Garantia de manutenção em caso de descontinuidade;
  4. Possibilidade de desenvolver funcionalidades que considera mais prioritárias.

Espero que tenham gostado e aguardo os comentários! Além disso, se morar no Rio de Janeiro, não deixe de ir ao GNUGRAF. É de graça e teremos diversas palestras e mini-cursos como profissionais de qualidade das áreas multimídia. Bem, eu vou ajudar no evento, mas não vou perder as atividades relacionadas à produção musical :) . Grande abraço!

Antes de mais nada, devo dizer que este artigo é uma preparação para a apresentação que irei fazer no II GNUGRAF e é baseado na excelente palestra do professor Eurico Zimbres, da faculdade de Geologia da UERJ, grande ativista do software livre no Rio de Janeiro. Então segue o artigo e espero seus comentários a respeito, para que a palestra fique mais rica.

O que é software?

Quando alguém fala em software, qual a primeira coisa que lhe vem a mente? A grande maioria das pessoas pensará em algo útil para executar uma tarefa no computador. Desenvolvedores de software, poderão pensar também em como ele foi feito – no seu código-fonte. Vejamos então a definição provida pela Wikipédia:

Software ou logiciário é uma sequência de instruções a serem seguidas e/ou executadas, na manipulação, redirecionamento ou modificação de um dado/informação ou acontecimento.

Resumindo de uma forma bem simples, software é como se fosse uma “receita de bolo” escrito de forma que o computador entenda. Assim, o resultado final (o “algo útil” citado anteriormente) seria exatamente o “bolo” feito pelo computador. Veja um exemplo de programa escrito na linguagem C:

#include <stdio.h>
int main(void)
{
    int count;
    for(count=1;count<=500;count++)
        printf("Conhecimento tem que ser livre!");
    return 0;
}

Para você que não entende a linguagem, este programa escreve na tela do computador 500 vezes a frase “Conhecimento tem que ser livre!”. Melhor dizendo, este programa é uma “receita” que, ao ser lida pelo computador, diz a ele como escrever a frase 500 vezes. Obviamente, esta não é a única forma de se fazer isso! Você pode escrever em outra linguagem que o programador tenha mais fluência ou adicionar mais tempero (escrever o texto colorido) ou ainda gastando mais ingredientes (gastando mais memória para fazer a mesma coisa).

Agora vamos fazer uma pequena brincadeira – leia o seguinte texto, escrito em Alemão:

Meiner lieber Seele, der vergangen is
So frueh aus dieses Leben, unzufrieden,
Ruehe in den Himmel ewig
Und lebe Ich hier auf dieser Erde immer traurig

Se você é fluente em Alemão tanto quanto é na linguagem C, então a dúvida foi a mesma :) . Mas, se traduzirmos o texto para o português:

Alma minha gentil, que te partiste
Tão cedo desta vida descontente,
Repousa lá no Céu eternamente,
E viva eu cá na terra sempre triste.
Luís de Camões

Assim como a literatura, software e receitas de bolo são expressões de conhecimento. Uma receita de bolo foi feita com o conhecimento gerado de uma pessoa entendida sobre fabricação de bolos. Por isso, quando você vai à casa de um amigo e come um delicioso bolo feito por ele, você prontamente já pede a receita, afinal, com ela em mãos, você poderá fazê-lo e adaptá-lo ao seu gosto, deixando-o ainda melhor. Para o software é a mesma coisa! Desta forma, chegamos à nossa primeira conclusão:

“Software é conhecimento!”

Nosso programa exemplo foi bastante simples, mas imagine a quantidade de conhecimento que existe num software como o GIMP, o Inkscape, o Ardour e tantos outros!  O problema é que, infelizmente, o código-fonte de vários softwares não está disponível, restringindo todo o conhecimento a um pequeno grupo de pessoas. Para resolver esta situação que foi criado o software livre, mas isso será o assunto da segunda parte do artigo. Não deixe de ler!

Participe do II GNUGRAF!!!

Jul-29-2009 By Rodrigo

Nos próximos dias 22 e 23 de agosto acontecerá no Rio de Janeiro a segunda edição do evento GNUGRAF. Este é um evento focado em profissionais e entusiastas das áreas de multimídia (como produção de áudio, produção de vídeo, edição de imagens, edição gráfica e animação 2D e 3D), onde serão apresentadas as opções baseadas em software livre. Na edição deste ano contará com algumas novidades, como os 12 minicursos que acontecerão simultaneamente com as 16 palestras e um espaço aberto com um projetor onde o próprio público pode fazer palestras que não estão no cronograma oficial.

Para maiores informações acesse o site http://www.gnugraf.org/ e não perca esta oportunidade de aprender a usar ferramentas de qualidade, gratuitas e livres, além de poder conhecer mais sobre software livre (palestra que eu apresentarei)!

Ganhando tempo livre com Clearcase

Jun-24-2009 By Rodrigo

Qual sistema de controle de versão você usa? Subversion? Git? Você deveria usar o Clearcase – você terá muito mais tempo livre! Se você conhece a “velocíssima” ferramenta da IBM, deve estar se perguntando: “WTF?!”

Imagine-se desenvolvendo um software com o Clearcase. A cada operação, você tem que esperar por volta de 4 segundos para que ela termine. Como você deve desbloquear cada arquivo que irá modificar, você (esperto) já vai fazer de cara o desbloqueio (”checkout”) para vários arquivo de uma vez! Com o tempo desta operação, você já pode abrir o Firefox e ler algumas notícias.

Mas não é só isso! Além da sua “incrível” agilidade, seu down-time (tempo que fica fora do ar) é muito alto, por mais que a equipe de administração da ferramenta seja compentente. Desta forma, você pode criar uma conta no Wordpress e praticar um pouco a escrita. Este artigo, por exemplo, foi escrito e revisado durante o tempo livre que ganhei com a ferramenta :)

Desta forma, quando for escolher sua ferramenta de versionamento de código, escolha o Clearcase ao invés das ferramentas open source que funcionam bem e são ágeis (além de serem mais baratas). Nenhuma outra usa o paradigma Slow Down (algo como “diminua a velocidade”), o que faz muito bem para a saúde. Além disso, sua cultura geral e português irão melhorar bastante, te preparando para o próximo concurso público ;)

Ontem vi o impressionante vídeo de apresentação do novo produto da Google: Google Wave. Pensando sobre a forma como a Google quer (ou pelo menos diz que vai) desenvolver o produto, como um software livre (open source) e baseado em padrões abertos, comecei a imaginar como seria se outros gigantes de tecnologia trabalhariam se tivessem inventado o mesmo produto.

Google Wave (o caso real)

wave_logo

  • Software livre;
  • Web, baseado em padrões aberto da W3C, tornando-se multi-plataforma (roda em qualquer navegador, sistema operacional ou dispositivo com um navegador, como o iPhone);
  • Comunicação baseada em protocolos abertos e criação de novos protocolos abertos para suportar as inovações;
  • Disponibilização de uma API para desenvolvimento de softwares de terceiros;

“Apple iWave”

  • Software proprietário;
  • Aplicativo para iPhone;
  • Protocolos de comunicação proprietários e protegidos por “copyright”;
  • Disponibilização de uma API para desenvolvimento, baseada no SDK do iPhone (que só roda no MacOS X);

“Microsoft Wave”

Para começo de conversa não acho que a Microsoft é inovadora o suficiente para criar algo do tipo (visto que , mas vamos abstrair isso.

  • Software proprietário;
  • Aplicativo desktop, que roda apenas no Windows – nova versão do MSN Messenger;
  • Protocolos de comunicação proprietários e protegidos por “copyright”, baseados no protocolo do MSN;
  • Inicialmente não há disponibilização de uma API para desenvolvimento, para posterior disponibilização de uma API feita na plataforma .NET (que só roda no Windows);

E então? Qual sua opinião sobre os casos acima? Você imagina outro cenário? Comente!

Ultimamente tenho usado em meu trabalho um programinha muito interessante para medir gestão de tarefas: o Task Coach. Ele é livre, feito em Python (ou seja, multi-plataforma), bastante completo e simples de usar. Aí alguém vai perguntar: “mas qual é a diferença dele para o ótimo site Remember The Milk?” Remember The Milk é imbatível para tarefas que tem um prazo para serem concluídos, até por ser web, e estar disponível em qualquer lugar, e suas excelentes opções de notificação. Isso é algo que o Task Coach também faz, mas seu principal atrativo (na minha opinião) é contador de esforço.

O contador de esforço é algo especialmente importante no trabalho, pois nos permite ver quanto tempo estamos nos dedicando a cada tarefa. E seu funcionamento é muito simples:

  1. Na primeira vez que abrir o programa, feche a janela “Categories”;
  2. Clique no menu “View”, “New Viewer” e na opção “Effort” (é aí que as coisas começam a ficar interessantes);
  3. Se preferir (como eu), coloque a janela “Tasks” do lado esquerdo;
  4. Cadastre todas as suas tarefas (inclusive “Ler e-mail/Notícias no Google Reader” :) );
  5. Para começar a contar o esforço, é só clicar no botão “Start tracking effort” (com ícone de um relógio);
  6. Para parar de contar, clique no botão ao lado “Stop tracking effort”;

Para ficar ainda melhor, vá em “Edit” -> “Preferences”:

  • Na seção “Window behavior”, habilite as opções “Hide main window when iconized” e “Minimize main window when closed”: isto fará com que ele fique sempre aberto, sem incomodar como uma janela aberta;
  • Na seção “Files”, habilite a opção”Auto save after every change”: isto fará com que ele salve as informações a cada ação.

Utilize como um software de produtividade pessoal  ao invés de pensar nela como “a arma que seu gerente precisava”. Ainda estou me acostumando a contabilizar corretamente todas as minhas atividades, mas a praticidade da ferramenta ajuda muito!

O SLRJ, grupo do Software Livre do Rio de Janeiro, marcará presença na edição 2008 do Free Software Rio, que acontecerá nos dias 08 e 09 de Dezembro, no Centro de Convenções Bolsa do Rio, Praça XV de Novembro, 20 – Centro.

Como não poderia deixar de acontecer, estaremos  ministrando mini-cursos no local. A taxa de inscrição é de R$ 40,00 e será feita no dia do evento. O grupo disponibilizará ingressos gratuitos do evento para os inscritos nos mini-cursos. É uma grande oportunidade para que o público tenha contato com as mais variadas vertentes do Software Livre. Contamos com a sua presença!

Hora Dia 8 Dia 9
9h às 13h Introdução ao Python -
Luiz Guilherme Aldabalde
Inkscape -
Carlos Eduardo (Cadunico)
14h às 18h Shell Script -
Júlio C. Neves
Autoria de Aplicações Multimídia para TV Digital Brasileiro -
Rafael Carvalho


Há algum tempo venho procurando um bom cliente BitTorrent para usar no Ubuntu. Utilizava o Azureus, que tinha bastante recursos e diversos plugins, mas ele é excessivamente complexo de configurar e muito pesado. Com o Ubuntu Hardy Heron, o Transmission foi trazido como o padrão, mas ele não vinha com opções de criptografia, necessárias na luta contra o “traffic shaping” da NET. Foi então, que nas “naveganças” pela Internet que encontrei o Deluge sendo bastante elogiado. Então resolvi testá-lo.

Seguindo bastante a linha dos programas GTK, o Deluge tem a interface bastante “clean”, que torna o aprendizado fácil e uso agradável. Sua organização é tão boa que sem abrir nenhuma janela, apenas mudando de abas na parte inferior da tela, conseguimos ter todas as informações do download. Além disso, ele tem diversos plugins a disposição. Quem usa Linux com interface Gnome (como o Ubuntu), aconselho o teste.