Início > Computers, FLOSS, Science > Edição colaborativa em TeX…

Edição colaborativa em TeX…

domingo, 12 out 2008; \41\UTC\UTC\k 41 Deixe um comentário Go to comments

Muita gente, mais cedo ou mais tarde, acaba trombando nesse problema: como editar colaborativamente um artigo científico, em geral editado em \TeX e \LaTeX?

Imagine a seguinte situação: vc numa sala, no seu depto preferido, e seu colaborador na sala ao lado! Como é que vcs podem se coordenar para escrever um artigo juntos? Agora, imaginem uma situação mais idealizada, só pra facilitar o argumento a seguir: vc e seu colaborador estão a meio planeta de distância.😈

No meio científico, essa situação é razoavelmente comum: vários autores colaborando num mesmo artigo, um em cada canto desse nosso mundo redondo.

Praqueles que não têm uma necessidade tipográfica muito grande, algo como Google Docs dá conta do recado: vc simplesmente transfere sua ferramenta editorial para “the cloud“.😉

Agora, pra quem tem necessidades tipográficas mais agudas — e.g., TeX, LaTeX, DocBook ou HTML —, a colaboração é certamente mais complicada e delicada.

As primeiras alternativas que surgiram foram as seguintes:

Quem usa Emacs pode utilizar AUCTeX e psvn.el para integrar tudo de modo suficientemente transparente.

Uma alternativa um pouco mais moderna, que integra e faz o papel de agregar as funcionalidades de “editor de textos” e “controle de versões”, é a seguinte:

  • Gobby (roda em qualquer plataforma: Microsoft Windows, Mac OS X, GNU/Linux e *NIX afins);
  • SubEthaEdit (só para Mac OS X).

Essencialmente, ambos são equivalentes: O Gobby é uma implementação “software livre” do SubEthaEdit. Para usuários menos experientes em lidar com o controle de versões, delegar essa tarefa diretamente para o editor pode ser uma saída viável. Para maiores informações sobre esse tipo de editores, é só dar uma olhada em Collaborative real-time editor. Infelizmente, eu não sei quantos desses têm suporte para TeX ou LaTeX.

Isso tudo posto… aautgora é hora de falar no Git: o Git é um dos softwares para controle de versão mais rápidos disponível atualmente. Aliás, mais do que isso, o paradigma descentralizado e distribuído do git o torna um candidato natural para um sistema de arquivos com as mesmas propriedades: o jeito mais fácil de entender o conceito do git é imaginar que vc pode, e.g., ter uma pasta no seu computador ‘replicada’ em outros computadores (que vc explicitamente permitiu acessar a pasta original): ou seja, todos os seus colaboradores vão ter acesso à mesma pasta, de tal forma que quando qualquer arquivo (formatos ASCII ou binários, i.e., TeX, LaTeX, DOC(X), PDF, JPEG, TXT, HTML, RTF, etc) dentro dessa pasta for atualizado, todos os colaboradores recebem essa mesma atualização!

Fora isso, o git tem algumas outras propriedades bem interessantes para quem está desenvolvendo uma colaboração científica, que tende a ser um processo altamente emaranhado e não-linear: suporte para desenvolvimento não-linear (resolução de conflitos de edição), desenvolvimento distribuído, é possível usar subversion através de comandos de compatibilidade, velocidade e escalabilidade (eficiência para grandes projetos), autenticação criptografada, entre outras.

Ou seja, através do uso do git o controle de versões é extremamente mais poderoso e flexível, isso pra não falar na resolução de conflitos, i.e., quando dois ou mais dos seus colaboradores estiver trabalhando no artigo (ou gráfico, imagem, etc — qualquer tipo de arquivo), ao mesmo tempo, qual modificação tem maior prioridade? O git é excelente nesse departamento… além de permitir que vc compartilhe toda uma pasta com seus colaboradores, uma vez que qualquer tipo de arquivo é monitorado e atualizado automaticamente.

É, a meu ver, a saída mais sofisticada e robusta para o problema de colaboração e acesso de várias pessoas a um mesmo conjunto de arquivos (e tudo pode funcionar de modo encriptado, o que torna todo o processo ainda mais confortável). Porém, infelizmente, ainda não há nenhum suporte para git no Emacs nem em nenhum outro editor que eu conheço. Mas, dado que o AUCTeX é uma ferramenta tão poderosa, vale a pena se ajustar ao meio termo: “Emacs + AUCTeX” e Git no console. Pode ser meio confuso no começo, mas uma vez que se acostuma com esse arranjo… é puro zen!😎

O que me traz à terceira opção: Dropbox (leiam mais no link Tour).

Essencialmente, o Dropbox é uma versão mais “user-friendly”, amigável, de softwares de controle de versões: o processo de instalação cria uma pasta no seu computador que fica arquivada no cloud deles… e, dessa forma, toda vez que qualquer arquivo denro dessa pasta for modificado, as diferenças são propagadas para o cloud, onde ficam arquivadas também. E é agora que vem o pulo-do-gato: uma das sub-pastas (dentro da pasta-mãe, compartilhada via o serviço do Dropbox) é chamada Public, de modo que qualquer arquivo dentro dessa pasta pode ser acessado por quem tiver o respectivo acesso permitido.

Até aqui, tudo soa exatamente como no git, acima… a diferença crucial é que o Dropbox não usa o git como ‘backend’, i.e., o Dropbox tem seu próprio método de atualização dos arquivos — que, até agora, não é muito bem conhecido publicamente.

Portanto, nesse sentido, o Dropbox é uma espécie de git light, i.e., é uma versão mais levinha e com menos recursos do que o git — não tão robusto, mas que satisfaz as necessidades da grande maioria dos usuários.

A grande vantagem é que não é preciso que “alguém” instale um servidor rodando git, o que torna tudo muito mais acessível a qualquer nível de usuários.😉

Então, no final das contas, essa não é uma saída tão ruim assim… perde-se uns recursos dum lado, mas ganha-se em manutenção do outro — em geral, é um bom meio termo. E, de quebra, ainda é possível se usar TrueCrypt para se encriptar o conteúdo de toda a pasta, tornando tudo muito mais seguro (mesmo que o conteúdo da pasta esteja na ‘cloud’, ele estará encriptado😉 ).


Pessoalmente, meu sonho de consumo seria um servidor rodando uma combinação dos seguintes:

juntamente com todo o indexamento feito pelo SPIRES! E, a essa mistura, adicionaria-se um servidor git, para que todos os usuários pudessem colaborar livremente e, de modo completamente transparente, publicar o artigo assim que acabado!

Dessa forma, numa mesma e única plataforma estariam centralizadas as melhores e mais robustas funcionalidades disponíveis no momento — seria o paraíso!🙂

Bom… é isso aí: a diversão é mais-do-que-garantida, []’s!😈

  1. Leandro Seixas
    segunda-feira, 13 out 2008; \42\UTC\UTC\k 42 às 21:26:28 EST

    O legal seria o Google criasse um “GoogleTeX” parecido com o GoogleDocs, só que pra LaTeX. Aí sim a coisa ficaria boa e acessível pra todo mundo.

  2. terça-feira, 14 out 2008; \42\UTC\UTC\k 42 às 00:06:10 EST

    Leandro,

    Na verdade, o Google Docs é um competidor para o Word, então não é bem um “editor” de textos, mas sim um “processador” (i.e., um esquema WYSIWYG).

    Se o Google Docs salvasse em formato ASCII, todo o problema já estaria resolvido, mas…😛

    []’s.

  3. Leandro Seixas
    terça-feira, 14 out 2008; \42\UTC\UTC\k 42 às 03:11:44 EST

    É, o GoogleDocs na verdade é um concorrente do Office (concorrente muito fraquinho), já que ele tem o spreadsheet e o presentation também além dos documents. Mas dá pra escrever em TeX e depois pedir pra fazer o download no forma texto, depois é só mudar a extensão: de .txt para .tex, mas acho que isso é um trabalho desnecessário. Bem que o GoogleDocs poderia colocar a opção “fazer download como .tex”, e depois disso um compilador on-line, gerar o .pdf ou .ps direto por lá. Isso não daria tanto trabalho assim para eles, não sei porque não fizeram isso ainda.

  4. terça-feira, 14 out 2008; \42\UTC\UTC\k 42 às 10:34:06 EST

    Leandro,

    Exato, essa alternativa de trocar as extensões, etc, é a única viável (e possível) nesse momento, pra se usar o GoogleDocs com esse intuito.

    Foi por isso mesmo que eu sugeri o DropBox: todo esse tipo de “manobra” fica secundária, e vc simplesmente mantém tudo “sincronizado” em tempo real. É uma alternativa que contorna todos esses problemas e, de quebra, ainda oferece uns “extras”.😉

    []’s.

  5. sexta-feira, 13 mar 2009; \11\UTC\UTC\k 11 às 18:18:26 EST

    Pra quem achou que essa era uma questão que só um chato como eu poderia trazer à tona…

    Collaborative Academic Writing Software?.

    A idéia de se usar o Gobby é boa. Espero que esse projeto realmente alce vôo, porque sendo portável para todas as plataformas, certamente será fantástico de se trabalhar colaborativamente…😉

    []’s.

  1. terça-feira, 17 mar 2009; \12\UTC\UTC\k 12 às 10:57:49 EST
  2. domingo, 20 set 2009; \38\UTC\UTC\k 38 às 21:15:33 EST
  3. sexta-feira, 9 out 2009; \41\UTC\UTC\k 41 às 14:38:25 EST

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: