Criando comunidades produtivas com ferramentas livres

Criando comunidades produtivas com ferramentas livres
Free software tools for designing productive community sites
Autor original: Terry Hancock
Publicado originalmente no:
freesoftwaremagazine.com
Tradução: Roberto Bechtlufft

Muito se tem falado sobre a “Web 2.0” e a criação de sites mais interativos, mas o que está acontecendo é uma volta à natureza comunitária da internet. A colaboração, a cooperação e o compartilhamento de informações são idéias que datam de antes da rede mundial de computadores. Mas foi no ambiente moderno de computação distribuída que essas tecnologias realmente floresceram. Este é um guia para oito dessas tecnologias. Você deveria considerar usá-las em projetos de compartilhamento de informações de todo tipo, indo de projetos multimídia a projetos de software e hardware.

Ferramentas para a criação de comunidades

O início do século 20 nos trouxe algumas ferramentas excelentes para a criação de comunidades mais sofisticadas e ágeis em torno de projetos de produção em equipe. Poucos projetos precisam implantar mais do que uma ou duas dessas tecnologias. Ainda assim, pensar com carinho na atmosfera da comunidade e no cenário eletrônico pode fazer uma enorme diferença no sucesso do seu projeto.

O software livre tem um papel importante nessa revolução tecnológica, e há ferramentas livres disponíveis para todas essas categorias. Aliás, o software livre, na maioria das vezes, é o líder nesse mercado. Que pacote você vai usar depende do tipo de CMS, portal ou hospedagem que você utiliza.

Não dá para listar todas as opções disponíveis, mas tentei fazer um apanhado razoável das ferramentas mais populares e/ou interessantes que encontrei. Dentre as ferramentas Web, incluí informações sobre pacotes baseados em LAMP (Linux-Apache-MySQL-PHP), Drupal (um CMS baseado em PHP que é a base do site da Free Software Magazine), Plone (um CMS baseado em Python/Zope, que é o que eu pretendo usar), e vários outros (baseados em C, Perl, Ruby, Java e outros). Também fiz uma lista de serviços de hospedagem que oferecem planos com esses recursos instalados, para que você tenha a opção de não instalar nada no seu servidor.

Certas tecnologias, como as ferramentas de sincronização e visualização, dependem de tecnologias cliente/servidor alternativas. Nesses casos, listei informações sobre clientes, servidores e infra-estruturas (incluindo protocolos e bibliotecas) que podem ser úteis.

No que se refere às ferramentas para instalação em seu servidor e/ou software cliente, a serem usadas por seus visitantes e contribuidores, restringi a lista ao software livre. Mas na coluna “Serviços” dei uma afrouxada na política: inclui serviços baseados em software proprietário nos casos em que essas alternativas sejam muito populares e líderes de mercado. Inclua aí serviços como o SecondLife e o Yahoo Groups, ambos freqüentemente usados na promoção de projetos de software ou conteúdo livre.

Comunicações particulares: email e comunicadores instantâneos

As tecnologias de comunicação mais básicas são as que oferecem comunicação simples entre duas pessoas. Tradicionalmente, o email é quem cuida disso na comunidade de software livre, mas para certos projetos, esse tipo de conversa também pode se dar por MPs (mensagens privadas) em fóruns ou, se for necessário algo mais imediato, pela tecnologia dos comunicadores instantâneos (e não esqueça do telefone!).

fig1

Os sistemas de email e mensagens privadas oferecem comunicação básica entre duas pessoas. A maioria dos projetos de software livre usam apenas o email, mas as MPs (mensagens privadas) dos fóruns web podem ser igualmente eficientes em um projeto (créditos da foto: Daria Radota Rasmussen/CC-By 2.0).

O software de email, obviamente, está em todo lugar. O sistema de mensagens privadas costuma ser um recurso dos “fóruns” (consulte a próxima seção). Os sistemas de bate-papo sincrônicos são fundamentalmente diferentes sob uma perspectiva técnica, embora sirvam a praticamente aos mesmos propósitos.

Há alguns poucos casos em que os “applets” de bate-papo podem ser executados em uma janela do navegador, transformando-se em uma experiência de navegação web. Também há muitos aplicativos de webmail que podem ser embutidos em um site, mas eu não vou listar esses aplicativos aqui.

Contexto

Recursos para mensagens privadas

Tecnologias básicas

LAMP

CoolSmile, veja também fóruns

Drupal
Plone

qi.LiveChat, MailNode, PloneFormGen, SignupSheet, (veja também fóruns)

Outros

Pacotes de webmail

Serviços Web

Google Mail, Yahoo Mail etc.

Clientes

ChatZilla, Konversation, XChat, BitchX, outros IRCs; Kopete, Pidgin, outros comunicadores instantâneos

Servidores

EIRC (Java), ircd, outros IRCs

Infra-estrutura

IRC, outros protocolos

Serviços

OFTC, freenode, EFnet, Undernet

Fóruns

O próximo passo são os fóruns web. Eles são uma evolução das BBSs (bulletin board systems), comuns nos anos 80 e 90, adaptados para uso na internet. Eles são acessíveis à maioria dos usuários, até àqueles que têm problemas com email. O mais importante é que os fóruns oferecem muitas opções de moderação que lhe permitem manter seu projeto longe de trolls, flames e mal comportamento. Isso vai encorajar as pessoas a não se afastarem do projeto.

Se a idéia é usar tecnologias básicas, a melhor opção é a lista de discussão. A maioria dos servidores de listas de discussão modernos, no entanto, possuem um sistema de assinatura. Também temos os grupos do Google e do Yahoo, que possuem quase as mesmas funcionalidades dos newsgroups da usenet, mas que podem ser acessados tanto por uma interface web quanto por email.

fig2

Os fóruns e listas de discussão abrem espaço para debates e serviços de suporte e educação (créditos da foto: Pingu1963@Flickr/CC-By 2.0).

Contexto

Recursos para fóruns

Tecnologias básicas

Listas de email, newsgroups

LAMP

PHP BB, Phorum, FluxBB, XMB e outros

Drupal

Forum(core), Advanced Forum, flatforum, Forum Thread, Democracy forum, phpBBforum, Phorum (integração)

Plone

Ploneboard, SimpleForum, zForum, TIForum, Gossip, EasyForums, NunBB, PloneMailList, Listen

Outros

JForum, Beast, outros

Serviços

Google Groups, Yahoo Groups, Simple Machines Forums

Blogs e conteúdo online

Manter atualizado um site em HTML é um fardo. O CMS (content management system, ou sistema de gerenciamento de conteúdo) foi criado para simplificar essa tarefa. Um dos mais populares hoje em dia é o blog. Há vários pacotes de blogs completos, mas também há módulos de blogs para os CMSs mais populares (como o Drupal e o Plone).

fig3

Blogs ou Os softwares para blogs e CMS oferecem de tudo, de um diário público na web até um serviço completo de notícias, dependendo do pacote escolhido (créditos da foto: Wee Keat Chin/CC-By 2.0, David Lisbona/CC-By 2.0)

Contexto

Recursos para blogs

Tecnologias básicas

HTML estático

LAMP

WordPress, b2evolution, LifeType, Serendipity, Nucleus CMS, FlatPress, outros

Drupal

Blog(core), Single-User Blog, Blog List, Mini Blog, Blogroll, Blogger, DrupalMU

Plone

COREBlog2, Quills, SimpleBlog, q Plone Blog, bda.blogview, PloneWorkflows, ReactiveWorkflow, Press Room, Slideshow Folder, Plumi (vídeo)

Outros

Typo (Ruby)

Serviços

WordPress, outros

Wikis e sistemas de controle de versão

Pode parecer estranho misturar wikis e sistemas de controle de versão, mas na verdade eles realizam praticamente as mesmas tarefas. Um wiki é um tipo leve de sistema de controle de versão, combinado a recursos de edição e exibição diretamente pelo navegador. Costuma ser bem mais fácil aprender a usar wikis do que as ferramentas de gerenciamento como o CVS ou o Subversion, embora haja bons pacotes de integração disponíveis.

fig4

Tanto os wikis quanto os sistemas de controle de versão mantêm bases de códigos para um projeto. Os wikis são leves e podem ser facilmente modificados por quase qualquer um que estiver disposto a fazê-lo. Leva algum tempo para aprender como se usa um sistema de controle de versão, mas eles geralmente são mais poderosos quanto aos tipos de acompanhamentos de versões que são capazes de realizar (créditos da foto: Kevin Quinn/CC-By 2.0, Ralph Bijker/CC-By 2.0, Lars Plougmann/CC-By-SA 2.0, Ellie Van Houtte/CC-By 2.0)

Um wiki nada mais é que um sistema rápido e fácil de usar para a geração de sites, com atalhos simples para a criação de novas páginas e renderizando-os em HTML (e às vezes em outros formatos também).

Os sistemas de controle de versão são baseados em um tipo diferente de modelo mental, no qual o pacote é baixado (procedimento chamado de “check-out”) por um usuário que realiza alterações nele. Ao concluir as alterações, o usuário faz o “check-in”. Essa é uma solução bem mais robusta que um wiki, e costumam haver limites de acesso que resultam em um fluxo de trabalho mais complicado. Ainda assim, os sistemas de controle de versão são os sistemas favoritos para a manipulação de código-fonte. Há muitos sistemas de controle de versão disponíveis, mas listei o Subversion aqui porque ele contém um sistema que permite navegar pelo código usando o navegador de internet (o ViewVC e o Trac adicionam esse recurso a alguns outros sistemas de controle de versão, incluindo o CVS, que foi o padrão no software livre por muitos anos).

Contexto

Recursos para wiki e navegação em controles de versão

Tecnologias básicas

HTML estático

LAMP

MediaWiki, TikiWiki, DokuWiki, outros

Drupal

Drupal Wiki, interwiki, Wikitools

Plone

ZWiki, ZWikiFolder, Wicked, Cuic pages; ViewVC++

Outros

Moin Moin (python), JAMWiki (java), Instiki (ruby); ViewVC, Subversion, Trac

Serviços

Wikia, Wikibooks, others; Sourceforge (packages), Google Code (pacotes), outros serviços hospedados

Software para redes sociais

Os softwares para redes sociais são feitos para que as pessoas se encontrem. Dentre os recursos típicos temos “amigos” e “favoritos”, que oferecem conexões a vários outros projetos. Um aplicativo parecido seria um sistema de favoritos sociais, no qual os favoritos são links para outros sites, incluindo um trecho selecionado do site (tornando-o um tipo de sistema de notícias).

img5

Os softwares para redes sociais oferecem muitos dos benefícios que você teria ao encontrar seus amigos pessoalmente, no que se refere a encontrar pessoas com talentos e crença semelhantes aos seus (créditos da foto: xt0ph3r@Flickr/CC-By-SA 2.0, Paolo Màrgari/CC-By-SA 2.0)

Contexto

Recursos para redes sociais e favoritos

Tecnologias básicas

Listas de links, Web rings

LAMP
Drupal

Profile, OpenID, Drigg

Plone

Organizational Profile, My Address Book, mxm Contacts, ExpertPool, Plonelicious, Tasty Bookmarks, Content Ratings, TagCloud, PloneWorldKit

Outros
Serviços

MySpace, Facebook, LinkedIn, Ning, outras redes sociais; Delicious, Digg, outros serviços de favoritos

Infra-estrutura

Realidade virtual

A realidade virtual já foi a maior das modas entre os futuristas. Na prática, a experiência online que ela oferece às comunidades é bastante literal, mas pode não ser tão eficiente para a realização de algumas tarefas importantes. Vale destacar que certas coisas só podem ser feitas em um ambiente tridimensional interativo.

img6

Ambientes de realidade virtual, como o do Second Life (acima) oferecem um mapa bastante literal de comunidades do mundo real (créditos da foto: Vanessa Tan/CC-By 2.0)

O avanço tecnológico me deixou bastante surpreso. Com o OpenSimulator e o SecondLife Viewer, agora temos um sistema de mundo virtual completo em código aberto, disponível para que você hospede suas próprias realidades virtuais. Claro que também há outros sistemas servidores e clientes de ambientes tridimensionais mais genéricos baseados no X3D (o sucessor do VRML).

Infelizmente, todas as tecnologias de realidade virtual dependem de clientes especializados. Não dá para fugir disso, considerando o quanto esse aplicativos exigem dos recursos do sistema (pelo menos até que os recursos 3D sejam incorporados nos navegadores comuns).

Já me ocorreu que uma maneira de se obter recursos de mundos tridimensionais em um navegador simples seria a criação de uma “webcam virtual”, que oferecesse fotos renderizadas de um “local” dentro do mundo virtual, que poderia ser visto por pessoas que não possuíssem um cliente 3D (ou banda suficiente para isso). Um programa desses poderia ser hackeado com base no SecondLife Viewer ou em qualquer sistema de gerenciamento de conteúdo, mas não consegui encontrar uma implementação pronta para incluir na lista, então isso ainda não deve existir (se você souber de alguma coisa, por favor, poste um comentário).

Contexto

Mundos virtuais e visualização 3D

Tecnologias básicas

Imagens renderizadas, downloads de arquivos de cenas

Clientes

SecondLife Viewer, FreeWRL, Xj3D, Collada Loader, WorldForge, Planeshift

Servidores

OpenSimulator†, WorldForge‡, PlaneShift

Infra-estrutura

CrystalSpace?, VOS, X3D, U3D??, COLLADA?

Serviços

Second Life, “grids” do OpenSimulator

† O OpenSimulator é compatível com o SecondLife Viewer. Juntos, eles oferecem um sistema completo de mundos virtuais em código aberto.
‡ Os servidores do WorldForge e do PlaneShift estão incluídos com o cliente nos pacotes de código fonte.

Distribuição de downloads grandes

Um grande problema na distribuição de conteúdo multimídia, design ou de projetos de software é a distribuição do conteúdo. Downloads de alguns poucos megabytes são comuns, e certas coisas, como distribuições GNU/Linux inteiras ou filmes longa-metragem podem ter vários gigabytes. A maioria das pessoas não pode arcar com os custos desse tipo de serviço em seus servidores, especialmente quando os downloads são gratuitos.

img8

Mover arquivos grandes como pacotes de software, música e até imagens inteiras de CDs e DVDs pode ser um custo. O protolo BitTorrent se tornou bastante popular para esse tipo de tarefa, pois transfere a carga do servidor para os clientes, e acrescenta correção de erros, acabando com o risco de downloads corrompidos (créditos da foto: FaceMePLS@Flickr/CC-By 2.0)

Felizmente há vários provedores de serviços que podem lidar com boa parte do conteúdo que você criar para download via HTTP ou FTP. Além disso, há uma tecnologia relativamente nova de downloads distribuídos que combina o compartilhamento de arquivos à hospedagem convencional. A tecnologia de maior sucesso nessa área é o Bit Torrent. Esses sistemas de download distribuído tiram a carga do servidor, deixando boa parte do trabalho a ser dividia pelos clientes que estão fazendo o download, e são bastante úteis para downloads grandes e populares.

Para oferecer esse tipo de conteúdo no seu site, é só disponibilizar o arquivo “torrent” (uma espécie de índice do download), uma “semente” (seed) do arquivo original e um rastreador (tracker) para ajudar a coordenar o processo de download entre os clientes. Os nomes em inglês, “seed” e “tracker”, são amplamente utilizados em português. Existem até serviços gratuitos que oferecem os sistemas de tracking e seeding, ou seja, você não vai ter que se preocupar com isso.

Contexto

Recursos para downloads grandes

Tecnologias básicas

HTTP, FTP

LAMP
Drupal

BitTorrent, Filebrowser

Plone

Railroad, ARFilePreview, PublicationProduct, PloneFilesZip, PloneForge, Software project

Outros

Serviços Web

Sourceforge (pacotes), Google Code (pacotes), outras hsopedagens de projetos; Internet Archive (conteúdo), Jamendo (músicas), Flickr (imagens)

Clientes

BitTorrent, outros torrents, outros compartilhamentos de arquivos

Servidores

mod_bt (Apache), PHPBTTracker+ (tracker), Infra-estrutura| torrents

Serviços

LinuxTracker, TuxDistro, TLMP, outros sites de torrents

Comércio eletrônico

Você pode achar que as lojas virtuais não são softwares “sociais”, mas em muitos aspectos elas são sim. O software da Amazon oferece meios para que os fornecedores menores possam competir. A idéia de patrocínio coletivo para trabalhos com licenças livres exige o processamento básico de pagamentos, e a simplificação dos sistemas coletivos de doações.

fig7com

As transações financeiras são parte da maioria das comunidades no mundo real, e incluí-las nas comunidades online abre muitas possibilidades (créditos da foto: The Consumerist/CC-By 2.0, Tinou Bao/CC-By 2.0)

O dinheiro tem muita importância no mundo moderno. A infra-estrutura convencional das lojas pode ser usada de maneiras pouco convencionais, e adicionar recursos como o patrocínio coletivo e sistemas de doações pode transformar ferramentas comerciais em importantes sistemas comunitários.

Uma iniciativa muito interessante é o protocolo “CC+” da Creative Commons. Trata-se de uma maneira unificada para que os criadores de conteúdo ofereçam licenças adicionais a material licenciado pela Creative Commons. Ainda que a idéia certamente tenha surgido como uma forma de permitir que conteúdo sob licença “Não Comercial” seja usado para fins comercias por clientes específicos, não há nada nessa tecnologia que impeça que conteúdo não-livre seja transformado em conteúdo livre mediante patrocínio coletivo. Construir um sistema desses certamente vai exigir o uso de software convencional de comércio eletrônico, e provavelmente de um software que cuide da coleta de doações dos interessados.

Também há vários serviços relacionados ao processamento de pagamentos e coleta de contribuições financeiras.

Contexto

Recursos para comércio eletrônico e coleta de fundos

Tecnologias básicas

LAMP

osCommerce, ZenCart, ECSCS, outros softwares de carrinhos de compras

Drupal

Ubercart, e-Commerce, osCommerce

Plone

PloneMall, Simple Cart Item, EasyShop, GetPaid with Plone, PFG Payment Field, LetsPay, FlexPortlets

Outros

JadaSite, outros carrinhos; CC+, SPP, RSPP

Serviços

ZenCart Hosting, PayPal, Authorize.net, Registered Commons†, Fundable, PledgeBank

† Eu soube que a Registered Commons está trabalhando em uma implementação do protocolo CC+ para o relicenciamento de trabalhos registrados sob várias licenças Creative Commons para fins comerciais. Outro site CC+ já deveria estar em funcionamento (Rights Agent), de acordo com um comunicado à imprensa no início de 2008, mas o link não estava funcionando, então o sistema ainda não deve estar operando.

Construindo uma comunidade online

Nas comunidades de software e cultura livre, há vários motivos para se construir sites de comunidades para obter a participação dos visitantes. Alguns deles podem contribuir bastante para a produção, o compartilhamento e a compreensão dos trabalhos em software, design e arte livres.

Tentei reunir aqui os recursos necessários, além de algumas idéias sobre como utilizá-los. Com certeza alguns vão discordar deste parecer, e eu provavelmente omiti algumas tecnologias importantes, mas acho que essas são oito das tecnologias que todos os interessados em desenvolver sites comunitários deveriam conhecer.

Créditos a Terry Hancockfreesoftwaremagazine.com/
Tradução por Roberto Bechtlufft <robertobech at gmail.com>

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X