| Assinar RSS

OpenSuse, Subversion, Trac, RemObjects, Free Pascal e FDD

July 18th, 2008 | No Comments | Posted in Geral

Desde a semana passada, além das tarefas diárias tive de instalar um servidor novo, atualizei o hardware e o SO para OpenSuse 11.

Neste servidor já coloquei no ar o Subversion e o Trac, ferramentas indispensáveis para desenvolvimento de sistemas.

Nesta tarde portei um servidor de aplicações simples feito com Delphi + RemObjects para Linux usando o Free Pascal, a nota aqui é que além de configurar o ambiente, só precisei adicionar uma unit para Threads no projeto, para compilar e executar no Linux. O próximo passo é escrever um "Jazz DB Mechanism" para fazer a persistência dos objetos usando as bibliotecas de acesso a banco de dados do Free Pascal.

E sábado é dia de FDD, estarei em Piracicaba, se alguém quiser conversar só mandar um e-mail e me encontrar lá.

FastScript 1.94

July 9th, 2008 | No Comments | Posted in Delphi, Programação, Rad Studio

Fast Report anunciou uma atualização do FastScript.

Novidades

  • RTTI - novas funções e propriedades
    • TCustomIniFile.WriteTStrings
    • TCustomIniFile.ReadTStrings
    • TIBTransaction.Commit
    • TIBTransaction.RollBack
    • TIBTransaction.StartTransaction
    • TIBQuery.FetchAll
    • TIBQuery.RecordCount
    • TChartSeries.Active
    • TChartSeries.Count
    • TChartSeries.Delete
    • E funções agora retornam Null como valor padrão
  • propriedade TfsScript.IncludePath: lista de caminho dos módulos
  • propriedade EvaluateRiseError property: retorna True se houver erro de Evaluate
  • Evento OnGetVarValue
  • AddPropertyEx com TfsGetValueNewEvent/TfsSetValueNewEvent

Erros corrigidos

  • Bug no operador "in"
  • Bug com "late binding" - link em tempo de execução
  • Bug com "type casting"
  • Bug de "Evaluate" na gramática Basic
  • Bug de chamadas AddRTTI desnecessárias em "evaluate function"

 

FastScript é um mecanismo de scripting multi-plataforma, multi-linguagem. É útil para programadores que desejam adicionar o recurso de scripting aos seus projetos.

FastScript suporta:

  • Delphi 4-7, 2005, 2006, 2007
  • C++Builder 4-6, 2005, 2006, BDS
  • Kylix 1-3
  • Lazarus Free Pascal

Referências

Delphi 4 PHP - Smarty Templates

July 8th, 2008 | No Comments | Posted in Delphi 4 PHP, Programação, Web

O D4PHP tem suporte nativo a Smarty Templates, que é um recurso muito interessante, que aumenta a produtividade ao mesmo tempo que ajuda a separar a lógica do design.

O problema que eu encontrei, é que a forma em que foi implementado, depende que o PHP esteja com variáveis globais habilitadas, como eu mantenho este recurso desabilitado, quando tentava usar Smarty Templates com D4PHP, sempre dava erro, e a mensagem de erro não ajudava muito.

Este erro só acontece se no PHP as variáveis globais estiverem desabilitadas.

Com uma dica do Jonathan Benedicto, fiz uma pequena alteração no arquivo "vcl/smartytemplate.inc.php", para que o diretório temporário fosse carregado do ambiente e não da variável global "TMP".

A alteração fica na function initialize(), eu comentei o código anterior e adicionei o novo, linha ~51:


function initialize()  {

    require_once("smarty/libs/Smarty.class.php");

 

    $this->_smarty = new Smarty;

    $this->_smarty->left_delimiter='{%';

    $this->_smarty->right_delimiter='%}';

    $this->_smarty->template_dir = '';

    if ( preg_match( "/^WIN/i", PHP_OS ) ){

/* // inicio do código comentado

        if ( isset( $_ENV['TMP'] ) ){

            $this->_smarty->compile_dir = $_ENV['TMP'];

        }

        elseif( isset( $_ENV['TEMP'] ) ){

            $this->_smarty->compile_dir = $_ENV['TEMP'];                      

        }

        else {

            $this->_smarty->compile_dir = '/tmp';

        }

    }

    else{

        $this->_smarty->compile_dir = '/tmp';

    }

*/ // fim do código comentado

        if (getenv('TMP')){

            $this->_smarty->compile_dir = getenv( 'TMP' );

        }

        elseif(getenv('TEMP')){

            $this->_smarty->compile_dir = getenv( 'TEMP' );

        }

        else {

            $this->_smarty->compile_dir = '/tmp';

        }

    }                                   

    $this->_smarty->cache_dir=$this->_smarty->compile_dir;

}

 

Referências

TBODBXFB 0.6 RC2 - Firebird DBX4 Driver

July 2nd, 2008 | 1 Comment | Posted in Firebird

Alterações desta versão

  • Adicionado suporte a TSQLDataSet
  • Adicionado suporte a TSQLStoredProc
  • Corrigido Access Violation ao chamar DBXCommand_GetRowsAffected com comandos DDL

 

Notas da Versão

A partir da versão 0.6 RC 2, foi preciso usar a função TRIM para mostrar corretamente os campos e parâmetros nos objetos TSQLDataSet e TSQLStoredProc.

A função TRIM está disponível apenas nas versões mais recentes, 2.0 e 2.1 do Firebird. Na versão 1.5 é necessário declarar esta função, disponível em UDF na instalação padrão.

Para poder utilizar o driver com Firebird 1.5, execute o seguinte comando:


DECLARE EXTERNAL FUNCTION trim
  CSTRING(255)

RETURNS CSTRING(255) FREE_IT

ENTRY_POINT 'IB_UDF_ltrim' MODULE_NAME 'ib_udf';

 

Referência

Embarcadeiro.Assign(Borland.CodeGear)

June 30th, 2008 | No Comments | Posted in Geral

Ou seria melhor:

Embarcadeiro.Assign(Borland.CodeGear);
Borland.CodeGear:= nil;

Hoje é o último dia da CodeGear como parte da Borland, a partir de amanhã ela é oficialmente parte da Embarcadeiro.

Nos blogs do pessoal da CodeGear, já aparecem alguns artigos:

Segundo Allen Bauer, não devemos esperar muitas mudanças nos sites, agora é continuar o trabalho planejado, melhorar os projetos e após o período de adaptação veremos as novidades.

Omni Thread Library

June 30th, 2008 | 2 Comments | Posted in Delphi, Dicas, Programação, Threads

Primoz Gabrijelcic, acaba de disponibilizar a Omni Thread Library, uma biblioteca para simplificar a utilização de Threads.

Com esta biblioteca um método pode ser executado em uma thread separada sem a necessidade de criar uma classe descendente de TThread:


procedure TfrmTestOTL.btnBeepClick(Sender: TObject);
begin 
   CreateTask(Beep, 'Beep').Run;
end;


procedure TfrmTestOTL.Beep(Task: IOmniTask);
begin  
  MessageBeep(MB_ICONEXCLAMATION);
end;

 

image

 

Referências

Acessando o site da CEF com o Firefox 3

June 30th, 2008 | No Comments | Posted in Dicas, Web

O André Gondim postou uma dica pra resolver o problema de incompatibilidade  com o site da Caixa Econômica Federal, eu testei e funcionou perfeitamente.

A solução Caixa Economica Federal x Firefox 3

Embarcadeiro Beta Program

June 27th, 2008 | No Comments | Posted in DB, Programação

A Embarcadeiro disponibilizou a versão beta do PowerSQL 1.1 e DB Optimizer 1.0.

PowerSQL

Simplifica o desenvolvimento SQL, com muitos recursos para aumentar a produtividade e reduzir os erros. Uma IDE SQL com code completion, verificação de erros em tempo real, formatação de código e uma sofisticada ferramenta de ajuda de validação de objetos que simplifica as tarefas de codificação, sinceramente, não sei o que eles querem dizer com este último ítem, estou baixando, vou testar e ai direi minha opinião.

DB Optimizer

Maximiza a performance de banco de dados, ajudando a descobrir e otimizar SQL de baixa performance. Elimina gargalos descobrindo dados e consultas executados com frequência, focando em instruções SQL específicas através de estatísticas (CPU, I/O, tempo de resposta), e otimizando qualquer instrução problemática

 

Referências

Como encontrar o MAC Address da placa de rede

June 27th, 2008 | No Comments | Posted in Dicas, Windows Vista

Os roteadores wireless estão se tornando parte do nosso dia-a-dia e alguns dos roteadores tem o recurso de limitar a conexão apenas a equipamentos conhecidos, para isto, é necessário cadastrar o MAC Address da placa de rede no roteador.

Uma forma rápida e fácil de encontrar o MAC Address é parar o mouse em cima da descrição da placa de rede, que aparecerá uma dica com o número.

 

image

Webinar: Delphi for PHP for PHP developers

June 26th, 2008 | No Comments | Posted in Delphi 4 PHP

Participe hoje, 26 de junho às 14:00h

A apresentação com foco nos recursos do Editor, Debugger e Profiler.

  • Recursos do código fonte
    • Error Insight
    • Sync Edit
    • Structure Pane
    • Code Insight
    • Change tracking
    • Macro record
    • Code Folding
    • Bookmarks
    • Multiple editors
    • UTF-8 support
    • phpDoc support
    • Customize the editor
    • Code formatter
  • Executando e debugando aplicações existentes, código legado
  • Visual Designer e Templated forms
  • Framework Zend
  • Programando acesso a banco de dados

 

Referências