doSolutions @ SourceForge 31/Jan/2005
Com o intuito de gerar mais participação e colaboração a partir dos sites doSolutions @ SourceForge, pretendo migrar o conteúdo da plataforma doSite para o motor DokuWiki. Irei permitir assim, de forma fácil e prática, que qualquer pessoa possa participar e colaborar no desenvolvimento e evolução de cada uma das soluções que a DoWeDo-IT disponibiliza.
Podia escolher um de dois caminhos:
- Apontar cada homepage para um SiteWiki em http://dosolutions.dowedo-it.com.
- Migrar do doSite para uma plataforma de gestão de conteúdos Wiki.
A primeira tem a vantagem de agregar num só site toda a documentação de cada solução, até mesmo porque alguns documentos irão ter como base o mesmo template. A segunda tem a vantagem dos conteúdos serem em Inglês, já que como os sites não fazem parte integrante do domain dowedo-it.com não existe a restrição do conteúdo ser em Português.
Sendo mais importante alcançar uma grande comunidade de developers, do que ter a informação categorizada de forma hierárquica, optei pela segunda possibilidade. Assim sendo, os sites no SourceForge irão brevemente ter o conteúdo gerido pelo DokuWiki.
Connexions
Descobri o portal Connexions.
A mensagem afixada logo à entrada não deixa margem para dúvidas. Este portal é sobre conhecimento e sobre a importância do conhecimento ser livre, aberto e partilhado. Começou como uma colecção de materiais didáticos em formato digital e rapidamente se transformou num repositório crescente de cursos e ferramentas online para ajudar:
- Autores a publicarem e a colaborarem.
- Formadores a rapidamente construirem e partilharem cursos.
- Alunos a explorarem as ligações entre conceitos, cursos e disciplinas.
Para quando a participação activa de formadores, educadores, professores e alunos portugueses neste portal?
Unison e Desenvolvimento Web
Um dos problemas que tenho tentado resolver é o da sincronização de alterações ao código-fonte distribuído por diversas máquinas.
O ambiente de desenvolvimento e de proução que uso é composto pelas seguintes máquinas:
- Servidor Offline – este servidor é uma cópia do servidor online (de produção) e actua como elemento central de todo o desenvolvimento. Enquanto não for implementado um sistema de desenvolvimento distribuído, este servidor é essencial para consolidar todas as alterações num ponto central a partir do qual as outras máquinas da rede local se possam sincronizar.
- Laptop – esta estação de trabalho actua como elemento principal de todo o desenvolvimento, e é também o sistema de suporte a apresentações e demonstrações das soluções para os clientes. É preciso actualizar o servidor central (offline) com as alterações efectuadas, e caso existam mais estações de trabalho devem cada uma das outras se actualizar com o servidor central para que tudo esteja correctamente sincronizado.
- Servidor Online – este servidor é o servidor de produção, e tem a versão estável mais recente do site. É preciso após cada nova versão actualizar o código-fonte do servidor online através da sincronização com o servidor offline. É também necessário efectuar backups aos dados do servidor online para o servidor offline.
Manter estas 3 máquinas sincronizadas, manualmente, é uma tarefa árdua. Com o recurso ao Subversion, foi possível simplificar as actualizações e sincronização das alterações ao código-fonte entre as máquinas da rede local. Falta uma ferramenta capaz de sincronizar o servidor online com qualquer uma das máquinas da rede local, e que também facilite a sincronização do código-fonte que poderá vir a estar distribuído pelas diversas máquinas locais.
Essa ferramenta foi, à primeira vista, encontrada. Designa-se por Unison e é uma ferramenta de sincronização de ficheiros distribuídos por diversas máquinas que se encontram ligadas com recurso ao protocolo TCP/IP. Já existiam outras ferramentas idênticas, mas o Unison apresenta as seguintes vantagens face às ferramentas mais conhecidas:
- Corre em diversos sistemas operativos: Linux, Windows, OS X, ...
- Sincroniza ficheiros existentes em máquinas que correm diferentes sistemas operativos.
- Consegue lidar com actualizações a diversas réplicas numa estrutura de pastas distribuída.
- Não é um sistema de ficheiros distribuído, não requer por isso modificações a baixo-nível ao núcleo do sistema operativo nem precisa de previlégios de super-utilizador do sistema.
- É resiliente à falha: deixa cada réplica num estado estável bem definido, mesmo em casos de terminação abrupta ou erros de comunicação.
Irei por isso começar a utilizar o Unison para sincronizar alterações entre os diversos ambientes.