FLOSS

Free/Libre/Open-Source Software. Apesar de muitas pessoas utilizarem o termo FOSS, sem o "L", eu prefiro deixar assim para sempre lembrar da premissa da liberdade embutida em um programa, como prega o por alguns considerados loucos e por alguns considerado gênio, Richard Stallman. Eu pessoalmente o considero um pouco dos dois, e acima de qualquer polêmica, uma pessoa que teve importância fundamental para o que o Software Livre é nos dias de hoje (sendo a sua visão disso boa ou ruim). Acredito que pelo menos nisso a gente tem que concordar.

Tenho aqui dois projetos licenciados sob a licença GPL. O engraçado é que nenhum dos dois é feito em Ruby, a minha linguagem preferida atualmente. Daqui a pouco aparece algum novo por aí. ;-)


phpReports

O phpReports foi o meu primeiro projeto GPL. Ele nasceu da necessidade de criar uma intranet corporativa que pudesse migrar os programas antigos legados da empresa, feitos em linguagens ainda baseadas em DOS, para uma tecnologia mais atualizada. Como eu já estava apostando em ferramentas baseadas no navegado na época, tinha tudo que precisava para fazer essa migração com ferramentas livres, menos alguma ferramente que me permitisse estruturar e fazer relatórios facilmente sem ter que ficar mexendo com código toda vez que precisasse de um relatório novo.

Como eu estava estudando XSL na época, foi uma questão de juntar PHP, XML e XSL para fazer a ferramenta. Através dela podemos definir em um arquivo XML toda a estrutura desejada do relatório, tais como paginação, cabeçalhos, rodapés, grupos, subgrupos, etc. e através de uma query SQL é gerado o relatório, com interface para vários bancos de dados. Hoje em dia é uma ferramenta utilizada pelos quatros cantos do mundo, com mais de 20 mil downloads do pacote e do manual.

Links

Slackcurrent

O Slackcurrent é um projeto meu para deixar atualizada a minha distribuição preferida, o Slackware. Eu sei que tem muitos projetos que fazem esse tipo de coisa, mas eu precisava de algumas características que eles não tinham. Bem que eu tentei fazer um patch para um, mas foi recusado, aí eu fiz o meu. ;-) Algumas características da ferramenta são:

  • Depois de selecionado um mirror, é efetuado o download da lista de pacotes disponíveis no mirror. Geralmente é um arquivo de +/- 500 Kb.
  • É feita então uma comparação dos pacotes do mirror com os pacotes locais, através dos números de versão, e então geradas listas de pacotes que precisam de atualização e de pacotes novos, com a URL completa do pacote no mirror.
  • Não, ele não resolve dependências. E nem vai resolver!
  • Depois de geradas as listas, podemos fazer o que quiser com elas, mas de preferência o esperado é utilizarmos alguma ferramenta para efetuar o download dos pacotes. Eu costumo utilizar wget -i lista.
  • Após o download, podemos verificar a assinatura PGP dos pacotes.
Algumas vantagens que são os diferenciais:
  • O download da lista é pequeno. Não são necessários outros arquivos além da lista de pacotes com os números de versão.
  • Se você tem linha discada em casa, banda larga no trabalho e utiliza o Slackware, essa é a ferramenta certa. Após o download da lista de arquivos em casa, podemos gerar a lista de pacotes necessários para atualizar e dos pacotes novos, copiar em alguma mídia (disquete, pendrive, etc.), levar para o trabalho e fazer o download lá, escondido do chefe. ;-) Aí é só queimar um CD com os pacotes atualizados e levar para casa e fazer a atualização com o upgradepkg e o installpkg.
  • Podemos integrar o "motorzão" do programa em outros. Tem um pessoal que fez isso e criou uma interface gráfica, com o projeto KSlackCheck. Se você sabe programar em Python, pode pintar e bordar com o código. ;-)
  • Se você tiver vários computadores para atualizar na sua rede local, você pode aproveitar o download dos pacotes feito em algum computador em outro. Ele procura em outro computador os pacotes que são necessários para atualizar, via ssh, faz o download do computador da rede local e o utiliza.

Links