Monthly Archive for julho 2006

Resumo e atual situação da “venda do Delphi”

As vezes esqueço que muita gente não está acompanhando de perto a tal “venda do Delphi” e simplesmente deixo de comentar aqui as novidades. Para quem não sabe muito bem o que está acontecendo, vou escrever um pequeno resumo e descrever a situação atual.

A Borland anunciou alguns meses atrás que estaria vendendo as ferramentas de desenvolvimento (Delphi e JBuilder) e o Interbase. Internamente, esses produtos já são mantidos por uma divisão específica, conhecida como DTG ou Developers Tools Group. E na verdade o que vai acontecer é que esse grupo vai ser separado da Borland e vai caminhar como uma empresa independente.

Há muito tempo o Delphi vinha sendo deixado de lado devido a mudança de foco da Borland, que deixou de ser realmente o desenvolvedor. A proposta desta nova empresa é manter o foco exclusivo no desenvolvedor, ou seja, em nós. Essa empresa vem sendo chamada de DevCo (Developers Company), pois o nome oficial ainda não foi definido.

Isso é bom? Eu acho isso ótimo. Como tenho acompanhado um pouco de perto tudo o que vem acontecendo, sei que todos os feras que trabalhavam no Delphi irão para a nova empresa, além disso, estão trazendo de volta muitas pessoas que saíram da Borland e contratando novos talentos também. Apesar da separação com a Borland ainda não ter acontecido, eles já estão operando praticamente como uma empresa independente.

Como fica o Kylix? Ninguém disse nada oficialmente ainda, então não posso afimar nada. Quem sabe ele não volta? E o JBuilder? O JBuilder eu sei que tem uma nova versão no forno, codinome Peloton, que é baseado no Eclipse e tem um recurso fantástico que é o P2P Programming, estou louco pra ver isso no Delphi.

Segundo a própria Borland, o comprador desta divisão da empresa deve ser anunciado nas próximas semanas, mas eu duvido muito que seja alguma empresa conhecida. Acredito que vai ser algum investidor ou algo do tipo. Esperam que a separação esteja completa até o final de setembro.

Com tudo isso acontecendo, só posso acreditar que os desenvolvedores Delphi estarão muito seguros continuando fiéis a ferramenta. O Delphi não vai acabar, como alguns pensam. Não só não vai acabar, como chego a pensar que ele pode voltar a liderar as inovações na área. Lógico que não podemos sonhar que o Delphi será mais popular que o Visual Studio por exemplo, isso seria algo tão difícil como o Linux suplantar o Windows no desktop. Mas isso não quer dizer que o Delphi não possa ser muito melhor que o VS, afinal, em Win32 o Delphi sempre foi e ainda é o que há de melhor.

Portanto fiquem tranquilos. Se você é desenvolvedor Delphi, não se desespere, continue nele numa boa. Eu por exemplo, continuo fazendo tudo em Delphi, inclusive novos projetos, pois o tempo que precisaria investir em novas plataformas, acaba não se pagando. Acredito que vem muita coisa boa por aí.

iPod no carro

Agora estou satisfeito. Algum tempo atrás comprei um iPod junto com um transmissor FM para poder escutar no carro. Infelizmente aquilo é uma porcaria. Som de péssima qualidade, chiados, etc. Na minha última viagem pros EUA comprei um rádio JVC para o meu carro com entrada USB e posso conectar o iPod direto:

Alguns rádios tem entrada de áudio frontal, que muita gente usa para ligar o iPod, mas USB é outro nível. A porta USB mantêm o iPod carregado, além de eu poder controlar o iPod através dos botões do rádio. Quando quero mudar de música, mudo no rádio, não preciso mexer no iPod, o que aliás, é muito perigoso enquanto dirigimos.

Outra coisa, ele não serve só para iPod não. Ele toca numa boa as músicas de um flash drive por exemplo. Basta espetar e ouvir!

Rádio digital já chegou de verdade

Esse post não tem nada a ver com desenvolvimento, mas de certa forma acaba sendo de interesse geral, afinal, quem aqui não ouve rádio, mesmo que de vez em quando?

Para quem não sabe, um dos focos da minha empresa é o fornecimento de soluções em software para emissoras de rádio e TV. Por esse motivo, acompanho muito de perto as mudanças deste meio. Principalmente do rádio, onde está a maior parte dos meus clientes.

Na segunda-feira, tive o prazer de ajudar a colocar no ar um dos primeiros transmissores digitais de rádio FM do Brasil. Foi aqui em Americana, da rádio Vox 90, um dos meus clientes mais antigos e que sempre gostou de ser pioneiro em novas tecnologias.

O interessante é que praticamente ninguém tem receptor de rádio digital ainda, então apenas alguns felizardos já podem apreciar o som de melhor qualidade. Mas isso não tem tanta importância, porque não poderia ser muito diferente durante uma troca de tecnologia. Quando as primeiras redes de celulares digitais entraram no ar, poucos tinha celulares digitais.

A beleza do fato é que o rádio passa por uma grande transformação. O transmissor que instalamos é gerenciado por um Pentium 4 rodando Linux Mandrake (sim, ainda aparece Mandrake no boot). Ele tem um gabinete todo especial, não é uma máquina comum, tem um monitor LCD de umas 7 polegadas touch screen embutido no gabinete, e pode ser operado remotamente pela Internet.

A tecnologia adotada para o rádio digital brasileiro se chama HD Rádio, e para que você possa ouvir uma rádio neste formato você precisa de um receptor compatível com HD Rádio, o que ainda é uma raridade.

O benefício inicial desta tecnologia é um som bem mais limpo, sem interferências, além das rádios também já poderem enviar o nome da música/artista que está sendo executada, ou o telefone da loja que está veiculando um comercial por exemplo.

Já está previsto a evolução gradual do HD Rádio, entre os novos recursos, será permitindo mais de um canal na mesma frequência, de forma que sua rádio preferida possa transmitir programações para publicos diferenciados em uma única frequência. E o mais interessante é que grande parte da atualização dos novos recursos, será feita como nós, desenvolvedores, já estamos acostumados. Bastará inserir um CD no leitor do transmissor e atualizar o software que roda nele.

Update: Sim, eu sei que já era possível transmitir texto pelo rádio usando o RDS. Mas o RDS é uma tecnologia muito inferior e com muito menos recursos e que praticamente nunca se popularizou.

BorCon/DevCon Brasil 2006 aceitando palestras

Conforme o Andreano publicou em seu blog, o período de envio de palestras para a BorCon/DevCon Brasil 2006 está aberto. Eu estou tentando mandar minhas propostas, mas tento me cadastrar como palestrante e a página dá erro, então não consigo continuar. Já reportei ao Andreano, que está verificando isso.

Palestrante ou não, eu certamente estarei no evento. Ele deve acontecer em outubro ou novembro em São Paulo, como já estamos acostumados.

SharpDevelop 2.0 lançado

Pra quem gosta de tudo open source, está disponível a versão 2.0 do SharpDevelop, uma IDE open source, muito parecida com o Visual Studio. Aqui tem um tour e aqui uma comparação dele com o VS Express Edition.

SmartInspect: Solução poderosa para log no aplicativo

Há alguns dias adotei o SmartInspect para fazer logs em meus aplicativos. Devo dizer que estou muito impressionado e satisfeito com o poder e a qualidade do produto.

Até então eu vinha utilizando a Debug Window do GExperts, mas o SmartInspect é algo de um nível muito superior. Estou usando nos meus aplicativos Delphi (aliás, ele é feito em Delphi), mas ele suporta também .NET e Java.

Seja para debug ou simples monitoramento do aplicativo, ele faz log local, log via rede, log em disco para análise posterior, log simultâneo de várias estações, etc. Enfim, é a típica ferramenta que depois que conhecemos, não conseguimos mais ficar sem. :)

Em breve vou escrever um review melhor e mais detalhado sobre ele, enquanto isso sinta o gostinho fazendo um tour.

Arquivo da lista Firebird .NET

Se você já está usando Firebird em .NET, esse site pode ser muito útil. Contém o arquivo (atualizado a cada 60 segundos) “pesquisável” da lista firebird-net-provider.

Criado pelo Dan Letecky, que também mantém outro ótimo site de Firebird em .NET, o DotNetFirebird.

Variáveis de ambiente do Firebird

Se você usa os utilitários de linha de comando do Firebird (gbak, gstat, gfix), já deve estar enjoado de informar nome de usuário e senha todas as vezes que precisa executar um comando, não?

Para acabar com isso, você pode definir as variáveis de ambiente isc_user e isc_password, com o usuário e senha do seu banco. Os utilitários pesquisarão a existência destas variáveis no ambiente e utilizarão automaticamente sem que você precise informa-las na linha de comando.

Lembre-se que isso deve ser usado apenas na sua máquina de desenvolvimento, para não comprometer a segurança do banco de produção.

Falando em Firebird, não esqueça que este mês tem o Firebird Developers Day em Piracicaba, cidade vizinha daqui de Americana. É um dos maiores eventos de Firebird do mundo, e conta inclusive com alguns palestrantes internacionais.

Lançada comunidade RubyOnBr

http://www.rubyonbr.org/

O RubyOnBr é um portal que tem como objetivo difundir o uso da linguagem Ruby e do framework Rails para os brasileiros e colegas que falam a língua portuguesa. A idéia nasceu da cabeça pervertida de Vitor Pamplona de fazer um portal Ruby utilizando a estrutura do JavaFree.org. Doente ou não, a idéia era muito boa e ele arranjou dois comparsas: Ronie Uliana e Adriano Dadario, para arranjarem conteúdo e turma para o portal.

O RubyOnBr está apenas começando, e onde vai parar, apenas a comunidade que tem interesse na linguagem poderá dizer.

Comportamento estranho do SQLConnection.ExecuteDirect

Hoje me deparei com um comportamento no mínimo estranho no dbExpress. Se você usa essa engine, é bom estar ciente.

O componente SQLConnection tem um método ExecuteDirect que lhe permite enviar comandos diretos para o banco de dados sem ter que criar um SQLDataSet ou coisas do tipo. Pois bem, venho usando este método há um bom tempo já, mas só hoje percebi esse detalhe.

Mesmo que você não tenha uma conexão válida com o banco de dados, ele não retorna nenhum erro. Você pode enviar quantos comandos quiser, que nenhuma exception é gerada. A única forma de saber se o comando foi bem sucedido ou não é verificando o resultado da chamada, que retorna um inteiro. Mas aqui tem outro problema. O help do Delphi diz que ele retorna zero se o comando foi bem sucedido, mas o help está errado. Ele retorna o número de registros afetados pelo comando que você enviou. Quando não existe conexão com o banco, retorna sempre zero, e daí você pode tratar da forma que preferir.

Mas o que eu gostaria mesmo (pois na minha opinião faz muito mais sentido) é que uma exception fosse gerada quando não existisse uma conexão válida e retornasse zero apenas se o comando foi enviado com sucesso ao banco e nada foi afetado.

PS: Isso acontece com o dbExpress (D7 e D2006) acessando Firebird 1.5.3, usando fbclient.dll.  Não testei com outros bancos.