Ir para o conteúdo

Software Livre

Tela cheia Sugerir um artigo

Blog

3 de Abril de 2011, 21:00 , por Desconhecido - | No one following this article yet.

Descubrindo a magia do OStatus com GNU Social

22 de Agosto de 2017, 13:21, por Feed RSS do(a) PSL-Brasil

Autor: Manuel Ortega. Tradução por Anders Bateva.

Graças ao OStatus, as instâncias do GNU Social não são jardins murados, e se conectam nentre si, permitindo a seus usuários comunicarem-se e seguirem uns aos ouros. OStatus é a engrenagem que dá vida à rede distribuída de nós/servidores do GNU Social.

Uma rede distribuída, também conhecida como a «federação», cujas implicações são chave para impulsionar um modelo social totalmente oposto ao de redes centralizadas, como Twitter e Facebook, e ao das descentralizadas também. Entender como funciona o OStatus facilita que novos desenvolvedores possam unir-se ao projeto e criar novas possibilidades para o GNU Social.

OStatus: as peças da engrenagem

 

 

Ostatus combina de forma natural e eficiente um conjunto de peças, protocolos, que permitem implementar comunicações distribuídas na Web:

  • Activity Streams codifica as publicações, atividades e eventos sociais dos usuários nos padrões Atom ou RSS;
  • PubSubHubbub envia, em tempo real, estes feeds a seus assinantes ao redor da Web;
  • Salmon notifica aos usuários sobre as respostas a suas publicações;
  • Webfinger torna fácil encontrar outros usuários na rede de nós.

Ainda que cada um destes protocolos cumpra uma função determinada, veremos como colaboram entre si e ganham sentido ao trabalharem como uma engrenagem dentro de cada nó do GNU Social. Seguiremos agora os passos que o GNU Social dá quando lhe pedimos para assinar os posts de um usuário remoto, ou seja, um usuário que não está cadastrado no próprio nó de quem assina. Porém, antes de passar à ação, vejamos onde encontrar OStatus dentro do código-fonte do GNU Social:

OStatus no código-fonte do GNU Social

 

Uma das maravilhas do GNU Social é sua modularidade. E, como não podia ser de outra forma, a implementação do OStatus está encapsulada dentro do plugin OStatus que podemos encontrar no diretório plugins. O plugin OStatus agrega ao GNU Social um conjunto de bibliotecas, funcionalidades, e rotas para fazer possível a comunicação entre os nós do GNU Social. Vamos seguir os passos do processo de assinatura entre usuários remotos.

O ponto de acesso principal para esta opção em qualquer nó do GNU Social é main/ostatussub. Por exemplo, na instância Quitter España, é no endereço https://quitter.es/main/ostatussub. Esta URL será nosso ponto de partida para dar uma viagem guiada pelo processo de assinatura a usuários remotos. Um processo aonde centramo-nos no trabalho que realiza o protocolo PubSubHubbub.

Iniciamos a viagem até a assinatura

 

 

Estando no ponto de partida, main/ostatussub, perante o usuário final o processo não tem grandes segredos: insere-se o endereço do OStatus, usuario@exemplo.net ou https://exemplo.net/usuario, do usuário que deseja-se seguir, e então o GNU Social pede-lhe para confirmar a assinatura, realiza a confirmação e, a partir deste momento, começa a receber todas as publicações do usuário a que foi solicitado seguir, em sua linha do tempo pessoal.

Sigamos estes mesmos passos, mas agora fazendo referência às linhas de código do GNU Social adonde se desenvolve a ação:

  • Executa-se a ação. Quando o usuário aperta o botão «continuar», executa-se uma solicitação POST, que inclui a variável profile, sobre a ação ostatussub implementada pelo plugin OStatus.A partir deste momento o GNU Social lança-se à caça do feed, tudo é um feed, que se esconde por detrás do usuario OStatus que indicamos a ele.
  • Uma URI ou um e-mail? O primeiro a se fazer é confirmar se o usuário introduziu no formulário uma URI ou um usuário em formato de endereço de e-mail. Se o que temos é um usuário OStatus em formato de endereço de e-mail, teríamos que extrair pelo Webfinger. Porém, para este post, vamos a supor que temos uma URI para encontrar o feed que buscamos. A partir deste momento é quando entra en ação o PubSubHubbub.PubSubHubbub permite-nos assinar um feed em tempo real. Não temos que fazer solicitações regulares ao feed para obter as novas publicações, ao invés disto nós é que seremos notificados, e nos será enviado o novo conteúdo, em tempo real, quando o feed se atualizar. Para entender a lógica por detrás do PubSubHubbub recomendo ver este vídeo. Nos passos para implementar PubSubHubbub, o primeiro é descobrir como assinarmos o feed, descobrir qual é o agente (hub) a que temos que pedir que o feed assine. Este hub se encarrega de informar aos assinantes remotos sobre as atualizações dos feeds dos usuários em seu nó. Cada nó do GNU Social tem seu próprio agente (hub).
  • Descobrir o hub. Uma vez que tenhamos a ULR do feed, o GNU Social realiza uma solicitação GET para obter a informação sobre o hub ao qual tem de solicitar assinatura, dá persitência aos dados encontrados (URL do feed, hub do feed, etc), guarda-os na base de dados associados ao usuário OStatus para o qual recebemos uma pedido de assinatura. Terminado este passo, o GNU Social nos apresenta os dados do usuário do qual queremos assinar, e nos pede confirmação.
  • Enviamos solicitação de assinatura ao hub. Uma vez que o usuário confirme a assinatura, o GNU Social dá início ao processo de assinatura. Seguindo a especificação do PubSubHubbub, para solicitar a assinatura a um hub, temos que fazer uma solicitação POST enviando-lhe a seguinte informação: mode=subscribe, topic=, callback=, verify=sync. O "topic" é a URL do feed a que queremos assinar, e "callback" é a URL à qual queremos receber primeiro a chave de confirmação, e a partir daí, as atualizações do feed. Aqui está o código que implesmenta isto no GNU Social. Enviada a solicitação, temos que esperar que o hub faça-nos uma petiação GET com a chave de confirmação.
  • Recebemos a chave desde o hub e voltamos a confirmar.
  • Já estamos seguindo!! A partir deste momento o hub nos vai enviar as atualizações do feed ao qual nós acabamos de assinar, com solicitações à URL do callback que passamo-lho.

O blog Anders Bateva tem uma conta no GNU Social, no seguinte endereço: https://quitter.es/andersbateva.

CC0 O texto deste post de Anders Bateva está liberado sob domínio público. Baseado no trabalho disponível no blog Las Indias.


GNU Social é descentralizado ou distribuído? E de que importa afinal?

22 de Agosto de 2017, 13:21, por Feed RSS do(a) PSL-Brasil

Autor: Manuel Ortega. Tradução por Anders Bateva.

 

 

Rede centralizada (azul); Rede descentralizada (vermelho); Rede distribuída (amarelo).

Antes de responder à pergunta sobre se o GNU Social é descentralizado ou distribuído, é interessante definir porquê é importante responder a esta pergunta, e quais são suas consequências. A distinção entre topologias de rede é uma velha ferramenta indiana para compreender as principais mudanças sociais das últimas décadas. Este uso da distinção entre topologias de rede nos ajuda a compreender como flui a informação através de uma rede de um nó a outro, quais nós da rede são capazes de retransmitir informação a outros nós, se existem nós dos quais depende a sobrevivência da rede, e se algum dos nós tem a capacidade de filtrar e controlar a informação que os outros recebem.

Em resumo, o debate sobre as topologias de rede trata sobre a autonomia dos nós e estruturas de poder. Não por acaso, um dos slogans mais famosos do movimento ciberpunk é: Sob toda arquitetura informacional, oculta-se uma estrutura de poder.. A busca e a distinção entre diferentes topologias de rede jugou um importante papel no nascimento de Internet.

Em 1962 um confronto nuclear parecia uma ameaça iminente. Por isto, Paul Baran recebeu um importante encargo: a Corporação RAND lhe pediu que definisse uma estrutura sob a qual deveriam erguer-se os sistemas de comunicação que pudessem sobreviver a uma primeira onda de ataques nucleares. O principal resultado do trabalho do Baran se pode ver na imagem que exibe as diferentes topografias de rede, ilustrando este artigo.

Robustez e topologias de rede

Em 1996, Paul Baran, em seu famoso informe sobre a DARPAnet, apresentou 3 topologias de rede diferentes e suas características. A principal diferença entre as 3 topologias de rede apresentadas é quão robustas são perante um ataque nuclear, ou, em outras palavras, até que grau podem tolerar perturbações sem sofrer colapso total.

Podemos discutir largamente e extensivamente sobre este tema e fazer uma ampla apresentação sobre a medição da robustez de uma rede, porém, em resaumo, digamos que uma rede é mais robusta conforme menos nós fiquem desconectados ao se remover um nó qualquer da rede. Isto, mais uma olhada à imagem de topologias presente no artigo, permite-nos facilmente deixar em claro que as duas primeiras topologias, ou seja, as redes centralizadas e descentralizadas, são altamente dependentes, respectivamnente a nível global e local, dos nós centralizadores.

Na rede centralizada, a queda do nó principal geraria o colapso de toda a rede, e por conseguinte, os nós sobreviventes não poderiam seguir comunicando-se entre si, por falta do nó que lhes interconecta. Pelo contrário, nas redes distribuídas, a terceira topologia que aparece na primeira imagem deste post, cada nó é independente e a queda de nenhum dos nós produziria a desconexão de outro.

Natureza social das redes distribuídas

A originalidade indiana foi utilizar as topologias de rede para explicar os grandes destaques da evolução social desde o século XVIII em função dos meios de comunicação dominantes de cada época (cartas, telégrafo, Internet). No livro «El poder de las redes» (O poder das redes) podemos ler uma ampla recapitulação histórica pelos últimos séculos e compreender facilmente como os progressos tecnológicos deram vida a novas estruturas de informação que, por sua vez, geraram alterações sociais.

A chave na recapitulação histórica que podemos ler em «El poder de las redes» está em ver pessoas e conexão de pessoas onde Baran viu computadores e cabos. Porém, se através da visão de Baran às topologias de rede podemos tecnicamente media a robustez das redes, o que surge da visão que nos propôs David há uma década em «El poder de las redes»?. Esta visão rapidamente faz visíveis que, nas redes distribuídas, a não-existência de nós centrais não somente possibilita uma rede muito mais robusta, mas que também desaparecem as hierarquias, favorece-se a autonomia, e se impossibilita o controle de uns sobre os outros.

Como resultado, a natureza das redes distribuídas é completamente diferente daquela das redes descentralizadas. Uma rede distribuída não é uma rede mais descentralizada. Por isto, é muito importante responder à pergunta se GNU Social tem uma estrutura distribuída o descentralizada.

O que é GNU Social e como é sua estrutura?

Na rede se encontram várias descrições de GNU Social. A maioria delas o apresentam como uma alternativa ao Twitter, ou de forma mais geral, como um serviço de microblogging. Certamente as funções atuais e as opções que oferece o GNU Social são em sua maioria características dos serviços de microblogging. Porém, na prática, o que descobrimos é que rapidamente florecem de novo as conversações e que cada vez mais aparecem novas funções que reduzem a validez das descrições mencionadas anteriormente.

O que é GNU Social?

Todas os sites de microbloging ou geração de agenda usam ideias errôneas e devem ser transformadas. Ninguém necessita do «microblogging», querem sociabilização

O desejo de socializar e conectar uns com os outros faz visível o fato de que todos estes sistemas e sites não são redes sociais em si mesmas, mas sim ferramentas que, como os serviços de mensagem instantânea e e-mail, são usadas por redes sociais, isto é, redes de pessoas. Assim, vemos que GNU Social é uma ferramenta livre para a interconexão e comunicação, usada por diferentes redes sociais. Que funções oferecerá, e o quê trocaremos através do GNU Social? Isto depende do que desejem as redes sociais que o usam. Além do mais, o GNU Social tem uma característica particular que nos interessa especialmente e tem a ver com sua estrutura. Assim, é que voltaremos à pergunta: que estrutura tem o GNU Social?

GNU Social é descentralizado ou distribuído?

Já temos apresentado amplamente porquê é importante responder a esta pergunta. O que nos ajudará a distinguir claramente entre as 3 topologias de rede básicas é a interdependência dos nós que formam parte de uma rede. A interdependência nos conta se os nós individuales dependem dos outros para poderem comunicar-se com outros, e portanto define quão robustas são perante ataques. Os nós em uma rede impulsionada por GNU Social são as diferentes instâncias.

Uma rápida olhada na imagem deste parágrafo mostra-nos claramente que os nós de GNU Social não dependem uns dos outros para comunicarem-se, e que a queda de um deles não põe em perigo nem um pouco a sobrevivência da rede. Consequentemente, o GNU Social tem uma estrutura distribuída.

Conclusões

De tudo isto, podemos tirar duas importantes conclusões. Em primeiro lugar, damo-nos conta de que não é necessário buscar uma definição estrita para GNU Social porquê, o que se poderá fazer com ele dependerá do quê quiserem os usuários. Em segundo lugar, o GNU Social tem uma estrutura distribuída. Uma distinção importante porquê, graças a ela vemos o nascimento de uma natureza social em quê a autonomia, privacidade, e conversações são prioritárias.


O blog Anders Bateva tem uma conta no GNU Social, no seguinte endereço: https://quitter.es/andersbateva.

CC0 O texto deste post de Anders Bateva está liberado sob domínio público. Baseado no trabalho disponível no blog Las Indias.


Instâncias hispanófonas do GNU Social

22 de Agosto de 2017, 13:21, por Feed RSS do(a) PSL-Brasil

Autor: Manuel Ortega. Tradução por Anders Bateva.

O modelo de socialização do Facebook e Twitter (modelo FbT) é o de uma grande praça onde todos podem lançar seus slogans sem nem escutar aos demais, nem tomar a responsabilidade de buscar os contextos e entender as conversações.

O resultando é um grande galinheiro, uma zona onde qualquer intenção de manter uma conversação sobre qualquer tema é imediatamente cerceada por uma avalanche de slogans e agressões por parte de usuários que, muito possivelmente, nem sequer leram o artigo que deu início à conversação.

Porquê o GNUSocial gera mais valor em suas conversações que o Twitter?

Não é por acaso que o que os usuários mais valorizam é ter "menos links que no Twitter, mais caracteres, e mais conversação", "um espaço sem ruído para a conversação tranquila", "falar com calma e tratar outros temas", etc. Todas estas mensagens apontam à íntima relação entre o valor de uma conversação e a confiança estabelecida previamente pelos nós.

É uma consequência da estrutura distribuída do GNU Social. Graças a ela, o GNU Social se despe de qualquer intenção recentralizadora e constroi a rede baseada em nós independentes - geralmente formados por afinidade entre grupos de pessoas - que se comunicam entre si graças à federação de conteúdos.

O que é a federação?

As conexões entre os nós do GNU Social são estabelecidas pelos usuários que seguem-se entre si. Através destas relações de "seguir", todos os nós podem se comunicar e formar uma rede. É o que se conhece como a Federação, e poder-se-ia entender como uma rede de acordos. Precisa-se somente que eu siga a um usuário de outro nó para que todo o que este usuário publique seja visível para todos os membros de meu nó. Graças a isto, podes ver não somente as mensagens das pessoas que você segue (em sua "linha do tempo pessoal") e o que publicam em seu nó (na "linha do tempo pública" de seu nó), mas também uma coleção muito mais ampla de mensagens ("toda a rede conhecida") onde além das mensagens anteriores, poderás ver as mensagens de pessoas em outros nós às quais ao menos um usuário do seu próprio nó siga. Isto gera coisas maravilhosas como, por exemplo, "toda a rede conhecida" ser diferente em cada nó, já que sua composição está baseada nas pessoas que você segue + as seguidas por seus companheiros de nó. Um aspecto muito valioso, já que supõe uma exploração conjunta da rede.

E, partindo de que existe uma relação de confiança prévia entre os membros de um nó, cada vez que um membro do nó começa a seguir - isto é, quando se estabelece um acordo - a um usuário de um nó externo, o espaço de confiança se amplia. A chave para gerar espaços e condições favoráveis para a conversação está no fato de que a federação de conteúdos se realiza baseada em quem os usuários de cada nó seguem em outros nós, e não à agregação geral de todos os conteúdos por todos os nós. O resultado é que, se uma pessoa a quem nem eu nem ninguém do meu nó segue disser algo em uma conversação, não verei suas intervenções. Pode parecer um erro, mas na verdade, é a consequência de um acordo, de um contrato implícito: para ser parte de uma conversação de outro nó, tenho que haver recebido antes a confiança de algum dos que tomam parte dela.

Os problemas de federação

Este modelo de federação recebe a crítica de muitos novos usuários que aterrisam no GNU Social desde a experiência de socialização de Twitter e Facebook. Rotulam esta diferença como "problemas da federação", e se queixam de que as conversações nas quais participam apenas mostram as mensagens das pessoas que eles próprios, ou outras pessoas em seu nó, seguem. A solução é tão fácil de implementar tecnicamente quanto perigosa. O que se pretende com este pedido é, na verdade, romper a federação de conteúdos baseada em contratos implícitos, e abrir as portas para a agregação de tudo com tudo, e a ruptura de qualquer cadeia de confiança. Isto é, eliminar as bases que permitem aos nós criar espaços de conversação real.

Ao romper este modelo de federação de conteúdos, estaríamos importando o modelo social dos grandes centralizadores, o modelo Facebook-Twitter, aos espaços e redes que construímos baseados em ferramentas como GNU Social, Diaspora*, Friendica, etc. A socialização massiva através de Facebook e Twitter empobreceu as conversações e cerceou o nacimento de novas identidades. O fez implantando o discurso de que uma rede e suas interações são melhores quanto mais acessível for qualquer conversação a qualquer um. Quando não é necessário receber uma mínima confiança prévia para poder intervir ou interromper a conversação dos outros. De qualquer forma, a busca deste tipo de acessibilidade invisibiliza a própria base das redes distribuídas: o fato de que uma rede distribuída é formada por nós, por grupos independentes que se comunicam entre si.

Conclusões

Os problemas, ou defeitos, da federação de conteúdos só são assim se considerarmos bom e desejável o modelo de socialização Facebook-Twitter. Na realidade, seria preciso chamar de "as vantagens da federação", porquê se o que buscamos é construir espaços enriquecedores e propícios para a conversação, o que temos hoje no GNUSocial é a estrutura que o torna possível.

A federação de conteúdos baseada em relações de "seguir" - acordos entre pessoas - é a base para construir espaços de interação enriquecedores e propícios para a conversação. Um aspecto determinante para não ceder às pressões centralizadoras e converter os espaços construídos com GNU Social em uma nova versão do galinheiro que agora nos propõe Twitter e Facebook. Se a estrutura distribuída dos servidores for "invisível", se mudarmos a lógica expontânea da federação para que o usuário veja a rede e se comporte tal qual em uma rede centralizada, teremos mudado tudo para que tudo permaneça igual.

O mundo da federação de conteúdos é apaixonante e vai determinar em grande medida o futuro da Web. Cremos que seria um erro replicar o mdelo centralizado e sua cultura. Este serve a informação com independência dos acordos entre as pessoas, e portanto, torna aceitável a irresponsabilidade, encorajando a confrontação. Para nós, a prioridade do GNU Social deveria ser o desenvolvimento de uma cultura de socialização baseada na confiança dentro dos nós, e a responsabilidade de entender do que se está falando quando alguém é introduzido em uma conversação. E para isto, a chave é articular a federação, tal como até agora, sobre a mínima responsabilidade que supõe que, para ser um igual em outro nó, alguém deste outro nó considere o que digo suficientemente interessante a ponto de querer seguir-me.


O blog Anders Bateva tem uma conta no GNU Social, no seguinte endereço: https://quitter.es/andersbateva.

CC0 O texto deste post de Anders Bateva está liberado sob domínio público. Baseado no trabalho disponível no blog Las Indias.


Tchelinux 2017 - Programação de Bagé e Gravataí liberada, chamada de trabalhos para Caxias, Erechim e Bento Gonçalves

22 de Agosto de 2017, 13:14, por Feed RSS do(a) PSL-Brasil

O grupo de usuários Tchelinux orgulhosamente informa a programação dos dois próximos eventos, e o planejamnto de mais 3 eventos a caminho!

Para quem ainda não conhece, o Tchelinux é um grupo comunitário que reúne entusiastas, usuários e desenvolvedores de Software Livre no Rio Grande do Sul. O evento, organizado por membros deste grupo e voluntários, tem como objetivo integrar a comunidade de Software Livre com palestras, oficinas e outros eventos, a fim de fortalecer a cultura de Software Livre no estado do Rio Grande do Sul. Todos os eventos do Tchelinux são sempre gratuitos, porém os participantes são encorajados a doar 2kg de alimentos não-perecíveis, que são encaminhados a instituições de caridade da cidade onde ocorre o evento.

No dia 26 de Agosto a cidade de Bagé estará recebendo o Tchelinux no campus da UNIPAMPA Bagé. A programação já está liberada, e mais informações estão acessíveis no site do evento:

https://bage.tchelinux.org

No dia 16 de Setembro a cidade de Gravataí estará recebendo o Tchelinux na Faculdade CNEC Gravataí. A programação já está liberada, e mais informações estão acessíveis no site do evento:

https://gravatai.tchelinux.org

No dia 23 de Setembro a cidade de Bento Gonçalves estará recebendo o Tchelinux na UCS Campus Bento Gonçalves. A chamada de trabalhos já está aberta, e mais informações estão acessíveis no site do evento:

https://bento.tchelinux.org

No dia 30 de Setembro a cidade de Erechim estará recebendo o Tchelinux na Faculdade Anglicana de Erechim. A chamada de trabalhos já está aberta, e mais informações estão acessíveis no site do evento:

https://erechim.tchelinux.org

No dia 21 de Outubro a cidade de Caxias estará recebendo o Tchelinux na UNIFTEC Caxias do Sul. A chamada de trabalhos já está aberta, e mais informações estão acessíveis no site do evento:

https://caxias.tchelinux.org

Participe contribuindo com a sua comunidade e com o software livre!



Tchelinux 2017: Chamada de palestras para Bagé e Gravataí, programação de Novo Hamburgo liberada

22 de Agosto de 2017, 13:14, por Feed RSS do(a) PSL-Brasil

Tchelinux 2017: Chamada de palestras para Bagé e Gravataí, programação de Novo Hamburgo liberada

É com orgulho que anunciamos mais três eventos do Tchelinux este ano!

Para quem ainda não conhece, o Tchelinux é um grupo comunitário que reúne entusiastas, usuários e desenvolvedores de Software Livre no Rio Grande do Sul. O evento, organizado por membros deste grupo e voluntários, tem como objetivo integrar a comunidade de Software Livre com palestras, oficinas e outros eventos, a fim de fortalecer a cultura de Software Livre no estado do Rio Grande do Sul. Todos os eventos do Tchelinux são sempre gratuitos, porém os participantes são encorajados a doar 2kg de alimentos não-perecíveis, que são encaminhados a instituições de caridade da cidade onde ocorre o evento.

Primeiramente, temos um evento que já está com a programação fechada e com suas inscrições abertas, na cidade de Novo Hamburgo, que ocorrerá dia 12 de Agosto na FTEC. Serão mais de 15 palestras e um painel ao longo de 8 horas de evento, abordando temas atuais como virtualização, Git, Ceph, PHP, OpenStack, Docker e muitos mais. Maiores informações sobre o evento de Novo Hamburgo podem ser encontradas no seguinte link:

https://nh.tchelinux.org

Posteriormente, temos duas cidades que estão com a chamada de palestras aberta.

Bagé, localizada perto da fornteira com o Uruguai, está com a chamada de palestras aberta até dia 07 de Agosto. Então corre lá para participar!

https://bage.tchelinux.org

Gravataí, cidade na região Metropolitana de Porto Alegre, está com a chamada de palestras aberta até dia 12 de Agosto. Mais informações no link abaixo:

https://gravatai.tchelinux.org

Tanto os participantes como os palestrantes destes 3 eventos receberão 2 cursos gratuitos do nosso patrocinador Baciotti Cursos, correspondendo a mais de cem reais de brinde para aqueles que comparecerem!