Sérgio Lopes Sakabatō, the reversed blog!

StaySimple, versão 1.004 Aug 2011

Et voilà! A primeira versão, que marca o aparecimento deste novo sistema, está lançada.

StaySimple é um gestor de conteúdos (CMS) que permite a criação de websites de forma simples e rápida, com o mínimo de configurações possíveis e um conjunto limitado de dependências. O seu motor de persistência usa XML em vez de bases de dados relacionais com o MySQL, SQLite ou outros.

Criado em PHP, com recurso a jQuery e jQuery UI para a interface de administração, pretende ser um CMS simples de usar, fácil de instalar e configurar e proporcionar uma gestão eficiente do que é fundamental num website: páginas. O StaySimple nasceu de algumas divergências que tive com um outro CMS baseado em XML, o GetSimple (GS). Encontrei o GS no início deste ano e comecei a usá-lo para gerir o meu site pessoal. Ser baseado em XML, para esta situação específica, foi uma vantagem e a interface de gestão estava fácil de usar, embora com algumas falhas.

Sendo um projecto livre participei no fórum, ofereci uma tradução para Português e submeti alguns patches, mas cedo me deparei com problemas estruturais no código que dificultavam a actualização e correcção de erros, bem como bugs de principiante que me preocuparam (todos temos direito aos nosso bugs de principiante mas a quota no GS era demasiado elevada). Como me comecei a envolver mais com o projecto e como precisei de o modificar ligeiramente para o meu site encontrei dificuldades, quer a nível de código quer a nível de visão sobre o produto, e aqui decidi criar a minha própria versão.

Em vez de correcção de erros, os programadores do GS focavam-se em novas funcionalidades em cima do código que tinham, não corrigiam os bugs mais básicos e não aplicavam os patches que eram entregues pela comunidade envolvida. Começaram a programar um motor com base em MySQL e mantiveram uma linha de pensamento que parecia afectada pelo sucesso que tiveram. O projecto, do meu ponto de vista, estava a ir por mau caminho e, como utilizador, estava a sentir necessidade de procurar uma alternativa.

Assim, nos primeiros tempos, comecei por modificar o GS e tentar um fork do projecto. Após algumas alterações verifiquei que não seria possível nem desejável continuar com a base do GS. Não existia utilização de programação orientada por objectos, a estrutura dos ficheiros e a forma como eram organizadas as funções não ajudava e muitos problemas de fundo afectavam qualquer desenvolvimento que tivesse por base tal código. Removi o código do GS do repositório que tinha criado e recomecei o projecto com uma base nova.

Lamentavelmente o tempo não ajudou e tive de parar de desenvolver sem sequer ter criado o básico na gestão das páginas e das várias vezes que voltei a pegar no projecto fiz e refiz o mesmo código não tendo avançado além de meia dúzia de classes e da capacidade de ler ficheiros XML. Entretanto o projecto ganhou nova força, e a vontade de o terminar com sucesso voltou também, pelo que investi cerca de três dias na recriação da base e na colocação das fundações para um CMS funcional.

E assim chegámos à versão 1.0, a primeira versão oficial, ainda com muito por fazer e com muitos bugs ou funcionalidades por implementar, mas que permite já ter uma visão geral do objectivo do projecto, de como funcionará a interface de administração e que funcionalidades fazem a base do projecto. Os próximos tempos serão de correcção de erros e actualização das funcionalidades existentes e, naturalmente, da implementação daquelas que são consideradas as fundamentais.

O projecto está alojado no sistema de alojamento do Google, ainda tem muito pouca documentação disponível e o código está em evolução. Alguns dos ficheiros XML podem vir a ter uma estrutura diferente do que existe. Não devem usar esta versão em sistemas de produção já que se destina exclusivamente a testes e demonstrações.

Para terminar peço que, se tiver alguma disponibilidade, testem a versão actual e enviem sugestões e comentários.

Nota: Com alteração dos meus objectivos profissionais e das necessidades inerentes, este projecto foi descontinuado.