# Pesquisa: Ferramentas livres para cadernos de pesquisas abertos - matemática pura e áreas afins

Essa atividade envolve investigar ferramentas livres para a criação de Cadernos de Pesquisa Abertos(Open Science Notebook), com foco em características adequadas as necessidade da área de matemática pura e afins.
Uma chamada pública para essa atividade e as discussões relacionadas (com informações úteis) podem ser vistas nos arquivos da lista de emails do Grupo de Trabalho em Ciência Aberta seguindo esse link aqui.

# Objetivos propostos

* Descobrir, testar e escolher uma ferramenta livre boa o suficiente, ou que possa ser melhorada ao menor custo possível;

## Características desejadas

*   * Suporte a equações matemáticas (preferencialmente LaTeX)
*   * Suporte a referência cruzada (preferencialmente de forma semelhante ao LaTeX)
*   * Suporte a uma linguagem de programação para criação de gráficos
*   * Suporte a controle de versão (preferencialmente sistemas de controle de versão distribuídos, como git, mercurial etc. Ex.: gitit, tiddlywebplugins.gitstore, authorea (não-livre))
*   * Suporte a macros definidas pelo usuário (preferencialmente de forma semelhante ao LaTeX ou mais simples. Ex.: definição de macros TeX no MathJax)
*   * Suporte a exportação e importação de TeX/LaTeX
*   * Assistente de verificação para demonstrações
* Elaborar um workshop orientado à elaboração cadernos de pesquisas abertos para matemática pura e áreas afins ao estilo do que é feito pela Software Carpentry.

# Ferramentas interessantes

(TODO:traduzir o que não está em português; descrever vantagens e desvantagens.)

## Gitit

"Gitit (ou darcsit) é um software para wiki que utiliza um sistema de controle de versão distribuído (git,darcs, mercurial) para gerenciar o histórico da wiki e o Pandoc para a conversão da linguagem de marcação em HTML.".
* Vantagens
** Por utilizar o Pandoc ele suporta várias linguagens de marcação, e.g. LaTeX, Markdown, ReStructuredText, WikiMarkup, ...
** Fácil configuração.
* Desvantagens
** As páginas são "compiladas" quando requisitadas o que implica em uma sobrecarga no servidor.

## ikiwiki

| ikiwiki é um software para wiki que utiliza um sistema de controle de versão distribuído.
* Vantagens
** As páginas são servidas como arquivos estáticos.
** Fácil de configurar.
* Desvantagens
** Linguagens de marcação são suportadas via plugins.

## Instiki

"Instiki é um software para wiki escrito em Ruby on Rails e mantido pelo físico Jacques Distler. Inclui um plugin para LaTeX e é utilizada pelo nLab.".
* Vantagens
** Foi desenvolvido para um proposito parecido com o de cardeno de pesquisas abertos.
** Tem uma sintax de marcação de texto que parece suficientemente boa para textos matemáticos.
* Desvantagens
** Escrito em Ruby on Rails o que significa que a instalação não é muito fácil.
* Perguntas
** Sintax de marcação de texto do instik parece boa o suficiente para textos matemáticos. Adotar como linguagem de marcação de referência para textos matemáticos?

## Tiddly* (TiddlyWiki e seus derivados)

"TiddlyWiki is an open-source single page application wiki. A single HTML file contains CSS, JavaScript, and the content. The content is divided into a series of components, or Tiddlers".
Suas variantes são:
* TiddlyWikiClassic - "This is the original client UI. It’s a web app fitting inside a single HTML file – HTML, CSS and Javascript all together. It can run on a file:/// URI, which means you can store TiddlyWikis on your local drive, a USB drive, or a share drive … or a http:// URI. (..)".
* TiddlyWiki5 - "This is a major in-progress upgrade of TiddlyWiki, a complete rewrite, the biggest overhaul in its 5 year existence.(...)".
* TiddlyWeb - (...)
* Entre outras .
Vantagens
* Altamente portável;
* Suporta MathML, MathJax e jsMath via plugins.
Desvantagens
* Não tem controle de versão offline nas versões mais antigas.
Exemplos
* Deferential geometry - o caderno de pesquisa em física matemática do físico teórico e entusiastas de esportes de aventura Garret Lissi.
* TiddlyWiki for Scholars - uma costumização do TiddlyWiki5 para o ambiente acadêmico.
Ideias
* Usar um sistema de controle de versão distribuído para armazenar e gerenciar o histórico dos tiddlers (ex.: gitit, tiddlywebplugins.gitstore);
* Inserir botões para interagir facilmente com o sistema de controle de versão distribuído (ex.: authorea (não-livre));
* Inserir botões para exportar facilmente os tiddlers ou um grupo deles para Latex e outras linguagens de marcação (serve Pandoc?).
* Implementar plugin para sintax de marcação de texto do instik, que parece suficientemente boa para textos matemáticos.

### Investigar mais

* The Tiddly* Universe Leading Up to TiddlySpace
* http://softwareas.com/tag/tiddlyweb/
* Distributed TiddlyWiki

## GitBook

"GitBook is a tool for building beautiful books using Git and Markdown. It can generate your book in multiple formats:
* Static Website: This is the default format, it generates a complete interactive static website.
* PDF: A complete PDF book with exercise solutions at the end of the book.
* eBook: A complete eBook in ePub format with exercise solutions at the end of the book.
GitBook is open source (Apache 2.0) and completely free, the source code of the tool is available on GitHub."
Vantagens
* Suporta matemática através de plugins pra MathJax e KaTeX;
* Tem um editor que torna a edição muito conveniente.
Desvantagens
* É pouco documentado;
* O plugin pra MathaJax não vem pré-configrado pra referência cruzada de equações, e não se conhece nenhuma maneira de habilitar essa função.

# Ferramentas a serem investigadas
## GNU TeXmacs

"GNU TeXmacs is a free wysiwyw (what you see is what you want) editing platform with special features for scientists."

## Mathics

"Mathics is a free, general-purpose online computer algebra system featuring Mathematica-compatible syntax and functions." Você pode testá-lo aqui.

## Sputnik

"Sputnik is a software application that powers a dynamic website. You can use it as a “wiki”, that is, a site that any visitor can edit. If you want, however, you can control who gets to edit and see what content. Sputnik can also handle different kinds of structured data, not just text, and makes it easy to add custom actions. You also get prototype inheritance between nodes. This makes it possible to use it for a wide range of web applications."

# Ferramentas relacionadas

* KaTeX - The fastest math typesetting library for the web.

## Poderia ser uma alternativa ao MathJax? Não.
# Referências

* 1 2 Wikipédia. 2014. Open notebook science. Online.
* 1 2 Wikiversidade: Grupo de Trabalho em Ciência Aberta. 2014. Manual de Ciência Aberta: Wikipesquisas. Online.
* ↑ Gitit
* ↑ Instiki
* 1 2 3 4 5 The Tiddly* Universe Leading Up to TiddlySpace
* ↑ TiddlyWiki
* ↑ http://golem.ph.utexas.edu/wiki/instiki/show/Syntax
* ↑ https://www.gitbook.io
* ↑ http://help.gitbook.io/
* ↑ http://www.texmacs.org
* ↑ http://www.texmacs.org/tmweb/home/welcome.en.html
* ↑ http://www.sagemath.org/
* 1 2 http://www.mathics.org/
* ↑ Sputnik - a extensible meta-wiki
* ↑ https://groups.google.com/forum/#!topic/mathjax-users/vStfa_uxbCk