20 anos de Delphi e TMS em um ERP: uma entrevista

Publicamos recentemente no nosso canal do Youtube (inscreva-se lá!) uma entrevista com Alexandre Henzen, Diretor Técnico da Viasoft Korp. A entrevista está disponível através deste link, e logo adiante neste artigo também.

Nessa entrevista, Alexandre fala sobre a trajetória da Viasoft Korp, como a empresa começou com apenas uma pessoa e um sistema desktop em C++Builder 6 para se tornar uma fornecedora de sistema ERP para grandes indústrias brasileiras, fazendo parte de um conglomerado de empresas com mais de 500 funcionários.

Fizeram parte dessa caminhada, de alguma forma, este que vos escreve, Wagner Landgraf, a TMS Software, e a Embarcadero, através do Delphi, ferramenta usada pela empresa há quase 20 anos – dentre outros.

Para aqueles que não apreciam ou não podem assistir vídeos, selecionamos aqui alguns momentos interessantes da entrevista, para que vocês também possam apreciá-la.

1:46 – Sobre a Viasoft Korp

Wagner Landgraf: O que é a Viasoft Korp?

Alexandre Henzen: A Viasoft Korp é uma unidade de negócios do grupo Viasoft. A Viasoft é uma empresa que fornece sistemas ERP para vários segmentos: agronegócios, supermercados, materiais de construção, entre outros. E a Viasoft Korp desenvolve ERP focado em indústria, além de estarmos atuando também no mercado de distribuição. A Korp começou oficialmente no ano 2000. Nascemos dentro de um grupo industrial chamado Kabel, onde o sistema foi desenvolvido para atender as necessidades internas (da Kabel). No período que a Korp ficou lá dentro a Kabel chegou a ter 1200 funcionários, mais de 400 usuários simultâneos no sistema, então já tivemos que atender uma demanda grande desde o início. (…) Na época o software era em C++ Builder.

A Viasoft Korp desenvolve ERP focado em indústria e distribuição.

Alexandre Henzen

3:00 – Migrando de C++ Builder para Delphi

WL: Acho que foi um dos poucos ERP que vi na minha vida feito em C++.

AH: Pois é. Até que chegou uma época que o software demorava quase 6 horas para compilar. Isso em 2004, 2005. E a empresa foi crescendo, incorporando novos colaboradores, o software foi crescendo. Em determinado momento, desenvolvemos um transpiler de C++ para Pascal – com a sua ajuda inclusive, não sei se você se lembra disso – para podermos migrar todo o sistema para Delphi. Com isso ganhamos alguns benefícios que o Delphi nos trazia, como reduzir o tempo de compilação, por exemplo. 

Desenvolvemos um transpiler de C++ para Pascal para podermos migrar para Delphi

Alexandre Henzen

6:47 – Momentos-chave de mudanças na empresa

WL: O que ajudou a Korp a crescer? Quais foram os momentos-chave?

AH: O TMS Scripter (componente da TMS Software para edição e execução de scripts) foi um grande diferencial para nós. (…) É uma característica de sistemas ERP serem customizáveis, então essa flexibilidade que o TMS Scripter deu pra gente customizar o sistema, (é algo que) em 2001, 2002, não se via muito isso. (…) Os próprios clientes podiam criar telas, até módulos dentro do sistema, (…) e a velocidade (de execução), é praticamente a mesma coisa do código compilado – para o usuário, imperceptível. (…) Isso ajudou a gente a crescer, porque por mais que você queria fazer só software padronizado, sempre vai ter um detalhe ou outro que precisa ser customizado.

A flexibilidade que TMS Scripter trouxe para customizar o sistema foi um grande diferencial para nós

Alexandre Henzen

9:17 – Uso de ferramenta de workflow

AH: (Outra decisão importante): Numa época que não se falava em BPM, telas de aprovação de pedido eletrônicos, (usar o TMS Workflow em 2007) também foi um grande diferencial. Você poder desenhar um fluxograma e dizer: “Fulano aprova pedido, se o pedido for maior que X reais para para Ciclano, etc”. (…) Isso faz com que o sistema se torne cada vez mais flexível.

11:08 – A importância de ter qualidade e ser especialista

WL: Você acha que o ERP da Korp cresceu e conquistou mercado principalmente por qualidade técnica?

AH: Sim, e outra coisa é que somos especialistas. Nós não somos a empresa genérica que atende desde uma farmácia até uma indústria. Então a gente chega na indústria e fala a língua do industrial. (…) Nós atendemos todo o back office que o mercado atende. Contabilidade, fiscal, financeiro, compras, tudo que há nos ERPs de hoje. Só que na parte industrial é que temos os diferenciais e por isso temos conquistado empresas no Brasil inteiro. Desde nossos vendedores até nossos consultores de implantação e equipe técnica, todos vivem e respiram indústria. Que é uma característica da Viasoft, trabalhar com produtos especialistas e não produtos genéricos.

De nossos vendedores até consultores, todos vivem e respiram indústria.

Alexandre Henzen

12:13 – A fusão com a Viasoft

WZ: Como aconteceu a fusão com a Viasoft?

AH: (A fusão da Viasoft) aconteceu através de um amigo em comum, meu e do Viola (Itamir Viola, CEO da Viasoft), que comentava que nós dois tínhamos uma visão muito parecida de negócios e nos aproximou. Marcamos reuniões, deu uma sinergia, fizemos uma fusão entre as empresas e começamos a alavancar a parte de vendas. Então a Korp, que era só eu (em 2001), hoje tem mais de 70 funcionários só nessa unidade

13:30 – Sobre a Viasoft

WL: A Viasoft, pelo que entendi tem vários sistemas, cada um para cada segmento e inclusive com nomes diferentes.

AH: Exatamente, (além da Viasoft Korp, para indústria), tem o Agrotitan que é para o agronégocio, a Forlog que é para logística, tem a Vision que é a parte de computação visual, Construshow para materiais de construção, Viasuper para supermercados, e outros negócios também. Mas sempre nessa ideia de ser especialista em cada segmento.

17:20 – A origem do TMS Aurelius

WL: Bom, fomos amigos e parceiros técnicos nesses anos todos, (nós da TMS) ajudamos muito vocês, vocês ajudaram muito a gente. Ajudamos vocês como você falou: a Korp tinha necessidades técnicas e desenvolvemos e melhoramos soluções pra dar flexibilidade ao ERP, acredito que vocês reduziram bastante o suporte. Mas uma coisa que eu nunca disse em público, vou falar pela primeira vez: se você (que está nos assistindo) usa, gosta do TMS Aurelius (o framework ORM da TMS pra Delphi), agradeça a essa pessoa com quem estou falando: ele não foi somente o primeiro cliente do TMS Aurelius, ele foi a força-motriz que levou o TMS Aurelius a ser desenvolvido. Estamos em 2021 e tem muita gente ainda que não sabe o porquê ou como usar um ORM em seus sistemas. O Alexandre em 2010, já tinha essa visão, de que um ORM iria ajudá-lo. Ele entrou em contato conosco e fizemos uma parceria para desenvolver o TMS Aurelius, pois as bibliotecas ORM existentes para Delphi não o atendiam completamente.

O Alexandre foi a força-motriz que levou o TMS Aurelius a ser desenvolvido.

Wagner Landgraf

20:43 – Escalabilidade e tecnologias

AH: Todas essas evoluções que buscamos, sempre foi pensando em escalabilidade. Sempre querendo expandir, melhorar código, o ERP sempre crescendo muito, muito complexo. Então todas essas tecnologias vieram para deixar o sistema flexível e escalável. O sistema é enorme. Hoje não usamos só Delphi.

WL: Sim, vamos falar das outras tecnologias usadas pela Viasoft Korp. O sistema começou como uma aplicação desktop cliente/servidor para Windows. Hoje é claro, você tem inúmeros serviços, sistemas web, mobile, integrações, microsserviços. Quais outras tecnologias também estão ajudando a Korp hoje?

AH: A parte do ERP que é web, por exemplo, optamos por utilizar C# no backend e Angular no frontend. E também utilizamos Golang em alguns microsserviços. Cada linguagem tem seu papel e sua função.

WL: E você também teve que se guiar pelas necessidades da empresa no momento. Alguém poderia perguntar, por exemplo: “por que não usou TMS Web Core (o produto da TMS para criar aplicações web com Delphi)?”. Simplesmente porque não existia o TMS Web Core. Quando ele surgiu, a Korp já estava com a parte Web do seu ERP a todo vapor em Angular.

AH: Exatamente. E também queríamos rodar em Linux, Docker, então foi uma série de fatores para tomarmos nossas decisões.

WL: Tem todas essas ferramentas também. Eu aprendo muito com a Korp quando vou lá. Não só programação, mas toda essa parte de devops. Estão sempre lidando com Kubernetes, Docker, Consul, Traefik…

AH: A própria parte de testes, foi um framework interno que desenvolvemos, chamado Flow, acho que isso foi uma grande revolução pra nós. Nele escrevemos os códigos de testes, os BDDs e ele sai rodando tudo. Hoje são cerca de doze máquinas virtuais em três servidores que rodam testes 24 horas por dia.

Utilizamos também C#, Angular, Golang. Cada linguagem tem seu papel e sua função.

Alexandre Henzen

23:44 – Testes e qualidade do sistema

WL: Pois é, você comentou das contribuições da TMS Software, como ORM (TMS Aurelius), multicamadas com REST (TMS XData), etc. Mas falando de testes, eu lembro como, muitos anos atrás, vocês (e todo mundo que eu conhecia na época), sofriam com testes e para manter a qualidade do sistema. Vocês tinham pessoas só pra fazer testes manuais, testes de interface, etc. Acredito que essas mudanças (técnicas) ajudaram muito nisso.

AH: Sim, ERP é um sistema muito complexo. Sem esses novos paradigmas de desenvolvimento isso não seria possível. Hoje temos servidores rodando testes 24 horas por dia, com integração contínua. Usamos o Jenkins, ele vai até o Bitbucket (repositório Git para controle de versão de código), pega as alterações de código, já roda todos os cenários de teste, tudo 100% automatizado.

WL: Então acredito que a TMS te ajudou um pouquinho né?

AH: Com certeza, toda a estrutura tecnológica que funciona em Delphi hoje é baseada no TMS Business.

Toda a estrutura tecnológica que funciona em Delphi hoje na Korp é baseada no TMS Business

Alexandre Henzen

27:40 – Perfil e tamanho dos clientes

WL: Você comentou que os serviços XData estão processando um grande número de requisições, fale um pouco mais do tamanho dos seus clientes.

AH: Há os tamanhos mais variados. As empresas variam de 20 a até 500 pessoas usando o sistema simultaneamente. E são empresas com alto volume de movimentação de logística e emissão de notas, são sistemas complexos e pesados. A quantidade de informação que trafega no sistema é gigantesca

28:50 – Sobre as versões recentes do Delphi

WL: E falando do Delphi. Vocês estavam no Berlin (10.1), como foi essa evolução?

AH: Estávamos no Delphi Berlin (10.1) e tentamos fazer a migração para novas versões. (O problema é que) a nossa aplicação funciona assim: ela não é um executável somente. Há o executável principal e cada módulo do sistema é um runtime package, uma BPL, (são módulos) que vão carregando dinamicamente conforme o usuário vai usando o sistema. Então é uma estrutura de packages gigantesca, e sempre sofremos um pouco com isso (runtime packages) em vários pontos: detectar memory leaks é mais complicado, recompilar pacotes por causa de dependências é complexo, etc. 

WL: Teve até um problema de atualização do Windows, não relacionado ao Delphi, que atrapalhou bastante vocês, não?

AH: Sim, teve uma atualização do Windows que simplesmente estragou tudo (Alexandre refere-se a este problema relatado no blog do Marco Cantu). Chegava a demorar mais de cinco minutos só pra inicializar a aplicação. Chegamos ao ponto de voltar a versão do Windows e bloquear as atualizações dos Windows em todas as máquinas da empresa. (…) Depois, nós migramos para o Delphi 10.4 Sydney, a primeira versão (10.4.0). No início ainda tivemos dificuldades com a ferramenta, o próprio LSP (Language Server Protocol, o novo sistema do Delphi para code completion) tinha alguns problemas. E agora com (a atualização para) a 10.4.2, para a qual atualizamos recentemente, teve o grande diferencial – está mais estável, a IDE está compilando mais rapidamente e o feedback que estou recebendo dos programadores é bem positivo.

Desde o XE2, a versão mais estável que eu vi, de todos os tempos, foi essa, Sydney 10.4.2.

Alexandre Henzen

31:39 – A atualização para o Delphi 10.4.2 Sydney

WL: Esse update do 10.4.2 em relação ao 10.4, então, está bem melhor?

AH: Sim, bem mais estável, nem se compara. Das versões pelas quais nós passamos ao longo desses anos, desde o XE2, a versão mais estável que eu vi, de todos os tempos, foi essa, 10.4.2

WL: Eu lembro que um problema grande que vocês tinham era o tempo de compilação. A compilação para rodar os testes, por exemplo, quanto tempo levava?

AH: Levava 58 minutos, quase uma hora. Caiu para cerca de 28 minutos somente com a atualização do Delphi. Depois fizemos mais umas mudanças nas configurações dos packages, e caiu para 12 a 14 minutos, dependendo da máquina. Essa parte de runtime packages ficou bem mais estável, foi uma diferença grande. 

A compilação levava 58 minutos, caiu para 12 minutos.

Alexandre Henzen

38:10 – Encerramento e contatos

WL: Alexandre, muito obrigado pela sua disponibilidade em nos dar essa entrevista.

AH: Obrigado, fico à disposição pra quem quiser fazer contato comigo, tem o meu (perfil no) LinkedIn, só procurar por Alexandre Henzen (acesse aqui) e vamos trocar ideias, sempre gosto de discutir tecnologias e novidades. 

Comente!

Gostou dessa entrevista? Quer compartilhar sua experiência também, com o Delphi, com a TMS Software, as dificuldades da sua empresa? Deixe seu comentário!

(*) Photo by krakenimages on Unsplash

Dois webinars em dois dias: o que está acontecendo no mundo Delphi!

Coisas incríveis estão acontecendo no mundo Delphi! Coisas incríveis irão acontecer no mundo Delphi! Nesta semana, dois diferentes e importantes webinars anunciarão novidades importantes no mundo Delphi!

GraphQL pra Delphi, BPM Workflow, e mais: o que vem para o Delphi em 2021:

TMS Software fará um webinar interativo, ao vivo e gratuito (em inglês) para mostrar os mais recentes produtos, recursos e tecnologias sendo desenvolvidas e que serão lançados em 2021, muitos deles serão lançados em algumas semanas ou meses. GraphQL pra Delphi, BPM Workflow, aplicações multitenant, autorização e autenticação, gerenciamento de usuários, e mais!

O webinar irá acontecer:

Terça, 23 de fevereiro, 2021, às 12:00 PM (meio-dia), horário de Brasília

Siga este link para mais informações e para se inscrever gratuitamente!

O que vem no Delphi, C++Builder, and RAD Studio 10.4.2 Sydney

Saiba o que virá na próxima versão 10.4.2 Sydney da sua ferramenta favorita de desenvolvimento: RAD Studio, Delphi, & C++Builder.

O webinar What’s Coming in Delphi, C++Builder, and RAD Studio 10.4.2 Sydney acontecerá em três horários diferentes para que você possa escolher qual é o mais adequado a você (horários no fuso GMT)

Qua, Fev 24, 2021 3:00 PM – 4:00 PM GMT
Qua, Fev 24, 2021 6:00 PM – 7:00 PM GMT
Qui, Fev 25, 2021 1:00 AM – 2:00 AM GMT

Inscreva-se gratuitamente para ambos webinars e conheça mais sobre as grandes novidades vindo para o mundo Delphi!

(Photo by Andrea Piacquadio from Pexels)

Um novo MVP Embarcadero chegou!

A Embarcadero tem mantido, já por um bom tempo, o programa MVP (“Profissional Mais Valioso”, traduzindo livremente) que, de acordo com o site oficial, “escolhe os “melhores dos melhores” membros da comunidade Embarcadero como profissionais que nossos clientes e potenciais clientes podem confiar”.

Em outras palavras, os MVPs Embarcadero são profissionais que são considerados como tecnicamente especializados em Delphi (e outros produtos Embarcadero) e que ajudam na sua divulgação, escrevendo artigos, palestrando em conferências, webinars, etc.

Pois bem, tenho a honra de dizer que fui recentemente considerado um MVP Embarcadero e me juntei ao time – o diretório de MVPs agora inclui Wagner Landgraf como um MVP. Também fui gentilmente mencionado pelo Darian Miller em seu post onde ele menciona que também se tornou um MVP Embarcadero (seu post tem informações detalhadas e interessantes sobre o programa MVP).

Bom, apenas queria compartilhar com você esta grande notícia. Espero que a comunidade Delphi continue crescendo e se fortalecendo, e vou continuar fazendo minha parte para que isso aconteça. Obrigado pelo seu apoio e sinta-se à vontade para fazer seu comentário abaixo!

* Foto de Laula Co no Unsplash

Conteúdo de qualidade e prêmios gratuitos na DelphiCon 2020

Neste ano tão estranho, a Embarcadero está trazendo a DelphiCon 2020 Worldwide: uma conferência oficial online sobre Delphi! É um evento de 3 dias, online e gratuito, que irá ocorrer entre os dias 17 e 19 de novembro com excelente conteúdo e palestrantes renomados.

Nós da Landgraf.dev estamos felizes em oferecer a todos os participantes da DelphiCon 2020 um desconto de 30% nos nossos cursos Introduction to TMS Web Core e TMS Business Masterclass. Ainda, ofereceremos também 3 (três) inscrições gratuitas para o nosso curso Introduction to TMS Web Core, para três pessoas que serão sorteadas durante o evento.

Participe de palestras ministradas por um time estelar que inclui Marco Cantu, David Millington, Bruno Fierens, Dr. Holger Flick, Bob Swart, Andrea Magni, Nick Hodges, Stefan Glienke, Primož Gabrijelcic, Ray Konopka, Chad Hower, Cary Jensen, Alister Christie e Daniele Teti.

Não perca essa oportunidade e reserve gratuitamente sua vaga no site oficial da DelphiCon 2020!

Detectando vazamentos de memória no Delphi: uma lista definitiva das ferramentas

Detectar vazamentos de memória é uma tarefa muito importante no desenvolvimento em Delphi. Já escrevi sobre isso antes, reforçando que em aplicações servidores como aquelas construídas com o TMS XData, isso é ainda mais importante.

Com a proximidade do lançamento do Delphi 10.4, isso será ainda mais relevante. Um gerenciamento de memória unificado no Delphi vem sendo prometido desde o ano passado e ao que parece, virá nessa nova versão.

Como tudo na vida, essa mudança não é 100% boa ou ruim, há vantagens e desvantagens, mas uma coisa é clara: a forma como a memória é gerenciada será a mesma em todas as plataformas, portanto as formas de detectar vazamentos de memória nas diferentes plataformas serão similares. Pessoalmente eu acho que isso é uma coisa boa. Também é importante notar que isso não significa que teremos mais vazamentos nas aplicações mobile. O mecanismo ARC “antigo” (ainda vigente enquanto escrevo este artigo) também apresenta problemas de vazamentos e, na minha opinião, mais difíceis de detectar, como por exemplo quando lidamos com referências cíclicas.

Mas essa introdução já está longa demais: o humilde propósito deste artigo é ser uma lista atualizada e definitiva de todas as ferramentas que você pode usar para detectar vazamentos de memória no Delphi. O fato de que a forma de gerenciamento da memória será unificado apenas significa que essas ferramentas estão mais relevantes do que nunca: detectar e corrigir vazamentos de memória no Windows irá ajudá-lo ainda mais para que suas aplicações não-Windows não vazem memória também.

Então, vamos à lista!

FastMM (Grátis)

FastMM (ou sendo mais específico, FastMM4) é a ferramenta padrão de-facto para detectar vazamentos de memória no Delphi. O motivo é simples: é o gerenciador de memória default do Delphi, portanto já está incluído e pronto pra usar.

Já que é o FastMM mesmo que aloca e libera a memória da sua aplicação, quem poderia reportar melhor os blocos de memória que não foram liberados? Tudo que você precisa pra começar a usá-lo é adicionar uma única linha de código ao seu projeto:

ReportMemoryLeaksOnShutdown := True;

E voilà, sua aplicação irá mostrar todos os vazamentos de memória quando ela terminar. Se houver vazamentos, uma janela será apresentada listando todos os vazamentos detectados.

Todos os desenvolvedores Delphi deveriam adicionar essa linha nas duas aplicações. Sério. Eu nem sei por que isso não é feito por padrão pelo Delphi, pelo menos tendo a linha envolvida pela diretiva {$IFDEF DEBUG}. Talvez por razões históricas.

Bom, se já está disponível e funciona, por que não terminamos este artigo por aqui e pronto? É que tem alguns detalhes.

O Delphi inclui uma versão reduzida do FastMM4. Ele não possui todos os recursos avançados de depuração e detecção que você precisaria (pra saber, por exemplo, qual linha de código foi alocada a memória que vazou). Pra isso, você tem que usar a versão completa do FastMM4, disponível no repositório público do FASTMM4 no GitHub.

Você também tem que usar uma DLL externa para usar os recursos avançados; não é multiplataforma: só funciona oficialmente no Windows (parece que há uma versão macOS disponível no repositório principal, mas nunca testei). E apesar de ter muitos recursos avançados, pra usá-los você tem que configurar manualmente o arquivo .INC, o que pode não ser muito confortável para alguns usuários.

De qualquer forma, é uma boa ferramenta, a ferramenta “padrão” do Delphi pra detecção de vazamentos de memória. (Nota: o FASTMM5 acabou de ser lançado. Não testamos ele ainda, mas parece que melhorou muito a performance para aplicações multithread, estamos ansiosos para testá-lo com o TMS XData.)

Vantagens

  • Grátis;
  • Código-fonte completo;
  • Incluído no Delphi;
  • Fácil pra começar a usar;
  • Vários recursos avançados.

Desvantagens

  • Somente para Windows;
  • Requer DLL externa para os recursos avançados;
  • Não é amigável pra usar os recursos avançados (não há uma interface-visual);
  • Somente reporta vazamentos de blocos de memória alocados pelo FastMM.

LeakCheck (Grátis)

Delphi LeakCheck é outra excelente opção para detecção de vazamentos de memória. Também é grátis, open source e tem algumas vantagens em relação ao FastMM: é multiplataforma, o que significa que você pode detectar vazamentos diretamente em suas aplicações mobile ou Linux; e integra muito bem com frameworks de teste unitário (mais precisamente DUnit and DUnitX).

A forma de usar também é semelhante à do FastMM: adicione a unit LeakCheck como a primeira unit da cláusula uses do seu dpr, e ele irá se plugar e estará pronto pra uso. Configurar pra uso em teste unitário é um pouco mais complicado, mas isso é esperado e faz parte.

Uma pequena desvantagem é que você estará praticamente por sua conta e risco: o projeto não vem tendo atualizações já há algum tempo (o que não é necessariamente um problema já que ele funciona bem). Mas provavelmente significa que você não conseguirá ajuda diretamente do autor (nunca tentei, pra ser justo). Também não há muita informação sobre ele na internet, encontrei apenas um único artigo que explica como usá-lo, além da descrição no repositório oficial dele no Bitbucket.

Vantagens

  • Grátis;
  • Código-fonte completo;
  • Multiplataforma;
  • Integra bem com bibliotecas de teste unitário (DUnit and DUnitX).

Desvantagens

  • Não há muita informação disponível sobre como usá-lo;
  • Não há atualizações recentes nem suporte oficial;

Deleaker (Comercial)

Delaker é a única ferramenta comercial desta lista que é dedicada exclusivamente a detecção de vazamentos de memória. Isso reflete no produto, que fornece diversas excelentes ferramentas pra isso.

Diferentemente das duas ferramentas anteriores, e similar às seguintes, o Deleaker oferece uma interface visual amigável pra você configurar o ambiente e ver os resultados, que pode ser usada tanto integrada à IDE do Delphi como separadamente. Ele também detecta muitos mais tipos de vazamento de memória: vazamentos de GDI, vazamentos de objetos e handles Windows, em DLLs de terceiros, etc. Justamente por causa disso, ele também oferece opções pra você facilmente ignorar vários tipos de vazamentos – se não fosse isso você iria ter um zilhão de notificações de vazamentos mesmo em aplicações simples.

Outro recurso interessante é a possibilidade de fazer snapshots da memória alocada. Isso permite detectar vazamentos não somente da aplicação como um todo mas em trechos específicos dela.

Vantagens

  • GUI amigável que pode ser usada integrada à IDE do Delphi ou separadamente;
  • Detecta todos os tipos de vazamento de memória;
  • Linha de comando para integração CI;
  • Snapshots do uso da memória;
  • Suporte oficial.

Desvantagens

  • License paga ($99 para Home License, $399 para Single Developer License);
  • Somente Windows;

EurekaLog (Comercial)

EurekaLog é uma ferramenta que já está no mercado há décadas. Não achei nenhuma informação no website a respeito de quando a primeira versão foi lançada, mas a informação mais antiga é do EurekaLog 4.0 que foi lançado em 2002, simplesmente há 18 anos.

Não é uma ferramenta dedicada exclusivamente à detecção de vazamentos de memória. Em vez disso, oferece uma vasta gama de recursos. O objetivo do EurekaLog é detectar vários problemas na sua aplicação – exceções, vazamentos, etc. – do lado do cliente, reportando eles pra você.

Portanto, é uma excelente ferramenta pra melhorar a qualidade do seu software e oferecer um bom suporte aos seus clientes, já que você irá obter informações de vazamentos e erros de todos os seus clientes, em diferentes ambientes, fazendo diferentes operações no seu sistema.

Vantagens

  • Detecta tanto vazamentos de memória como vazamentos de resources;
  • Vazamentos e erros detectados durante o uso pelo cliente são enviados automaticamente a você;
  • Vários outros recursos: relatório de bugs, integração com sistemas de controle de bugs, entre outros;
  • Suporte oficial.

Desvantagens

  • Licença paga ($149 para Professional License, $249 para Enterprise License);
  • Somente Windows;
  • Não oferece recursos muito avançados para detecção de vazamentos de memória especificamente.

madExcept (Comercial)

Costumo dizer que o MadExcept é “primo” do EurekaLog. Ambos estão disponíveis há um tempo parecido (cerca de 20 anos ou mais). Compartilham recursos similares. Têm mais ou menos o mesmo propósito. E assim por diante.

E curiosamente, não há um “vencedor”. Se você procurar na web por comparações entre os dois, vai encontrar várias e não vai chegar a uma conclusão sobre qual é o melhor. Usuários de ambos os produtos estão geralmente satisfeitos e geralmente não podem comentar sobre o concorrente porque nunca usaram. É o meu caso, inclusive. Sou um satisfeito cliente do EurekaLog (apesar de não usá-lo pra detectar vazamentos de memória) e nunca usei o madExcept. Mas poderia simplesmente ser o contrário. Acredito que estaria bem servido com o madExcept também.

Assim, considerei as vantagens e desvantagens do madExcept iguais às do EurekaLog. Talvez a única diferença visível é que enquanto o madExcept é mais barato (existe inclusive uma versão grátis para uso não-comercial), o EurekaLog vem sendo mantido e atualizado com muito mais freqüência.

Vantagens

  • Grátis para uso não-comercial;
  • Detecta tanto vazamentos de memória como vazamentos de resources;
  • Vazamentos e erros detectados durante o uso pelo cliente são enviados automaticamente a você;
  • Vários outros recursos: relatório de bugs, integração com sistemas de controle de bugs, entre outros;
  • Suporte oficial.

Desvantagens

  • Licença paga (€149 para licença com código-fonte completo);
  • Somente Windows;
  • Não oferece recursos muito avançados para detecção de vazamentos de memória especificamente.

AQTime Pro (Comercial)

AQTime é um utilitário top de linha pra auxiliá-lo a melhorar o seu código. É realmente alto padrão, oferecendo não somente recursos avançados pra detecção de vazamentos de memória, (com uma interface visual amigável, monitoramento da memória alocada, snapshots, vazamentos de resources, entre outros), mas também recursos de análise de performance, code coverage, análise de código, entre outros.

É uma ferramenta realmente fantástica, mas tem seus defeitos: é extremamente cara, e está de certa forma em “modo manutenção” – recebe em média uma atualização ou menos por ano, e as novidades são basicamente “suporte à nova versão do Delphi”. Um par de bugs são corrigidos e praticamente não há novos recursos. Ainda assim, não há ferramenta equivalente no mundo Delphi quando se trata de facilidade de uso e recursos poderosos.

Vantagens

  • Detecta vazamentos de memória, resources, GDIs, entre outros;
  • Monitor de alocação de memória em tempo real;
  • Snapshots;
  • Várias outras ferramentas no pacote (performance profiler, code coverage, etc.).

Desvantagens

  • Licença cara ($719 para um node-locked license, $2279 para um node-floating license);
  • Somente Windows.

Nexus Quality Suite (Comercial)

Da mesma forma que acontece entre o EurekaLog e o madExcept, acredito que o Nexus Quality Suite é bem parecido com o AQTime. Ambas as ferramentas fornecem diversas ferramentas para melhorar a qualidade do seu software.

O Nexus Quality Suite oferece detecção de vazamentos de memória e resources, mas também profilers de performance, code coverage e até uma ferramenta de teste de interface visual automatizado.

Eu não testei a ferramenta de detecção de vazamento de memória, então as vantagens e desvantagens serão baseadas apenas no que li do site:

Vantagens

  • Detecta vazamentos de memória e resources;
  • Suporte oficial, fóruns de suporte ativos;
  • Várias outras ferramentas no pacote.

Desvantagens

  • Licença paga (AUD 490, cerca de $300);
  • Somente Windows.

DDDebug (Comercial)

Do site deles: DDDebug é uma coleção de ferramentas de depuração que contém vários módulos: um profiler de memória, um visualizador de threads, um visualizador de módulos, e um tratador de exceções melhorado.

Um aspecto interessante que notei é que abordagem do DDDebug é um pouco diferente: ele fornece as estatísticas de uso da memória imediatamente, de dentro da aplicação. Eu não cheguei a testar mas parece facilitar bastante a detecção de bugs, permitindo que você interaja na aplicação ao mesmo tempo que a analisa.

Também funciona com packages o que é uma vantagem, fornece outras funções além de detecção de vazamentos de memória e, apesar de ser uma ferramenta paga, o preço é bem acessível.

Vantagens

  • Fornece os resultados através de uma interface visual de dentro da sua própria aplicação;
  • Suporta packages;
  • Suporte oficial;
  • Preço acessível (a partir de €59).

Desvantagens

  • Somente Windows.

Spider (Grátis)

O website do Spider lista vários recursos interessantes: análise de exceções, análise de uso da memória em tempo real, vazamentos de memória, análise do call stack, etc.

O problema é que, desta lista, é uma ferramenta que testei uma única vez, e fiquei meio confuso com a interface visual e os resultados obtidos. Eu não consegui usar, mas talvez seja minha culpa. Então está listada aqui, mas não posso dar um parecer justo sobre a ferramenta.

Vantagens

  • Grátis;
  • Código-fonte disponível;

Desvantagens

  • Operação confusa (minha opinião);

Ferramentas não-Delphi

Além das ferramentas acima que são específicas para o Delphi, ou pelo menos também cobrem aplicações Delphi explicitamente – seja integrando ao código-fonte, ou à IDE, etc. – também há ferramentas de uso geral para detecção de vazamentos de memória que podem ser úteis em algumas situações.

Valgrind (Grátis)

O Valgrind é uma ferramenta que possui vários módulos. Um deles é o memcheck, que irá ajudá-lo a detectar vazamentos de memória na sua aplicação.

Eu uso o Valgrind pra detectar vazamentos de memória em aplicações Linux, e na verdade é muito simples de usar: apenas execute o utilitário valgrind e passe via parâmetro de linha de comando o caminho da aplicação que você quer testar. O Valgrind irá executar a aplicação e ao final dela irá fornecer um relatório detalhado incluindo os vazamentos de memória. Claro que há várias opções na linha de comando que permitem a você salvar os resultados em arquivo, escolher o tamanho do call stack reportado, o detalhamento das detecções, etc.

Instruments (Grátis)

Apple Instruments é uma ferramenta poderosa e flexível para análise de performance e teste de aplicações, fazendo parte do conjunto de ferramentas do Xcode. Entre outras coisas, pode ser usado para detectar vazamentos de memória em aplicações iOS e macOS. O Adrian Gallero escreveu um excelente artigo no blog da TMS Software sobre como usar o Instruments para detectar vazamentos de memória no iOS. O post já é um pouco antigo, mas acredito que ainda seja válido.

Conclusão

Não há um vencedor. Cada ferramenta tem suas vantagens e desvantagens e é interessante notar que uma não exclui a outra. Na verdade eu uso diversas delas, em diferentes situações e necessidades.

Eu uso o FastMM para detecções de vazamentos de memória no “dia-a-dia”. O LeakCheck em testes unitários. O Deleaker quando quero verificar outros tipos de vazamentos e usar snapshots. O EurekaLog para relatório de bugs das minhas aplicações usadas pelos usuários finals. O AQTime para análise de performance e o Valgrind para detectar vazamentos no Linux. Como você pode ver, todas tem sua utilidade!

O mais importante é: não deixe sua aplicação vazar memória! Se você está apenas começando neste assunto, tudo que você tem que fazer é:

ReportMemoryLeaksOnShutdown := True;

Adicionar a linha acima ao seu projeto e começar a detectar vazamentos de memória!

(Você conhece alguma outra ferramenta que deveria estar na lista? Você tem uma opinião diferente sobre alguma das ferramentas listadas? Deixe seu comentário e compartilhe seu conhecimento para fazer dessa lista a lista definitiva sobre o assunto. Ela será atualizada frequentemente à medida que soubermos de mais informações).

Uma discussão interessante sobre replicação de dados com TMS Echo

Esta é mais uma das muitas discussões interessantes que tivemos no TMS Business Masterclass em Düsseldorf. Uma delas foi a curiosa discussão sobre field de class ter o nome prefixado com “F” maiúsculo ou não.

Esta é um pouco mais técnica, mas não menos interessante. O assunto era sobre replicação de dados usando o TMS Echo, e a discussão era sobre como as alterações eram enviadas (movidas) e um ponto (nó) a outro.

A questão levantada foi sobre o “servidor” ou “controller” que estaria orquestrando toda essa “movimentação” dos dados alterados. Respondi que não existe um “servidor” (no sentido de que não é um orquestrador central, o sistema é distribuído e pode operar de forma independente de outros nós), somente para me contradizer minutos depois dizendo que é necessário um “servidor” (mas consegui – espero – explicar a contradição).

Uma discussão divertida e interessante, espero que goste e, depois de assistir o vídeo, deixou a questão pra você: há um servidor, ou não? Deixe seu comentário!

A propósito, o conteúdo completo do evento está disponível aqui: TMS Business Masterclass Online.

TMS Business Masterclass disponível online

No mês de novembro de 2019, aconteceu o TMS Training Days 2019 em Düsseldorf, Alemanha e em Wevelgem, Bélgica. Foi o maior evento da TMS Software da história, três dias inteiros em duas cidades diferentes, com o time da TMS vindo de nove países diferentes do planeta.

Foi um evento presencial e mesmo antes do evento começar, pessoas de várias partes do mundo entraram em contato conosco perguntando se poderiam assistir o evento online, já que para eles seria difícil viajar para estar fisicamente presente no evento.

Então, também pela primeira vez, partes de um evento TMS agora estão disponíveis em vídeo, online. Você terá a oportunidade de assistir ambos os eventos TMS Business Masterclass na íntegra – o de Düsseldorf, e o de Wevelgem.

E cuidamos para prover o material com a maior qualidade possível:

  • O audio do instrutor está excelente e as gravações de tela estão disponíveis, é claro.
  • As imagens de uma segunda câmera usada para gravar o instrutor também estão disponíveis, dando uma sensação maior de imersão no evento.
  • Perguntas dos participantes não estavam muito audíveis, mas tivemos todo o trabalho de legendar a maioria das perguntas de modo que você possa entender e acompanhar tudo que está sendo discutido!
  • A gravação completa foi totalmente revisada e quebrada em vários pequenos vídeos, de modo que você não precisa ficar assistindo um vídeo gigante de 8 horas sem nenhum contexto. Assim você terá todo o conteúdo quebrado em pequenas “aulas” com o assunto discutido em cada uma delas. Algumas chegam a ter um ou dois minutos apenas. Desse modo você pode realmente focar no conteúdo desejado e encontrar o conteúdo de forma mais eficiente!

Use os links abaixo para obter mais informações sobre o curso, imagens do evento, visualizar a ementa completa, assistir algumas aulas gratuitas e, é claro, se inscrever no curso!

TMS Business Masterclass em Düsseldorf ($49)

TMS Business Masterclass em Wevelgem ($49)

TMS Business Masterclass Bundle ($79)

A inscrição é apenas $79 (dólares) para ambos os cursos, ou apenas $49 (dólares) para um curso. É importante salientar que todo o curso é em inglês.

Pra terminar este artigo, deixo aqui uma das minhas partes preferidas. Por acaso, quando você cria fields nas classes do Delphi, você prefixa o nome com “F” (maiúsculo)? Parece que isso não é unanimidade… 😉

O maior evento TMS da história

Prepare-se! Em novembro de 2019 acontece o maior evento TMS da história: TMS TRAINING DAYS 2019. Membros da equipe TMS de nove países diferentes falarão sobre desenvolvimento Delphi, bibliotecas e componentes TMS, em palestras que variam do nível básico até o avançado.

Training Days em Dusseldorf (Alemanha)

Nos dias 14 e 15 de novembro acontecem dois dias de treinamento em Dusseldorf, na Alemanha. O evento acontecerá no Lindner Hotel Airport.

Veja abaixo a programação completa para os dois dias.

TMS Business Masterclass
14 de Novembro – Dusseldorf, Alemanha

Bruno Fierens

9h00: Boas-vindas e Introdução (Bruno Fierens)
Boas-vindas a todos os participantes e introdução à programação.


Wagner Landgraf

9h15: Sessão 1 – O Mundo TMS Business (Wagner R. Landgraf) 
Uma jornada pelo mundo do pacote TMS Busines. Iremos aprender sobre as soluções incluídas no TMS Business: os componentes incluídos, as bibliotecas, os casos de uso, o contexto histórico de cada um deles e as motivações para seu desenvolvimento. Produtos analisados: TMS Scripter, TMS Diagram Studio, TMS Workflow Studio, TMS Data Modeler, TMS Aurelius, TMS Sparkle, TMS RemoteDB, TMS XData, TMS Echo, TMS Logging. 
*Nível BIZ: Iniciante


10h00: Coffee break


10h30: Sobre o livro TMS Aurelius (John Kouraklis)
O autor de livros técnicos John Kouraklis fala sobre seu mais recente livro dedicado ao TMS Aurelius e as experiências relacionadas a escrevê-lo.


Wagner Landgraf

11h00: Sessão 2 – Curtindo os Bancos de Dados (Wagner R. Landgraf) 
Uma conversa sobre novas formas de lidar com bancos de dados: O que é uma framework ORM? O que você pode usar para modelar seus bancos de dados. Produtos analisados: TMS Aurelius, TMS Data Modeler.
*Nível BIZ: Intermediário


Wagner Landgraf

12h00: Sessão 3 – Sua App em Todo Lugar: REST API (Wagner R. Landgraf) 
Multicamadas, nuvem, REST, HTTP, SSL: O que, por que, quando e, principalmente, como? Aprenda o que significa um servidor REST, por que você irá se beneficiar em migrar sua aplicação para a nuvem e como fazê-lo de forma RAD. Produtos analisados: TMS XData, TMS Sparkle.
*Nível BIZ: Intermediário


13h00: Almoço


Wagner Landgraf

14h00: Sessão 4 – Os Heróis Anônimos (Wagner R. Landgraf) 
Uma análise mais profunda de três produtos TMS Business que trazem soluções para problemas que você nunca pensou que tinha. Aplicações customizadas pelo usuário, alteração de regras de negócio em runtime, sincronização de dados offline, e migração de sua aplicação para a nuvem em poucos dias. Produtos analisados: TMS Scripter, TMS Echo, TMS RemoteDB.
*Nível BIZ: Iniciante


Wagner Landgraf

15h00: Sessão 5 – Falando Sério sobre a Nuvem (Wagner R. Landgraf) 
Técnicas e conceitos avançados sobre construir servidores REST API: Segurança, processamento em background e análise de códigos do mundo real. Produtos analisados: TMS XData, TMS Sparkle.
*BIZ level: Advanced 


16h00: Coffee break


Wagner Landgraf

16h30: Session 6: Todos Juntos (Wagner R. Landgraf) 
Uma sessão bastante interativa onde serão apresentadas todas as ideias da equipe TMS para o futuro do TMS Business. Iremos discutir o roadmap, faremos um brainstorm sobre as possibilidades e teremos uma sessão de perguntas e respostas.


17h30: Encerramento


TMS DEV Intensive
15 de Novembro – Dusseldorf, Alemanha

Bruno Fierens

9h00: Boas-vindas e Introdução (Bruno Fierens)
Boas-vindas a todos os participantes e introdução à programação.


Bruno Fierens

9h15: TMS VCL UI Pack: Novidades (Bruno Fierens)
O que é de novo e porvir em controles VCL: high-DPI, VCL styles, Office styles, images.


Marion Candau

10h15: Usando o TMS Cryptography Pack para assinar arquivos PDF (Marion Candau)
Marion irá mostrar como assinar documentos PDF usando um token USB com o TMS Cryptography Pack. Serão explicados os mecanismos de criptografia e uma assinatura eletrônica, e o processo de assinatura.


10h45: Coffee break


Adrian Gallero

11h15: TMS Flexcel 7.0: Usando as novas features (Adrian Gallero)
Adrian irá mostrar como criar aplicações para exportar dados para Excel e PDF, usando as últimas novidades introduzidas no Flexcel 7. Também serão mostradas os futuros planos para o Flexcel.


12h15: Almoço


José León Serna

13h15: Novos novos produtos de impacto para o mundo Delphi (José León Serna / Bruno Fierens)
Há mais de um ano, Bruno Fierens, CEO da tmssoftware.com entrou em contato com José Leon Serna para discutir futuras oportunidades para desenvolvedores Delphi. Desde então, uma intensa colaboração começou e nessa sessão os frutos dessa parceria serão mostrados.


Roman Yankovsky

14h15: Usando TMS FixInsight para deixar seu código mais robusto (Roman Yankovsky)
Roman mostrará como usar a análise de código do FixInsight no Delphi para encontrar bugs no seu código, antes que seus clientes façam isso!


15h15: Coffee break


Roman Kassebaum

15h45: TMS WEB Core v1.3 para web, aplicações multiplataforma com Electron e PWA (Bruno Fierens / Roman Kassebaum)
Junto com Bruno Fierens, Roman Kassebaum, arquiteto da integração do TMS WEB Core com a IDE do Delphi, irá mostrar os novos recursos e possibilidades do TMS WEB Core versão 1.3.


Holger Flick

16h45: Misturando tudo: Usando TMS XData backend e TMS WEB Core + TMS FNC UI como front-end (Holger Flick)
Muitas frameworks, muitas plataformas: TMS tem todas as ferramentas. Você já leu sobre isso, mas como usar todas essas tecnologias juntas? Em resumo, você verá um exemplo prático usando TMS XData, TMS RemoteDB, TMS Web Core, VCL, and FNC.


17h45: Perguntas e Respostas e Encerramento. 


Training Day em Wevelgem (Bélgica)

No dia 18 de novembro, haverá um segundo TMS Business Masterclass em Wevelgem, Bélgica. O evento acontecerá na sede da TMS Software. É também uma oportunidade para conhecer a equipe da TMS!

As palestras serão similares à do TMS Business Masterclass em Dusseldorf no dia 14 de Novembro, portanto segue a agenda simplificada. Todas as palestras serão apresentadas por Wagner Landgraf e Bruno Fierens.

TMS Business Masterclass
18 de Novembro – Wevelgem, Bélgica

Palestrantes:

Bruno Fierens
Wagner Landgraf

9h00: Boas-vindas e Introdução (Bruno Fierens)


9h15: Sessão 1 – O Mundo TMS Business (Wagner R. Landgraf) 


10h00: Coffee break


10h30: Sessão 2 – Curtindo os Bancos de Dados (Wagner R. Landgraf)  


11h30: Sessão 3 – Sua App em Todo Lugar: REST API (Wagner R. Landgraf) 


12h30: Almoço


13h30: Sessão 4 – Os Heróis Anônimos (Wagner R. Landgraf) 


14h30: Sessão 5 – Falando Sério sobre a Nuvem (Wagner R. Landgraf) 


15h30: Coffee break


16h00: Session 6: Todos Juntos (Wagner R. Landgraf) 


17h00: Encerramento


PALESTRANTES

Adrian Gallero (Uruguay)

Adrian Gallero é um engenheiro elétrico que trabalha com Delphi desde o Turbo pascal 4. Ele trabalhou no cálculo da distribuição de linhas de energia para empresas elétricas em Montevidéu e no Rio de Janeiro. Viveu por mais de 3 anos em Madri, trabalhando no desenvolvimento de um sistema de gerenciamento de telecomunicações, e mais de um ano em Sydney desenvolvendo soluções personalizadas para uma empresa de expedição de carga.

Ele trabalha com planilhas há mais tempo do que se lembra e, em 1996, desenvolveu um pequeno componente que permitia que seus aplicativos Delphi 1 exportassem os resultados para uma planilha (para sua surpresa, ele aprendeu há um ano que a empresa elétrica ainda está usando esses aplicativos até hoje sem modificações). Esse componente cresceu ao longo dos anos: foi renomeado para FlexCel em 2001 e ingressou na família TMS em 2002. Atualmente, o FlexCel existe nas versões Delphi e .NET e contém mais de um milhão de linhas de código.


Bruno Fierens (Bélgica)

  • Estudou engenharia eletrônica na universidade de Ghent, Bélgica (1987-1992).
  • Iniciou uma carreira como engenheiro de hardware digital de P&D na Barco Graphics Belgium, projetando com FPGA, VHDL, processadores gráficos, PCI, placas complementares Silicon Graphics, controladores de impressoras de ponta, …
  • Começou a escrever software no Turbo Pascal 3.0 desde 1987 e usou todas as versões do Borland Pascal e Delphi desde então.
  • Fundou a TMS Software em 1996, desenvolvendo componentes VCL começando com Delphi 1.
  • A TMS Software se tornou o Borland Technology Partner em 1998 e desenvolveu os componentes de grid premiados pela Delphi Informant.
  • A partir de 2011, os surgiram os componentes multiplataforma FireMonkey, para Windows, macOS, Android e iOS.
  • Em 2016, a TMS Software lançou o FNC, uma arquitetura de componentes que permite usar controles visuais em aplicativos VCL, FMX e LCL.
  • Em 2018, a TMS Software lançou o TMS WEB Core, uma framework para criar aplicações Web usando o ObjectPascal.
  • Atualmente gerencia a equipe de desenvolvimento de VCL, FMX, Web, .NET, IoT, LCL, REST, node.js.
  • É palestrante frequente em conferências (Be-Delphi, DelphiTage, ITDevCon, CodeWay Tour, EKON, DevTracks, SDN, ..).
  • Disponível para consultoria e desenvolvimento de projetos personalizados.
  • Bruno Fierens foi nomeado Embarcadero MVP em 2012.
  • Área de interesse especial são design de interfaces de usuário, UX, desenvolvimento de software RAD, hardware / eletrônicos.

Holger Flick (Estados Unidos)

Desde 1996, o Dr. Holger Flick usa o Delphi como sua principal plataforma de desenvolvimento e tem sido um membro ativo da comunidade. Ele estudou ciência da computação na Universidade de Dortmund e depois escreveu sua dissertação na Universidade Ruhr, em Bochum, no campo da telemedicina. Por sua paixão e conhecimento de Delphi, ele foi nomeado “Delphi MVP” em 2016.

Em 2019, Holger mudou-se para os Estados Unidos da América (EUA) e fundou sua nova empresa FlixEngineering LLC. A empresa se concentra em consultoria, treinamento e desenvolvimento de software usando linguagens de programação orientada a objetos como Delphi, C #, Swift e Objective-C. Holger faz parte da família TMS Software, fornecendo sua experiência como evangelista e engenheiro de controle de qualidade.


John Kouraklis (Reino Unido)

John Kouraklis começou a usar computadores aos 16 anos e desde então vem usando Pascal, desde o Turbo Pascal até as últimas versões do Delphi, inicialmente como hobby depois como uma profissão durante a maior parte de sua vida adulta. Ele desenvolveu uma ampla gama de aplicações, de software financeiro a ferramentas de engenharia reversa. Nos últimos anos, ele ensina administração e programação em cursos de graduação e pós-graduação. Ele é o autor do MVVM em Delphi (Apress, 2016) e Introdução ao Delphi ORM – ORM com TMS Aurelius (julho de 2019).


José León Serna (Espanha)

Criador do Delphi para PHP / HTML5 Builder e ex-diretor de engenharia e gerente de filial da Embarcadero Technologies entre 2010 e 2016. Embora a filial da Embarcadero tenha participado do desenvolvimento de vários produtos, ele foi o principal responsável pelo RAD Studio e, mais especificamente, pelo IDE . Ele participou ativamente da concepção e implementação de uma infinidade de novos recursos, especialmente focados no desenvolvimento de vários dispositivos. Ele esteve envolvido no desenvolvimento de IDE na maior parte de sua carreira e é a área em que ele mais gosta.


Marion Candau (França)

  • PhD em criptografia
  • Desenvolvedora da Cyberens, uma empresa francesa de segurança cibernética localizada em Bordeaux.
  • Arquiteta do TMS Cryptography Pack.
  • Embarcadero MVP.
  • Ela desenvolve principalmente aplicativos relacionados à segurança cibernética e aconselha os clientes a usar ferramentas e bibliotecas criptográficas em seus próprios aplicativos.

Roman Kassebaum (Alemanha)

Roman Kassebaum é freelancer. Ele começou a trabalhar com o Delphi em 1996, depois de se formar em mestrado pela Universidade de Paderborn. Ele é um MVP do Delphi e um parceiro tecnológico da Embarcadero. Nos últimos anos, se tornou membro da grande equipe da TMS e também é um parceiro de consultoria certificado pela TMS. Roman é especialista em todos os tipos de projetos Delphi, incluindo componentes de negócios TMS e a avançada biblioteca TMS WEB Core para a qual ele criou a integração do Delphi IDE.


Roman Yankovsky (Rússia)

Roman Yankovsky é um Embarcadero MVP que trabalha com a Delphi desde o Delphi 2. Ele ingressou na equipe TMS em 2016. É gerente de produtos e arquiteto da ferramenta de análise estática FixInsight para Delphi.

Roman Yankovsky também é o autor do Delphi AST, uma framework open source para análise sintática para linguagem Delphi, que pode ser encontrada aqui: https://github.com/RomanYankovsky/DelphiAST. Essa excelente biblioteca é usada na extensão para Visual Studio OmniPascal.


Wagner Landgraf (Brasil)

  • Formado em Engenharia Eletrônica e Mestre em TI Industrial pela Universidade Tecnológica Federal do Paraná.
  • Mais de 24 anos de experiência (desde 1995) no desenvolvimento Delphi – desde Delphi 1.
  • Arquiteto e desenvolvedor principal de bibliotecas Delphi como TMS Aurelius, TMS XData, TMS RemoteDB, TMS Scripter, entre outros.
  • Gerente de produtos da TMS Software há mais de 20 anos.
  • Fundador do site landgraf.dev e da Nuvem Fiscal.

Bônus Especiais

Há também bônus especiais para os participantes do TMS Training Days!

Livro: Introducing Delphi ORM

Todos os participantes do TMS Business Masterclass em Dusseldorf (14 de novembro) receberão uma cópia gratuita do livro “Introducing Delphi ORM: Mapeamento Objeto-Relacional usando o TMS Aurelius”, escrito por John Kouraklis. Wagner Landgraf, autor do TMS Aurelius, foi um revisor técnico do livro.


Curso “Introdução ao TMS Web Core”: 50% de desconto

Todos os participantes do TMS Training Days receberão um cupom de 50% de desconto coupon para o curso online “Introduction to TMS Web Core”, da landgraf.dev. O instrutor Wagner Landgraf ensinará os conceitos desde o início: o que é um aplicativo da Web, como funciona, o que é o SPA (aplicativo de página única) e o MPA (aplicativo de página múltipla), o que é HTML, JavaScript, CSS, Bootstrap , AJAX. O código fonte completo dos exemplos é fornecido.


Descontos especiais para produtos TMS

A TMS Software também oferecerá descontos especiais para novas licenças de vários produtos TMS, para todos os participantes. Fique atento às ofertas!

Inscrição e mais informações

Você pode encontrar mais informações diretamente do site da TMS Software: TMS Training Days em Dusseldorf e TMS Business Masterclass em Wevelgen.

Valores para inscrição

Nov 14, TMS Business MasterClass: 295 EUR 
Nov 15, TMS Dev Intensive: 295 EUR
Nov 18, TMS Business Masterclass: 295 EUR

Oferta especial para os dois dias em Dusseldorf (14 e 15 de Novembro): 495 EUR 

Emissor NFC-e na nuvem? Confira na Embarcadero Conference!

No dia 22 de outubro de 2019, teremos mais uma edição da Embarcadero Conference. É o maior evento de Delphi do mundo, e acontece aqui no nosso país, em São Paulo. São centenas de participantes.

Nessa edição, assim como no ano passado, teremos sete palestras simultâneas em cada horário, todas acontecendo no mesmo auditório. Você escolhe qual palestra assistir selecionando o canal de áudio correspondente no seu fone de ouvido. A agenda completa está disponível no site do evento.

Com tantas palestras acontecendo ao mesmo tempo, dá até uma ansiedade em conseguir escolher qual palestra assistir. Mas se tem uma palestra que você não pode perder, é esta que vamos sugerir.

Nosso palestrante, Wagner Landgraf, estará apresentando a palestra “Anatomia de um emissor NFC-e na nuvem (REST API)“. Ah sim, estamos recomendando nossa própria palestra. Mas isso é uma mera coincidência, será muito interessante, acredite!

Por que “na nuvem”?

Ok, vamos dar uma palhinha aqui e adiantar algumas coisas. Uma delas é o “porquê”. Quando emitimos um documento fiscal (como NFC-e) com um sistema “na nuvem”, temos uma série de vantagens em relação à emissão do mesmo documento fiscal num sistema desktop ou mobile.

Só pra esclarecer aos mais iniciantes, um sistema “na nuvem” seria uma aplicação rodando na internet em um serviço como Amazon EC2/Lightsail, Microsoft Azure, etc. Isso ficaria acessível a de chamadas HTTP realizadas de qualquer lugar (outras aplicações desktop, outros sites, aplicações mobile, etc.). Isso traz inúmeras vantagens:

  • Um único e centralizado lugar pra configuração do ambiente de emissão (instalação de certificados, configuração de bibliotecas de criptografia, etc.)
  • Reduz o risco de problemas e custo de suporte em ficar configurando centenas de computadores nos clientes
  • Atualização e manutenção do sistema muito mais fácil – também não é necessário atualizar todos os clientes
  • Possibilidade de emitir NFC-e (e outros documentos fiscals) de qualquer plataforma (de uma aplicação desktop Windows, de uma aplicação mobile, até mesmo de um Raspberry PI, por que não?). Basta que haja conexão internet nessa plataforma.
  • Facilidade de desenvolver clientes em outras plataforma. Que tal desenvolver um PDV no mobile de forma muito fácil? Não há necessidade de portar e compilar bibliotecas complexas como emissores fiscais (ACBr por exemplo), geradores de relatório (FastReport, FortesReport), entre outros.

Dá pra falar mais um pouco?

Queremos você lá assistindo e interagindo! Mas pra atiçar um pouco a curiosidade, deixamos abaixo uma captura da tela de parte da documentação da API. Já dá pra ter uma ideia. Na conference iremos esmiuçar tudo isso!

Não é só isso…

Essa palestra será realmente interessante. Haverá mais uma surpresa que, temos certeza, causará um grande impacto em todos aqueles que trabalham com Delphi nessa área fiscal. Isso tudo é só o começo… Nos vemos na Embarcadero Conference 2019!

Bancos de Dados no Ecossistema Delphi: Webinar

No dia 10 de outubro a Softacom estará apresentando um webinar sobre “Bancos de dados no ecossistema do RAD Studio & Delphi. Processo de migração (legado para atualizado, para outro RDBMS), arquiteturas de camadas de dados (ORM), arquiteturas de acesso a dados (REST API)”.

Palestrantes

Wagner Landgraf da landgraf.dev será um dos palestrantes, falando sobre como o acesso a banco de dados evoluiu no Delphi desde suas versões iniciais, sobre Mapeamento Objeto Relacional (TMS Aurelius), Servidores API REST (TMS XData) e acesso remoto a bancos de dados (TMS RemoteDB).

Serge Pilko

Embarcadero MVP & CEO da Softacom

Wagner Landgraf

CEO da landgraf.dev / TMS Software Partner / TMS Business Product Manager

Bruno Fierens

Embarcadero MVP & CEO da TMS Software

O que você irá aprender

Para CEO / Gerentes / CTO / Diretores de TI / Gerente de Produtos:

  • Soluções Delphi atualizadas e frameworks para comunicação com bancos de dados;
  • Armadilhas na atualização do sistema e/ou migração para outro RDBMS;
  • Abordagens e práticas modernas com Delphi e RDBMS;
  • Arguments: vantagens de se utilizar Delphi e RAD Studio para sua aplicação multicamadas;

Para Desenvolvedores e Especialistas Técnicos:

  • Melhores práticas para desenvolver camadas de acesso a dados em projetos RAD Studio;
  • Como usar ORM para projetos Delphi;
  • Como desenvolver servidores REST API como um facade DB;
  • Dicas e truques para desenvolvedores diretamente dos arquitetos de frameworks e ferramentas para Bancos de Dados;

Principais Tópicos do Webinar

  • Padrões de acesso a dados 10-15 anos atrás e hoje
  • Armadilhas na migração de aplicações RDBMS legadas para versões atualizadas;
  • Prós e contras na migração para ORM em lugar de práticas tradicionais;
  • ORM para Delphi: TMS Aurelius – prós e contras da solução;
  • Prós e contras da migração para REST API em vez do uso “clássico” de acesso ao BD;
  • REST API server for Delphi ─ TMS XData. Prós e contras.

Somente para participantes do Webinar!

Não perca a chance de obter seu desconto promocional para novas licenças de produtos TMS Software e para a EKON conference!

Registration

Link para inscrição: https://www.softacom.com/en_softacom_october_webinar. *Todas as palestras em inglês.