Blog criado para documentar e disseminar o conhecimento tecnológico adquirido por Thiago Campos Pereira e colaboradores.
terça-feira, novembro 09, 2010
O Teste do Joel: 12 Passos para um Código Melhor
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?
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
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
// 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?
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
segunda-feira, outubro 11, 2010
PowerBuilder - Migração para PB12
http://www.sybase.com/detail?id=1032777
PowerBuilder - Suporte as versões do Oracle
http://www.sybase.com.br/detail?id=1011566
domingo, outubro 03, 2010
Problemas com Sincronismo do meu Windows Mobile
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
PowerBuilder - Migração para Versão 11.5 - Problemas...
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.
PowerBuilder - Geração automatica de executável com o Team Foundation
<
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
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
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!!