Bill Gates anuncia ajuda de US$ 10 bi para vacinas em países pobres

February 3rd, 2010 Erick Sasse 2 comments

Na última sexta-feira, Bill Gates anunciou que vai doar US$ 10 bilhões para pesquisa, desenvolvimento e distribuição de vacinas para os países mais pobres nos próximos 10 anos.

Já pararam para pensar nesse montante? Cerca de R$ 18 bilhões. Em 10 anos, seria algo em torno de R$ 150 milhões por mês ou R$ 5 milhões por dia.

Esse dinheiro vem da Fudanção Bill e Melinda Gates, que conta não só com a fortuna de Bill Gates, mas também de outras doações, como do bilionário Warren Buffett.

Muita gente pode não gostar de Bill Gates, mas não tem como não admirar o que ele vem fazendo com sua fundação. Eu admiro demais.

Categories: Geral Tags:

Delphi no MacOS: Será que precisamos disso?

January 4th, 2010 Erick Sasse 13 comments

Todo mundo que acompanha as notícias sobre Delphi já deve estar sabendo que a próxima versão trará um compilador nativo para MacOS. Não é usando Mono e Delphi Prism, como já é possível hoje, é um novo compilador. A IDE vai continuar no Windows, mas poderá compilar para MacOS.

Que a plataforma Mac está crescendo um pouco, ninguém tem dúvida, provavelmente em grande parte devido ao iPhone, que é um aparelho fantástico, eu mesmo tenho um. Mas quantos de vocês já tiveram uma demanda realmente importante para portar seus sistemas para MacOS? Sim eu já tive alguns clientes querendo rodar meus produtos no Mac, mas posso contar nos dedos. Certamente nada que justifique uma versão para essa plataforma.

Estamos falando de sistemas empresariais, que deve ser o que a maioria aqui no Brasil desenvolve usando Delphi. Para nós, se precisarmos suportar qualquer plataforma além do Windows, vejo muito mais sentido usar web, e já estaremos suportando não só Mac, mas também Linux, Chrome OS, telefones, PS3, etc.

Além disso, quem não é desenvolvedor Delphi certamente não vai usar o Delphi para fazer algo no Mac. Eles tem a IDE Xcode da Apple, que é muito poderosa, gratuita e mais “nativa” da plataforma. Então os clientes potenciais que restam realmente são apenas os clientes que já usam Delphi no Windows. Portanto dificilmente isso trará uma quantidade significante de novos usuários para o Delphi.

Lógico que é um recurso legal de ter, só não podemos esquecer que custa dinheiro para desenvolver e manter isso, dinheiro esse que poderia estar sendo melhor utilizado no Delphi Win32, que usamos diariamente e que infelizmente ainda tem muitos bugs a serem corrigidos.

A Embarcadero faz pesquisas anuais para saber o que os usuários querem no Delphi, então estou curioso para saber o que vocês acham disso. Vocês acham que esse recurso vai ser útil? Alguém aqui pretende usar? Meus usuários são diferentes e eu não estou percebendo a necessidade? Talvez consigam me fazer mudar de idéia, ou confirmar meu receio de que quase ninguém vai usar isso pelo menos por aqui.

Categories: Delphi Tags: ,

Famoso desenvolvedor Delphi preso pede ajuda

November 7th, 2009 Erick Sasse 2 comments

Chad “Kudzu” Hower, um dos desenvolvedores por traz do Indy e do IntraWeb foi preso na Bulgaria e está pedindo ajuda.

Ele publicou detalhes do caso e como ajudar em seu site.

Categories: Geral Tags:

Blog agora otimizado para iPhone e outros dispositivos móveis

November 2nd, 2009 Erick Sasse 2 comments

Nos últimos 30 dias, meu blog teve mais de 0,13% dos visitantes vindos de dispositivos móveis. iPhone, iPods, Android, SymbianOS, etc. Ok, desses 0,13% provavelmente 0,12% são visitas minhas mesmo do meu iPhone. :)

Para esses usuários, informo que agora terão uma experiência muito melhor ao visitar o blog do seu dispositivo. Tudo isso graças ao plugin WPtouch.

Experimente. Basta acessar o blog utilizando seu dispositivo móvel. O endereço é o mesmo.

Screenshot blog no iPhone

Categories: Mobilidade, iPhone Tags:

E-book Gratuito sobre Windows Server 2008 R2

October 27th, 2009 Erick Sasse No comments

Se você quer conhecer melhor as novidades do Windows Server 2008 R2, a Microsoft disponibilizou um e-book gratuito em PDF: Introducing Windows Server 2008 R2.

Fonte: Windows Server Division WebLog.

Pesquisa Delphi 2010

October 27th, 2009 Erick Sasse No comments

Todo ano a Embarcadero vem fazendo uma pesquisa entre os desenvolvedores para definir o futuro do Delphi. Ela é longa, mas muito importante, e todos usuários Delphi deveriam dedicar um tempo para responde-la com calma.

Eu já respondi. Se você é desenvolvedor Delphi, não deixe de fazer, pois o futuro do produto está muitas vezes diretamente ligado ao seu futuro e/ou de sua empresa.

Link para a pesquisa:
http://www.surveymonkey.com/s.aspx?sm=XrKr27_2bmLfybzGzZi_2brsBQ_3d_3d

Categories: Delphi Tags: ,

Utilizando XML Data Binding do Delphi

August 20th, 2009 Erick Sasse 6 comments

O recurso XML Data Binding do Delphi permite gerar classes tipadas a partir de arquivos XML, facilitando em muito quando se precisa ler e escrever arquivos XML.

Se não me engano, anteriormente esse recurso não estava disponível na versão Professional do Delphi, mas agora está, pelo menos no Delphi 2009.

Eu usei recentemente e tinha colocado na minha lista de assuntos para blogar, mas o Diego Garcia acabou de publicar um video detalhado de como utilizar esse recurso.

Vale a pena conhecer, pois mais cedo ou mais tarde todo mundo acaba precisando manipular XML.

Categories: Delphi Tags: ,

Uma semana de Windows 7 RTM

August 17th, 2009 Erick Sasse 8 comments

3660039011_073d6a4fb7_oEstou rodando Windows 7 RTM (versão final) na minha máquina principal há pouco mais de uma semana. Ela foi liberada no dia 06/08 para assinantes da TechNet e foi dessa forma que baixei.

Da primeira vez que testei o Windows 7, foi a versão 64-bits, mas desta vez optei pela versão 32, pois a 64 ainda tem algumas poucas incompatibilidades e nenhum benefício aparente até o momento.

A ótima notícia é que pelo menos na versão 32, o Delphi 2009 funciona perfeitamente, não existindo o problema do debugger que eu já tinha reportado aqui. Agora só falta pesquisar como tirar proveito dos novos recursos do Windows 7 nos nossos aplicativos. A “jump list” da nova barra de tarefas é a primeira candidata.

O Google Chrome também está perfeito e rodando sem nenhum problema.

Esses foram os únicos aplicativos que me deram problema da primeira vez e agora estão 100% na versão RTM 32-bits.

Devo dizer que a instalação do Windows foi perfeita e a performance é realmente superior ao Vista e XP, incrível o que eles conseguiram fazer.

Para não dizer que tudo são flores, o único problema que tive até agora com o Windows 7 é que não consigo mais ligar meu notebook a minha TV LCD. Ainda não consegui resolver, e toda vez que conecto a TV diz que a imagem esta em modo incompatível. É uma TV Samsung Full HD 40 polegadas. Se alguém tiver qualquer dica, é bem vinda. Minha placa de video é uma ATI Mobility Radeon X1600.

Apesar disso o Windows 7 é um upgrade totalmente recomendado, inclusive para os fanáticos pelo XP. Podem ir sem medo. Deixem o XP para trás, por favor! :)

Categories: Delphi, Microsoft Tags: , ,

Video em Português com as Novidades do Delphi 2010

August 8th, 2009 Erick Sasse 10 comments

Mais um video produzido pela Embarcadero com as novidades do Delphi 2010, mas desta vez em português.

Categories: Delphi Tags: ,

Novidades do Delphi 2010

August 4th, 2009 Erick Sasse 26 comments

A Embarcadero publicou um primeiro video com algumas das novidades que o RAD Studio 2010 vai trazer.

Finalmente teremos um formatador de código, e o atalho para disparar ações na IDE (IDE Insight) também é muito legal. Os data visualizers é outra novidade bem vinda para facilitar o debug. Espero nunca mais ver datas como números durante o debug.

Um ponto negativo do video é que usaram um miserável Windows XP para o demo, credo. Perderam uma boa oportunidade de mostrar a IDE rodando no Windows 7.

Alguém precisa dar uma camiseta nova para o David I. :)

Categories: Delphi Tags: ,

Backup SQL Server Express via linha de comando

July 21st, 2009 Erick Sasse 5 comments

Uma das desvantagens das versões Express do SQL Server é não ter o SQL Agent, que te permite agendar backups e outras tarefas administrativas nos seus bancos de dados.

No caso do backup, você pode facilmente automatizar usando o agendador de tarefas e um arquivo .bat com os comandos abaixo, que já inclui a compactação usando 7-Zip:

sqlcmd.exe -Q "BACKUP DATABASE MeuBanco TO DISK='d:\backup\meubanco.bak' WITH FORMAT"
"c:\program files\7-zip\7z.exe" a d:\backup\meubanco.7z d:\backup\meubanco.bak

É uma dica simples, mas que pode ser usada como ponto de partida para um script mais avançado e que atenda outras necessidades. Afinal, todo mundo precisa agendar backups de uma forma ou de outra.

E não esqueça de manter o backup bem longe do servidor. :)

Não deixe para amanhã

Categories: SQL Server Tags: ,

Como desabilitar rapidamente constraints e triggers de um banco SQL Server

June 22nd, 2009 Erick Sasse 3 comments

Quando se está importando dados para um banco, as constraints e triggers podem ser um chato obstáculo. Em alguns casos poder ser muito mais fácil desabilitar tudo e reativar no final do processo. Pesquisando sobre isso, encontrei essa ótima dica no StackOverflow.

Para desabilitar todas as constraints e triggers de todas as tabelas do banco:

exec sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT ALL"
exec sp_msforeachtable "ALTER TABLE ? DISABLE TRIGGER ALL"

Para habilitar:

exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL"
exec sp_msforeachtable "ALTER TABLE ? ENABLE TRIGGER ALL"

Alias, essa sp_msforeachtable é muito interessante e pode ser explorada de muitas formas diferentes. Testei no SQL Server 2008, mas deve funcionar no 2005 pelo menos.

Um detalhe a ser observado é que esse comando não desabilita constraint de PK nem UNIQUE.

Categories: SQL Server Tags:

Google Friend Connect Habilitado no Blog

June 8th, 2009 Erick Sasse No comments

Acabei de habilitar o Google Friend Connect aqui no meu blog. Se você está lendo isso através de um leitor RSS ou outro meio, precisará acessar o site para ver a barra no topo o quadro na lateral do site.

A proposta do Google Friend Connect é aproximar as pessoas que visitam o blog, além de permitir usar suas contas de outros grandes sites como Google, Yahoo, AIM ou OpenID para interagir com o blog, postar comentários, recomendar a amigos, etc.

Ainda não pesquisei muito a respeito para ativar todos esses recursos. Por enquanto você pode se “inscrever” no site ai em cima. No próximo passo pretendo vincular a parte de comentários, mas isso vai depender da boa receptividade do recurso. Então se você acha uma boa idéia, inscreva-se aí. :)

Categories: Geral Tags:

Como Assinar Digitalmente Seus Aplicativos

June 2nd, 2009 Erick Sasse 4 comments

No Windows Vista, quando o usuário tem o UAC ativado e vai instalar um aplicativo, uma confirmação é solicitada. Se seu aplicativo não possuir uma assinatura digital, uma tela bem ameaçadora de aviso é mostrada ao usuário dizendo que um programa não identificado precisa da sua autorização para ser executado. Avisos parecidos também aparecem em diversos outros momentos, como quando se tenta executar um programa por uma caminho de rede.

Uma forma de amenizar esses alertas ao usuário é assinar digitalmente seus aplicativos. A assinatura digital teoricamente garante ao usuário que o arquivo veio realmente da empresa desenvolvedora, e mostra telas bem mais amigáveis, mostrando o nome da sua empresa como origem do aplicativo.

Isso mostra que toda empresa de software deveria assinar seus aplicativos. E foi isso que nós implementamos aqui nos últimos dias e vou dar algumas dicas de como fazer.

  • Você precisa comprar um certificado digital de uma entidade certificadora de confiança da Microsoft. Eu comprei da Comodo através da K Software. Segui os procedimentos descritos na própria página e foi tranquilo. Utilizei o Internet Explorer durante todo o processo, pois no Chrome não foi legal.
  • Após compra você vai receber um e-mail solicitando os documentos da empresa para comprovar que ela existe e que você é o responsável. Eu mandei o cartão CNPJ da empresa impresso em PDF pelo site da Receita Federal.
  • Eles também pedem um telefone pois dizem que vão te ligar, mas não me ligaram.
  • Depois de um ou dois dias recebi o e-mail dizendo que o certificado estava pronto, com o link para baixar. Utilizei o Internet Explorer 8 e seguindo as instruções, o certificado foi instalado na minha máquina.
  • Como eu iria fazer a assinatura durante nosso processo de build, precisava copiar o certificado para nossa máquina de build. Então exportei o certificado, entrando em Opções de Internet, Conteúdo, Certificados. Dessa forma foi gerado um arquivo .pfx, que é exatamente o que o FinalBuilder precisa na sua action Authenticode para aplicar assinaturas.
  • Também é necessária uma URL da entidade certificadora para aplicar timestamp nos arquivos. Isso geralmente está nas páginas de FAQ da entidade. Como aqui no caso da Comodo.
  • Copiei o arquivo .pfx para minha máquina de build, apontei o FinalBuilder para ele, configurei a URL de timestamp e pronto, meus arquivos (*.exe) estão todos assinados!
  • Que eu saiba não existe limite e você pode assinar quantos arquivos quiser durante a validade do seu certificado.
  • Nós assinamos todos executáveis (*.exe), incluindo instaladores.
  • Também é possível assinar outros tipos de arquivos, mas como eu não fiz, não tenho dicas a respeito.
  • Para quem não usa FinalBuilder, precisa pesquisar como fazer sem ele, pois eu não fui atrás disso. Na página da K Software existe propaganda de uma ferramenta para assinar, mas tenho certeza que ou existem aplicativos no próprio Windows para isso, ou gratuítos em algum lugar para baixar.

Espero que isso ajude um pouco.

Categories: Geral Tags:

Updates 3 e 4 para Delphi 2009

May 28th, 2009 Erick Sasse 9 comments

É isso ai, de uma só vez a CodeGear disponibilizou dois updates para o Delphi 2009. Se você também usa o C++ Builder, serão 3 updates.

  • Post do Nick Hodges aqui.
  • Release notes aqui.
  • Lista do que foi corrigido no Update 3 aqui.
  • Lista do que foi corrigido no Update 4 (database pack) aqui.

Para instalar eu simplesmente lancei o “Check for Updates” do meu Delphi e pronto, mas você também pode baixar os updates da área de download para usuários registrados. Que foi o que eu fiz para instalar no restante das máquinas aqui.

A instalação foi tranquila, porém no about no meu Delphi, na caixa “Installed Updates” não aparece o Update 3, apenas o 4. Isso aconteceu para mais alguém aí? Vou testar em outras máquinas aqui para ver o que acontece.

Não achei nada sobre Windows 7 na lista de correções, então acredito que o problema do debugger continue.

Categories: Delphi Tags:

Novos Brinquedos

May 22nd, 2009 Erick Sasse 11 comments

Nas últimas semanas adquiri alguns novos brinquedos e pretendo em breve falar um pouco deles aqui:

Se quiserem saber algo específico sobre estes equipamentos, fiquem a vontade para postar nos comentários e eu responderei nos futuros posts.

Categories: Geral Tags:

Varrendo DataSet com Métodos Anônimos

January 25th, 2009 Erick Sasse 19 comments

Métodos anônimos é um dos novos recursos trazidos pelo Delphi 2009. De início ele parece meio estranho e podemos levar um tempo para nos acostumar com a sintaxe, mas podem ser bem úteis em alguns casos como o que eu vou mostrar agora.

Quantas vezes você já não precisou escrever código para varrer um dataset do início ao fim?

DataSet.First;
while not DataSet.Eof do
begin
  //
  // Faz alguma coisa com o registro atual
  //
  DataSet.Next;
end;

Isso pode ficar ainda maior se você precisar usar DisableControls ou ainda restaurar o ponteiro do registro do DataSet após a varredura:

var
  Bookmark: TBookmark;
begin
  DataSet.DisableControls;
  try
    Bookmark := DataSet.Bookmark;
    DataSet.First;
    while not DataSet.Eof do
    begin
      //
      // Faz alguma coisa com o registro atual
      //
      DataSet.Next;
    end;
    DataSet.Bookmark := Bookmark;
  finally
    DataSet.EnableControls;
  end;
end;

Esse código todo é praticamente repetido em todas as varreduras que precisamos fazer em um DataSet. Então seria muito útil se pudéssemos extrair esse código e trocar apenas a parte que “faz alguma coisa com o registro atual”.

É aqui que os métodos anônimos nos ajudam muito.

Na unit SysUtils do Delphi, existe um tipo TProc declarado desta forma:

type
  TProc = reference to procedure;

E vamos usá-lo para criar uma procedure que recebe um dataset e um método anônimo como parâmetros:

procedure ForEach(DataSet: TDataSet; Proc: TProc);
var
  Bookmark: TBookmark;
begin
  DataSet.DisableControls;
  try
    Bookmark := DataSet.Bookmark;
    DataSet.First;
    while not DataSet.Eof do
    begin
      Proc;
      DataSet.Next;
    end;
    DataSet.Bookmark := Bookmark;
  finally
    DataSet.EnableControls;
  end;
end;

E com isso podemos chamar a procedure dessa forma:

ForEach(Table1,
  procedure
  begin
    ShowMessage(Table1NAME.Value)
  end);

Como eu disse, a sintaxe inicialmente é meio estranha, mas com o tempo você acostuma. No exemplo acima eu codifiquei uma procedure sem nome e sem parâmetros e passei para ser executado em cada registro. Eu tinha um dataset chamado Table1 no form. ShowMessage será chamado para cada registro. Além disso, ele desativa os controles conectados ao dataset e restaura o ponteiro no final.

Perceberam como isso facilita nossa vida? Então pronto, pode ir remover o monte de código duplicado que você tem em seus aplicativos. :)

Existe ainda uma idéia mais legal que é transformar esse recurso em um helper para a classe TDataSet, mas isso eu vou deixar para vocês como lição de casa ou para um próximo post aqui no blog.

Update: Eu já estava prevendo que alguém comentasse isso. Sim, eu sei que já era possível antes com ponteiros de funções, mas com métodos anônimos é muito mais legal e é uma forma de tirar proveito dessa novidade do Delphi 2009. Para quem ainda não tem o Delphi 2009, vale a dica do amigo Marcos Douglas, postada nos comentários.

Categories: Delphi Tags:

Problemas com Delphi no Windows 7

January 9th, 2009 Erick Sasse 12 comments

Depois de realizar mais testes, cheguei a conclusão que infelizmente o Windows 7 ainda não é uma boa opção para quem trabalha com Delphi.

Rodando o Delphi 2009 encontrei problemas na hora de usar o debugger em aplicativos com mais de uma thread. Quando uma exception é levantada, não é possível dar um break e resetar o aplicativo (Ctrl+F2) e você precisa reiniciar a IDE.

Já notifiquei o pessoal da CodeGear, mas como essa é uma versão beta e não suportada do Windows, não posso querer que eles resolvam.

Fica aí o alerta para os desenvolvedores Delphi.

Categories: Delphi, Microsoft Tags: ,

Google Chrome no Windows 7 64 bits

January 9th, 2009 Erick Sasse 12 comments

Seguindo esta dica consegui fazer o Chrome funcionar perfeitamente no Windows 7.

Bastou adicionar o parâmetro “-in-process-plugins” no atalho do executável conforme screenshot abaixo:

chromewindowsseven64bits

Categories: Geral Tags:

Primeiras impressões do Windows 7 com Delphi, Firebird e mais

January 8th, 2009 Erick Sasse 13 comments

Windows 7 Beta e Delphi 2009Instalei o Windows 7 Beta build 7000 em uma máquina de testes e já deu tempo de brincar um pouco. A instalação foi totalmente tranquila, reconheceu todo o hardware assim como o Vista já fazia. Optei pela versão 64 bits, que já venho usando no Vista há algum tempo.

A nova task bar realmente é bem melhor e é a primeira diferença que se nota logo que o sistema inicializa.

Depois disso comecei a instalar alguns dos aplicativos que mais uso no dia-a-dia.

Instalados e rodando sem nenhum problema até agora:

  • Delphi 2009
  • Firebird 2.1
  • IBExpert
  • TortoiseSVN
  • Mozilla Firefox

Não funcionaram Funcionando após algum ajuste:

Conclusão, estou considerando sériamente em arriscar e instalar ele na minha máquina principal.

Para quem está interessado em testar e não tem assinatura MSDN nem TechNet, acho que ele vai estar disponível publicamente para download amanhã.