Monthly Archive for abril 2005

Motorola MPx220

Depois de muito pensar, adquiri um smartphone Windows Mobile. O modelo escolhido foi o Motorola MPx220. Ele vem com Windows Mobile 2003 Segunda Edição, e faz praticamente tudo. Só falta andar e ir no banheiro sozinho.

Estou há poucos dias com ele, mas estou muito satisfeito. Ele é tudo o que eu esperava e mais um pouco. Desde 1998 eu uso PDAs PalmOS para organizar minhas informações e já tive mais de uma dezena de modelos PalmOS e até passei por um iPaq. Como desenvolvesmo aplicativos para estes dispositivos aqui na Cadena, nos últimos meses troquei 3 vezes de equipamento, passei por um Tungsten E, depois um Tungsten C e então um Zire 72. E cada vez que vou trocar de equipamento com todas as minhas informações é um saco. Como meu uso do PDA estava praticamente restrito a PIM (Personal Information Management, ou seja, agenda, contatos, tarefas e anotações), sabia que um smartphone provavelmente me atenderia.

Somado a isso, estava o fato de eu querer finalmente usar apenas um device para todas minhas necessidades de comunicação e informações. Antes eu tinha sempre que sair com o celular e o Palm, agora é só um pra carregar, e como isso faz diferença! Outro ponto positivo é que eu já gerencio todas as minhas informações usando o Outlook 2003, com o qual os portáteis Windows Mobile fazem todo o sincronismo.

Enfim, estou muito satisfeito, e agora posso até desenvolver aplicativos para o celular usando .NET!

Quer trabalhar na Microsoft EUA?

O Joel Pereira, um desenvolvedor da MS lá nos EUA, divulgou que eles estarão recrutando brasileiros esse ano para trabalhar lá fora.

Veja aqui.

Regras de Negócio: No BD ou no aplicativo?

Quando eu sai do MS Access e descobri o Interbase (pai do Firebird), fiquei maravilhado com os recursos, principalmente triggers e stored procedures. Percebi que com isso eu conseguiria transportar grande parte da lógica do meu aplicativo para o servidor, liberando a estação de algumas tarefas e deixando o aplicativo mais simples.

Minhas aplicações são Cliente-Servidor 2 camadas apenas, então meu relato aqui é baseado nesse tipo de aplicativo.

Então passei a criar SPs indiscriminadamente para qualquer “operaçãozinha” que não teria ganho nenhum usando SP. Não sei porque, mas eu pensava: “Ah, mas se a lógica dessa operação mudar, eu não precisarei recompilar o aplicativo, apenas alterar a SP no banco! Que beleza! Todos os meus problemas acabaram!”.

Hoje eu penso nisso e dou risada. Essa idéia se mostrou totalmente errada. É muito mais simples eu alterar o aplicativo, gerar um novo release e enviar para o cliente do que modificar a estrutura do BD dele. Lógico que alterar a estrutura de forma automatizada é possível, mas mesmo assim, você esbarra numa série de probleminhas muito mais chatos do que simplesmente substituir o aplicativo pela nova versão. Muitas vezes você não consegue modificar a estrutura com usuários logados, ai seu cliente tem que tirar todo mundo do sistema. Em grandes empresas isso pode ser bem complicado. Além disso, acontece com frequência de você não conseguir modificar a estrutura mesmo quando todos os usuários sairam do sistema, então você tem que reiniciar o serviço do BD, e por ai vai.

Outro detalhe é que se você usar uma boa orientação a objetos no seu aplicativo, a tendência é deixar todas as regras de negócio nos seus objetos de negócio e não no BD, afinal é pra isso que os objetos servem. Perceberá que o banco de dados vai atuar como um simples meio de persistência dos dados, muitas vezes não utilizando nenhum dos seus principais recursos como triggers, integridade referencial, etc. É muito comum ver BDs de aplicativos orientados a objeto com nenhum relacionamento entre as tabelas, nem nada.

Outra vantagem de colocar pouca lógica no BD, é que você acaba ficando menos dependente do banco de dados. Não que você consiga ficar totalmente independente, mas isso certamente ajudará.

Lógico que em muitas situações, a melhor coisa é tirar proveito do poder do banco. Eu tenho muitos relatórios processados inteiramente em SPs, controle de estoque gerenciado por triggers (muito bom), etc. O ideal é saber dosar a quantidade certa de um e de outro.

Porém, existem casos que deixar o máximo de lógica no banco é a melhor solução.

Estou trabalhando em um aplicativo bem interessante para a plataforma PalmOS. O aplicativo vai rodar em equipamentos Tungsten C, acessando banco de dados Firebird via Wi-Fi. O meu aplicativo PalmOS é apenas uma das interfaces de acesso ao sistema do cliente, cuja interface principal é toda web e foi criada por outra empresa. Este sistema já está rodando no cliente e nós temos que estudar como ele funciona para desenvolvermos o módulo PalmOS. Existem várias regras, algumas bem complexas, que nós não precisamos nem ter conhecimento se elas estiverem programadas no banco.

Por exemplo, se o cliente compra acima do seu limite, o pedido entra na fila de aprovação por um gerente. O módulo Palm não precisa saber disso, basta ele inserir o pedido. Neste momento um trigger é disparado, consulta o limite do cliente, o valor do pedido e seta o flag no pedido para ficar pendente de aprovação ou liberado. Essa é uma forma inteligente de centralizar a lógica no banco. Se a empresa que faz o sistema mudar a lógica de aprovação do pedido, eles nem precisam acionar a minha empresa para atualizar o módulo Palm.

A forma mais profissional de resolver isso seria ter uma camada intermediária acessada tanto pelo aplicativo web, como pelo aplicativo Palm, e a lógica ficaria somente neste aplicativo e teríamos uma solução multi-camadas. Mas isto não é possível, visto que o aplicativo web de retaguarda é duas camadas e já está pronto.

Se estivessemos falando de aplicativos desenvolvidos em .NET e o módulo portátil usando PocketPC (que suporta .NET Compact Framework), poderíamos compartilhar classes de negócio, o que poderia ser usado para evitar colocar muita lógica no BD, mas esse não é o caso.

Microsoft x Open Source

Vocês já perceberam como vários concorrentes da Microsoft acabam se enveredando no Open Source para tentar se manter no mercado?

No início a Novell dominava totalmente o mercado de redes. Após quase ser exterminada pela Microsoft, se voltou para o mercado Open Source comprando a Ximian e a SuSe. Esta agora investindo muito no Mono.

A PalmSource, responsável pelo sistema PalmOS, que sempre dominou o mercado de PDAs, comprou um grande empresa chinesa de software para Linux e já anunciou que vai transformar o PalmOS em um tipo de framework rodando sobre Linux.

A Borland, que sempre teve as melhores IDEs, está aderindo ao Eclipse, provavelmente a IDE Open Source mais conhecida. O que será que ela pretende com isso?

Esses são apenas três exemplos que me vêm a cabeça, mas certamente existem outros.

Benchmark de ferramentas PalmOS

Hoje uso PocketStudio para desenvolvimento PalmOS, mas andei testando outras ferramentas e encontrei dois benchmarks comparando as ferramentas para PalmOS: aqui e aqui.

Como eu já esperava, o PocketStudio está muito bem colocado.

Expert DD Plus

Meu primeiro computador, Gradiente Expert DD Plus, com disk drive embutido! :)

Eu babava quando via esse anúncio nas revistas. Até que meu pai comprou um pra mim em uma loja de cine/foto no Shopping Piracicaba. Nessa noite passei em claro digitando um programa em Basic que vinha no manual do computador. Depois de horas digitando, executei o programa. E tela mudava de cores várias vezes, fiquei fascinado. Chegou a hora de ir pra escola, eu não sabia salvar o programa, tive que desligar e perdi tudo. Haha.

Tungsten E e Siemens MC60 para vender

A Carol, minha esposa, está vendendo seu Palm Tungsten E e seu celular Siemens MC60. Ela quer levantar dinheiro para comprar um smartphone.

Ambos em perfeito estado e funcionamento. Eu garanto! :)

Microsoft e a Comunidade

Na útlima sexta-feira, participei do 5o. TTT (Train the Trainers), um evento da Microsoft realizado periodicamente que reune líderes de grupos, palestrantes, MVPs, e outros formadores de opinião. Foi a primeira vez que participei do evento e achei bem interessante.

A Microsoft realmente faz um trabalho campeão de apoio a comunidade. Liderada pelo Leonardo Tolomeli, ela sabe tirar muito proveito da sua própria fama e da admiração que todo esse pessoal tem pela empresa. Não é a toa que ela está entre as mais desejadas para se trabalhar. Nunca vi tantos MVPs juntos, e tantos outros que desejam tornar-se.


Galera jogando durante os breaks

Assistimos durante o dia todo palestras sobre organização de eventos (com total apoio da MS), sobre o programa MVP, sobre Windows x Linux, sobre o novo Visual Studio Team System, sobre licenciamento de produtos Microsoft, comemos muito bem (vários coffee-breaks e o ótimo almoço incluso), jogamos X-Box, ganhamos livro, camiseta, e outros brindezinhos e para encerrar, houve uma festa com coquetel e tudo em um bar badalado de SP. Para quem vinha de longe, tinha hotel (ao lado do prédio da MS) inclusivo, e van para levar e trazer da festa. Não fiquei para a festa, pois iria começar tarde e não tinha hotel (pq estou a 120Km de SP) para tomar banho e dormir depois, mas deu pra sentir que era tudo de primeira.

Resumindo, sai de lá admirando ainda mais a Microsoft e querendo fazer muito mais por ela. Que é exatamente o que eles querem! E acabam merecendo, sem dúvida, pelo ótimo trabalho que fazem. Eu admiro a MS desde sempre, não sou, nunca fui e nunca serei anti-Microsoft. Acho essa atitude totalmente infantil. E não é por isso que não uso Linux onde ele se encaixa melhor. E não é por isso que não uso o Firefox, que hoje é imensamente melhor que o IE. Se amanhã o IE der a volta por cima, volto pra ele sem dúvida. Ficarei sempre ao lado de quem me oferece a melhor solução. Acho que já falei isso aqui. :)

Por que você acha que o VB é e sempre será mais utilizado que o Delphi? O trabalho da MS junto a comunidade certamente é um dos fatores que levam a isso. A Borland não chega nem perto disso, chega a ser ridícula a diferença.


Champanhe no final para comemorar record de inscrições na Imagine Cup

Quantos grupos e eventos .NET você tem visto acontecerem utlimamente? Muitos, não? Isso acontece pois a MS classifica todos os palestrantes com pontos em relacionamento com a comunidade de acordo com o número de pessoas que assistem as palestras. Esses pontos se transformam depois em premiações da Microsoft para os mais ativos. Durante o TTT, a pessoa mais ativa na comunidade durante o último ano ganhou um Tablet PC da MS. Legal, né?

Novidades para os desenvolvedores

Várias novidades para os desenvolvedores foram divulgadas durante o evento, dentre elas se destacam:

Novo programa MSDN para ISV: Neste programa a empresa de software paga anualmente US$372 e tem direito a 5 licenças para desenvolvimento e testes de todos os produtos Microsoft (menos games). Também recebe todas as atualizações que são lançadas durante sua permanência no programa. Se você decidir não renovar em algum momento (pode renovar quantas vezes quiser), pode continuar usando as licenças numa boa, apenas não receberá mais atualizações. Esse programa é fantástico, e praticamente matou o programa anterior Empower (do qual faço parte), que custava um pouco mais, porém, você só pode usar por 2 anos, e no final, não tem direito de continuar usando as licenças. Certamente assinaremos esse programa aqui na Cadena quando vencer nosso Empower, é muito interessante. E já está disponível agora! Basta ligar no 0800-8919091.

Desenvolvedor 5 Estrelas 2005: O programa Desenvolvedor 5 Estrelas do site MSDN Brasil receberá um upgrade em breve para acompanhar as novas versões do Visual Studio, do .NET Framework e SQL Server. O material está sendo preparado pelo Renato Haddad, e deve estar disponível no site a partir de maio. Quem já tem 5 estrelas, precisará reconquistá-las, e o legal é que provavelmente todas as estrelas estarão abertas desta vez, diferente do conteúdo atual, que você só consegue até a terceira estrela gratuitamente, e depois precisa pagar para continuar.

Lançamento do Visual Studio 2005 Beta 2: Está sendo programado um mega evento para lançamento do Beta 2 do VS. A idéia da MS é fazer um evento simultâneo em várias cidades do Brasil, reunindo o maior número de participantes possível, com webcast de abertura ao vivo da MS em São Paulo sendo transmitido para todas as cidades.

Show de bola, ou não?

PS: Estas informações foram fornecidas durante o evento, mas eu não me responsabilizo pela precisão das mesmas.. :) Também não me disseram que não podiam ser divulgadas, então aqui estão.

Grupo WordPress Brasil

O Neto Cury me indicou o grupo WordPress Brasil, para aqueles que, como eu, usam esse sistema de publicação.

Pena que estou com tanto trabalho que não encontro mais tempo para ficar participando de grupos. Mas valeu pela dica! Obrigado Neto!

Criatividade de desenvolvedor!

Essa quem me passou foi o Alessandro do The Club! Veja como este desenvolvedor francês resolveu divulgar seu currículo.

Acham que ele ainda está desempregado?

Conectiva contrata profissionais

Acabo de receber um e-mail da Conectiva anunciando várias vagas. Uma delas me chamou atenção. Para gerenciador de projetos, precisa ter conhecimento em MS Project. Hehe.. :)

Papers BorCon 2003 e 2004

Muito conteúdo interessantíssimo da BorCon americana (2003 e 2004), disponibilizado gratuitamente no site da Borland.

Pesquisando em código fonte

Hoje encontrei um software muito legal para realizar pesquisas em código fonte, SourceGlob. Ele se integra ao shell do Windows, ou seja, você clica o botão direito em uma pasta e rapidamente pode fazer uma busca nela. Ele é rápido, e tem um visualizador com syntax highlight e uma série de outros detalhes. Mal instalei e já usei várias vezes durante o dia.

Alguns screenshots aqui.

Se você conhece algum aplicativo com esta função, melhor que este, não deixe de me indicar!

RSS Feeds PalmGear

Se você tem um PDA PalmOS, as feeds do PalmGear são muito úteis para acompanhar tudo o que é atualizado e lançado em software para a plataforma.

Adeus ao Papa João Paulo II

Isso obviamente não tem nada a ver com tecnologia, programação ou coisas do gênero, porém, é impossível não se emocionar com a morte do Papa. Não sou religioso, não costumo ir a igreja. Mal me considero católico e pouco sabia sobre o Papa até agora. Porém nada disso nos permite ignorar o ser humano fantástico que ele foi.

Inicialmente achei que não tinha nada a ver eu escrever algo sobre isso aqui, mas hoje decidi não deixar passar em branco.

Guia do Desenvolvedor Delphi .Net

Já está disponível em português o Guia do Desenvolvedor Delphi .Net, último livro do Xavier Pacheco, famoso autor de livros sobre Delphi.

Capa do livro

A revisão técnica foi feita pelo FernandoVM, e o preço não está tão salgado, mas ainda não sei se vou pegar um.

Infelizmente os livros sobre Delphi estão em extinção, e esse acho que é um dos melhores disponíveis hoje em dia.

Mais conversão Delphi para C#

Logo após conhecer o conversor Delphi - C# indicado pelo Facunte, me deparo com este post do Julian sobre um parâmetro do próprio compilador Delphi .NET que também converte código Delphi Language em C#.

Será que o futuro de tudo é C#? Caramba.. ;)

Conversor Delphi para C#

Meu amigo Facunte indicou em seu blog um conversor Delphi para C#, Delphi2CS!

Controle de Versão com SubVersion

Esse foi o tema da minha palestra no DDD que aconteceu sábado. Obrigado a todos que participaram. Apesar de eu ter apanhado um pouco das pastas no inicio para simular mais de um desenvolvedor na mesma máquina, acho que a palestra foi legal.

O assunto é bem extenso para ser coberto em apenas uma hora, então tudo tem que ser muito superficial, mas é um assunto muito interessante.

Fiquei impressionado com a quantidade de desenvolvedores que não utilizam nenhum tipo de controle de versão. Pesquisei na Internet e pesquisas apontavam que cerca de 70% dos desenvolvedores não usam nada. Eu já tinha achado um absurdo, mas na palestra acho que no máximo 20% usavam.

Se você é um desenvolvedor, e não usa nenhum software de controle de versão, pare agora. Coloque isso entre suas prioridades. A adoção dessa ferramenta vai te permitir trabalhar com mais tranquilidade, te dando uma série de recursos fantásticos, além de evitar uma série de problemas e dificuldades normais quando não se usa nada. Se você trabalha em equipe com mais de um desenvolvedor então, é fundamental ter uma ferramenta dessa para qualquer desenvolvimento realmente sério.

Quando descobri controle de versão pela primeira vez, percebi que era um divisor de águas, era fantástico demais para eu ter demorado tanto para usar. Dos meus quase 15 anos como desenvolvedor, acho que uso controle de versão há uns 4 no máximo. Mas hoje acho impensável desenvolver sem isso.

O PPT da minha palestra, você pode baixar aqui. Sem os demos ao vivo, o PPT não ajuda muito, mas nele existem várias referências interessantes para saber mais sobre o assunto.

DBFreeMagazine

Está no ar o site da DBFreeMagazine, a mais nova publicação sobre banco de dados, que será distribuida gratuitamente em formato eletrônico.

Mais uma empreitada do meu amigo Cantu.