sexta-feira, 19 de junho de 2009

Coisas que a natureza não consegue explicar

Quatro dias brigando com o Windows 2003 Server, IIS, FTP, privilégios de usuários, ASP.NET ou IUSR_..., e pra que serve o IWAN_..., roteiro de filme de terror!

Pois é, as vezes os computadores são excelentes para ganharmos tempo, tornar a nossa vida mais ágil, melhorar nossa comunicação com o mundo, enfim, tudo que se ouve por ai. Para um desenvolvedor web, no entanto, essa história é inversa. Computadores nos deixam doidos, estressados, perdemos muito tempo na frente deles, e quase sempre por uma razão estúpida.

A história é a seguinte, de repente nossas atualizações no servidor não eram mais aceitas pelo IIS, as páginas eram apresentadas com erros, informando que certos arquivos javascript não eram existentes na aplicação (o pior é que os arquivos estavam lá). Problemas de FTP, pois os arquivos Zipados não podiam ser abertos, e o servidor respondia com um sonoro 'Access is denied' para esses arquivos. Por outro lado, quando zipavamos alguns arquivos no desktop, os mesmos eram aceitos e abertos no servidor normalmente. Parecia até intriga da novela das 8h.

Nada na internet a respeito, nenhum forum debatendo sobre bloqueio de arquivos ZIP no servidor IIS, nenhuma situação semelhante ocorrida na Artech, pois para Genexus basta copiar todos os arquivos e a aplicação .Net está pronta para rodar. E isso é verdade mesmo, muito simples.

Enfim, várias noites de insonia, sistema em vias de entrar em produção, nada resolvido, um comportamento muito estranho do servidor, e de repente ... aparece a Carol. Nada como ouvir a Carol dizer, deixa comigo!

E sabe o que ela descobriu? O desfecho da novela, o gran-finale, ...

O anti-virus não gostava de arquivos javascript e bloqueava tudo, sem perdão, sem perguntar, sem informar nada. Simplesmente, aqui não!!! ,#$!!@#

Se um dia entrar em uma novela dessas, não tenha dúvidas, é o anti-virus.

Final feliz!

quinta-feira, 18 de junho de 2009

Surpresa... Genexus é Server!

Toda a comunidade Genexus ansiava por um mecanismo de compartilhamento da base de conhecimento entre desenvolvedores, que permitisse que todos tivessem acesso às mais novas mudanças no projeto, e claro, evitando retrabalho entre outras chatices.

É bom lembrar que o software livre trouxe como beneficio exatamente isso, a distribuição de tarefas entre programadores espalhados em todo mundo, graças a sistemas de controle como o CVS (Control Version Systems), amplamente utilizado em ambientes Linux.

Genexus deu um passo largo nesse sentido, pois além de permitir o compartilhamento da KB, controle de publicação, histórico de modificações de objetos, controle de releases e versões, possibilita ainda rodar Genexus no browser.

Consegue visualizar isso! você em um local sem seu notebook, mas necessitando modificar algum objeto de seu sistema, entrando em um Cyber Café, e programando Genexus no Internet Explorer ou Chrome? O melhor disso é que isso já funciona, e está à sua disposição.

Ficou curioso? entre no site http://gxserver.genexusx.com/genexusserver/, instale antes o Genexus X Evolution 1 Beta 2, e poderá abrir o Genexus Web e também baixar as kb´s que se encontram nesse servidor.



Qualquer dia desses escrevo um pouco mais de CVS, commit, rollback,... Tema essencial para gerenciamento de projetos de software.

quarta-feira, 17 de junho de 2009

f (x) => Transação=Z(Atributos)

Esse é o titulo mais sugestivo que eu achei para dizer que Transação = Soma(Atributos), pena que a fonte não ajudou.

Um ponto fundamental de Genexus é o nome escolhido para designar um atributo.

Eramos livres, e de certa forma irresponsáveis, quanto a essa questão e gostavamos de designar nomes bonitos e práticos como CódigoDoCliente, EndereçoDoFornecedor,... E muitas vezes para controlar os registros colocávamos flags, do tipo, RegistroApagado, DataCriação, em todas as nossas tabelas. Coisa chique, e ainda dava um ar de programa bem feito, bem documentado, bem construido, organizado às nossas aplicações.

Com Genexus começamos a tratar os atributos de forma mais responsável, pois este elemento ganha uma responsabilidade maior, pois através do nome do atributo Genexus nos diz se o "conceito" é o mesmo ou não.

Por exemplo, ClienteId é um conceito que representa o código do cliente em toda a aplicação. Cliente é para nós um agrupamento de conceitos (informações, regras, ...), ou um objeto. Em Genexus buscamos organizar os conceitos no objeto colocando o nome do objeto seguido do conceito, assim obtém-se uma referência lógica ou organização.

A regra nos diz que:

* Conceitos Iguais = Nomes Iguais
* Nomes Diferentes = Conceitos Diferentes

Um conceito somente poderá aparecer em uma tabela no sistema todo, a menos que seja um campo chave. Por exemplo: ClienteNome (NomeDoCliente) somente aparecerá em uma tabela no sistema, enquanto que ClienteId (CódigoDoCliente), que é campo chave poderá aparecer em várias tabelas, e quando isso ocorrer haverá relação entre esta tabela com a tabela de Clientes.



Assim começa a mágica da 3a. Forma Normal em ação...

segunda-feira, 15 de junho de 2009

Iniciando do inicio...

Vamos começar com Genexus...

Transações em Genexus são os objetos fundamentais para a geração da infra-estrutura da aplicação. Apesar da interface gráfica obtida, de um ou dois níveis com grids,... o essencial deste objeto, no entanto, é o que não aparece.

Através das transações o Genexus aciona a sua "maquininha" de gerar tabelas na terceira forma normal. Se não sabe o que é terceira forma normal, então é melhor iniciar seus estudos e pesquisas antes de se aventurar a criar uma aplicação séria. Muitos desenvolvedores "sérios" nem sabem o que é isso, e o resultado é a necessidade de se programar muito para se fazer pouca coisa.

Genexus te dá a vantagem de produzir um modelo de base de dados neste formato, sem que voce tenha que se preocupar. "Corrigindo", na verdade, voce terá que se preocupar sim, porque suas definições levam a um bom ou mal modelo, e não queremos iniciar nosso projeto com um mal modelo, não é mesmo.

Então estaremos dedicando esse espaço para discutirmos um pouco do que vem a ser esse bom modelo de base de dados em aplicações Genexus.

Boas vindas!

Olá Pessoal,

Depois de muito resistir a um blog, pois tenho claro que para se aventurar nessas novas ondas são necessários alguns requisitos, dos quais o principal eu não possuo. Tempo é um luxo que já deixei de contar a muito "tempo".

Mas como diria os bons administradores, tudo é uma questão de "administração", portanto, cometerei esse pequeno pecado na minha agenda, e buscarei, com certa mas imprecisa regularidade, expor minhas experiências na administração de equipes e desenvolvimento de software, principalmente Genexus.

Engraçado, levei menos de cinco minutos para colocar esse Blog no ar, acho que isso é um bom sinal!

Seja benvindo e obrigado por sua compreensão.

Um abraço
Douglas