My scripts are now live on GitHub (original version here)
English version
People following this blog or my posts in comp.databases.informix or in the IIUG mailing lists may have noticed I've been working with Informix for a couple of decades (actually a bit more). Over this period, I, as any Informix DBA have created and used a few utility scripts and code.
Several years ago I decided to use a version control system to manage these sources essentially as a way to keep track of versions and changes. The main driver to this was that I occasionally left some of these scripts in some customers who eventually later got in touch with me to report doubts or issues. Sometimes it was hard to understand the version they were using so that I could understand if the problem or doubt would still be meaningful in the latest versions.
After looking around I decided to use CVS for it's simplicity and because I didn't need any fancy distributed version control system.
Later I decided to make the scripts generally available and over time I got a VM running on my home computer with ViewCVS installed. This is a handy little utility that will present a web interface over a CVS repository. Simple to setup it worked great, as long as the VM was running, my Internet provider was ok, and I could update my dynamic DNS service if my IP changed. As you can imagine, several potential points of failure resulted in the unavailability of the system for long periods.
Just recently I decided I needed to fix this. So I looked around for public source codes repositories that could be used. For several reasons GitHub was the natural choice (basically too much uncertainty around other options and some security issues). But if from a hosting point of view GitHub was a good choice, from some other practical aspects is was a nightmare:
- It's a nice distributed version control system, created for easy
collaboration between many developers spread across geographically
disperse regions. A simple automatic feature of CVS which is to mark a
file with a specific version on each commit, one that can be easily
readable by an end user, is not possible (nor really needed in a
traditional project where there is a "build" phase) with Git.
- The concepts are a bit more complex (to say the leastt), given the objectives. For my use case this is completely overkill
- GitHub offers also an SVN (another version control system) option, but converting to SVN would still require significant changes on the way I work
- I wanted to convert my CVS repository to a new system, without loosing the history of changes
After a couple of weeks messing around with GitHub and a nice CVS2Git conversion utility I'm glad to announce I've done it.
From now on, my work with Informix scripts will be available on:
http://github.com/domusonline/InformixScripts
You can browse it, download the scripts and even clone the repository for your use. Currently I have no plans to include collaborators on this repository (people who would be able to submit changes made by them to the scripts). There are several reasons why:
- I don't have available time to guarantee good support for this to work out well
- I don't think this is really need. I highly doubt there would be requests in a significant number to justify this
Having said this, by no means I'm stating I'm not interested in improving the scripts. Quite the opposite. If you use any of them and find a bug or have doubts please send me feedback, or propose changes and I'll do my best to answer in a timely manner. I just can't guarantee anything. GitHub has a nice feature that allows users to create issues, make requests etc.
In any case the scripts are made available as
GPL version 2 license You can use them and change them.
Things to do and caveats
Many of the scripts are a bit useless without some documentation or guidance. Not that they are very complex, but some of them have some assumptions and dependencies on other scripts. I'll try to document the ones that really need documentation. I'll try to do this in two ways:
- Add the documentation to GitHub, either in it's wiki or with README files
- Eventually post here some articles about some of the scripts
In any case, most of the scripts (the most useful ones I'd say) are self contained and will show you the usage if you run them with the "-h" option.
Feel free to access the repository, download the script you feel could be useful and send me feedback about problems, suggestions etc
Versão Portuguesa
Quem siga este blog ou as minhas participações no comp.databases.informix ou nas listas e
email
do IIUG, já terá percebido que trabalho com Informix há um par de
décadas (um pouco mais na verdade). Durante este período eu, como
qualquer outro DBA Informix, criei e usei algum código e
scripts.
Há vários anos atrás decidi que deveria utilizar um sistema de controlo de versões
para gerir estas fontes, essencialmente como uma forma de manter um
registo de versões e modificações. A principal motivação para isto foi
que ocasionalmente deixo alguns destes
scripts em clientes
que visito, os quais eventualmente mais tarde me contactam com dúvidas
ou problemas. Por vezes era difícil perceber que versão estavam a usar
de forma a perceber se o problema ou dúvida ainda fazia sentido nas
versões mais recentes.
Depois de procurar decidi usar o
CVS,pela simplicidade e porque não necessitava de funcionalidades
"finas" oferecidas pelos sistema de controlo de versões distribuídos.
Mais tarde decidi que deveria disponibilizar os
scripts
e acabei por ter uma VM a correr no PC caseiro com o ViewCVS instalado.
Este componente é um pequeno software que disponibiliza uma interface
web
sobre um repositório CVS. É simples de montar e funciona bem, desde que
a VM esteja a correr, que o meu serviço de internet esteja estável e
que eu consiga atualizar o serviço de DNS dinâmico em caso de mudança de IP. Como se pode
imaginar, vários potenciais pontos de falha resultaram em
indisponibilidade durante longos períodos.
Mais
recentemente decidi que deveria resolver isto. Procurei por serviços de
repositórios públicos e gratuitos. Por várias razões o GitHub foi a
escolha natural (basicamente devido a incertezas e problemas de
segurança associados a outras alternativas). Mas se do ponto de vista do
alojamento o GitHub é uma boa escolha, de outros pontos de vista mais
práticos foi um pequeno pesadelo:
- É um excelente
sistema distribuído de controlo de versões, criado para fácil
colaboração entre muitos programadores espalhados por diferentes áreas
geográficas. Mas uma simples funcionalidade do CVS, que "marca" cada
fonte com uma versão ou revisão específica durante um commit não é possível (nem é realmente necessária num projeco tradicional onde exista uma fase de "build")
- Os
conceitos são um pouco mais complexos (para não dizer mais),
especialmente considerando os objectivos. Para o meu caso de uso é um
"exagero".
- O GitHub também oferece uma opção de usar o SVN
(outro sistema de controlo de versões). Mas a conversão para o SVN
revelou-se também trabalhosa
- Queria converter o repositório sem perder o histórico das alterações
Depois de um par de semanas às voltas com o GitHub e um simpático
software de conversão, o CVS2Git, é com satisfação que anuncio que está feito.
A partir de agora, o meu trabalho em
scripts relacionados com Informix estará disponível em:
http://github.com/domusonline/InformixScripts
Pode navegar no repositório, transferir os
scripts
individualmente ou até clonar o repositório para seu uso. Neste momento
não tenho planos para incluir colaboradores neste repositório (pessoas
que poderiam fazer envios de alterações). Há várias razões para isto:
- Não tenho disponibilidade de tempo para garantir um nível de suporte que permitisse o bom funcionamento do processo
- Não me parece que seja realmente necessário. Dúvido sinceramente que houvesse pedidos num número que justificasse isto
Tendo dito isto, não quero dizer de forma nenhuma que não esteja interessado em melhorar os
scripts. Muito pelo contrário. Se usar algum deles e encontrar um problema, ou se tiver dúvida por favor envie-me
feedback
ou proponha alterações que eu farei o meu melhor para responder
atempadamente. Apenas não posso garantir nada. O GitHub tem uma
funcionalidade simpática que permite que os utilizadores possam criar "
issues" que podem ser comentários, relatos de erros, pedidos de funcionalidades etc.
Em qualquer caso os
scripts são disponibilizados sob a licença
GPL versão 2. Pode usá-los e alterá-los.
Alterações e problemas
Muitos dos
scripts são um pouco inúteis
sem alguma docuemntação ou aconselhamento. Não que sejam muito
complexos, mas alguns deles partem de certos pressupostos, ou têm
dependência de outros
scripts. Tentarei documentar os que realmente necessitam de documentação. Isto poderá ser feito de duas formas:
- Adicionar documentação ao GitHub, seja na forma do Wiki ou em ficheiros README
- Eventualmente através de alguns artigos aqui no blog
De qualquer das formas, a maioria dos
scripts (os mais úteis diria eu) são independentes e mostram alguma ajuda se executados com a opção "-h"
Esteja à vontade para aceder ao repositório, descarregar os
scripts que lhe possam ser úteis e envie-me
feedback sobre problemas, sugestões etc.