Delphi para PHP

Tuesday, 20 March 2007

Agora é certo: a CodeGear irá lançar em sua IDE uma personalidade para desenvolvedores PHP. Como havia antecipado no post anterior, o produto foi baseado no ambiente QStudio, da empresa Qadram. Vejam na imagem abaixo:

Delphi4Php Splash Screen

Mais novidades no futuro breve.


Delphi e PHP?

Friday, 09 February 2007

Hoje estava lendo o blog de Roland Beenhakker que cita um post na lista de discussão sobre assuntos não-técnicos de Delphi. Roland divulga possíveis nomes para novas versões do Delphi e um nome me chamou a atenção: Delphi Astro - Delphi for PHP.

Porém o que mais me fez viajar foi a lembrança de um post anterior do mesmo Roland sobre IDEs gratuitas. Nele ele cita o ambiente QStudio da empresa Qadram Software. Segundo a empresa, o qstudio é um ambiente para desenvolvimento PHP muito parecido com o Delphi que eles usaram para desenvolver todos os seus projetos. E melhor: estariam disponibilizando gratuitamente para download em dezembro. Fiquei animado porque achei que seria uma possibilidade de aprender mais rapidamente PHP e fiquei monitorando o site da empresa para baixar o programa assim q saísse. Até agora nada.

QStudio

O que me fez pensar: será que a CodeGear não estaria por trás deste atraso? Afinal eles já assumiram o interesse em criar um ambiente para desenvolvimento PHP, e já q o qstudio é muito (muito mesmo!) parecido com o Delphi por que não comprá-lo?

Vamos ver se essa é apenas mais uma teoria conspiratória ou tem algum fundo de verdade…


Formatação de código no WordPress

Friday, 02 February 2007

Estava procurando há algum tempo um modo de formatar o código que venho mostrando em meus posts, e não conseguia encontrar nada para a versão gratuita do WordPress. Quando Steve Trefethen escreveu este post sobre a ferramenta gratuita CodeHighlighter. Além disso ele disponibilizou em seu site uma maneira de formatar o código de várias linguagens de programação. Resolvi testar e fiquei muito satisfeito. O problema é que ainda não consegui identar o código direito. Alguma sugestão?
Veja o resultado abaixo da formatação do código de uma stored procedure:

1 create procedure ut_TestChangeSet_CS001 as
2 begin
3 if ( object_id(TabelaQualquer) is not null ) begin
4 exe tsu_failure A tabela não existe!
5 end
6 end
7 go


Amazon + Wiki = Amapedia

Tuesday, 30 January 2007

AmapediaAcompanhando blogs com a tag wiki no WordPress, cheguei neste post, que comenta a chegada do site Amapedia, que é o site wiki da Amazon, onde a comunidade de usuários registrados na Amazon pode fazer comentários aos produtos vendidos lá. Por usuários registrados, leia-se usuários que já fizeram alguma compra lá. É a tecnologia wiki começando a ser incorporada por grandes empresas na web como meio de colaboração entre seus usuários.

E o mais interessante foi que, ao ler os comentários do mesmo post, cheguei a outro exemplo de site wiki para colaboração entre usuários de produtos, só que sem estar vinculado a nenhum fornecedor ou cadeia de produtos. É o ProductWiki, que segundo eles (minha tradução):

…traz um novo tipo de experiência de compras online: uma que ao mesmo tempo é individual e colaborativa. Um lugar onde não apenas se pesquisa produtos, mas onde se compartilha o que você encontrou. O melhor sobre o ProductWiki é que nós somos um website independente que não vende nenhum produto. O que isto significa para o consumidor é que nós fornecemos informação que não é influenciada por fornecedores ou propaganda, ao invés disso ela é baseada no que nossos usuários e a comunidade acha melhor.

Quantas vezes procuramos um produto para comprar na internet, e sempre procuramos ler os comentários de outros usuários que compraram o mesmo produto para não entrarmos em roubadas? Acho que esta iniciativa é muito interessante. É claro que já existem muitos sites com estas revisões, mas não conheço nenhuma iniciativa independente nem como wiki voltada para o público brasileiro. Alguém conhece algo parecido?


Sobre Virtualização e Testes

Friday, 26 January 2007

Outra prática muito importante no desenvolvimento é a execução de testes em ambientes com características diferentes. Deste modo é possível diagnósticar erros que só acontecem com determinadas versões de um sistema operacional, uma dll, software, etc. Com o advento da virtualização ficou muito mais simples e barato manter um ambiente para cada situação de teste. Através de softwares como o VmWare Player ou o Microsoft VirtualPC podemos ter várias máquinas virtuais, cada uma com um ambiente diferente para testes. E melhor ainda, os dois softwares listados são gratuitos! Mas a utilização de máquinas virtuais não fica restrita à área de testes. Muito pelo contrário. Hoje temos as chamadas virtual appliances, que segundo o site da VmWare (a tradução é minha):

 é um ambiente com sistema operacional e aplicativos instalados e pré-configurados executado em uma máquina virtual.

Assim, existem appliances com servidores web,  bancos de dados, sistemas operacionais Linux, aplicativos de gerenciamento de software, etc., todas prontas para serem usados e abusados. Eu pessoalmente uso intensivamente a appliance vmTrac, que disponibiliza um sistema de controle de versão (Subversion) juntamente com um software de controle de erros e documentação de projetos (Trac), instalados em um sistema operacional FreeBSD.

Inclusive a revista InfoExame já publicou algumas matérias sobre o assunto.

Vale a pena você investigar este tema, ele vai dar o que falar!


Estrutura da base de dados em XML

Thursday, 25 January 2007

Uma das práticas mais importantes no desenvolvimento de software é identificar oportunidades para a reutilização da informação. Onde houver redundância, haverá aí uma oportunidade para reutilização. E reutilizando uma informação diminuímos o acoplamento entre dois ou mais pontos do software, por sua vez tornando-os mais independentes e assim fazendo com que sua manutenção seja mais fácil e menos crítica.

A estrutura da base de dados de sua aplicação é uma séria candidata à “informação redundante” do software. Existem vários lugares onde temos referências mesmo que implícitas aos metadados de suas tabelas, colunas, restrições e outros objetos da base. Por exemplo: scripts de criação e atualização da base, diagramas entidade-relacionamento, dicionário de dados, casos de testes unitários, componentes que fazem o mapeamento objeto-relacional, consultas SELECT, etc.

Neste post quero apresentar uma maneira de diminuir o acoplamento entre estes artefatos de software através do armazenamento da estrutura da base de dados em um arquivo XML. Read the rest of this entry »


Padrão de Projeto: Usando Listas ao invés de Cursores em Transact-SQL

Wednesday, 24 January 2007

Já li muitos autores falarem sobre evitar o uso de cursores no código T-SQL por questões de performance. Então resolvi dar minha contribuição para a discussão apresentando um padrão que tenho usado em meu projeto no trabalho. Não acho que esta solução seja uma panacéia para evitar todo uso de cursores. Muito menos acho que é a melhor solução. É apenas uma solução que me sinto mais à vontade usando. Achei legal compartilhá-la e por isso humildemente a apresento para a comunidade debater e melhorar. Read the rest of this entry »


TSqlUnit

Tuesday, 23 January 2007

Para quem está acostumado a escrever testes unitários para suas classes e componentes, aqui está um framework interessante para utilizar testes unitários nos objetos de banco de dados do SQL Server. Acredite. Vale muito a pena.

Em meu atual projeto aqui no trabalho tenho conseguido muito sucesso escrevendo minhas tabelas, stored procedures, views e funções com a ajuda de testes unitários com o TSqlUnit. Principalmente tenho encontrado duas razões: design mais consistente e testes de regressão. Read the rest of this entry »


Classe ASP para Tabelas HTML, parte 2

Thursday, 11 January 2007

Seguindo o raciocínio do post anterior, a idéia é basicamente a seguinte: em um código ASP, não quero ficar misturando o código HTML com código ASP. Então pensei em algo do tipo: Read the rest of this entry »


Classe ASP para Tabelas HTML, parte I

Thursday, 11 January 2007

O VBScript e o ASP não têm muito jogo de cintura quando o assunto é orientação a objetos. É possível criar classes, porém não é possível utilizar herança, muito menos polimorfismo.

Entretanto, recentemente venho desenvolvendo um aplicativo no trabalho que volta e meia necessitava de mostrar numa tabela um conjunto de nós XML.

Pensei então em reutilizar este código: criei uma classe chamada cXmlToHtmlTable que, a partir da inicialização de algumas propriedades, retornaria uma tag <table> preenchida com o Xml indicado. Funcionou muito bem!

Em breve estarei colocando aqui o código e as conclusões que tirei desta pequena experiência. Aguardem!