quinta-feira, 17 de maio de 2007

Minha história no desenvolvimento de software (resumo)

Desenvolvo software desde 1996 quando comecei na informática aos meus 14 anos de idade em Recife. Antes mesmo de me aprofundar no Office eu já estava fascinado com a linguagem Clipper da Computer Associates. No meu primeiro curso, o curso de informática básica, eu aproveitava o intervalo para tentar concluir meu primeiro programa em Clipper Summer '87 enquanto meus companheiros de curso se empenhavam nos jogos.

Ao passar do tempo, eu já com um dos meus primeiros computadores, um antigo 386 DX 33 MHz, descobri que a linguagem Clipper não proporcionava o poder que eu esperava e tomei uma decisão drástica indo para a programação Assembly para que pudesse ter poder total sobre a programação da máquina. Na época eu usava o Borland Turbo Assembler 3.0 (TASM).

Para poder aprender Assembly eu tive que iniciar um estudo aprofundado sobre Hardware paralelamente com um curso de eletrônica digital, pois eu já praticava a eletrônica analógica como meu hobby.

Já programando em Assembly, notei a complexidade de sua programação até mesmo para o desenvolvimento de aplicativos extremamente simples. Fui abandonando o Assembly e migrando para a linguagem Pascal, porém eu usava o Borland Turbo Pascal 5.0 e o Pascal para MS-DOS não possui mecanismo de banco de dados integrado como o DBase incluído no CA-Clipper. Dessa forma eu desenvolvia os aplicativos com mecanismo de banco de dados próprios através da leitura e gravação em arquivos binários.

Decidi iniciar o desenvolvimento em linguagem C definitivamente em 1998 onde fui descobrindo aos poucos o poder da linguagem. O fato de poder inserir blocos de programação em Assembly dentro de um software em C me deixou surpreso. Comecei usando o Borland Turbo C 3. Quando conheci o ambiente de desenvolvimento (IDE) da Microsoft para linguagem C, o Microsoft Quick C 2.51, resolvi abandonar a Borland.

Há muito tempo, a programação para MS-DOS é coisa do passado. Desde 1993 com o Windows 3.x os programadores já usavam o ambiente de desenvolvimento para Windows. Resolvi iniciar com o Borland C++ e o Microsoft Visual C++. Mas com a experiência notei que o Borland C++ Builder seria a opção mais fácil para se desenvolver aplicativos com mais rapidez.

Em 1999, eu residindo no Rio de Janeiro, tive que iniciar minha carreira na informática no sudeste e sem experiência em programação dentro de empresas, comecei a trabalhar num Cyber Coffee no Shopping Rio-Sul em Botafogo atendendo turistas que necessitavam de serviços de internet.

No ano 2000, de volta a São Paulo e com largo conhecimento em hardware por causa da programação em Assembly e aos estudos de eletrônica, tive que trabalhar como técnico de informática avulso e no ano 2001 firmei um contrato de manutenção preventiva com um escritório de advocacia, o qual foi a porta para que eu pudesse entrar na Controlware Sistemas no departamento de assistência técnica, evolui para coordenador do departamento e em pouco já estava programando para a empresa usando o Borland C++ Builder 5.

A linguagem C++ apresenta muitos desafios para a resolução de muitos problemas de programação e ao saber do surgimento de uma nova linguagem da família resolvendo uma série de problemas e trazendo inovações fantásticas, ainda mais vindo da gigante do software, a Microsoft, não demorei em adotar o C++++ ou melhor, C#; a primeira linguagem orientada a componentes. Em 2003 inaugurei o meu primeiro software em C# .NET para a Controlware, o SAC Contatos.

A partir daí abandonei o Borland Database Engine (BDE) que usava com o Borland C++ Builder e migrei para o SQL Server 2000 e SQL Desktop Engine (MSDE). Com o projeto do SAC Contatos, tive que começar a usar também o Oracle Database 8i com C# .NET. Desde então tenho me dedicado exclusivamente ao desenvolvimento com a tecnologia .NET.

No ano de 2003 fiz alguns cursos da Microsoft para especialização no sistema Windows 2000 (MCSA), Engenharia de redes (MCSE) e no SQL Server 2000 (MCDBA). Não fiz as provas porque meu objetivo no futuro é obter apenas as certificações da Microsoft em programação, o MCAD (Microsoft Certified Application Developer) e MCSD (Microsoft Certified Solution Developer).

Em 2005 tive meu primeiro contato com o desenvolvimento de software usando linguagem C para micro-controladores (microchips), os chamados Firmware’s. Desenvolvi uma espécie de sistema básico operacional para micro-controladores da família PIC de 8-bits da Microchip USA e também da família 8051 Atmel para uma empresa do ramo automotivo.

Uso o Microsoft Visual Studio .NET desde a primeira versão 2002 e o Microsoft SQL Server desde a versão 2000 quando não havia a tecnologia NET. Atualmente desenvolvo aplicações usando o Microsoft Visual Studio 2005, Microsoft SQL Server 2005 e SQL Server 2005 Express Edition entre inúmeras outras ferramentas.

Uma vez em 2001 o notebook que eu tinha teve problemas e fiquei sem acessar o disquete, cd-rom, nem rede ele tinha e eu precisava transferir meus arquivos imediatamente. O computador ficou sem Windows e a única forma era transferir meus arquivos pela porta do mouse. Eu não havia instalado nenhum compilador no micro. A única forma era desenvolver um software usando um compilador incluído no MS-DOS, o Microsoft Quick Basic, então tive meu primeiro contato com a linguagem BASIC. Coloquei o computador ao lado do outro que iria receber meus arquivos e no notebook programava em BASIC, no Desktop programava em C. Dentro de alguns instantes fiz a brincadeira funcionar e consegui receber meus arquivos no Desktop.

No ambiente Linux, já utilizei o Red Hat Linux. Nunca fiz desenvolvimento de aplicativos GUI (Graphical User Interface) para o Linux, porém tenho feito alguns testes na programação para internet com Perl/PHP. Também utilizei o banco de dados MySQL.

Em Janeiro/2007 passei numa maratona de testes para conquista do selo Desenvolvedor 5 estrelas da Microsoft que requereu conhecimentos gerais no .NET Framework 2.0 incluindo as tecnologias: C#.NET 2.0, Visual Basic.NET 2.0, ASP.NET 2.0, ADO.NET, XML, Web Services, UML, Programação orientada a objetos (OOP), Desenvolvimento de aplicações em camadas, Ambiente de desenvolvimento Visual Studio .NET, Data Base, Security e Mobile.NET.

Estou me preparando para fazer as provas oficiais para conquista da certificação Microsoft Certified Application Developer (MCAD), depois MCSD antes de ingressar na faculdade de computação com a ajuda de Deus.

quarta-feira, 16 de maio de 2007

Monitorando o desempenho dos aplicativos no Windows

Decorrente da instalação e utilização de muitos aplicativos, o que torna qualquer computador mais lento, faz-se necessário o monitoramento dos aplicativos em execução para saber quais estão utilizando mais a CPU, memória, disco, rede, etc e detectar possíveis problemas.
Para esse fim vamos utilizar a ferrementa administrativa “Desempenho” que dá suporte ao monitoramento detalhado da utilização de recursos do sistema operacional.
A ferramenta “Desempenho” fornece uma série de contadores de desempenho abrangendo análise de cache, paginação, transações distribuidas, filas de impressão, interface de rede, discos lógicos, memória, objetos WMI, discos físicos, processador, serviços de terminal, telefonia, entre outros.

Abrindo a ferramenta de desempenho

Existem duas formas de fazermos isso. A mais fácil é abrir a ferramenta de desempenho diretamente, para isso abra o menu “iniciar”, “executar...”, digite “perfmon.msc” e tecle Enter. A outra forma é abrir pelo “painel de controle”, “ferramentas administrativas”, “desempenho”.

Salvando o gráfico atual

Ao abrir a ferramenta, você verá um gráfico pré-configurado. Caso deseje, faça backup desse gráfico clicando com o botão direito do mouse sobre o gráfico, selecione “salvar como...”, escolha um nome para o arquivo e clique em “salvar”.

Excluindo todos os contadores existentes

Exclua todos os contadores existentes selecionando-os na lista na parte inferior e teclando no botão “excluir” ou pressionando a tecla “delete”.

Personalizando o gráfico

Adicione os contadores clicando no botão “adicionar” ou teclando “Ctrl+I”, haverá vários objetos de desempenho, dentre os quais, selecione “processo” que representa todos os aplicativos em execução no computador.

Selecionando os aplicativos (processos)

No meu caso, vou selecionar os seguintes processos:

Download Accelerator Plus
Dap.exe

Getright Download Manager
Getright.exe

Symantec Norton Antivirus
Ccapp.exe
ccEvtMgr.exe
ccSetMgr.exe
NAVAPSVC.EXE
NSCSRVCE.EXE
SNDSrvc.exe
symlcsvc.exe
npfmntor.exe

Google Desktop
GoogleDesktop.exe
GoogleDesktopCrawl.exe
GoogleDesktopDisplay.exe
GoogleDesktopIndex.exe
GoogleUpdater.exe

Windows Live Messenger
msnmsgr.exe

SQL Server Express
sqlservr.exe

VMWare Workstation Trial
vmnat.exe
vmnetdhcp.exe
vmware-authd.exe
vmware-ufad.exe

Exibindo o gráfico no desktop do Windows (Active Desktop)

Salve o gráfico na pasta que desejar, minimize todos os programas abertos e clique com o botão direito em cima do desktop, selecione “propriedades”, “área de trabalho”, clique no botão “personalizar área de trabalho”, guia “web”, clique no botão “nova...” para adicionar uma nova página web na área de trabalho, especifique o caminho na janela que segue ou selecione “procurar”, selecione o arquivo, clique em “ok”, clique em “ok” na janela dos “itens da área de trabalho”, depois clique em “aplicar” na janela de “propriedades de vídeo”, feche esta janela e pronto.

Conclusão

Foi visto aqui como a utilização dos aplicativos instalados e carregados na memória pode ser visualizada. Com os contadores sendo exibidos no desktop, você poderá acompanhar o processamento e determinar quais aplicativos consomem mais processamento. Outros tipos de contadores são possíveis como memória, utilização do disco, memória cache, etc.