terça-feira, novembro 09, 2010

O Teste do Joel: 12 Passos para um Código Melhor

Amigos,
  um amigo meu, Rodrigo Almeida de Oliveira, me enviou o artigo abaixo e achei muito interessante, compartilhando com vocês.

O Teste do Joel: 12 Passos para um Código Melhor

Qual o nível da Reengenharia que você precisa?

As duas pulgas
Max Gehringer


Duas pulgas estavam conversando e então uma comentou com a outra:

- Sabe qual é o nosso problema? Nós não voamos, só sabemos saltar.
Daí nossa chance de sobrevivência quando somos percebidas pelo cachorro é zero. É por isso que existem muito mais moscas do que pulgas.

Elas então contrataram uma mosca como consultora, entraram num programa de reengenharia de vôo e saíram voando.

Passado algum tempo, a primeira pulga falou para a outra:

- Quer saber? Voar não é o suficiente, porque ficamos grudadas ao corpo do cachorro e nosso tempo de reação é bem menor do que a velocidade da coçada dele.

Temos de aprender a fazer como as abelhas, que sugam o néctar e levantam vôo rapidamente.

Elas então contrataram o serviço de consultoria de uma abelha, que lhes ensinou a técnica do chega-suga-voa. Funcionou, mas não resolveu.. . A primeira pulga explicou porquê:

- Nossa bolsa para armazenar sangue é pequena, por isso temos de ficar muito tempo sugando. Escapar, a gente até escapa, mas não estamos nos alimentando direito. Temos de aprender como os pernilongos fazem para se alimentar com aquela rapidez.

E então um pernilongo lhes prestou uma consultoria para incrementar o tamanho do abdômen. Resolvido, mas por poucos minutos.
... Como tinham ficado maiores, a aproximação delas era facilmente percebida pelo cachorro, e elas eram espantadas antes mesmo de pousar.
Foi aí que encontraram uma saltitante pulguinha, que lhes perguntou:

- Ué, vocês estão enormes! Fizeram plástica?

- Não, reengenharia. Agora somos pulgas adaptadas aos desafios do século XXI. Voamos, picamos e podemos armazenar mais alimento.

- E por que é que estão com cara de famintas?

- Isso é temporário. Já estamos fazendo consultoria com um morcego, que vai nos ensinar a técnica do radar. E você?

- Ah, eu vou bem, obrigada. Forte e sadia.

Mas as pulgonas não quiseram dar a pata a torcer, e perguntaram à pulguinha: - Mas você não está preocupada com o futuro? Não pensou em uma reengenharia?

- Quem disse que não? Contratei uma lesma como consultora.

- Mas o que as lesmas têm a ver com pulgas. quiseram saber as pulgonas...

- Tudo. Eu tinha o mesmo problema que vocês duas. Mas, em vez de dizer para a lesma o que eu queria, deixei que ela avaliasse a situação e me sugerisse a melhor solução. E ela passou três dias

ali, quietinha, só observando o cachorro e então ela me disse:
"Não mude nada. Apenas sente na nuca do cachorro. É o único lugar que a pata dele não alcança".





MORAL DA HISTÓRIA:

Você não precisa de uma reengenharia radical, nem de um complexo projeto para ser mais eficiente.
Muitas vezes, a GRANDE MUDANÇA é uma simples questão de reposicionamento.

segunda-feira, novembro 01, 2010

Controle de Código Fontes

O tema de como controlar os fontes de um programa (Source Control) já possui várias linhas de discussão na Internet e cada um defende uma linha.

Na minha opinião, a melhor ferramenta é o Microsoft Team Foundation Server (TFS), sendo que a maior vantagem é armazenar os arquivos em um banco de dados SQL Server, facilitando o backup/restore e a manutenção do banco, além de todas as vantagens que um banco de dados SQL Server fornece. O lado ruim é o custo, porém, se comparado aos benefícios, justifica o investimento.

A uns dez anos atrás, elaborei um manual de como usar o VSS, que em muitas empresas foram migradas para o TFS. Porém e durante vários anos, tivemos N problemas com este modelo e sempre me questionei se era a melhor forma de gerenciar códigos fontes.

Na semana passada, em uma reunião com a Microsoft sobre ALM, fiz este questionamento a mesma, expondo os problemas enfrentados. Em resposta, me passaram o site abaixo que explica como a Microsoft gerência os códigos fontes dos produtos, inclusive o Windows e o Office. O artigo é sensacional e responde a quase todas as minhas perguntas. O próximo passo é colocar o que está documentado em prática.

Abaixo o link para a documentação da Microsoft.

Visual Studio TFS Branching Guide 2010

PowerBuilder - Funções de conversão ascii para ebcdic/ebcdic para ascii

Função escrita por Jorge Batista Piazzarollo


// Converte ascii para ebcdic
long ll_pos, ll_len

as_ebcdic = ''
// Recupera o tamanho da string
ll_len = Len(as_ascii)

// Converte cada caractere
for ll_pos = 1 to ll_len
 as_ebcdic = as_ebcdic + charA(tabela_toebcdic[AscA(Mid(as_ascii, ll_pos, 1)) + 1])
next

return
=====================================


//Converte ebcdic para ascii
long ll_pos, ll_len

as_ascii = ''
// Recupera o tamanho da string
ll_len = Len(as_ebcdic)

// Converte cada caractere
for ll_pos = 1 to ll_len
 as_ascii = as_ascii + charA(tabela_toascii[AscA(Mid(as_ebcdic, ll_pos, 1)) + 1])
next

return

quarta-feira, outubro 13, 2010

What is ALM?

Está na moda o uso do termo ALM (Application lifecycle management) ou gerenciamento do ciclo de vida da aplicação.

Achei um artigo muito interessante sobre o tema e recomendo a leitura. Abaixo o Link para o mesmo:
What Is ALM

No site do David Chappell existem outros artigos muito interessantes sobre o mesmo assunto.

SQL Server: o backup do Transaction Log

Achei o artigo abaixo na Internet e achei o conteúdo muito interessante, pois muita gente não sabe o objetivo do Transaction Log e nem como usar. Recomendo uma leitura até para os mais experientes.

domingo, outubro 03, 2010

Problemas com Sincronismo do meu Windows Mobile

Estou a dias tentando configurar o meu SmartPhone Windows Mobile (Touch Pro com Windows Mobile 6.1) com o meu computador (Windows 7 Enterprise 64 bits, Outlook 2010 64 Bits e WMDC 64 Bits) e para a minhas surpresa encontrei o seguinte artigo no TechEd

"Windows Mobile Device Center (WMDC) synchronization WMDC does not synchronize with Microsoft Outlook 2010 if you use the 64-bit version of Outlook 2010. In such cases, an error message displays that states that there is no default mail client or the current mail client cannot fulfill the messaging. WMDC synchronizes correctly with the 32-bit version of Outlook 2010. To synchronize a Windows Phone with Outlook 2010 by using Windows Mobile Device Center, uninstall Outlook 2010 64-bit. Then use the original installer that you used to obtain Outlook 2010 64-bit to install Outlook 2010 32-bit. Outlook 2010 32-bit is the default option." http://technet.microsoft.com/en-us/library/ee681792.aspx

Como não concordo em ter que utilizar o Office 32 bits no meu Windows 64 bits, irei manter o computador sincronizando via Exchange Server, ficando sem sincronizar os Notes.

Qualquer dica de como sincronizar os Notes será me vinda.

Abraços

quinta-feira, agosto 27, 2009

PowerBuilder - Is the Application a Good Fit for the Internet?

Is the Application a Good Fit for the Internet?

Not all PowerBuilder applications will move smoothly to the Internet with every approach described here. Variables such as the size and complexity of the application, the use of Windows-only features such as OLE, DDE, and third party OCXs, the number of DataWindows used in each Window, the size of the SQL result sets retrieved, the PowerBuilder framework used, and even coding practices and the general quality of the code will all determine the options open to you. Other variables that will all impact your decision include the complexity of the UI presentation style and the use of drag and drop in the application. The chart below should serve as only a general guideline and not an indication of which approach is best for your organization.


Technique

PB Windows Forms

PB Web Forms

PB Web DataWindow

CITRIX or Terminal Svcs.

Appeon

MDIInterface

Y

Y, using tabs

N/A

Y

Y

Drag and

Drop

Y

N

N

Y

Y

OLE, OCX

Y

N

N

Y (server-side)

Y

Client-Side Integration

Y

Via JavaScript

Via JavaScript

Disks and printers only

Y

Server-Side Integration

Y

Y

Y

Y

Y

Level of

Effort

Minor

Significant

Highest

Least

Minor

Fidelity

of UI

Highest

Good

Good

Excellent

Excellent

Strengths

Easy, good UI, broad capability

Best for simple UI, ground up true web dev

Scalability, good for Java and low level control

Easy to set up and deploy

Client & server integration, scalability, performance

Weaknesses

Bandwidth, footprint on client

Event postback model inherent to ASP .NET 2.0

Strong need for good 3-tier architecture, more hand coding

Scalability, cost

Technology created by a Sybase Partner.

quarta-feira, agosto 19, 2009

PowerBuilder 11 X Oracle

Abaixo o Link informando quais as versões do Oracle são suportadas pelo PowerBuilder 11

PowerBuilder - Migração para Versão 11.5 - Problemas...

Pessoal,
estou fazendo alguns estudos sobre a migração do PowerBuilder da versão 9 para a versão 11.5. Desta forma, estou levantando problemas que posso enfrentar. A principio, identifiquei o problema abaixo:
  • Performance de desenvolvimento é 1/3 da performance do PB9. Este problema foi repassado a Sybase que nos informou que devido a quantidade de recursos adicionados ao PB 10 e 11 a DataWindow ficou mais pesada e que é normal este delay, não sendo considerado um problema e sem previsão de melhoria.
A medida que novos problemas forem encontrados, irei publica-los aqui. Caso tenha alguma informação para contribuir, sinta-se a vontade para me enviar as informações.

PowerBuilder - Geração automatica de executável com o Team Foundation

Finally i have my Power Builder 11 Application Compiling from strach, What i mean is Performing a BootStrap import of all the objects into PBL file and then Compiling all the PBL files into and application (PBD). Actually i was using PowerGen Standard Edition for compiling the power builder application. But Standard edition does not allow bootstrap import. So we had to get proffesional edition in order to perform the steps. All i did was then added below code. (ofcourse along with .gen file, created from PowerGen).

<

Exec WorkingDirectory="$(SolutionRoot)" Command="start /wait Pwrgn11.exe /J="$(SolutionRoot)\TeamBuildTypes\ProjectName.gen"/PBG"/>

<

Exec WorkingDirectory="$(SolutionRoot)" Command="start /wait Pwrgn11.exe /A="$(SolutionRoot)\TeamBuildTypes\ProjectName.gen""/>

I am finally closing this thread. anybody needs any help please let me know.
THANKS.

Mais informações em http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/617dd2f5-3538-4bcb-9101-15a49445df23

domingo, janeiro 21, 2007

Boicote ao Skype

Meus amigos,
desde 18/01/2007 o SKype está cobrando uma tarifa de 0,09 centavos para cada ligação que você fizer no SkypeOut. Para nos defendermos desta cobrança abusiva, sugiro iniciarmos uma boicote ao SkypeOut, utilizando o programa concorrente GIZMO (http://www.gizmoproject.com/) ou outro a sua escolha.
A grande vantagem do Gizmo é que o mesmo tem caixa posta grátis e tarifas mais baratas para vários locais, inclusive Brasil e USA.

Leia mais detalhes da cobrança abusiva em http://idgnow.uol.com.br/telecom/2007/01/19/idgnoticia.2007-01-19.7152325690/IDGNoticia_view

sexta-feira, janeiro 05, 2007

PowerBuilder – Utilizando o Team Foundation Source Control ao invés do Visual SourceSafe

Hoje é comum utilizarmos um software de controle de versão. Entre as opções existentes no mercado, muitas empresas selecionam o Microsoft Visual SourceSafe (VSS). Mas, apesar das vantagens existentes no VSS, existem muito problemas que acaba colocando em risco o sucesso do mesmo.

Entre os problemas, podemos citar:
1 – Fontes corrompidos: Como a base de dados do VSS é muita arcaica, sendo composta por vários arquivos em disco e sem nenhum controle transacional, é muito comum termos um fonte corrompido devido a falhas de energia o cancelamento de aplicativos. O que gera muito trabalho para o administrador do VSS e muitas vezes paralisa as atividades da equipe de desenvolvimento;

2 – Backup da Base de Dados do VSS: Como o BD do VSS é composto por milhares de arquivos, o Windows demora muito tempo para realizar o Backup destes arquivos. Em uma base de dados de 5 GB, o Windows demora 6 horas para copiar os arquivos do VSS para uma área de Backup.

3 – Analyze: Este é o aplicativo responsável por gerenciar os problemas na base de dados do VSS. Ele é a muito lento e exige que ninguém utilize a base de dados durante a execução. Por exemplo, em uma base de dados de 5GB, o Analyze demora 24 horas para executar. Lembrando que a Microsoft recomenda que este deve ser executado semanalmente. Outro problema é que nem sempre ele resolve todos os problemas, inclusive, podendo causar novos problemas ao remover um arquivo corrompido;

4 – Lentidão: Outro problema é a lentidão para executar algumas operações, como o Share/branch, delete e pesquisa na base de dados;

5 – Customização limitada e complexa: Caso seja necessário criar consulta ou procedimento que acessem diretamente a base do VSS, o custo se torna muito alto, pois é necessário recursos altamente especializados e o tempo para esta tarefa é muito grande;

6 – Software Arcaico: Devemos lembrar que a estrutura do VSS existente hoje, no ínicio de 2007 é praticamente a mesma existente em 1996. Dez anos para informática é muito tempo!!


A partir dos problemas acima, resolvi estudar outro software de controle de versão.

Como utilizamos VisualStudio 2005 e o PowerBuilder para desenvolvimento, resolvi analisar o Team Foundation Source Control ( TFSC) que é a evolução natural para o Visual SourceSafe.

A primeira questão é se o mesmo seria compatível com o PowerBuilder 9. Realizei algumas pesquisas e descobri que a Microsoft lançou uma API que realiza a compatibilidade entre outras aplicações e o TFSC, chamada de Visual Studio team Foundation Server MSSCCI Provider ( http://www.microsoft.com/downloads/details.aspx?familyid=87E1FFBD-A484-4C3A-8776-D560AB1E6198&displaylang=en ). De acordo com as informações do site, ela é compatível com PowerBuilder 10.5. Investigando melhor, descobri no Blog do desenvolvedor da Microsoft responsável pelo produto, que eles apenas testaram com o PowerBuilder 10.5, mas não quer dizer que não é compatível com outras versões do PowerBuilder. Testei com o PowerBuilder 9.0.3 Build 8784 e funcionou perfeitamente.

Já estou em fase final de deste e essa versão trouxe muitas melhorias e piorou algumas funcionalidades. Abaixo vai uma relação das vantagens e desvantagens existentes:


* Vantagens
- Utiliza Banco de Dados SQL Server;
- Não corre risco de corromper;
- rotinas de manutenção são a mesma de banco de dados (Backup e Reindex, processos rápidos e automatizados);
- Mais recursos para Administração (Permissões, Grupos de usuário e tipos de acesso);
- Maior segurança (Integrado com a segurança do Windows, não necessitando criar usuários no próprio VSS);
- Maior Velocidade no acesso e gravação dos dados (Adicionar objetos, Refresh Status e GetLatestVersion);
- Permite fazer GetLatestVersion de um HotFixes especifico;
- Manutenção pode ser feita on-line, com os usuários utilizando;
- Permite fazer Merge de uma versão inteira ou de objetos específicos;
- Não há necessidade de Archive, pois o SQL Server gerencia bem a formato da base;
- Possibilidade de criar novos índices nas tabelas e melhorar o desempenho da base de dados do VSS;
- Possibilidade de se criar consultas direto na base de dados do VSS;
- Permite acesso via http, inclusive, é possível colocar a base de dados fora da empresa, em um DataCenter;
- Resolveu problema do simbolo de alterado quando o objeto é identico
- É possível Criar vários "Bases de dados" para projetos diferentes e com permissões diferentes.

* Desvantagens
- Problema ao registrar o primeiro objeto da PBL, onde deve-se observar o limite de no máximo 25 objetos, para que o PBG seja criado corretamente;
- Complexidade para saber quais objetos foram alterados entre um label e outro;
- Novo e pouco utilizando com o PowerBuilder, o que pode ocorrer Bugs na utilização;
- Custo (Tem que comprar o TeamFoundation, SQLServer e SharePoint)
- Ao Mover o objeto tem que desconectar, mover o objeto e alterar o PBG manualmente (PBL de origem e destino) ;
- hardware Mínimo ( 1GB de memória, 20 GB HD e Processador de 2 GHZ);

Veredicto: Aprovado!!